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);
 }
Esempio n. 2
0
    //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;
            }
        }
    }
Esempio n. 3
0
    //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);
        }
    }