Commit Graph

1879 Commits

Author SHA1 Message Date
wagic.the.homebrew@gmail.com 1343852bc1 - Update French translation
- Added call to translation function for some parts where it was missing
2011-04-09 10:41:36 +00:00
wagic.the.homebrew@gmail.com 693f7e156c Fix a bug reported in the beta, where pressing triangle in the Story mode would crash the game 2011-04-09 08:26:43 +00:00
omegablast2002@yahoo.com 2f82f1888c couple things, first i goofed up in 2 spots, the equipment check for legality, yes shroud isnt a case, but it is also not a case of why you shouldnt remove it from a card which is illegal, so reworked it to find that the items i was looking to exclude( the protections) were all in a single spot :) yay to good programing!...so i pass a bool now with cantarget "withoutProtections" defaults to false so protections are always accounted for unless you specify not to include them, which is what ive done....now if only auras had a nice little spot to add such coding we can correct this rule on auras...
2nd, fixed a misunderstood line i added, i was aiming for the tc that triggered the event in trtargted....all tested passed, and i didn't manually test that change (SHAME ON ME!!!)...corrected it in the correct place now, where the event is sent.

3rd, trying to fix a broken alias class, this is a work in progress, i intend to fix this and then convert it to a keyword for draw replacement effects for 16.1(?) anyways, only thing ive left to figure out is telling it how to determine that the last stack ability is a "draw" ability. this class quit working ALONG time ago when the "addDraw" object was no longer used. the methods for card drawing changed and no one updated the alias class to use the new method, i imagine this is also what broke aladdins lamp originally(which the change of draw events and how card display is set up)
2011-04-05 16:03:19 +00:00
omegablast2002@yahoo.com c0d9c3a834 just being safe here...there is a report of an unreproducible bug that happens completely at random since i moved the parsing of limit into the reactToClick, im guessing it might be that limitPerTurn is never set. 2011-04-05 00:16:05 +00:00
omegablast2002@yahoo.com 553615a563 sending @discarded events for the auto hand cleaning and clean up step discard events 2011-04-04 19:52:58 +00:00
omegablast2002@yahoo.com 2eca724001 2 things,
fixed a bug with Withering Wisps, moved the parsing of the limit string into the isreactingtoclick function, this allows word varibles such as type: to be used.

2nd, removed a varible isTempPhased, it *appear* it might not be needed, tho i didn't handle phasing the way im converting it to for a reason, so cross your fingers and hope all goes well.
BTW: do not email me about any bugs that ariase with phasing or phased out creature, im not excepting bug reports on it to my email box...instead open a ticket with a repro method and mark it as critical.
2011-04-03 12:24:21 +00:00
omegablast2002@yahoo.com 17ac081ed3 fix for rainbow effert 2011-04-03 10:13:07 +00:00
wagic.the.homebrew@gmail.com e867881e16 - Fix issue 552 (Card images too big in deck editor)
- Moved big picture display a bit down ingame
- Temporarily Reinstantiated "back quad shows first" in deck editor, see my comments in http://code.google.com/p/wagic/source/detail?r=3008
-- This is only temporary, and pending the final Thread work, but I'm afraid this won't make it to 0.15. It is possible to get the previous behavior back with a simple define, in case we want it for windows.
2011-04-03 06:07:23 +00:00
omegablast2002@yahoo.com 67ebd964e1 2 bug fixes;
first, while hunting down easter eggs in the todo.dat i started trying to code some un-added equipment...noticed that thisforeach was exhabiting strange behavior.
what was happening was in the changed line, abilities.size() was a non-static number, so on most abilities, thisforeach was actually stopping prematurely. which explains why there was no test added for thisforeach, becuase it really wasnt working correctly.
what i did to correct the issue was set "i" as an unsigned int = abilities.size()..this way abilities being added don't stop it prematurely in the process of adding the matches.

2nd, this one is geared towards equipment only, it is a bug fix, not a "lets recode all equipment to use this"...i noticed that alot of equipment was suffering from double entries of activated abilities, the first entry was always targeted at the equipment and did nothing in most cases, the 2nd was always added during the getabilities call.
to fix, i added autoskill= ...what this line is used for it activated abilities or abilities that otherwise shouldnt exist when the card is not equipped, it is called on when getabilities function is called by equip() and for removel purposes.
2011-04-02 21:01:33 +00:00
omegablast2002@yahoo.com e23ce580fe fixed a bug with sunburst and sunburst cards which contained x. 2011-04-02 18:30:55 +00:00
omegablast2002@yahoo.com 155b909bfd had to add this eff return becuase ai suddenly became retarded with the addition "teach" and the use of auras. 2011-04-01 18:36:36 +00:00
omegablast2002@yahoo.com 14e4775d54 cleaned up the alias change i made earlier today. 2011-04-01 11:14:06 +00:00
omegablast2002@yahoo.com 750f9c89cf removed un-need .c_str() call. 2011-03-31 17:24:49 +00:00
omegablast2002@yahoo.com dbc5376135 added "abilities=canattack"
Warmonger's Chariot
6/15/2010: The second ability doesn't cause the equipped creature to lose defender. It just lets it attack.
2011-03-31 16:39:28 +00:00
omegablast2002@yahoo.com 476a74340a little bit of hard code clean up, soft coded the following cards and removed thier hard codes
Angelic Chorus
Lavaborn Muse
Pestilence
Living Artifact
Hypnotic Specter
there is test for each of these.
btw living artifact hard code was wrong, it was allowing you to remove counters at any phase, the soft code is actually correct. updated living artifact test to the correct version in next rev
also fixed a case where "thatmuch" was never set, i now also store the amount on the source of the trigger as well.
2011-03-31 16:15:30 +00:00
omegablast2002@yahoo.com 6572a11848 changed the way aliases set id.
the old method was fine when wagic only supported 200 cards, this is so far from the case now. this will avoid bugs being introduced when we add support for a card in soft code.
what this was essentially doing was it would load every set but the hardcode card as soft code, and if you used the card which was originally hard coded, you get a bug where soft and hard code are both loaded.
2011-03-31 14:50:44 +00:00
wagic.the.homebrew@gmail.com 3c691b6741 - Fix for issue 614 (removed hardcoded Howling Mine)
- Fix for issue 615 (Linux/PSP compilation error)
2011-03-31 09:38:04 +00:00
omegablast2002@yahoo.com d47a31ca47 i keep adjusting this sorry! changed it to a rfind instead, to more correctly build a newability. 2011-03-30 23:57:52 +00:00
omegablast2002@yahoo.com 728410743f removing empty entries from newabilitieslist. 2011-03-30 23:36:48 +00:00
omegablast2002@yahoo.com 792357b36d string was sending an extra char. 2011-03-30 22:22:40 +00:00
omegablast2002@yahoo.com 257de9962a just cleaning up a memleak i created, moving the parsing of the "newability" in transforms into the resolve rather then creating an object that might not be used. 2011-03-30 22:10:45 +00:00
omegablast2002@yahoo.com 6881787d7d moved parsing of the power and toughness for token gen into the resolve. 2011-03-30 19:25:48 +00:00
omegablast2002@yahoo.com cba0c1218f slight adjustments to transforms parsing to allow for newability to also be a transforms. xx wasnt being set in a couple cases, removed the space i added to the 3 variables so they can be anywhere in the line. 2011-03-30 17:45:05 +00:00
omegablast2002@yahoo.com 948dd212a8 "xx" value wasnt being set if used in activated abilities. >:( why do i need to find out WAY later about these thing. i know someone has come across it becuase there was a morph card which uses {x}{x} that wasnt added because of it. 2011-03-30 03:11:06 +00:00
omegablast2002@yahoo.com d25424cb6c 3 changes
1st 
had to revise the syntax for my "type:" variable it is now type:blah:location, using the pipe line created nasty returns in some combinations of abilities as the parser confused the pipeline in type: with the one in TC.
2nd
more of a correction then a bug fix, i noticed that upcost had instances where it could still trigger its effect in the draw phase becuase the condiational for the ability resolve was in the update, i left the class mostly untouched but move the resolve out of update and into a receiveEvent for upcost, which triggers only once after you declared that you are leaving the upkeep before draw step begins.
3rd
reworked the construction of multiability to only produce a single multiability with all the abilities in the string instead of nested multiabilities, it is considerabily easier to debug and creates 1/3 less objects for the engine to deal with in comparison to the old method.
2011-03-30 01:01:11 +00:00
omegablast2002@yahoo.com f0d104363f first moved regenerate lower on the parser, 2nd fixed an unforeseen bug with the newability subkeyword and the parser, i now store the string value of the transforms ability and remove it from the main string until transforms is parsed, if I leave it during the whole parsing any ability listed above transforms will not work correctly when granted with this ability.
also noticed issues with transforms parsing which i was able to easily correct by making it parse transforms in double brackets, transforms((effects))...updated primitive in next revision.
test suite passes, and varified that the fix doesn't effect how "&&" ability works with transforms.
2011-03-29 20:28:03 +00:00
omegablast2002@yahoo.com c03a444525 corrected Prismatic omen issue,
added newability[whatever ability] to transforms classes.
this allows for transforms to also add activated or mtgabilities to cards it targets.
example Prismatic omen:
auto=lord(land|myBattlefield) transforms(plains forest mountain swamp island,newability[{t}:add{w}],newability[{t}:add{g}],newability[{t}:add{r}],newability[{t}:add{b}],newability[{t}:add{u}])
Issue: 573
2011-03-28 23:39:29 +00:00
omegablast2002@yahoo.com 565ee57372 it was reported to me that cards such as Isleback Spawn were not actually working correctly, to fix these i added a compareZone function to aslongas and a tag to use when you want to compare different like zones, example:
lets say in the case of Isleback Spawn you want to see if ANY player has less then 20 cards.

auto=aslongas(*|library) 4/8 <21 compare

this will check if either you or your opponent has less then 20 cards. rather then adding the total cards in both libraries.

over the last weeks ive seen this cards code change atleast 3 times. this should be the final version for it and any other cards like it.
2011-03-28 16:39:30 +00:00
omegablast2002@yahoo.com 8257fec1f2 changed the order of the aslongas tags so they can act more like manual over-rides. 2011-03-28 14:20:16 +00:00
omegablast2002@yahoo.com 9107b2d8d4 it was reported to me that "|hand)" and "|library)" targetchoosing were only allowing you to target things in YOUR hand/library...
added parsing to correct this bug, 
cards which state "card from target players hand" should be coded "target(*|hand)" which allows targetting of any cards which are in a hand not just your hand.
|myhand)
|opponenthand)
|hand)
self explainitory.....
2011-03-27 20:19:33 +00:00
omegablast2002@yahoo.com 7d98628355 added a "while " tag for aslongas effects which are not supposed to be treated as oneshot abilities. adding it as a tag allows for maximum flexibility in the code.
while i was at it reworked the aslongas class completely, i promised myself if another bug popped up with aslongas i would rewrite it. 20 hours later, we have an aslongas which does not care about when cards come or go.
aslongas should never have used the added/removed to determine the validity of its effect. i allow update to sort it out now in the update function of aslongas...also added a new function to it called sorterfunction tho it looks as it could be reduced in code i would appreciate that it remains as it is, simply because of the nightmare i went through fixing the previous 7 bugs or more reported for aslongas. the logic was far to jumbled up. this i hope is atleast cleaner and easier to understand for the future devs that might work on it.

note: all test passed, all manual testing also passed.

new while tag is used as follows.

[card]
name=Emperor Crocodile
auto=aslongas(other creature|myBattlefield) all(this) sacrifice while <1
text=When you control no other creatures, sacrifice Emperor Crocodile.
mana={3}{G}
type=Creature
subtype=Crocodile
power=5
toughness=5
[/card]

this will denote that the ability is NOT a oneshot ability and should remain effective for the entire time the card is in the field.
Issue: 613
2011-03-27 14:37:12 +00:00
wagic.the.homebrew@gmail.com 500abec9e6 Erwan
- Updating version number for upcoming revision
- Note: test Thallid.txt fails, we need to investigate when this happened and fix asap, will open a ticket.
2011-03-24 12:36:32 +00:00
omegablast2002@yahoo.com 06ca82929b removed clockwork beast alias and hard code. it is no longer needed as i added a soft coding method that was far more generic and leaving this is was causing conflicts with the new code. players reported that using the 4th edition clockworks beast was loading the card with the alias even tho i removed the alais in the primitives. 2011-03-22 03:44:54 +00:00
omegablast2002@yahoo.com 65f2706f1e fixed a bug where cards with vanishing (new vanishing) were given "vanishing as a menu item during combat. 2011-03-22 03:41:45 +00:00
omegablast2002@yahoo.com 0fb914c0c3 fixed a reported bug where the foelost restrictions for triggers were not activating correctly, also updated the code by making it more flexiable...you can now do foelost(number) instead. 2011-03-22 03:20:17 +00:00
omegablast2002@yahoo.com 55d58b6425 fixed a reported bug where blinking cards with "nonbattlezone" code was not activating triggers. :( accidently forgot to add the MY_EXILE to the list of non-battle. :) all good now. 2011-03-22 02:49:49 +00:00
omegablast2002@yahoo.com 43711786fd fixed a reported bug where a player would respond to a targeted ability by phasing out a creature and the targeted ability would still resolve on the phased card. 2011-03-22 02:15:10 +00:00
omegablast2002@yahoo.com f2c905225b cleaned up resetting cost for altercost code, its *almost* where i want it to be, removed the need to have "resetcost" coding on card code. removed "resetcost" keyword.
i was not 100% successful in getting the correct cost on altercost which reduced the amounts. however altercost which increased the amounts are now clean code. so the reducers are still using a dirty method of putting the card from the hand back into the hand to get the correct amounts.

the issue i ran into is how to get the correct amount in this situation.
target cost {5} 
have 3 reducers that - {2}
thats {1} of overkill reduce...
heres the issue. now remove all the reducers from play. the cost returns to {6} instead of 5. 
you would think, will have it track the over kill. which leads to another. have the 3rd card which would contain the overkill removed first, i factor the overkill and increase the amount by what was reduced, but that would not be correct. since the reduce was {2} the increase of removing the overkill card should increase the targets cost by {2} not the amount it actually reduced. as you can see, it is extremely complex. so for now im leaving it dirty, but removing the resetcost code.
2011-03-22 01:12:33 +00:00
omegablast2002@yahoo.com e9eaef430e unable to repro but i recieved reports of code using "thatmuch" producing massive numbers in edge cases. I realized i never int'ed it to 0, so im hoping that this was the reason for the massive positive and negitives it would produce. 2011-03-21 23:16:59 +00:00
Xawotihs f9be0a6341 - reworked completly the JNetwork, JSocket interface (had to ifdef out the PSP socket code)
- added 2 menus to wait for connection and wait for deck selection
- tested compilation on Qt Linux, Qt Windows and PSP
- deactivated everywhere (NETWORK_SUPPORT to activate).
2011-03-13 21:19:02 +00:00
omegablast2002@yahoo.com e8bbbb45de fixed a reported issue, find it a bit strange tho, as everything else can be adressed in this method without being so specific ie: using hasColor(blah) as in the way "fear" was added in here without addressing "this"....just to be on the safe side im going to specify "this->" becuase doing it without it was returning as tho it could not block even tho the creature did not have "weak"
i suspect this could be true with the intemidate and fear...
2011-03-06 16:23:23 +00:00
omegablast2002@yahoo.com eb8a22223b omitted a unneeded include. 2011-03-02 21:35:31 +00:00
omegablast2002@yahoo.com 64a234ef44 added support for customphasering construction in rules txt...
exsample

[INIT]
mode=mtg
[PLAYERS]
life:2000
poisoncount:4
customphasering:untap,firstmain,firstmain,draw,firstmain,upkeep,draw
auto=shuffle
auto=draw:7
auto=@each my draw:draw:1
auto=maxPlay(land)1

by default every turn will have normal order we've always been use to
however
before begins --required added automatically
anything you want in any order
anything you want in any order
anything you want in any order
anything you want in any order
anything you want in any order
anything you want in any order
anything you want in any order
anything you want in any order
cleanup---required added automatically
after end of turn---required added automatically

svntax 
customphasering:blah,blah,blah
listed in the order you want it to go. you can repeat a phase as often as you want, you can omit phases.

please note, this was not designed with MTG in mind..some of the rules require certain phases to work...this is for CUSTOM game building...i repeat NOT DESIGNED FOR MTG...tho it can be used with most(almost all, with the exception of those which require certain phases to work, exsample, ninjitsu will only work in a phasering which contains blockers and attackers)

enjoy.....
2011-03-02 21:33:42 +00:00
wagic.the.homebrew@gmail.com b021417324 Erwan
-fix for issue 604 (Land play limitation should not apply in all cases)
-- this adds a "castMehod" variable to MTGCardInstance. IF this variable is 0, the card was not "cast" (or for lands, "put into play" as part of the lands rule), but "added" to the battlefield with some other effect. On the other hand, if this variable is set, it means the card was cast 
-- as we discussed, I did not touch the "alternateCostPaid" variable, as I'm still not really sure these two concepts are actually the same
2011-03-02 13:41:24 +00:00
techdragon.nguyen@gmail.com b7fb561705 patch to address issue 601, this is a work around to get the game shop from crashing due to card definitions that are apparently not 100% compatible with the system.
http://code.google.com/p/wagic/issues/detail?id=601
2011-03-01 00:58:48 +00:00
omegablast2002@yahoo.com 2153a8d308 added menutext returns for "protection from(" 2011-02-27 16:09:26 +00:00
omegablast2002@yahoo.com d8450548c7 suspend changes, suspended cards which would have a counter removed are checked for time counters and cast if no time counters are present as a statebased effect, as per MTG rules..
case changes, "Time" != "time" aparently our parser now strings all counters as lower case...so "Charge" is no longer string "Charge" and can not be compared to "Charge"..not sure if that makes any sense :) anyways removel of time counters on exiled cards by triggers or effects now happen correctly.
2011-02-27 15:19:02 +00:00
omegablast2002@yahoo.com d255f25130 fixed a reported issue where sometimes a card was ignored...originally i was incrementing up and resetting the value...found that it is far easier to increment down, as i remains the same even when cards become shifted from exile to play card.map...incrementing down guarantees that the positions of the remaining cards to check are going to be the same even if a few have been "unsuspended"... 2011-02-27 14:42:54 +00:00
omegablast2002@yahoo.com 3f090c7be8 added basic suspend.
syntax
suspend(number of time counter)={cost}
suspend(3)={g}
2011-02-25 18:40:23 +00:00
omegablast2002@yahoo.com ffa13c8983 still tweaking ai interrupt slightly...think i finally got it how i wanted it...if it can interrupt OR if its ALREADY interrupting...
added some extra checks to how Ai determines if it should cast a "all(" or other lord...it was only taking the amount of cards it had into account and not looking at what the suggestion was for the nestedability...meaning it treated "destroy all" the same way it treated "all creature +10/+10" it would only check if it had more cards effected...completely ignore the effects....
2011-02-24 14:08:19 +00:00