It is currently 18 Jul 2025, 23:44
   
Text Size

Kaladesh - Development

Moderator: CCGHQ Admins

Re: Kaladesh - Development

Postby Xander9009 » 24 Sep 2016, 18:28

Don't worry about the art. It only take a few seconds to fix thanks to Google Drive's inherent search ability, even for previous versions of files.

Self-Assembler: Change it's subtype type use "Assemblyworker". Use "CREATURE_TYPE_ASSEMBLYWORKER". It won't work until the next CW repack, but it should at that point. There are a few cards in the CW already (some since before the CW even existed) that suffered from this and were never caught.

The issue is there's a bug in the engine. It's supposed to replace the - in <SUBTYPE metaname="Assembly-Worker" /> with an underscore, but it doesn't. So, it had trouble with the built-in variable CREATURE_TYPE_ASSEMBLY_WORKER, which has an underscore. I've fixed this by defining "ASSEMBLYWORKER" as a new creature type. It will still display in-game the same as before, but it will actually work behind the scenes. Any Assembly-Worker creatures that come out in the future will need to be manually changed.

Bomat Courier: You're trying to get chest 'i' in the LinkedDC() without every setting that variable 'i' to anything. Replace the 'i' references with 0. This appears multiple times in both the first and second abilities. Also, any ability that needs to use LinkedDC() must have 'linked_ability_group="1"' in its opening tag.

Ceremonious Rejection: Sorry if I suggested "OP_IS" for that. It should be 'Add(FE_NUM_COLOURS, OP_EQUALS, 0)'.

Cultivator of Blades: GetCurrentPower() is called without GetCurrentCharacteristics().
Code: Select all
local iPower = oSource:GetCurrentPower()
Depala Pilot Exemplar: Costs have no meaning in a triggered ability. Costs are for activated abilities and certain utility abilities. You need to get X from a NumericalChoice. Have a look at Well of Lost Dreams for a working example. It limits based on the amount of life gained (with the 'GetAmount()' function), but you'll need to limit by the number of cards in your library: oController:Library_Count().

Sequestered Stash: I don't immediately see why it's not working, but one thing I do see that' incorrect is the milling. It's being done in a cost, but it's not a cost. A cost always comes before the : in an activated ability. This is just an effect, and as such should be in an RTA. This might fix your issue, if only be chance.

Take Down: Can't believe I didn't notice it. FILTER_DEFINITION doesn't exist. It should just be FILTER. '_DEFINITION' only goes on COST and TARGET filter blocks.

I'll get the list updated in a bit. Have fun! :)
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 445 times

Re: Kaladesh - Development

Postby Splinterverse » 25 Sep 2016, 09:26

Thanks for the feedback. It's so great to log-in and see these problems solved. A great way to start!

I'm back at it (having survived pre-release yesterday). Will be going through the errors you fixed first, then some missing cards, including hopefully some Energy cards.
---------------------------------------------
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: 76 times

Re: Kaladesh - Development

Postby Splinterverse » 25 Sep 2016, 12:22

Xander . . . how do we register new counters? I'm thinking of the "hour" counters for Midnight Oil (or even "scream counters" for All Hallow's Eve)?
---------------------------------------------
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: 76 times

Re: Kaladesh - Development

Postby Xander9009 » 25 Sep 2016, 12:38

In the ability that will make add the counters to something, use this line, which can be found on all cards with charge counters (as a handy, easy to remember and find reference for the future).

<COUNTER_REGISTRATION name="Charge" proliferate="11" />

Just change "Charge" to your counter's name. It goes inside the ability, but not inside any other blocks. So, like this:
Code: Select all
<ACTIVATED_ABILITY>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{T}: Put a charge counter on Lux Cannon.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{T} : Mettez un marqueur « charge » sur le Canon-lux.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{T}: Pon un contador de carga sobre el Cañón de luz.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{T}: Lege eine Ladungsmarke auf die Lux-Kanone.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{T}: Metti un segnalino carica sul Cannone Lux.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{T}:光明の大砲の上に蓄積カウンターを1個置く。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{T}: Put a charge counter on Lux Cannon.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{T}: положите один жетон заряда на Световую Пушку.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{T}: Coloque um marcador de carga sobre Canhão de Luz.]]></LOCALISED_TEXT>
      <COST type="TapSelf" />
      <COUNTER_REGISTRATION name="Charge" proliferate="11" />
      <RESOLUTION_TIME_ACTION>
         if EffectSource() ~= nil then
            EffectSource():AddCounters( MTG():GetCountersType( "Charge" ), 1 )
         end
      </RESOLUTION_TIME_ACTION>
      <AI_AVAILABILITY type="in_response" response_source="1" />
      <AI_AVAILABILITY window_step="end_of_turn" window_turn="their_turn" type="window" />
   </ACTIVATED_ABILITY>
Oh, and the "11" should be "0" if the counter is neither beneficial nor harmful. "-11" for harmful ones. It just lets proliferate know if it should add another of that counter type. So, the scream counters would be -11, since their controller would not want to add more (most likely).
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 445 times

Re: Kaladesh - Development

Postby Splinterverse » 26 Sep 2016, 00:14

Unless otherwise mentioned, the cards below were uploaded with corresponding LQ art.

BLUE
Coded, tested, uploaded:

Ceremonious Rejection
Metallurgic Summonings
Padeem, Consul of Innovation (HQ art uploaded previously)
Paradoxical Outcome
Select for Inspection
Shrewd Negotiation
Torrential Gearhulk
Vedalken Blademaster


BLACK
Coded, tested, uploaded:

Lost Legacy (HQ art uploaded previously)
Marionette Master (HQ art uploaded previously)
Night Market Lookout
Noxious Gearhulk
Ovalchase Daredevil (HQ art uploaded previously)
Rush of Vitality
Syndicate Trafficker
Underhanded Designs


RED
Coded, tested, uploaded:

Renegade Firebrand


ARTIFACT
Coded, tested, uploaded:

Metalwork Colossus
Perpetual Timepiece
Torch Gauntlet


PROBLEM CARDS:

I have attached the code for these in a .zip. Too many to make pastebins for.

Bomat Courier - Cards are now being exiled face down, but when I pay for his ability to return the exiled cards, they don't retun. They stay exiled faced down in perpetuity.

Cultivator of Blades - Same issues. Doesn't get +1/+1 counter version of his power, so when others attack, they don't get the full +X/+X he is supposed to grant.

Malfunction - Of course this one wouldn't work with that card name! It taps the card for a turn, but then it untaps on the next turn. It also puts a "tap and hold" badge on it, but that doesn't seem to make a difference. I can attack with the enchanted creature.

Midnight Oil - This card does a lot of things and nearly all of them are working. The one effect that is not is the limiting of the maximum hand size. Perhaps I've calculated it wrong or something. Since the .zip upload below I did add a line to make sure it only triggers on it's owner's turn, so you can ignore that bit.

Morbid Curiosity - The sacrifice happens, but the draw based on cmc of sacrifice does not fire.

Rashmi Eternities Crafter - She triggers appropriately on the first spell cast. The issue is that she doesn't reveal the top of the library or allow you to cast it. She makes the call without showing the card. So sometimes it gets cast, sometimes it ends up in your hand, or somethings nothing since the cmc does not qualify for action. There's a lot going on with this card, and I feel like it's close.

Scrapheap Scrounger - This works perfectly until you get to the part in it's second ability where it is supposed to come out of the graveyard. It hangs up the game and causes a crash. Everything up to that point performs perfectly.

Self-Assembler - Same story. Can't look for fellow Assembly-Worker types in the library.

Sequestered Stash - This one is close. It just doesn't mill cards. At one point, I had it milling after the target selection, but now that doesn't appear to be happening either. The latest version I think I tried a prequisite to force the mill to happen first. Maybe I should make the mill a cost, even though it technically isn't?

Subtle Strike - This one (and Saheeli's Artistry which I didn't upload) have the same issue. You can choose one or both. When you choose either one, they work. When you choose both, they don't. I have tried copying the Branching Bolt method with an abbreviated step 3, but that didn't work. The latest version has repeated target definitions. That didn't work either. Just need to figure out mode 3 and we'll be good here.

Take Down - This card hates my guts. The second option just won't work.

Thriving Turtle - My first attempt at an energy card. When I cast it, it says one reservation, which I think is good. When you zoom in on the card, it says "You have two energy", which is also good. But when I try to use the ability, it doesn't fire even though I have the energy to use it.

Tidy Conclusion - Destruction works fine, but the life gain on the number of artifacts I control isn't firing.

Veteran Motorist - He doesn't pump up the vehicle when crews one.


NOTES:

-- Aetherborn is still showing up as [CREATURE_TYPE_AETHERBORN] in game for me on the midline of the card. Not a big deal, just wanted to let you know.

-- With Vehicles, do you think we could display the P/T that will be granted when crewed somewhere? Maybe as info text. It's real easy to forget what the P/T if you haven't played the deck or card in a while. Maybe an italic message similar to ability descriptions . . . something like When crewed, Demolition Stomper becomes a 10/7 creature.


NEXT:

-- There are only a few non-energy cards left to do, so I will be working on those as well as any fixes Xander has for me tomorrow. I took the day off so that I could hopefully get more coding in.

-- Thanks to Xander for the ongoing help. I couldn't do this without his support.
Attachments
PROBLEM_CARDS_2016-09-25.zip
(46.47 KiB) Downloaded 204 times
---------------------------------------------
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: 76 times

Re: Kaladesh - Development

Postby Xander9009 » 26 Sep 2016, 09:51

Vehicles: I've added each vehicle's PT to its Crew line.

Bomat Courier - Cards are now being exiled face down, but when I pay for his ability to return the exiled cards, they don't retun. They stay exiled faced down in perpetuity.
EffectSource():GetController() isn't working. It's failing because EffectSource() was in a different zone when the ability was activated vs when it resolves. Using EffectController() fixes this. Lines 55, 100, and 115 all need this change. 55 needs it in case you activate the ability while attacking. THe card should still be exiled, even though that won't happen until after the other cards are returned, and as such it will be gone permanently. But it should still be exiled.

Also, I'd suggest adding this code to the first ability.
Code: Select all
<RESOLUTION_TIME_ACTION>
   local oSource = EffectSource()
   local oChest = LinkedDC():Get_Chest(0)
   if oSource ~= nil and oChest ~= nil then
      local oCard = oChest:Get_CardPtr(oChest:Get_Int(0))
      if oCard ~= nil then
         oCard:NailOnto(oSource)
      end
   end
</RESOLUTION_TIME_ACTION>
This way, it's clearly visible how many cards will be put back into your hand. (Pyxis of Pandemonium doens't have this code, but it probably should have some variation of, so I'll probably fix that at some point.)

I tested with the above fixes and it worked.
Entire tested code | Open
Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="1">
   <FILENAME text="BOMAT_COURIER_CW_417772" />
   <CARDNAME text="BOMAT_COURIER" />
   <TITLE>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Bomat Courier]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Messager de Bomat]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Mensajero de Bomat]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Bomat-Kurier]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Corriere di Bomat]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[ボーマットの急使]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[보맷 배달기계]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Боматский Посыльный]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Mensageiro de Bomat]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[博默区讯使]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[博默區訊使]]></LOCALISED_TEXT>
   </TITLE>
   <MULTIVERSEID value="417772" />
   <ARTID value="BOMAT_COURIER" />
   <ARTIST name="Craig J Spearing" />
   <CASTING_COST cost="{1}" />
   <TYPE metaname="Artifact" />
   <TYPE metaname="Creature" />
   <SUB_TYPE metaname="Construct" />
   <EXPANSION value="KLD" />
   <RARITY metaname="R" />
   <POWER value="1" />
   <TOUGHNESS value="1" />
   <STATIC_ABILITY>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Haste]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Célérité]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Prisa.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Eile]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Rapidità]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[速攻]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[신속]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Ускорение]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Ímpeto]]></LOCALISED_TEXT>
      <INTRINSIC characteristic="CHARACTERISTIC_HASTE" />
   </STATIC_ABILITY>
    <TRIGGERED_ABILITY linked_ability_group="1">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Whenever Bomat Courier attacks, exile the top card of your library face down.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[À chaque fois que le Messager de Bomat attaque, exilez la carte du dessus de votre bibliothèque, face cachée.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Siempre que el Mensajero de Bomat ataque, exilia la primera carta de tu biblioteca boca abajo.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Immer wenn der Bomat-Kurier angreift, schicke die oberste Karte deiner Bibliothek verdeckt ins Exil.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ogniqualvolta il Corriere di Bomat attacca, esilia la prima carta del tuo grimorio a faccia in giù.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[ボーマットの急使が攻撃するたび、あなたのライブラリーの一番上のカードを裏向きに追放する。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[보맷 배달기계가 공격할 때마다, 당신의 서고 맨 위의 카드를 뒷면 상태로 추방한다.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Каждый раз, когда Боматский Посыльный атакует, изгоните верхнюю карту вашей библиотеки рубашкой вверх.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Toda vez que Mensageiro de Bomat atacar, exile o card do topo de seu grimório com a face voltada para baixo.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[每当博默区讯使攻击时,牌面朝下地放逐你的牌库顶牌。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[每當博默區訊使攻擊時,牌面朝下地放逐你的牌庫頂牌。]]></LOCALISED_TEXT>
      <TRIGGER value="ATTACKING" simple_qualifier="self" />
      <RESOLUTION_TIME_ACTION>
         local controller = EffectController()
         if controller ~= nil then
            local chest = LinkedDC():Get_Chest(0)
            if chest == nil then
               chest = LinkedDC():Make_Chest(0)
               chest:Set_Int(0, 0)
            end
            local card = controller:Library_GetTop()
            if card ~= nil then
               local index = chest:Int_Inc(0)
               chest:Set_CardPtr( index, card )
               chest:Protect_CardPtr(index)
               CW_Exile_ExileCardFaceDown(card)
               card:ExileFaceDown()
            end
         end
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
         local oSource = EffectSource()
         local oChest = LinkedDC():Get_Chest(0)
         if oSource ~= nil and oChest ~= nil then
            local oCard = oChest:Get_CardPtr(oChest:Get_Int(0))
            if oCard ~= nil then
               oCard:NailOnto(oSource)
            end
         end
      </RESOLUTION_TIME_ACTION>
   </TRIGGERED_ABILITY>
    <ACTIVATED_ABILITY linked_ability_group="1">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{R}, Discard your hand, Sacrifice Bomat Courier: Put all cards exiled with Bomat Courier into their owners’ hands.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{R}, défaussez-vous de votre main, sacrifiez le Messager de Bomat : Mettez toutes les cartes exilées par le Messager de Bomat dans les mains de leurs propriétaires.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{R}, descartar tu mano, sacrificar el Mensajero de Bomat: Pon todas las cartas exiliadas con el Mensajero de Bomat en las manos de sus propietarios.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{R}, wirf alle Karten aus deiner Hand ab, opfere den Bomat-Kurier: Bringe alle durch den Bomat-Kurier ins Exil geschickten Karten auf die Hand ihrer Besitzer zurück.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{R}, Scarta la tua mano, Sacrifica il Corriere di Bomat: Fai tornare in mano ai rispettivi proprietari tutte le carte esiliate dal Corriere di Bomat.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{R}, あなたの手札を捨てる, ボーマットの急使を生け贄に捧げる:ボーマットの急使により追放されたすべてのカードをオーナーの手札に加える。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{R}, 당신의 손을 버린다, 보맷 배달기계를 희생한다: 보맷 배달기계로 추방된 모든 카드를 소유자의 손으로 가져온다.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{R}, сбросьте вашу руку, пожертвуйте Боматского Посыльного: положите все изгнанные Боматским Посыльным карты в руки их владельцев.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{R}, Descarte sua mão, sacrifique Mensageiro de Bomat: Coloque todos os cards exilados com Mensageiro de Bomat nas mãos de seus donos.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[{R},弃掉你的手牌,牺牲博默区讯使:将所有以博默区讯使放逐的牌移回其拥有者手上。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[{R},棄掉你的手牌,犧牲博默區訊使:將所有以博默區訊使放逐的牌移回其擁有者手上。]]></LOCALISED_TEXT>
      <COST mana_cost="{R}" type="Mana" />
      <COST type="SacrificeSelf" />
      <COST type="generic">
         <PREREQUISITE>
            return true
         </PREREQUISITE>
         <RESOLUTION_TIME_ACTION>
            local Controller = EffectController()
            if Controller ~= nil then
               Controller:DiscardHand()
            end
         </RESOLUTION_TIME_ACTION>
      </COST>
      <RESOLUTION_TIME_ACTION>
         local controller = EffectController()
         if controller ~= nil then
            local chest = LinkedDC():Get_Chest(0)
            if chest ~= nil then
               local index = chest:Get_Int(0)
               for j=1, index do
                  local card = chest:Get_CardPtr(j)
                  if card ~= nil then
                     card:TurnFaceUp()
                  end
               end
            end
         end
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
         local controller = EffectController()
         if controller ~= nil then
            local chest = LinkedDC():Get_Chest(0)
            if chest ~= nil then
               local index = chest:Get_Int(0)
               for j=1, index do
                  local card = chest:Get_CardPtr(j)
                  if card ~= nil then
                     card:PutInHand( controller )
                  end
               end
            end
         end
      </RESOLUTION_TIME_ACTION>
   </ACTIVATED_ABILITY>
   <HELP title="MORE_INFO_BADGE_TITLE_14" body="MORE_INFO_BADGE_BODY_14" zone="ZONE_ANY" />
   <SFX text="COMBAT_BLUNT_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
   <SFX text="COMBAT_BLUNT_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
   <AI_BASE_SCORE score="900" zone="ZONE_BATTLEFIELD" />
   <AUTHOR><![CDATA[Splinterverse]]></AUTHOR>
   <EDITORS><![CDATA[Splinterverse]]></EDITORS>
   <DATE><![CDATA[23-09-16]]></DATE>
</CARD_V2>
Cultivator of Blades - Same issues. Doesn't get +1/+1 counter version of his power, so when others attack, they don't get the full +X/+X he is supposed to grant.
First, the simple issue I see: remove always_prompt="1" from the may tag. That's meant for abilities that are relatively likely to be harmful. If a player enables the option "Always use optional abilities", then cards with <MAY> will automatically answer yes, where with <MAY always_prompt="1" />, even players with that option enabled are asked, which isn't really needed for powering up your own creatures.

Secondly, calling the current power inside of the RTA will result in incorrect behavior if Cultivator of Blaes's power changes after the ability resolves. If his power were to increase or decrease later, the other creatures should not be affected by that, but they will be with the current code. Use this code.
Code: Select all
      <RESOLUTION_TIME_ACTION>
         EffectDC():Set_Int(0, EffectSource():GetCurrentPower())
      </RESOLUTION_TIME_ACTION>
      <CONTINUOUS_ACTION layer="7C" filter_id="0">
         local power = EffectDC():Get_Int(0)
         if FilteredCard() ~= nil then
            FilteredCard():GetCurrentCharacteristics():Power_Add(power)
            FilteredCard():GetCurrentCharacteristics():Toughness_Add(power)
         end
      </CONTINUOUS_ACTION>
I tested it and it worked, even with counters involved.

I suspect the reason it was having issues was because of the GetCurrentPower function being called inside of a CA.

Malfunction - Of course this one wouldn't work with that card name! It taps the card for a turn, but then it untaps on the next turn. It also puts a "tap and hold" badge on it, but that doesn't seem to make a difference. I can attack with the enchanted creature.
... The (not technically) irony here is strong. It works perfectly for me... No changes at all, just loaded it up and it worked.

Midnight Oil - This card does a lot of things and nearly all of them are working. The one effect that is not is the limiting of the maximum hand size. Perhaps I've calculated it wrong or something. Since the .zip upload below I did add a line to make sure it only triggers on its owner's turn, so you can ignore that bit.
Hour counters should have proliferate="11". The owner wants as many hour counters as they can get.

Line 87: LinkedDC() has no meaning outside of a linked_ability_group ability, and it's never used anywhere else in the card (which is the general purpose of LinkedDC()). You don't want some stored pointer; you just want the controller. Use EffectController there.

Morbid Curiosity - The sacrifice happens, but the draw based on cmc of sacrifice does not fire.
"compartment" is the register the selected items will be in. 'compartment="1"' means you'd need to use 'EffectDC():Get_Targets(1)' to find the selected items. 'compartment="5"' would need 'EffectDC():Get_Targets(5)'.

Note that you can fix this by either changing the compartment to 0 (so it matches the target retrieval) or by changing 'Get_Targets(1)' to 'Get_Targets(0)' to match the compartment. If you change the compartment to 1, then you also need to change the Set_Int(1, cmc) to use a different number, since they'd both be in register 1 of EffectDC(), and thus would interfere with one another. (It would probably technically work, but it's terrible practice unless you're extremely familiar with what you're doing.)

Rashmi Eternities Crafter - She triggers appropriately on the first spell cast. The issue is that she doesn't reveal the top of the library or allow you to cast it. She makes the call without showing the card. So sometimes it gets cast, sometimes it ends up in your hand, or somethings nothing since the cmc does not qualify for action. There's a lot going on with this card, and I feel like it's close.
First up, before I even look at the card, I get the impression you're expecting a card that's too expensive to just stay on top of the library, but that's not the case. According to the wording of the card, if it's not cast, then it goes into your hand. If it's too expensive, that just means you can't cast it. But just because you couldn't doesn't nullify the "if you didn't cast it" section. It will always either be cast or put into your hand.

Line 79: It tries to get the player from a target chest and player pointer, neither of which are ever created or defined. Change it to EffectController() and see if that helps. Then change
Code: Select all
if result == 0 then
   player:CastSpellForFree(to_cast)
end
if result == 1 then
   player:DrawCards(1)
end
to
Code: Select all
if result == 0 then
   player:CastSpellForFree(to_cast)
else
   player:DrawCards(1)
end
Finally, you should make sure the player actually can can cast the spell for free. This will check targets and whatnot. 'player:CanCastSpellForFree(to_cast)' needs added to both line 71 and line 92.

Scrapheap Scrounger - This works perfectly until you get to the part in its second ability where it is supposed to come out of the graveyard. It hangs up the game and causes a crash. Everything up to that point performs perfectly.
For the cost, copy Balduvian Dead instead of Back from the Brink (or whichever one it was). Back from teh Brink has a complicated mana cost component. But neitehr Scrapheap Scrounger nor Balduvian Dead do. The only difference for their costs is that Scrapheap Scrounger will need filter:Add(FE_CARD_INSTANCE, OP_NOT, EffectSource()) added.

Also, it's not supposed to go to your hand. It's supposed to go to the battlefield. EffectSource():PutOntoBattlefield(EffectController())

Yo'uve also got <AVAILABILITY sorcery_time="1" /> even though the ability says nothing about sorcery time. That tag is for abilities with the restriction "only activate this ability any time you could cast a sorcery."

Self-Assembler - Same story. Can't look for fellow Assembly-Worker types in the library.
You never changed the subtype. Line 37: '<SUB_TYPE metaname="Assembly-Worker" />' -> '<SUB_TYPE metaname="Assemblyworker" />'.

Sequestered Stash - This one is close. It just doesn't mill cards. At one point, I had it milling after the target selection, but now that doesn't appear to be happening either. The latest version I think I tried a prerequisite to force the mill to happen first. Maybe I should make the mill a cost, even though it technically isn't?
Actually, it never says target. You're not targeting anything, you're just choosing. You should actually be using the function EffectController():ChooseItem(). Have a look at Corpse Churn, which is extemely similar. Change creature to artifact, and change PutIntoHand to PutOnTopOfLibrary, and it's otherwise the same (don't forget the text tag).

Subtle Strike - This one (and Saheeli's Artistry which I didn't upload) have the same issue. You can choose one or both. When you choose either one, they work. When you choose both, they don't. I have tried copying the Branching Bolt method with an abbreviated step 3, but that didn't work. The latest version has repeated target definitions. That didn't work either. Just need to figure out mode 3 and we'll be good here.
When I'm making a modal card, I always try to keep the definition and compartment the same as the mode when possible. It creates a lot less confusion, since for any one mode, the numbers are all the same.

| Open
Code: Select all
    <SPELL_ABILITY>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Choose one or both — Target creature gets -1/-1 until end of turn; and/or Put a +1/+1 counter on target creature.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Choisissez l’un ou les deux — La créature ciblée gagne -1/-1 jusqu’à la fin du tour; et/ou Mettez un marqueur +1/+1 sur la créature ciblée.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Elige uno o ambos: La criatura objetivo obtiene -1/-1 hasta el final del turno; y/o Pon un contador +1/+1 sobre la criatura objetivo.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Bestimme eines oder beides — Eine Kreatur deiner Wahl erhält -1/-1 bis zum Ende des Zuges; und/oder Lege eine +1/+1-Marke auf eine Kreatur deiner Wahl.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Scegli uno o entrambi — Una creatura bersaglio prende -1/-1 fino alla fine del turno; e/o Metti un segnalino +1/+1 su una creatura bersaglio.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Choose one or both — Target creature gets -1/-1 until end of turn; and/or Put a +1/+1 counter on target creature.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Choose one or both — Target creature gets -1/-1 until end of turn; and/or Put a +1/+1 counter on target creature.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Выберите одно или оба — Целевое существо получает -1/-1 до конца хода; и (или) Положите один жетон +1/+1 на целевое существо.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Escolha um ou ambos — A criatura alvo recebe -1/-1 até o final do turno; e/ou Coloque um marcador +1/+1 na criatura alvo.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[Choose one or both — Target creature gets -1/-1 until end of turn; and/or Put a +1/+1 counter on target creature.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[Choose one or both — Target creature gets -1/-1 until end of turn; and/or Put a +1/+1 counter on target creature.]]></LOCALISED_TEXT>
      <MODE_SELECT tag="MODE_CHOOSE_ONE">
         <MODE tag="CARD_QUERY_CHOOSE_CREATURE_GETS_-1_-1" index="1" />
         <MODE tag="CARD_QUERY_CHOOSE_CREATURE_GETS_1_1_COUNTER" index="2" />
         <MODE tag="CARD_QUERY_DO_BOTH" index="3" />
      </MODE_SELECT>
      
      --Mode 1
      <TARGET tag="CARD_QUERY_CHOOSE_CREATURE_GETS_-1_-1" definition="1" compartment="1" mode="1" count="1" />
      <TARGET_DEFINITION id="1">
         local filter = ClearFilter()
         filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
      </TARGET_DEFINITION>
      <CONTINUOUS_ACTION layer="7C" mode="1">
         local target = EffectDC():Get_Targets(1) and EffectDC():Get_Targets(1):Get_CardPtr(0)
         if target ~= nil then
            local characteristics = target:GetCurrentCharacteristics()
            characteristics:Power_Add( -1 )
            characteristics:Toughness_Add( -1 )
         end
      </CONTINUOUS_ACTION>
      <DURATION simple_duration="UntilEOT" />
      
      --Mode 2
      <TARGET tag="CARD_QUERY_CHOOSE_CREATURE_GETS_1_1_COUNTER" definition="2" compartment="2" mode="2" count="1" />
      <TARGET_DEFINITION id="2">
         local filter = ClearFilter()
         filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
      </TARGET_DEFINITION>
      <RESOLUTION_TIME_ACTION mode="2">
         local target_creature = EffectDC():Get_Targets(2) and EffectDC():Get_Targets(2):Get_CardPtr(0)
         if target_creature ~= nil then
            target_creature:AddCounters( MTG():PlusOnePlusOneCounters(), 1)
         end
      </RESOLUTION_TIME_ACTION>
      
      -- Mode 3
      <TARGET tag="CARD_QUERY_CHOOSE_CREATURE_GETS_-1_-1" definition="3" compartment="3" mode="3" count="1" />
      <TARGET_DEFINITION id="3">
         local filter = ClearFilter()
         filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
      </TARGET_DEFINITION>
      <CONTINUOUS_ACTION layer="7C" mode="3">
         local target = EffectDC():Get_Targets(3) and EffectDC():Get_Targets(3):Get_CardPtr(0)
         if target ~= nil then
            local characteristics = target:GetCurrentCharacteristics()
            characteristics:Power_Add( -1 )
            characteristics:Toughness_Add( -1 )
         end
      </CONTINUOUS_ACTION>
      <TARGET tag="CARD_QUERY_CHOOSE_CREATURE_GETS_1_1_COUNTER" definition="4" compartment="4" mode="3" count="1" />
      <TARGET_DEFINITION id="4">
         local filter = ClearFilter()
         filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
      </TARGET_DEFINITION>
      <RESOLUTION_TIME_ACTION mode="3">
         local target_creature = EffectDC():Get_Targets(4) and EffectDC():Get_Targets(4):Get_CardPtr(0)
         if target_creature ~= nil then
            target_creature:AddCounters( MTG():PlusOnePlusOneCounters(), 1)
         end
      </RESOLUTION_TIME_ACTION>
      <AI_SIMPLIFIED_TARGETING compartment="1" hint="HINT_NEUTRAL" />
      <AI_SIMPLIFIED_TARGETING compartment="2" hint="HINT_ENEMY_ONLY" />
      <AI_SIMPLIFIED_TARGETING compartment="3" hint="HINT_ALLIED_ONLY" />
      <AI_SIMPLIFIED_TARGETING compartment="4" hint="HINT_NEUTRAL" />
   </SPELL_ABILITY>
Line 104 (in the full card, not this snippet) had mode="2" instead of mode="3". There's not guarantee that's the only issue, but it's the only one I see right now.

Take Down - This card hates my guts. The second option just won't work.
Line 66 should be filter_id="1". id="#" is for cost and target definition blocks. filter_id="#" is for filter blocks. Tested.

Thriving Turtle - My first attempt at an energy card. When I cast it, it says one reservation, which I think is good. When you zoom in on the card, it says "You have two energy", which is also good. But when I try to use the ability, it doesn't fire even though I have the energy to use it.
Two problems. First issue is in the first ability. It says to add two energy, but it has "CW_Cost_EnergyAdd(3)" instead of "CW_Cost_EnergyAdd(2)". Second, "CW_Cost_PayEnergy(2{, oPlayer = EffectController()})". The section that says "{, oPlayer = EffectController()}" is just a way of looking at a function and seeing that there is a second parameter. That parameter is "oPlayer", but because it's in {braces}, it's optional. If you don't provide it, it will default to "EffectController()". So, to make EffectController() pay two energy, just use "CW_Cost_PayEnergy(2)". To make some other player pay two energy, you'd use "CW_Cost_PayEnergy(2, SomeOtherPlayerVariable)".

Also, you should put the energy payment function inside of the nil check. Since the payment is supposed to happen without anything being able to interfere between the payment and the result, if the result can't happen, then the payment shouldn't either.

Tidy Conclusion - Destruction works fine, but the life gain on the number of artifacts I control isn't firing.
The code for the life gain section isn't inside of an RTA. It's not inside any action block, in fact.

Veteran Motorist - He doesn't pump up the vehicle when crews one.
I tested this and it worked?

----

You didn't ask about Depela, Pilot Exemplar, but I do see one thing with it that might need changed. It would probably work as it, at least on teh surface, but under some corner cases it would behave incorrectly. Corner cases aren't a big deal when they're hard to fix but in this case, it's easy. Line 71. 'filter:Add( FE_CARD_INSTANCE, OP_NOT, EffectSource() )' -> 'filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)'.

Also, the last ability has some issues. I've used the following code. It's mostly written from scratch, not changes to the code that was already there. Some bits, however, were taken from both the code already there (the numerical choice) and from Sylvan Messenger (except it properly does a random order, which I think yours also did, but Sylvan Messenger doesn't). There shouldn't be any choice about which cards to put into your hand, and that was the core of the issue with the present code. I've already uploaded this one in particular, since I recoded so much of it to (sorry about that). So, don't worry about this one.
Tested code | Open
Code: Select all
    <TRIGGERED_ABILITY>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Whenever Depala, Pilot Exemplar becomes tapped, you may pay {X}. If you do, reveal the top X cards of your library, put all Dwarf and Vehicle cards from among them into your hand, then put the rest on the bottom of your library in a random order.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[À chaque fois que Dépala, archétype de pilote devient engagée, vous pouvez payer {X}. Si vous faites ainsi, révélez les X cartes du dessus de votre bibliothèque, mettez toutes les cartes de nain et de véhicule parmi elles dans votre main, puis mettez le reste au-dessous de votre bibliothèque dans un ordre aléatoire.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Siempre que Depala, piloto ejemplar se gire, puedes pagar {X}. Si lo haces, muestra las X primeras cartas de tu biblioteca, pon todas las cartas de Enano y de Vehículo que se encuentren entre ellas en tu mano, y luego pon el resto en el fondo de tu biblioteca en un orden aleatorio.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Immer wenn Depala, vorbildliche Pilotin, getappt wird, kannst du {X} bezahlen. Falls du dies tust, decke die obersten X Karten deiner Bibliothek auf und nimm davon alle Zwerg- und Fahrzeug-Karten auf deine Hand. Lege dann den Rest in zufälliger Reihenfolge unter deine Bibliothek.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ogniqualvolta Depala, Pilota Esemplare viene TAPpata, puoi pagare {X}. Se lo fai, rivela le prime X carte del tuo grimorio, aggiungi alla tua mano tutte le carte Nano e Veicolo tra esse, poi metti le altre in fondo al tuo grimorio in ordine casuale.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[模範操縦士、デパラがタップ状態になるたび、あなたは{X}を支払ってもよい。そうしたなら、あなたのライブラリーの一番上からカードをX枚公開し、その中からすべてのドワーフ・カードとすべての機体・カードをあなたの手札に加え、その後残りをあなたのライブラリーの一番下に無作為の順番で置く。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[모범 조종사 데팔라가 탭될 때마다, 당신은 {X}를 지불할 수 있다. 그렇게 한다면, 당신의 서고 맨 위의 카드 X장을 공개하고, 그 중 모든 드워프와 탑승물 카드를 당신의 손으로 가져간 후, 나머지는 당신의 서고 맨 밑에 무작위로 놓는다.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Каждый раз, когда Депала, Образцовая Гонщица поворачивается, вы можете заплатить {X}. Если вы это делаете, покажите X верхних карт вашей библиотеки, положите все находящиеся среди них карты Гномов и Машин в вашу руку, затем положите остальные карты в низ вашей библиотеки в случайном порядке.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Toda vez que Depala, Piloto Exemplar, é virada, você pode pagar {X}. Se fizer isso, revele os X cards do topo de seu grimório, coloque todos os cards de Anão e Veículo dentre eles em sua mão e, em seguida, coloque o restante no fundo de seu grimório em ordem aleatória.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[每当驾手模范德珀拉成为横置时,你可以支付{X}。若你如此作,展示你牌库顶的X张牌,将其中所有矮人和载具牌置于你手上,然后将其余的牌以随机顺序置于你的牌库底。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[每當駕手模範德珀拉成為橫置時,你可以支付{X}。若你如此作,展示你牌庫頂的X張牌,將其中所有矮人和載具牌置於你手上,然後將其餘的牌以隨機順序置於你的牌庫底。]]></LOCALISED_TEXT>
      <TRIGGER value="BECAME_TAPPED" simple_qualifier="self" />
      <RESOLUTION_TIME_ACTION>
         local oController = EffectController()
         if oController ~= nil then
            local iMaxMana = oController:GetTotalMana()
            if iMaxMana &gt; 0 then
               oController:BeginNewNumericalChoice()
               oController:AddNumericalChoiceAnswer(iMaxMana)
               oController:AskNumericalChoiceQuestion("CARD_QUERY_DEPALA_PILOT_EXEMPLAR")
            end
         end
      </RESOLUTION_TIME_ACTION>   
      <RESOLUTION_TIME_ACTION>
         local oController = EffectController()
         if oController ~= nil then
            local iNumChoice = oController:GetNumericalChoiceResult()
            if iNumChoice &gt; 0 and oController:GetTotalMana() &gt;= iNumChoice then
               EffectDC():Set_Int(0, iNumChoice)
               oController:PayManaCost(iNumChoice)
            end
         end
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
         local oController = EffectController()
         local iNumChoice = EffectDC():Get_Int(0)
         if oController ~= nil and iNumChoice &gt; 0 then
            if oController:Library_Count() &lt; iNumChoice then
               iNumChoice = oController:Library_Count()
            end
            local iRemaining = 0
            for i=0,iNumChoice-1 do
               local oCard = oController:Library_GetNth(i)
               if oCard ~= nil then
                  if oCard:GetSubType():Test(CREATURE_TYPE_DWARF) or oCard:GetSubType():Test(ARTIFACT_TYPE_VEHICLE) then
                     oCard:GuidedReveal(ZONE_LIBRARY, ZONE_HAND)
                     oCard:PutInHand()
                  else
                     iRemaining = iRemaining + 1
                     oCard:GuidedReveal(oCard:GetZone() , ZONE_LIBRARY)
                  end
               end
            end
            EffectDC():Set_Int(0, iRemaining)
         end
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
         local oController = EffectController()
         local iRemaining = EffectDC():Get_Int(0)
         if oController ~= nil and iRemaining ~= 0 then
            while iRemaining &gt; 1 do
               local oCard = oController:Library_GetNth(math.random(1, iRemaining)-1)
               if oCard ~= nil then
                  oCard:PutOnBottomOfLibrary()
               end
               iRemaining = iRemaining - 1
            end
            local oCard = oController:Library_GetTop()
            if oCard ~= nil then
               oCard:PutOnBottomOfLibrary()
            end
         end
      </RESOLUTION_TIME_ACTION>
   </TRIGGERED_ABILITY>
I also removed the MAY tag. Since you can always choose 0 mana and end up with the same result, the may tag just forces an unnecessary window to pop up, slowing down the game.
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 445 times

Re: Kaladesh - Development

Postby Splinterverse » 26 Sep 2016, 12:42

Xander, thanks for the valuable input. I have implemented your feedback and will begin testing momentarily. I really appreciate the help. I am taking lots of notes so that (hopefully) I don't repeat the same mistakes.

I was looking over the list to see what's left to do and I noticed some uploads are missing.

The following were all previously coded, tested and uploaded with LQ art. If you do find that they are missing, let me know, and I will re-upload them.

--White--
Authority of the Consuls
Built to Last

--Blue--
Disappearing Act
Dramatic Reversal
Experimental Aviator
Failed Inspection
Gearseeker Serpent
Long-Finned Skywhale
Tezzeret's Ambition

--Black--
Dhund Operative
Dukhara Scavenger
Embraal Bruiser
Fretwork Colony
Harsh Scrutiny
Make Obsolete

--Red--
Flame Lash
Libertating Combustion
Salivating Gremlins

--Green--
Guardian of the Great Conduit
Ornamental Courage
Oviya Pashiri, Sage Lifecrafter

--Multicolor--
Depala, Pilot Examplar (I believe you have uploaded this)
Unlicensed Disintegration

--Artifact--
Cogworker's Puzzleknot
Smuggler's Copter

--Land--
Inventor's Fair

And then for the Planeswalkers, I believe somebody did them and uploaded because I saw some in the release list.

I will now test your fixes and then move on to some of the remaining cards.

EDIT: Just saw this error in Deck Manager . . .
Code: Select all
Low: Card (NISSA_VITAL_FORCE_CW_417736) in wad DATA_DLC_COMMUNITY_CORE has a FILENAME tag that does not match which will cause problems in-game: NISSA_VITAL_FORCE_417736
I know how to fix it and could, but I don't know if you or someone is in the midst of testing the planeswalkers so I will leave it alone.
---------------------------------------------
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: 76 times

Re: Kaladesh - Development

Postby Xander9009 » 26 Sep 2016, 12:55

The list has been updated. I was bust at the time I'd noticed the list you posted initially and forgot to go back to it.

As for the planesawlkers, I just hadn't marked them yet. I uploaded them after fallenangle sent them to me. I'm planning to test them later today.
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 445 times

Re: Kaladesh - Development

Postby Splinterverse » 26 Sep 2016, 13:41

Xander9009 wrote:The list has been updated. I was bust at the time I'd noticed the list you posted initially and forgot to go back to it.

As for the planesawlkers, I just hadn't marked them yet. I uploaded them after fallenangle sent them to me. I'm planning to test them later today.
No worries. It's all good.
---------------------------------------------
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: 76 times

Re: Kaladesh - Development

Postby Splinterverse » 26 Sep 2016, 14:25

Many thanks to Xander for fixes to get most of these done!

Unless noted, these uploads included LQ art.

--BLACK--
Midnight Oil
Morbid Curiosity
Subtle Strike
Tidy Conclusion

--BLUE--
Malfunction
Saheeli's Artistry

--GREEN--
Cultivator of Blades (including HQ promo art, regular HQ unavailable)
Take Down

--ARTIFACTS--
Bomat Courier
Scrapheep Scrounger

--MULTI-COLOR--
Veteran Motorist

--LANDS--
Sequestered Stash


--PROBLEM CARDS--

Rashmi Eternities Crafter http://pastebin.com/HVy1hT9E Everything is working except reveal. Maybe there needs to be a confirmation dialog box or something?

Revolutionary Rebuff http://pastebin.com/fcmBXygY Everything seems to be working up until the targeted player is asked to pay 2 or not. The multiple choice question never pops up. A window does appear, but it just hangs and I have to exit.

Self-Assembler http://pastebin.com/qZTBmHXz Replaced Assembly- with no hyphen everywhere except instructional text and it doesn't search library.

-- NOTES --
1. Xander, how are "added" types shown in the mod? Saheeli's Artistry (uploaded moments ago) adds Artifact type to the token it creates and I can't tell in-game if it has in fact added that (no change to mid-line of card). Everything else on the card is working so I'm hopeful that it is in fact being added.

2. Sequestered Stash (uploaded) appears to be working but the milling happens so fast, it seems like it is still pulling out the artifacts from the graveyard BEFORE adding the milled cards in. It's like they are both happening simultaneously. Maybe I need to add a delay or something?

3. Can I set a stored DC int in a utility cost and reference it later in a spell ability? If so, do I add linked ability to each one's tag?

4. Is there something we have to do to get the cards to show their abilities via hovering over them?

5. [EDIT TO ADD THIS QUESTION] Is there a way to refresh the Deck Builder without exiting and reloading (it takes so long)?
Last edited by Splinterverse on 26 Sep 2016, 15:02, edited 1 time in total.
---------------------------------------------
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: 76 times

Re: Kaladesh - Development

Postby Splinterverse » 26 Sep 2016, 14:45

---------------------------------------------
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: 76 times

Re: Kaladesh - Development

Postby Splinterverse » 27 Sep 2016, 00:00

3rd and final update for today.

All Kaladesh art has been uploaded (at least at SQ level) so no art to add here.

BLUE
Coded, tested and uploaded:

Aether Meltdown
Aethersquall Ancient
Hightide Hermit

RED
Coded, tested and uploaded:

Aethertorch Renegade

GREEN
Coded, tested and uploaded:

Architect of the Untamed
Attune with the Aether
Bristling Hydra
Longtusk Cub

ARTIFACTS
Coded, tested and uploaded:

Aetherworks Marvel
Decoction Module
Electrostatic Pummeler

LAND
Coded, tested and uploaded:

Aether Hub


-- PROBLEM CARDS --

Aetherstorm Roc (as well as most of my Work-In-Progress cards) http://pastebin.com/uZbmaFT0 The issue is paying an energy cost in a triggered ability. I've tried many variations of this code. I've tried putting a check for available energy in the trigger code. At this point, this particular code is auto-firing without asking (which it should since it has a may clause) and it's not paying the cost.

Confiscation Coup http://pastebin.com/keCVE60Z Targeting works as does cmc calculation, but taking control of the target object does not work. The paying of the energy cost doesn't work either, but that could be because the control part misfires.

Consulate Surveillance http://pastebin.com/HGMBX7St The effect on entry works. Activation and targeting works, but the damage the targets do to me is not prevented.

Deadlock Trap http://pastebin.com/gSn37CyJ This one is almost there. Everything works, except it won't let me target a planeswalker. Other than that, everything performs as it should.

Janjeet Sentry http://pastebin.com/aX2mKnME I had this working with a clunky multiplechoice for whether you wanted to tap or untap, but I am trying to remove that. Now, it selects the target and pays the cost, but then no tapping/untapping occurs.


-- WORK IN PROGRESS --

These cards are all in progress:

Aetherstorm Roc
Confiscation Coup
Consulate Surveillance
Consuls Shieldguard
Deadlock Trap
Eliminate the Competition
Janjeet Sentry
Rashmi, Eternities Crafter
Revolutionary Rebuff
Self-Assembler
Thriving Grubs
Thriving Ibex
Thriving Rats
Thriving Rhino
Voltaic Brawler
Whirler Virtuoso
Woodweaver's Puzzleknot


-- NEXT --

I won't be back until Wednesday. :( But I plan to continue working through the remaining Kaladesh cards. There are few that I can't figure out how to do, but I'll do as many as I can.

I'll check the list first on Wednesday to see what's still needed. First, I'll implement any fixes Xander has for me and then move on to the remaining cards.

EDIT: Updated Work in Progress list.
---------------------------------------------
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: 76 times

Re: Kaladesh - Development

Postby Splinterverse » 28 Sep 2016, 00:58

Was able to sneak some coding in today . . .

BLACK
Coded, tested, and uploaded:

Die Young
Essence Extraction
Live Fast

BLUE
Coded, tested, and uploaded:

Glimmer of Genius
Minister of Inquiries

RED
Coded, tested, and uploaded:

Harnessed Lightning
Spontaneous Artist

MULTICOLOR
Coded, tested, and uploaded:

Empyreal Voyager
Whirler Virtuoso

ARTIFACT
Coded, tested, and uploaded:

Dynavolt Tower
Glassblower's Puzzleknot
Woodweaver's Puzzleknot

Will be back tomorrow to code more of the missing Kaladesh cards. Stay tuned!
---------------------------------------------
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: 76 times

Re: Kaladesh - Development

Postby Splinterverse » 28 Sep 2016, 13:35

Back online. Coding missing Kaladesh cards. Expect an update from me later on today.
---------------------------------------------
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: 76 times

Re: Kaladesh - Development

Postby Xander9009 » 28 Sep 2016, 15:39

I removed the new version of demolish because there was already one in the CW. I copied over the new flavortext, the artist (since it likely ended up with the new art), and added you as an editor to the original. Just trying to avoid unnecessary duplicates (one of the major goals of the CW). Also, going to go update the OP now with the new cards.
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 445 times

PreviousNext

Return to 2014

Who is online

Users browsing this forum: No registered users and 8 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 8 users online :: 0 registered, 0 hidden and 8 guests (based on users active over the past 10 minutes)
Most users ever online was 7303 on 15 Jul 2025, 20:46

Users browsing this forum: No registered users and 8 guests

Login Form