public void CmdPerfomAttack(string defenderId, Team attackerTeam, float attackPoints) { GameActor defender = UnitsManager.GetInstance().GetByUniqueNetworkId(defenderId); if (defender == null) { defender = BuildingsManager.GetInstance().GetByUniqueNetworkId(defenderId); } VisibleLogger.GetInstance().LogDebug( string.Format("Damage [{0}] for {1}", defender.GetId() , attackPoints )); defender.ActorAttributes.HealthPoints -= attackPoints; if (HpLessThanZero(defender) && defender.LifeState == GameActor.UnitLifeState.LIVING) { VisibleLogger.GetInstance().LogDebug( string.Format("Changing [{0}] state {1} -> {2}", defender.GetId() , defender.LifeState, GameActor.UnitLifeState.WAITING_FOR_DEAD_ACTION )); PlayersManager.GetInstance().Get(attackerTeam).Gold += defender.ActorAttributes.KillReward; defender.LifeState = GameActor.UnitLifeState.WAITING_FOR_DEAD_ACTION; } }
public void Start() { VisibleLogger.GetInstance().LogDebug("Initializing in order"); UpdateablesManager.Add(UnitsManager.GetInstance()); UpdateablesManager.Add(BuildingsManager.GetInstance()); foreach (var preplayBuildingInitializer in GetComponents <PreplayBuildingInitializer>()) { preplayBuildingInitializer.InitInOrder(); Destroy(preplayBuildingInitializer); } foreach (var initializableChild in Gui.GetComponentsInChildren <IInOrderInitializable>()) { initializableChild.InitInOrder(); } VisibleLogger.GetInstance().LogDebug("Initializing in order successfully finished"); }