public void Init() { IReinforceState state = new NormalState(this); _currentReinforceCounter = _pbsUnit.DynamicProperties.Contains(k.reinforceCounter) ? _pbsUnit.DynamicProperties.GetOrAdd <int>(k.reinforceCounter) : GetReinforceCounterMax(); _nextReinforceCounterIncrease = _pbsUnit.DynamicProperties.Contains(k.nextReinforceIncrease) ? _pbsUnit.DynamicProperties.GetOrAdd <DateTime>(k.nextReinforceIncrease) : DateTime.Now; if (_pbsUnit.DynamicProperties.Contains(k.offsetWithinDay)) { _offsetHoursWithinDay = _pbsUnit.DynamicProperties.GetOrAdd <int>(k.offsetWithinDay); } if (_pbsUnit.DynamicProperties.Contains(k.isReinforced)) { var isReinforced = _pbsUnit.DynamicProperties.GetOrAdd <int>(k.isReinforced) == 1; if (isReinforced) { Logger.Info("Reinforce active state was inited " + _pbsUnit); state = new ActiveReinforceState(this, null); ((ActiveReinforceState)state).Init(_pbsUnit); } } if (_pbsUnit.DynamicProperties.Contains(k.vulnerable)) { var isVulnerable = _pbsUnit.DynamicProperties.GetOrAdd <int>(k.vulnerable) == 1; if (isVulnerable) { //minden stimmel, akkor mehetunk egybol Logger.Info("Vulnerable state was inited " + _pbsUnit); state = new VulnerableState(this); ((VulnerableState)state).Init(_pbsUnit); } } _fsm.ChangeState(state); }
private void Awake() { invincibleState = new InvincibleState(this); vulnerableState = new VulnerableState(this); }