It is currently 12 May 2025, 04:52
   
Text Size

[fixed] Ice Cage doesn't force can't block

Moderators: BAgate, drool66, Aswan jaguar, gmzombie, stassy, CCGHQ Admins

[fixed] Ice Cage doesn't force can't block

Postby Aswan jaguar » 27 Dec 2020, 10:05

Describe the Bug:
Ice Cage doesn't force can't block to enchanted creature.

Which card did behave improperly?
cannot_block()?

Which update are you using? (date, name)Which type? (duel, gauntlet, sealed deck)
Holidays 2020 - Time of Ice, duel

What exactly should be the correct behavior/interaction?
Forces can't block to enchanted creature.

Are any other cards possibly affected by this bug?
-
Last edited by drool66 on 31 Dec 2020, 04:34, edited 1 time in total.
Reason: fixed
---
Trying to squash some bugs and playtesting.
User avatar
Aswan jaguar
Super Tester Elite
 
Posts: 8129
Joined: 13 May 2010, 12:17
Has thanked: 748 times
Been thanked: 477 times

Re: Ice Cage doesn't force can't block

Postby Aswan jaguar » 30 Dec 2020, 13:46

I think the issue is that humiliation related abilities don't take care of these single bit abilities in abilities.c and that's why disabling_targeted_aura() mode 2 ( that is used by card_arrest() whose code Ice Cage returns) that stops activated abilities stops also these:
Code: Select all
SP_ABILITY(cannot_block, SP_KEYWORD_CANNOT_BLOCK);
SP_ABILITY_SUPPRESSABLE(deathtouch, SP_KEYWORD_DEATHTOUCH, PB_CANT_HAVE_OR_GAIN_DEATHTOUCH);
SP_ABILITY(fear, SP_KEYWORD_FEAR);
SP_ABILITY_SUPPRESSABLE(hexproof, SP_KEYWORD_HEXPROOF, PB_CANT_HAVE_OR_GAIN_HEXPROOF);
SP_ABILITY(horsemanship2, SP_KEYWORD_HORSEMANSHIP);
SP_ABILITY(indestructible, SP_KEYWORD_INDESTRUCTIBLE);
SP_ABILITY(intimidate, SP_KEYWORD_INTIMIDATE);
SP_ABILITY(lifelink, SP_KEYWORD_LIFELINK);
SP_ABILITY(rfg_when_damage, SP_KEYWORD_RFG_WHEN_DAMAGE);
SP_ABILITY(shadow, SP_KEYWORD_SHADOW);
SP_ABILITY(unblockable, SP_KEYWORD_UNBLOCKABLE);
SP_ABILITY(wither, SP_KEYWORD_WITHER);
---
Trying to squash some bugs and playtesting.
User avatar
Aswan jaguar
Super Tester Elite
 
Posts: 8129
Joined: 13 May 2010, 12:17
Has thanked: 748 times
Been thanked: 477 times

Re: Ice Cage doesn't force can't block

Postby drool66 » 30 Dec 2020, 22:42

Oh, got it. I changed the humility legacy to just overwrite the sp_abilities. These can be added selectively in targets[4].player of the humility legacy. So it can be fixed by adding a new mode to targeted_aura_impl(), which adds SP_KEYWORD_CANNOT_BLOCK. I'm wondering, however, if a humiliation legacy should remove SP_KEYWORD_CANNOT_BLOCK, or if it should just go back to doing what it was doing before, which is to remove only the following:
Code: Select all
SP_KEYWORD_FEAR|SP_KEYWORD_INTIMIDATE|SP_KEYWORD_UNBLOCKABLE|SP_KEYWORD_DEATHTOUCH|SP_KEYWORD_LIFELINK                                          |SP_KEYWORD_INDESTRUCTIBLE|SP_KEYWORD_SHADOW|SP_KEYWORD_HEXPROOF|SP_KEYWORD_HORSEMANSHIP                           |SP_KEYWORD_VIGILANCE)
I think it should remove everything before it in timestamp order, including "cannot block" no?

Nope, not with the mode of humiliate that these enchantments use.
The problem ended up being two-fold. One was I misread a bit shift (1<<1 == 2, not 1), and the new way is_humiliated() is interpreted, the relevant function being is_legal_block_impl()
Fixed in 075c914
User avatar
drool66
Programmer
 
Posts: 1185
Joined: 25 Nov 2010, 22:38
Has thanked: 187 times
Been thanked: 280 times


Return to Archived Reports

Who is online

Users browsing this forum: No registered users and 6 guests


Who is online

In total there are 6 users online :: 0 registered, 0 hidden and 6 guests (based on users active over the past 10 minutes)
Most users ever online was 4143 on 23 Jan 2024, 08:21

Users browsing this forum: No registered users and 6 guests

Login Form