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); } }
public void CreateObject(CreatableObject obj) { if(obj.Price>ResourceAmount) { Destroy(obj.gameObject); } else { ResourceAmount -= obj.Price; } }
/// <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;
/// <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();