Пример #1
0
        private void CommitDive()
        {
            if (ANIMATION_DATA.PlayTime < DiveTime)
            {
                return;
            }

            if (ANIMATION_DATA.PlayTime > RollTime)
            {
                return;
            }

            CONTROL_MECHANISM.RIGIDBODY.useGravity = true;
            CONTROL_MECHANISM.TriggerColliderControl(DynamicColliderType.DEFAULT);

            if (IsDiving)
            {
                if (!StopAnimationTriggered)
                {
                    StopAnimationTriggered = true;
                    ANIMATION_DATA.StopAnimation();
                }
                UpdateFallTilt();
            }
        }
 public bool UpdateAnimation()
 {
     ANIMATION_DATA.UpdateData();
     if (!ANIMATION_DATA.IsAnimation())
     {
         return(false);
     }
     else
     {
         return(true);
     }
 }
Пример #3
0
        private void Roll()
        {
            //check for ground collision
            if (!ANIMATION_DATA.AnimationIsPlaying())
            {
                if (move.IsGoingToLand() || MOVEMENT_DATA.IsGrounded)
                {
                    CONTROL_MECHANISM.ClearVelocity();
                    ANIMATION_DATA.PlayAnimation();
                }
            }

            //resume normal play
            if (ANIMATION_DATA.PlayTime >= RollTime)
            {
                SetDefaultTilt();
                move.MoveForward(MOVEMENT_DATA.RunSpeed * 0.9f, CHARACTER_TRANSFORM.rotation.eulerAngles.y);
                CONTROL_MECHANISM.TriggerColliderControl(DynamicColliderType.DEFAULT);
            }
        }
        public bool DurationTimePassed()
        {
            if (!ANIMATION_DATA.IsAnimation())
            {
                return(false);
            }

            if (Duration == 0f)
            {
                return(false);
            }
            else if (ANIMATION_DATA.PlayTime >= Duration)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
		public override void RunFixedUpdate () {
			if (ANIMATION_DATA.AnimationNameMatches) {
				if (ANIMATION_DATA.PlayTime < 0.6f) {
					if (!MOVEMENT_DATA.IsGrounded) {
						move.MoveForward (MOVEMENT_DATA.RunSpeed * 0.65f, CHARACTER_TRANSFORM.rotation.eulerAngles.y);
					}
				}

				//hangtime
				if (ANIMATION_DATA.PlayTime > 0.48f) {
					ResetCameraToNormal ();
					if (!MOVEMENT_DATA.IsGrounded) {
						if (ANIMATION_DATA.AnimationIsPlaying ()) {
							ANIMATION_DATA.StopAnimation ();
						}
					}

					if (!ANIMATION_DATA.AnimationIsPlaying ()) {
						if (MOVEMENT_DATA.IsGrounded) {
							ANIMATION_DATA.PlayAnimation ();
						}
					}
				}

				//show effect - motion, cam shake
				if (ANIMATION_DATA.PlayTime > 0.515f) {
					if (MOVEMENT_DATA.IsGrounded) {
						if (!attack.AttackAnimationMotionTriggered) {
							attack.AttackAnimationMotionTriggered = true;
							GameObject sm = VFX_MANAGER.ShowSimpleEffect (SimpleEffectType.MOTION_STRAIGHT_ATTACK, CONTROL_MECHANISM.transform.position);
							if (!CONTROL_MECHANISM.IsFacingForward ()) {
								sm.transform.rotation = Quaternion.Euler (0, 180, 0);
							} else {
								sm.transform.rotation = Quaternion.Euler (0, 0, 0);
							}
							CAMERA_MANAGER.ShakeCamera (0.4f);
						}
					}
				}

				//show effect - ground effect
				if (ANIMATION_DATA.PlayTime > 0.55f) {
					if (attack.AttackAnimationMotionTriggered && !GroundEffectShown) {
						GroundEffectShown = true;
						GameObject nt = VFX_MANAGER.ShowSimpleEffect (SimpleEffectType.NITRONIC, CONTROL_MECHANISM.transform.position);
						if (!CONTROL_MECHANISM.IsFacingForward ()) {
							nt.transform.rotation = Quaternion.Euler (0, 180, 0);
						} else {
							nt.transform.rotation = Quaternion.Euler (0, 0, 0);
						}
						VFX_MANAGER.ShowSimpleEffect (SimpleEffectType.GROUND_IMPACT_DUST, CONTROL_MECHANISM.transform.position);

						//need to be more specific later
						foreach (ControlMechanism e in CHARACTER_MANAGER.ListEnemies) {
							if (e.characterStateController.CurrentState.GetType () != typeof (CharacterDeath)) {
								float dist = Vector3.Distance (e.transform.position, CONTROL_MECHANISM.transform.position);
								//Debug.Log (e.gameObject.name + " distance to player: " + dist);
								if (dist < 1.8f) {
									e.characterStateController.DeathCause = "GroundShock";
									e.characterStateController.ChangeState (999);
								}
							}
						}
					}
				}
			} else {
				move.MoveForward (MOVEMENT_DATA.RunSpeed * 0.7f, CHARACTER_TRANSFORM.rotation.eulerAngles.y);
			}
		}