From e7f39357d6d7b77ce87f64717b4edbc6f4223214 Mon Sep 17 00:00:00 2001 From: Kernog Date: Wed, 10 Oct 2018 20:55:23 +0200 Subject: [PATCH] New functions * Clothes related descriptors (chestDesc, crotchDesc, feetDesc) * Definitions for a person, to check if they are barefoot, barechest (no top cloth), barecrotch (no bottom cloth) or naked (none of the previous) * New impregchance function so that player does not have to write "setmonster" line --- Core Mechanics/Basic Functions.i7x | 62 ++++++++++++++++++++++++++++++ Core Mechanics/Pregnancy.i7x | 4 ++ Inform/story.ni | 48 +++++++++++++++++++++++ 3 files changed, 114 insertions(+) diff --git a/Core Mechanics/Basic Functions.i7x b/Core Mechanics/Basic Functions.i7x index 07964b4a78..0168d6f298 100644 --- a/Core Mechanics/Basic Functions.i7x +++ b/Core Mechanics/Basic Functions.i7x @@ -375,6 +375,29 @@ to say SelfDressCrotch: else if WaistItem is not journal and CrotchItem is not journal: say "collect your [CrotchItem] and [Waistitem] to put them back on"; +[ +Adds the uppermost layer of bottom clothes, that the player wears, in the text +Example use: +say " You feel the cold wind blow on your [crotchDesc]"; +] +to say crotchDesc: + let WaistItem be a grab object; + now WaistItem is journal; + let CrotchItem be a grab object; + now CrotchItem is journal; + repeat with z running through equipped equipment: + if slot of z is "waist": + now WaistItem is z; + repeat with z running through equipped equipment: + if slot of z is "crotch": + now CrotchItem is z; + if WaistItem is journal and CrotchItem is journal: [already naked] + say "bare crotch"; + else if WaistItem is journal and CrotchItem is not journal: + say "[CrotchItem]"; + else if WaistItem is not journal: + say "[WaistItem]"; + [ understand "zTStripChest" as SCAction. @@ -474,6 +497,45 @@ to say SelfDressChest: else if ChestItem is not journal and BodyItem is not journal: say "collect your [ChestItem] and [BodyItem] to put them back on"; +[ +Adds the uppermost layer of top clothes, that the player wears, in the text +Example use: +say " The water splashes on your [chestDesc]"; +] +to say chestDesc: + let ChestItem be a grab object; + now ChestItem is journal; + let BodyItem be a grab object; + now BodyItem is journal; + repeat with z running through equipped equipment: + if slot of z is "chest": + now ChestItem is z; + repeat with z running through equipped equipment: + if slot of z is "Body": + now BodyItem is z; + if ChestItem is journal and BodyItem is journal: [already naked] + say "bare chest"; + else if ChestItem is not journal and BodyItem is journal: + say "[ChestItem]"; + else: + say "[BodyItem]"; + +[ +Adds footwear name in the text +Example use: +say " You walk on the dirty floor with your [feetDesc]"; +] +to say feetDesc: + let FeetItem be a grab object; + now FeetItem is journal; + repeat with z running through equipped equipment: + if slot of z is "feet": + now FeetItem is z; + if FeetItem is journal: [already naked] + say "bare feet"; + else: + say "[FeetItem]"; + To MultiInfect (x - text) repeats (repeatCount - number): if scenario is "Researcher" and researchbypass is 0: vialchance x; diff --git a/Core Mechanics/Pregnancy.i7x b/Core Mechanics/Pregnancy.i7x index 1f4832772e..7ca280d656 100644 --- a/Core Mechanics/Pregnancy.i7x +++ b/Core Mechanics/Pregnancy.i7x @@ -491,6 +491,10 @@ to impregchance: [General Pregnancy Routine] else if player is mpreg_able: say "[mimpregchance]"; +To impregchance with (x - text): + setmonster x; + impregchance; + to say fimpregchance: [Female-particular Pregnancy Roll] fimpregchance; diff --git a/Inform/story.ni b/Inform/story.ni index dbc13ffeed..dbecba40e7 100644 --- a/Inform/story.ni +++ b/Inform/story.ni @@ -558,6 +558,54 @@ Definition: A person (called x) is CumLoadInflatesPlayer: [yes = inflation; can if cock width of x >= 32, yes; no; +Definition: A person (called x) is barefoot: + let FeetItem be a grab object; + now FeetItem is journal; + repeat with z running through equipped equipment: + if slot of z is "feet": + now FeetItem is z; + if FeetItem is journal: [already naked] + yes; + else: + no; + +Definition: A person (called x) is barecrotch: + let WaistItem be a grab object; + now WaistItem is journal; + let CrotchItem be a grab object; + now CrotchItem is journal; + repeat with z running through equipped equipment: + if slot of z is "waist": + now WaistItem is z; + repeat with z running through equipped equipment: + if slot of z is "crotch": + now CrotchItem is z; + if WaistItem is journal and CrotchItem is journal: [already naked] + yes; + else: + no; + +Definition: A person (called x) is barechest: + let ChestItem be a grab object; + now ChestItem is journal; + let BodyItem be a grab object; + now BodyItem is journal; + repeat with z running through equipped equipment: + if slot of z is "chest": + now ChestItem is z; + repeat with z running through equipped equipment: + if slot of z is "Body": + now BodyItem is z; + if ChestItem is journal and BodyItem is journal: [already naked] + yes; + else: + no; + +Definition: A person (called x) is naked: + if x is barecrotch and x is barechest and x is barefoot: + yes; + else: + no; A thing can be rooted in place. A thing is usually not rooted in place. A thing can be restful. A thing is usually not restful.