public override void Execute()
        {
            //get a reference to the entity
            LogicEntity e = Contexts.sharedInstance.logic.GetEntityWithId(entityID);

            //jump logic
            jumpFX.Update(e.jumpsCompleted.value != 0 && (int)e.jumpsCompleted.value != lastJumpsCompleted, e);
            lastJumpsCompleted = e.jumpsCompleted.value;

            //walljump logic
            walljumpFX.Update(e.isWallJumping, e);

            //footsteps logic
            footstepsFX.Update(e.isGrounded && e.velocity.value.x.Abs() >= FixedMath.Tenth, e);

            //dash
            dashFX.Update(e.isDashing && e.hasLastVelocity &&
                          (e.lastVelocity.value.x.Abs() < FixedMath.Thousandth || e.lastVelocity.value.x.Sign() != e.velocity.value.x.Sign()), e);

            //wallride
            wallrideFX.Update(e.isWallRiding, e);

            //land
            landFX.Update(!e.isGrounded, e);

            /* need to get the while wall ride is happening code */



            //landFX.Update (e.isGrounded, e);
        }
        public override void Execute()
        {
            //get a reference to the entity
            LogicEntity e = Contexts.sharedInstance.logic.GetEntityWithId(entityID);

            //when the soul hits you
            deathFX.Update(!e.hasFreeze && e.hasDeathTimer, e);

            //when you start sludging
            sludgeFX.Update(!e.hasFreeze && e.hasDeathTimer, e);

            if (e.isDead || e.hasFreeze)
            {
                return;
            }

            //jump
            jumpFX.Update(e.jumpsCompleted.value != 0 && (int)e.jumpsCompleted.value != lastJumpsCompleted, e);
            lastJumpsCompleted = e.jumpsCompleted.value;

            //wall jump
            wallJumpFX.Update(e.isWallJumping, e);

            //stun
            stunFX.Update(e.isStunned, e);

            //run
            runFX.Update(e.isGrounded && e.velocity.value.x.Abs() >= FixedMath.Tenth, e);

            //dash
            dashFX.Update(e.isDashing && e.hasLastVelocity &&
                          (e.lastVelocity.value.x.Abs() < FixedMath.Thousandth || e.lastVelocity.value.x.Sign() != e.velocity.value.x.Sign()), e);

            //wallride
            wallrideFX.Update(e.isWallRiding, e);

            //fall + land
            fallFX.Update(!e.isGrounded, e);
        }
Beispiel #3
0
        public override void Execute()
        {
            LogicEntity e = Contexts.sharedInstance.logic.GetEntityWithId(entityID);

            hatDeathFX.Update(e.isDead, e);

            hitLevelFX.Update(!e.collisionInfo.value.DoesntCollide(), e);
            hitHatFX.Update(e.collisionInfo.value.CollidesWith(Tag.HAT), e);
            hitPlayerFX.Update(e.collisionInfo.value.CollidesWith(Tag.PLAYER), e);

            if (e.isDead || e.hasFreeze)
            {
                return;
            }

            attachFX.Update(e.isAttached, e);
            throwFX.Update(e.isDangerous && !e.isAttached, e);

            groundFX.Update(e.isGrounded && Mathf.Abs(e.velocity.value.x) > 2, e);
            airFX.Update(e.isGrounded, e);

            endDangerousFX.Update(e.isDangerous, e);
        }