恢复总费用
This commit is contained in:
@@ -44,7 +44,7 @@ namespace TcgEngine
|
||||
public HashSet<string> cards_attacked = new HashSet<string>();
|
||||
|
||||
public Game() { }
|
||||
|
||||
|
||||
public Game(string uid, int nb_players)
|
||||
{
|
||||
this.game_uid = uid;
|
||||
@@ -84,13 +84,13 @@ namespace TcgEngine
|
||||
|
||||
public virtual bool IsPlayerActionTurn(Player player)
|
||||
{
|
||||
return player != null && current_player == player.player_id
|
||||
return player != null && current_player == player.player_id
|
||||
&& state == GameState.Play && phase == GamePhase.Main && selector == SelectorType.None;
|
||||
}
|
||||
|
||||
public virtual bool IsPlayerSelectorTurn(Player player)
|
||||
{
|
||||
return player != null && selector_player_id == player.player_id
|
||||
return player != null && selector_player_id == player.player_id
|
||||
&& state == GameState.Play && phase == GamePhase.Main && selector != SelectorType.None;
|
||||
}
|
||||
|
||||
@@ -98,7 +98,7 @@ namespace TcgEngine
|
||||
{
|
||||
return phase == GamePhase.Mulligan && !player.ready;
|
||||
}
|
||||
|
||||
|
||||
//Check if a card is allowed to be played on slot
|
||||
public virtual bool CanPlayCard(Card card, Slot slot, bool skip_cost = false)
|
||||
{
|
||||
@@ -106,18 +106,13 @@ namespace TcgEngine
|
||||
return false;
|
||||
|
||||
Player player = GetPlayer(card.player_id);
|
||||
if (!skip_cost && !player.CanPayTeamMana(card))
|
||||
if (!skip_cost && !player.CanPayMana(card))
|
||||
return false; //Cant pay mana
|
||||
if (!player.HasCard(player.cards_hand, card))
|
||||
return false; // Card not in hand
|
||||
// AI 不能在没有对应阵营mana时使用动态费用卡牌
|
||||
if (player.is_ai && card.CardData.IsDynamicManaCost())
|
||||
{
|
||||
string team_id = card.CardData.team?.id;
|
||||
int available_mana = string.IsNullOrEmpty(team_id) ? player.mana : player.GetTeamMana(team_id);
|
||||
if (available_mana == 0)
|
||||
return false; // AI cant play X-cost card at 0 cost
|
||||
}
|
||||
|
||||
if (player.is_ai && card.CardData.IsDynamicManaCost() && player.mana == 0)
|
||||
return false; // AI cant play X-cost card at 0 cost AI 不能在没有mana时使用动态费用卡牌
|
||||
|
||||
if (card.CardData.IsBoardCard())
|
||||
{
|
||||
@@ -177,7 +172,7 @@ namespace TcgEngine
|
||||
//Check if a card is allowed to attack a player
|
||||
public virtual bool CanAttackTarget(Card attacker, Player target, bool skip_cost = false)
|
||||
{
|
||||
if(attacker == null || target == null)
|
||||
if (attacker == null || target == null)
|
||||
return false;
|
||||
|
||||
if (!attacker.CanAttack(skip_cost))
|
||||
@@ -465,7 +460,7 @@ namespace TcgEngine
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public virtual Player GetRandomPlayer(System.Random rand)
|
||||
{
|
||||
Player player = GetPlayer(rand.NextDouble() < 0.5 ? 1 : 0);
|
||||
@@ -558,7 +553,7 @@ namespace TcgEngine
|
||||
if (dest.players == null)
|
||||
{
|
||||
dest.players = new Player[source.players.Length];
|
||||
for(int i=0; i< source.players.Length; i++)
|
||||
for (int i = 0; i < source.players.Length; i++)
|
||||
dest.players[i] = new Player(i);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user