// Controller depends on interfaces for the model and view public CharacterStatController(ICharacterStatModel characterStatModel, ICharacterStatView characterStatView) { this._characterStatModel = characterStatModel; this._characterStatView = characterStatView; // Listen to input from the view characterStatView.OnStatInitialized += HandleStatInitializedFromViewInput; characterStatView.OnStatChanged += HandleStatChanged; // Listen to changes in the model characterStatModel.OnStatChanged += HandleCharacterStatChanged; // Set the view's initial state by syncing with the model SyncStats(); }
private void HandleSwitchingCharacter(object sender, SwitchCharacterFinishEventArgs e) { if (_selectedCharacterData.CharacterStatModel == null) { return; } if (_characterStatModel != null) { _characterStatModel.OnStatChanged -= HandleStatChanged; } _characterStatModel = _selectedCharacterData.CharacterStatModel; _hudImageView.HudCharacterImage = _selectedCharacterData.HudImageSprite; _characterStatModel.OnStatChanged += HandleStatChanged; _characterStatModel.InitializeStats(); }
// Controller depends on interfaces for the model and view public HudController(ISelectedCharacterData selectedCharacterData, IHudImageView hudImageView, IHudStatView hudStatView) { _selectedCharacterData = selectedCharacterData; _hudImageView = hudImageView; _hudStatView = hudStatView; _selectedCharacterData.OnSwitchingCharacterFinished += HandleSwitchingCharacter; if (_selectedCharacterData.CharacterStatModel == null) { return; } _characterStatModel = selectedCharacterData.CharacterStatModel; _characterStatModel.OnStatChanged += HandleStatChanged; _characterStatModel.InitializeStats(); }
public SelectedCharacterData() { if (CharactersData.CharacterModels.Count > 0) { var characterModel = CharactersData.CharacterModels[0]; Id = characterModel.Id; HudImageSprite = characterModel.HudImageSprite; CharacterStatModel = characterModel.CharacterStatModel; } else { Id = 0; HudImageSprite = Resources.Load <Sprite>("Sprites/Hud/Wizard.png"); CharacterStatModel = null; } }
// Character construction public CharacterModel(GameObject character, Sprite characterHudImage, ICharacterStatModel characterStatModel, ICharacterMovementModel characterMovementModel) { // Character game object Character = character; // Character Hud Image HudImageSprite = characterHudImage; // Character stats CharacterStatModel = characterStatModel; characterStatModel.Character = character; // Character movements CharacterMovementModel = characterMovementModel; // Assign id to this character Id = CharactersData.CharacterModels.Count; // Add character to characters CharactersData.CharacterModels.Add(this); }
// Create the model public CharacterStatModelFactory(float[] healthSetting, float[] manaSetting) { Model = new CharacterStatModel(healthSetting, manaSetting); }