public override void OnStart() { this._state = AvatarAttackState.Idle; this._timer = this.RetryTimeOut; this._skillIDIx = 0; this._avatar.onBeHitCanceled = (Action <string>)Delegate.Combine(this._avatar.onBeHitCanceled, new Action <string>(this.AvatarBeHitCancelCallback)); }
public override TaskStatus OnUpdate() { if (this._state == AvatarAttackState.Idle) { this._avatar.GetActiveAIController().TryUseSkill("ATK"); this._state = AvatarAttackState.WaitingForAttackStart; return(TaskStatus.Running); } if (this._state == AvatarAttackState.WaitingForAttackStart) { if (this._avatar.CurrentSkillID == this.AttackSkillIDs[0]) { this._state = AvatarAttackState.InAttack; return(TaskStatus.Running); } this._timer -= Time.deltaTime * this._avatar.TimeScale; if (this._timer < 0f) { return(TaskStatus.Failure); } this._avatar.GetActiveAIController().TryUseSkill("ATK"); return(TaskStatus.Running); } if (this._state == AvatarAttackState.InAttack) { if (this._skillIDIx == (this.AttackSkillIDs.Length - 1)) { if (this._avatar.CurrentSkillID == this.AttackSkillIDs[this._skillIDIx]) { return(TaskStatus.Running); } return(TaskStatus.Success); } if (this._avatar.CurrentSkillID == this.AttackSkillIDs[this._skillIDIx]) { this._avatar.GetActiveAIController().TryUseSkill("ATK"); return(TaskStatus.Running); } if (this._avatar.CurrentSkillID == this.AttackSkillIDs[this._skillIDIx + 1]) { this._avatar.GetActiveAIController().TryUseSkill("ATK"); this._skillIDIx++; return(TaskStatus.Running); } return(TaskStatus.Failure); } if (this._state == AvatarAttackState.BeHitCanceled) { return(TaskStatus.Failure); } return(TaskStatus.Failure); }
private void AvatarBeHitCancelCallback(string skillID) { this._state = AvatarAttackState.BeHitCanceled; }