public override bool PlacementConditionCheck(ToolController Owner) { ReturnValue = false; CloudColliders = Physics.OverlapSphere(transform.position, 0.5f, CloudColliderMask, QueryTriggerInteraction.Collide); foreach (var collider in CloudColliders) { FoundCloud = collider.GetComponentInParent <GasCloud>(); if (FoundCloud != null) { if (!FoundCloud.HasNaniteSat) { return(true); } } } return(false); }
//method: CriticalFart //purpose: makes the panda fart randomly if he's too "full"... he can't hold it. //make the expresion and sound effects funny for this! void CriticalFart() { fartCooldown = FART_COOLDOWN; fartEnergy -= 5; fartGauge.DecreaseFart(5); GameObject gasCloud = (GameObject)Instantiate(Resources.Load("Gas Cloud")); GasCloud g = gasCloud.GetComponent <GasCloud>(); g.setFartNum(3); g.setDamage(criticalFartDamage); if (Input.GetKey(KeyCode.W)) { rb2d.AddForce(Vector2.up * fartPower * 5.0f); g.xSpeed = 0.0f; g.ySpeed = -fartSpeed * 2.0f; g.transform.position = this.transform.position + new Vector3(0, -boxCollider.size.y / 2.2f); } else { if (facingRight) { rb2d.AddForce(Vector2.right * fartPower * 5.0f); g.transform.position = this.transform.position + new Vector3(-boxCollider.size.x / 2.2f, 0); g.xSpeed = -fartSpeed * 2.0f; g.ySpeed = 0.0f; g.growthRate *= 0.4f; } else { rb2d.AddForce(-Vector2.right * fartPower * 5.0f); g.transform.position = this.transform.position + new Vector3(boxCollider.size.x / 2.2f, 0); g.xSpeed = fartSpeed * 2.0f; g.ySpeed = 0.0f; g.growthRate *= 0.4f; } } }
//method: Fart //purpose: makes the panda fart in the right direction. Can only fart in one direction at a time. //farting up takes priority, then side to side, last, giant fart. void Fart() { if (Input.GetKey(KeyCode.W)) { GameObject gasCloud = (GameObject)Instantiate(Resources.Load("Gas Cloud")); GasCloud g = gasCloud.GetComponent <GasCloud>(); if (fartEnergy < 40) { g.setFartNum(2); } else { g.setFartNum(1); } rb2d.AddForce(Vector2.up * fartPower); g.xSpeed = 0.0f; g.ySpeed = -fartSpeed; g.transform.position = this.transform.position + new Vector3(0, -boxCollider.size.y / 2.2f); fartCooldown = FART_COOLDOWN; fartEnergy--; fartGauge.DecreaseFart(1); g.setDamage(normalFartDamage); } else if (Input.GetKey(KeyCode.S)) { if (facingRight) { GameObject gasCloud = (GameObject)Instantiate(Resources.Load("Gas Cloud")); GasCloud g = gasCloud.GetComponent <GasCloud>(); if (fartEnergy < 40) { g.setFartNum(2); } else { g.setFartNum(1); } rb2d.AddForce(Vector2.right * fartPower * 0.8f); g.transform.position = this.transform.position + new Vector3(-boxCollider.size.x / 2.2f, 0); g.xSpeed = -fartSpeed; g.ySpeed = 0.0f; g.growthRate *= 0.4f; fartCooldown = FART_COOLDOWN; fartEnergy--; fartGauge.DecreaseFart(1); g.setDamage(normalFartDamage); } else { GameObject gasCloud = (GameObject)Instantiate(Resources.Load("Gas Cloud")); GasCloud g = gasCloud.GetComponent <GasCloud>(); if (fartEnergy < 40) { g.setFartNum(2); } else { g.setFartNum(1); } rb2d.AddForce(-Vector2.right * fartPower * 0.8f); g.transform.position = this.transform.position + new Vector3(boxCollider.size.x / 2.2f, 0); g.xSpeed = fartSpeed; g.ySpeed = 0.0f; g.growthRate *= 0.4f; fartCooldown = FART_COOLDOWN; fartEnergy--; fartGauge.DecreaseFart(1); g.setDamage(normalFartDamage); } } else if (fartEnergy >= 4) { GameObject gasCloud = (GameObject)Instantiate(Resources.Load("Gas Cloud")); GasCloud g = gasCloud.GetComponent <GasCloud>(); if (fartEnergy < 40) { g.setFartNum(2); } else { g.setFartNum(1); } fartCooldown = FART_COOLDOWN * 20.0f; fartEnergy -= 4; fartGauge.DecreaseFart(4); g.transform.position = this.transform.position; g.xSpeed = 0.0f; g.ySpeed = 0.0f; g.growthRate *= 3.5f; g.setDamage(giantFartDamage); } }