public bool doBehavior(bool condition)
    {
        if (condition && !active)
        {
            if (entity == null)
            {
                entity = this.gameObject.GetComponent <AI_Entity>();
            }

            if (entity.pushOneShotParticles != null)
            {
                entity.pushOneShotParticles.Emit(entity.pushOneShotAmount);
            }

            if (!ManagesPostProcessing.getInstance().hackingEntities.Contains(this.gameObject))
            {
                ManagesPostProcessing.getInstance().hackingEntities.Add(this.gameObject);
            }

            if (ManagesPlayer.getInstance().playerValues.canUseAbilities)
            {
                if (entity.playRemoveAbilitiesSound)
                {
                    entity.playSound();
                }
            }

            ManagesPlayer.getInstance().canUseAbilities(false);

            ManagesGame.getInstance().utilityFunctions.particleEmission(
                ManagesPlayer.getInstance().noAbilityParticleSystem, true);

            active = true;
        }
        else if (condition && active)
        {
            if (entity.pushOneShotParticles != null)
            {
                entity.pushOneShotParticles.Emit(entity.pushOneShotAmount);
            }
        }
        else if (!condition && active)
        {
            ManagesPlayer.getInstance().canUseAbilities(true);

            if (ManagesPostProcessing.getInstance().hackingEntities.Contains(this.gameObject))
            {
                ManagesPostProcessing.getInstance().hackingEntities.Remove(this.gameObject);
            }

            ManagesGame.getInstance().utilityFunctions.particleEmission(
                ManagesPlayer.getInstance().noAbilityParticleSystem, false);

            active = false;
        }

        return(condition);
    }
Exemplo n.º 2
0
 void Awake()
 {
     if (instance != null)
     {
         Destroy(this.gameObject);
     }
     else
     {
         instance = this;
     }
 }
Exemplo n.º 3
0
    // Update is called once per frame
    void Update()
    {
        if (isPlayer)
        {
            if (ManagesPlayer.getInstance().playerPhysicsController.velocity.magnitude > 80 && !activatedParticles)
            {
                if (ManagesPlayer.getInstance().playerPhysicsController.velocity.y < -80)
                {
                    actualStrength += 50;
                }
                ManagesGame.getInstance().utilityFunctions.particleEmission(ManagesPlayer.getInstance().fallingParticleSystem, true);
                activatedParticles = true;
            }
            else if (ManagesPlayer.getInstance().playerPhysicsController.velocity.magnitude < 80)
            {
                ManagesGame.getInstance().utilityFunctions.particleEmission(ManagesPlayer.getInstance().fallingParticleSystem, false);
                activatedParticles = false;
            }
        }

        if (!groundCheck.checkGrounded())
        {
            if (isPlayer)
            {
                if (!ManagesPowerUps.getInstance().isPowerUpActive(PowerUpTypes.ANTI_GRAV))
                {
                    actualStrength += strengthIncrease * Time.deltaTime;
                }
                else
                {
                    actualStrength = 1.0f;
                }
            }
            else
            {
                actualStrength += strengthIncrease * Time.deltaTime;
            }

            if (actualStrength > maximumStrength)
            {
                actualStrength = maximumStrength;
            }

            float effectiveStrength = actualStrength * this.GetComponent <Rigidbody>().mass *Time.deltaTime;
            myBody.AddForce(Physics.gravity * effectiveStrength, ForceMode.Impulse);
        }
        else
        {
            resetStrength();
        }
    }