void ClickAction_MainBuildingTakeGold(ClientPeer peer, ProtoData.BuildingClickData buildingClickData, SendParameters sendParameters) { if (peer.userAgent.UserData == null) { Failed(peer, sendParameters); return; } int index = buildingClickData.index; var sheet = TheLordTable.Instance.BuildingTable.MainBuildingInfoSheet; var record = BaseTable.Get(sheet, "index", index); if (null == record) { Failed(peer, sendParameters); return; } var buildingData = peer.userAgent.BuildingDataList.Find(x => x.Index == index); if (buildingData == null) { Failed(peer, sendParameters); return; } int increase = buildingData.LV * (int)record["nextLV"]; BigInteger gold = new BigInteger(increase * buildingClickData.value); peer.userAgent.UserAssetData.AddGold(gold); }
void ClickAction_CharacterHire(ReturnCode returnCode, ProtoData.BuildingClickData buildingClickData) { if (ReturnCode.Success == returnCode) { } else { BasePage.OnMessageBox("돈이 부족합니다.", true, null, "확인"); } TransitionManager.Instance.OnWaitSigh(false); }
public override void SendPacket(bool reliable, bool isWait = false) { base.SendPacket(isWait); var buildingClickData = new ProtoData.BuildingClickData( ); buildingClickData.index = index; buildingClickData.clickAction = (int)clickAction; buildingClickData.value = value; Send(OperationCode.BuildingClick, BinSerializer.ConvertPacket(buildingClickData)); Debug.Log("[BuildingClickRequest] Send"); }
private void ClickAction_BuildingBuild(ClientPeer peer, ProtoData.BuildingClickData buildingClickData, byte operationCode, SendParameters sendParameters) { int index = buildingClickData.index; if (peer.userAgent.BuildingDataList == null) { Failed(peer, sendParameters); return; } var buildingData = peer.userAgent.BuildingDataList.Find(x => x.Index == index); var response = new OperationResponse(operationCode); var sheet = TheLordTable.Instance.BuildingTable.BuildingInfoSheet; var record = BaseTable.Get(sheet, "index", index); int unitCreate = (int)record["spawnCharacter"]; int cost = (int)record["cost"]; if (peer.userAgent.UserAssetData.GetGold() < cost) { // 돈 부족 예외처리 response.ReturnCode = (short)ReturnCode.Failed; response.Parameters = BinSerializer.ConvertPacket(buildingClickData); } else { if (buildingData == null) { buildingData = new BuildingData(peer.Id); buildingData.Index = index; buildingData.LV = 0; buildingData.CharactertData.Index = unitCreate; peer.userAgent.BuildingDataList.Add(buildingData); } if (!buildingData.WorkTime.Equals(default))