Board index Programs with AI or Rules Enforcement Magic: The Gathering - Duels of the Planeswalkers New MTG Cards and Decks (2010, 2012, 2013, 2014, 2015, Magic Duels) 2014
Hour of Devastation development -- 176/186 uploaded
Moderator: CCGHQ Admins
Re: Hour of Devastation development -- 78 uploaded and compl
by Xander9009 » 26 Jun 2017, 22:39
Fixed. I also changed this and the two companion gods' on-death triggers a bit. They'll need to be tested to make sure I didn't much them up.merdok wrote:The Locust God has bug, its activated ability is causing it to tap.
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
-
Xander9009 - Programmer
- Posts: 2905
- Joined: 29 Jun 2013, 07:44
- Location: Indiana, United States
- Has thanked: 121 times
- Been thanked: 445 times
Re: Hour of Devastation development -- 78 uploaded and compl
by fallenangle » 27 Jun 2017, 03:36
I'd like to do Overwhelming Splendor, if someone hasn't already done it
- fallenangle
- Posts: 319
- Joined: 20 Jul 2013, 02:31
- Has thanked: 73 times
- Been thanked: 41 times
Re: Hour of Devastation development -- 78 uploaded and compl
by Splinterverse » 27 Jun 2017, 09:32
Go for it.fallenangle wrote:I'd like to do Overwhelming Splendor, if someone hasn't already done it
I am back online for a bit and will be coding the other spoiled cards from yesterday and today. Will post when I am finished.
---------------------------------------------
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
- Splinterverse
- Posts: 918
- Joined: 04 Sep 2016, 13:32
- Has thanked: 150 times
- Been thanked: 75 times
Re: Hour of Devastation development -- 88 uploaded and compl
by Splinterverse » 27 Jun 2017, 11:23
Finished coding for today. Soonest I will code again is potentially tomorrow morning.
OP updated.
Art added for all newly spoiled cards, including HQ for Champion of Wits, Djeru, With Eyes Open, God-Pharoah's Gift, and Overwhelming Splendor.
The following cards were coded but NOT tested (all have been uploaded to CW):
Champion of Wits + token
Hashep Oasis
Hollow One
Ifnir Deadlands
Ipnu Rivulet
Ramunap Ruins
Shefet Dunes
Unraveling Mummy
I have also coded God-Pharaoh's Gift, but I am uncertain how to make the token have haste only for 1 turn when the rest of the continuous abilities are more or less permanent. Perhaps a delayed trigger that grants a CA with EOT as duration? Here's the code: https://pastebin.com/pHkyXsz0
If anyone feels like adding the Haste mentioned above and put the card in the CW, feel free. Just add your name to the author block with mine.
OP updated.
Art added for all newly spoiled cards, including HQ for Champion of Wits, Djeru, With Eyes Open, God-Pharoah's Gift, and Overwhelming Splendor.
The following cards were coded but NOT tested (all have been uploaded to CW):
Champion of Wits + token
Hashep Oasis
Hollow One
Ifnir Deadlands
Ipnu Rivulet
Ramunap Ruins
Shefet Dunes
Unraveling Mummy
I have also coded God-Pharaoh's Gift, but I am uncertain how to make the token have haste only for 1 turn when the rest of the continuous abilities are more or less permanent. Perhaps a delayed trigger that grants a CA with EOT as duration? Here's the code: https://pastebin.com/pHkyXsz0
If anyone feels like adding the Haste mentioned above and put the card in the CW, feel free. Just add your name to the author block with mine.
---------------------------------------------
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
- Splinterverse
- Posts: 918
- Joined: 04 Sep 2016, 13:32
- Has thanked: 150 times
- Been thanked: 75 times
Re: Hour of Devastation development -- 88 uploaded and compl
by fallenangle » 27 Jun 2017, 14:07
Splinterverse, what you suggested is exactly what I would do. Assuming I didn't make any stupid mistakes, this code should be what you need for God-Pharaoh's Gift:
- Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="1">
<FILENAME text="GODPHARAOHS_GIFT_CW" />
<CARDNAME text="GODPHARAOHS_GIFT" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[God-Pharaoh’s Gift]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[God-Pharaoh’s Gift]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[God-Pharaoh’s Gift]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[God-Pharaoh’s Gift]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[God-Pharaoh’s Gift]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[God-Pharaoh’s Gift]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[God-Pharaoh’s Gift]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[God-Pharaoh’s Gift]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[God-Pharaoh’s Gift]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[God-Pharaoh’s Gift]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[God-Pharaoh’s Gift]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="0" />
<ARTID value="GODPHARAOHS_GIFT" />
<ARTIST name="Titus Lanter" />
<CASTING_COST cost="{7}" />
<TYPE metaname="Artifact" />
<EXPANSION value="HOU" />
<RARITY metaname="R" />
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of combat on your turn, you may exile a creature card from your graveyard. If you do, create a token that’s a copy of that card, except it’s a 4/4 black Zombie. It gains haste until end of turn.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[At the beginning of combat on your turn, you may exile a creature card from your graveyard. If you do, create a token that’s a copy of that card, except it’s a 4/4 black Zombie. It gains haste until end of turn.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[At the beginning of combat on your turn, you may exile a creature card from your graveyard. If you do, create a token that’s a copy of that card, except it’s a 4/4 black Zombie. It gains haste until end of turn.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[At the beginning of combat on your turn, you may exile a creature card from your graveyard. If you do, create a token that’s a copy of that card, except it’s a 4/4 black Zombie. It gains haste until end of turn.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[At the beginning of combat on your turn, you may exile a creature card from your graveyard. If you do, create a token that’s a copy of that card, except it’s a 4/4 black Zombie. It gains haste until end of turn.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[At the beginning of combat on your turn, you may exile a creature card from your graveyard. If you do, create a token that’s a copy of that card, except it’s a 4/4 black Zombie. It gains haste until end of turn.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[At the beginning of combat on your turn, you may exile a creature card from your graveyard. If you do, create a token that’s a copy of that card, except it’s a 4/4 black Zombie. It gains haste until end of turn.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[At the beginning of combat on your turn, you may exile a creature card from your graveyard. If you do, create a token that’s a copy of that card, except it’s a 4/4 black Zombie. It gains haste until end of turn.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[At the beginning of combat on your turn, you may exile a creature card from your graveyard. If you do, create a token that’s a copy of that card, except it’s a 4/4 black Zombie. It gains haste until end of turn.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[At the beginning of combat on your turn, you may exile a creature card from your graveyard. If you do, create a token that’s a copy of that card, except it’s a 4/4 black Zombie. It gains haste until end of turn.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[At the beginning of combat on your turn, you may exile a creature card from your graveyard. If you do, create a token that’s a copy of that card, except it’s a 4/4 black Zombie. It gains haste until end of turn.]]></LOCALISED_TEXT>
<TRIGGER value="BEGINNING_OF_PLAYERS_STEP" simple_qualifier="controller">
return MTG():GetStep() == STEP_BEGIN_COMBAT
</TRIGGER>
<MAY always_prompt="1" />
<TARGET tag="SPL_CARD_QUERY_CHOOSE_CARD_TO_EXILE" definition="0" compartment="0" count="1" />
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:SetZone(ZONE_GRAVEYARD)
filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_Targets(0) and EffectDC():Get_Targets(0):Get_CardPtr(0)
if target ~= nil then
MTG():PutTokenCopiesOntoBattlefield( target, 1, EffectController(), EffectDC():Make_Chest(4) )
target:Exile()
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local token = EffectDC():Get_Chest(4) and EffectDC():Get_Chest(4):Get_CardPtr(0)
if token ~= nil then
local delayDC = EffectDC():Make_Chest(7)
delayDC:Set_CardPtr(0, token)
delayDC:Protect_CardPtr(0)
MTG():CreateDelayedTrigger(7, delayDC)
end
</RESOLUTION_TIME_ACTION>
<CONTINUOUS_ACTION layer="4">
local token = EffectDC():Get_Chest(4) and EffectDC():Get_Chest(4):Get_CardPtr(0)
if token ~= nil then
token:GetCurrentCharacteristics():SubType_GetWritable():ClearAllOfType(CARD_TYPE_CREATURE)
token:GetCurrentCharacteristics():SubType_GetWritable():Add(CREATURE_TYPE_ZOMBIE)
end
</CONTINUOUS_ACTION>
<CONTINUOUS_ACTION layer="5">
local token = EffectDC():Get_Chest(4) and EffectDC():Get_Chest(4):Get_CardPtr(0)
if token ~= nil then
token:GetCurrentCharacteristics():Colour_Set(COLOUR_BLACK)
end
</CONTINUOUS_ACTION>
<CONTINUOUS_ACTION layer="7B">
local token = EffectDC():Get_Chest(4) and EffectDC():Get_Chest(4):Get_CardPtr(0)
if token ~= nil then
local characteristics = token:GetCurrentCharacteristics()
if characteristics ~= nil then
characteristics:Power_Set(4)
characteristics:Toughness_Set(4)
end
end
</CONTINUOUS_ACTION>
<DURATION>
return false
</DURATION>
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY resource_id="7" replacement_effect="1">
<TRIGGER value="STATE_BASED_EFFECTS">
return TriggerObject() == EffectDC():Get_CardPtr(0)
</TRIGGER>
<CONTINUOUS_ACTION layer="6">
if TriggerObject() ~= nil then
TriggerObject():GetCurrentCharacteristics():Bool_Set( CHARACTERISTIC_HASTE, 1 )
end
</CONTINUOUS_ACTION>
<DURATION simple_duration="UntilEOT" />
</TRIGGERED_ABILITY>
<!-- SPOILER -->
<AUTHOR><![CDATA[Splinterverse]]></AUTHOR>
<EDITORS><![CDATA[Splinterverse, fallenangle]]></EDITORS>
<DATE><![CDATA[27-06-17]]></DATE>
</CARD_V2>
- fallenangle
- Posts: 319
- Joined: 20 Jul 2013, 02:31
- Has thanked: 73 times
- Been thanked: 41 times
Re: Hour of Devastation development -- 88 uploaded and compl
by Xander9009 » 27 Jun 2017, 16:46
There are two ways you could do it. The first is the way that was already suggested, but the trigger should preferably not be STATE_BASED_ACTION if you can manage it. I'd use PHENOMENON_ENCOUNTERED and immediately follow up the creation of the trigger with CW_General_FireTrigger(). If you use this function, you'll need to make a trigger constant for, like, "CW_FAKE_CA_TRIGGER" (since it could be reused on any cards that need to do the same thing). You could also skip that and just go straight for "MTG():FireTrigger(TRIGGER_PHENOMENON_ENCOUNTERED, EffectSource())". EffectSource would become TriggerObject(), though that's pretty much unnecessary.
The second method would probably be a little easier to do, and that would be to have a CONTINUOUS_ACTION that contains some code that shuts it down at the appropriate time. This could be done in a few ways. You could have an RTA run before the CA which stores the current turn number. In the CA< if the current turn number isn't what it started as, do nothing. Or, in the CA, make sure EffectDC():Get_Int(0) == 0 (change int(0) to something that's not in use, if needed). If it's not, then grant haste and check the current step. If it's the end of turn, set int(0) to 1. This will mean the next time it tries to run, int(0) will NOT be 0, and it'll do nothing. You could also have the CA check the turn number without a helper RTA by simply having it check the turn number, and if it's 0 (int defaults), then set it to the current turn number. This will only happen once since from then on it'll never be 0 again. Otherwise, it's the same and the first RTA+CA option.
I'd probably personally end up going with one of these options (probably checking for "STEP_END_OF_TURN"), but either method should work fine. fallenangle's code should do the trick. Though, like I mentioned I'd switch away from STATE_BASED_EFFECTSso you can manually fire it without affecting other cards. (This allows you to be 100% certain it takes effect immediately like it should.) However, it's unlikely to ever cause problems, so it's not a big deal if you just leave with STATE_BASED_EFFECTS. Heck, I'm pretty sure all morph cards use that trigger, too. But do make sure to call MTG():FireTrigger(TRIGGER_STATE_BASED_EFFECTS) if you leave it as that (or if you use any other trigger based method).
EDIT: Oh, and fallenangle, don't forget that when you add a second editor, you need a second date. Those two fields should always have the same number of entries.
The second method would probably be a little easier to do, and that would be to have a CONTINUOUS_ACTION that contains some code that shuts it down at the appropriate time. This could be done in a few ways. You could have an RTA run before the CA which stores the current turn number. In the CA< if the current turn number isn't what it started as, do nothing. Or, in the CA, make sure EffectDC():Get_Int(0) == 0 (change int(0) to something that's not in use, if needed). If it's not, then grant haste and check the current step. If it's the end of turn, set int(0) to 1. This will mean the next time it tries to run, int(0) will NOT be 0, and it'll do nothing. You could also have the CA check the turn number without a helper RTA by simply having it check the turn number, and if it's 0 (int defaults), then set it to the current turn number. This will only happen once since from then on it'll never be 0 again. Otherwise, it's the same and the first RTA+CA option.
I'd probably personally end up going with one of these options (probably checking for "STEP_END_OF_TURN"), but either method should work fine. fallenangle's code should do the trick. Though, like I mentioned I'd switch away from STATE_BASED_EFFECTSso you can manually fire it without affecting other cards. (This allows you to be 100% certain it takes effect immediately like it should.) However, it's unlikely to ever cause problems, so it's not a big deal if you just leave with STATE_BASED_EFFECTS. Heck, I'm pretty sure all morph cards use that trigger, too. But do make sure to call MTG():FireTrigger(TRIGGER_STATE_BASED_EFFECTS) if you leave it as that (or if you use any other trigger based method).
EDIT: Oh, and fallenangle, don't forget that when you add a second editor, you need a second date. Those two fields should always have the same number of entries.
Last edited by Xander9009 on 28 Jun 2017, 03:42, edited 1 time in total.
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
-
Xander9009 - Programmer
- Posts: 2905
- Joined: 29 Jun 2013, 07:44
- Location: Indiana, United States
- Has thanked: 121 times
- Been thanked: 445 times
Re: Hour of Devastation development -- 88 uploaded and compl
by Xander9009 » 27 Jun 2017, 19:48
Remember how you asked about a card having a multiverseid of 0? Well, yes, it does cause problems. It let the AI's characteristics manager (or planeswalker manager, if they didn't have the other; or ANY manager since they all have an MID of 0) use my planeswalkers' abilities. Both Nicol Bolas, God-Pharaoh and Nicol Bolas, the Deceiver. It even used the abilities before I'd played the cards. They just had to exist... So yeah, those will need set to something non-0 in the mean-time.
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
-
Xander9009 - Programmer
- Posts: 2905
- Joined: 29 Jun 2013, 07:44
- Location: Indiana, United States
- Has thanked: 121 times
- Been thanked: 445 times
Re: Hour of Devastation development -- 88 uploaded and compl
by fallenangle » 27 Jun 2017, 20:24
I'm pretty sure that cards can't fire state-based Triggers on other cards. I agree with Xander that a custom, fake Trigger would be best; but if you stick with STATE_BASED_EFFECTS (NOT STATE_BASED_ACTIONS), then you'll want this:
- Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="1">
<FILENAME text="GODPHARAOHS_GIFT_CW" />
<CARDNAME text="GODPHARAOHS_GIFT" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[God-Pharaoh’s Gift]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[God-Pharaoh’s Gift]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[God-Pharaoh’s Gift]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[God-Pharaoh’s Gift]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[God-Pharaoh’s Gift]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[God-Pharaoh’s Gift]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[God-Pharaoh’s Gift]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[God-Pharaoh’s Gift]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[God-Pharaoh’s Gift]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[God-Pharaoh’s Gift]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[God-Pharaoh’s Gift]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="0" />
<ARTID value="GODPHARAOHS_GIFT" />
<ARTIST name="Titus Lanter" />
<CASTING_COST cost="{7}" />
<TYPE metaname="Artifact" />
<EXPANSION value="HOU" />
<RARITY metaname="R" />
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of combat on your turn, you may exile a creature card from your graveyard. If you do, create a token that’s a copy of that card, except it’s a 4/4 black Zombie. It gains haste until end of turn.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[At the beginning of combat on your turn, you may exile a creature card from your graveyard. If you do, create a token that’s a copy of that card, except it’s a 4/4 black Zombie. It gains haste until end of turn.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[At the beginning of combat on your turn, you may exile a creature card from your graveyard. If you do, create a token that’s a copy of that card, except it’s a 4/4 black Zombie. It gains haste until end of turn.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[At the beginning of combat on your turn, you may exile a creature card from your graveyard. If you do, create a token that’s a copy of that card, except it’s a 4/4 black Zombie. It gains haste until end of turn.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[At the beginning of combat on your turn, you may exile a creature card from your graveyard. If you do, create a token that’s a copy of that card, except it’s a 4/4 black Zombie. It gains haste until end of turn.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[At the beginning of combat on your turn, you may exile a creature card from your graveyard. If you do, create a token that’s a copy of that card, except it’s a 4/4 black Zombie. It gains haste until end of turn.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[At the beginning of combat on your turn, you may exile a creature card from your graveyard. If you do, create a token that’s a copy of that card, except it’s a 4/4 black Zombie. It gains haste until end of turn.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[At the beginning of combat on your turn, you may exile a creature card from your graveyard. If you do, create a token that’s a copy of that card, except it’s a 4/4 black Zombie. It gains haste until end of turn.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[At the beginning of combat on your turn, you may exile a creature card from your graveyard. If you do, create a token that’s a copy of that card, except it’s a 4/4 black Zombie. It gains haste until end of turn.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[At the beginning of combat on your turn, you may exile a creature card from your graveyard. If you do, create a token that’s a copy of that card, except it’s a 4/4 black Zombie. It gains haste until end of turn.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[At the beginning of combat on your turn, you may exile a creature card from your graveyard. If you do, create a token that’s a copy of that card, except it’s a 4/4 black Zombie. It gains haste until end of turn.]]></LOCALISED_TEXT>
<TRIGGER value="BEGINNING_OF_PLAYERS_STEP" simple_qualifier="controller">
return MTG():GetStep() == STEP_BEGIN_COMBAT
</TRIGGER>
<MAY always_prompt="1" />
<TARGET tag="SPL_CARD_QUERY_CHOOSE_CARD_TO_EXILE" definition="0" compartment="0" count="1" />
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:SetZone(ZONE_GRAVEYARD)
filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_Targets(0) and EffectDC():Get_Targets(0):Get_CardPtr(0)
if target ~= nil then
MTG():PutTokenCopiesOntoBattlefield( target, 1, EffectController(), EffectDC():Make_Chest(4) )
target:Exile()
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local token = EffectDC():Get_Chest(4) and EffectDC():Get_Chest(4):Get_CardPtr(0)
if token ~= nil then
local delayDC = EffectDC():Make_Chest(7)
delayDC:Set_CardPtr(0, token)
delayDC:Protect_CardPtr(0)
MTG():CreateDelayedTrigger(7, delayDC)
MTG():FireTrigger(TRIGGER_STATE_BASED_EFFECTS)
end
</RESOLUTION_TIME_ACTION>
<CONTINUOUS_ACTION layer="4">
local token = EffectDC():Get_Chest(4) and EffectDC():Get_Chest(4):Get_CardPtr(0)
if token ~= nil then
token:GetCurrentCharacteristics():SubType_GetWritable():ClearAllOfType(CARD_TYPE_CREATURE)
token:GetCurrentCharacteristics():SubType_GetWritable():Add(CREATURE_TYPE_ZOMBIE)
end
</CONTINUOUS_ACTION>
<CONTINUOUS_ACTION layer="5">
local token = EffectDC():Get_Chest(4) and EffectDC():Get_Chest(4):Get_CardPtr(0)
if token ~= nil then
token:GetCurrentCharacteristics():Colour_Set(COLOUR_BLACK)
end
</CONTINUOUS_ACTION>
<CONTINUOUS_ACTION layer="7B">
local token = EffectDC():Get_Chest(4) and EffectDC():Get_Chest(4):Get_CardPtr(0)
if token ~= nil then
local characteristics = token:GetCurrentCharacteristics()
if characteristics ~= nil then
characteristics:Power_Set(4)
characteristics:Toughness_Set(4)
end
end
</CONTINUOUS_ACTION>
<DURATION>
return false
</DURATION>
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY resource_id="7" replacement_effect="1">
<TRIGGER value="STATE_BASED_EFFECTS">
return TriggerObject() == EffectDC():Get_CardPtr(0)
</TRIGGER>
<CONTINUOUS_ACTION layer="6">
if TriggerObject() ~= nil then
TriggerObject():GetCurrentCharacteristics():Bool_Set( CHARACTERISTIC_HASTE, 1 )
end
</CONTINUOUS_ACTION>
<DURATION simple_duration="UntilEOT" />
</TRIGGERED_ABILITY>
<!-- SPOILER -->
<AUTHOR><![CDATA[Splinterverse]]></AUTHOR>
<EDITORS><![CDATA[Splinterverse, fallenangle]]></EDITORS>
<DATE><![CDATA[27-06-17, 27-06-17]]></DATE>
</CARD_V2>
- fallenangle
- Posts: 319
- Joined: 20 Jul 2013, 02:31
- Has thanked: 73 times
- Been thanked: 41 times
Re: Hour of Devastation development -- 88 uploaded and compl
by Splinterverse2 » 28 Jun 2017, 00:37
Do you have a way to fix this for the ones we have uploaded already? I can definitely use something moving forward.Xander9009 wrote:Remember how you asked about a card having a multiverseid of 0? Well, yes, it does cause problems. It let the AI's characteristics manager (or planeswalker manager, if they didn't have the other; or ANY manager since they all have an MID of 0) use my planeswalkers' abilities. Both Nicol Bolas, God-Pharaoh and Nicol Bolas, the Deceiver. It even used the abilities before I'd played the cards. They just had to exist... So yeah, those will need set to something non-0 in the mean-time.
- Splinterverse2
- Posts: 52
- Joined: 20 Sep 2016, 13:52
- Has thanked: 13 times
- Been thanked: 0 time
Re: Hour of Devastation development -- 88 uploaded and compl
by Xander9009 » 28 Jun 2017, 04:04
I'll write up a quick script to pull out any cards with a MID of 0 and then I'll just manually go through and assign a random one. Not a big deal. I already went through and manually added subtypes to all of the cards, so this should be easier than that haha. I'll see about getting the spoiler grabber to assign a random large number to the field to use. I may have to update the generator plugin as well. It might not actually even try to get the MID from a spoiler; I don't remember how I coded that particular bit.
@fallenangle, one card should be able to fire any trigger on any card. STATE_BASED_EFFECTS (I corrected my previous post, thank you) can't have any parameters, so you couldn't have a TriggerObject(), but as long as you call MTG():FireTrigger(SOME_TRIGGER), any currently active triggered ability with that trigger value should get it, no matter what card the ability originates from or what card the trigger is on.
That said, I do think that going with a custom one would be better to avoid any unforeseen issues. I doubt there would be any, but I'm certain that using a custom one will be safe, so that's preferable, generally. Because of the missing TriggerObject(), I don't think your code will work as it's written. In order for a manually fired trigger to have a TriggerObject(), it has to have the object passed as a parameter, and that particular trigger must support that parameter. I tried a bunch of the unused triggers and only a couple of them supported having a parameter, one of which was PHENOMENON_ENCOUNTERED, which is why I went with that one (Riiak suggested that one, too, I think). So, you'll need to either remove the TriggerObject() check in the trigger, or you'll need to use a different trigger and pass the source as a parameter. (Although, if you test it and I'm wrong, please let me know. It's always useful to have new information.)
Now, I'm going to go fix the MIDs, and then I'm going to test the blocking functions we were discussing. Let's hope that goes well.
@fallenangle, one card should be able to fire any trigger on any card. STATE_BASED_EFFECTS (I corrected my previous post, thank you) can't have any parameters, so you couldn't have a TriggerObject(), but as long as you call MTG():FireTrigger(SOME_TRIGGER), any currently active triggered ability with that trigger value should get it, no matter what card the ability originates from or what card the trigger is on.
That said, I do think that going with a custom one would be better to avoid any unforeseen issues. I doubt there would be any, but I'm certain that using a custom one will be safe, so that's preferable, generally. Because of the missing TriggerObject(), I don't think your code will work as it's written. In order for a manually fired trigger to have a TriggerObject(), it has to have the object passed as a parameter, and that particular trigger must support that parameter. I tried a bunch of the unused triggers and only a couple of them supported having a parameter, one of which was PHENOMENON_ENCOUNTERED, which is why I went with that one (Riiak suggested that one, too, I think). So, you'll need to either remove the TriggerObject() check in the trigger, or you'll need to use a different trigger and pass the source as a parameter. (Although, if you test it and I'm wrong, please let me know. It's always useful to have new information.)
Now, I'm going to go fix the MIDs, and then I'm going to test the blocking functions we were discussing. Let's hope that goes well.
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
-
Xander9009 - Programmer
- Posts: 2905
- Joined: 29 Jun 2013, 07:44
- Location: Indiana, United States
- Has thanked: 121 times
- Been thanked: 445 times
Re: Hour of Devastation development -- 88 uploaded and compl
by Xander9009 » 28 Jun 2017, 06:53
Uploaded the 1.2.1 local input file for MID support. I'm not bothering to post the notice in that thread since it's so minor. That said, MID's will now be randomly assigned to the spoiled cards as they're pulled from the sites. The MID will be between 909990000 and 909999999, which keeps it in range, gives it 10,000 possibilities (enough that it shouldn't randomly overlap), and small enough to allow them all to keep the same "90999" prefix for easy searching later, if needed.
The spoilers in the folder already have had these assigned, and all currently uploaded cards with a MID of 0 have been given a random one (except for Powder Keg, which actually has a real one, and a handful of tokens, which were given token MIDs).
EDIT: There are, however, several lands that have none...
The spoilers in the folder already have had these assigned, and all currently uploaded cards with a MID of 0 have been given a random one (except for Powder Keg, which actually has a real one, and a handful of tokens, which were given token MIDs).
EDIT: There are, however, several lands that have none...
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
-
Xander9009 - Programmer
- Posts: 2905
- Joined: 29 Jun 2013, 07:44
- Location: Indiana, United States
- Has thanked: 121 times
- Been thanked: 445 times
Re: Hour of Devastation development -- 94 uploaded and compl
by Splinterverse » 28 Jun 2017, 10:38
Finished coding for today.
OP updated.
Coded/uploaded but NOT tested:
-Chaos Maw + HQ art
-Endless Sands
-Hour of Promise + HQ art
-Imminent Doom + HQ art
-Ominous Sphinx
-Razaketh's Ritual + HQ art
HQ art uploaded:
-Fervent Paincaster
-Gilded Cerodon
-Hope Tender
-Resilient Khenra eternalize token
-Sinuous Striker
Hopefully back again tomorrow morning to code for a bit.
OP updated.
Coded/uploaded but NOT tested:
-Chaos Maw + HQ art
-Endless Sands
-Hour of Promise + HQ art
-Imminent Doom + HQ art
-Ominous Sphinx
-Razaketh's Ritual + HQ art
HQ art uploaded:
-Fervent Paincaster
-Gilded Cerodon
-Hope Tender
-Resilient Khenra eternalize token
-Sinuous Striker
Hopefully back again tomorrow morning to code for a bit.
---------------------------------------------
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
- Splinterverse
- Posts: 918
- Joined: 04 Sep 2016, 13:32
- Has thanked: 150 times
- Been thanked: 75 times
Re: Hour of Devastation development -- 94 uploaded and compl
by Splinterverse » 28 Jun 2017, 10:57
@Xander9009, do you see any issues with the filter in this code:
- Code: Select all
<RESOLUTION_TIME_ACTION>
local filter = ClearFilter()
CW_Filter_SubType(filter, PLANESWALKER_TYPE_NISSA, OP_IS, ZONE_BATTLEFIELD)
filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
if filter:CountStopAt(1) == 1 then
EffectController():GainLife(2)
end
</RESOLUTION_TIME_ACTION>
---------------------------------------------
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
- Splinterverse
- Posts: 918
- Joined: 04 Sep 2016, 13:32
- Has thanked: 150 times
- Been thanked: 75 times
Re: Hour of Devastation development -- 94 uploaded and compl
by Splinterverse2 » 28 Jun 2017, 13:11
FYI. We are going to need a custom characteristic AND trigger for both Embalm and Eternalize. See http://www.magic-ville.com/fr/carte?ref=hou055
If anyone has time to set those up, it would be much appreciated.
If anyone has time to set those up, it would be much appreciated.
- Splinterverse2
- Posts: 52
- Joined: 20 Sep 2016, 13:52
- Has thanked: 13 times
- Been thanked: 0 time
Re: Hour of Devastation development -- 94 uploaded and compl
by Xander9009 » 28 Jun 2017, 16:55
Triggers are created, and are named "CW_TRIGGER_EMBALM" and "CW_TRIGGER_ETERNALIZE". I also realized there's ALREADY a generic trigger that can be used for forcing a quick update: CW_TRIGGER_GENERIC. Apparently, I thought of this possibility a long time ago, and have since forgotten it.
Nope. There was a bug in the filter subtype function. Fixed now.
EDIT: I overlooked the bit about characteristics. They're added now, too.
CW_CHARACTERISTIC_EMBALM
CW_CHARACTERISTIC_ETERNALIZE
Nope. There was a bug in the filter subtype function. Fixed now.
EDIT: I overlooked the bit about characteristics. They're added now, too.
CW_CHARACTERISTIC_EMBALM
CW_CHARACTERISTIC_ETERNALIZE
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
-
Xander9009 - Programmer
- Posts: 2905
- Joined: 29 Jun 2013, 07:44
- Location: Indiana, United States
- Has thanked: 121 times
- Been thanked: 445 times
Who is online
Users browsing this forum: No registered users and 23 guests