public override bool Evaluate(uint frame, uint endFrame,
                                      CAF.Entities.EntityManager controller, AttackEventVariables variables)
        {
            TUF.Entities.EntityPhysicsManager physicsManager = (TUF.Entities.EntityPhysicsManager)controller.PhysicsManager;

            Vector3 f = Vector3.zero;

            if (xzForce)
            {
                f.x = variables.floatVars[0];
                f.z = variables.floatVars[1];
            }
            if (yForce)
            {
                f.y = variables.floatVars[2];
            }

            f = controller.GetVisualBasedDirection(f);

            if (yForce)
            {
                physicsManager.forceGravity.y += f.y;
            }
            if (xzForce)
            {
                f.y = 0;
                physicsManager.forceMovement += f;
            }
            return(false);
        }
Beispiel #2
0
        public override bool Evaluate(uint frame, uint endFrame,
                                      CAF.Entities.EntityManager controller, AttackEventVariables variables)
        {
            TUF.Entities.EntityPhysicsManager physicsManager = (TUF.Entities.EntityPhysicsManager)controller.PhysicsManager;

            Vector3 f       = Vector3.zero;
            float   percent = (float)frame / (float)endFrame;

            if (xForce)
            {
                f.x = variables.curveVars[0].Evaluate(percent)
                      * variables.floatVars[0];
            }
            if (yForce)
            {
                f.y = variables.curveVars[1].Evaluate(percent)
                      * variables.floatVars[1];
            }
            if (zForce)
            {
                f.z = variables.curveVars[2].Evaluate(percent)
                      * variables.floatVars[2];
            }

            float tempY = f.y;

            f = controller.GetVisualBasedDirection(f);

            // Set Mode
            if (variables.intVars[0] == 0)
            {
                if (yForce)
                {
                    physicsManager.forceGravity.y = tempY;
                }
                if (xForce || zForce)
                {
                    f.y = 0;
                    physicsManager.forceMovement = f;
                }
            }
            else
            {
                if (yForce)
                {
                    physicsManager.forceGravity.y += f.y;
                }
                if (xForce || zForce)
                {
                    f.y = 0;
                    physicsManager.forceMovement += f;
                }
            }
            return(false);
        }