It is currently 03 Aug 2025, 07:50
   
Text Size

TFM&G2K's Planeswalkers Pool v8g (12/Sep/2014)

Moderator: CCGHQ Admins

Re: TFM&G2K's Planeswalkers Pool v7 (08/Aug/2014)

Postby gorem2k » 11 Aug 2014, 11:19

Hey mister TFM, do you think it would be a good idea to make a second wad containing only cards dependent to planeswalkers? something like DATA_DLC_PLW_CS.WAD (complementary set) some people make decks with incompatible cards. Or maybe mix them within the main PLW.WAD?

I know dotp2014 is not really a priority these days. But personally, the more I experiment with dotp2015, the more I dislike it. I think they did a good job making this unfriendly to modders. They're about to hard-code every cards into the main .EXE file just to put a definitive stop on us :(

And I know for sure, I can't imagine myself playing the game without having a minimum freedom for creativity, manual mana, and planeswalkers!

That said, even if Rick or somebody else can decrypt the game, I don't think this new file system will be enjoyable for modders.

Any thoughts?
gorem2k
 
Posts: 464
Joined: 01 Apr 2013, 04:21
Has thanked: 48 times
Been thanked: 33 times

Re: TFM&G2K's Planeswalkers Pool v7 (08/Aug/2014)

Postby thefiremind » 11 Aug 2014, 15:03

gorem2k wrote:Hey mister TFM, do you think it would be a good idea to make a second wad containing only cards dependent to planeswalkers? something like DATA_DLC_PLW_CS.WAD (complementary set) some people make decks with incompatible cards. Or maybe mix them within the main PLW.WAD?
That could be done... but I won't do that personally. If you want to make that set, feel free to do so.

gorem2k wrote:even if Rick or somebody else can decrypt the game, I don't think this new file system will be enjoyable for modders.
I'd like to see what's inside DATA_000.ZED and make a few tests before saying that. I don't plan on going back to DotP2014 no matter what, so it's either DotP2015 or the end of my modding times. I'll keep giving help on the forums and care about the Planeswalkers Pool as long as I still feel like doing so.
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
User avatar
thefiremind
Programmer
 
Posts: 3515
Joined: 07 Nov 2011, 10:55
Has thanked: 118 times
Been thanked: 722 times

Re: TFM&G2K's Planeswalkers Pool v7 (08/Aug/2014)

Postby gorem2k » 11 Aug 2014, 23:31

thefiremind wrote:If you want to make that set, feel free to do so.
Ok, that will give me a standpoint.

thefiremind wrote:I'll keep giving help on the forums and care about the Planeswalkers Pool as long as I still feel like doing so.
Alright, this next question ain't about Planeswalkers Pool but a card i'm trying to do: The Chain Veil. Now this one require PW activation monitoring.

Each current PW have this:
Code: Select all
<AVAILABILITY per_turn_limit="1" sorcery_time="1" />
Do you think we could remove per_turn_limit="1" since there's already a rule for activation limit in PW manager? Or am I missing something?

What would be your modus operandi :idea:
gorem2k
 
Posts: 464
Joined: 01 Apr 2013, 04:21
Has thanked: 48 times
Been thanked: 33 times

Re: TFM&G2K's Planeswalkers Pool v7 (08/Aug/2014)

Postby thefiremind » 12 Aug 2014, 00:05

gorem2k wrote:Do you think we could remove per_turn_limit="1" since there's already a rule for activation limit in PW manager?
I think we can, it's redundant.
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
User avatar
thefiremind
Programmer
 
Posts: 3515
Joined: 07 Nov 2011, 10:55
Has thanked: 118 times
Been thanked: 722 times

Re: TFM&G2K's Planeswalkers Pool v7 (08/Aug/2014)

Postby gorem2k » 12 Aug 2014, 03:27

Ok, I have started an expansion (or complementary set) for planeswalkers. I will post it on my DLC mod page if TFM don't want it here.

I added a new constant in D14_PLW.LOL :
Code: Select all
PLW_LOYALTY_ABILITY_PLAYED = 2
And here's what I've modified in _PLANESWALKERS_MANAGER_991800002.XML:

Code: Select all
  <!-- 3. Planeswalkers' abilities can be played only once per turn -->
  <TRIGGERED_ABILITY replacement_effect="1">
    <TRIGGER value="ACTIVATED_ABILITY_PLAYED">
    if PLW_IsInNameSet( TriggerObject(), "PLANESWALKERS" ) then
       PLW_MyPlayerDC( TriggerObject():GetOwner() ):Set_Int(PLW_LOYALTY_ABILITY_PLAYED, 1)
       return true
    end
    return false
    </TRIGGER>
    <CONTINUOUS_ACTION layer="8">
    if TriggerObject() ~= nil then
       TriggerObject():GetCurrentCharacteristics():Bool_Set(CHARACTERISTIC_CANT_USE_ACTIVATED_ABILITIES, 1)
    end
    </CONTINUOUS_ACTION>
    <DURATION simple_duration="UntilEOT" />
  </TRIGGERED_ABILITY>
I've also removed all instance of per_turn_limit="1" to each planeswalkers.

And finally, I've migrated Tarmogoyf and his TDX to my PLW_CS mod. The Chain Veil is now working, you can now make wicked combos with Nissa, Worldwaker and Tezzeret the Seeker or whatever... I plan on adding recent/reprints 'enchantment removals' as well ( Back to Nature, Merciless Eviction, etc )

Let me know if it's alright with you. I will do some test with cards that enchant permanents and shutdown activated abilities. That's it for now folks! :D

EDIT: Ooops, I should've look closer to the ruling. It seems you can stack the last ability of Chain Veil, which in my version, doesn't. #-o This probably mean I will have to keep track of each planeswalker's activation count. I may need some help here.

M15 RELEASE NOTES for the Chain Veil

1. For the first ability, it doesn't matter whether the planeswalker is still on the battlefield as your end step begins. If you activated one of its loyalty abilities that turn, The Chain Veil's triggered ability won't trigger.
2. Because the last ability modifies the rules of the game, it affects not only planeswalkers you control when it resolves, but also planeswalkers that come under your control later in the turn.
3. After the last ability resolves, you'll essentially be able to activate a loyalty ability of each planeswalker you control a total of twice during your turn. The timing rules for when you can activate loyalty abilities apply each time; it must be your main phase and the stack must be empty.
4. The second loyalty ability you activate doesn't have to be the same as the first ability. For example, you could activate a planeswalker's first ability twice, or you could activate a planeswalker's first ability, then activate its second ability.
5. Each additional time The Chain Veil's last ability resolves will allow you to activate a loyalty ability of each planeswalker you control an additional time. For example, if you activate The Chain Veil's last ability, untap it, then activate it again, you can activate a loyalty ability of a planeswalker you control three times that turn.
RULE #2 doesn't make any sense. the card clearly says "For each planeswalker you control, ". the bonus loyalty shouldn't work on planeswalkers entering later after the effect resolve!!! i don't get this.
Last edited by gorem2k on 17 Aug 2014, 10:29, edited 1 time in total.
gorem2k
 
Posts: 464
Joined: 01 Apr 2013, 04:21
Has thanked: 48 times
Been thanked: 33 times

Re: TFM&G2K's Planeswalkers Pool v7 (08/Aug/2014)

Postby thefiremind » 12 Aug 2014, 07:50

gorem2k wrote:RULE #2 doesn't make any sense. the card clearly says "For each planeswalker you control, ". the bonus loyalty shouldn't work on planeswalkers entering later after the effect resolve!!! i don't get this.
It makes sense, it's like Dauntless Escort before "indestructible" became a real ability: if you look at its old code it was player-based rather than creature-based.
I think it's still doable (unless I'm forgetting something): make a fake player characteristic (I already inserted my player DC function for Ajani Steadfast, you can reuse it) that increments for each activation of the Chain Veil, and another chest in the player DC that associates an activation count for each Planeswalker with the usual format:
Code: Select all
register #0: count
register #1: pointer to Planeswalker #1
register #2: number of activations made for Planeswalker #1
register #3: pointer to Planeswalker #2
register #4: number of activations made for Planeswalker #2
...
Then, inside the manager, move the check from the TRIGGER to the CONTINUOUS_ACTION, so that you can still modify the player registers in order to get additional activations. The check will compare The Chain Veil's activations against the Planeswalker's activations: if you activated the Planeswalker more than The Chain Veil's activations plus 1, then you enforce CHARACTERISTIC_CANT_USE_ACTIVATED_ABILITIES, otherwise you don't.
Wipe all the data at the start of each turn.

About the complementary set, no problem about posting it here: I'll always keep an updated link in the first post.
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
User avatar
thefiremind
Programmer
 
Posts: 3515
Joined: 07 Nov 2011, 10:55
Has thanked: 118 times
Been thanked: 722 times

Re: TFM&G2K's Planeswalkers Pool v7 (08/Aug/2014)

Postby gorem2k » 12 Aug 2014, 08:35

thefiremind wrote:It makes sense, it's like Dauntless Escort before "indestructible" became a real ability: if you look at its old code it was player-based rather than creature-based.
So that means the word "you" in the "creatures you control," sentence is more important than "creatures" or "planeswalkers" I guess. Because the way you explain this it's basically giving a temporary emblem to the player that , in turn, affects the creatures.

They could've worded something like "During this turn, you may play an additional loyalty ability on each planeswalkers you control as though as blablabla" even if they are not on battlefield already heheh... very odd

For each planeswalker you control, you may activate one of its loyalty abilities once this turn as though none of its loyalty abilities have been activated this turn.
Two "this turn" in same rule.

thefiremind wrote:I think it's still doable (unless I'm forgetting something): make a fake player characteristic (I already inserted my player DC function for Ajani Steadfast, you can reuse it) that increments for each activation of the Chain Veil,
Ok, I will try using increments. Thanks!
Last edited by gorem2k on 12 Aug 2014, 08:46, edited 1 time in total.
gorem2k
 
Posts: 464
Joined: 01 Apr 2013, 04:21
Has thanked: 48 times
Been thanked: 33 times

Re: TFM&G2K's Planeswalkers Pool v7 (08/Aug/2014)

Postby thefiremind » 12 Aug 2014, 08:37

gorem2k wrote:They could've worded something like "During this turn, you may play an additional loyalty ability on each planeswalkers you control as though as blablabla" even if they are not on battlefield already heheh... very odd
I agree, I'm not a fan of that kind of wording, either. :)
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
User avatar
thefiremind
Programmer
 
Posts: 3515
Joined: 07 Nov 2011, 10:55
Has thanked: 118 times
Been thanked: 722 times

Re: TFM&G2K's Planeswalkers Pool v7 (08/Aug/2014)

Postby volrathxp » 12 Aug 2014, 10:51

thefiremind wrote:
gorem2k wrote:They could've worded something like "During this turn, you may play an additional loyalty ability on each planeswalkers you control as though as blablabla" even if they are not on battlefield already heheh... very odd
I agree, I'm not a fan of that kind of wording, either. :)
It was a highly confusing piece of wording, indeed. It sparked a lot of debate when Chain Veil was revealed until Tabak stepped up and said "Yes it works this way."

But yeah, with Nissa and Ral Zarek, this goes infinite (or rather as many times as you feel like taking extra turns...)
volrathxp
User avatar
volrathxp
 
Posts: 362
Joined: 23 Jul 2014, 17:34
Has thanked: 9 times
Been thanked: 17 times

Re: TFM&G2K's Planeswalkers Pool v7 (08/Aug/2014)

Postby gorem2k » 12 Aug 2014, 12:15

thefiremind wrote:, and another chest in the player DC that associates an activation count for each Planeswalker with the usual format:
I have problems with this part, how can I enter an activation count within Chain Veil when the plw manager does a replacement trigger everytime I activate?

Also, if I count from the veil and it's in my hand, what happens if I activate a planeswalker, then put the veil into play? how does the veil will know if a loyalty has been activated?

I think the second chest you've mentioned will need to be defined inside manager.
gorem2k
 
Posts: 464
Joined: 01 Apr 2013, 04:21
Has thanked: 48 times
Been thanked: 33 times

Re: TFM&G2K's Planeswalkers Pool v7 (08/Aug/2014)

Postby thefiremind » 12 Aug 2014, 16:06

Here's an attempt at coding what I explained earlier. It doesn't work, though: I can't understand why, but it seems that the CONTINUOUS_ACTION that should stop activated abilities doesn't run at all (in fact you can activate Planeswalkers everytime you want). What am I missing?
Attachments
chain veil attempt.zip
Doesn't work!
(11.3 KiB) Downloaded 302 times
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
User avatar
thefiremind
Programmer
 
Posts: 3515
Joined: 07 Nov 2011, 10:55
Has thanked: 118 times
Been thanked: 722 times

Re: TFM&G2K's Planeswalkers Pool v7 (08/Aug/2014)

Postby gorem2k » 12 Aug 2014, 23:16

thefiremind wrote:Here's an attempt at coding what I explained earlier. It doesn't work, though: I can't understand why, but it seems that the CONTINUOUS_ACTION that should stop activated abilities doesn't run at all (in fact you can activate Planeswalkers everytime you want). What am I missing?
I think that when there's a replacement_effect it won't do both a continuous and RTA in same trigger. My first idea is, I will move your RTA into the <TRIGGER> block and see if continuous does anything...

EDIT: yes! First try :D

Code: Select all
  <!-- 3. Planeswalkers' abilities can be played only once per turn -->
  <TRIGGERED_ABILITY replacement_effect="1">
    <TRIGGER value="ACTIVATED_ABILITY_PLAYED" simple_qualifier="objectyoucontrol">
    if PLW_IsInNameSet( TriggerObject(), "PLANESWALKERS" ) then
       local activations_chest = PLW_MyDuelDC():Get_Chest(PLW_PLANESWALKERS_ACTIVATIONS_CHEST)
       if activations_chest == nil then
          activations_chest = PLW_MyDuelDC():Make_Chest(PLW_PLANESWALKERS_ACTIVATIONS_CHEST)
       end
       -- Find the Planeswalker
       local current_index = -1
       local last_index = activations_chest:Get_Int(0)
       if last_index &gt; 0 then
          for i=1,last_index,2 do
             local card = activations_chest:Get_CardPtr(i)
             if card ~= nil and card == TriggerObject() then
                -- Planeswalker found
                current_index = i
                break
             end
          end
       else
          last_index = -1 -- this will make it right when adding 2 later
       end
       if current_index == -1 then
          -- Planeswalker not found, let's add it
          last_index = last_index + 2
          activations_chest:Set_Int(0, last_index)
          activations_chest:Set_CardPtr( last_index, TriggerObject() )
          activations_chest:Set_Int(last_index+1, 0)
          current_index = last_index
       end
       -- Increase Planeswalker's activations count (1 register further than the card pointer)
       activations_chest:Int_Inc(current_index+1)
       -- Increase player's own activations count (will be used by The Chain Veil's first ability)
       PLW_MyPlayerDC( EffectController() ):Int_Inc(PLW_PLANESWALKERS_ACTIVATIONS)
       -- Save Planeswalker's activations count index for continuous action
       EffectDC():Set_Int(1, current_index+1)
       return true
    end
    return false
    </TRIGGER>
    <CONTINUOUS_ACTION layer="8">
    if TriggerObject() ~= nil then
       local activations_chest = PLW_MyDuelDC():Get_Chest(PLW_PLANESWALKERS_ACTIVATIONS_CHEST)
       if activations_chest ~= nil then
          local loyalty_activations = activations_chest:Get_Int( EffectDC():Get_Int(1) )
          local chain_veil_activations = PLW_MyPlayerDC( TriggerObject():GetController() ):Get_Int(PLW_CHAIN_VEIL_ACTIVATIONS)
          if loyalty_activations &gt; chain_veil_activations then
             TriggerObject():GetCurrentCharacteristics():Bool_Set(CHARACTERISTIC_CANT_USE_ACTIVATED_ABILITIES, 1)
          end
       end
    end
    </CONTINUOUS_ACTION>
    <DURATION simple_duration="UntilEOT" />
  </TRIGGERED_ABILITY>
  <TRIGGERED_ABILITY replacement_effect="1">
    <TRIGGER value="BEGINNING_OF_STEP">
    return MTG():GetStep() == STEP_CLEANUP
    </TRIGGER>
    <RESOLUTION_TIME_ACTION>
    PLW_MyDuelDC():Free_Compartment(PLW_PLANESWALKERS_ACTIVATIONS_CHEST)
    for i=0,MTG():GetNumberOfPlayers()-1 do
       local player_chest = PLW_MyPlayerDC( MTG():GetNthPlayer(i) )
       player_chest:Set_Int(PLW_PLANESWALKERS_ACTIVATIONS, 0)
       player_chest:Set_Int(PLW_CHAIN_VEIL_ACTIVATIONS, 0)
    end
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
 
Will do some more test but it seems to work fine.
gorem2k
 
Posts: 464
Joined: 01 Apr 2013, 04:21
Has thanked: 48 times
Been thanked: 33 times

Re: TFM&G2K's Planeswalkers Pool v8 (15/Aug/2014)

Postby thefiremind » 15 Aug 2014, 08:26

The Chain Veil is now inside the pool! Enjoy and let me know of any problems.
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
User avatar
thefiremind
Programmer
 
Posts: 3515
Joined: 07 Nov 2011, 10:55
Has thanked: 118 times
Been thanked: 722 times

Re: TFM&G2K's Planeswalkers Pool v8 (15/Aug/2014)

Postby gorem2k » 15 Aug 2014, 16:58

Ok, it was exhausting but I've finally fixed Ashiok.

The new code is a mess, it looks awkward but it works...

Code: Select all
    <RESOLUTION_TIME_ACTION>
    local linkedDC = LinkedDC():Get_Chest(1)
    if linkedDC ~= nil then
       local cmc = EffectDC():Get_Int(1)
       local queryDC = EffectDC():Make_Chest(2)
       local count = LinkedDC():Get_Int(0)
       local temp = 0
       for i=0,count-1 do
          local creature = linkedDC:Get_CardPtr(i)
          if creature ~= nil then
             EffectDC():Get_Chest(2):Set_CardPtr(temp, creature)
             EffectDC():Get_Chest(2):Protect_CardPtr(temp)
             if creature:GetConvertedManaCost() ~= cmc then
                EffectDC():Get_Chest(2):QueryUnselect_CardPtr(temp)
             end
             temp = temp+1
          end
       end
       EffectController():ChooseItemFromDC( "CARD_QUERY_CHOOSE_CREATURE_TO_PUT_ONTO_BATTLEFIELD", queryDC, EffectDC():Make_Targets(0) )
    end
    </RESOLUTION_TIME_ACTION>
As you can see, I'm just rebuilding the queryDC aka (chest#2) without adding unnecessary/invalid card pointers. And now, everything's fine. I'm sure you have better ways to do this, but that's basically the idea. :D
gorem2k
 
Posts: 464
Joined: 01 Apr 2013, 04:21
Has thanked: 48 times
Been thanked: 33 times

Re: TFM&G2K's Planeswalkers Pool v8b (15/Aug/2014)

Postby thefiremind » 15 Aug 2014, 20:11

I can only guess that the CopyFrom function is buggy, at least when copying between chests of different "nature" (Linked -> Effect). Anyway, I applied the fix. Thanks!
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
User avatar
thefiremind
Programmer
 
Posts: 3515
Joined: 07 Nov 2011, 10:55
Has thanked: 118 times
Been thanked: 722 times

PreviousNext

Return to 2014

Who is online

Users browsing this forum: No registered users and 1 guest

Main Menu

User Menu

Our Partners


Who is online

In total there is 1 user online :: 0 registered, 0 hidden and 1 guest (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 1 guest

Login Form