/// <summary> /// 设置关卡副本数据 /// <summary> public void SetStageData(StageType Type, int Chapter, CounterPartInfo Info) { m_Type = Type; m_Chapter = Chapter; m_StageID = StageM.GetStageID(m_Type, m_Chapter, m_Stage); m_CounterInfo = Info; if (Info.isboss == 1) { if ((this is BossStageNode) == false) { //Debug.LogError("data skin is error"); } } else { if ((this is SmallStageNode) == false) { //Debug.LogError("data skin is error"); } } AddEvents(); InitUI(); }
/// <summary> /// 设置战役胜负 /// </summary> private void SetStageWin(bool outcome, int star) { bool boss = false; CounterPartInfo countInfo = StageM.GetCounterPartInfo(StageDC.GetCompaignStageID()); if (countInfo != null) { boss = countInfo.isboss == 1; } if (outcome) { MyHead.succ.gameObject.SetActive(true); MyHead.fail.gameObject.SetActive(false); SetStageStar(star, boss); GatePassInfo Info = new GatePassInfo(); Info.star = star; Info.times = 1; Info.stageid = StageDC.GetCompaignStageID(); StageDC.UpdataStageScheduler(Info); } else { MyHead.succ.gameObject.SetActive(false); MyHead.fail.gameObject.SetActive(true); MyHead.PvpPveFail.SetActive(true); MyHead.Datatable.gameObject.SetActive(false); // MyHead.PvpPveFail.transform.FindChild("PvpFailText").gameObject.SetActive(false); MyHead.Rewardtable.transform.parent.gameObject.SetActive(false); } }
private void CalcRoadState() { int PrevStageID = StageM.GetStageID(m_Type, m_Chapter, m_PrevStage); int NextStageID = StageM.GetStageID(m_Type, m_Chapter, m_NextStage); bool IsPrevOpen = StageDC.CheckOpenStage(m_Type, PrevStageID); int PrevstarNum = StageDC.GetPassStageStar(m_Type, PrevStageID); bool IsNextOpen = StageDC.CheckOpenStage(m_Type, NextStageID); int NextstarNum = StageDC.GetPassStageStar(m_Type, NextStageID); // if (IsPrevOpen == false || PrevstarNum <= 0) { m_state = LineState.UnOPEN; } else if (IsPrevOpen == true && PrevstarNum > 0) { if (IsNextOpen == true) { if (NextstarNum > 0) { m_state = LineState.Finish; } else { m_state = LineState.Roading; } } } else { m_state = LineState.UnOPEN; } }
public CounterPartInfo(s_counterpartInfo Info) { this.id = Info.id; this.type = Info.type; this.mode = Info.mode; this.chapters = Info.chapters; this.chaptersname = Info.chaptersname; this.counterpartname = Info.counterpartname; this.description = Info.description; this.times = Info.times; this.levellimit = Info.levellimit; this.soldierlevellimit = Info.soldierlevellimit; this.soldierquality = Info.soldierquality; this.rewardexp = Info.rewardexp; this.rewardglod = Info.rewardglod; this.decklevel = Info.decklevel; this.win_physical = Info.win_physical; this.lose_physical = Info.lose_physical; this.data0 = Info.data0; this.countershipcanvasid = Info.countershipcanvasid; this.iscaptain = Info.iscaptain; this.isboss = Info.isboss; //s_scriptdialogueInfo I = GetScriptdialogueInfo(id); if (Info.endscript > 0) { s_scriptdialogueInfo I = StageM.GetScriptdialogueInfo(Info.endscript); this.drop = I.drop; } StageM.GetStageTalk(Info.startscript, ref this.m_StageStartTalk); StageM.GetStageTalk(Info.endscript, ref this.m_StageEndTalk); StageM.GetBubblePromt(this.id, ref this.m_lBubblePromt); }
/// <summary> /// 查找对应的副本数据 /// <summary> private CounterPartInfo FindCounterpartInfo(StageType Type, int Chapter, int StageID) { foreach (CounterPartInfo Info in m_CounterInfo) { if (Info.id == StageM.GetStageID(Type, Chapter, StageID)) { return(Info); } } return(null); }
void UpdateData(StageType Type, int Chapter) { m_type = Type; m_Chapter = Chapter; m_ChapterReward = StageM.GetChapterReward(m_type, m_Chapter); GetStarData(); LoadStageContext(m_Chapter, m_type); SetUI(); GetBoxDataStage(); }
public static void BuildViewStageScene() { CounterPartInfo Info = StageDC.GetCounterPartInfo(); ShipCanvasInfo Map = StageM.GetCounterPartMap(Info.countershipcanvasid); List <SoldierInfo> lSoldier = new List <SoldierInfo>(); List <BuildInfo> lBuild = new List <BuildInfo>(); StageM.GetCounterPartShipPut(Info.id, ref lSoldier, ref lBuild); CmCarbon.SetDefenseMap(Map); GenerateShip.GenerateShips(GetShipBodyMap(), GetLifeMBornNode(true), lBuild, lSoldier); MainCameraM.s_Instance.ResetCameraDataByBattle(); }
/// <summary> /// 获取一个关卡的奖励 /// </summary> private static void SetStageReward(int StageID) { m_CounterPartReward.Clear(); List <int> l = StageM.GetStageReward(StageID); for (int i = 0; i < l.Count; i++) { if (m_CounterPartReward.Contains(l[i]) == false) { m_CounterPartReward.Add(l[i]); } } }
/// <summary> /// 设置奖励界面数据 /// </summary> /// <param name="type">是否获取到物品</param> /// <param name="StarRewardID">s_stage_reward表的id</param> /// <param name="starNumText">星星数量,如 8/15 </param> /// <param name="itemList">奖励物品列表</param> public void SetData(StageMapWnd Wnd, StarAwardType type, int StarRewardID, int HaveStar, int TotalStar) { m_wnd = Wnd; m_type = type; m_starRewardID = StarRewardID; m_itemList = StageM.GetChapterRewardItem(m_starRewardID, ref m_RewardCoin, ref m_RewardDiamond); MyHead.LblCoin.text = m_RewardCoin.ToString(); MyHead.LblDiamond.text = m_RewardDiamond.ToString(); if (MyHead != null && MyHead.LblStarNum != null) { MyHead.LblStarNum.text = "[ffffff]" + HaveStar.ToString() + "[-][c7945b]" + "/" + TotalStar.ToString() + "[-]"; } SetUI(); }
/// <summary> /// 0706 回应炮弹兵数据 /// </summary> /// <param name="Info"></param> /// <returns></returns> public static bool RecvStageScheduleResponse(object obj) { ClearDC(); if (obj == null) { return(false); } stage.StageScheduleResponse Info = obj as stage.StageScheduleResponse; //普通副本 m_NormalStage = Info.normal; foreach (stage.StageScheduleResponse.ScheduleInfo I in Info.normal_info) { GatePassInfo g = new GatePassInfo(); g.star = I.star; g.times = I.times; g.stageid = I.stageid; m_NormalStagePass.Add(g); } //精英副本 m_HardStage = Info.hard; foreach (stage.StageScheduleResponse.ScheduleInfo I in Info.hard_info) { GatePassInfo g = new GatePassInfo(); g.star = I.star; g.times = I.times; g.stageid = I.stageid; m_HardStagePass.Add(g); } //团队副本 //精英副本 m_TeamStage = Info.team; foreach (stage.StageScheduleResponse.ScheduleInfo I in Info.team_info) { GatePassInfo g = new GatePassInfo(); g.star = I.star; g.times = I.times; g.stageid = I.stageid; m_TeamStagePass.Add(g); } m_FirstNormalStage = StageM.FindFirstCanAttackStage(StageType.Normal, m_NormalStage); m_FirstHardStage = StageM.FindFirstCanAttackStage(StageType.Hard, m_HardStage); m_FirstTeamStage = StageM.FindFirstCanAttackStage(StageType.Team, m_TeamStage); return(true); }
/// <summary> /// 从protobuf 解析静态数据到本地 /// </summary> /// <param name="msg"></param> public static void LoadStaticDataToLocal(sdata.StaticDataResponse msg) { ConfigM.Init(msg); buildingM.Init(msg); DeckM.Init(msg); UserM.Init(msg); SoldierM.Init(msg); SummonM.Init(msg); SkillM.Init(msg); StageM.Init(msg); RoleNameM.Init(msg); ItemM.Init(msg); GodSkillM.Init(msg); AthleticsM.Init(msg); ErnieM.Init(msg); FruitionM.Init(msg); ShipPlanM.Init(msg); }
/// <summary> /// 根据副本计算战斗力. /// </summary> /// <returns>The counter part combat power.</returns> /// <param name="nCounterPartID">N counter part I.</param> public static int GetCounterPartCombatPower(int nCounterPartID) { List <SoldierInfo> lSoldInfoList = new List <SoldierInfo> (); List <BuildInfo> lBuildList = new List <BuildInfo> (); StageM.GetCounterPartShipPut(nCounterPartID, ref lSoldInfoList, ref lBuildList); int combatPower = 0; foreach (SoldierInfo info in lSoldInfoList) { combatPower += info.m_combat_power; } foreach (BuildInfo info in lBuildList) { combatPower += info.m_DefensePower; } return(combatPower); }
/// <summary> /// 加入战役战斗,填充战役相关数据。 /// </summary> public static bool JoinCompaignBattle() { m_CounterPartPutSoldier.Clear(); m_CounterPartEnemys.Clear(); m_CounterPartPutBulid.Clear(); m_CounterPartInfo = StageM.GetCounterPartInfo(m_stageid); if (m_CounterPartInfo != null) { SetStageReward(m_stageid); //战斗模式 if (m_CounterPartInfo.mode == 0) { m_CounterPartMap = StageM.GetCounterPartMap(m_CounterPartInfo.countershipcanvasid); StageM.GetCounterPartShipPut(m_stageid, ref m_CounterPartPutSoldier, ref m_CounterPartPutBulid); //加入战斗 CmCarbon.ReadyCombat(); CmCarbon.SetDefenseMap(m_CounterPartMap); CmCarbon.SetDefenseBuild(m_CounterPartPutBulid); CmCarbon.SetPVEMonisterSoldier(m_CounterPartPutSoldier); CmCarbon.SetDefenseFloor(m_CounterPartInfo.decklevel); CmCarbon.SetDefenseUserInfo(m_CounterPartInfo, m_CounterPartPutBulid); } else //防守模式 //StageM.GetCounterPartShipPut(m_stageid , ref m_CounterPartPutSoldier , ref m_CounterPartPutBulid); { StageM.GetCounterPartShipPut(m_stageid, ref m_CounterPartEnemys, ref m_CounterPartPutBulid); //加入战斗 CmCarbon.ReadyCombat(); CmCarbon.SetAttackSoldier(m_CounterPartEnemys); } if (GetPassStageStar(m_type, m_stageid) == 0 /*&& GetPassStageTimes (m_type ,m_stageid) == 0*/) { CmCarbon.SetStartTalk(m_CounterPartInfo.m_StageStartTalk); CmCarbon.SetEndTalk(m_CounterPartInfo.m_StageEndTalk); } return(true); } return(false); }
private void AddItemComeFrom() { List <int> lCounpart = StageM.GetRewardFromStage(m_itemInfo.id); if (lCounpart == null || lCounpart.Count < 1) { ShowAnotherFrom(); return; } List <CounterPartInfo> lCounterInfo = StageM.GetCounterPartInfoList(lCounpart); if (lCounterInfo == null || lCounterInfo.Count < 1) { ShowAnotherFrom(); return; } ShowAnotherFrom(false); Dictionary <int, int> dl = new Dictionary <int, int>(); foreach (CounterPartInfo info in lCounterInfo) { // if(info.isboss == 0) continue; if (dl.ContainsKey(info.id)) { continue; } dl.Add(info.id, info.id); GameObject go = NDLoad.LoadWndItem("ItemComeFromItem", MyHead.Table.transform); if (go != null) { ItemComeFromItem item = go.GetComponent <ItemComeFromItem>(); if (item) { item.SetCounterInfoData(info); } } } MyHead.Table.Reposition(); }
/// <summary> /// 获取该章节下的所有关卡 /// </summary> public static List <CounterPartInfo> GetChaptersGate(int Chapters, StageType type) { List <CounterPartInfo> l = StageM.GetChaptersGate(Chapters, type); if (l != null && l.Count > 1) { l.Sort((a, b) => { if (a.CounterNode > b.CounterNode) { return(1); } else if (a.CounterNode == b.CounterNode) { return(0); } else { return(-1); } }); } return(l); }
/// <summary> /// 获得途径. /// </summary> private void AddGetWay() { AddBanner(0); List <int> lCounpart = StageM.GetRewardFromStage(m_ItemInfo.itemType); if (lCounpart == null || lCounpart.Count < 1) { return; } List <CounterPartInfo> lCounterInfo = StageM.GetCounterPartInfoList(lCounpart); if (lCounterInfo == null || lCounterInfo.Count < 1) { return; } Dictionary <int, int> dl = new Dictionary <int, int>(); PdbbbItem pbbItem = null; GameObject go2 = NDLoad.LoadWndItem("PdbbbItem", MyHead.Table.transform); pbbItem = go2.GetComponent <PdbbbItem>(); if (pbbItem != null && pbbItem.MyHead.Table != null) { pbbItem.MyHead.Table.columns = 2; pbbItem.MyHead.Table.padding.y = 10f; foreach (CounterPartInfo info in lCounterInfo) { // if(info.isboss == 0) continue; if (dl.ContainsKey(info.id)) { continue; } dl.Add(info.id, info.id); GameObject go = NDLoad.LoadWndItem("EquipComeFromItem", pbbItem.MyHead.Table.transform); if (go != null) { EquipComeFromItem item = go.GetComponent <EquipComeFromItem>(); if (item) { item.SetCounterInfoData(info); item.MyHead.BtnItemClick.OnClickEventHandler += (UIButton sender) => { bool Open = StageDC.CheckOpenStage((StageType)info.type, info.id); if (!Open) { NGUIUtil.ShowTipWndByKey(10000175); return; } StageMapWnd wnd = WndManager.GetDialog <StageMapWnd>(); if (wnd != null) { wnd.SetMainMenuTop(false); int stageNode = StageDC.GetStageNode(info.id); int chapter = StageDC.GetStageChapter(info.id); wnd.GotoChapter((StageType)info.type, chapter, stageNode); } EquipInfoWnd InfoWnd = WndManager.FindDialog <EquipInfoWnd>(); if (InfoWnd != null) { WndManager.SetBeforeWnd(wnd, InfoWnd); } };; } } pbbItem.MyHead.Table.Reposition(); pbbItem.MyHead.Table.repositionNow = true; } } }
void SetUI() { if (MyHead == null) { return; } bool PrevChapter = StageM.CheckHaveChapters(m_Chapter - 1, m_type); bool NextChapter = StageM.CheckHaveChapters(m_Chapter + 1, m_type); if (MyHead.Btn_Left) { MyHead.Btn_Left.gameObject.SetActive(PrevChapter); } if (MyHead.Btn_Right) { MyHead.Btn_Right.gameObject.SetActive(NextChapter); } bool HardLock = false; HardLock = StageM.CheckHaveChapters(m_Chapter, StageType.Hard); bool TeamLock = StageM.CheckHaveChapters(m_Chapter, StageType.Team); if (HardLock == false) { MyHead.SprEliteLock.gameObject.SetActive(true); MyHead.Btn_Elite.isEnabled = false; MyHead.LblElite.alignment = NGUIText.Alignment.Right; } else { MyHead.SprEliteLock.gameObject.SetActive(false); MyHead.Btn_Elite.isEnabled = true; MyHead.LblElite.alignment = NGUIText.Alignment.Center; } // if (TeamLock == false) { MyHead.SprEliteRaid.gameObject.SetActive(true); MyHead.Btn_Raid.isEnabled = false; MyHead.LblRaid.alignment = NGUIText.Alignment.Right; } else { MyHead.SprEliteRaid.gameObject.SetActive(false); MyHead.Btn_Raid.isEnabled = true; MyHead.LblRaid.alignment = NGUIText.Alignment.Center; } if (MyHead.Lbl_Star != null) { MyHead.Lbl_Star.text = /*"[c7945b]"+ */ m_haveStar.ToString() + /* "[-][3f3c2f]" + */ "/" + m_totalStar.ToString() /*+ "[-]"*/; } if (MyHead.Sprite_Progress != null) { MyHead.Sprite_Progress.fillAmount = CalcfillAmount(m_haveStar, m_totalStar); } if (MyHead.Lbl_NeedStartext1 != null) { MyHead.Lbl_NeedStartext1.text = GetNeedStar(0).ToString(); } if (MyHead.Lbl_NeedStartext2 != null) { MyHead.Lbl_NeedStartext2.text = GetNeedStar(1).ToString(); } if (MyHead.Lbl_NeedStartext3 != null) { MyHead.Lbl_NeedStartext3.text = GetNeedStar(2).ToString(); } UpdataBoxState(); }
/// <summary> /// 更新章节进度 /// </summary> public static void UpdataStageScheduler(GatePassInfo Info) { if (Info == null) { return; } int type = Info.CouterType; if (type == (int)StageType.Normal) { if (Info.stageid > m_NormalStage) { m_NormalStage = Info.stageid; m_NormalStagePass.Add(Info); m_FirstNormalStage = StageM.FindFirstCanAttackStage(StageType.Normal, m_NormalStage); } else { bool IsHave = false; for (int i = 0; i < m_NormalStagePass.Count; i++) { if (m_NormalStagePass[i].stageid == Info.stageid) { if (m_NormalStagePass[i].star < Info.star) { m_NormalStagePass[i].star = Info.star; } m_NormalStagePass[i].times++; IsHave = true; break; } } if (IsHave == false) { Info.times = 1; m_NormalStagePass.Add(Info); } } } else if (type == (int)StageType.Hard) { if (Info.stageid > m_HardStage) { m_HardStage = Info.stageid; m_HardStagePass.Add(Info); m_FirstHardStage = StageM.FindFirstCanAttackStage(StageType.Hard, m_HardStage); } else { bool IsHave = false; for (int i = 0; i < m_HardStagePass.Count; i++) { if (m_HardStagePass[i].stageid == Info.stageid) { if (m_HardStagePass[i].star < Info.star) { m_HardStagePass[i].star = Info.star; } m_HardStagePass[i].times++; IsHave = true; break; } } if (IsHave == false) { Info.times = 1; m_HardStagePass.Add(Info); } } } else { if (Info.stageid > m_TeamStage) { m_TeamStage = Info.stageid; m_TeamStagePass.Add(Info); m_FirstTeamStage = StageM.FindFirstCanAttackStage(StageType.Team, m_TeamStage); } else { bool IsHave = false; for (int i = 0; i < m_TeamStagePass.Count; i++) { if (m_TeamStagePass[i].stageid == Info.stageid) { if (m_TeamStagePass[i].star < Info.star) { m_TeamStagePass[i].star = Info.star; } m_TeamStagePass[i].times++; IsHave = true; break; } } if (IsHave == false) { Info.times = 1; m_TeamStagePass.Add(Info); } } } }
/// <summary> /// 获取关卡名称 /// </summary> public static string GetChaptersName(int Chapters, StageType type) { return(StageM.GetChaptersName(Chapters, type)); }
/// <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; }