Page 1 of 5

MTGForge 11/01 (unofficial BETA) version

PostPosted: 02 Nov 2009, 00:44
by DennisBergkamp
New version:
2239 cards in total now. Took awhile to release this, been busy with real life stuff... I hope I didn't forget anything, there have been quite a few changes again in the code structure of forge.

Features/fixes:

- Fixed Hammerfist Giant.
- Added Nantuko's awesome type and color filters to the Quest DeckEditor.
- Added "Legendary landwalk" keyword.
- Added "This card can't be the target of Aura spells." keyword.
- Shouldn't be able to play abilities of the AI anymore (thanks to Zerker for getting me on the right track!)
- Fixed some bugs with the spDamageTgt keyword (Lava Flow, Sunder from Within would crash the game when played by AI).
- Fixed Careful Study (human player will discard 2 cards now instead of one) and some other spDraw keyword cards.
- Finally added two extra phases:
1. pre combat phase (so "tap" abilities can be played on the AI's potential attackers - this phase will only show up if the AI has creatures in play that are able to attack)
2. post declared attackers phase (for playing creatures with Flash that can potentially block creatures the AI is attacking with - this phase will only show up if the AI is attacking with creatures).
- Added "Protection from enchantments" keyword.
- Fixed Oboro, Palace in the Clouds (adds U instead of 1).
- Fixed Gerrard's Verdict.
- Fixed Lifelink and Guilt Conscience effects for Goblin Artillery, Orcish Artillery and Orcish Cannoneers.
- Fixed Uncontrollable Anger manacost.
- Divided up CardFactory into multiple parts, and changed some "if(cardName.equals({name}))" statements into "else if(cardName.equals({name}))". Making changes in CardFactory but also loading the program/deck editor should show performance boosts now.
- Changed the way lands are played from cards like Exploration, Fastbond and Azusa, Lost but Seeking, they are played directly from hand now (like the regular first land drop).
- Fixed a bug where AI discards gave errors on an empty hand.
- Fixed Indomitable Will, was missing "aura" type.
- Added Chris' spRaiseDead keyword, very nice :)
- Fixed Volrath's Stronghold (text would give incorrect manacost).
- AI will not play Covetous Dragon anymore if it doesn't have any artifacts in play yet (same with Tethered Griffin and enchantments).
- Silly Freak added Tribal to three changeling spells.
- Zerker fixed various manapool bugs.
- Zerker added Snow mana functionality, awesome!!!
- Loads of restructuring by Silly Freak, forge code is now in its own package, and deck files are in res/decks in text format!
- Added Rob's improved spDrawCards keyword, which allows a few rewrites and some new cards... good stuff :)

A lot of new cards, too many to name really. Cyclope added quite a few, also a bunch added by Sloth with the new keywords. I also added a few myself ( Tethered Griffin, Zuberi, Golden Feather, Lich Lord of Unx, ... ) :)

http://forgedb.net78.net/mtgforge_releases/MTGForge1101.rar

Or triple attachments:

Re: MTGForge 11/01 (unofficial BETA) version

PostPosted: 02 Nov 2009, 00:48
by Corwin72
I have been waiting for this all weekend.
Thank you!

Re: MTGForge 11/01 (unofficial BETA) version

PostPosted: 02 Nov 2009, 00:54
by Corwin72
Am I missing something?
There is no .exe and I can not add it to the last build and make it work. I get the error messageCould not find the main class: GUI_NewGame. Program will exit.

Re: MTGForge 11/01 (unofficial BETA) version

PostPosted: 02 Nov 2009, 00:57
by DennisBergkamp
Yeah, I'm not sure why it's doing that. I bet it's because there have been so many changes to the code of GUI_NewGame also (different entry point).
You can still run the game though, just double click the .jar file instead.

Re: MTGForge 11/01 (unofficial BETA) version

PostPosted: 02 Nov 2009, 01:04
by Corwin72
You are awesome

Re: MTGForge 11/01 (unofficial BETA) version

PostPosted: 02 Nov 2009, 01:10
by DennisBergkamp
I know, I know :lol:

Seriously though, does someone know how to turn .jar files into .exe files? I just tried JSmooth, but it doesn't really seem to be doing anything.

Re: MTGForge 11/01 (unofficial BETA) version

PostPosted: 02 Nov 2009, 02:52
by Corwin72
Should I post problems with this build here or in the bug thread?

Re: MTGForge 11/01 (unofficial BETA) version

PostPosted: 02 Nov 2009, 03:16
by pluckcitizen
Deck cannot be cast to forge.Deck

when trying to start quest mode.

Re: MTGForge 11/01 (unofficial BETA) version

PostPosted: 02 Nov 2009, 04:04
by Corwin72
sol ring taps for 1 not 2.
I could click on a scrubland while it was taped and it would generate mana.

I am able to duplicate the Sol Ring issue but not the Scrubland one.

Re: MTGForge 11/01 (unofficial BETA) version

PostPosted: 02 Nov 2009, 05:27
by DennisBergkamp
Crap, still lot of bugs then I guess....
Unfortunately, right now I have no idea how to fix these issues, I'd have to wait what Silly Freak and Zerker have to say ... these also seem to be very recent problems, Sol Ring always tapped for 2 a few SVN versions ago, and Quest mode also worked fine (maybe snow mana and packaging the code had something to do with it?).

I assume this can be fixed fairly quickly, I'll release a new fixed version asap.

Re: MTGForge 11/01 (unofficial BETA) version

PostPosted: 02 Nov 2009, 05:46
by Rob Cashwalker
I went to download the SVN source, and it doesn't have the split CardFactory, so I guess you didn't synch it yet.

I was trying to convert the shouldKeywords into a single method which accepts a string, but Eclipse was choking on the size of CardFactory.

Re: MTGForge 11/01 (unofficial BETA) version

PostPosted: 02 Nov 2009, 09:49
by Triadasoul
1. Absolute Grace doesn't work, you creatures die from black combat damage.
2. Dauthi Marauder equipped by Shuko has 3/2 (should have 4/1)

Re: MTGForge 11/01 (unofficial BETA) version

PostPosted: 02 Nov 2009, 10:21
by cyclope
For Shuko, i've made a mistake in my code ... i coded with DefenseBoost and it should be AttackBoost...
Here is the correct code I think:
Code: Select all
//*************** START *********** START **************************
    if (cardName.equals("Shuko"))
    {
       final Ability equip = new Ability(card, "0")
       {
          public void resolve()
          {
             if (AllZone.GameAction.isCardInPlay(getTargetCard()) && CardFactoryUtil.canTarget(card, getTargetCard()) )
             {
                if (card.isEquipping())
                {
                   Card crd = card.getEquipping().get(0);
                   if (crd.equals(getTargetCard()) )
                      return;
                   
                   card.unEquipCard(crd);
                }   
                card.equipCard(getTargetCard());
             }
          }
          
          public boolean canPlay()
          {
             return AllZone.getZone(card).is(Constant.Zone.Play) &&           
                      AllZone.Phase.getActivePlayer().equals(card.getController()) &&
                      (AllZone.Phase.getPhase().equals("Main1") || AllZone.Phase.getPhase().equals("Main2") );
          }
          
          public boolean canPlayAI()
            {
              return getCreature().size() != 0 && !card.isEquipping();
            }
         
          
          public void chooseTargetAI()
            {
              Card target = CardFactoryUtil.AI_getBestCreature(getCreature());
              setTargetCard(target);
            }
            CardList getCreature()
            {
              CardList list = new CardList(AllZone.Computer_Play.getCards());
              list = list.filter(new CardListFilter()
              {
                public boolean addCard(Card c)
                {
                  return c.isCreature() && (!CardFactoryUtil.AI_doesCreatureAttack(c)) && CardFactoryUtil.canTarget(card, c) &&
                         (! c.getKeyword().contains("Defender"));
                }
              });
              // list.remove(card);      // if mana-only cost, allow self-target
              return list;
            }//getCreature()
          
       };//equip ability
       

       Command onEquip = new Command()
       {   

         

         public void execute()
           {
            if (card.isEquipping())
             {
                Card crd = card.getEquipping().get(0);
                
                crd.addSemiPermanentAttackBoost(1);
             } 
           }//execute()
       };//Command
      

       Command onUnEquip = new Command()
       {   


         public void execute()
           {
            if (card.isEquipping())
             {
                Card crd = card.getEquipping().get(0);
                
                crd.addSemiPermanentAttackBoost(-1);
                   
             }
            
           }//execute()
       };//Command
      
       
       Input runtime = new Input()
       {
         

         public void showMessage()
             {
               //get all creatures you control
               CardList list = new CardList();
               list.addAll(AllZone.Human_Play.getCards());
               list = list.getType("Creature");
              
               stopSetNext(CardFactoryUtil.input_targetSpecific(equip, list, "Select target creature to equip", true));
             }
        };//Input
      
       equip.setBeforePayMana(runtime);
       
       equip.setDescription("Equip: 0");
       card.addSpellAbility(equip);
       
       card.setEquip(onEquip);
       card.setUnEquip(onUnEquip);

    } //*************** END ************ END **************************

Re: MTGForge 11/01 (unofficial BETA) version

PostPosted: 02 Nov 2009, 11:04
by silly freak
the .exe and quest issues are my fault, i apologise for this. the newest version on SVN should now both have the new CardFactory and a working quest mode.
The exe, as it previously was, can't work anymore because of the restructuring. for running the jar directly, you just have to select java as the program to open the file. you have to look for your java installation and choose the bin/java file.

i hope the worst bugs are sorted out, keep telling about others ;)

Re: MTGForge 11/01 (unofficial BETA) version

PostPosted: 02 Nov 2009, 11:28
by Triadasoul
Cannot import decks. Here's the report:

An error has occured. You can copy/paste this message or save it to a file.
Please report this, plus what you tried to do, to:
viewforum.php?f=26
If you don't want to register an account, you can mail it directly to
mtgrares@yahoo.com

Deck cannot be cast to forge.Deck

Detailed error trace:
java.lang.ClassCastException: Deck cannot be cast to forge.Deck
at forge.Gui_DeckEditor_Menu.importDeck(Gui_DeckEditor_Menu.java:358)
at forge.Gui_DeckEditor_Menu.access$2(Gui_DeckEditor_Menu.java:327)
at forge.Gui_DeckEditor_Menu$11$1.run(Gui_DeckEditor_Menu.java:872)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
=================================================================

Also all-decks2 doesn't work now.