Ejemplo n.º 1
0
    private void OnPlaceUnit(UnitEvents.PlaceUnitEvent e)
    {
        if (_gridModel != null && _gridModel.SelectedTile != null && !_gridModel.SelectedTile.Occupied)
        {
            var unit = Instantiate(UnitPrefab).GetComponent <Unit>();
            unit.Name = GridUtility.GetUniqueUnitName();
            _gridModel.Units.Add(unit);
            unit.OccupyingTile = _gridModel.SelectedTile;

            var heroPosition = _gridModel.SelectedTile.transform.position;
            heroPosition.y         += unit.GetComponent <MeshRenderer>().bounds.extents.y;
            unit.transform.position = heroPosition;

            _gridModel.SelectedTile.Selected = false;
        }
    }
Ejemplo n.º 2
0
    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);
    }