Beispiel #1
0
 public void ClearRes()
 {
     Res.SetAmount(HexResource.RESOURCE_TYPE.WOOD, 0);
     Res.SetAmount(HexResource.RESOURCE_TYPE.FOOD, 0);
     Res.SetAmount(HexResource.RESOURCE_TYPE.IRON, 0);
     plantLevel = 0;
     farmLevel  = 0;
     mineLevel  = 0;
 }
        private void OnHarvestStopReply(byte[] bytes)
        {
            HarvestStopReply input = HarvestStopReply.Parser.ParseFrom(bytes);

            if (input.ActorId != ActorId)
            {
                return; // 不是自己,略过
            }
            if (!input.Ret)
            {
                return;
            }

            HexResource.RESOURCE_TYPE resType = (HexResource.RESOURCE_TYPE)input.ResType;
            HexCell     currentCell           = HexUnit.Location;
            HexResource res   = currentCell.Res;
            int         level = res.GetLevel(resType);

            res.SetAmount(resType, input.ResRemain);
            int levelNew = res.GetLevel(resType);

            if (level != levelNew)
            {
                res.Refresh(currentCell);
            }

            string [] resTypes = { "木材", "粮食", "铁矿" };
            string    msg      = $"获取了 {input.ResHarvest} 的 {resTypes[input.ResType]} 资源";

            UIManager.Instance.SystemTips(msg, PanelSystemTips.MessageType.Success);
            GameRoomManager.Instance.Log("MSG: HarvestStop OK - " + msg + $" - 剩余资源{input.ResRemain}");

            // 必要的时候, 刷新地面上的资源数字
            PanelRoomMain.Instance.UpdateResInCell(currentCell.Index);
        }
    private static void DOWNLOAD_RESCELL_REPLY(byte[] bytes)
    {
        DownloadResCellReply input = DownloadResCellReply.Parser.ParseFrom(bytes);

        if (!input.Ret)
        {
            string msg = "下载资源数据失败! - " + input.ErrMsg;
            GameRoomManager.Instance.Log($"MSG: DOWNLOAD_RES_REPLY OK - " + msg);
            return;
        }
        List <HexGridChunk> chunkList = new List <HexGridChunk>();

        for (int i = 0; i < input.InfoCount; ++i)
        {
            HexCell     cell = GameRoomManager.Instance.HexmapHelper.GetCell(input.ResInfo[i].CellIndex);
            HexResource hr   = cell.Res;
            hr.ResType = (HexResource.RESOURCE_TYPE)input.ResInfo[i].ResType;
            hr.SetAmount(hr.ResType, input.ResInfo[i].ResAmount);
            cell.UpdateFeatureLevelFromRes();
            if (!chunkList.Contains(cell.chunk))
            {
                chunkList.Add(cell.chunk);
            }
        }
        // 刷新模型
        foreach (var chunk in chunkList)
        {
            chunk.Refresh();
        }

        if (input.PackageIndex == 0 && input.PackageIndex < input.PackageCount - 1)
        {
            resCount = input.InfoCount;
            string msg = "开始下载资源数据...";
            GameRoomManager.Instance.Log($"MSG: DOWNLOAD_RES_REPLY - " + msg + $"PackageCount:{input.PackageCount}");
        }
        else if (input.PackageIndex == input.PackageCount - 1)
        {
            resCount += input.InfoCount;
            string msg = "下载资源数据成功!";
            GameRoomManager.Instance.Log($"MSG: DOWNLOAD_RES_REPLY OK - " + msg + $"PackageCount:{input.PackageCount} - Res Count:{resCount}");
        }
    }