Example #1
0
        public void Init(GameStateUpdateService updateService, LevelService levelService, Transform parent, UnitLevelModel model, UnitView view, Canvas canvas)
        {
            _updateService = updateService;
            _levelService  = levelService;
            _model         = model;
            _view          = view;
            _oldHealth     = _model.State.Health;

            _levelService.OnUnitSelected  += OnUnitSelected;
            _levelService.OnUnitCanTurn   += OnUnitCanTurn;
            _updateService.OnStateUpdated += OnStateUpdated;
            _updateService.AddHandler <AttackCommand>(OnAttackUnit);
            _updateService.AddHandler <KillUnitCommand>(OnKillUnit);

            SelectView();
            UpdateSelection(false);
            UpdateInteractable(model.IsPlayerUnit);
            UpdateHealth();

            transform.SetParent(parent, false);

            _view.transform.SetParent(canvas.transform, false);
            _view.transform.position = Camera.main.WorldToScreenPoint(transform.position);
            var distance = transform.position.z - Camera.main.transform.position.z;

            _view.UpdateDistance(distance);
            _view.SelectColor(model.IsPlayerUnit);
        }
Example #2
0
        void AddUnit(bool isPlayerUnit, UnitState state, Transform[] points, int position)
        {
            var config = _state.Config.Units[state.Descriptor];
            var model  = new UnitLevelModel(isPlayerUnit, state, config);
            var view   = _view.Create();

            _unit.Create(points[position], model, view);
        }