[fixed/closed]Hokori, Dust Drinker
Moderators: BAgate, drool66, stassy, Aswan jaguar, gmzombie, CCGHQ Admins
[fixed/closed]Hokori, Dust Drinker
by Aswan jaguar » 26 Dec 2013, 09:07
Describe the Bug:
Hokori, Dust Drinkerhas probably a bug with equipments(Umezawa's Jitte and Sword of Body and Mind tested). When he is equipped and the equipment triggers (not always) or if maybe even if he is re-equipped he looses his ability.I had this behaviour in 2-3 games. ability stops working if he gets tapped.
NOTE- It is weird also that in this savegame when Hokori, Dust Drinker activates Umezawa's Jitte to boost it and although just before I have killed Karn,Silver Golem with Shickening Shoal in stack it shows the Karn,Silver Golem being boost by Umezawa's Jitte the boost is correctly applied to Hokori, Dust Drinker.
Which card did behave improperly ?
Hokori, Dust Drinker - Equipments?
Which update are you using?(date,name)Which type(Duel,Gauntlet,Sealed Deck)
16/11/2013 : Portals to Theros - DUEL
What exactly should be the correct behavior/interaction ?
Hokori, Dust Drinker doesn't loose his ability from cards (equipments)that they don't make card loose their abilities.
Are any other cards possibly affected by this bug ?
Hokori, Dust Drinker
NOTE- It is weird also that in this savegame when Hokori, Dust Drinker activates Umezawa's Jitte to boost it and although just before I have killed Karn,Silver Golem with Shickening Shoal in stack it shows the Karn,Silver Golem being boost by Umezawa's Jitte the boost is correctly applied to Hokori, Dust Drinker.
Which card did behave improperly ?
Hokori, Dust Drinker - Equipments?
Which update are you using?(date,name)Which type(Duel,Gauntlet,Sealed Deck)
16/11/2013 : Portals to Theros - DUEL
What exactly should be the correct behavior/interaction ?
Hokori, Dust Drinker doesn't loose his ability from cards (equipments)that they don't make card loose their abilities.
Are any other cards possibly affected by this bug ?
- Attachments
-
hokori -umezawa's jitter.rar- (2.35 KiB) Downloaded 158 times
Last edited by BAgate on 13 Jan 2014, 05:53, edited 9 times in total.
Reason: closed
Reason: closed
---
Trying to squash some bugs and playtesting.
Trying to squash some bugs and playtesting.
-

Aswan jaguar - Super Tester Elite
- Posts: 7450
- Joined: 13 May 2010, 12:17
- Has thanked: 639 times
- Been thanked: 351 times
Re: Hokori, Dust Drinker - equipments
by BAgate » 26 Dec 2013, 10:28
Actually has nothing to do with equipment (I think). The turn after Hokori deals combat damage its ability doesn't work, even if he is unequipped.
Working on: housekeeping and archived reports
Re: [confirmed]Hokori, Dust Drinker
by Korath » 26 Dec 2013, 11:26
It's because he's tapped. He's implemented simply as a legendary Winter Orb. (Which I've only just now noticed never got errata to preserve the "artifacts turn off when they're tapped" mechanic like Howling Mine did. Guess that needs fixing, too.)
-

Korath - DEVELOPER
- Posts: 3522
- Joined: 02 Jun 2013, 05:57
- Has thanked: 491 times
- Been thanked: 1037 times
Re: [confirmed]Hokori, Dust Drinker
by Aswan jaguar » 26 Dec 2013, 11:46
So,Garagroz or Sonic have to see this to change the wording of Winter Orb so it represents the card better to something like:
"If Winter Orb is untapped,players can't untap more than one land during their untap steps."
or
"Players can't untap more than one land during their untap steps unless Winter Orb is tapped."
The first seems more accurate.
"If Winter Orb is untapped,players can't untap more than one land during their untap steps."
or
"Players can't untap more than one land during their untap steps unless Winter Orb is tapped."
The first seems more accurate.
---
Trying to squash some bugs and playtesting.
Trying to squash some bugs and playtesting.
-

Aswan jaguar - Super Tester Elite
- Posts: 7450
- Joined: 13 May 2010, 12:17
- Has thanked: 639 times
- Been thanked: 351 times
Re: [confirmed]Hokori, Dust Drinker
by Korath » 26 Dec 2013, 12:50
Rather, we should change Winter Orb to not care if it's tapped. And Hokori, Dust Drinker to have a separate implementation, since it's only superficially similar. (Why isn't its autocard working for me?)
-

Korath - DEVELOPER
- Posts: 3522
- Joined: 02 Jun 2013, 05:57
- Has thanked: 491 times
- Been thanked: 1037 times
Re: [confirmed]Hokori, Dust Drinker
by Aswan jaguar » 26 Dec 2013, 13:08
All these because they never reprinted the card to use the errata.
May 2011 Update Bulletin:
Winter Orb
In the first versions of the Magic rules, the static abilities of an artifact turned off if the artifact was tapped. When this rule changed, three cards (Winter Orb, Static Orb, and Howling Mine) were issued errata to maintain this functionality. Since then, Static Orb and Howling Mine have been reprinted with this errata, but Winter Orb never was. If you pick up this card somewhere and you understand modern Magic rules, you'd never guess it would have to be untapped to function, and the once-common "tap my own Winter Orb at the end of my turn so I get to untap my lands" play would be utterly baffling. Well, we can't have that.
New wording
Players can't untap more than one land during their untap steps.
May 2011 Update Bulletin:
Winter Orb
In the first versions of the Magic rules, the static abilities of an artifact turned off if the artifact was tapped. When this rule changed, three cards (Winter Orb, Static Orb, and Howling Mine) were issued errata to maintain this functionality. Since then, Static Orb and Howling Mine have been reprinted with this errata, but Winter Orb never was. If you pick up this card somewhere and you understand modern Magic rules, you'd never guess it would have to be untapped to function, and the once-common "tap my own Winter Orb at the end of my turn so I get to untap my lands" play would be utterly baffling. Well, we can't have that.
New wording
Players can't untap more than one land during their untap steps.
---
Trying to squash some bugs and playtesting.
Trying to squash some bugs and playtesting.
-

Aswan jaguar - Super Tester Elite
- Posts: 7450
- Joined: 13 May 2010, 12:17
- Has thanked: 639 times
- Been thanked: 351 times
Re: [confirmed]Hokori, Dust Drinker
by Korath » 26 Dec 2013, 14:13
Totally untested translation of the exe version:
Its not at all clear that they'll interact properly with each other in the case of artifact lands, land creatures, or artifact creatures. Getting them to work with a Static Orb implementation that untaps during untap like these do instead of during upkeep like our current approximation will be an adventure, too. There anything else out there that's similar to these?
- Code: Select all
static int ai_choose_best_card_to_untap(int player, type_t type_to_untap)
{
// 0x4BEB20. Used for Winter Orb, Smoke, and Damping Field.
if (player == -1)
return -1;
int c;
int best_rating = -10;
int best = -1;
int highest_power = -1, highest_toughness = -1;
if (type == TYPE_CREATURE)
for (c = 0; c < active_cards_count[player]; ++c)
if (in_play(player, c) && is_what(player, c, type_to_untap) && is_tapped(player, c))
{
int pow = get_power(player, c);
if (pow > highest_power)
highest_power = pow;
int tgh = get_toughness(player, c);
if (tgh > highest_toughness)
highest_toughness = tgh;
}
for (c = 0; c < active_cards_count[player]; ++c)
if (in_play(player, c) && is_what(player, c, type_to_untap) && is_tapped(player, c))
{
card_instance_t* instance = get_card_instance(player, c);
if (!(instance->untap_status & 1))
continue;
int abils, rating = 0;
switch (type_to_untap)
{
case TYPE_LAND:
if (cards_data[instance->internal_card_id].extra_ability & EA_ACT_ABILITY)
rating = 1;
if (instance->state & STATE_NO_AUTO_TAPPING)
rating = -1;
break;
case TYPE_CREATURE:
if (get_power(player, c) == highest_power)
rating += 3;
if (get_toughness(player, c) == highest_toughness)
rating += 2;
abils = get_abilities(player, card, EVENT_ABILITIES, -1);
if (abils & KEYWORD_FLYING)
++rating;
if (abils & KEYWORD_FIRST_STRIKE)
++rating;
rating += num_bits_set(abils & ~KEYWORD_NONABILITIES);
if (cards_data[instance->internal_card_id].extra_ability & EA_MANA_SOURCE)
++rating;
if (cards_data[instance->internal_card_id].extra_ability & EA_ACT_ABILITY)
++rating;
break;
case TYPE_ARTIFACT:
if (is_what(player, c, TYPE_CREATURE))
{
rating = get_power(player, c) + get_toughness(player, c);
if (abils & KEYWORD_FLYING)
++rating;
if (abils & KEYWORD_FIRST_STRIKE)
++rating;
abils = get_abilities(player, card, EVENT_ABILITIES, -1);
rating += num_bits_set(abils & ~KEYWORD_NONABILITIES);
}
if (cards_data[instance->internal_card_id].extra_ability & EA_MANA_SOURCE)
++rating;
if (cards_data[instance->internal_card_id].extra_ability & EA_ACT_ABILITY)
++rating;
rating += get_cmc(player, c);
break;
}
if (rating > best_rating)
best = c;
}
return best;
}
int card_winter_orb(int player, int card, event_t event)
{
//0x426090
card_instance_t* instance = get_card_instance(player, card);
if (event == EVENT_CAST_SPELL && affect_me(player, card))
{
card_instance_t* instance = get_card_instance(player, card);
if (!check_battlefield_for_id(2, CARD_ID_WINTER_ORB))
ai_modifier += 12 * (total_power_of_creatures_by_color[AI][COLOR_ANY] - total_power_of_creatures_by_color[HUMAN][COLOR_ANY]);
// int total_power_of_creatures_by_color[2][8]; 0x739D60 updated at start of each turn
}
if (event == EVENT_UNTAP && in_play(affected_card_controller, affected_card) && is_what(affected_card_controller, affected_card, TYPE_LAND) && !is_tapped(player, card))
{
card_instance_t* aff = get_card_instance(affected_card_controller, affected_card);
aff->untap_status &= ~2; // aff doesn't automatically untap (but is able to, since bit 1 wasn't removed)
types_that_dont_untap |= TYPE_LAND; // doesn't actually prevent them from untapping, just advises cards that optionally untap like Old Man of the Sea
}
if (current_phase == UNTAP && affect_me(player, card))
{
target_definition_t td_land_will_untap;
default_target_definition(player, card, &td_land_will_untap, TYPE_LAND);
td_land_will_untap.who_chooses = current_turn;
td_land_will_untap.allowed_controller = current_turn;
td_land_will_untap.preferred_controller = current_turn;
td_land_will_untap.illegal_abilities = 0;
td_land_will_untap.allow_cancel = 0;
td_land_will_untap.required_state = TARGET_STATE_CAN_UNTAP; // Requires untap_status & 2. A more accurate description is "is going to untap".
target_definition_t td_land_can_untap;
default_target_definition(player, card, &td_land_can_untap, TYPE_LAND);
td_land_can_untap.who_chooses = current_turn;
td_land_can_untap.allowed_controller = current_turn;
td_land_can_untap.preferred_controller = current_turn;
td_land_can_untap.illegal_abilities = 0;
td_land_can_untap.allow_cancel = 0;
td_land_can_untap.required_state = TARGET_STATE_CANNOT_UNTAP; // Requires untap_status & 1. A more accurate description is "is able to untap".
if (event == EVENT_TRIGGER
&& !can_target(&td_land_will_untap) // no land already set to untap
&& can_target(&td_land_can_untap)) // at least one land able to untap
event_result |= RESOLVE_TRIGGER_MANDATORY;
if (event == EVENT_RESOLVE_TRIGGER)
{
instance->targets[0].player = current_turn;
instance->targets[0].card = -1;
if (current_turn == AI && !(trace_mode & 2))
{
chosen.card = ai_choose_best_card_to_untap(current_turn, TYPE_LAND);
load_text(0, (int)"WINTERORB");
do_dialog(player, player, card, chosen.player, chosen.card, text_lines[1], 0);
}
else
{
td_land_can_untap.required_state |= TARGET_STATE_TAPPED;
pick_target(&td_land_can_untap, "WINTERORB");
}
instance->number_of_targets = 0;
card_instance_t* tgt = get_card_instance(instance->targets[0].player, instance->targets[0].card);
tgt->untap_status |= 2;
int c;
for (c = 0; c < active_cards_count[current_turn]; ++c)
if (in_play(current_turn, c) && is_tapped(current_turn, c) && is_what(current_turn, TYPE_LAND))
{
tgt = get_card_instance(current_turn, c);
if (!(c->untap_status & 2)) // not already going to untap
c->untap_status &= ~1; // can't untap
}
}
}
return 0;
}
Its not at all clear that they'll interact properly with each other in the case of artifact lands, land creatures, or artifact creatures. Getting them to work with a Static Orb implementation that untaps during untap like these do instead of during upkeep like our current approximation will be an adventure, too. There anything else out there that's similar to these?
-

Korath - DEVELOPER
- Posts: 3522
- Joined: 02 Jun 2013, 05:57
- Has thanked: 491 times
- Been thanked: 1037 times
Re: [confirmed]Hokori, Dust Drinker
by Aswan jaguar » 26 Dec 2013, 14:51
The most relevant we have besides those already mentioned are:
1- Stoic Angel that has to use the same code pointer as Smoke.
2- Kill Switch
3- Magnetic Mountain
4- Mist of Stagnation
5- Rising Waters
6- Shipbreaker Kraken ?
7- Thelon's Curse
1- Stoic Angel that has to use the same code pointer as Smoke.
2- Kill Switch
3- Magnetic Mountain
4- Mist of Stagnation
5- Rising Waters
6- Shipbreaker Kraken ?
7- Thelon's Curse
---
Trying to squash some bugs and playtesting.
Trying to squash some bugs and playtesting.
-

Aswan jaguar - Super Tester Elite
- Posts: 7450
- Joined: 13 May 2010, 12:17
- Has thanked: 639 times
- Been thanked: 351 times
Re: [confirmed]Hokori, Dust Drinker
by Korath » 26 Dec 2013, 16:25
X's don't untap are easy, as are the variants that let you untap one or more of them during upkeep. Those add together normally; if you have a Hokori, Dust Drinker and two Rising Waters, they'd all make it so your lands don't untap, and they'd each let you untap one land at the start of each upkeep. (Or they would, if they didn't both just call Winter Orb.) It's just the "you can only untap 1/2/n X's during your untap step" that interact strangely with each other.
-

Korath - DEVELOPER
- Posts: 3522
- Joined: 02 Jun 2013, 05:57
- Has thanked: 491 times
- Been thanked: 1037 times
Re: [confirmed]Hokori, Dust Drinker
by Gargaroz » 01 Jan 2014, 01:01
Well, for now I've redone the code of Hokori, Dust Drinker, and Rising Waters since the ruling is slightly different than Winter Orb, plus the "deactivated if tapped" bug is removed.
----
- Current / medium term task: adjusting the code for making Misdirection and such usable
- Long term task: inserting all the good stuff I left out from the "Golden Years" mod
- Current / medium term task: adjusting the code for making Misdirection and such usable
- Long term task: inserting all the good stuff I left out from the "Golden Years" mod
- Gargaroz
- Programmer
- Posts: 7095
- Joined: 06 Nov 2009, 11:11
- Has thanked: 82 times
- Been thanked: 593 times
Re: [still bugged]Hokori, Dust Drinker
by BAgate » 10 Jan 2014, 07:38
Doesn't matter if Hokori is tapped, but now if either Hokori or Rising Waters is in play and you don't have a tapped land then you are asked to select target permanent, and since there is no option to cancel and no legal targets you get stuck.
Working on: housekeeping and archived reports
Re: [still bugged]Hokori, Dust Drinker
by Korath » 10 Jan 2014, 15:39
Plus, they kept everything from untapping instead of just lands, and activated when-this-becomes-targeted triggers. Fixed in b5cc51b.
-

Korath - DEVELOPER
- Posts: 3522
- Joined: 02 Jun 2013, 05:57
- Has thanked: 491 times
- Been thanked: 1037 times
12 posts
• Page 1 of 1
Who is online
Users browsing this forum: No registered users and 3 guests
