- Fix issue with Targeting being cleared in certain Triggers (I didn't fully test this so if it breaks something else we should undo this changelist)

This commit is contained in:
jendave
2011-08-06 17:18:40 +00:00
parent 23de9d8527
commit 07eabba847
3 changed files with 12 additions and 14 deletions

View File

@@ -3283,22 +3283,14 @@ public class GameAction {
sa.setActivatingPlayer(AllZone.HumanPlayer);
if (sa.getPayCosts() != null){
Target_Selection ts = null;
if(skipTargeting)
{
ts = new Target_Selection(null, sa);
}
else
{
ts = new Target_Selection(sa.getTarget(),sa);
}
Target_Selection ts = new Target_Selection(sa.getTarget(),sa);
Cost_Payment payment = new Cost_Payment(sa.getPayCosts(), sa);
payment.changeCost();
SpellAbility_Requirements req = new SpellAbility_Requirements(sa, ts, payment);
req.setSkipStack(true);
req.fillRequirements();
req.fillRequirements(skipTargeting);
}
else{
ManaCost manaCost = new ManaCost(sa.getManaCost());

View File

@@ -21,6 +21,10 @@ public class SpellAbility_Requirements {
}
public void fillRequirements(){
fillRequirements(false);
}
public void fillRequirements(boolean skipTargeting){
if (ability instanceof Spell && !bCasting){
// remove from hand
bCasting = true;
@@ -35,8 +39,8 @@ public class SpellAbility_Requirements {
// freeze Stack. No abilities should go onto the stack while I'm filling requirements.
AllZone.Stack.freezeStack();
// Skip to paying if parent ability doesn't target and has no subAbilities.
if (select.doesTarget() || ability.getSubAbility() != null){
// Skip to paying if parent ability doesn't target and has no subAbilities. (or trigger case where its already targeted)
if (!skipTargeting && (select.doesTarget() || ability.getSubAbility() != null)){
select.setRequirements(this);
select.resetTargets();
select.chooseTargets();

View File

@@ -523,7 +523,8 @@ public class TriggerHandler {
@Override
public void resetOnceResolved()
{
sa[0].resetOnceResolved();
// Fixing an issue with Targeting + Paying Mana
//sa[0].resetOnceResolved();
}
@Override
@@ -752,10 +753,11 @@ public class TriggerHandler {
}
}
//sa[0].resolve();
if(sa[0].getSourceCard().getController().isHuman())
{
AllZone.GameAction.playSpellAbility_NoStack(sa[0],true);
AllZone.GameAction.playSpellAbility_NoStack(sa[0], true);
}
else
{