コード例 #1
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;
 }
コード例 #2
0
        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);
        }
コード例 #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);
        }
コード例 #4
0
 public MovementInputController(IMovementInputView movementInputView, IControllableCharacterData controllableCharacterData)
 {
     _movementInputView         = movementInputView;
     _controllableCharacterData = controllableCharacterData;
     _movementInputView.OnDestinationClicked += HandleDestinationClicked;
 }