RiiakShiNal wrote:Technically, I did not code
Protean Hydra it is an official card (though I did provide a fix for it, which was pointed out by sumomole).
That said here are a couple of things I would probably change:
- With your "Dew Drop" ability I'm not sure there is any way to determine which player tapped a card (I don't know if TriggerPlayer() or SecondaryPlayer() information is given for the BECAME_TAPPED trigger). So you may need to either re-word or re-work the ability. Example Player A has Lernaean Hydra and Player B has Icy Manipulator, according to the way you have worded the ability if Player B uses the Icy Manipulator to tap the Lernaean Hydra, "Dew Drop" should not activate, but the way you have it coded it will.
- "Dew Drop" TRIGGERED_ABILITY you have put the creature check in the INTERVENING_IF, but that check only really needs to be performed when checking the TRIGGER not at resolution time. The INTERVENING_IF should remain due to the check for "while its additional ability is inactive". But this is a personal choice and should not really matter in this case.
- In your Indestructible STATIC_ABILITY the ClearFilter() line is pointless.
- The way your additional ability is worded it should not have an INTERVENING_IF block as the ability would activate at the end of turn even if no damage was received. There is no "if" in the ability so there definitely should not be an INTERVENING_IF block. Personally I would code the ability as a resource (since it should not always be enabled).
- Personally, I think +1/+1 counters would be easier for players to understand and work with (Proliferate could be used to increase counters, but can't touch internal values) rather than some unknown internal value, though ultimately that is your choice. As is if cast with
= 0 then it will never increase the bonus even though +1/+1 counters could be added with other effects. For example throw in some elves and an Immaculate Magistrate and you could easily have a 20+/20+ indestructible hydra with the way it is currently coded. If you switch to +1/+1 counters then regardless of how the counters get on the hydra's abilities will be considered.
Thanks as always for your kindness,
I checked some of your points:
1. The ability works also if is another player Tap my creature. I have used an ability to Tap a creature controlled by AI with Dew Drop and it becomes enabled. So you're right i have to change the TEXT description to "Whenever a creature becomes tapped." also because i tried to use :
- Code: Select all
<TRIGGER value="BECAME_TAPPED" simple_qualifier="objectyoucontrol" >
return TriggerPlayer() == EffectController() and TriggerObject():GetCardType():Test(CARD_TYPE_CREATURE)
</TRIGGER>
But it doesn't work. so NEW ABILITY TEXT WILL BE :
Whenever a creature you control becomes tapped while the additional ability of a creature with the "dewdrop" is inactive, this additional ability becomes active. The additional ability remains active until it is used.2. I have moved the Creature check into trigger evaluation. Thanks.
3.
Clear Filter removed is just a miss while copying and pasting my eyes sometimes miss something

4. About the Additional ability i am not sure to have understand your meaning. I added also the intervening if block just to avoid the trigger when abilility is not enabled and there is no damage received. I understand is not needed but is just to avoid some triggering.
5. I know exaclty which are the advantages to use counters, i also used into other cards, i was just following an idea and trying to implement it in this way.
6. About the indestructible condition
I have an important question :
If i would check the actual power of a creature into a static ability how i have to implement the code?
I try to exaplain i was making a condition to check the actual power of Hydra to avoid to gives Indestructible ability when the power is more than 1.
i have used the function EffectSource():GetCurrentCharacteristics():Power_Get() but it always return 1, also if another card is boosting the Hydra.
If i use this function into a resolution block in an Activated ability it works.
So the problem is how to make a continuos check into a static ability?
I also tried to use Filters with filter:Add( FE_CARD_INSTANCE, OP_IS, EffectSource() ) filter:Add(FE_TOUGHNESS, OP_LESS_THAN_OR_EQUAL_TO, 1) filter:Add(FE_POWER, OP_LESS_THAN_OR_EQUAL_TO, 1) to apply the Indestructible ability but it doesn't works.
EXAMPLE 1 : The Hydra still have indestructible also if there is another creature who gives +1/+1 to the hydra.
- Code: Select all
<STATIC_ABILITY linked_ability_group="1">
<FILTER filter_id="0" >
local filter = ClearFilter()
filter:Add( FE_CARD_INSTANCE, OP_IS, EffectSource() )
filter:Add(FE_TOUGHNESS, OP_LESS_THAN_OR_EQUAL_TO, 1)
filter:Add(FE_POWER, OP_LESS_THAN_OR_EQUAL_TO, 1)
</FILTER>
<CONTINUOUS_ACTION layer="6" filter_id="0">
local oPow_Tough = LinkedDC():Int_Get( 10 )
if FilteredCard() ~= nil then
local characteristics = FilteredCard():GetCurrentCharacteristics()
if (oPow_Tough == 0) then
characteristics:Bool_Set( CHARACTERISTIC_INDESTRUCTIBLE, 1 )
end
end
</CONTINUOUS_ACTION>
</STATIC_ABILITY>
EXAMPLE 2 : The Hydra still have indestructible also if there is another creature who gives +1/+1 to the hydra.
- Code: Select all
<STATIC_ABILITY linked_ability_group="1">
<CONTINUOUS_ACTION layer="6">
local oPow_Tough = LinkedDC():Int_Get( 10 )
if EffectSource() ~= nil then
local power = EffectSource():GetCurrentCharacteristics():Power_Get()
local toughness = EffectSource():GetCurrentCharacteristics():Toughness_Get()
if (oPow_Tough == 0) and (power == 1) and (toughness == 1) then
EffectSource():GetCurrentCharacteristics():Bool_Set( CHARACTERISTIC_INDESTRUCTIBLE, 1 )
end
end
</CONTINUOUS_ACTION>
</STATIC_ABILITY>