添加左侧&右侧目标
This commit is contained in:
@@ -362,6 +362,30 @@ namespace TcgEngine
|
||||
targets.Add(target);
|
||||
}
|
||||
|
||||
if (target == AbilityTarget.LastTargetedLeft)
|
||||
{
|
||||
Card lastTarget = data.GetCard(data.last_target);
|
||||
if (lastTarget != null && lastTarget.slot.x > Slot.x_min)
|
||||
{
|
||||
Slot leftSlot = new Slot(lastTarget.slot.x - 1, lastTarget.slot.y, lastTarget.slot.p);
|
||||
Card leftCard = data.GetSlotCard(leftSlot);
|
||||
if (leftCard != null && AreTargetConditionsMet(data, caster, leftCard))
|
||||
targets.Add(leftCard);
|
||||
}
|
||||
}
|
||||
|
||||
if (target == AbilityTarget.LastTargetedRight)
|
||||
{
|
||||
Card lastTarget = data.GetCard(data.last_target);
|
||||
if (lastTarget != null && lastTarget.slot.x < Slot.x_max)
|
||||
{
|
||||
Slot rightSlot = new Slot(lastTarget.slot.x + 1, lastTarget.slot.y, lastTarget.slot.p);
|
||||
Card rightCard = data.GetSlotCard(rightSlot);
|
||||
if (rightCard != null && AreTargetConditionsMet(data, caster, rightCard))
|
||||
targets.Add(rightCard);
|
||||
}
|
||||
}
|
||||
|
||||
if (target == AbilityTarget.LastSummoned)
|
||||
{
|
||||
Card target = data.GetCard(data.last_summoned);
|
||||
@@ -684,7 +708,9 @@ namespace TcgEngine
|
||||
|
||||
LastPlayed = 70, //Last card that was played
|
||||
LastTargeted = 72, //Last card that was targeted with an ability
|
||||
LastDestroyed = 74, //Last card that was killed
|
||||
LastTargetedLeft = 73, //Last card that was targeted with an ability and is on the left side of the board
|
||||
LastTargetedRight = 74, //Last card that was targeted with an ability and is on the right side of the board
|
||||
LastDestroyed = 75, //Last card that was killed
|
||||
LastSummoned = 77, //Last card that was summoned or created
|
||||
|
||||
}
|
||||
|
||||
@@ -42,6 +42,24 @@ namespace TcgEngine
|
||||
return gdata.GetCard(gdata.last_played);
|
||||
if (attacker_type == EffectAttackerType.LastTargeted)
|
||||
return gdata.GetCard(gdata.last_target);
|
||||
if (attacker_type == EffectAttackerType.LastTargetedLeft)
|
||||
{
|
||||
Card lastTarget = gdata.GetCard(gdata.last_target);
|
||||
if (lastTarget != null && lastTarget.slot.x > Slot.x_min)
|
||||
{
|
||||
Slot leftSlot = new Slot(lastTarget.slot.x - 1, lastTarget.slot.y, lastTarget.slot.p);
|
||||
return gdata.GetSlotCard(leftSlot);
|
||||
}
|
||||
}
|
||||
if (attacker_type == EffectAttackerType.LastTargetedRight)
|
||||
{
|
||||
Card lastTarget = gdata.GetCard(gdata.last_target);
|
||||
if (lastTarget != null && lastTarget.slot.x < Slot.x_max)
|
||||
{
|
||||
Slot rightSlot = new Slot(lastTarget.slot.x + 1, lastTarget.slot.y, lastTarget.slot.p);
|
||||
return gdata.GetSlotCard(rightSlot);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -52,5 +70,7 @@ namespace TcgEngine
|
||||
AbilityTriggerer = 25,
|
||||
LastPlayed = 70,
|
||||
LastTargeted = 72,
|
||||
LastTargetedLeft = 73,
|
||||
LastTargetedRight = 74,
|
||||
}
|
||||
}
|
||||
@@ -42,6 +42,24 @@ namespace TcgEngine
|
||||
return gdata.GetCard(gdata.last_played);
|
||||
if (attacker_type == EffectAttackerType.LastTargeted)
|
||||
return gdata.GetCard(gdata.last_target);
|
||||
if (attacker_type == EffectAttackerType.LastTargetedLeft)
|
||||
{
|
||||
Card lastTarget = gdata.GetCard(gdata.last_target);
|
||||
if (lastTarget != null && lastTarget.slot.x > Slot.x_min)
|
||||
{
|
||||
Slot leftSlot = new Slot(lastTarget.slot.x - 1, lastTarget.slot.y, lastTarget.slot.p);
|
||||
return gdata.GetSlotCard(leftSlot);
|
||||
}
|
||||
}
|
||||
if (attacker_type == EffectAttackerType.LastTargetedRight)
|
||||
{
|
||||
Card lastTarget = gdata.GetCard(gdata.last_target);
|
||||
if (lastTarget != null && lastTarget.slot.x < Slot.x_max)
|
||||
{
|
||||
Slot rightSlot = new Slot(lastTarget.slot.x + 1, lastTarget.slot.y, lastTarget.slot.p);
|
||||
return gdata.GetSlotCard(rightSlot);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user