public override void Execute() { base.Execute(); isActive = true; nextStateTime = Time.time + 0.4f; state = SlamStates.Casting; gc.controller.LockY = true; gc.controller.CurInfluenceX = 0; gc.controller.CurExternalVeloX = 0; animator.speed = 1.5f; animator.CrossFade(HashLookup.slamHash, 0.1f, 0, 0); }
//called from girl controller Update() while this ability is active public override void ActiveUpdate() { if (state == SlamStates.Casting) { if (Time.time > nextStateTime) { state = SlamStates.PreImpact; nextStateTime = Time.time + 0.15f; gc.controller.LockY = false; gc.controller.CurExternalVeloY = -40f; } } else if (state == SlamStates.PreImpact) { if (!gc.IsAirborne) { state = SlamStates.PostImpact; nextStateTime = Time.time + 0.25f; animator.speed = 1f; animator.CrossFade(HashLookup.slamHash, 0.1f, 0, 0.55f); SpawnDamageEffect(); } if (Time.time > nextStateTime) { isActive = false; animator.speed = 1f; animator.CrossFade(HashLookup.loopJumpHash, 0.1f, 0, 0); gc.controller.CurExternalVeloY = 0f; } } else if (state == SlamStates.PostImpact) { if (Time.time > nextStateTime) { isActive = false; } } }
public void HandleJumpPad() { if (state == SlamStates.PreImpact) { SpawnDamageEffect(); state = SlamStates.Casting; } isActive = false; }