예제 #1
0
        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);
            }
        }