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); }
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); }
// 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); } } }
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 + "!"); } }
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; } }