private void OnPlaceHero(UnitEvents.PlaceHeroEvent e) { if (_gridModel != null && _gridModel.Hero == null && _gridModel.SelectedTile != null) { var hero = Instantiate(HeroPrefab).GetComponent <Unit>(); hero.Name = "Hero"; _gridModel.Units.Add(hero); hero.OccupyingTile = _gridModel.SelectedTile; var heroPosition = _gridModel.SelectedTile.transform.position; heroPosition.y += hero.GetComponent <MeshRenderer>().bounds.extents.y; hero.transform.position = heroPosition; //_gridModel.Hero = hero.GetComponent<Hero>(); _gridModel.SelectedTile.Selected = false; } }
void Awake() { CardPreview.gameObject.SetActive(false); GenerateGridButton.onClick.AddListener(delegate { var gridEvent = new GridEvents.CreateDataEvent(); EventSystem.instance.Dispatch(gridEvent); }); PlaceHeroButton.onClick.AddListener(delegate { var heroEvent = new UnitEvents.PlaceHeroEvent(); EventSystem.instance.Dispatch(heroEvent); }); PlaceUnitButton.onClick.AddListener(delegate { var unitEvent = new UnitEvents.PlaceUnitEvent(); EventSystem.instance.Dispatch(unitEvent); }); ResetMovementButton.onClick.AddListener(delegate { var movementEvent = new DebugEvents.ResetAllRemainingMovementEvent(); EventSystem.instance.Dispatch(movementEvent); }); var previousContext = new NavigationEvents.PreviousContextEvent(); BackButton.onClick.AddListener(delegate { EventSystem.instance.Dispatch(previousContext); }); _model = ApplicationFacade.instance.GetModel <GridModel>(); EventSystem.instance.Connect <UnitEvents.UnitSelectedEvent>(OnUnitSelected); EventSystem.instance.Connect <CardEvents.CardPreviewEvent>(OnCardPreviewed); EventSystem.instance.Connect <CardEvents.HideCardPreviewEvent>(OnHideCardPreview); }