using CommonLang; namespace ET.Client { public class UnitMgr : Singleton<UnitMgr> { public BattleActor Actor { get; set; } public uint ActorId { get { return Actor.Id; } } private HashMap<uint, BattleObject> UnitList = new(); public HashMap<uint, BattleObject>.ValueCollection AllUnits { get { return UnitList.Values; } } public bool HasUnit(uint unitId) { return UnitList.ContainsKey(unitId); } public BattleObject GetUnit(uint id) { return UnitList.ContainsKey(id) ? UnitList[id] : null; } public void PutUnit(uint id, BattleObject obj) { if(UnitList.ContainsKey(id)) { Log.Error($"Already exist unit({id}) @{obj}"); UnitList.Remove(id); } UnitList[id] = obj; } public void RemoveUnit(uint id) { UnitList.Remove(id); } public void RecycleUnits() { foreach (var kp in UnitList) { kp.Value.OnSleep(); } UnitList.Clear(); } public void Clear() { UnitList.Clear(); } } }