Esempio n. 1
0
        private Monster CreateMonsterCore(string baseType, int level, Point p)
        {
            var monsterInstance = m_monsterInstances[baseType].Find(x => x.Second == level);
            if (monsterInstance == null)
                return null;

            string monsterName = monsterInstance.First;

            string AIType = m_monsterStats[baseType]["AIType"];
            int baseHP = int.Parse(m_monsterStats[baseType]["BaseHP"], CultureInfo.InvariantCulture);
            int hpPerLevel = int.Parse(m_monsterStats[baseType]["HPPerLevel"], CultureInfo.InvariantCulture);
            int maxHP = baseHP + (level * hpPerLevel);
            bool intelligent = bool.Parse(m_monsterStats[baseType]["Intelligent"]);
            int vision = int.Parse(m_monsterStats[baseType]["BaseVision"], CultureInfo.InvariantCulture);
            string baseDamageString = m_monsterStats[baseType]["BaseDamage"];
            DiceRoll damagePerLevel = new DiceRoll(m_monsterStats[baseType]["DamagePerLevel"]);
            DiceRoll damage = new DiceRoll(baseDamageString);
            for (int i = 0; i < level; ++i)
                damage.Add(damagePerLevel);
            int evade = int.Parse(m_monsterStats[baseType]["BaseEvade"], CultureInfo.InvariantCulture);
            double ctIncreaseModifer = double.Parse(m_monsterStats[baseType]["BaseCTIncrease"], CultureInfo.InvariantCulture);
            double ctMoveCost = double.Parse(m_monsterStats[baseType]["BaseCTMoveCost"], CultureInfo.InvariantCulture);
            double ctActCost = double.Parse(m_monsterStats[baseType]["BaseCTActCost"], CultureInfo.InvariantCulture);
            double ctAttackCost = double.Parse(m_monsterStats[baseType]["BaseCTAttackCost"], CultureInfo.InvariantCulture);
            return CreateMonsterCore(baseType, AIType, monsterName, level, p, maxHP, intelligent, vision, damage, evade, ctIncreaseModifer, ctMoveCost, ctActCost, ctAttackCost);
        }