internal virtual void AddTraitToUnit(AddTraitToUnitMessage msg) { var traitCount = _currentTraits.Count(c => c.Trait.name == msg.Trait.name); if (traitCount < msg.Trait.MaxStack) { var controller = Instantiate(FactoryController.TRAIT_CONTROLLER, transform); _currentTraits.Add(controller); controller.Setup(msg.Trait); } }
void Start() { var playerController = Instantiate(FactoryController.UNIT_CONTROLLER, _startingPosition.transform.position.ToVector2(), Quaternion.identity); var addTraitToUnitMsg = new AddTraitToUnitMessage(); for (var i = 0; i < _playerStartingTraits.Count; i++) { addTraitToUnitMsg.Trait = _playerStartingTraits[i]; gameObject.SendMessageTo(addTraitToUnitMsg, playerController.gameObject); } }