Пример #1
0
        public void Attack(HS_PlayerInstance fromPlayer, sbyte attackerIndex, HS_PlayerInstance targetPlayer, sbyte defenderIndex)
        {
            List <HS_CreatureInstance> fromField = GetField(fromPlayer);
            List <HS_CreatureInstance> toField   = GetField(targetPlayer);

            if (attackerIndex >= 0 && defenderIndex >= 0)
            {
                Combat(fromField[attackerIndex], toField[defenderIndex]);
            }
            else
            {
                if (defenderIndex == -1)
                {
                    targetPlayer.TakeDamage(fromField[attackerIndex].CreatureStats.Power);
                }
            }
            if (attackerIndex >= 0 && fromField[attackerIndex].CreatureStats.Health <= 0)
            {
                fromField.RemoveAt(attackerIndex);
            }
            if (defenderIndex >= 0 && toField[defenderIndex].CreatureStats.Health <= 0)
            {
                toField.RemoveAt(defenderIndex);
            }
        }
Пример #2
0
 public void AddPlayer(HS_PlayerInstance player)
 {
     if (!playerFieldIndicies.ContainsKey(player))
     {
         playerFieldIndicies.Add(player, PlayerCount);
         fields.Add(new List <HS_CreatureInstance>());
     }
 }
Пример #3
0
        public void AddCreature(HS_PlayerInstance player, HS_CreatureInstance ci)
        {
            List <HS_CreatureInstance> field = GetField(player);

            if (field.Count < MAX)
            {
                field.Add(ci);
            }
        }
Пример #4
0
 public void StartTurn(HS_PlayerInstance player)
 {
     player.AddManaCrystal();
     player.ResetMana();
     foreach (HS_CreatureInstance bi in battlefield.GetField(player))
     {
         bi.Refresh();
     }
     player.Draw();
 }
Пример #5
0
 public List <HS_CreatureInstance> GetField(HS_PlayerInstance player)
 {
     try
     {
         return(fields[(int)playerFieldIndicies[player]]);
     }
     catch {
         return(null);
     }
 }