Example #1
0
        public void OnStart(bool jump = false)
        {
            // ADD SCRIPT
            stateScriptHandle = fighter.Machine.AddScript(scripts);


            if (isShortcut)
            {
                fighter.stateMachine.JumpToState(targetState);
                return;
            }


            time.Reset();
            if (containedNodes.Count <= 0)
            {
                currentData = UnityEngine.Object.Instantiate(data);
                currentData.Initialize(fighter);
                currentData.Invert = invert;
                currentData.OnStart();
            }
            else
            {
                if (!jump)
                {
                    machine.PushState(startState);
                }
            }
        }
Example #2
0
        public Vector2 GetRawVelocity()
        {
            LZFighterFrame     frame     = CurrentFrame;
            LZFighterStateData state     = CurrentStateData;
            StateMachineNode   stateNode = stateMachine.CurrentState;

            return(frame.velocity + state.velocity + stateNode.velocity);
        }
Example #3
0
        public Vector2 GetVelocity()
        {
            LZFighterFrame     frame     = CurrentFrame;
            LZFighterStateData state     = CurrentStateData;
            StateMachineNode   stateNode = stateMachine.CurrentState;
            Vector2            velocity  = frame.velocity + state.velocity + stateNode.velocity;

            velocity *= internalVelocityStrength;

            if (velocityModifier != null)
            {
                foreach (var modifier in velocityModifier.GetInvocationList())
                {
                    velocity = (Vector2)modifier.DynamicInvoke(velocity);
                }
                //velocity /= velocityModifier.GetInvocationList().Length + 1f;
            }

            if (invertHorizontal)
            {
                velocity = new Vector2(-velocity.x, velocity.y);
            }
            return(velocity);
        }