Example #1
0
            public static void Spawn(PrisonLevel level, Room room)
            {
                if (Spawned || Dungeon.Depth <= 6 || Random.Int(10 - Dungeon.Depth) != 0)
                {
                    return;
                }

                var npc = new Wandmaker();

                do
                {
                    npc.pos = room.Random();
                }while (level.map[npc.pos] == Terrain.ENTRANCE || level.map[npc.pos] == Terrain.SIGN);

                level.mobs.Add(npc);
                OccupyCell(npc);

                Spawned     = true;
                Alternative = Random.Int(2) == 0;

                IsGiven = false;

                switch (Random.Int(5))
                {
                case 0:
                    Wand1 = new WandOfAvalanche();
                    break;

                case 1:
                    Wand1 = new WandOfDisintegration();
                    break;

                case 2:
                    Wand1 = new WandOfFirebolt();
                    break;

                case 3:
                    Wand1 = new WandOfLightning();
                    break;

                case 4:
                    Wand1 = new WandOfPoison();
                    break;
                }
                Wand1.Random().Upgrade();

                switch (Random.Int(5))
                {
                case 0:
                    Wand2 = new WandOfAmok();
                    break;

                case 1:
                    Wand2 = new WandOfBlink();
                    break;

                case 2:
                    Wand2 = new WandOfRegrowth();
                    break;

                case 3:
                    Wand2 = new WandOfSlowness();
                    break;

                case 4:
                    Wand2 = new WandOfTelekinesis();
                    break;
                }
                Wand2.Random().Upgrade();
            }