Esempio n. 1
0
 // Create just the controller
 public HudCharacterControllerFactory(ISelectedCharacterData selectedCharacterData, IHudImageView hudImageView,
                                      List <IHudStatView> hudStatViews)
 {
     foreach (var hudStatView in hudStatViews)
     {
         _controllers.Add(new HudController(selectedCharacterData, hudImageView, hudStatView));
     }
 }
Esempio n. 2
0
 public CharacterSelectController(ICharacterSelectView characterSelectView, ICharacterModel characterModel, ISelectedCharacterData selectedCharacterData, IControllableCharacterData controllableCharacterData)
 {
     _characterSelectView       = characterSelectView;
     _characterModel            = characterModel;
     _selectedCharacterData     = selectedCharacterData;
     _controllableCharacterData = controllableCharacterData;
     _characterSelectView.OnCharacterClicked += HandleCharacterClicked;
     _controllableCharacterData.OnConfirmId  += HandleIdConfirmed;
 }
Esempio n. 3
0
        // 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);
        }
Esempio n. 4
0
 // 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();
 }
Esempio n. 5
0
        public CanvasInitializer(CanvasConfig config, ISelectedCharacterData selectedCharacterData)
        {
            // Initialize Hud GameObject
            GameObject canvasGameObject = UnityEngine.Object.FindObjectOfType <CanvasView>()?.gameObject;

            if (canvasGameObject == null)
            {
                canvasGameObject = UnityEngine.Object.Instantiate(config.CanvasPrefab);
            }

            // Initialize models and views from factories
            var hudCharacterView = new ViewFactory.HudCharacterViewFactory().View;
            var hudStatViews     = new ViewFactory.HudStatViewFactory().Views;
            // Initialize controllers from factory
            var hudControllers =
                new ControllerFactory.HudCharacterControllerFactory(selectedCharacterData, hudCharacterView, hudStatViews)
                .Controllers;
        }