diff --git a/Assets/ModuleCore/ModuleBattle/BattleCharacter.cs b/Assets/ModuleCore/ModuleBattle/BattleCharacter.cs
index 8dec0c6..7a76e7e 100644
--- a/Assets/ModuleCore/ModuleBattle/BattleCharacter.cs
+++ b/Assets/ModuleCore/ModuleBattle/BattleCharacter.cs
@@ -9,24 +9,29 @@ public class BattleCharacter : DataAttribute {
/// 角色数据
public readonly DataCharacter character;
+ /// 归属队伍
+ public int team;
/// 角色名字
public string name;
/// 战斗等级
public int level;
- /// 生命点
- public int hitPoint;
- /// 护甲等级
- public int armorClass;
+ /// 战场位置
+ public int position;
/// 先攻顺序
public int sequence;
+ /// 护甲等级
+ public int armorClass;
+ /// 生命点
+ public Vector2Int hitPoint;
- public BattleCharacter(DataCharacter character) {
+ public BattleCharacter(DataCharacter character, int team) {
this.character = character;
Cover(character);
+ this.team = team;
name = character.name;
level = character.Level;
- hitPoint = character.HitPoint;
+ position = 1;
+ hitPoint = new Vector2Int(character.HitPoint, character.HitPoint);
armorClass = character.ArmorClass;
}
-
}
diff --git a/Assets/ModuleCore/ModuleBattle/BattlePhase.meta b/Assets/ModuleCore/ModuleBattle/BattlePhase.meta
new file mode 100644
index 0000000..1b5b791
--- /dev/null
+++ b/Assets/ModuleCore/ModuleBattle/BattlePhase.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 59e1aa3dad18b83438571f22a94d78af
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ModuleCore/ModuleBattle/BattlePhase/BattlePhase.cs b/Assets/ModuleCore/ModuleBattle/BattlePhase/BattlePhase.cs
new file mode 100644
index 0000000..b7e117c
--- /dev/null
+++ b/Assets/ModuleCore/ModuleBattle/BattlePhase/BattlePhase.cs
@@ -0,0 +1,41 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+///
+/// 阶段类型
+///
+public enum PhaseType {
+ 先攻阶段,
+ 突袭阶段,
+ 回合阶段,
+ 行动阶段,
+ 结算阶段,
+}
+///
+/// 阶段
+///
+public interface IPhase {
+ /// 开始阶段
+ public void StartPhase();
+ /// 更新阶段
+ public void UpdatePhase();
+ /// 退出阶段
+ public void QuitPhase();
+}
+///
+/// 战斗阶段
+///
+public abstract class BattlePhase : IPhase {
+ /// 模拟器
+ public readonly BattleSimulator simulator;
+
+ /// 战斗队列
+ public BattleQueue BattleQueue => simulator.battleQueue;
+
+ public BattlePhase(BattleSimulator simulator) => this.simulator = simulator;
+
+ public abstract void StartPhase();
+ public abstract void UpdatePhase();
+ public abstract void QuitPhase();
+}
\ No newline at end of file
diff --git a/Assets/ModuleCore/ModuleBattle/BattlePhase/BattlePhase.cs.meta b/Assets/ModuleCore/ModuleBattle/BattlePhase/BattlePhase.cs.meta
new file mode 100644
index 0000000..18ee1b1
--- /dev/null
+++ b/Assets/ModuleCore/ModuleBattle/BattlePhase/BattlePhase.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: ee046dc0d64f6184c966baba17876ec9
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ModuleCore/ModuleBattle/BattlePhase/PhaseAction.cs b/Assets/ModuleCore/ModuleBattle/BattlePhase/PhaseAction.cs
new file mode 100644
index 0000000..9ac3326
--- /dev/null
+++ b/Assets/ModuleCore/ModuleBattle/BattlePhase/PhaseAction.cs
@@ -0,0 +1,30 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+///
+/// 行动阶段
+///
+public class PhaseAction : BattlePhase {
+
+ public PhaseAction(BattleSimulator simulator) : base(simulator) { }
+
+ public override void StartPhase() {
+ // throw new System.NotImplementedException();
+ }
+ public override void UpdatePhase() {
+ // 选择行动目标,没有行动目标则进入结算阶段
+ if (!BattleQueue.Dequeue(out BattleCharacter character)) { simulator.Transition(PhaseType.结算阶段); return; }
+ // 判断是否可以行动
+
+ // 选择一个目标
+
+ // 对目标进行攻击
+
+ // TODO:记录器
+ // Debug.Log($"正式回合:{roundCount}");
+ }
+ public override void QuitPhase() {
+ // throw new System.NotImplementedException();
+ }
+}
diff --git a/Assets/ModuleCore/ModuleBattle/BattlePhase/PhaseAction.cs.meta b/Assets/ModuleCore/ModuleBattle/BattlePhase/PhaseAction.cs.meta
new file mode 100644
index 0000000..c19d736
--- /dev/null
+++ b/Assets/ModuleCore/ModuleBattle/BattlePhase/PhaseAction.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: ad6c0033db83a3c4fa9d92f3f1912d5f
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ModuleCore/ModuleBattle/BattlePhase/PhaseAssault.cs b/Assets/ModuleCore/ModuleBattle/BattlePhase/PhaseAssault.cs
new file mode 100644
index 0000000..017eddc
--- /dev/null
+++ b/Assets/ModuleCore/ModuleBattle/BattlePhase/PhaseAssault.cs
@@ -0,0 +1,21 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+///
+/// 突袭阶段
+///
+public class PhaseAssault : BattlePhase {
+
+ public PhaseAssault(BattleSimulator simulator) : base(simulator) { }
+
+ public override void StartPhase() {
+ throw new System.NotImplementedException();
+ }
+ public override void UpdatePhase() {
+ throw new System.NotImplementedException();
+ }
+ public override void QuitPhase() {
+ throw new System.NotImplementedException();
+ }
+}
diff --git a/Assets/ModuleCore/ModuleBattle/BattlePhase/PhaseAssault.cs.meta b/Assets/ModuleCore/ModuleBattle/BattlePhase/PhaseAssault.cs.meta
new file mode 100644
index 0000000..341e9ea
--- /dev/null
+++ b/Assets/ModuleCore/ModuleBattle/BattlePhase/PhaseAssault.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 620e71ced51f8e94997a198ac8b1e6c6
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ModuleCore/ModuleBattle/BattlePhase/PhaseFinish.cs b/Assets/ModuleCore/ModuleBattle/BattlePhase/PhaseFinish.cs
new file mode 100644
index 0000000..e9edc73
--- /dev/null
+++ b/Assets/ModuleCore/ModuleBattle/BattlePhase/PhaseFinish.cs
@@ -0,0 +1,21 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+///
+/// 结束阶段
+///
+public class PhaseFinish : BattlePhase {
+
+ public PhaseFinish(BattleSimulator simulator) : base(simulator) { }
+
+ public override void StartPhase() {
+ throw new System.NotImplementedException();
+ }
+ public override void UpdatePhase() {
+ throw new System.NotImplementedException();
+ }
+ public override void QuitPhase() {
+ throw new System.NotImplementedException();
+ }
+}
diff --git a/Assets/ModuleCore/ModuleBattle/BattlePhase/PhaseFinish.cs.meta b/Assets/ModuleCore/ModuleBattle/BattlePhase/PhaseFinish.cs.meta
new file mode 100644
index 0000000..6b1f5ae
--- /dev/null
+++ b/Assets/ModuleCore/ModuleBattle/BattlePhase/PhaseFinish.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 357207f5d09ca394e84210d51916507b
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ModuleCore/ModuleBattle/BattlePhase/PhaseFormal.cs b/Assets/ModuleCore/ModuleBattle/BattlePhase/PhaseFormal.cs
new file mode 100644
index 0000000..c6dd6a5
--- /dev/null
+++ b/Assets/ModuleCore/ModuleBattle/BattlePhase/PhaseFormal.cs
@@ -0,0 +1,27 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+///
+/// 正式阶段
+///
+public class PhaseFormal : BattlePhase {
+ /// 回合计数
+ public int roundCount;
+
+ public PhaseFormal(BattleSimulator simulator) : base(simulator) { }
+
+ public override void StartPhase() {
+ // throw new System.NotImplementedException();
+ }
+ public override void UpdatePhase() {
+ roundCount++;
+ BattleQueue.UpdateQueue();
+ simulator.Transition(PhaseType.行动阶段);
+ // TODO:记录器
+ Debug.Log($"正式回合:{roundCount}");
+ }
+ public override void QuitPhase() {
+ // throw new System.NotImplementedException();
+ }
+}
diff --git a/Assets/ModuleCore/ModuleBattle/BattlePhase/PhaseFormal.cs.meta b/Assets/ModuleCore/ModuleBattle/BattlePhase/PhaseFormal.cs.meta
new file mode 100644
index 0000000..2ffef63
--- /dev/null
+++ b/Assets/ModuleCore/ModuleBattle/BattlePhase/PhaseFormal.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 066680fafb7f9cf4dbac4f7291e682cc
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ModuleCore/ModuleBattle/BattlePhase/PhaseInitiative.cs b/Assets/ModuleCore/ModuleBattle/BattlePhase/PhaseInitiative.cs
new file mode 100644
index 0000000..a0202af
--- /dev/null
+++ b/Assets/ModuleCore/ModuleBattle/BattlePhase/PhaseInitiative.cs
@@ -0,0 +1,26 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+///
+/// 先攻阶段
+///
+public class PhaseInitiative : BattlePhase {
+
+ public PhaseInitiative(BattleSimulator simulator) : base(simulator) { }
+
+ public override void StartPhase() {
+ // throw new System.NotImplementedException();
+ }
+ public override void UpdatePhase() {
+ BattleQueue.ForEach(obj => obj.sequence = Dice.Roll20(obj.DexModifier));
+ BattleQueue.OrderByDescending(c => c.sequence);
+ // TODO:需要添加突袭阶段
+ simulator.Transition(PhaseType.回合阶段);
+ // TODO:记录器
+ Debug.Log("先攻");
+ }
+ public override void QuitPhase() {
+ // throw new System.NotImplementedException();
+ }
+}
diff --git a/Assets/ModuleCore/ModuleBattle/BattlePhase/PhaseInitiative.cs.meta b/Assets/ModuleCore/ModuleBattle/BattlePhase/PhaseInitiative.cs.meta
new file mode 100644
index 0000000..f141af4
--- /dev/null
+++ b/Assets/ModuleCore/ModuleBattle/BattlePhase/PhaseInitiative.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 4fc0f8aced9d5f04f879b8300fd02e47
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ModuleCore/ModuleBattle/BattleQueue.cs b/Assets/ModuleCore/ModuleBattle/BattleQueue.cs
index 51873b1..b70baff 100644
--- a/Assets/ModuleCore/ModuleBattle/BattleQueue.cs
+++ b/Assets/ModuleCore/ModuleBattle/BattleQueue.cs
@@ -1,3 +1,4 @@
+using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
@@ -20,20 +21,20 @@ public class BattleQueue {
public void Add(BattleCharacter character) {
characters.Add(character);
}
- /// 先攻:d20 + 敏捷调整值
- public void Sequence() {
- characters.ForEach(obj => obj.sequence = Dice.Roll20(obj.DexModifier));
+ /// 遍历角色
+ public void ForEach(Action action) {
+ characters.ForEach(action);
}
- /// 排序:大到小
- public void OrderByDescending() {
- characters = characters.OrderByDescending(c => c.sequence).ToList();
+ // /// 排序:大到小
+ public void OrderByDescending(Func func) {
+ characters = characters.OrderByDescending(func).ToList();
}
- /// 回合
- public void Reset() {
+ /// 更新队列
+ public void UpdateQueue() {
queue = new Queue(characters);
}
- /// 当前行动者
- public bool Current(out BattleCharacter battle) {
+ /// 取出一个
+ public bool Dequeue(out BattleCharacter battle) {
battle = queue.Count > 0 ? queue.Dequeue() : null;
return battle != null;
}
diff --git a/Assets/ModuleCore/ModuleBattle/BattleSimulator.cs b/Assets/ModuleCore/ModuleBattle/BattleSimulator.cs
index f6a39a0..aea05fc 100644
--- a/Assets/ModuleCore/ModuleBattle/BattleSimulator.cs
+++ b/Assets/ModuleCore/ModuleBattle/BattleSimulator.cs
@@ -10,97 +10,41 @@ using UnityEngine;
///
public class BattleSimulator {
- // 先攻判断
- // 艾薇拉(18) → 哥布林射手(15) → 托尔吉(7) → 哥布林战士(5)
-
- // 突袭轮
- // 哥布林射手 使用短弓射击(23)对艾薇拉(AC12)造成了 5穿刺伤害
-
- // 正式回合1
- // 艾薇拉 施放纠缠术(法术豁免DC14),哥布林射手(敏捷豁免6)被束缚
- // 艾薇拉 躲至矿石掩体后(AC提升至14)
-
- // 哥布林射手 试图挣脱藤蔓(力量豁免3)失败了
- // 哥布林射手 使用多重射击,第一箭(劣势2)对托尔吉(AC14)未命中,第二箭(劣势9)对托尔吉(AC14)未命中
-
- // 托尔吉 使用狂暴(附赠动作开启)→ 获得力量加成与抗性
- // 托尔吉 移动至哥布林战士前面
- // 托尔吉 使用巨斧猛击(19)对哥布林战士(AC12) 造成了 14钝击伤害
-
- // 哥布林战士死亡
-
- // 正式回合2
- // 艾薇拉 施放奥术飞弹(法术豁免DC14),哥布林射手(敏捷豁免6)受到了 10奥术伤害
-
- // 哥布林射手死亡
-
- /// 回合计数
- public int roundCount;
- /// 行动间隔
- public float interval;
- /// 最大间隔
- public float maxInterval = 1f;
- /// 当前行动
- public Action currentAction;
- /// 队伍1
- public BattleTeam team1;
- /// 队伍2
- public BattleTeam team2;
/// 战斗队列
public BattleQueue battleQueue = new BattleQueue();
- public BattleSimulator(List cha1, List cha2) {
- List bCha1 = new List();
- cha1.ForEach(obj => bCha1.Add(new BattleCharacter(obj)));
- List bCha2 = new List();
- cha2.ForEach(obj => bCha2.Add(new BattleCharacter(obj)));
+ /// 当前阶段
+ public IPhase currentPhase;
+ /// 阶段字典
+ public Dictionary dictionary = new Dictionary();
- team1 = new BattleTeam(bCha1);
- team2 = new BattleTeam(bCha2);
+ public BattleSimulator(BattleTeam team1, BattleTeam team2) {
+ battleQueue.Add(team1.battles);
+ battleQueue.Add(team2.battles);
- battleQueue.Add(bCha1);
- battleQueue.Add(bCha2);
- battleQueue.Sequence();
- battleQueue.OrderByDescending();
-
- currentAction = UpdateRound;
+ dictionary.Add(PhaseType.先攻阶段, new PhaseInitiative(this));
+ dictionary.Add(PhaseType.突袭阶段, new PhaseAssault(this));
+ dictionary.Add(PhaseType.回合阶段, new PhaseFormal(this));
+ dictionary.Add(PhaseType.行动阶段, new PhaseAction(this));
+ dictionary.Add(PhaseType.结算阶段, new PhaseFinish(this));
}
public void Update() {
- if (interval > 0) { interval -= Time.deltaTime; return; }
- currentAction?.Invoke();
+ currentPhase?.UpdatePhase();
}
- /// 更新回合
- public void UpdateRound() {
- roundCount++;
- battleQueue.Reset();
- Debug.Log($"正式回合 {roundCount}");
-
- interval = maxInterval;
- currentAction = SelectActionTarget;
- }
- /// 选择行动对象
- public void SelectActionTarget() {
- if (!battleQueue.Current(out BattleCharacter character)) {
- currentAction = UpdateRound; return;
+ /// 阶段过渡
+ public void Transition(PhaseType phaseType) {
+ // 检查阶段字典中是否存在指定的阶段类型
+ if (dictionary.TryGetValue(phaseType, out IPhase newPhase)) {
+ // 如果存在则更新当前阶段
+ currentPhase?.QuitPhase();
+ currentPhase = newPhase;
+ currentPhase?.StartPhase();
+ Debug.Log($"战斗阶段已转换为: {phaseType}");
+ }
+ else {
+ // 不存在时输出警告信息
+ Debug.LogWarning($"阶段字典中不存在 {phaseType} 对应的阶段实现");
}
- Debug.Log($"当前 {character.name}({character.sequence}) 行动");
-
- interval = maxInterval;
- currentAction = SelectActionTarget;
- }
- public void SelectAttackTarget(BattleCharacter character) {
-
}
}
-///
-/// 战斗队伍
-///
-public class BattleTeam {
-
- public List characters;
-
- public BattleTeam(List characters) {
- this.characters = characters;
- }
-}
\ No newline at end of file
diff --git a/Assets/ModuleCore/ModuleBattle/BattleTeam.cs b/Assets/ModuleCore/ModuleBattle/BattleTeam.cs
new file mode 100644
index 0000000..ca3b013
--- /dev/null
+++ b/Assets/ModuleCore/ModuleBattle/BattleTeam.cs
@@ -0,0 +1,33 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+///
+/// 战斗队伍
+///
+public class BattleTeam {
+ /// 队伍名字
+ public string name;
+ /// 原始数据
+ public List characters = new List();
+ /// 战斗数据
+ public List battles = new List();
+
+ /// 添加角色
+ public void Add(List list) {
+ characters.AddRange(list);
+ }
+ /// 添加角色
+ public void Add(DataCharacter obj) {
+ characters.Add(obj);
+ }
+ /// 删除角色
+ public void Remove(DataCharacter character) {
+ characters.Remove(character);
+ }
+
+ /// 战斗初始化
+ public void Initial(int id) {
+ characters.ForEach(obj => battles.Add(new BattleCharacter(obj, id)));
+ }
+}
\ No newline at end of file
diff --git a/Assets/ModuleCore/ModuleBattle/BattleTeam.cs.meta b/Assets/ModuleCore/ModuleBattle/BattleTeam.cs.meta
new file mode 100644
index 0000000..c8c2a66
--- /dev/null
+++ b/Assets/ModuleCore/ModuleBattle/BattleTeam.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 60ddd9f20d0d1bd49a6b68d86ccc904a
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ModuleCore/ModuleBattle/Sample.md b/Assets/ModuleCore/ModuleBattle/Sample.md
new file mode 100644
index 0000000..b0e0943
--- /dev/null
+++ b/Assets/ModuleCore/ModuleBattle/Sample.md
@@ -0,0 +1,25 @@
+### 战斗流程示例
+
+#### 先攻判断
+- 艾薇拉(18) → 哥布林射手(15) → 托尔吉(7) → 哥布林战士(5)
+
+#### 突袭轮
+- 哥布林射手 使用短弓射击(23)对艾薇拉(AC12)造成了 5穿刺伤害
+
+#### 正式回合1
+- 艾薇拉 施放纠缠术(法术豁免DC14),哥布林射手(敏捷豁免6)被束缚
+- 艾薇拉 躲至矿石掩体后(AC提升至14)
+
+- 哥布林射手 试图挣脱藤蔓(力量豁免3)失败了
+- 哥布林射手 使用多重射击,第一箭(劣势2)对托尔吉(AC14)未命中,第二箭(劣势9)对托尔吉(AC14)未命中
+
+- 托尔吉 使用狂暴(附赠动作开启)→ 获得力量加成与抗性
+- 托尔吉 移动至哥布林战士前面
+- 托尔吉 使用巨斧猛击(19)对哥布林战士(AC12) 造成了 14钝击伤害
+
+- 哥布林战士死亡
+
+#### 正式回合2
+- 艾薇拉 施放奥术飞弹(法术豁免DC14),哥布林射手(敏捷豁免6)受到了 10奥术伤害
+
+- 哥布林射手死亡
\ No newline at end of file
diff --git a/Assets/ModuleCore/ModuleBattle/Sample.md.meta b/Assets/ModuleCore/ModuleBattle/Sample.md.meta
new file mode 100644
index 0000000..5d1057b
--- /dev/null
+++ b/Assets/ModuleCore/ModuleBattle/Sample.md.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: dc4066f5b83586a47bc6bc8ce0115d1d
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ModuleCore/ModuleSingle/ManagerSimulator.cs b/Assets/ModuleCore/ModuleSingle/ManagerSimulator.cs
index bf971c7..67c7dbe 100644
--- a/Assets/ModuleCore/ModuleSingle/ManagerSimulator.cs
+++ b/Assets/ModuleCore/ModuleSingle/ManagerSimulator.cs
@@ -8,18 +8,25 @@ using MuHua;
///
public class ManagerSimulator : ModuleSingle {
- public List cha1 = new List();
- public List cha2 = new List();
+ /// 队伍1
+ public BattleTeam team1;
+ /// 队伍2
+ public BattleTeam team2;
+
public BattleSimulator battleSimulator;
protected override void Awake() => NoReplace(false);
private void Start() {
- cha1.Add(RandomCharacter("艾薇拉"));
- cha1.Add(RandomCharacter("托尔吉"));
- cha2.Add(RandomCharacter("哥布林射手"));
- cha2.Add(RandomCharacter("哥布林战士"));
- battleSimulator = new BattleSimulator(cha1, cha2);
+ team1 = new BattleTeam();
+ team1.Add(RandomCharacter("艾薇拉"));
+ team1.Add(RandomCharacter("托尔吉"));
+
+ team2 = new BattleTeam();
+ team2.Add(RandomCharacter("哥布林射手"));
+ team2.Add(RandomCharacter("哥布林战士"));
+
+ battleSimulator = new BattleSimulator(team1, team2);
}
private void Update() {
battleSimulator.Update();