Ejemplo n.º 1
0
    void EnergyGrowing()
    {
        var update = new PlayerAttrs.Update
        {
            Energy = attrs.Data.Energy + EnergyGrowth,
        };

        attrs.SendUpdate(update);
    }
Ejemplo n.º 2
0
    public static int EnergyGrowth         = 5;    // 每秒增加多少点

    // Start is called before the first frame update
    void Start()
    {
        commandReceiver.OnLayEggRequestReceived += OnLayEgg;

        var update = new PlayerAttrs.Update
        {
            Energy = EnergyOrigin,
        };

        attrs.SendUpdate(update);
        InvokeRepeating("EnergyGrowing", 1f, 1f);
    }
Ejemplo n.º 3
0
    void OnLayEgg(PlayerAttrs.LayEgg.ReceivedRequest request)
    {
        Coordinates coords  = request.Payload.EggPosition.ToUnityVector().ToCoordinates();
        EggTypeEnum eggType = request.Payload.EggType;
        long        tokenId = request.Payload.OwnerTokenId;
        // 得到下蛋的能量消耗
        int costEnergy = 0;

        switch (eggType)
        {
        case EggTypeEnum.Brachiosaurus:
            costEnergy = CostEnergyEggBrachio;
            break;

        case EggTypeEnum.TRex:
            costEnergy = CostEnergyEggTRex;
            break;
        }

        if (attrs.Data.Energy < costEnergy)
        {// 能量不夠不能下蛋
            string errMsg = "Energy is not enough. (" + attrs.Data.Energy + "/" + costEnergy + ")";
            commandReceiver.SendLayEggFailure(request.RequestId, errMsg);
            return;
        }
        // 更新能量消耗
        var update = new PlayerAttrs.Update
        {
            Energy = attrs.Data.Energy - costEnergy,
        };

        attrs.SendUpdate(update);
        // 玩家操作下蛋:发送创建实体消息
        var exampleEntity = EntityTemplateFactory.CreateEggTemplate(coords, tokenId, eggType);
        var request1      = new WorldCommands.CreateEntity.Request(exampleEntity);

        request1.Context = request.RequestId;
        worldCommandSender.SendCreateEntityCommand(request1, OnCreateEggResponse);
    }
Ejemplo n.º 4
0
 private void OnUpdateAttrs(PlayerAttrs.Update update)
 {
     _energy = update.Energy;
     UIManager.Instance.CommandMenu.SetEnergy(_energy);
 }