public override void ProcessArtifact(IArtifact artifact, IArtifactCategory ac, ref bool nlFlag) { // Get the handle if (artifact.Uid == 23) { var SwampMonster = gMDB[6]; // create Swamp monster variable var SilverSword = gADB[25]; // create SilverSword variable if (gLMKKP1.SwampMonsterKilled == 0 && SwampMonster.IsInLimbo()) { var effect = gEDB[20]; SwampMonster.SetInRoomUid(8); ProcessAction(() => gOut.Print("{0}", effect.Desc), ref nlFlag); } else if (SwampMonster.IsInRoomUid(8)) { var effect = gEDB[21]; ProcessAction(() => gOut.Print("{0}", effect.Desc), ref nlFlag); } else if (gLMKKP1.SwampMonsterKilled == 1) { var effect = gEDB[22]; ProcessAction(() => gOut.Print("{0}", effect.Desc), ref nlFlag); SilverSword.SetCarriedByCharacter(); // TODO: put silver sword in Room if its too heavy to be carried artifact.SetInLimbo(); } else { base.ProcessArtifact(artifact, ac, ref nlFlag); } } else { base.ProcessArtifact(artifact, ac, ref nlFlag); } }