public virtual void ProcessArtifact(IArtifact artifact) { Debug.Assert(artifact != null); artifact.SetInRoom(gActorRoom); if (gActorMonster.Weapon == artifact.Uid) { Debug.Assert(artifact.GeneralWeapon != null); var rc = artifact.RemoveStateDesc(artifact.GetReadyWeaponDesc()); Debug.Assert(gEngine.IsSuccess(rc)); gActorMonster.Weapon = -1; } PrintDropped(artifact); }