Page 1 of 1

Laterna Magica version 2010/09/04

PostPosted: 04 Sep 2010, 16:57
by silly freak
Proudly announcing the first version of Laterna Magica!

  • Requires Java 1.6
  • Building and saving decks
  • LQ gatherer card pictures and symbols
  • Playing against yourself (you are both players) using the new combat rules (in fact, everything that *is* working should work according to the newest rules.)
  • currently only lands and vanilla creatures (oh, and Llanowar Elves)

I think it's clear from the feature list that this won't give you the most fun Magic experience, but if you want to try the GUI and possibly give a little feedback, go ahead.

Download Laterna Magica: lm20100904.7z

Downlaod required libraries: lm20100904-lib.7z
The libraries are separate so that you don't need to download them along with subsequent versions (they take ~9.4MB).

On the first startup, an error will be shown. Just click it away, it should not show up again.
I strongly suggest to have Laterna Magica in its own directory.
After Unpacking lm20100904.7z, unpack lm20100904-lib.7z besides the contained jar.
On the first startup, Laterna Magica will unpack some resources and finish the "installation". After that, these directories will exist:

Code: Select all
.../lm20100904/LaternaMagica-20100904.jar
.../lm20100904/lib/...
.../lm20100904/res/...
.../res/...

${user.home}/.slightlymagic.net/laterna/...
Note that only a part lies within "lm20100904"; this means that card pictures, decks etc. will automatically be found in newer versions. Be sure to remove everything when you don't want Laterna Magica any more.

Re: Laterna Magica version 2010/09/04

PostPosted: 05 Sep 2010, 14:47
by Snacko
Doesn't really run :)
Code: Select all
Configuring from Resource /config.properties
Resolved to jar:file:/E:/mtg/laterna-magica/lm20100904/LaternaMagica-20100904.jar!/config.properties
DEBUG [main           ] (Configurator.java:58) configure log4j
DEBUG [main           ] (Configurator.java:58) configure LaternaMagicaCodeSource
DEBUG [main           ] (Configurator.java:58) configure PropertyTree
DEBUG [main           ] (Configurator.java:81) Execute log4j
INFO  [main           ] (Log4jConfigurator.java:60) Successfully configured logging from jar:file:/E:/mtg/laterna-magica/lm20100904/LaternaMagica-20100904.jar!/log4j.properties
INFO  [main           ] (ExceptionHandler.java:33) ExceptionHandler registered
DEBUG [main           ] (Configurator.java:81) Execute LaternaMagicaCodeSource
INFO  [main           ] (CodeSourceConfigurator.java:50) Code source determined as file:/E:/mtg/laterna-magica/lm20100904/
DEBUG [main           ] (Configurator.java:81) Execute PropertyTree
INFO  [main           ] (PropertyTreeConfigurator.java:57) Tree class: net.slightlymagic.treeProperties.PropertyTree
INFO  [main           ] (PropertyTreeConfigurator.java:58) Tree url: jar:file:/E:/mtg/laterna-magica/lm20100904/LaternaMagica-20100904.jar!/laterna.properties
WARN  [main           ] (Configurator.java:85) While running configurator PropertyTree
com.google.common.collect.ComputationException: java.net.MalformedURLException: unknown protocol: c
   at net.slightlymagic.treeProperties.dom4j.types.PathType.toValue(PathType.java:101)
   at net.slightlymagic.treeProperties.dom4j.TypeChain.toValue(TypeChain.java:86)
   at net.slightlymagic.treeProperties.dom4j.TypeChain.toValue(TypeChain.java:93)
   at net.slightlymagic.treeProperties.dom4j.DOM4JTreeProperty.getValue(DOM4JTreeProperty.java:164)
   at net.slightlymagic.treeProperties.dom4j.types.StringType.toValue(StringType.java:86)
   at net.slightlymagic.treeProperties.dom4j.TypeChain.toValue(TypeChain.java:86)
   at net.slightlymagic.treeProperties.dom4j.TypeChain.toValue(TypeChain.java:93)
   at net.slightlymagic.treeProperties.dom4j.types.PathType.toValue(PathType.java:67)
   at net.slightlymagic.treeProperties.dom4j.TypeChain.toValue(TypeChain.java:86)
   at net.slightlymagic.treeProperties.dom4j.TypeChain.toValue(TypeChain.java:93)
   at net.slightlymagic.treeProperties.dom4j.types.IncludeType.toValue(IncludeType.java:66)
   at net.slightlymagic.treeProperties.dom4j.TypeChain.toValue(TypeChain.java:86)
   at net.slightlymagic.treeProperties.dom4j.TypeChain.toValue(TypeChain.java:93)
   at net.slightlymagic.treeProperties.dom4j.DOM4JTreeProperty.getValue(DOM4JTreeProperty.java:164)
   at net.slightlymagic.treeProperties.dom4j.DOM4JTreeProperty.getChildProperties(DOM4JTreeProperty.java:189)
   at net.slightlymagic.treeProperties.dom4j.DOM4JTreeProperty.getChildren(DOM4JTreeProperty.java:206)
   at net.slightlymagic.treeProperties.dom4j.DOM4JNamedElement.updateFullName(DOM4JNamedElement.java:127)
   at net.slightlymagic.treeProperties.dom4j.DOM4JNamedElement.setParent(DOM4JNamedElement.java:52)
   at net.slightlymagic.treeProperties.dom4j.DOM4JTreeProperty.getProperty(DOM4JTreeProperty.java:98)
   at net.slightlymagic.treeProperties.dom4j.DOM4JTreeProperties$1.apply(DOM4JTreeProperties.java:100)
   at net.slightlymagic.treeProperties.dom4j.DOM4JTreeProperties$1.apply(DOM4JTreeProperties.java:98)
   at com.google.common.collect.Lists$TransformingRandomAccessList.get(Lists.java:435)
   at net.slightlymagic.treeProperties.dom4j.DOM4JTreeProperties$3.get(DOM4JTreeProperties.java:137)
   at net.slightlymagic.treeProperties.dom4j.DOM4JTreeProperties$3.get(DOM4JTreeProperties.java:119)
   at java.util.AbstractList$Itr.next(Unknown Source)
   at net.slightlymagic.treeProperties.dom4j.DOM4JNamedElement.updateFullName(DOM4JNamedElement.java:128)
   at net.slightlymagic.treeProperties.dom4j.DOM4JNamedElement.setParent(DOM4JNamedElement.java:52)
   at net.slightlymagic.treeProperties.dom4j.DOM4JTreeProperties.getProperties(DOM4JTreeProperties.java:75)
   at net.slightlymagic.treeProperties.dom4j.IOUtils.createTreeProperties(IOUtils.java:106)
   at net.slightlymagic.treeProperties.PropertyTree.setRoot(PropertyTree.java:192)
   at net.slightlymagic.utils.PropertyTreeConfigurator.run(PropertyTreeConfigurator.java:60)
   at net.slightlymagic.utils.Configurator.execute(Configurator.java:83)
   at net.slightlymagic.laterna.magica.LaternaMagica.init(LaternaMagica.java:50)
   at net.slightlymagic.laterna.magica.gui.main.MainPane.main(MainPane.java:84)
Caused by: java.net.MalformedURLException: unknown protocol: c
   at java.net.URL.<init>(Unknown Source)
   at java.net.URL.<init>(Unknown Source)
   at net.slightlymagic.treeProperties.dom4j.types.PathType.toValue(PathType.java:93)
   ... 33 more
DEBUG [main           ] (PropertyTree.java:80) properties == null
INFO  [main           ] (LaternaMagica.java:59) Loading...
DEBUG [main           ] (PropertyTree.java:80) properties == null
ERROR [main           ] (LaternaMagica.java:63) Error loading compiled cards; cards were not completely loaded.
LaternaMagica will now try to recreate the cards.
Below is the reason why loading failed
java.lang.NullPointerException
   at java.util.zip.ZipFile.<init>(Unknown Source)
   at java.util.zip.ZipFile.<init>(Unknown Source)
   at net.slightlymagic.laterna.magica.cards.AllCards.load(AllCards.java:75)
   at net.slightlymagic.laterna.magica.LaternaMagica.init(LaternaMagica.java:60)
   at net.slightlymagic.laterna.magica.gui.main.MainPane.main(MainPane.java:84)
INFO  [main           ] (LaternaMagica.java:70) Compiling...
DEBUG [main           ] (PropertyTree.java:80) properties == null
ERROR [main           ] (ExceptionHandler.java:48) An exception occurred. Thread "main" terminated.
java.lang.NullPointerException
   at java.io.FileOutputStream.<init>(Unknown Source)
   at java.io.FileOutputStream.<init>(Unknown Source)
   at net.slightlymagic.laterna.magica.cards.CompileHandler$ZipHandler.<init>(CompileHandler.java:117)
   at net.slightlymagic.laterna.magica.cards.AllCards.compile(AllCards.java:60)
   at net.slightlymagic.laterna.magica.LaternaMagica.init(LaternaMagica.java:71)
   at net.slightlymagic.laterna.magica.gui.main.MainPane.main(MainPane.java:84)
Haven't checked the source but this should be an easy fix, probably you don't create the file before accessing it.

Re: Laterna Magica version 2010/09/04

PostPosted: 05 Sep 2010, 20:40
by silly freak
hmm... this seems to be platform incompatibility. unix paths always start with "/", but windows with the drive letter. it seems my path-to-url conversion doesn't handle it right and thinks "C" is the protocol. I'll look into it, thanks

Re: Laterna Magica version 2010/09/04

PostPosted: 05 Sep 2010, 20:58
by Snacko
It wasn't even run on C drive so no clue why it chose that. Maybe "/" root translates to C drive however you use it.

Re: Laterna Magica version 2010/09/04

PostPosted: 06 Sep 2010, 06:43
by silly freak
no, LM creates user-specific data in your home directory, which is on C: