示例#1
0
文件: Hex.cs 项目: mkecman/GameOne
    private void Awake()
    {
        _HexClickedMessage      = new HexClickedMessage(null);
        _unitUseCompoundMessage = new UnitUseCompoundMessage();
        _cameraMessage          = new CameraMessage();

        _debug         = GameModel.Get <GameDebug>();
        _elements      = GameConfig.Get <ElementConfig>().ElementsDictionary;
        _solidMaterial = Solid.GetComponent <MeshRenderer>().material;
        GameMessage.Listen <CameraControlMessage>(_ => _clickEnabled = _.Enable);
    }
示例#2
0
    private void OnHexChange(HexClickedMessage message)
    {
        disposables.Clear();
        _hex = message.Hex;

        _hex.Props[R.Altitude]._Value.Subscribe(_ => Altitude.SetValue(GetPropValue(_))).AddTo(disposables);
        //hex.Props[ R.Temperature ]._Value.Subscribe( _ => Temperature.SetValue( ( _ * 873 ) - 273 ) ).AddTo( disposables );
        _hex.Props[R.Temperature]._Value.Subscribe(_ => Temperature.SetValue(GetPropValue(_))).AddTo(disposables);
        _hex.Props[R.Pressure]._Value.Subscribe(_ => Pressure.SetValue(GetPropValue(_))).AddTo(disposables);
        _hex.Props[R.Humidity]._Value.Subscribe(_ => Humidity.SetValue(GetPropValue(_))).AddTo(disposables);
        _hex.Props[R.Radiation]._Value.Subscribe(_ => Radiation.SetValue(GetPropValue(_))).AddTo(disposables);
        _hex.Props[R.HexScore]._Value.Subscribe(_ => HexScore.SetValue(_)).AddTo(disposables);
    }
示例#3
0
    private void OnHexClicked(HexClickedMessage value)
    {
        if (value.Hex.isMarked.Value)
        {
            if (_pay.BuySkillUse((int)_skillData.UseCost, 1, true))
            {
                GameMessage.Send(new PanelMessage(PanelAction.SHOW, PanelNames.NewUnitPanel));
            }
            //_controller.AddUnit( value.Hex.X, value.Hex.Y );
        }

        Deactivate();
    }
示例#4
0
    private void OnHexClickedMessage(HexClickedMessage value)
    {
        GameModel.Set <HexModel>(value.Hex);

        if (value.Hex.isMarked.Value)
        {
            return;
        }

        //Unit is in the clicked tile
        if (value.Hex.Unit != null)
        {
            SelectUnit(value.Hex.X, value.Hex.Y);
        }
        else
        {
            DeselectUnit();
        }
    }
示例#5
0
    private void OnHexClicked(HexClickedMessage value)
    {
        if (value.Hex.isMarked.Value)
        {
            if (!_pay.BuySkillUse((int)_skillData.UseCost, 1, true))
            {
                Deactivate();
                return;
            }

            _controller.MoveUnit(value.Hex.X, value.Hex.Y);
            UnmarkHexes();
            MarkNeighborHexes(_controller.SelectedUnit);
        }
        else
        {
            Deactivate();
        }
    }