public int EnchantCost(int grade) { EquipStat stat = Stats.Find(e => e.Enchant == grade); if (stat == null) { throw new System.Exception(string.Format("can't find enchant cost info : grade {0}", grade)); } return(stat.EnchantCost); }
public StatInfo AddStats(eEquipType type, eAttackType attack_type, int equip_grade, int enchant, StatInfo stat_info) { EquipStat stat = null; switch (type) { case eEquipType.weapon: stat = StatInfo.Weapons.Find(e => e.Grade == equip_grade && e.Enchant == enchant); if (stat == null) { throw new System.Exception(string.Format("Can't Find Weapon Stat Info : grade({0}), enchant({1})", equip_grade, enchant)); } stat_info.AddValue(eStatType.PhysicAttack, stat.Value); stat_info.AddValue(eStatType.MagicAttack, stat.Value); stat_info.AddValue(eStatType.Heal, stat.Value); break; case eEquipType.armor: stat = StatInfo.Armors.Find(e => e.Grade == equip_grade && e.Enchant == enchant); if (stat == null) { throw new System.Exception(string.Format("Can't Find Armor Stat Info : grade({0}), enchant({1})", equip_grade, enchant)); } switch (attack_type) { case eAttackType.physic: stat_info.AddValue(eStatType.PhysicDefense, stat.Value); stat_info.AddValue(eStatType.MagicDefense, (int)(stat.Value * stat.DefenseRate)); break; case eAttackType.magic: stat_info.AddValue(eStatType.MagicDefense, stat.Value); stat_info.AddValue(eStatType.PhysicDefense, (int)(stat.Value * stat.DefenseRate)); break; case eAttackType.heal: stat_info.AddValue(eStatType.PhysicDefense, (int)(stat.Value * stat.DefenseRate)); stat_info.AddValue(eStatType.MagicDefense, (int)(stat.Value * stat.DefenseRate)); break; } break; } return(stat_info); }