Exemple #1
0
        void NPCSetUp()
        {
            GearNPC();
            int p = 0;

            for (int k = baseLevel; k < level;)
            {
                k += p += 5;
                AddStats();
            }
            //for (int i = 0; i < abilities.Count; i++)
            //    abilities[i] = Ability.Load(abilities[i].name);
            for (int i = 0; i < perks.Count; i++)
            {
                if (perks[i].name == "-Random")
                {
                    perks[i] = PerkLoad.RandomPerk(perks[i].tier, "Character");
                }
                else
                {
                    perks[i] = PerkLoad.Load(perks[i].name);
                }
            }
            switch (race)
            {
            case "Human":
                perks.Add(PerkLoad.Load("Human Adaptation"));
                break;

            case "Tsiun":
                perks.Add(PerkLoad.Load("Tsiun Trickery"));
                break;

            case "Uskavian":
                perks.Add(PerkLoad.Load("Uskavian Learning"));
                break;

            case "Miganan":
                perks.Add(PerkLoad.Load("Migana Skin"));
                break;

            case "Ireskian":
                perks.Add(PerkLoad.Load("Ireskian Talent"));
                break;
            }
            health  = Health();
            stamina = Stamina();
            if (level >= 20)
            {
                GetCombatRole();
            }
        }
Exemple #2
0
        //Evolves
        public void Evolve(int intensity = 1, bool inventory = true, bool perkGain = true, string skaviCat = null)
        {
            for (int i = 0; i < intensity; i++)
            {
                AddStats();
            }
            ScaleNPC(intensity / 100.0);
            if (inventory)
            {
                string[] icollection = MobDrops(Program.rng.Next(intensity, 5 + intensity));
                if (icollection != null)
                {
                    foreach (string i in icollection)
                    {
                        if (i != null)
                        {
                            AddItemToInv(SpawnItem(i), 1, false);
                        }
                    }
                }
                int dropType = -1;
                int x        = Program.rng.Next(101) - intensity;
                if (x <= 10)
                {
                    AddItemToInv(SkaviDrops.FromArea(skaviCat));
                }
                else
                {
                    if (x <= 30)
                    {
                        dropType = 5;
                    }
                    AddItemToInv(Item.RandomItem(level, dropType), 1);
                }

                if (Program.Chance(20))
                {
                    AddItemToInv(Item.CreateRepairKit(1), Program.rng.Next(1, 6));
                }
            }
            if (perkGain && Program.rng.Next(101) <= 15)
            {
                perks.Add(PerkLoad.RandomPerk(0, "Character"));
            }
        }