public virtual void OnAnimationEnd(AnimationEndCmd cmd) { if (this.CurOutPutAction != string.Empty && this.CurOutPutAction != cmd.actName) { return; } if (ActionStatusName.IsDieAction(this.CurActionStatus)) { this.DeadAnimationEnd(); } else if (DataReader <Action> .Contains(this.CurActionStatus)) { if (DataReader <Action> .Get(this.CurActionStatus).loop == 0) { this.EndAnimationResetToIdle(); } } else { if (!string.IsNullOrEmpty(this.CurActionStatus)) { Debug.LogError("Action表不存在 " + this.CurActionStatus); } this.EndAnimationResetToIdle(); } }
public override bool CanChangeActionTo(string newAction, bool isCheckHitMoving = true, int candidateSkillID = 0, bool isLogOpen = false) { if (string.IsNullOrEmpty(newAction) || string.IsNullOrEmpty(this.CurActionStatus)) { return(true); } if ((this.GetEntity() as EntityMonster).IsComponont && !string.IsNullOrEmpty(newAction)) { newAction += this.ActionStatusPostfix; } return(!this.GetEntity().IsStatic&& (!this.GetEntity().IsFixed || !XUtility.StartsWith(newAction, "run")) && (!isCheckHitMoving || !this.GetEntity().IsHitMoving || ActionStatusName.IsDieAction(newAction)) && (!isCheckHitMoving || !base.IsStraight || ActionStatusName.IsDieAction(newAction) || ActionStatusName.IsHitAction(newAction)) && (!this.GetEntity().IsEndure || !ActionStatusName.IsHitAction(newAction)) && (!this.GetEntity().IsWeak || (!ActionStatusName.IsActionCauseNormalMove(newAction) && !ActionStatusName.IsSpinAction(newAction))) && base.HasActionOrFixAction(newAction) && ((base.IsUnderCombo && base.ActionSkillComboID != 0 && base.ActionSkillComboID == candidateSkillID) || newAction == this.CurActionStatus || base.ActionPriorityTable[newAction] > base.ActionPriorityTable[this.CurActionStatus] || base.IsUnderTermination || ActionStatusName.IsIdleAction(newAction))); }