/// <summary> /// 获取地形房间及其内部陷阱 /// </summary> /// <author>zhulin</author> public BuildInfo GetBuildInfo() { BuildInfo bInfo = null; if (type == (int)ShipBuildType.BuildRoom) { bInfo = BuildDC.GetBuilding(objid); } else if (type == (int)ShipBuildType.BuildStair) { bInfo = buildingM.GetStartBuildInfo(objid); } if (bInfo != null) { bInfo.ID = objid; bInfo.m_cx = cxMapGrid; bInfo.m_cy = cyMapGrid; bInfo.m_ShipPutdata0 = shipput_data0; bInfo.m_ShipPutdata1 = shipput_data1; if (bInfo.m_RoomType == RoomType.DeckTrap) { m_DeckRoom = true; } else { m_DeckRoom = false; } } return(bInfo); }
/// <summary> /// 获取船上数据 /// </summary> public List <ShipPutInfo> GetShipBuildInfo(ShipBuildType type) { List <ShipPutInfo> l = new List <ShipPutInfo>(); if (type == ShipBuildType.BuildRoom || type == ShipBuildType.All) { if (m_RoomBuildings.Count == 0) //当没有金库时,添加一个 { BuildInfo info = BuildDC.SearchBuilding(1300); if (info != null) { ShipPutInfo Build = new ShipPutInfo(ShipPutInfo.GetNewShipPutId(), info); Build.cyMapGrid = 0; Build.cxMapGrid = 24; AddShipBuildInfo(Build, ShipBuildType.BuildRoom); } } l.AddRange(m_RoomBuildings); } if (type == ShipBuildType.Soldier || type == ShipBuildType.All) { l.AddRange(m_Soldiers); } if (type == ShipBuildType.BuildStair || type == ShipBuildType.All) { l.AddRange(m_StairBuildings); } return(l); }
/// <summary> /// 获取船上数据 /// </summary> public void GetShipLifeObj(ref List <SoldierInfo> lSoldier, ref List <BuildInfo> lBuild, ref List <BuildInfo> lStair) { if (lSoldier == null) { lSoldier = new List <SoldierInfo>(); } lSoldier.Clear(); if (lBuild == null) { lBuild = new List <BuildInfo>(); } lBuild.Clear(); if (lStair == null) { lStair = new List <BuildInfo>(); } lStair.Clear(); if (m_RoomBuildings.Count == 0) //当没有金库时,添加一个 { BuildInfo info = BuildDC.SearchBuilding(1300); if (info != null) { ShipPutInfo Build = new ShipPutInfo(ShipPutInfo.GetNewShipPutId(), info); Build.cyMapGrid = 0; Build.cxMapGrid = 24; AddShipBuildInfo(Build, ShipBuildType.BuildRoom); lBuild.Add(info); } } else { //建筑 foreach (ShipPutInfo r in m_RoomBuildings) { BuildInfo info = r.GetBuildInfo(); if (info != null) { lBuild.Add(r.GetBuildInfo()); } } //炮弹兵 foreach (ShipPutInfo r in m_Soldiers) { SoldierInfo s = new SoldierInfo(); if (r.GetSoldier(ref s) == true) { lSoldier.Add(s); } } //楼梯 foreach (ShipPutInfo r in m_StairBuildings) { lStair.Add(r.GetBuildInfo()); } } }
/// <summary> /// 模拟数据接口。 /// </summary> public static void SimulationData() { UserDC.SimulationData(); SoldierDC.SimulationData(); StageDC.SimulationData(); BuildDC.SimulationData(); BlackScienceDC.SimulationData(); ShipPlanDC.SimulationData(); }
/// <summary> /// 清理数据中心数据 /// </summary> public static void ClearDC() { UserDC.ClearDC(); SoldierDC.ClearDC(); BuildDC.ClearDC(); ItemDC.ClearDC(); BlackScienceDC.ClearDC(); ShipPlanDC.ClearDC(); }
/// <summary> /// 设置升级需要材料 /// </summary> private void SetUpLevelNeed() { if (m_HaveCoin >= m_NeedCoin && m_HaveWood >= m_NeedWood) { BuildDC.Send_BuildlevelUpRequest(m_build.ID); } else //弹出提示框 { NGUIUtil.ShowFreeSizeTipWnd(NGUIUtil.GetStringByKey(10000073), null, 0, 2f, ConstantData.iDepBefore3DModel); } }
/// <summary> /// 召唤英雄 /// </summary> void BtnYES_OnClickEventHandler(UIButton sender) { if (m_iWndType == 1) { SoldierDC.Send_SoldierSummonRequest(m_soldierInfo.SoldierTypeID); } else if (m_iWndType == 2) { BuildDC.Send_BuildComposeRequest(m_buildInfo.BuildType); } }
/// <summary> /// 升级 /// </summary> /// <param name="sender">Sender.</param> private void BtnShengJi_OnClickEventHandler(UIButton sender) { //.0能升级.1金币不足.2其他材料不足.3满级. CanLevelResult result = buildingM.GetLevelCanUP(m_Info); if (result == CanLevelResult.CanUp) { BackUpInfo(); BuildDC.Send_BuildlevelUpRequest(m_Info.ID); } }
private void ShowRedPot(bool Check = true) { if (Check) { bool can = BuildDC.CheckCanUp(m_Info); MyHead.SprRedSpot.SetActive(can); } else { MyHead.SprRedSpot.SetActive(false); } }
private void BtnShengJie_OnClickEventHandler(UIButton sender) { if (m_parent.m_bIsShowQualityUp) { return; } CanQualityResult result = buildingM.GetQualityCanUP(m_Info); if (result == CanQualityResult.CanUp) { m_parent.BackUpInfo(); BuildDC.Send_BuildQualityUpRequest(m_Info.ID); // SetButtonEnable(false); } }
/// <summary> /// 填充建造类型数据 /// </summary> public void FillData(ShipBuildType type) { m_shipBuildType = type; switch (type) { case ShipBuildType.BuildRoom: warehouseBuildList = BuildDC.GetBuildingList(AttributeType.ALL); break; case ShipBuildType.Soldier: SoldierDC.GetSoldiers(ref soldierList, CombatLoactionType.ALL); break; default: break; } }
/// <summary> /// 设置建筑数据 /// </summary> public void UpdateData() { m_Build.Clear(); m_CannotSumBuild.Clear(); m_CanSumBuild.Clear(); List <BuildInfo> s_allBuild = buildingM.GetAllBuildInfo(); foreach (BuildInfo item in s_allBuild) { if (item.BuildType == 1201 || item.BuildType >= 9990) { continue; } BuildInfo exitInfo = BuildDC.SearchBuilding(item.BuildType); if (exitInfo == null) { bool canSum = buildingM.CheckCanSummon(item.BuildType); if (canSum) { m_CanSumBuild.Add(item); } else { m_CannotSumBuild.Add(item); } } } List <BuildInfo> lWareInfo = BuildDC.GetBuildingList(AttributeType.ALL); foreach (BuildInfo Ware in lWareInfo) { if (Ware == null || Ware.BuildType == 1201) { continue; } m_Build.Add(Ware); } BuildDC.SortBuildList(ref m_Build); BuildDC.SortBuildList(ref m_CanSumBuild); BuildDC.SortCanNotExitBuildList(ref m_CannotSumBuild); //更新UI SetUI(); }
private void BtnSplit_OnClickEventHandler(UIButton sender) { BuildDC.Send_BuildAnalyzeRequest(m_build.ID); }
/// <summary> /// 模拟数据 /// </summary> public static void SimulationData() { List <StaticShipCanvas> l = ShipPlanM.GetAllShipCanvasInfo(); foreach (StaticShipCanvas v in l) { m_lShipDesignInfo.Add(v.Id, v); } // ShipPlan p = new ShipPlan(); p.ID = 1; p.bExitCanvas = false; p.Name = "我的小船船"; p.Type = PlanType.Default; p.BlackScienceID = 1; p.Canvans = StageM.GetCounterPartMap(101001); p.ShipDesignId = 100005; // 16格大船 StaticShipCanvas shipInfo = ShipPlanDC.GetShipDesignInfo(p.ShipDesignId); if (shipInfo != null) { p.Canvans.CorrectionShiftError(new Int2(shipInfo.Width, shipInfo.Height)); } // 船只摆设数据 List <SoldierInfo> lSoldier = null; List <BuildInfo> lBuild = null; StageM.GetCounterPartShipPut(101001, ref lSoldier, ref lBuild); // 建筑跟楼梯 foreach (BuildInfo v in lBuild) { if (v.BuildType == 1300) { BuildInfo gold = BuildDC.GetVaultBuildInfo(); ShipPutInfo Info = new ShipPutInfo(); Info.id = ShipPutInfo.GetNewShipPutId(); Info.objid = gold.ID; Info.type = 1; Info.cxMapGrid = v.m_cx; Info.cyMapGrid = v.m_cy; Info.shipput_data0 = 0; Info.shipput_data1 = 0; p.AddShipBuildInfo(Info, ShipBuildType.BuildRoom); } if (v.BuildType == 1201) { ShipPutInfo Info = new ShipPutInfo(); Info.id = ShipPutInfo.GetNewShipPutId(); Info.objid = v.BuildType; Info.type = 3; Info.cxMapGrid = v.m_cx; Info.cyMapGrid = v.m_cy; Info.shipput_data0 = 0; Info.shipput_data1 = 0; p.AddShipBuildInfo(Info, ShipBuildType.BuildStair); } } m_lShipPlan.Add(p.ID, p); m_SelPlan = p; }
public static bool ProcessData(int CmdID, object Para) { bool bResult = true; if (Para is gate.GateMessage.MessageContent) { gate.GateMessage.MessageContent msg = Para as gate.GateMessage.MessageContent; int nErrorCode = 0; gate.ErrorMessage emsg = msg.error_message; if (emsg != null) { if (emsg.code > 0) { FileLog.ProtocolDump(emsg); nErrorCode = emsg.code; NGUIUtil.DebugLog(string.Format("CmdID={0},errorCode={1},description={2}", CmdID, emsg.code, emsg.description)); bResult = false; //return false; //如取名重名也会返回error_message.code>0,所以这里不宜return,否则客户端hook代码不会执行 } } object data = null; if (bResult && msg.network_message != null) //如果失败了,有可能msg.network_message为null { data = protobufM.Deserialize(msg.proto_name, msg.network_message); } //dump FileLog.ProtocolDumpwrite(CmdID.ToString()); FileLog.ProtocolDumpwriteXml(CmdID.ToString()); if (CmdID != 9999) { FileLog.ProtocolDump(data); } //统一在外围直接解析,不到具体的DC去 if (bResult == true) { int DcBlock = CmdID / 100; switch (DcBlock) { case 2: bResult = SoldierDC.ProcessData(CmdID, nErrorCode, data); break; case 5: bResult = ShipPlanDC.ProcessData(CmdID, nErrorCode, data); break; case 6: bResult = UserDC.ProcessData(CmdID, nErrorCode, data); break; case 7: bResult = StageDC.ProcessData(CmdID, nErrorCode, data); break; case 8: bResult = ItemDC.ProcessData(CmdID, nErrorCode, data); break; case 9: bResult = BuildDC.ProcessData(CmdID, nErrorCode, data); break; case 11: bResult = BlackScienceDC.ProcessData(CmdID, nErrorCode, data); break; } } ProcessRealHooks(CmdID, nErrorCode); } return(bResult); }
private void UpDateBuildInfo() { m_Info = BuildDC.GetBuilding(m_Info.ID); }
/// <summary> /// 获取<船上或仓库>建筑、士兵和楼梯数据 (最核心的一个接口) /// </summary> public ShipPutInfo GetShipBuildInfo(CanvasCore Core) { if (Core == null) { return(null); } if (!Core.IsNewCreate) { List <ShipPutInfo> l = new List <ShipPutInfo>(); if (Core.m_type == ShipBuildType.Soldier) { l = m_Soldiers; for (int i = 0; i < l.Count; i++) { if (l[i].id == Core.m_ID) { return(l[i]); } } } else if (Core.m_type == ShipBuildType.BuildRoom) { l = m_RoomBuildings; for (int i = 0; i < l.Count; i++) { if (l[i].id == Core.m_ID) { return(l[i]); } } } else if (Core.m_type == ShipBuildType.BuildStair) { l = m_StairBuildings; for (int i = 0; i < l.Count; i++) { if (l[i].id == Core.m_ID) { return(l[i]); } } } } else { if (Core.m_type == ShipBuildType.Soldier) { return(new ShipPutInfo(Core.m_ID, Core.m_DataID)); } else if (Core.m_type == ShipBuildType.BuildRoom) { List <BuildInfo> l = BuildDC.GetBuildingList(AttributeType.ALL); for (int i = 0; i < l.Count; i++) { if (l[i].ID == Core.m_DataID) { return(new ShipPutInfo(Core.m_ID, l[i])); } } } } return(null); }
/// <summary> /// 填充陷阱和兵数据 /// </summary> private void FillTrapData(AttributeType type) { warehouseBuildList = BuildDC.GetBuildingList(type); }
private void DoShengXing(UIButton sender) { SetEnableQuality(true); BackUpInfo(); BuildDC.Send_BuildStarUpRequest(m_Info.ID); }