Пример #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);
        }
Пример #2
0
        public void Initialize()
        {
            _update.AddHandler <EndPlayerTurnCommand>(OnEndPlayerTurn);
            _update.AddHandler <EndEnemyTurnCommand> (OnEndEnemyTurn);
            _update.AddHandler <FinishLevelCommand>  (OnFinishLevel);

            var level = _state.State?.Level;

            if (level == null)
            {
                return;
            }
            CreateUnits(level);
        }
Пример #3
0
        public void Init(
            GameStateUpdateService update, ItemService items, UnitService units,
            ItemFragment.Factory itemFragment, ItemsWindow.Factory itemsWindow,
            Canvas parent, StateUnitModel unit
            )
        {
            _update       = update;
            _items        = items;
            _units        = units;
            _itemFragment = itemFragment;
            _itemsWindow  = itemsWindow;
            _unit         = unit;

            update.AddHandler <EquipItemCommand>  (OnEquipItem);
            update.AddHandler <TakeOffItemCommand>(OnTakeOffItem);

            CloseButton.onClick.AddListener(Hide);

            CreateFragments();
            Refresh();

            ShowAt(parent);
        }
Пример #4
0
        public void Init(
            GameStateUpdateService update, UnitService units, UnitFragment.Factory unitFragment, UnitsWindow.Factory unitsWindow,
            Canvas parent, string levelDesc, Action callback
            )
        {
            _update       = update;
            _units        = units;
            _unitFragment = unitFragment;
            _unitsWindow  = unitsWindow;
            _levelDesc    = levelDesc;
            _callback     = callback;

            _update.AddHandler <StartLevelCommand>(OnStartLevel);

            CloseButton.onClick.AddListener(() => Animation.Hide(() => Destroy(gameObject)));
            StartButton.onClick.AddListener(OnStart);

            Header.text = levelDesc;
            FillUnits();
            UpdateInteractable();

            ShowAt(parent);
        }