- Committing a temporary solution to prevent Kodama of the Center Tree from hard-crashing Forge.

- This script is not entirely rule-correct, it won't work properly in certain corner cases, as well as with mass removal. However, it does work correctly in the basic cases and doesn't crash the game.
- Feel free to revert this commit if you have a true solution that will allow Kodama of the Center Tree to work in a rule-correct way without crashing the game.
- Added a FIXME set of comments to the script and a Known Issues line to CHANGES.txt for the time being.
This commit is contained in:
Agetian
2015-05-29 16:59:25 +00:00
parent 9701cb20f7
commit bdac9756e8
2 changed files with 11 additions and 1 deletions

View File

@@ -137,6 +137,8 @@ It may take a few days/weeks before these new card pictures become available for
- Born of the Gods cards -
It may take a few days/weeks before these new card pictures become available for downloading via the "Download LQ Card Pictures" button. The LQ set pictures tend to take a few more weeks/months to process before they become available for downloading via the "Download LQ Set Pictures" button. Please be patient. The Forge devs are not involved in maintaining the servers that house these pictures.
There is a known issue with Kodama of the Center Tree: its Soulshift X ability used to crash Forge, and until a proper fix can be implemented, a temporary fix was introduced which prevents the crash but makes the Soulshift X ability work incorrectly in certain cases (in particular, it doesn't work correctly with mass removal, and it may have issues when Kodama of the Center Tree is controlled by someone else other than its owner). In the basic cases (such as Kodama of the Center Tree being destroyed in combat or with a direct damage spell) should work correctly. Hopefully one of the developers will be able to implement a better and proper fix for this card soon.
There is a known issue with the cost reduction for cards that have color-locked X in their mana cost (e.g. Drain Life, Soul Burn). Cost reduction will not apply correctly to these cards if the amount by which the cost is reduced is greater than the amount of colorless mana in the mana cost specified on the card (e.g. 1 for Drain Life, 2 for Soul Burn). Fixing this issue likely requires rewriting the way announced color-locked X is interpreted and paid (most likely it has to be represented with colorless mana shards but still locked to the colors required by the card).
Several people have noticed that the cards displayed on the battlefield will fail to be displayed when the number of cards on the battlefield increases. Maximizing the human panel can help to re-display the cards.

View File

@@ -6,7 +6,15 @@ S:Mode$ Continuous | EffectZone$ All | CharacteristicDefining$ True | SetPower$
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | OptionalDecider$ TriggeredCardController | TriggerController$ TriggeredCardController | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ CARDNAME has soulshift X, where X is the number of Spirits you control. (When this is put into a graveyard from the battlefield, you may return target Spirit card with converted mana cost X or less from your graveyard to your hand.)
SVar:TrigChange:AB$ ChangeZone | Cost$ 0 | Origin$ Graveyard | Destination$ Hand | ValidTgts$ Spirit.cmcLEY | TargetsWithDefinedController$ TriggeredCardController | References$ Y
SVar:X:Count$Valid Spirit.YouCtrl
SVar:Y:TriggeredCardController$Valid Spirit.YouCtrl
# FIXME: The following is apparently correct but crashes Forge every time when the Soulshift X trigger resolves. Was unable to fix.
# SVar:Y:TriggeredCardController$Valid Spirit.YouCtrl
#
# The following doesn't work in certain cases (mass removal) and probably corner cases (maybe such as Kodama controlled by someone else rather than its owner), but doesn't crash Forge
# and works in all basic cases (Kodama dying in combat or to a direct damage spell, for instance). Y=X+1 logic is used to account for Kodama itself (see the 2/1/2005 ruling: X is always
# at least 1).
SVar:Y:SVar$X/Plus.1
SVar:RemRandomDeck:True
SVar:BuffedBy:Spirit
SVar:NoZeroToughnessAI:True