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); }
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); }
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); }
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); }