public override void MonsterDies(IMonster OfMonster, IMonster DfMonster) { Debug.Assert(DfMonster != null && !DfMonster.IsCharacterMonster()); if (DfMonster.Uid == 8) { var trollsfireArtifact = gADB[10]; Debug.Assert(trollsfireArtifact != null); var printEffect = trollsfireArtifact.IsCarriedByMonster(DfMonster) || trollsfireArtifact.IsWornByMonster(DfMonster); base.MonsterDies(OfMonster, DfMonster); if (printEffect) { var effect = gEDB[3]; Debug.Assert(effect != null); gOut.Write("{0}{0}{1}", Environment.NewLine, effect.Desc); } } else { base.MonsterDies(OfMonster, DfMonster); } }
public override void MonsterDies(IMonster OfMonster, IMonster DfMonster) { Debug.Assert(DfMonster != null && !DfMonster.IsCharacterMonster()); // Repetitive Spooks' counter reset if (DfMonster.Uid == 9) { var resetGroupCount = DfMonster.CurrGroupCount == 1; base.MonsterDies(OfMonster, DfMonster); if (resetGroupCount) { DfMonster.GroupCount = 0; DfMonster.InitGroupCount = 0; DfMonster.CurrGroupCount = 0; } } else { base.MonsterDies(OfMonster, DfMonster); } }
public override void ResetMonsterStats(IMonster monster) { Debug.Assert(monster != null && monster.IsCharacterMonster()); base.ResetMonsterStats(monster); // TODO: ensure monster not poisoned }
public override void ResetMonsterStats(IMonster monster) { Debug.Assert(monster != null && monster.IsCharacterMonster()); monster.Agility = gCharacter.GetStats(Stat.Agility); gGameState.Speed = 0; }
public override void ResetMonsterStats(IMonster monster) { Debug.Assert(monster != null && monster.IsCharacterMonster()); base.ResetMonsterStats(monster); // Ensure monster not paralyzed or clumsy gGameState.ParalyzedTargets.Remove(monster.Uid); gGameState.ClumsyTargets.Remove(monster.Uid); }
public override void CheckNumberOfExits(IRoom room, IMonster monster, bool fleeing, ref long numExits) { Debug.Assert(room != null); base.CheckNumberOfExits(room, monster, fleeing, ref numExits); // Exclude various "invisible" exits if (room.Uid == 8 || (monster.IsCharacterMonster() && (room.Uid == 41 || room.Uid == 43 || room.Uid == 44 || room.Uid == 61))) { numExits--; } }
public override void ResetMonsterStats(IMonster monster) { Debug.Assert(monster != null && monster.IsCharacterMonster()); base.ResetMonsterStats(monster); // Eighty-six the weird magic dagger-related Hardiness increase upon exit (omitting the in-game death check for simplicity) if (gGameState.MagicDaggerCounter > 0) { monster.Hardiness -= 5; gGameState.MagicDaggerCounter = -1; } }
public virtual bool IsEnabled(IMonster monster) { Debug.Assert(monster != null); return(monster.IsCharacterMonster() ? Command.IsPlayerEnabled : Command.IsMonsterEnabled); }