| | |
| | | public void PlayRecord(RecordAction recordAction) |
| | | { |
| | | if (recordAction == null) return; |
| | | recordAction.actionOwner = this; |
| | | // Debug.LogError("Enqueue record action " + recordAction.GetType() + " to queue"); |
| | | if (isForceFinish || stepForcefinish) |
| | | { |
| | |
| | | return; |
| | | } |
| | | recordActionQueue.Enqueue(recordAction); |
| | | recordAction.AfterAddToQueue(); |
| | | } |
| | | |
| | | public void PlayRecord(List<RecordAction> recordActions) |
| | |
| | | } |
| | | } |
| | | |
| | | public void InsertRecord(RecordAction recordAction) |
| | | public void InsertRecord(RecordAction recordAction, int position = 0) |
| | | { |
| | | if (recordAction == null) return; |
| | | recordAction.actionOwner = this; |
| | | if (isForceFinish || stepForcefinish) |
| | | { |
| | | recordAction.ForceFinish(); |
| | |
| | | if (currentRecordAction != null) |
| | | { |
| | | Queue<RecordAction> tempQueue = new Queue<RecordAction>(); |
| | | |
| | | for (int i = 0; i < position && recordActionQueue.Count > 0; i++) |
| | | { |
| | | tempQueue.Enqueue(recordActionQueue.Dequeue()); |
| | | } |
| | | |
| | | tempQueue.Enqueue(recordAction); |
| | | |
| | | while (recordActionQueue.Count > 0) |
| | | { |
| | | tempQueue.Enqueue(recordActionQueue.Dequeue()); |
| | | } |
| | | |
| | | recordActionQueue = tempQueue; |
| | | } |
| | | else |
| | | { |
| | | recordActionQueue.Enqueue(recordAction); |
| | | } |
| | | |
| | | recordAction.AfterAddToQueue(); |
| | | } |
| | | |
| | | public void ImmediatelyPlay(RecordAction recordAction) |
| | | { |
| | | if (recordAction == null) return; |
| | | recordAction.actionOwner = this; |
| | | if (isForceFinish || stepForcefinish) |
| | | { |
| | | recordAction.ForceFinish(); |
| | |
| | | public void ImmediatelyPlay(RecordAction recordAction, RecordAction parentAction, bool isWaitingPlay) |
| | | { |
| | | if (recordAction == null) return; |
| | | recordAction.actionOwner = this; |
| | | if (isForceFinish || stepForcefinish) |
| | | { |
| | | recordAction.ForceFinish(); |
| | |
| | | if (recordActionQueue.Count > 0) |
| | | { |
| | | currentRecordAction = recordActionQueue.Dequeue(); |
| | | // BattleDebug.LogError("play record action " + currentRecordAction.GetType()); |
| | | #if UNITY_EDITOR |
| | | // if (currentRecordAction is SkillRecordAction skillRecordAction) |
| | | // { |
| | | // Debug.LogError("RecordPlayer Run Play SkillRecordAction skillname " + skillRecordAction.skillBase.skillConfig.SkillName + " caster " + skillRecordAction.skillBase.caster.teamHero.name); |
| | | // } |
| | | // else |
| | | #endif |
| | | { |
| | | BattleDebug.LogError("play record action " + currentRecordAction.GetType()); |
| | | } |
| | | } |
| | | } |
| | | } |