public bool doAttack(int attack) { if (opposite == null || opposite.Equals(null)) { return(false); } attackAnim.SetTrigger("Attack"); if (opposite.occupied) { opposite.occupying.TakeDamage(attack); } else if (ally) { //Fail to attack if no opposite enemy return(false); } else { int amount = ResourceHandler.instance.allyResource.GetResource(row); int strength = DIRECT_FACTOR * occupying.attack; int resourceLost = Mathf.Min(amount, strength); ResourceHandler.instance.allyResource -= ResourceStruct.GetOne(row) * resourceLost; ResourceHandler.instance.allyResource -= ResourceStruct.GetOne(ResourceEnum.money) * (strength - resourceLost); opposite.emitText("-" + strength); } return(true); }
public static ResourceStruct GetOne(ResourceEnum e) { ResourceStruct toReturn = ResourceStruct.zero.Copy(); toReturn.SetResource(e, 1); return(toReturn); }
private IEnumerator AmbientRoutine() { while (true) { yield return(new WaitForSeconds(ambientPeriod)); allyResource += ambient * ambientMoney; } }
public static ResourceStruct operator*(ResourceStruct a, float b) { ResourceStruct returnVal = new ResourceStruct(); for (int i = 0; i < resourceCount; ++i) { returnVal.resourceArray[i] = (int)(a.resourceArray[i] * b); } return(returnVal); }
public static ResourceStruct operator+(ResourceStruct a, ResourceStruct b) { ResourceStruct returnVal = new ResourceStruct(); for (int i = 0; i < resourceCount; ++i) { returnVal.resourceArray[i] = a.resourceArray[i] + b.resourceArray[i]; } return(returnVal); }
// Use this for initialization void Awake() { representer = GetComponentInChildren <RepresentStructHandler>(); if (instance == null || instance.Equals(null)) { instance = this; StartCoroutine(AmbientRoutine()); resource_internal = startingResource; } else { Destroy(gameObject); } }
public void Represent(ResourceStruct rs, bool showAll = false) { for (int i = 0; i < children.Length; ++i) { children[i].GetComponentInChildren <Text>().text = rs.resourceArray[i].ToString(); if (showAll || rs.resourceArray[i] > 0) { children[i].gameObject.SetActive(true); } else { children[i].gameObject.SetActive(false); } } }
void Update() { if (Input.GetKeyDown(KeyCode.Alpha1)) { ChangeEquippedTool(ToolList.Unarmed); } ; if (Input.GetKeyDown(KeyCode.Alpha2)) { ChangeEquippedTool(ToolList.Rock); } ; if (Input.GetKeyDown(KeyCode.Alpha3)) { ChangeEquippedTool(ToolList.SimpleKnife); } ; if (Input.GetKeyDown(KeyCode.Alpha4)) { ChangeEquippedTool(ToolList.SimpleAxe); } ; if (Input.GetKeyDown(KeyCode.Alpha5)) { ChangeEquippedTool(ToolList.SimplePickaxe); } ; if (Input.GetKeyDown(KeyCode.Alpha6)) { ChangeEquippedTool(ToolList.SimpleSpear); } ; if (Input.GetKeyDown(KeyCode.Alpha7)) { ChangeEquippedTool(ToolList.Torch); } ; if (Input.GetButtonDown("Interact")) { Debug.Log("Interact"); LayerMask resourceMask = LayerMask.GetMask("Resource"); LayerMask waterMask = LayerMask.GetMask("Water"); RaycastHit hit; if (Physics.Raycast(Camera.main.transform.position, Camera.main.transform.TransformDirection(Vector3.forward), out hit, 3, resourceMask)) { ResourceController resourceScript = hit.collider.gameObject.GetComponent <ResourceController>(); ResourceStruct resourceIncome = resourceScript.Interact(equippedTool); Debug.Log("Received " + resourceIncome.count + " " + resourceIncome.type); } } if (Input.GetButtonDown("Teleport")) { eyeAnimator.SetBool("IsEyeClosing", true); timer.Start(); } if (Input.GetButtonUp("Teleport") && !didTeleport) { eyeAnimator.SetBool("IsEyeClosing", false); timer.Stop(); } }