public MapCondition CheckCondition() { switch (type) { case eMapCondition.MapClear: { MapInfo map_info = MapInfoManager.Instance.GetInfoByID(value); MapStageInfo stage_info = map_info.Stages.Last(); pe_Difficulty difficulty = (pe_Difficulty)Enum.Parse(typeof(pe_Difficulty), value2); var clear_data = MapClearDataManager.Instance.GetData(stage_info, difficulty); if (clear_data == null || clear_data.clear_rate == 0) { return(this); } } break; case eMapCondition.MapStageClear: { pe_Difficulty difficulty = (pe_Difficulty)Enum.Parse(typeof(pe_Difficulty), value2); MapStageDifficulty stage_info = MapInfoManager.Instance.GetStageInfoByID(value, difficulty); var clear_data = MapClearDataManager.Instance.GetData(stage_info); if (clear_data == null || clear_data.clear_rate == 0) { return(this); } } break; case eMapCondition.Weekly: DayOfWeek cur_dow = Network.Instance.ServerTime.DayOfWeek; DayOfWeek set_dow = (DayOfWeek)Enum.Parse(typeof(DayOfWeek), value); if (cur_dow != set_dow) { return(this); } break; case eMapCondition.Period: DateTime begin_time = DateTime.Parse(value); DateTime end_time = DateTime.Parse(value2); if (begin_time > Network.Instance.ServerTime || end_time < Network.Instance.ServerTime) { return(this); } break; case eMapCondition.Block: return(this); } return(null); }
public pd_MapClearData GetData(MapStageInfo stage_info, pe_Difficulty difficulty = pe_Difficulty.Normal) { return(GetData(stage_info.MapInfo.IDN, stage_info.StageIndex, difficulty)); }
public MapStageDifficulty(MapStageInfo stage_info, XmlNode node) { StageInfo = stage_info; XmlAttribute difficultyAttr = node.Attributes["type"]; if (difficultyAttr != null) { Difficulty = (pe_Difficulty)Enum.Parse(typeof(pe_Difficulty), difficultyAttr.Value); } else { Difficulty = pe_Difficulty.Normal; } Condition = StageInfo.Conditions[(int)Difficulty]; XmlAttribute tryLimitAttr = node.Attributes["try_limit"]; if (tryLimitAttr != null) { TryLimit = int.Parse(tryLimitAttr.Value); } else { TryLimit = StageInfo.MapInfo.TryLimit; } if (MapInfo.MapType != "weekly") { Energy = short.Parse(node.Attributes["energy"].Value); RewardExp = int.Parse(node.Attributes["reward_exp"].Value); RewardGold = int.Parse(node.Attributes["reward_gold"].Value); } Waves = new List <MapWaveInfo>(); foreach (XmlNode waveNode in node.SelectNodes("Wave")) { Waves.Add(new MapWaveInfo(waveNode)); } //Rewards = new List<MapRewardInfo>(); //foreach (XmlNode rewardNode in node.SelectNodes("Reward")) //{ // var reward = new MapRewardInfo(rewardNode); // Rewards.Add(reward); // //if (MapInfo.MapType == "main" && (reward.Reward as StuffInfo) != null) // // (reward.Reward as StuffInfo).AddDropInfo(this); //} Recommends = new List <CreatureInfo>(); foreach (XmlNode recommendNode in node.SelectNodes("Recommend")) { Recommends.Add(CreatureInfoManager.Instance.GetInfoByID(recommendNode.Attributes["id"].Value)); } DropInfo = new List <RewardLootInfo>(); foreach (XmlNode LootNode in node.SelectNodes("Loot")) { DropInfo.Add(new RewardLootInfo(LootNode, Difficulty)); } }