override public void SetParams(bool is_new, object[] parms) { base.SetParams(is_new, parms); if (parms != null && parms.Length == 1) { EventParamBattleEnd _param = (EventParamBattleEnd)parms[0]; m_LabelTeamLevel.text = Localization.Format("TeamLevelFormat", _param.player_levelup.old_level); m_SpriteFail.gameObject.SetActive(_param.end_type == pe_EndBattle.Lose); m_SpriteTimeover.gameObject.SetActive(_param.end_type == pe_EndBattle.Timeout); } else { throw new System.Exception("invalid parms"); } m_ContinueTime = Time.time + 2f; m_LabelContinue.gameObject.SetActive(false); if (BattleContinue.Instance.IsPlaying) { m_LabelContinue.gameObject.SetActive(true); m_LabelContinue.text = Localization.Format("BattleContinueDesc", BattleContinue.Instance.BattleCount, BattleContinue.Instance.RequestCount); } m_BtnRetry.gameObject.SetActive(BattleStage.Instance != null); }
void OnEndBattleHandler(C2G.EndBattle packet, C2G.EndBattleAck ack) { MapStageDifficulty stage_info = Network.BattleStageInfo; _battle_end_param = new EventParamBattleEnd(); _battle_end_param.end_type = packet.end_type; _battle_end_param.is_boss = stage_info.MapInfo.MapType == "boss"; _battle_end_param.maxlevel_reward_mail_idxs = ack.maxlevel_reward_mail_idx; if (packet.end_type != pe_EndBattle.Exit) { Network.PlayerInfo.UseEnergy(stage_info.Energy); _battle_end_param.player_levelup = Network.PlayerInfo.UpdateExp(ack.player_exp_add_info); _battle_end_param.creatures = new List <BattleEndCreature>(); m_TeamData.Creatures.ForEach(c => _battle_end_param.creatures.Add(c.creature.UpdateExp(ack.creature_exp_add_infos.Find(i => i.creature_idx == c.creature.Idx)))); _battle_end_param.add_goods = ack.add_goods; _battle_end_param.loot_items = ack.loot_items; _battle_end_param.loot_runes = ack.loot_runes; _battle_end_param.loot_creatures = ack.loot_creatures.Select(c => c.creature_idx).ToList(); ack.loot_items.ForEach(i => ItemManager.Instance.Add(i)); ack.loot_runes.ForEach(i => RuneManager.Instance.Add(i)); ack.add_goods.ForEach(g => Network.PlayerInfo.AddGoods(g)); Network.Instance.LootCreatures(ack.loot_creatures, ack.loot_creatures_equip); //int dead_count = dead_characters.Count; _battle_end_param.clear_rate = 3; MapClearDataManager.Instance.SetClearRate(stage_info, _battle_end_param.clear_rate); } GameMain.SetBattleMode(eBattleMode.None); }
override public void SetParams(bool is_new, object[] parms) { base.SetParams(is_new, parms); if (parms != null && parms.Length == 1) { EventParamBattleEnd _param = (EventParamBattleEnd)parms[0]; if (_param.end_type == pe_EndBattle.Win) { m_Creatures = _param.creatures; m_MaxLevelMailIdxs = _param.maxlevel_reward_mail_idxs; m_Star1.SetActive(_param.clear_rate >= 1); m_Star2.SetActive(_param.clear_rate >= 2); m_Star3.SetActive(_param.clear_rate == 3); m_LabelTeamLevel.text = Localization.Format("TeamLevelFormat", _param.player_levelup.new_level); if (_param.player_levelup.old_level < _param.player_levelup.new_level) { TeamLevelUp.Instance.Show(_param.player_levelup); } m_LabelTeamExp.text = Localization.Format("AddTeamExp", _param.player_levelup.add_exp); for (int i = 0; i < m_Heroes.Length; ++i) { BattleEndHero[] heroes = m_Heroes[i].GetComponentsInChildren <BattleEndHero>(true); BattleEndHero hero; if (heroes != null && heroes.Length > 0) { hero = heroes[0]; } else { hero = NGUITools.AddChild(m_Heroes[i], m_BattleEndHeroPrefab).GetComponent <BattleEndHero>(); } if (m_Creatures.Count > i) { hero.Init(m_Creatures[i]); } else { hero.gameObject.SetActive(false); } } m_GridReward.GetChildList().ForEach(ch => DestroyImmediate(ch.gameObject)); for (int i = 0; i < _param.add_goods.Count; ++i) { RewardItem reward = NGUITools.AddChild(m_GridReward.gameObject, m_RewardItemPrefab).GetComponent <RewardItem>(); reward.InitReward(40000 + (int)_param.add_goods[i].goods_type, (int)_param.add_goods[i].goods_value); } for (int i = 0; i < _param.loot_items.Count; ++i) { RewardItem reward = NGUITools.AddChild(m_GridReward.gameObject, m_RewardItemPrefab).GetComponent <RewardItem>(); reward.InitReward(_param.loot_items[i].item_idn, _param.loot_items[i].add_piece_count); } for (int i = 0; i < _param.loot_runes.Count; ++i) { RewardItem reward = NGUITools.AddChild(m_GridReward.gameObject, m_RewardItemPrefab).GetComponent <RewardItem>(); reward.InitReward(_param.loot_runes[i].rune_idn, 0); } if (_param.loot_creatures != null) { foreach (var loot_creature in _param.loot_creatures) { RewardItem reward = NGUITools.AddChild(m_GridReward.gameObject, m_RewardItemPrefab).GetComponent <RewardItem>(); reward.InitCreature(CreatureManager.Instance.GetInfoByIdx(loot_creature)); } } m_GridReward.Reposition(); } } else { throw new System.Exception("invalid parms"); } m_MadeList = new List <EventParamItemMade>(); //m_MadeList = new List<EventParamItemMade>(ItemManager.Instance.ItemMadeList); ItemManager.Instance.ItemMadeList.Clear(); if (m_MadeList.Count > 0) { showMadeItemTooltip = Time.time + 2f; m_ContinueTime = showMadeItemTooltip + 1f; } else { m_ContinueTime = Time.time + 3f; } m_LabelContinue.gameObject.SetActive(false); if (BattleStage.Instance != null && Network.NewStageInfo == null) { m_BtnRetry.gameObject.SetActive(true); } else { m_BtnRetry.gameObject.SetActive(false); } if (BattleContinue.Instance.IsPlaying) { m_LabelContinue.gameObject.SetActive(true); m_LabelContinue.text = Localization.Format("BattleContinueDesc", BattleContinue.Instance.BattleCount, BattleContinue.Instance.RequestCount); } }
void OnEndBattleHandler(C2G.EndBattle packet, C2G.EndBattleAck ack) { MapStageDifficulty stage_info = Network.BattleStageInfo; _battle_end_param = new EventParamBattleEnd(); _battle_end_param.end_type = packet.end_type; _battle_end_param.is_boss = stage_info.MapInfo.MapType == "boss"; if (packet.end_type == pe_EndBattle.Win) { _battle_end_param.player_levelup = Network.PlayerInfo.UpdateExp(ack.player_exp_add_info); _battle_end_param.creatures = new List <BattleEndCreature>(); m_TeamData.Creatures.ForEach(c => _battle_end_param.creatures.Add(c.creature.UpdateExp(ack.creature_exp_add_infos.Find(i => i.creature_idx == c.creature.Idx)))); _battle_end_param.add_goods = ack.add_goods; _battle_end_param.loot_items = ack.loot_items; _battle_end_param.loot_runes = ack.loot_runes; _battle_end_param.loot_creatures = ack.loot_creatures.Select(c => c.creature_idx).ToList(); ack.loot_items.ForEach(i => ItemManager.Instance.Add(i)); ack.loot_runes.ForEach(i => RuneManager.Instance.Add(i)); ack.add_goods.ForEach(g => Network.PlayerInfo.AddGoods(g)); Network.Instance.LootCreatures(ack.loot_creatures, ack.loot_creatures_equip); int dead_count = dead_characters.Count; _battle_end_param.clear_rate = battleEndType == pe_EndBattle.Win ? (short)Math.Max(1, 3 - dead_count) : (short)0; if (MapClearDataManager.Instance.SetClearRate(stage_info, _battle_end_param.clear_rate) == true && stage_info.MapInfo.MapType == "main") { Network.LastOpenContentsStageInfo = stage_info; Tutorial.Instance.first_clear = true; } else { Tutorial.Instance.first_clear = false; } Network.NewStageInfo = null; if (ack.set_new_map == true) { var next_stage_info = MapInfoManager.Instance.GetNextStageInfo(stage_info); if (next_stage_info != null) { MapClearDataManager.Instance.SetNew(next_stage_info); if (next_stage_info.MapInfo.MapType != "main" || next_stage_info.MapInfo.IDN <= GameConfig.Get <int>("contents_open_main_map")) { Network.NewStageInfo = next_stage_info; } } } } else { _battle_end_param.player_levelup = Network.PlayerInfo.UpdateExp(null); short energy = stage_info.Energy; var energy_event = EventHottimeManager.Instance.GetInfoByID("dungeon_energy_zero"); if (energy_event != null) { energy = (short)(energy * energy_event.Percent); } Network.PlayerInfo.AddEnergy(energy); } _battle_end_param.maxlevel_reward_mail_idxs = ack.maxlevel_reward_mail_idx; m_Hottime.Clear(); if (packet.end_type == pe_EndBattle.Exit) { GameMain.SetBattleMode(eBattleMode.None); } }