public void RefreshUnitState() { if (!SelfBaseUnit.IsLive) { return; } UnitsEnemy.Clear(); UnitsAlly.Clear(); UnitsSelf.Clear(); foreach (var item in Units) { if (SelfBaseUnit.IsEnemy(item)) { UnitsEnemy.Add(item); } if (SelfBaseUnit.IsSOF(item)) { UnitsAlly.Add(item); } if (SelfBaseUnit.IsSelf(item)) { UnitsSelf.Add(item); } } }
private void AddUnitEnemy(Unit unit) { var data = new IntelUnit(unit); if (GameConstants.IsWorker(unit.UnitType)) { if (WorkersEnemy.ContainsKey(unit.Tag)) { WorkersEnemy[unit.Tag].DataSource = unit; } else { WorkersEnemy.Add(unit.Tag, data); Handler.Handle(Case.WorkerAddedEnemy, data); } } else if (IsBuilding(unit.UnitType)) { if (StructureEnemy.ContainsKey(unit.Tag)) { StructureEnemy[unit.Tag].DataSource = unit; } else { StructureEnemy.Add(unit.Tag, data); Handler.Handle(Case.StructureAddedEnemy, data); } } else // must be unit { if (UnitsEnemy.ContainsKey(unit.Tag)) { UnitsEnemy[unit.Tag].DataSource = unit; } else { UnitsEnemy.Add(unit.Tag, data); Handler.Handle(Case.UnitAddedEnemy, data); } } if (data.DisplayType == DisplayType.Hidden) { Handler.Handle(Case.AddedHiddenEnemy, data); } }
public void RefreshEnemyAlly() { UnitsEnemy.Clear(); UnitsAlly.Clear(); UnitsSelf.Clear(); foreach (var item in Units) { if (SelfBaseUnit.IsEnemy(item)) { UnitsEnemy.Add(item); } if (SelfBaseUnit.IsSOF(item)) { UnitsAlly.Add(item); } if (SelfBaseUnit.IsSelf(item)) { UnitsSelf.Add(item); } } }
public void DoTestEnter(Collider col) { if (!SelfBaseUnit.IsLive) { return; } if (col == null) { return; } TUnit unit = col.GetComponent <TUnit>(); if (unit != null) { if (!unit.IsLive) { return; } Units.Add(unit); if (SelfBaseUnit.IsEnemy(unit)) { UnitsEnemy.Add(unit); } if (SelfBaseUnit.IsSOF(unit)) { UnitsAlly.Add(unit); } if (SelfBaseUnit.IsSelf(unit)) { UnitsSelf.Add(unit); } unit.DetectionMgr.Add(this, SelfBaseUnit); OnEnter(unit); } OnEnterObject(col); }