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); } }
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; } }
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); }