public override void Step(float deltaTime) { base.Step(deltaTime); timer -= deltaTime; if (timer <= 0) { timer = span; List <int> unitIDs = physics.GetUnit(visionRadius, unitRoot.GetChild <Transform>().Position); foreach (int unitID in unitIDs) { Unit unit = Root.GetChild <WorldEntity>().GetUnit(unitID); if (unit != null && unit.Team != unitRoot.Team) { if (physics.CheckLightOfSight(unitRoot.UnitID, unit.UnitID)) { Sight sight = unit.GetChild <Sight>(); if (sight != null) { sight.SetSight(unitRoot.Team); } } } } } }
public void Damage(int unitID, bool isDamage, float amount) { hpDamageHistories.Add(new DamageHistory(unitID, isDamage, amount)); Unit enemyUnit = Root.GetChild <WorldEntity>().GetUnit(unitID); if (enemyUnit != null && enemyUnit.Team != Team) { Sight enemySight = enemyUnit.GetChild <Sight>(); if (enemySight != null) { enemySight.SetSight(Team); } Sight sight = GetChild <Sight>(); if (sight != null) { sight.SetSight(enemyUnit.Team); } } }