Constant Story "NPC Sexuality"; Constant Headline "^An exercise in sexual preference changes.^^"; Replace ScoreSub; Release 1; Include "Parser"; Include "VerbLib"; Include "Grammar"; [Initialise; Banner(); location=PlainRm; lookmode =2; print "^Changing Sexes test.^";return 2;]; Object PlainRm "Barren Room" with description "A plain barren room with NO exits.", cant_go "You're stuck here.", out_to "You're stuck here.", has light ; Object -> MType "Male" with name 'male', before [; sit,stand,lie,throw,throwat: "no routine here.";], has animate static scenery ; Object -> FType "Female" with name 'female' has animate static scenery ; Object -> MaleFig "Male NPC" with name 'npc' 'male' 'man' 'non' 'player' 'character', description "This is a nameless male character who can be changed to a female by typing the command ~Transform~ or ~Change~", describe [;"^There is a male NPC here.";], before [; sit,stand,throw,throwat,lie: "nothing to do here."; talk: "The man has nothing to say to you."; Neuter: remove self; move NeutFig to location; "The man has been neutered."; change,changeto: remove self; move FemFig to location; "The NPC has now been changed into a woman.";], has animate ; Object FemFig "Female NPC" with name 'npc' 'female' 'woman' 'non' 'player' 'character', description "This is a nameless female character who was originally a male.", describe [; "^There is a female NPC here.";], before [; talk: "The woman has nothing to say to you."; neuter: remove self; move NeutFig to location; "The woman has been neutered."; change,changeto: remove self; move MaleFig to location; "The NPC has now been changed back into a man.";], has animate female ; Object NeutFig "Neutered NPC" with name 'neutered' 'neuter' 'npc' 'non' 'player' 'character', description "This is a nameless neutered character who was originally a male or a female.", describe [; "^There is a neutered NPC here.";], before [; talk: "The neutered NPC has nothing to say to you."; ChangeTo: remove self; if (second==MType) {move MaleFig to location; "The Neutered character has been transformed back into a male.";} if (second==FType) {move FemFig to location; "The Neutered character has been transformed back into a female.";}], has animate neuter ; [TalkSub; "TalkSub here.";]; [ChangeSub; if (noun has neuter) "Phrase that to CHANGE NEUTER to MALE (or) FEMALE.";]; [ChangeToSub; if (second==NeutFig) "Phrase that to change Neuter to MALE or FEMALE."; if (second ==0) "What sex do you want to change the NPC to?";]; [NeuterSub; "The figure is already neutered.";]; verb 'change' 'transform' * creature -> Change * creature 'to' noun -> ChangeTo; verb 'talk' * 'to' creature -> Talk; verb 'neuter' * creature -> Neuter; [ScoreSub; "NO SCORE IN GAME.";]; [ThrowSub; "You can't throw that.";]; [SitSub; "You can't sit on that.";]; [StandSub; "You can't stand on that.";]; [LieSub; "You can't lie on that.";];