public MonsterSpell(EMonsterSpell p_type, String p_effectAnimationClip, Int32 p_castProbability) { m_staticData = StaticDataHandler.GetStaticData <MonsterSpellStaticData>(EDataType.MONSTER_SPELLS, (Int32)p_type); EffectAnimationClip = p_effectAnimationClip; m_monsterMagicPower = 1f; m_criticalDamage = 1f; m_castProbability = p_castProbability; }
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(); }