// Update is called once per frame void Update() { state = animator.State; switch (state) { case TP_Animator.CharacterState.Idle: aSource.clip = null; break; case TP_Animator.CharacterState.Walking: Play(Sounds[0]); break; case TP_Animator.CharacterState.Jumping: Play(Sounds[1]); break; case TP_Animator.CharacterState.Running: Play(Sounds[2]); break; case TP_Animator.CharacterState.Attacking: Play(Sounds[3]); break; case TP_Animator.CharacterState.Falling: break; case TP_Animator.CharacterState.Landing: Play(Sounds[4]); break; case TP_Animator.CharacterState.Power1: Play(Sounds[5]); break; } }
// Update is called once per frame void Update() { CheckCanMove(); CheckSkillState(); TP_Animator.CharacterState lastState = playerAnimator.State; playerHealth = playerInfo.GetVital((int)VitalName.Health); aiRig.AI.WorkingMemory.SetItem("DyingHealth", (int)(playerHealth.MaxValue * 0.1f)); aiRig.AI.WorkingMemory.SetItem("health", playerHealth.CurValue); if (playerInfo.Level != _level) { aiRig.AI.WorkingMemory.SetItem("level", playerInfo.Level); } if (_speed != playerInfo.GetAbility((int)(AbilityName.MoveSpeed)).CurValue) { _speed = playerInfo.GetAbility((int)(AbilityName.MoveSpeed)).CurValue; aiRig.AI.WorkingMemory.SetItem("forwardSpeed", _speed); } rayCastTest(); _state = aiRig.AI.WorkingMemory.GetItem <string>("state"); _attack = aiRig.AI.WorkingMemory.GetItem <string>("attackWay"); if (_canShopping != playerInfo.CanShopping) { _canShopping = playerInfo.CanShopping; aiRig.AI.WorkingMemory.SetItem("canShopping", _canShopping); } if (_atHome != aiRig.AI.WorkingMemory.GetItem <bool>("atHome")) { aiRig.AI.WorkingMemory.SetItem("atHome", _atHome); } if (_atEnemyHome != aiRig.AI.WorkingMemory.GetItem <bool>("atEnemy")) { aiRig.AI.WorkingMemory.SetItem("atEnemy", _atEnemyHome); } if (_state == "runningForward") { if (lastState != TP_Animator.CharacterState.KnockingDown && lastState != TP_Animator.CharacterState.StandingUp && playerAnimator.CanMove()) { if (playerAnimator.MoveDirection != TP_Animator.Direction.Forward) { playerAnimator.MoveDirection = TP_Animator.Direction.Forward; playerAnimator.State = TP_Animator.CharacterState.Running; } } } if (_state == "runningBack") { if (lastState != TP_Animator.CharacterState.KnockingDown && lastState != TP_Animator.CharacterState.StandingUp && playerAnimator.CanMove()) { playerAnimator.MoveDirection = TP_Animator.Direction.Backward; playerAnimator.State = TP_Animator.CharacterState.Running; } } if (_state == "StoreEnergy") { if (!aiRig.AI.WorkingMemory.ItemExists("storeEnergyTimer")) { aiRig.AI.WorkingMemory.SetItem("storeEnergyTimer", 0); } float SETimer = aiRig.AI.WorkingMemory.GetItem <float>("storeEnergyTimer"); if (SETimer < 5) { SETimer += Time.deltaTime; aiRig.AI.WorkingMemory.SetItem("storeEnergyTimer", SETimer); playerController.EnergyStoreInput(0); } else { _state = "Idle"; aiRig.AI.WorkingMemory.SetItem("Task", 0); aiRig.AI.WorkingMemory.RemoveItem("storeEnergyTimer"); playerAnimator.EnergyStoreInput(1); } } if (_state != playerAnimator.State.ToString()) { if (_state == "Dead") { playerAnimator.Die(); } if (lastState == TP_Animator.CharacterState.KnockingDown && !playerAnimator.LockAnimating) { playerAnimator.StandUp(); } if (lastState != TP_Animator.CharacterState.KnockingDown && lastState != TP_Animator.CharacterState.StandingUp && lastState != TP_Animator.CharacterState.EnergyStoring && playerAnimator.Mode != TP_Animator.CharacterMode.Skilling) { switch (_state) { case "Idle": playerAnimator.MoveDirection = TP_Animator.Direction.Stationary; playerAnimator.State = TP_Animator.CharacterState.Idle; break; } } } if (_attack == "MagicAttack") { if (!playerAnimator.LockAttacking && !playerAnimator.LockAnimating) { if (lastState != TP_Animator.CharacterState.KnockingDown && lastState != TP_Animator.CharacterState.StandingUp && lastState != TP_Animator.CharacterState.EnergyStoring) { playerAnimator.LockAttacking = true; playerController.MagicAttackInput(0); } } } }
// Update is called once per frame void Update() { if (Enemy != null) { aiRig.AI.WorkingMemory.SetItem("Enemy", Enemy); } if (type == MonsterType.monster) { if (BossScript != null) { Enemy = BossScript.aiRig.AI.WorkingMemory.GetItem <GameObject>("Enemy"); aiRig.AI.WorkingMemory.SetItem("Enemy", Enemy); inLand = BossScript.inLand; aiRig.AI.WorkingMemory.SetItem("inLand", inLand); } else { } } else if (type == MonsterType.monsterBoss) { inLand = aiRig.AI.WorkingMemory.GetItem <bool>("inLand"); } Recover = aiRig.AI.WorkingMemory.GetItem <bool>("recover"); if (Recover) { playerInfo.GetVital((int)VitalName.Health).DamageValue = 0; myTransform.rotation = new Quaternion(myTransform.rotation.x, 0, myTransform.rotation.z, myTransform.rotation.w); foreach (MonsterScript ms in minions) { ms.playerInfo.GetVital((int)VitalName.Health).DamageValue = 0; ms.RotateToLand(); } } playerHealth = playerInfo.GetVital((int)VitalName.Health); aiRig.AI.WorkingMemory.SetItem("health", playerHealth.CurValue); if (_speed != playerInfo.GetAbility((int)(AbilityName.MoveSpeed)).CurValue) { _speed = playerInfo.GetAbility((int)(AbilityName.MoveSpeed)).CurValue; aiRig.AI.WorkingMemory.SetItem("forwardSpeed", _speed); } if (_state == "InLand") { aiRig.AI.WorkingMemory.SetItem("state", "Idle"); } _state = aiRig.AI.WorkingMemory.GetItem <string>("state"); TP_Animator.CharacterState lastState = playerAnimator.State; if (playerAnimator.CanMove()) { if (islocked) { islocked = false; aiRig.AI.WorkingMemory.SetItem("isLocked", islocked); } } else { if (!islocked) { islocked = true; aiRig.AI.WorkingMemory.SetItem("isLocked", islocked); } } if (_state == "runningForward") { if (playerAnimator.CanMove()) { if (playerAnimator.MoveDirection != TP_Animator.Direction.Forward) { playerAnimator.MoveDirection = TP_Animator.Direction.Forward; playerAnimator.State = TP_Animator.CharacterState.Running; } } } if (_state != playerAnimator.State.ToString()) { /*if(_state == "Dead") * playerAnimator.Die();*/ if (lastState == TP_Animator.CharacterState.KnockingDown && !playerAnimator.LockAnimating) { playerAnimator.StandUp(); } if (lastState != TP_Animator.CharacterState.Beinghit && lastState != TP_Animator.CharacterState.Dizzing && lastState != TP_Animator.CharacterState.Freeze && lastState != TP_Animator.CharacterState.Dead && lastState != TP_Animator.CharacterState.KnockingDown && lastState != TP_Animator.CharacterState.StandingUp && lastState != TP_Animator.CharacterState.Attacking001 && lastState != TP_Animator.CharacterState.Attacking002 && lastState != TP_Animator.CharacterState.Attacking003) { switch (_state) { case "Idle": playerAnimator.MoveDirection = TP_Animator.Direction.Stationary; playerAnimator.State = TP_Animator.CharacterState.Idle; break; } } } if (attackTimer == 0) { if (!playerAnimator.LockAttacking && !playerAnimator.LockAnimating) { _attack = aiRig.AI.WorkingMemory.GetItem <bool>("canAttack"); if (_attack) { if (lastState != TP_Animator.CharacterState.KnockingDown && lastState != TP_Animator.CharacterState.StandingUp && lastState != TP_Animator.CharacterState.EnergyStoring) { attackTimer = 1; playerAnimator.LockAttacking = true; playerAnimator.LockAnimating = true; int way = 1; if (type == MonsterType.monsterBoss) { way = (int)(Random.Range(1, 4 - 0.01f)); } else if (type == MonsterType.monster) { way = (int)(Random.Range(1, 3 - 0.01f)); } if (way == 1) { playerAnimator.Attack001(); } else if (way == 2) { playerAnimator.Attack002(); } else { playerAnimator.Attack003(); } } } } } }