void EnergyGrowing() { var update = new PlayerAttrs.Update { Energy = attrs.Data.Energy + EnergyGrowth, }; attrs.SendUpdate(update); }
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); }
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); }
private void OnUpdateAttrs(PlayerAttrs.Update update) { _energy = update.Energy; UIManager.Instance.CommandMenu.SetEnergy(_energy); }