public Dictionary <Int32, Int32> GetMonstersForCategory(EMonsterClass p_class, Boolean p_showChampions) { Dictionary <Int32, Int32> dictionary = new Dictionary <Int32, Int32>(); foreach (Int32 num in m_allMonsters.Keys) { MonsterStaticData staticData = StaticDataHandler.GetStaticData <MonsterStaticData>(EDataType.MONSTER, num); if (staticData != null && staticData.BestiaryEntry) { if (!p_showChampions) { if (staticData.Class != p_class && p_class != EMonsterClass.NONE) { continue; } } else if (staticData.Grade != EMonsterGrade.CHAMPION) { continue; } dictionary.Add(num, m_allMonsters[num]); } } return(dictionary); }
public override String GetDescriptionForCaster(MonsterStaticData p_monster) { MonsterBuffStaticData staticData = StaticDataHandler.GetStaticData <MonsterBuffStaticData>(EDataType.MONSTER_BUFFS, 14); Single p_value = (Single)Math.Round(staticData.GetBuffValues(m_level)[0] * p_monster.MagicPower * 0.1f, MidpointRounding.AwayFromZero); SetDescriptionValue(0, p_value); return(Localization.Instance.GetText("MONSTER_SPELL_LIQUID_MEMBRANE_INFO", m_descriptionValues)); }
public override String GetDescriptionForCaster(MonsterStaticData p_monster) { MonsterBuffStaticData staticData = StaticDataHandler.GetStaticData <MonsterBuffStaticData>(EDataType.MONSTER_BUFFS, 27); Int32 p_value = (Int32)Math.Round(staticData.GetBuffValues(m_level)[0] * p_monster.MagicPower, MidpointRounding.AwayFromZero); SetDescriptionValue(0, p_value); SetDescriptionValue(1, staticData.GetDuration(0)); return(Localization.Instance.GetText("MONSTER_SPELL_CELESTIAL_ARMOUR_INFO", m_descriptionValues)); }
private void OnAnnounceLateMonsterSpawn(Object p_sender, EventArgs p_args) { Int32 monsterID = ((AnnounceLateMonsterSpawnArgs)p_args).MonsterID; MonsterStaticData staticData = StaticDataHandler.GetStaticData <MonsterStaticData>(EDataType.MONSTER, monsterID); if (staticData != null) { LoadPrefab(staticData.Prefab, null, null); } }
public void AddKilledMonster(Int32 p_key, Int32 p_val, Boolean p_fromLoad) { Int32 num = 0; if (!p_fromLoad) { if (m_allMonsters.ContainsKey(p_key)) { num = m_allMonsters[p_key]; } else { m_allMonsters.Add(p_key, num); } Int32 num2 = num + p_val; MonsterStaticData staticData = StaticDataHandler.GetStaticData <MonsterStaticData>(EDataType.MONSTER, p_key); String nameKey = staticData.NameKey; if (num == 0) { BestiaryEntryEventArgs p_eventArgs = new BestiaryEntryEventArgs(nameKey, BestiaryEntryEventArgs.EEntryState.ENTRY_NEW); LegacyLogic.Instance.EventManager.InvokeEvent(null, EEventType.BESTIARY_ENTRY_CHANGED, p_eventArgs); m_newEntries.Add(p_key); if (staticData.Grade == EMonsterGrade.CORE) { m_killedCoreMonsters++; } if (nameKey == "MONSTER_GIANT_SPIDER") { LegacyLogic.Instance.CharacterBarkHandler.RandomPartyMemberBark(EBarks.STORY_2); } } else if (num2 == staticData.BestiaryThresholds[0] || num2 == staticData.BestiaryThresholds[1] || num2 == staticData.BestiaryThresholds[2]) { BestiaryEntryEventArgs p_eventArgs2 = new BestiaryEntryEventArgs(nameKey, BestiaryEntryEventArgs.EEntryState.ENRTY_UPDATED); LegacyLogic.Instance.EventManager.InvokeEvent(null, EEventType.BESTIARY_ENTRY_CHANGED, p_eventArgs2); } m_allMonsters[p_key] = num2; m_killedMonsters[p_key] = num2; CheckForQuestProgress(); } else { m_allMonsters.Add(p_key, p_val); if (p_val > 0) { m_killedMonsters.Add(p_key, p_val); } } }
public Int32 GetKilledMonstersOfType(EMonsterType p_type) { Int32 num = 0; foreach (Int32 num2 in m_questMonsters.Keys) { if (m_questMonsters[num2] != 0) { MonsterStaticData staticData = StaticDataHandler.GetStaticData <MonsterStaticData>(EDataType.MONSTER, num2); if (staticData.Type == p_type) { num += m_questMonsters[num2]; } } } return(num); }
public LootHandler(Monster p_monster) { m_monster = p_monster; MonsterStaticData staticData = p_monster.StaticData; m_dropGoldChance = staticData.DropGoldChance; m_dropGoldAmount = staticData.DropGoldAmount; m_modelProbabilities = staticData.DropModelLevels; m_dropItemChance = staticData.DropItemChance; m_dropItemPrefixChance = staticData.DropItemPrefixChance; m_dropItemSuffixChance = staticData.DropItemSuffixChance; m_dropItemPrefixProbabilities = staticData.PrefixProbabilities; m_dropItemSuffixProbabilities = staticData.SuffixProbabilities; m_dropItemSpecificationList = staticData.DropItemSpecificationList; m_steadyLoot = staticData.SteadyLoot; m_XpReward = staticData.XpReward; m_tokenIDs = staticData.DropTokenID; }
public override String GetDescriptionForCaster(MonsterStaticData p_monster) { SetDescriptionValue(0, p_monster.MagicPower); return(Localization.Instance.GetText("MONSTER_SPELL_BATTLE_SPIRIT_INFO", m_descriptionValues)); }
public override String GetDescriptionForCaster(MonsterStaticData p_monster) { SetDescriptionValue(0, p_monster.SpellRanges); SetDescriptionValue(1, GetDamageAsString()); return(Localization.Instance.GetText("MONSTER_SPELL_POISON_SPIT_INFO", m_descriptionValues)); }
public override String GetDescriptionForCaster(MonsterStaticData p_monster) { SetDescriptionValue(0, p_monster.SpellRanges); return(Localization.Instance.GetText("MONSTER_SPELL_PETRIFACTION_INFO", m_descriptionValues)); }
public override String GetDescriptionForCaster(MonsterStaticData p_monster) { SetDescriptionValue(0, GetDamageAsString()); return(Localization.Instance.GetText("MONSTER_SPELL_MASS_HEAL_INFO", m_descriptionValues)); }
public override String GetDescriptionForCaster(MonsterStaticData p_monster) { SetDescriptionValue(0, p_monster.MagicPower * m_staticData.GetAdditionalValue(m_level)); SetDescriptionValue(1, m_staticData.GetAdditionalValue(m_level)); return(Localization.Instance.GetText("MONSTER_SPELL_REGROWTH_INFO", m_descriptionValues)); }
public void SetEntry(MonsterStaticData p_data, Int32 p_amountKilled) { m_stages = p_data.BestiaryThresholds; m_currentAmount = p_amountKilled; if (p_data.Grade == EMonsterGrade.CHAMPION || p_data.Grade == EMonsterGrade.BOSS) { m_currentAmount = p_data.BestiaryThresholds[2]; } m_progressBar.SetCurrentAmount(m_currentAmount, p_data.BestiaryThresholds[2]); Int32 num; if (LegacyLogic.Instance.WorldManager.Difficulty == EDifficulty.HARD) { switch (p_data.Grade) { case EMonsterGrade.CORE: num = (Int32)(p_data.MaxHealthpoints * ConfigManager.Instance.Game.MonsterHealthCoreFactor); break; case EMonsterGrade.ELITE: num = (Int32)(p_data.MaxHealthpoints * ConfigManager.Instance.Game.MonsterHealthEliteFactor); break; case EMonsterGrade.CHAMPION: num = (Int32)(p_data.MaxHealthpoints * ConfigManager.Instance.Game.MonsterHealthChampionFactor); break; default: num = p_data.MaxHealthpoints; break; } } else { num = p_data.MaxHealthpoints; } String p_text = String.Empty; if (p_data.MeleeAttackDamageMin == p_data.MeleeAttackDamageMax) { p_text = p_data.MeleeAttackDamageMin.ToString(); } else { p_text = p_data.MeleeAttackDamageMin + "-" + p_data.MeleeAttackDamageMax; } m_maxHp.UpdateLabel(num.ToString(), LocaManager.GetText("BESTIARY_STAT_ATTRIBUTE_HEALTH_TT")); m_meleeDmg.UpdateLabel(p_text, LocaManager.GetText("BESTIARY_STAT_ATTACK_DAMAGE_TT")); m_meleeStrikes.UpdateLabel(p_data.MeleeAttackStrikesAmount.ToString(), LocaManager.GetText("BESTIARY_STAT_STRIKES_TT")); m_critMelee.UpdateLabel(p_data.CriticalDamageMelee.ToString(), LocaManager.GetText("BESTIARY_STAT_ATTACK_CRIT_DAMAGE_TT", p_data.CriticalDamageMelee * 100f)); m_meleeAttackValue.UpdateLabel(p_data.MeleeAttackValue.ToString(), LocaManager.GetText("BESTIARY_STAT_ATTACK_VALUE_TT")); for (Int32 i = 0; i < m_spells.Count; i++) { m_spells[i].ShowEntry(true); if (p_data.Spells.Length > i) { MonsterSpellStaticData staticData = StaticDataHandler.GetStaticData <MonsterSpellStaticData>(EDataType.MONSTER_SPELLS, p_data.Spells[i].SpellID); MonsterSpell monsterSpell = SpellFactory.CreateMonsterSpell((EMonsterSpell)staticData.StaticID, staticData.EffectKey, p_data.Spells[i].SpellProbability); m_spells[i].ShowEntry(true); m_spells[i].UpdateEntry(staticData.Icon); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append(m_headLineColorHex); stringBuilder.Append(LocaManager.GetText(monsterSpell.NameKey)); stringBuilder.Append("[-]"); stringBuilder.Append(Environment.NewLine); stringBuilder.Append(m_textColorHex); stringBuilder.Append(monsterSpell.GetDescriptionForCaster(p_data)); stringBuilder.Append("[-]"); m_spells[i].SetTooltip(stringBuilder.ToString()); } else { m_spells[i].ShowEntry(false); } } if (p_data.AttackRange > 1 && p_data.Spells.Length == 0) { m_rangeDmg.gameObject.SetActive(true); m_rangeStrikes.gameObject.SetActive(true); m_rangeAttackValue.gameObject.SetActive(true); m_rangeAttackRange.gameObject.SetActive(true); m_critRange.gameObject.SetActive(true); m_critMagic.gameObject.SetActive(false); String p_text2 = String.Empty; if (p_data.RangedAttackDamageMin == p_data.RangedAttackDamageMax) { p_text2 = p_data.RangedAttackDamageMin.ToString(); } else { p_text2 = p_data.RangedAttackDamageMin + "-" + p_data.RangedAttackDamageMax; } m_rangeDmg.UpdateLabel(p_text2, LocaManager.GetText("BESTIARY_STAT_ATTACK_DAMAGE_TT", p_data.RangedAttackDamage.Value.ToString())); m_rangeStrikes.UpdateLabel(p_data.RangedAttackStrikesAmount.ToString(), LocaManager.GetText("BESTIARY_STAT_STRIKES_TT", p_data.RangedAttackStrikesAmount.ToString())); m_rangeAttackValue.UpdateLabel(p_data.RangedAttackValue.ToString(), LocaManager.GetText("BESTIARY_STAT_ATTACK_VALUE_TT", p_data.RangedAttackValue.ToString())); m_rangeAttackRange.UpdateLabel(p_data.AttackRange.ToString(), LocaManager.GetText("MONSTER_ATTACK_RANGE_TT", p_data.AttackRange.ToString())); m_critRange.UpdateLabel(p_data.CriticalDamageRanged.ToString(), LocaManager.GetText("BESTIARY_STAT_ATTACK_CRIT_DAMAGE_TT", p_data.CriticalDamageRanged * 100f)); m_labelRangedMagic.text = LocaManager.GetText("GUI_CHARACTER_STATS_RANGED"); for (Int32 j = 0; j < m_spells.Count; j++) { m_spells[j].ShowEntry(false); } } else if (p_data.Spells.Length > 0) { m_rangeDmg.gameObject.SetActive(false); m_rangeStrikes.gameObject.SetActive(false); m_rangeAttackValue.gameObject.SetActive(false); m_rangeAttackRange.gameObject.SetActive(false); m_critRange.gameObject.SetActive(false); m_critMagic.gameObject.SetActive(true); m_labelRangedMagic.text = LocaManager.GetText("GUI_CHARACTER_STATS_MAGIC"); } else { m_rangeDmg.gameObject.SetActive(true); m_rangeStrikes.gameObject.SetActive(true); m_rangeAttackValue.gameObject.SetActive(true); m_rangeAttackRange.gameObject.SetActive(true); m_critRange.gameObject.SetActive(true); m_critMagic.gameObject.SetActive(false); for (Int32 k = 0; k < m_spells.Count; k++) { m_spells[k].ShowEntry(false); } m_labelRangedMagic.text = LocaManager.GetText("GUI_CHARACTER_STATS_RANGED"); m_rangeDmg.UpdateLabel("-", LocaManager.GetText("BESTIARY_STAT_ATTACK_DAMAGE_TT", "-")); m_rangeStrikes.UpdateLabel("-", LocaManager.GetText("BESTIARY_STAT_STRIKES_TT", "-")); m_rangeAttackValue.UpdateLabel("-", LocaManager.GetText("BESTIARY_STAT_ATTACK_VALUE_TT", "-")); m_rangeAttackRange.UpdateLabel("-", LocaManager.GetText("MONSTER_ATTACK_RANGE_TT", "-")); m_critRange.UpdateLabel("-", LocaManager.GetText("BESTIARY_STAT_ATTACK_CRIT_DAMAGE_TT", "-")); } m_armor.UpdateLabel(p_data.ArmorValue.ToString(), LocaManager.GetText("BESTIARY_STAT_ARMOR_VALUE_TT", p_data.ArmorValue.ToString())); m_blockAttempts.UpdateLabel(p_data.GeneralBlockAttemptsPerTurn.ToString(), LocaManager.GetText("BESTIARY_STAT_BLOCK_ATTEMPTS_TT", p_data.GeneralBlockAttemptsPerTurn.ToString())); m_evade.UpdateLabel(p_data.EvadeValue.ToString(), LocaManager.GetText("BESTIARY_STAT_EVADE_VALUE_TT", p_data.EvadeValue.ToString())); if (p_data.CriticalDamageSpells > 0f) { m_critMagic.UpdateLabel(p_data.CriticalDamageSpells.ToString(), LocaManager.GetText("BESTIARY_STAT_MAGIC_CRIT_CHANCE_TT", p_data.CriticalDamageSpells * 100f)); } else { m_critMagic.UpdateLabel("-", LocaManager.GetText("BESTIARY_STAT_MAGIC_CRIT_CHANCE_TT", "-")); } NGUITools.SetActive(m_abilityFrame, true); if (p_data.Abilities.Length == 0) { NGUITools.SetActive(m_abilityFrame, false); } for (Int32 l = 0; l < m_specials.Count; l++) { if (p_data.Abilities.Length > l) { m_specials[l].ShowEntry(true); MonsterAbilityBase monsterAbilityBase = AbilityFactory.CreateMonsterAbility(p_data.Abilities[l].AbilityType, p_data.MagicPower); monsterAbilityBase.Level = p_data.Abilities[l].Level; m_specials[l].UpdateEntry(monsterAbilityBase.StaticData.Icon); StringBuilder stringBuilder2 = new StringBuilder(); stringBuilder2.Append(m_headLineColorHex); stringBuilder2.Append(LocaManager.GetText(monsterAbilityBase.StaticData.NameKey)); stringBuilder2.Append("[-]"); stringBuilder2.Append(Environment.NewLine); stringBuilder2.Append(m_textColorHex); stringBuilder2.Append(monsterAbilityBase.GetDescription()); stringBuilder2.Append("[-]"); m_specials[l].SetTooltip(stringBuilder2.ToString()); } else { m_specials[l].ShowEntry(false); } } m_resiPrimordial.UpdateLabel("0", LocaManager.GetText("BESTIARY_STAT_RESISTANCE_PRIMORDIAL_TT", 0, 0)); m_resiFire.UpdateLabel("0", LocaManager.GetText("BESTIARY_STAT_RESISTANCE_FIRE_TT", 0, 0)); m_resiWater.UpdateLabel("0", LocaManager.GetText("BESTIARY_STAT_RESISTANCE_WATER_TT", 0, 0)); m_resiEarth.UpdateLabel("0", LocaManager.GetText("BESTIARY_STAT_RESISTANCE_EARTH_TT", 0, 0)); m_resiAir.UpdateLabel("0", LocaManager.GetText("BESTIARY_STAT_RESISTANCE_AIR_TT", 0, 0)); m_resiLight.UpdateLabel("0", LocaManager.GetText("BESTIARY_STAT_RESISTANCE_LIGHT_TT", 0, 0)); m_resiDark.UpdateLabel("0", LocaManager.GetText("BESTIARY_STAT_RESISTANCE_DARK_TT", 0, 0)); foreach (Resistance resistance in p_data.MagicResistances) { switch (resistance.Type) { case EDamageType.AIR: m_resiAir.UpdateLabel(resistance.Value.ToString(), LocaManager.GetText("BESTIARY_STAT_RESISTANCE_AIR_TT", resistance.Value * (p_data.EvadeValue / 100), resistance.Value)); break; case EDamageType.EARTH: m_resiEarth.UpdateLabel(resistance.Value.ToString(), LocaManager.GetText("BESTIARY_STAT_RESISTANCE_EARTH_TT", resistance.Value * (p_data.EvadeValue / 100), resistance.Value)); break; case EDamageType.FIRE: m_resiFire.UpdateLabel(resistance.Value.ToString(), LocaManager.GetText("BESTIARY_STAT_RESISTANCE_FIRE_TT", resistance.Value * (p_data.EvadeValue / 100), resistance.Value)); break; case EDamageType.WATER: m_resiWater.UpdateLabel(resistance.Value.ToString(), LocaManager.GetText("BESTIARY_STAT_RESISTANCE_WATER_TT", resistance.Value * (p_data.EvadeValue / 100), resistance.Value)); break; case EDamageType.DARK: m_resiDark.UpdateLabel(resistance.Value.ToString(), LocaManager.GetText("BESTIARY_STAT_RESISTANCE_DARK_TT", resistance.Value * (p_data.EvadeValue / 100), resistance.Value)); break; case EDamageType.LIGHT: m_resiLight.UpdateLabel(resistance.Value.ToString(), LocaManager.GetText("BESTIARY_STAT_RESISTANCE_LIGHT_TT", resistance.Value * (p_data.EvadeValue / 100), resistance.Value)); break; case EDamageType.PRIMORDIAL: m_resiPrimordial.UpdateLabel(resistance.Value.ToString(), LocaManager.GetText("BESTIARY_STAT_RESISTANCE_PRIMORDIAL_TT", resistance.Value * (p_data.EvadeValue / 100), resistance.Value)); break; } } HideLockedEntries(); }
public override String GetDescriptionForCaster(MonsterStaticData p_monster) { return(Localization.Instance.GetText("MONSTER_SPELL_OVERWHELMING_ASSAULT_INFO", m_descriptionValues)); }
public Int32 InitList(EMonsterClass p_monsterClass) { m_monsterName.enabled = false; m_infoController.Hide(); CleanupPageableList(); Int32 num = 0; Int32 num2 = 0; Boolean p_showChampions = m_categoryTabs.CurrentTabIndex == m_categoryTabs.Tabs.Length - 1; Dictionary <Int32, Int32> monstersForCategory = m_bestiaryHandler.GetMonstersForCategory(p_monsterClass, p_showChampions); Dictionary <Int32, Int32> dictionary = new Dictionary <Int32, Int32>(); foreach (Int32 num3 in monstersForCategory.Keys) { if (StaticDataHandler.GetStaticData <MonsterStaticData>(EDataType.MONSTER, num3) != null) { Int32 num4 = 0; if (monstersForCategory.TryGetValue(num3, out num4)) { if (num4 > 0) { num++; } if (num4 != 0 || m_checkBox.isChecked) { dictionary.Add(num3, monstersForCategory[num3]); } } } } Int32[] array = dictionary.Keys.ToArray <Int32>(); for (Int32 i = m_pageableList.CurrentIndex; i < m_pageableList.EndIndex; i++) { if (i < dictionary.Count) { Int32 num5 = array[i]; BookEntry entry = m_pageableList.GetEntry(); MonsterStaticData staticData = StaticDataHandler.GetStaticData <MonsterStaticData>(EDataType.MONSTER, num5); if (staticData == null) { entry.OnBookSelected += OnMonsterSelected; entry.Init(num5, "[FF0000]MISSING DATA[-]"); entry.IsNewEntry = false; entry.IsActive = false; num2++; } Int32 num6 = dictionary[num5]; if (!m_checkBox.isChecked) { if (num6 > 0) { entry.OnBookSelected += OnMonsterSelected; entry.Init(num5, LocaManager.GetText(staticData.NameKey)); entry.IsNewEntry = m_bestiaryHandler.NewEntries.Contains(num5); num2++; } } else { entry.OnBookSelected += OnMonsterSelected; if (num6 > 0) { entry.Init(num5, LocaManager.GetText(staticData.NameKey)); entry.IsNewEntry = m_bestiaryHandler.NewEntries.Contains(num5); num2++; } else { entry.Init(num5, "?????"); entry.IsNewEntry = false; entry.IsActive = false; num2++; } } } else { BookEntry entry2 = m_pageableList.GetEntry(); entry2.Init(0, String.Empty); entry2.IsNewEntry = false; } } BookEntry bookEntry = m_pageableList.TrySelectActiveEntryOnPage(); if (bookEntry != null) { OnMonsterSelected(bookEntry, EventArgs.Empty); } return(dictionary.Count); }
private void OnMonsterSelected(Object p_sender, EventArgs p_args) { BookEntry bookEntry = p_sender as BookEntry; if (bookEntry == null) { return; } m_monsterName.enabled = true; Int32 entryID = bookEntry.EntryID; foreach (BookEntry bookEntry2 in m_pageableList.EntryList) { bookEntry2.SetSelected(entryID); } Int32 num = 0; if (m_bestiaryHandler.AllMonsters.TryGetValue(entryID, out num)) { if (num > 0) { bookEntry.IsNewEntry = false; m_bestiaryHandler.RemoveFromNewEntries(entryID); MonsterStaticData staticData = StaticDataHandler.GetStaticData <MonsterStaticData>(EDataType.MONSTER, entryID); if (staticData.Grade == EMonsterGrade.BOSS || staticData.Grade == EMonsterGrade.CHAMPION) { NGUITools.SetActiveSelf(m_championInfo, true); NGUITools.SetActiveSelf(m_infoController.gameObject, false); m_infoController.ShowProgressBar(false); m_monsterName.text = LocaManager.GetText(staticData.NameKey); col.center = m_boxColliderChampionPos; col.size = m_boxColliderChampionSize; } else { NGUITools.SetActiveSelf(m_championInfo, false); NGUITools.SetActiveSelf(m_infoController.gameObject, true); m_infoController.Show(); m_monsterName.text = LocaManager.GetText(staticData.NameKey); m_infoController.SetEntry(staticData, m_bestiaryHandler.AllMonsters[staticData.StaticID]); m_infoController.ShowProgressBar(true); col.center = m_boxColliderNormalPos; col.size = m_boxColliderNormalSize; } if ((staticData.StaticID >= 35 && staticData.StaticID <= 37) || staticData.Type == EMonsterType.MINOTAUR || staticData.Type == EMonsterType.MINOTAUR_GUARD) { m_fakeScene.DisplayMonsterPrefab(staticData.Prefab, ESize.MEDIUM); } else { m_fakeScene.DisplayMonsterPrefab(staticData.Prefab, staticData.Size); } } else { m_infoController.Hide(); m_monsterName.text = "?????"; } } else { m_infoController.Hide(); m_monsterName.text = "?????"; } }
public override String GetDescriptionForCaster(MonsterStaticData p_monster) { SetDescriptionValue(0, GetDamageAsString()); SetDescriptionValue(1, m_staticData.GetAdditionalValue(m_level) * 100f); return(Localization.Instance.GetText(m_staticData.NameKey + "_INFO", m_descriptionValues)); }