public CharacterSelectController(ICharacterSelectView characterSelectView, ICharacterModel characterModel, ISelectedCharacterData selectedCharacterData, IControllableCharacterData controllableCharacterData) { _characterSelectView = characterSelectView; _characterModel = characterModel; _selectedCharacterData = selectedCharacterData; _controllableCharacterData = controllableCharacterData; _characterSelectView.OnCharacterClicked += HandleCharacterClicked; _controllableCharacterData.OnConfirmId += HandleIdConfirmed; }
public InputManagerInitializer(InputConfigs inputConfigs, IControllableCharacterData _characterData) { var movementInputView = UnityEngine.Object.FindObjectOfType <MovementInputView>(); if (movementInputView == null) { movementInputView = UnityEngine.Object.Instantiate(inputConfigs.InputManagerPrefab).GetComponent <MovementInputView>(); } var movementInputController = new MovementInputController(movementInputView, _characterData); }
// Initialize Character Stat // Initialize model and view for a character stats public CharacterInitializer(ISelectedCharacterData selectedCharacterData, IControllableCharacterData controllableCharacterData, CharacterConfig config, Vector3 position, Vector3 rotation) { // Instantiate character game object GameObject characterGameObject = UnityEngine.Object.FindObjectOfType <CharacterSelectView>()?.gameObject; if (characterGameObject == null) { characterGameObject = UnityEngine.Object.Instantiate(config.CharacterPrefab, position, Quaternion.identity); } // Initialize character stat // Get stat initial values from config object var characterStatModel = new ModelFactory.CharacterStatModelFactory( // Get health initial values from config object new[] { config.HealthInitialValue, config.MaxHealthInitialValue }, // Get mana initial values from config object new[] { config.ManaInitialValue, config.MaxManaInitialValue }) .Model; var characterStatViews = new ViewFactory.CharacterStatViewFactory(characterGameObject).Views; var characterStatControllers = new ControllerFactory.CharacterStatControllerFactory(characterStatModel, characterStatViews) .Controllers; // Initialize character movement // Get movement initial values from config object var characterMovementModel = new ModelFactory.CharacterMovementModelFactory(position, rotation, config.MovementSpeed) .Model; // get base move speed from config var characterMovementView = new ViewFactory.CharacterMovementViewFactory(characterGameObject).View; var characterMovementController = new ControllerFactory.CharacterMovementControllerFactory(characterMovementModel, characterMovementView) .Controller; // TODO add new mechanics here // Initialize new character with above mechanics var characterModel = new CharacterModel(characterGameObject, config.HudImage, characterStatModel, characterMovementModel); var characterSelectView = characterGameObject.GetComponent <CharacterSelectView>(); var characterSelectController = new CharacterSelectController(characterSelectView, characterModel, selectedCharacterData, controllableCharacterData); }
public MovementInputController(IMovementInputView movementInputView, IControllableCharacterData controllableCharacterData) { _movementInputView = movementInputView; _controllableCharacterData = controllableCharacterData; _movementInputView.OnDestinationClicked += HandleDestinationClicked; }