Exemple #1
0
        public override void MonsterGetsAggravated(IMonster monster, bool printFinalNewLine = true)
        {
            Debug.Assert(monster != null);

            var room = monster.GetInRoom();

            Debug.Assert(room != null);

            // Fido wakes up

            if (monster.Uid == 11 && gGameState.FidoSleepCounter > 0)
            {
                gOut.Print("{0} wakes up!", room.IsLit() ? "Fido" : "Something");

                gGameState.FidoSleepCounter = 0;

                monster.StateDesc = "";

                monster.Reaction = Friendliness.Enemy;
            }
            else
            {
                base.MonsterGetsAggravated(monster, printFinalNewLine);
            }
        }
Exemple #2
0
        public override void MonsterDies(IMonster OfMonster, IMonster DfMonster)
        {
            Debug.Assert(DfMonster != null);

            var room = DfMonster.GetInRoom();

            Debug.Assert(room != null);

            base.MonsterDies(OfMonster, DfMonster);

            var goldCoinsArtifact = gADB[3];

            Debug.Assert(goldCoinsArtifact != null);

            var silverCoinsArtifact = gADB[4];

            Debug.Assert(silverCoinsArtifact != null);

            // Gold miner

            if (DfMonster.Uid == 3 && goldCoinsArtifact.IsInLimbo())
            {
                gOut.Print("{0}The gold miner drops his only fortune to the ground.", Environment.NewLine);

                goldCoinsArtifact.SetInRoom(room);
            }

            // Falconer

            else if (DfMonster.Uid == 4 && silverCoinsArtifact.IsInLimbo())
            {
                gOut.Print("{0}The falconer drops some silver coins as he dies.", Environment.NewLine);

                silverCoinsArtifact.SetInRoom(room);
            }

            // Fido

            else if (DfMonster.Uid == 11)
            {
                gGameState.FidoSleepCounter = 0;

                DfMonster.StateDesc = "";

                DfMonster.Reaction = Friendliness.Enemy;
            }
        }
Exemple #3
0
        public override void MonsterDies(IMonster OfMonster, IMonster DfMonster)
        {
            Debug.Assert(DfMonster != null);

            var room = DfMonster.GetInRoom() as Framework.IRoom;

            Debug.Assert(room != null);

            // Wandering monsters

            if (DfMonster.Uid >= 1 && DfMonster.Uid <= 17)
            {
                if (room.IsLit())
                {
                    gOut.Print("{0}As {1} dies, its body {2}.", Environment.NewLine, DfMonster.GetTheName(), room.IsCryptRoom() ? "is enveloped in a cloud of sinister black smoke" : "dissolves and is absorbed into the ground");
                }
            }

            // Possessed cutlass

            else if (DfMonster.Uid == 31)
            {
                var cutlassArtifact = gADB[34];

                Debug.Assert(cutlassArtifact != null);

                cutlassArtifact.Type = ArtifactType.Weapon;

                cutlassArtifact.Field1 = 25;

                cutlassArtifact.Field2 = 5;

                cutlassArtifact.Field3 = 2;

                cutlassArtifact.Field4 = 8;

                cutlassArtifact.Field5 = 1;
            }

            // Giant crayfish

            else if (DfMonster.Uid == 37)
            {
                gGameState.GiantCrayfishKilled = true;
            }

            // Water weird

            else if (DfMonster.Uid == 38)
            {
                gGameState.WaterWeirdKilled = true;
            }

            // Efreeti

            else if (DfMonster.Uid == 50)
            {
                gGameState.EfreetiKilled = true;
            }

            gGameState.ParalyzedTargets.Remove(DfMonster.Uid);

            gGameState.ClumsyTargets.Remove(DfMonster.Uid);

            base.MonsterDies(OfMonster, DfMonster);
        }