[confirm]Blinkmoth Nexus AI vs propaganda effects
Report wrong Card behavior to get it fixed.
PLEASE ADD SAVEGAMES TO YOUR TOPIC !
PLEASE ADD SAVEGAMES TO YOUR TOPIC !
Moderators: BAgate, drool66, Aswan jaguar, gmzombie, stassy, CCGHQ Admins
[confirm]Blinkmoth Nexus AI vs propaganda effects
by gnomefry » 02 Jun 2020, 15:30
Describe the Bug:
This will be an odd one.
In most game situations Windborn Muse's propaganda ability is working as intended. I'm seeing a repeat-able scenario where one creature seems to be able to ignore the propaganda effect and attack without paying (2) mana.
There are three elements which I'll list below. I'm unsure if the cause is the particular creature (Arcbound Ravager), the sequence of precombat events taken by the AI, or a combination of these things.
1) AI taps an artifact land to activate Blinkmoth Nexus.
2) AI sacrifices that tapped artifact land to Arcbound Ravager
3) AI attacks with Arcbound Ravager without paying (2) required by defender's Windborn Muse.
Savegame attached.
Which card behaved improperly?
Windborn Muse
Which update are you using? (date, name)Which type? (duel, gauntlet, sealed deck)
Manalink 5-2020 10bda4ca0 - gauntlet
What exactly should be the correct behavior/interaction?
Pay (2) per attacking creature.
Are any other cards possibly affected by this bug?
Possibly involves Arcbound Ravager or Blinkmoth Nexus and their activations
This will be an odd one.
In most game situations Windborn Muse's propaganda ability is working as intended. I'm seeing a repeat-able scenario where one creature seems to be able to ignore the propaganda effect and attack without paying (2) mana.
There are three elements which I'll list below. I'm unsure if the cause is the particular creature (Arcbound Ravager), the sequence of precombat events taken by the AI, or a combination of these things.
1) AI taps an artifact land to activate Blinkmoth Nexus.
2) AI sacrifices that tapped artifact land to Arcbound Ravager
3) AI attacks with Arcbound Ravager without paying (2) required by defender's Windborn Muse.
Savegame attached.
Which card behaved improperly?
Windborn Muse
Which update are you using? (date, name)Which type? (duel, gauntlet, sealed deck)
Manalink 5-2020 10bda4ca0 - gauntlet
What exactly should be the correct behavior/interaction?
Pay (2) per attacking creature.
Are any other cards possibly affected by this bug?
Possibly involves Arcbound Ravager or Blinkmoth Nexus and their activations
- Attachments
-
- windbornmuse.rar
- (2.35 KiB) Downloaded 124 times
Last edited by Aswan jaguar on 03 Jun 2020, 11:19, edited 2 times in total.
Reason: confirmed-retitled to correct issue
Reason: confirmed-retitled to correct issue
Re: Windborn Muse propaganda effect situational ignore
by Aswan jaguar » 03 Jun 2020, 11:18
The issue is in Blinkmoth Nexus. Something is wrong with instance->targets[1].player = 66 and AI. If in choice 2 to animate it we disable below code:
- Code: Select all
if (player == AI){
instance->targets[1].player = 66;
}
- Code: Select all
int card_blinkmoth_nexus(int player, int card, event_t event){
/* CARD_ID_BLINKMOTH_NEXUS 6860
Blinkmoth Nexus ""
Land
|T: Add |C to your mana pool.
|1: ~ becomes a 1/1 Blinkmoth artifact creature with flying until end of turn. It's still a land.
|1, |T: Target Blinkmoth creature gets +1/+1 until end of turn. */
// Used externally
card_instance_t *instance = get_card_instance(player, card);
double_faced_card(player, card, event);
if (event == EVENT_COUNT_MANA && affect_me(player, card)){
if (!is_tapped(player, card) && !is_animated_and_sick(player, card) && instance->targets[1].player != 66){
return mana_producer(player, card, event);
}
} else if (event == EVENT_CAN_ACTIVATE || event == EVENT_ACTIVATE || event == EVENT_RESOLVE_ACTIVATION){
if (event == EVENT_CAN_ACTIVATE && instance->targets[1].player == 66){
return 0;
}
if (paying_mana()){
return mana_producer(player, card, event);
}
target_definition_t td;
default_target_definition(player, card, &td, TYPE_CREATURE);
td.preferred_controller = player;
td.required_subtype = SUBTYPE_BLINKMOTH;
int can_generate_mana = (!is_tapped(player, card) && !is_animated_and_sick(player, card)
&& instance->targets[1].player != 66 && can_produce_mana(player, card));
int ai_priority_generate_mana = -1;
int can_animate = can_use_activated_abilities(player, card) && has_mana_for_activated_ability(player, card, MANACOST_X(1));
int ai_priority_animate = (is_what(player, card, TYPE_CREATURE)
|| (current_turn == player && current_phase > PHASE_MAIN1)
|| (current_turn != player && current_phase != PHASE_BEFORE_BLOCKING)) ? 0 : 2;
int can_pump = (can_use_activated_abilities(player, card) && has_mana_for_activated_ability(player, card, MANACOST_X(2))
&& !is_tapped(player, card) && !is_animated_and_sick(player, card) && can_target(&td));
int ai_priority_pump = current_phase == PHASE_AFTER_BLOCKING ? 3 : 1;
int choice = DIALOG(player, card, event,
"Generate mana", can_generate_mana, ai_priority_generate_mana,
"Animate", can_animate, ai_priority_animate,
"Pump a Blinkmoth", can_pump, ai_priority_pump);
if (event == EVENT_CAN_ACTIVATE){
return choice;
} else if (event == EVENT_ACTIVATE){
if (choice == 1){
return mana_producer(player, card, event);
} else if (choice == 2){
if (player == AI){
instance->targets[1].player = 66;
}
charge_mana_for_activated_ability(player, card, MANACOST_X(1));
instance->targets[1].player = 0;
} else if (choice == 3){
instance->targets[1].player = 66;
instance->number_of_targets = 0;
if (charge_mana_for_activated_ability(player, card, MANACOST_X(1)) && pick_target(&td, "TARGET_CREATURE")){
tap_card(player, card);
}
instance->targets[1].player = 0;
}
} else { // event == EVENT_RESOLVE_ACTIVATION
if (choice == 2 && instance->targets[13].player == instance->targets[13].card){
land_animation(player, instance->parent_card);
} else if (choice == 3 && valid_target(&td)){
pump_until_eot(player, instance->parent_card, instance->targets[0].player, instance->targets[0].card, 1, 1);
}
}
} else {
return mana_producer(player, card, event);
}
return 0;
}
---
Trying to squash some bugs and playtesting.
Trying to squash some bugs and playtesting.
-
Aswan jaguar - Super Tester Elite
- Posts: 8078
- Joined: 13 May 2010, 12:17
- Has thanked: 730 times
- Been thanked: 458 times
2 posts
• Page 1 of 1
Who is online
Users browsing this forum: No registered users and 30 guests