Пример #1
0
        public static int GetCost(this CreatableObject obj)
        {
            switch (obj)
            {
            case CreatableObject.Portal:
                return(GameState.Game.PortalCost);

            case CreatableObject.ManaFountain:
                return(GameState.Game.ManaFountainCost);

            case CreatableObject.IceTroll:
                return(GameState.Game.IceTrollCost);

            case CreatableObject.LavaGiant:
                return(GameState.Game.LavaGiantCost);

            case CreatableObject.SpeedUp:
                return(GameState.Game.SpeedUpCost);

            case CreatableObject.Invisibility:
                return(GameState.Game.InvisibilityCost);

            case CreatableObject.Tornado:
                return(GameState.Game.TornadoCost);

            default:
                return(0);
            }
        }
Пример #2
0
 public void CreateObject(CreatableObject obj)
 {
     if(obj.Price>ResourceAmount)
     {
         Destroy(obj.gameObject);
     }
     else
     {
         ResourceAmount -= obj.Price;
     }
 }
Пример #3
0
 /// <summary>
 ///     returns true if we have enough mana to create
 ///     the given obj. This method takes into consideration mana reserving.
 /// </summary>
 /// <param name="obj"></param>
 /// <returns></returns>
 public static bool HasManaFor(CreatableObject obj) => obj.GetCost() <= GameState.CurrentMana;
Пример #4
0
 /// <summary>
 ///     reserves the mana that is needed to build the given building
 /// </summary>
 /// <param name="obj"></param>
 public static void SaveManaFor(CreatableObject obj) => GameState.ReservedMana += obj.GetCost();