示例#1
0
        public TroopStats(string _name, TroopType _type, int _hp, int _dmg, float _range, int _blockChance)
        {
            troopName   = _name;
            type        = _type;
            health      = _hp;
            damage      = _dmg;
            attackRange = _range;

            if (_blockChance > 100)
            {
                blockChance = 100;
            }
            else if (_blockChance < 0)
            {
                blockChance = 0;
            }
            else
            {
                blockChance = _blockChance;
            }

            sprite = Resources.Load <Sprite>(_type.ToString());

            relations = new SerializableDictionary <TroopStats, Relationship>();
        }
示例#2
0
        public TroopStats(TroopType _type)
        {
            TroopStats _newStats = GetStatsForType(_type);

            troopName   = _newStats.troopName;
            type        = _newStats.type;
            health      = _newStats.health;
            damage      = _newStats.damage;
            attackRange = _newStats.attackRange;
            blockChance = _newStats.blockChance;

            sprite = Resources.Load <Sprite>(_type.ToString());

            relations = new SerializableDictionary <TroopStats, Relationship>();
        }
示例#3
0
        public static void HandleMoveTroops(int fromClient, Packet packet)
        {
            int clientIDCheck = packet.ReadInt();

            if (fromClient != clientIDCheck)
            {
                Console.WriteLine($"Player with ID: \"{fromClient}\" has assumed the wrong client ID: \"{clientIDCheck}\"!");
            }

            HexCoordinates coordinates = packet.ReadHexCoordinates();
            TroopType      troopType   = (TroopType)packet.ReadByte();
            int            amount      = packet.ReadInt();

            Player         player            = Server.clients[fromClient].Player;
            TroopInventory buildingInventory = ((ProtectedBuilding)GameLogic.grid.GetCell(coordinates).Structure).TroopInventory;

            if (GameLogic.MoveTroops(player, coordinates, troopType, amount))
            {
                ServerSend.BroadcastMoveTroops(player, coordinates, troopType, amount);
                Console.WriteLine("Player: " + player.Name + "of tribe " + player.Tribe.Id.ToString() + " successfully exchanged " + amount.ToString() + troopType.ToString() + " with a building at" + coordinates.ToString() + ".");
            }
            else
            {
                Console.WriteLine("Player: " + player.Name + "of tribe " + player.Tribe.Id.ToString() + " failed to exchange " + amount.ToString() + troopType.ToString() + " with building at " + coordinates.ToString() + ".");
            }
        }
示例#4
0
 public static string ToFriendlyString(this TroopType troopType)
 {
     return(troopType.ToString().ToLower().FirstCharToUpper());
 }
示例#5
0
 public static String TroopTypeToString(TroopType?troopType)
 {
     return(troopType?.ToString()?.ToLower());
 }
示例#6
0
 public static String ToTroopString(this TroopType troopType) => troopType.ToString().ToLower();