mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
- 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:
@@ -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());
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user