Пример #1
0
    private bool buildable(TrapDataHolder data)
    {
        if (GameInformation.main.builtTraps.Count < 4)
        {
            if (data.costs.Count > 0)
            {
                foreach (ResourceCost cost in data.costs)
                {
                    PlayerResources resToFind = GameInformation.main.playerResources.Find(x => x.name == cost.resource);
                    if (resToFind.currentValue < cost.amount)
                    {
                        NotificationHandler.main.newNotification("Insufficient resources to build trap.");
                        return(false);
                    }
                    else
                    {
                        resToFind.currentValue -= cost.amount;
                    }
                }
            }
        }
        else
        {
            NotificationHandler.main.newNotification("There's no more space to build a new trap.");
            return(false);
        }

        // returns true if it gets this far without a problem
        return(true);
    }
Пример #2
0
    public void destroyBuiltTrap()
    {
        TrapDataHolder trap      = EventSystem.current.currentSelectedGameObject.transform.parent.gameObject.GetComponent <TrapDataHolder>();
        Trap           foundTrap = GameInformation.main.builtTraps.Find(delegate(Trap trp) { return(trp.trapName == trap.trapName); });

        GameInformation.main.builtTraps.Remove(foundTrap);
        DisplayGameInformation.main.updateAllDisplays();
        Destroy(trap.gameObject);
    }
Пример #3
0
 // Use this for initialization
 void Start()
 {
     descriptText = transform.Find("DescripText").gameObject;
     if (belongsTo.GetComponent <TrapDataHolder>())
     {
         TrapDataHolder trap = belongsTo.GetComponent <TrapDataHolder>();
         descriptText.GetComponent <Text>().text = trap.trapDescrip;
         foreach (ResourceCost cost in trap.costs)
         {
             DisplayRequirement.main.displayResourceRequirement(transform.Find("RequirementPanel").transform, cost.resource, cost.amount);
         }
     }
 }
Пример #4
0
    public void buildNewTrap()
    {
        TrapDataHolder trap = EventSystem.current.currentSelectedGameObject.transform.parent.gameObject.GetComponent <TrapDataHolder>();

        if (buildable(trap))
        {
            Trap foundTrap = GameInformation.main.availableTraps.Find(delegate(Trap trp) { return(trp.trapName == trap.trapName); });
            GameInformation.main.builtTraps.Add(foundTrap);
            DisplayGameInformation.main.updateAllDisplays();
            LogDisplay.main.parseBuildTrapLog(trap.trapName);
            NotificationHandler.main.newNotification("Successfuly built " + trap.trapName + "!");
        }
    }
Пример #5
0
 public void updateActiveTrapsDisplay()
 {
     foreach (Transform child in activeTrapsPanel.transform)
     {
         Destroy(child.gameObject);
     }
     foreach (Trap trap in GameInformation.main.builtTraps)
     {
         GameObject     setTrap = Instantiate(activeTrapPrefab, this.transform.position, this.transform.rotation, activeTrapsPanel.transform);
         TrapDataHolder data    = setTrap.GetComponent <TrapDataHolder>();
         data.trapName  = trap.trapName;
         data.reuseable = trap.reuseable;
         setTrap.GetComponent <Image>().sprite = trap.icon;
         setTrap.transform.GetChild(0).GetComponent <Text>().text = trap.trapName;
     }
 }