diff --git a/devTools/grayscaler/index.js b/devTools/grayscaler/index.js index b3f7fc9729b0abe11fea034db9cebac31222b600..8bfd2dac5de329c1c19a4faff90e22fcb8371954 100644 --- a/devTools/grayscaler/index.js +++ b/devTools/grayscaler/index.js @@ -212,7 +212,7 @@ function processSlot(setupfile,imgdir,varname,hasIntegrity) { } function convertAllClothes() { - let slots = ["hands", "face", "feet", "genitals", "hands", "head", "legs", "lower", "neck", "over_head", "over_lower", "over_upper", "upper"]; + let slots = ["hands", "face", "feet", "genitals", "hands", "head", "legs", "lower", "neck", "over_head", "over_lower", "over_upper", "upper", "handheld"]; for (let slot of slots) { processSlot(`game/base-clothing/clothing-${slot}.twee`, `img/clothes/${slot}/`, `setup.clothes.${slot}`, true); } diff --git a/game/01-config/start.twee b/game/01-config/start.twee index a388ee147ac20be2805d7d3f387838f41c3a7c26..c277cc8ce487d6e885c550b2d9f86cdd335dca21 100644 --- a/game/01-config/start.twee +++ b/game/01-config/start.twee @@ -46,11 +46,11 @@ If you want to avoid trouble, dress modestly and stick to safe, well-lit areas. <br><br> <<if Time.season is "winter">> - The school year starts on the first Monday of January at <<ampm 9 0>>. The bus service is the easiest way to get around town. Don't forget your uniform! + The school year starts on the first Monday of January at <<ampm 9 0>>. The bus service is the easiest way to get around town. Don't forget your uniform and backpack! <<elseif Time.season is "spring" or Time.season is "summer">> - School starts tomorrow at <<ampm 9 0>>. The bus service is the easiest way to get around town. Don't forget your uniform! + School starts tomorrow at <<ampm 9 0>>. The bus service is the easiest way to get around town. Don't forget your uniform and backpack! <<else>> - The new school year starts tomorrow at <<ampm 9 00>>. The bus service is the easiest way to get around town. Don't forget your uniform! + The new school year starts tomorrow at <<ampm 9 00>>. The bus service is the easiest way to get around town. Don't forget your uniform and backpack! <</if>> <br><br> diff --git a/game/01-config/sugarcubeConfig.js b/game/01-config/sugarcubeConfig.js index b1af04d269eb505dc688f73fdd7e90b1f9900abf..3657825ecd9bdad726aaa4f2d4564cd8f17bbd48 100644 --- a/game/01-config/sugarcubeConfig.js +++ b/game/01-config/sugarcubeConfig.js @@ -212,6 +212,13 @@ Config.navigation.override = function (dest) { case "Forest Shop Feet": return "Forest Shop"; + case "Cafe Fruit Salad": + case "Cafe Autumn Ale": + case "Cafe Summer Ale": + case "Cafe Spring Ale": + case "Cafe Winter Ale": + return "Cafe Eat"; + case "Over Outfit Shop": case "Outfit Shop": case "Top Shop": diff --git a/game/03-JavaScript/base-clothing.js b/game/03-JavaScript/base-clothing.js index 908a05ec3f22be934eddcdab9f47cd030927f55c..d7ac1223d875718b13ccade747a940cb03c8933b 100644 --- a/game/03-JavaScript/base-clothing.js +++ b/game/03-JavaScript/base-clothing.js @@ -333,7 +333,7 @@ function convertNormalToOver() { window.convertNormalToOver = convertNormalToOver; function getVisibleClothesList() { - const visibleClothes = [V.worn.over_upper, V.worn.over_lower, V.worn.over_head, V.worn.face, V.worn.neck, V.worn.hands, V.worn.legs, V.worn.feet]; + const visibleClothes = [V.worn.over_upper, V.worn.over_lower, V.worn.over_head, V.worn.face, V.worn.neck, V.worn.hands, V.worn.handheld, V.worn.legs, V.worn.feet]; // over_head doesn't have 'exposed' parameter, but maybe it will some day (in which case remove check for 'naked') if (V.worn.over_head.name === "naked" || V.worn.over_head.exposed >= 2) visibleClothes.push(V.worn.head); if (V.worn.over_upper.exposed >= 2 || V.overupperwetstage >= 3) visibleClothes.push(V.worn.upper); diff --git a/game/03-JavaScript/clothing-shop-v2.js b/game/03-JavaScript/clothing-shop-v2.js index c143e388762d047ceb01d608c9b568f36ba8bfd8..9c3fa35d00fb1edb2a7b328e345fd8a76c32555a 100644 --- a/game/03-JavaScript/clothing-shop-v2.js +++ b/game/03-JavaScript/clothing-shop-v2.js @@ -327,29 +327,29 @@ function applyClothingShopFilters(items) { and we only really need the slot so that we can give it to the function that gets the properties of the item, but the function uses findIndex with an arrow function for the lookup, so we might as well go through the "all" slot to find the item rather than find the specific array (which does narrow down the search but when you could implement this in O(1) but you're using findIndex - the milliseconds are evidently not a priority) - + so really we don't even need the "slot" property at all, this all needs a refactor - - + + Here's how I would refactor it: 1) we need to have a map, mapping the item's ID (or ID + modder name, I think both are only unique together?) to the item's setup object 2) have an array of item IDs (just the strings) for each slot (or a set - doesn't matter, lookup is unnecessary if we implement point 3) If we need to find all items in a specific slot - we simply iterate the Set/array. Lookup of the setup object is O(1), so it's just as fast as it is now. 3) item instance objects would contain the ID of the item and all the dynamic information (so just like it is currently) - 4) (optional) I'd personally remove any and all dynamic properties from the setup object (stuff like integrity), + 4) (optional) I'd personally remove any and all dynamic properties from the setup object (stuff like integrity), and get rid of all static/const properties from the item instance objects (stuff like integrity_max) additionally, instead of using a function to "trim" the setup object (cloning it and removing the const properties and adding the dynamic ones), I'd just create an object, since ideally none of the values should be repeated/overlapped between the setup and instance (worn/bought) objects - + As a result, we'd have one setup.clothes map that contains all the actual setup objects, and a set for each slot that only contains IDs. - No more clones of the same clothing, no more "all" slot. If you need all clothing - you simply iterate the map's values. + No more clones of the same clothing, no more "all" slot. If you need all clothing - you simply iterate the map's values. If you need specific slots - you iterate the IDs from the set and get the setup object from the map with O(1) lookup. If that sounds like a pain (even though that's less work than what we currently do to just get the price of an item), we can even have a generator function that will yield the actual setup objects in a slot without you having to do clothing.items.get(id) every time (and since it's a generator - we wouldn't be looping twice). - + This way, we don't need to loop through items in order to find an item, and we don't need to do all this weird ritual dancing with V.clothingShopSlot and _realSlot - + This would necessitate a few changes and fixes (I'm only listing stuff I've seen, there's probably plenty more) 1) currently the outfits store item names, instead of the IDs. The outfits should contain the IDs instead. 2) I forgor. diff --git a/game/04-Variables/canvasmodel-00-data.js b/game/04-Variables/canvasmodel-00-data.js index 43f4fd0e0ed3be4b80f2a4c68a8c6173e74e3ba1..27196704a247000af064cc020e06edff6e05467f 100644 --- a/game/04-Variables/canvasmodel-00-data.js +++ b/game/04-Variables/canvasmodel-00-data.js @@ -67,6 +67,7 @@ const ZIndices = { collar: 103, neck: 103, + handheld: 104, arms_cover: 105, under_upper_arms_cover: 109, hands: 110, diff --git a/game/04-Variables/canvasmodel-main.js b/game/04-Variables/canvasmodel-main.js index 6d8d0558505a6a4a0f83ac05f813f0bedfaf22be..5ac078c147cdf006f4f7b07171fd2e131289e6e5 100644 --- a/game/04-Variables/canvasmodel-main.js +++ b/game/04-Variables/canvasmodel-main.js @@ -51,7 +51,7 @@ replace (?<!["'\w])_(?=\w) with T. * "chest_parasite":""|"parasite" - from $parasite.breasts.name * "clit_parasite":""|"urchin"|"slime"|"parasite" - from $parasite.clit.name * "arm_left":"none"|"idle"|"cover" - left arm position ("cover" = covering breasts) - * "arm_right":"none"|"idle"|"cover" - right arm position ("cover" = covering crotch) + * "arm_right":"none"|"idle"|"cover"|"hold" - right arm position ("cover" = covering crotch, "hold" = handheld item equipped) * * SKIN OPTIONS: * ------------- @@ -187,6 +187,8 @@ replace (?<!["'\w])_(?=\w) with T. * GENERATED OPTIONS (temp variables configured by the model itself in preprocess()) * ------------------ * "genitals_chastity":boolean - $worn.genitals type has 'chastity' + * "handheld_position":boolean - handheld item uses the hold position arm sprite + * "handheld_overhead":boolean - $worn.handheld type includes 'rainproof' or $worn.handheld.name includes "balloon" * "blink_animation":string - "blink"|"blink-trauma"|null * "worn_XXXX_setup":object - whole setup.clothes.XXXX object * "ztan_XXXX":number - Z-index of tanline level to keep brighter skin above @@ -241,6 +243,8 @@ Renderer.CanvasModels["main"] = { return [ "blink_animation", "genitals_chastity", + "handheld_position", + "handheld_overhead", "zarms", ...setup.clothes_all_slots.flatMap(key => [ "worn_" + key + "_setup" @@ -446,6 +450,12 @@ Renderer.CanvasModels["main"] = { "worn_hands_colour": "white", "worn_hands_acc_colour": "white", "worn_hands_setup": { type: [] }, // generated option + "worn_handheld": 0, + "worn_handheld_alpha": 1, + "worn_handheld_integrity": "full", + "worn_handheld_colour": "white", + "worn_handheld_acc_colour": "white", + "worn_handheld_setup": { type: [] }, // generated option "worn_head": 0, "worn_head_alpha": 1, "worn_head_integrity": "full", @@ -484,6 +494,7 @@ Renderer.CanvasModels["main"] = { "worn_feet_setup": { type: [] }, // generated option // misc "genitals_chastity": false, // generated option + "handheld_overhead": false, // generated option "upper_tucked": false, "hood_down": false, "alt_position": false, @@ -736,7 +747,7 @@ Renderer.CanvasModels["main"] = { options.zupperleft = ZIndices.upper_arms; options.zupperright = ZIndices.upper_arms; } - if (options.arm_right === "cover") options.zupperright = ZIndices.upper_arms_cover; + if (options.arm_right === "cover" || options.arm_right === "hold" ) options.zupperright = ZIndices.upper_arms_cover; if (options.arm_left === "cover") options.zupperleft = ZIndices.upper_arms_cover; // Generate mask images @@ -790,6 +801,18 @@ Renderer.CanvasModels["main"] = { } } + if (options.worn_handheld_setup.type.includes("rainproof") || ["balloon", "heart balloon"].includes(options.worn_handheld_setup.name)) { + options.handheld_overhead = true; + } else { + options.handheld_overhead = null; + } + + if (options.worn_handheld_setup.name != "pom poms" && options.worn_handheld_setup.name != "naked" && options.arm_right === "hold") { + options.handheld_position = true; + } else { + options.handheld_position = null; + } + options.genitals_chastity = options.worn_genitals_setup.type.includes("chastity"); }, layers: { @@ -912,10 +935,14 @@ Renderer.CanvasModels["main"] = { }, "rightarm": { srcfn(options) { - if (options.mannequin) { + if (options.mannequin && options.handheld_position) { + return "img/body/mannequin/rightarmhold.png" + } else if (options.mannequin) { return "img/body/mannequin/rightarmidle.png" } else if (options.arm_right === "cover") { return "img/body/rightarm.png" + } else if (options.handheld_position) { + return "img/body/rightarmhold.png" } else { return `img/body/rightarmidle-${options.body_type}.png` } @@ -925,9 +952,10 @@ Renderer.CanvasModels["main"] = { }, filters: ["body"], zfn(options) { - if (options.arm_right === "cover") return ZIndices.arms_cover; + if (options.arm_right === "cover" || options.arm_right === "hold") return ZIndices.arms_cover; return options.zarms; - } + }, + animation: "idle", }, /*** @@ -1324,7 +1352,7 @@ Renderer.CanvasModels["main"] = { return options.crotch_visible && options.pbhair_balls > 1 && options.balls && - !options.genitals_chasity + !options.genitals_chastity }, filters: ["pbhair"], zfn(options) { @@ -2281,7 +2309,7 @@ Renderer.CanvasModels["main"] = { return options.show_writings && !!options.writing_right_shoulder; }, zfn(options) { - if (options.arm_right === "cover") { + if (options.arm_right === "cover" || options.arm_right === "hold") { return ZIndices.arms_cover + 0.1 } else { return ZIndices.armsidle + 0.1 @@ -2447,7 +2475,7 @@ Renderer.CanvasModels["main"] = { return "img/body/cum/Right Arm " + options.cum_rightarm + ".png" }, showfn(options) { - return options.arm_right !== "none" && options.arm_right != "cover" && !!options.cum_rightarm; + return options.arm_right !== "none" && options.arm_right != "cover" && options.arm_right != "hold" && !!options.cum_rightarm; }, z: ZIndices.tears, animation: "idle" @@ -2610,7 +2638,7 @@ Renderer.CanvasModels["main"] = { "over_upper_acc": genlayer_clothing_accessory('over_upper'), "over_upper_rightarm": genlayer_clothing_arm("right", "over_upper", { zfn(options) { - return options.arm_right === "cover" ? ZIndices.over_upper_arms_cover : ZIndices.over_upper_arms; + return (options.arm_right === "cover" || options.arm_right === "hold") ? ZIndices.over_upper_arms_cover : ZIndices.over_upper_arms; } }), "over_upper_leftarm": genlayer_clothing_arm("left", "over_upper", { @@ -2947,7 +2975,7 @@ Renderer.CanvasModels["main"] = { "under_upper_back": genlayer_clothing_back_img('under_upper'), "under_upper_rightarm": genlayer_clothing_arm("right", "under_upper", { zfn(options) { - return options.arm_right === "cover" ? ZIndices.under_upper_arms_cover : ZIndices.under_upper_arms; + return (options.arm_right === "cover" || options.arm_right === "hold") ? ZIndices.under_upper_arms_cover : ZIndices.under_upper_arms; } }), "under_upper_leftarm": genlayer_clothing_arm("left", "under_upper", { @@ -3008,7 +3036,7 @@ Renderer.CanvasModels["main"] = { srcfn(options) { let path = 'img/clothes/hands/' + options.worn_hands_setup.variable + '/' + - (options.arm_right === "cover" ? "right_cover" : "right") + '.png'; + (options.arm_right === "cover" ? "right_cover" : options.handheld_position ? "hold" : "right") + '.png'; return gray_suffix(path, options.filters['worn_hands']); }, showfn(options) { @@ -3018,7 +3046,7 @@ Renderer.CanvasModels["main"] = { options.arm_right !== "none" }, zfn(options) { - return options.arm_right === "cover" ? ZIndices.hands : (options.zarms + 0.2); + return (options.arm_right === "cover" || options.arm_right === "hold") ? ZIndices.hands : (options.zarms + 0.2); }, filters: ["worn_hands"], animation: "idle" @@ -3027,7 +3055,7 @@ Renderer.CanvasModels["main"] = { srcfn(options) { let path = 'img/clothes/hands/' + options.worn_hands_setup.variable + '/' + - (options.arm_right === "cover" ? "right_cover" : "right") + '_acc.png'; + (options.arm_right === "cover" ? "right_cover" : options.handheld_position ? "hold" : "right") + '_acc.png'; return gray_suffix(path, options.filters['worn_hands_acc']); }, showfn(options) { @@ -3038,11 +3066,96 @@ Renderer.CanvasModels["main"] = { options.arm_right !== "none" }, zfn(options) { - return options.arm_right === "cover" ? ZIndices.hands : (options.zarms + 0.2); + return (options.arm_right === "cover" || options.arm_right === "hold") ? ZIndices.hands : (options.zarms + 0.2); }, filters: ["worn_hands_acc"], animation: "idle" }, + /*** + * ██ ██ █████ ███ ██ ██████ ██ ██ ██████ ██ ██████ + * ██ ██ ██ ██ ████ ██ ██ ██ ██ ██ ██ ██ ██ ██ + * ███████ ███████ ██ ██ ██ ██ ██ ███████ ██████ ██ ██ ██ + * ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ + * ██ ██ ██ ██ ██ ████ ██████ ██ ██ ██████ ██████ ██████ + * + * + */ + "handheld": genlayer_clothing_main('handheld', { + srcfn(options) { + let path = 'img/clothes/handheld/' + + options.worn_handheld_setup.variable + '/' + + (options.arm_right === "cover" ? "right_cover" : "right") + '.png'; + return gray_suffix(path, options.filters['worn_handheld']); + }, + showfn(options) { + return options.show_clothes && + options.worn_handheld > 0 && + options.arm_right !== "none" + }, + zfn(options) { + return options.handheld_overhead ? ZIndices.over_head : ZIndices.handheld; + }, + }), + "handheld_acc": genlayer_clothing_accessory('handheld', { + srcfn(options) { + let path = 'img/clothes/handheld/' + + options.worn_handheld_setup.variable + '/' + + (options.arm_right === "cover" ? "right_cover" : "right") + '_acc.png'; + return gray_suffix(path, options.filters['worn_handheld_acc']); + }, + showfn(options) { + return options.show_clothes && + options.worn_handheld > 0 && + options.worn_handheld_setup.accessory === 1 && + options.arm_right !== "none" + }, + zfn(options) { + return options.handheld_overhead ? ZIndices.over_head : ZIndices.handheld; + }, + }), + "handheld_left": { + srcfn(options) { + let path = 'img/clothes/handheld/' + + options.worn_handheld_setup.variable + '/' + + (options.arm_left === "cover" ? "left_cover" : "left") + '.png'; + return gray_suffix(path, options.filters['worn_handheld']); + }, + showfn(options) { + return options.show_clothes && + options.worn_handheld > 0 && + options.worn_handheld_setup.leftImage === 1 && + options.arm_left !== "none" + }, + zfn(options) { + return options.arm_left === "cover" ? ZIndices.hands : (options.zarms + 0.2); + }, + filtersfn(options) { + return ["worn_handheld"] + }, + }, + "handheld_left_acc": { + srcfn(options) { + let path = 'img/clothes/handheld/' + + options.worn_handheld_setup.variable + '/' + + (options.arm_left === "cover" ? "left_cover" : "left") + '_acc.png'; + return gray_suffix(path, options.filters['worn_handheld_acc']); + }, + showfn(options) { + return options.show_clothes && + options.worn_handheld > 0 && + options.worn_handheld_setup.leftImage === 1 && + options.worn_handheld_setup.accessory === 1 && + options.arm_left !== "none" + }, + zfn(options) { + return options.arm_left === "cover" ? ZIndices.hands : (options.zarms + 0.2); + }, + filtersfn(options) { + return ["worn_handheld_acc"] + }, + }, + "handheld_back_acc": genlayer_clothing_back_img_acc('handheld'), + "handheld_back": genlayer_clothing_back_img('handheld'), /*** * ██ ██ ███████ █████ ██████ * ██ ██ ██ ██ ██ ██ ██ @@ -3068,6 +3181,7 @@ Renderer.CanvasModels["main"] = { return gray_suffix(path, options.filters['worn_head_acc']); }, }), + "head_back_acc": genlayer_clothing_back_img_acc('head'), "head_back": genlayer_clothing_back_img('head'), /*** * ██████ ██ ██ ███████ ██████ ██ ██ ███████ █████ ██████ @@ -3080,6 +3194,7 @@ Renderer.CanvasModels["main"] = { */ "over_head": genlayer_clothing_main('over_head'), "over_head_acc": genlayer_clothing_accessory('over_head'), + "over_head_back_acc": genlayer_clothing_back_img_acc('over_head'), "over_head_back": genlayer_clothing_back_img('over_head'), /*** * ███████ █████ ██████ ███████ @@ -3109,6 +3224,7 @@ Renderer.CanvasModels["main"] = { } }, }), + "face_back_acc": genlayer_clothing_back_img_acc('face'), "face_back": genlayer_clothing_back_img('face'), /*** @@ -3132,7 +3248,7 @@ Renderer.CanvasModels["main"] = { zfn(options) { return (options.worn_head_setup.mask_img === 1 && !(options.hood_down && options.worn_head_setup.hood && options.worn_head_setup.outfitSecondary !== undefined)) - ? ZIndices.over_lower : ZIndices.neck; + ? ZIndices.collar : ZIndices.neck; }, }), "neck_acc": genlayer_clothing_accessory('neck', { @@ -3149,7 +3265,7 @@ Renderer.CanvasModels["main"] = { zfn(options) { return (options.worn_head_setup.mask_img === 1 && !(options.hood_down && options.worn_head_setup.hood && options.worn_head_setup.outfitSecondary !== undefined)) - ? ZIndices.over_lower : ZIndices.neck; + ? ZIndices.collar : ZIndices.neck; }, }), /*** @@ -3167,6 +3283,7 @@ Renderer.CanvasModels["main"] = { }, }), "legs_acc": genlayer_clothing_accessory('legs'), + "legs_back_acc": genlayer_clothing_back_img_acc('legs'), "legs_back": genlayer_clothing_back_img('legs'), /*** * ███████ ███████ ███████ ████████ @@ -3179,6 +3296,7 @@ Renderer.CanvasModels["main"] = { */ "feet": genlayer_clothing_main('feet'), "feet_acc": genlayer_clothing_accessory('feet'), + "feet_back_acc": genlayer_clothing_back_img_acc('feet'), "feet_back": genlayer_clothing_back_img('feet'), // new layer template @@ -3617,7 +3735,7 @@ function genlayer_clothing_back_img(slot, overrideOptions) { return gray_suffix(path, options.filters[this.filtersfn(options)[0]]); }, showfn(options) { - if (!options.show_clothes) return false; + if (!options.show_clothes || (slot === "handheld" && options.arm_right !== "hold")) return false; let isHoodDown = options.hood_down && options["worn_" + slot + "_setup"].hood && options["worn_" + slot + "_setup"].outfitSecondary !== undefined; @@ -3626,7 +3744,7 @@ function genlayer_clothing_back_img(slot, overrideOptions) { alphafn(options) { return options["worn_" + slot + "_alpha"] }, - z: ZIndices[slot + '_back'], + z: ZIndices['over_head_back'], filtersfn(options) { switch (options["worn_" + slot + "_setup"].back_img_colour) { case "none": @@ -3642,6 +3760,43 @@ function genlayer_clothing_back_img(slot, overrideOptions) { animation: "idle" }, overrideOptions) } +function genlayer_clothing_back_img_acc(slot, overrideOptions) { + return Object.assign({ + srcfn(options) { + let isAltPosition = options.alt_position && + options["worn_" + slot + "_setup"].altposition !== undefined; + let path = 'img/clothes/' + + slot + '/' + + options["worn_" + slot + "_setup"].variable + '/' + + (isAltPosition ? 'back_alt' : 'back') + '_acc.png'; + return gray_suffix(path, options.filters[this.filtersfn(options)[0]]); + }, + showfn(options) { + if (!options.show_clothes || (slot === "handheld" && options.arm_right !== "hold")) return false; + let isHoodDown = options.hood_down && + options["worn_" + slot + "_setup"].hood && + options["worn_" + slot + "_setup"].outfitSecondary !== undefined; + return options["worn_" + slot] > 0 && options["worn_" + slot + "_setup"].back_img_acc === 1 && !isHoodDown; + }, + alphafn(options) { + return options["worn_" + slot + "_alpha"] + }, + z: ZIndices['head_back'], + filtersfn(options) { + switch (options["worn_" + slot + "_setup"].back_img_acc_colour) { + case "none": + return []; + case "": + case undefined: + case "primary": + return ["worn_" + slot]; + case "secondary": + return ["worn_" + slot + "_acc"] + } + }, + animation: "idle" + }, overrideOptions) +} /** * Does not setup z-index, it should be in overrideOptions @@ -3656,7 +3811,7 @@ function genlayer_clothing_arm(arm, slot, overrideOptions) { let path = 'img/clothes/' + slot + '/' + options["worn_" + slot + "_setup"].variable + '/' + - (options["arm_" + arm] === "cover" ? (arm + '_cover.png') : (arm + ".png")); + (options["arm_" + arm] === "cover" ? (arm + '_cover.png') : options.handheld_position && arm === "right" ? "hold.png" : (arm + ".png")); return gray_suffix(path, options.filters[this.filtersfn(options)[0]]); }, showfn(options) { @@ -3697,7 +3852,7 @@ function genlayer_clothing_arm_acc(arm, slot, overrideOptions) { let path = 'img/clothes/' + slot + '/' + options["worn_" + slot + "_setup"].variable + '/' + - (options["arm_" + arm] === "cover" ? (arm + '_cover_acc.png') : (arm + "_acc.png")); + (options["arm_" + arm] === "cover" ? (arm + '_cover_acc.png') : options.handheld_position && arm === "right" ? "hold_acc.png" :(arm + "_acc.png")); return gray_suffix(path, options.filters[this.filtersfn(options)[0]]); }, showfn(options) { diff --git a/game/04-Variables/variables-start2.twee b/game/04-Variables/variables-start2.twee index d5559c27b02d3c31527f16bbfbe528e432798994..4561dadfe56784e753debf3c80373000cbb3eec8 100644 --- a/game/04-Variables/variables-start2.twee +++ b/game/04-Variables/variables-start2.twee @@ -284,6 +284,15 @@ rng: random(0,1000) }>> + <<set $propEquipped to 0>> + + <<set $balloonStand to { + open: false, + owner: "friendly", + freeDrink: false, + robin: {status: "unaffected", talked: false, knows: false} + }>> + <<set $retrieveShopCustomColor to {}>> <<set $customColors to { @@ -309,6 +318,11 @@ <<set $robinTattoo to []>> <<set $robinmissing to 0>> + <<set $robin to { + timer: {hurt:0, customer:0}, + hurtReason: "nothing", + moneyModifier: 0 + }>> <<set $kylar to { raped: 0, riddle: 0, diff --git a/game/04-Variables/variables-static.twee b/game/04-Variables/variables-static.twee index e07afa83c4e586548d139c78ab0d61a47da0e834..638bb33107a344b9b3f81ef66df3e1ee82c9b4d5 100644 --- a/game/04-Variables/variables-static.twee +++ b/game/04-Variables/variables-static.twee @@ -97,6 +97,7 @@ "mouthsmile":"img/bodyRed/mouthsmile.png", "rightarm":"img/bodyRed/rightarm.png", "rightarmidle":"img/bodyRed/rightarmidle.png", + "rightarmhold":"img/bodyRed/rightarmhold.png", "breasts1":"img/bodyRed/breasts/breasts1.png", "breasts1_clothed":"img/bodyRed/breasts/breasts1.png", "breasts2":"img/bodyRed/breasts/breasts2.png", @@ -165,6 +166,7 @@ "mouthsmile":"img/body/mouthsmile.png", "rightarm":"img/body/rightarm.png", "rightarmidle":"img/body/rightarmidle.png", + "rightarmhold":"img/body/rightarmhold.png", "breasts1":"img/body/breasts/breasts1.png", "breasts1_clothed":"img/body/breasts/breasts1.png", "breasts2":"img/body/breasts/breasts2.png", @@ -662,8 +664,8 @@ <<set setup.bodyparts to ["forehead", "left_cheek", "right_cheek", "left_shoulder", "right_shoulder", "breasts", "back", "left_bottom", "right_bottom", "pubic", "left_thigh", "right_thigh"]>> <<set setup.clothingLayer to { - "all": ["over_upper","over_lower","over_head","upper","lower","under_upper","under_lower","head","face","neck","hands","legs","feet"], - "body": ["upper","lower","under_upper","under_lower","head","face","neck","hands","legs","feet"], + "all": ["over_upper","over_lower","over_head","upper","lower","under_upper","under_lower","head","face","neck","hands","handheld","legs","feet"], + "body": ["upper","lower","under_upper","under_lower","head","face","neck","hands","handheld","legs","feet"], "torso": ["over_upper","over_lower","upper","lower","under_upper","under_lower"], "torso_inner": ["upper","lower","under_upper","under_lower"], "torso_outer": ["over_upper","over_lower","upper","lower"], diff --git a/game/04-Variables/variables-versionUpdate.twee b/game/04-Variables/variables-versionUpdate.twee index 1178cacaf3ae20753e7e1726a1949f4190463f01..ff6d6a82d6beb8b359a9ec7c9ffd38b9b8c6edb3 100644 --- a/game/04-Variables/variables-versionUpdate.twee +++ b/game/04-Variables/variables-versionUpdate.twee @@ -4750,9 +4750,50 @@ <<set $objectVersion.earSlimeFix to 1>> <</if>> - + <!-- Added the new hair growth pills data --> <<if $sexStats.pills.pills && $sexStats.pills.pills["Hair Growth Formula"] is undefined>> <<physicalAdjustmentsInit>> <</if>> + + <!-- V0.4.5.0 Handheld Items --> + <<if $worn.handheld is undefined>> + <<set $worn.handheld to clone(setup.clothes.handheld[0])>> + <<set $carried.handheld to clone(setup.clothes.handheld[0])>> + <<set $wardrobe.handheld to []>> + <<set $store.handheld to []>> + <<set $wear_handheld to "none">> + <<if ($player.gender is "f" and $background isnot "crossdresser") or + ($player.gender is "m" and $background is "crossdresser") or + ($player.gender is "h" and + ( + (($player.gender_body is "m" or ($player.gender_body is "a" and $player.breastsize lte 3)) and $background is "crossdresser") or + (($player.gender_body is "f" or ($player.gender_body is "a" and $player.breastsize gt 3)) and $background isnot "crossdresser") + ) + )>> + <<set $wardrobe.handheld.push(clone(setup.clothes.handheld[8]))>> + <<set $wardrobe.handheld.last().colour to "purple">> + <<else>> + <<set $wardrobe.handheld.push(clone(setup.clothes.handheld[8]))>> + <<set $wardrobe.handheld.last().colour to "blue">> + <</if>> + <</if>> + <<if $propEquipped is undefined>> + <<set $propEquipped to 0>> + <</if>> + <<if $balloonStand is undefined>> + <<set $balloonStand to { + open: false, + owner: "friendly", + freeDrink: false, + robin: {status: "unaffected", talked: false, knows: false} + }>> + <</if>> + <<if $robin is undefined>> + <<set $robin to { + timer: {hurt:0, customer:0}, + hurtReason: "nothing", + moneyModifier: 0 + }>> + <</if>> <</widget>> diff --git a/game/base-clothing/canvasmodel-img.twee b/game/base-clothing/canvasmodel-img.twee index 70979625340404a0767efea99cb061cd89468f1a..a88f5cf568c0fe5b0c0bec6adb39e6343624aee1 100644 --- a/game/base-clothing/canvasmodel-img.twee +++ b/game/base-clothing/canvasmodel-img.twee @@ -180,7 +180,7 @@ Requires prior <<selectmodel "main">> <<set _modeloptions.arm_right to "cover">> <!-- might be changed back to "idle" if covering with wings/tail --> <<else>> <<set _coverCrotch to false>> - <<set _modeloptions.arm_right to "idle">> + <<set _modeloptions.arm_right to $worn.handheld.name isnot "naked" ? "hold" : "idle">> <</if>> <<else>> <<set _modeloptions.arm_right to "none">> @@ -234,16 +234,16 @@ Requires prior <<selectmodel "main">> <<if !_disabled.includes($transformationParts.demon.tail)>> <<set _modeloptions.demon_tail_state to ($transformationParts.traits.flaunting is "default" ? "flaunt" : "cover")>> <<set _modeloptions.cat_tail_state to "cover">> - <<set _modeloptions.arm_right to "idle">> + <<set _modeloptions.arm_right to $worn.handheld.name isnot "naked" ? "hold" : "idle">> <<elseif !_disabled.includes($transformationParts.angel.wings)>> <<set _modeloptions.angel_wing_left to "cover">> - <<set _modeloptions.arm_right to "idle">> + <<set _modeloptions.arm_right to $worn.handheld.name isnot "naked" ? "hold" : "idle">> <<elseif !_disabled.includes($transformationParts.fallenAngel.wings)>> <<set _modeloptions.fallen_wing_left to "cover">> - <<set _modeloptions.arm_right to "idle">> + <<set _modeloptions.arm_right to $worn.handheld.name isnot "naked" ? "hold" : "idle">> <<elseif !_disabled.includes($transformationParts.bird.wings)>> <<set _modeloptions.bird_wing_left to "cover">> - <<set _modeloptions.arm_right to "idle">> + <<set _modeloptions.arm_right to $worn.handheld.name isnot "naked" ? "hold" : "idle">> <</if>> <</if>> <</if>> @@ -588,6 +588,7 @@ Set model options & filters for player clothes ["under_lower", $underlowerwetstage], ["under_upper", $underupperwetstage], ["hands"], + ["handheld"], ["head"], ["over_head"], ["face"], diff --git a/game/base-clothing/captiontext.twee b/game/base-clothing/captiontext.twee index ecb6c58fa17388849ce8e6db7f4e606d76278dad..b9bffd97e31d99cf67bc0c2d2b15f42b3a549a1e 100644 --- a/game/base-clothing/captiontext.twee +++ b/game/base-clothing/captiontext.twee @@ -26,8 +26,8 @@ <<set _text_output += formatList(_clothingCaptionItems) + _finally>> <<print _text_output>> - <<clothingCaptionTextGenitals>> + <<clothingCaptionTextHandheld>> <</if>> <<clothingCaptionTextNothing>> <<clothingCaptionTextMask>> @@ -139,6 +139,15 @@ <</if>> <</silently>><</widget>> +<<widget "clothingCaptionTextHandheld">> + <<silently>> + <<if $worn.handheld.name isnot "naked">> + <<set $_text_output to "You are carrying <<word 'handheld'>> $worn.handheld.name.">> + <</if>> + <</silently>> + <<if $_text_output>><<print $_text_output>><</if>> +<</widget>> + <<widget "clothingCaptionTextGenitals">><<silently>> <<if $worn.genitals.name isnot "naked">> <<if _bottomless>> @@ -338,4 +347,4 @@ <</if>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>> -<</widget>> \ No newline at end of file +<</widget>> diff --git a/game/base-clothing/clothing-handheld.js b/game/base-clothing/clothing-handheld.js new file mode 100644 index 0000000000000000000000000000000000000000..47959147addf288403f8119fe6f2203eebf15106 --- /dev/null +++ b/game/base-clothing/clothing-handheld.js @@ -0,0 +1,584 @@ +/* For any item that has a colour_combat tag, set it to 0 if that item ever gets its own combat sprites. */ +function initHandheld() { + setup.clothes.handheld = [ + { + index: 0, + name: "naked", + name_cap: "Naked", + variable: "naked", + integrity: 0, + integrity_max: 0, + fabric_strength: 0, + reveal: 1, + word: "n", + plural: 0, + colour: 0, + colour_options: [], + type: ["naked"], + gender: "n", + warmth: 0, + cost: 0, + description: "naked", + shop: [], + accessory: 0, + accessory_colour: 0, + accessory_colour_options: [], + back_img: 0, + cursed: 0, + location: 0, + iconFile: 0, + accIcon: 0, + mainImage: 0, + }, + + { + index: 1, + name: "umbrella", + name_cap: "Umbrella", + variable: "umbrella", + integrity: 120, + integrity_max: 120, + fabric_strength: 10, + reveal: 100, + word: "an", + plural: 0, + mask_img: 1, + colour: 0, + colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], + colour_sidebar: 1, + type: ["rainproof", "shade"], + gender: "n", + femininity: 0, + warmth: 0, + cost: 3000, + description: "Keeps the rain off.", + shop: ["clothing"], + accessory: 1, + accessory_colour: 0, + accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], + accessory_colour_sidebar: 1, + back_img: 1, + back_img_acc: 1, + back_img_acc_colour: "secondary", + mask_img: 1, + cursed: 0, + location: 0, + iconFile: "umbrella.png", + accIcon: "umbrella_acc.png", + }, + { + index: 2, + name: "parasol", + name_cap: "Parasol", + variable: "parasol", + integrity: 120, + integrity_max: 120, + fabric_strength: 10, + reveal: 200, + word: "a", + plural: 0, + mask_img: 1, + colour: 0, + colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], + colour_sidebar: 1, + type: ["rainproof", "shade"], + gender: "f", + femininity: 100, + warmth: 0, + cost: 4000, + description: "Keeps the rain off.", + shop: ["clothing"], + shopGroup: "parasols", + accessory: 1, + accessory_colour: 0, + accessory_colour_options: ["white", "black", "grey", "custom"], + accessory_colour_sidebar: 1, + back_img: 1, + back_img_acc: 1, + back_img_acc_colour: "secondary", + mask_img: 1, + cursed: 0, + location: 0, + iconFile: "parasol.png", + accIcon: "parasol_acc.png", + }, + { + index: 3, + name: "sweet lolita parasol", + name_cap: "Sweet lolita parasol", + variable: "parasolsweet", + integrity: 120, + integrity_max: 120, + fabric_strength: 10, + reveal: 200, + word: "a", + plural: 0, + colour: 0, + colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], + colour_sidebar: 1, + type: ["rainproof", "shade"], + gender: "f", + femininity: 100, + warmth: 0, + cost: 4000, + description: "Keeps the rain off.", + shop: ["clothing"], + shopGroup: "parasols", + accessory: 1, + accessory_colour: 0, + accessory_colour_options: ["white", "black", "grey", "custom"], + accessory_colour_sidebar: 1, + back_img: 1, + back_img_acc: 1, + back_img_acc_colour: "secondary", + mask_img: 1, + cursed: 0, + location: 0, + iconFile: "parasol.png", + accIcon: "sweetparasol_acc.png", + }, + { + index: 4, + name: "paper parasol", + name_cap: "Paper parasol", + variable: "parasolpaper", + integrity: 120, + integrity_max: 120, + fabric_strength: 10, + reveal: 200, + word: "a", + plural: 0, + colour: 0, + colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], + colour_sidebar: 1, + type: ["rainproof", "shade"], + gender: "n", + femininity: 0, + warmth: 0, + cost: 4000, + description: "Laminated, to keep the rain off.", + shop: ["clothing"], + accessory: 1, + accessory_colour: 0, + accessory_colour_options: [], + accessory_colour_sidebar: 0, + back_img: 1, + back_img_acc: 1, + back_img_colour: "primary", + back_img_acc_colour: "none", + mask_img: 1, + cursed: 0, + location: 0, + iconFile: "paperparasol.png", + accIcon: "paperparasol_acc.png", + }, + { + index: 5, + name: "purse", + name_cap: "Purse", + variable: "purse", + integrity: 120, + integrity_max: 120, + fabric_strength: 10, + reveal: 200, + word: "a", + plural: 0, + colour: 0, + colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], + colour_sidebar: 1, + type: ["normal", "bookbag"], + gender: "f", + femininity: 100, + warmth: 0, + cost: 4000, + description: "Capable of carrying a school textbook.", + shop: ["clothing"], + accessory: 1, + accessory_colour: 0, + accessory_colour_options: ["steel", "blue steel", "bronze", "gold", "silver", "black"], + accessory_colour_sidebar: 1, + cursed: 0, + location: 0, + iconFile: "purse.png", + accIcon: "purse_acc.png", + }, + { + index: 6, + name: "heart purse", + name_cap: "Heart purse", + variable: "heartpurse", + integrity: 120, + integrity_max: 120, + fabric_strength: 10, + reveal: 200, + word: "a", + plural: 0, + colour: 0, + colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], + colour_sidebar: 1, + type: ["normal", "bookbag"], + gender: "f", + femininity: 100, + warmth: 0, + cost: 4000, + description: "Capable of carrying a school textbook.", + shop: ["clothing"], + accessory: 1, + accessory_colour: 0, + accessory_colour_options: ["steel", "blue steel", "bronze", "gold", "silver", "black"], + accessory_colour_sidebar: 1, + cursed: 0, + location: 0, + iconFile: "heart_purse.png", + accIcon: "heart_purse_acc.png", + }, + { + index: 7, + name: "messenger bag", + name_cap: "Messenger bag", + variable: "messengerbag", + integrity: 120, + integrity_max: 120, + fabric_strength: 10, + reveal: 200, + word: "a", + plural: 0, + colour: 0, + colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], + colour_sidebar: 1, + type: ["normal", "bookbag"], + gender: "m", + femininity: -100, + warmth: 0, + cost: 4000, + description: "Useful for carrying school textbooks.", + shop: ["clothing"], + accessory: 1, + accessory_colour: 0, + accessory_colour_options: [], + accessory_colour_sidebar: 0, + cursed: 0, + location: 0, + iconFile: "messenger_bag.png", + accIcon: "messenger_bag_acc.png", + }, + { + index: 8, + name: "backpack", + name_cap: "Backpack", + variable: "backpack", + integrity: 120, + integrity_max: 120, + fabric_strength: 10, + reveal: 200, + word: "a", + plural: 0, + colour: 0, + colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], + colour_sidebar: 1, + type: ["normal", "bookbag"], + gender: "n", + femininity: 0, + warmth: 0, + cost: 2000, + description: "Useful for carrying school textbooks.", + shop: ["clothing", "school"], + accessory: 1, + accessory_colour: 0, + accessory_colour_options: [], + accessory_colour_sidebar: 0, + back_img: 1, + back_img_acc: 1, + back_img_acc_colour: "secondary", + cursed: 0, + location: 0, + iconFile: "backpack.png", + accIcon: "backpack_acc.png", + }, + { + index: 9, + name: "paper fan", + name_cap: "Paper fan", + variable: "paperfan", + integrity: 120, + integrity_max: 120, + fabric_strength: 10, + reveal: 200, + word: "a", + plural: 0, + colour: 0, + colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], + colour_sidebar: 1, + type: ["normal"], + gender: "n", + femininity: 0, + warmth: 0, + cost: 1300, + description: "Keeps you cool.", + shop: ["clothing"], + accessory: 1, + accessory_colour: 0, + accessory_colour_options: [], + accessory_colour_sidebar: 0, + cursed: 0, + location: 0, + iconFile: "fan.png", + accIcon: "fan_acc.png", + }, + { + index: 10, + name: "milkshake", + name_cap: "Milkshake", + variable: "milkshake", + word: "a", + plural: 0, + colour: 0, + colour_options: [], + colour_sidebar: 1, + type: ["prop"], + shop: [], + gender: "n", + description: "Tasty and refreshing.", + accessory: 0, + accessory_colour: 0, + accessory_colour_options: [], + accessory_colour_sidebar: 0, + }, + { + index: 11, + name: "cigarette", + name_cap: "Cigarette", + variable: "cigarette", + word: "a", + plural: 0, + colour: 0, + colour_options: [], + colour_sidebar: 1, + type: ["prop"], + shop: [], + gender: "n", + description: "Bad habits shouldn't look so cool.", + accessory: 1, + accessory_colour: 0, + accessory_colour_options: [], + accessory_colour_sidebar: 0, + }, + { + index: 12, + name: "feather duster", + name_cap: "Feather duster", + variable: "featherduster", + integrity: 120, + integrity_max: 120, + fabric_strength: 10, + reveal: 200, + word: "a", + plural: 0, + colour: 0, + colour_options: [], + colour_sidebar: 0, + type: ["maid"], + gender: "n", + femininity: 0, + warmth: 0, + cost: 1500, + description: "For looking cute while cleaning.", + shop: ["clothing"], + accessory: 0, + accessory_colour: 0, + accessory_colour_options: [], + accessory_colour_sidebar: 0, + cursed: 0, + location: 0, + iconFile: "feather_duster.png", + accIcon: 0, + }, + { + index: 13, + name: "pom poms", + name_cap: "Pom poms", + variable: "pompoms", + integrity: 200, + integrity_max: 200, + fabric_strength: 20, + reveal: 300, + word: "a", + plural: 0, + colour: 0, + colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "pale tangerine", "teal", "pale white", "pale yellow", "custom"], + colour_sidebar: 1, + type: ["costume", "athletic"], + gender: "f", + femininity: 200, + warmth: 15, + cost: 1500, + description: "For cheering your team to victory.", + shop: ["clothing", "school", "adult"], + accessory: 1, + accessory_colour: 0, + accessory_colour_options: [], + back_img: 0, + cursed: 0, + location: 0, + iconFile: "pom_poms.png", + accIcon: 0, + leftImage: 1, + }, + { + index: 14, + name: "balloon", + name_cap: "Balloon", + variable: "balloon", + integrity: 20, + integrity_max: 20, + fabric_strength: 20, + reveal: 50, + word: "a", + plural: 1, + colour: 0, + colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], + colour_sidebar: 1, + type: ["costume"], + gender: "n", + cost: 500, + description: "Don't let go.", + shop: ["stall"], + accessory: 1, + accessory_colour: 0, + accessory_colour_options: [], + back_img: 0, + cursed: 0, + location: 0, + iconFile: "balloon.png", + accIcon: 0, + }, + { + index: 15, + name: "heart balloon", + name_cap: "Heart balloon", + variable: "balloonheart", + integrity: 20, + integrity_max: 20, + fabric_strength: 20, + reveal: 50, + word: "a", + plural: 0, + colour: 0, + colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], + colour_sidebar: 1, + type: ["costume"], + gender: "n", + cost: 500, + description: "Don't let go.", + shop: ["stall"], + accessory: 1, + accessory_colour: 0, + accessory_colour_options: [], + back_img: 0, + cursed: 0, + location: 0, + iconFile: "balloon_heart.png", + accIcon: 0, + }, + { + index: 16, + name: "bag of popcorn", + name_cap: "Bag of popcorn", + variable: "popcorn", + word: "a", + plural: 0, + colour: 0, + colour_options: [], + colour_sidebar: 0, + type: ["prop"], + shop: [], + gender: "n", + description: "Tasty.", + accessory: 0, + accessory_colour: 0, + accessory_colour_options: [], + }, + { + index: 17, + name: "gingerbread man", + name_cap: "Gingerbread man", + variable: "gingerbread", + word: "a", + plural: 0, + colour: 0, + colour_options: [], + colour_sidebar: 0, + type: ["prop"], + shop: [], + gender: "n", + description: "Tasty. A prop for scenes.", + accessory: 0, + accessory_colour: 0, + accessory_colour_options: [], + }, + { + index: 18, + name: "cup of lemonade", + name_cap: "Cup of lemonade", + variable: "lemonade", + word: "a", + plural: 0, + colour: 0, + colour_options: [], + colour_sidebar: 0, + type: ["prop"], + shop: [], + gender: "n", + description: "Tasty.", + accessory: 0, + accessory_colour: 0, + accessory_colour_options: [], + }, + { + index: 19, + name: "hot drink", + name_cap: "hot drink", + variable: "cocoa", + word: "a", + plural: 0, + colour: 0, + colour_options: [], + colour_sidebar: 0, + type: ["prop"], + shop: [], + gender: "n", + description: "Tasty.", + accessory: 0, + accessory_colour: 0, + accessory_colour_options: [], + }, + { + index: 20, + name: "mug", + name_cap: "Mug", + variable: "mug", + word: "a", + plural: 0, + colour: 0, + colour_options: [], + colour_sidebar: 0, + type: ["prop"], + shop: [], + gender: "n", + description: "Empty.", + accessory: 0, + accessory_colour: 0, + accessory_colour_options: [], + }, + ]; + + /* + Clothes that modders add go into this array, this should be empty in the base game at all times. + These items should have a `modder` variable with a the modders name in a short string + */ + setup.moddedClothes.handheld = []; + + setup.moddedClothes.handheld.forEach((x, i) => (x.index = setup.clothes.handheld.length + i)); + setup.clothes.handheld.push(...setup.moddedClothes.handheld); +} +window.initHandheld = initHandheld; diff --git a/game/base-clothing/clothing-hands.js b/game/base-clothing/clothing-hands.js index 144ea36213b3ae452f17a0cf0d0754d0d02358e9..8a77b56e4e2af06998416df4ecf3bb3a01d5d0d0 100644 --- a/game/base-clothing/clothing-hands.js +++ b/game/base-clothing/clothing-hands.js @@ -199,8 +199,8 @@ function initHands() { { index: 6, - name: "pom poms", - name_cap: "Pom poms", + name: "cheerleader gloves", + name_cap: "Cheerleader gloves", variable: "pompoms", integrity: 200, integrity_max: 200, @@ -224,8 +224,8 @@ function initHands() { back_img: 0, cursed: 0, location: 0, - iconFile: "pom_poms.png", - accIcon: 0, + iconFile: "fingerless_gloves.png", + accIcon: "fingerless_gloves_acc.png", mainImage: 0, leftImage: 1, rightImage: 1, diff --git a/game/base-clothing/clothing-lower.js b/game/base-clothing/clothing-lower.js index ad3f59599d73a4dd6707c6a3fa297d63235a89d1..b06dee506c849e3adccd6b9fc5bee86eb7a6941c 100644 --- a/game/base-clothing/clothing-lower.js +++ b/game/base-clothing/clothing-lower.js @@ -5780,6 +5780,52 @@ function initLower() { accIcon: "shortalls_acc.png", pregType: "cover", }, + + { + index: 123, + name: "jingle-bell skirt", + name_cap: "Jingle-bell skirt", + variable: "jingledress", + integrity: 120, + integrity_max: 120, + fabric_strength: 30, + reveal: 350, + rearresize: 0, + word: "a", + one_piece: 1, + skirt: 1, + skirt_down: 1, + short: 0, + state: "waist", + state_base: "waist", + plural: 0, + colour: 0, + colour_options: [], + colour_combat: "red", + exposed: 0, + exposed_base: 0, + vagina_exposed: 1, + vagina_exposed_base: 1, + anus_exposed: 1, + anus_exposed_base: 1, + type: ["costume"], + set: "jingledress", + gender: "f", + femininity: 200, + warmth: 70, + cost: 0, + description: "Festive.", + shop: ["forest"], + accessory: 0, + accessory_colour: 0, + accessory_colour_options: [], + high_img: 0, + back_img: 0, + cursed: 0, + location: 0, + outfitSecondary: ["upper", "jingle-bell dress"], + }, + ]; /* diff --git a/game/base-clothing/clothing-upper.js b/game/base-clothing/clothing-upper.js index 4ffb369cfdc4c561f4d0ea90e7d39171c9c59700..42c1a2a7964557c32c913c7e48f773d2272da3ba 100644 --- a/game/base-clothing/clothing-upper.js +++ b/game/base-clothing/clothing-upper.js @@ -964,7 +964,7 @@ function initUpper() { cursed: 0, location: 0, iconFile: "serafuku.png", - accIcon: 0, + accIcon: "serafuku_acc.png", notuck: 0, pregType: 0, }, @@ -2876,6 +2876,7 @@ function initUpper() { accessory_colour_options: [], accessory_colour_combat: "white", sleeve_img: 1, + sleeve_acc_img: 1, breast_img: 0, cursed: 0, location: 0, @@ -6060,6 +6061,337 @@ function initUpper() { notuck: 0, pregType: 0, }, + + { + index: 129, + name: "jingle-bell dress", + name_cap: "Jingle-bell dress", + variable: "jingledress", + integrity: 160, + integrity_max: 160, + fabric_strength: 20, + reveal: 250, + bustresize: 0, + word: "a", + one_piece: 1, + strap: 0, + open: 0, + state: "waist", + state_base: "waist", + state_top: "chest", + state_top_base: "chest", + plural: 0, + colour: 0, + colour_options: [], + colour_combat: "red", + exposed: 0, + exposed_base: 0, + type: ["costume"], + set: "jingledress", + gender: "f", + femininity: 200, + warmth: 70, + cost: 8000, + description: "Festive. The skirt is rather short.", + shop: ["forest"], + shopGroup:"jingle", + accessory: 0, + accessory_colour: 0, + accessory_colour_options: [], + sleeve_img: 1, + breast_img: 1, + cursed: 0, + location: 0, + iconFile: "jinglebell_dress.png", + outfitPrimary: { lower: "jingle-bell skirt" }, + notuck: 0, + pregType: 0, + }, + { + index: 130, + name: "sleeveless jingle-bell dress", + name_cap: "Sleeveless jingle-bell dress", + variable: "jingledresssleeveless", + integrity: 160, + integrity_max: 160, + fabric_strength: 20, + reveal: 250, + bustresize: 0, + word: "a", + one_piece: 1, + strap: 0, + open: 0, + state: "waist", + state_base: "waist", + state_top: "chest", + state_top_base: "chest", + plural: 0, + colour: 0, + colour_options: [], + colour_combat: "red", + exposed: 0, + exposed_base: 0, + type: ["costume"], + set: "jingledress", + gender: "f", + femininity: 200, + warmth: 70, + cost: 8000, + description: "Festive. The skirt is rather short.", + shop: ["forest"], + shopGroup:"jingle", + accessory: 0, + accessory_colour: 0, + accessory_colour_options: [], + sleeve_img: 0, + breast_img: 1, + cursed: 0, + location: 0, + iconFile: "jinglebell_dress.png", + outfitPrimary: { lower: "jingle-bell skirt" }, + notuck: 0, + pregType: 0, + }, + { + index: 131, + name: "jumper", + name_cap: "Jumper", + variable: "jumper", + integrity: 200, + integrity_max: 200, + fabric_strength: 20, + reveal: 300, + bustresize: 0, + word: "a", + one_piece: 0, + strap: 0, + open: 0, + state: "waist", + state_base: "waist", + state_top: "chest", + state_top_base: "chest", + plural: 0, + colour: 0, + colour_sidebar: 1, + colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], + colour_combat: 0, + exposed: 0, + exposed_base: 0, + type: ["normal"], + set: "upper", + gender: "n", + warmth: 60, + cost: 6500, + description: "Snug and comfy.", + shop: ["clothing"], + shopGroup: "jumper", + accessory: 1, + accessory_colour: 0, + accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], + accessory_colour_sidebar: "secondary", + accessory_integrity_img: 1, + sleeve_img: 1, + sleeve_acc_img: 1, + breast_img: 0, + cursed: 0, + location: 0, + iconFile: "jumper.png", + accIcon: "jumper_acc.png", + notuck: 0, + pregType: "min", + }, + { + index: 132, + name: "festive jumper", + name_cap: "Festive jumper", + variable: "jumperxmas", + integrity: 200, + integrity_max: 200, + fabric_strength: 20, + reveal: 300, + bustresize: 0, + word: "a", + one_piece: 0, + strap: 0, + open: 0, + state: "waist", + state_base: "waist", + state_top: "chest", + state_top_base: "chest", + plural: 0, + colour: 0, + colour_sidebar: 1, + colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], + colour_combat: 0, + exposed: 0, + exposed_base: 0, + type: ["normal"], + set: "upper", + gender: "n", + warmth: 60, + cost: 6500, + description: "Snug and comfy. Festive.", + shop: ["clothing"], + shopGroup: "jumper", + accessory: 1, + accessory_colour: 0, + accessory_colour_options: [], + accessory_integrity_img: 0, + sleeve_img: 1, + breast_img: 0, + cursed: 0, + location: 0, + iconFile: "jumper.png", + accIcon: "jumper_acc.png", + notuck: 0, + pregType: "min", + }, + { + index: 133, + name: "ghost jumper", + name_cap: "Ghost jumper", + variable: "jumperghost", + integrity: 200, + integrity_max: 200, + fabric_strength: 20, + reveal: 300, + bustresize: 0, + word: "a", + one_piece: 0, + strap: 0, + open: 0, + state: "waist", + state_base: "waist", + state_top: "chest", + state_top_base: "chest", + plural: 0, + colour: 0, + colour_sidebar: 1, + colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], + colour_combat: 0, + exposed: 0, + exposed_base: 0, + type: ["normal"], + set: "upper", + gender: "n", + warmth: 60, + cost: 6500, + description: "Snug and comfy.", + shop: ["clothing"], + shopGroup: "jumper", + accessory: 1, + accessory_colour: 0, + accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], + accessory_colour_sidebar: "secondary", + accessory_integrity_img: 1, + sleeve_img: 1, + sleeve_acc_img: 1, + breast_img: 0, + cursed: 0, + location: 0, + iconFile: "jumper.png", + accIcon: "jumper_acc.png", + notuck: 0, + pregType: "min", + }, + { + index: 134, + name: "heart jumper", + name_cap: "Heart jumper", + variable: "jumperheart", + integrity: 200, + integrity_max: 200, + fabric_strength: 20, + reveal: 300, + bustresize: 0, + word: "a", + one_piece: 0, + strap: 0, + open: 0, + state: "waist", + state_base: "waist", + state_top: "chest", + state_top_base: "chest", + plural: 0, + colour: 0, + colour_sidebar: 1, + colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], + colour_combat: 0, + exposed: 0, + exposed_base: 0, + type: ["normal"], + set: "upper", + gender: "f", + femininity: 100, + warmth: 60, + cost: 6500, + description: "Snug and comfy.", + shop: ["clothing"], + shopGroup: "jumper", + accessory: 1, + accessory_colour: 0, + accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], + accessory_colour_sidebar: "secondary", + accessory_integrity_img: 1, + sleeve_img: 1, + sleeve_acc_img: 1, + breast_img: 0, + cursed: 0, + location: 0, + iconFile: "jumper.png", + accIcon: "jumper_acc.png", + notuck: 0, + pregType: "min", + }, + { + index: 135, + name: "skull jumper", + name_cap: "Skull jumper", + variable: "jumperskull", + integrity: 200, + integrity_max: 200, + fabric_strength: 20, + reveal: 300, + bustresize: 0, + word: "a", + one_piece: 0, + strap: 0, + open: 0, + state: "waist", + state_base: "waist", + state_top: "chest", + state_top_base: "chest", + plural: 0, + colour: 0, + colour_sidebar: 1, + colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], + colour_combat: 0, + exposed: 0, + exposed_base: 0, + type: ["normal"], + set: "upper", + gender: "m", + femininity: -100, + warmth: 60, + cost: 6500, + description: "Snug and comfy.", + shop: ["clothing"], + shopGroup: "jumper", + accessory: 1, + accessory_colour: 0, + accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], + accessory_colour_sidebar: "secondary", + accessory_integrity_img: 1, + sleeve_img: 1, + sleeve_acc_img: 1, + breast_img: 0, + cursed: 0, + location: 0, + iconFile: "jumper.png", + accIcon: "jumper_acc.png", + notuck: 0, + pregType: "min", + }, ]; /* diff --git a/game/base-clothing/init.twee b/game/base-clothing/init.twee index 4530133828223eb4ff6e192ff3a142e6bf85070a..d7efe524176215874f9616c3659e030b3c95c162 100644 --- a/game/base-clothing/init.twee +++ b/game/base-clothing/init.twee @@ -15,12 +15,13 @@ <<run initFace()>> <<run initNeck()>> <<run initHands()>> + <<run initHandheld()>> <<run initLegs()>> <<run initFeet()>> <<set _allClothes to []>> <<run allClothesSetup()>> - <<set setup.clothes_all_slots to ["over_upper", "over_lower", "upper", "lower", "under_upper", "under_lower","over_head", "head", "face", "neck", "hands", "legs", "feet", "genitals"]>> + <<set setup.clothes_all_slots to ["over_upper", "over_lower", "upper", "lower", "under_upper", "under_lower","over_head", "head", "face", "neck", "hands", "handheld", "legs", "feet", "genitals"]>> <!-- Throw an error if any clothing item has an index which is not correct for its position in its array. --> <<run Object.keys(setup.clothes).forEach(slot => { @@ -66,7 +67,7 @@ /* freeze worn to prevent proxies from being overwritten */ Object.freeze(worn); C.worn = worn; - V.outfit = [{ index: 0, name: "Pyjamas", over_upper: "naked", over_lower: "naked", upper: "pyjama shirt", lower: "pyjama bottoms", under_upper: "naked", under_lower: "naked", over_head: "naked", head: "naked", face: "naked", neck: "naked", hands: "naked", legs: "naked", feet: "naked", type: ["sleep"], colors: false }]; + V.outfit = [{ index: 0, name: "Pyjamas", over_upper: "naked", over_lower: "naked", upper: "pyjama shirt", lower: "pyjama bottoms", under_upper: "naked", under_lower: "naked", over_head: "naked", head: "naked", face: "naked", neck: "naked", hands: "naked", handheld: "naked", legs: "naked", feet: "naked", type: ["sleep"], colors: false }]; <</script>> <<wardrobesUpdate>> <</widget>> @@ -97,6 +98,7 @@ <<set $wear_face to "none">> <<set $wear_neck to "none">> <<set $wear_hands to "none">> + <<set $wear_handheld to "none">> <<set $wear_legs to "none">> <<set $wear_feet to "none">> <<set $wear_genitals to "none">> @@ -115,6 +117,7 @@ <<set $worn.face to clone(setup.clothes.face[0])>> <<set $worn.neck to clone(setup.clothes.neck[0])>> <<set $worn.hands to clone(setup.clothes.neck[0])>> + <<set $worn.handheld to clone(setup.clothes.handheld[0])>> <<set $worn.legs to clone(setup.clothes.legs[0])>> <<set $worn.feet to clone(setup.clothes.feet[0])>> @@ -139,6 +142,8 @@ head: "naked", face: "naked", neck: "naked", + handheld: "naked", + hands: "naked", legs: "girl's gym socks", feet: "school shoes", type: ["normal"], @@ -156,6 +161,8 @@ head: "hairpin", face: "naked", neck: "naked", + handheld: "backpack", + hands: "naked", legs: "girl's gym socks", feet: "school shoes", type: ["school"], @@ -173,6 +180,8 @@ head: "naked", face: "naked", neck: "naked", + handheld: "naked", + hands: "naked", legs: "naked", feet: "naked", type: ["swim"], @@ -213,6 +222,8 @@ <<set $wardrobe.under_upper.last().colour to "blue">> <<set $wardrobe.under_lower.push(clone(setup.clothes.under_lower[6]))>> <<set $wardrobe.under_lower.last().colour to "blue">> + <<set $wardrobe.handheld.push(clone(setup.clothes.handheld[8]))>> + <<set $wardrobe.handheld.last().colour to "purple">> <<else>> <<set $outfit.push( {index: $outfit.length, @@ -227,6 +238,8 @@ head: "naked", face: "naked", neck: "naked", + handheld: "naked", + hands: "naked", legs: "boy's gym socks", feet: "school shoes", type: ["normal"], @@ -244,6 +257,8 @@ head: "naked", face: "naked", neck: "naked", + handheld: "backpack", + hands: "naked", legs: "boy's gym socks", feet: "school shoes", type: ["school"], @@ -261,6 +276,8 @@ head: "naked", face: "naked", neck: "naked", + handheld: "naked", + hands: "naked", legs: "naked", feet: "naked", type: ["swim"], @@ -289,6 +306,9 @@ <<set $wardrobe.under_lower.push(clone(setup.clothes.under_lower[7]))>> <<set $wardrobe.under_lower.last().colour to "blue">> <<set $wardrobe.head.push(clone(setup.clothes.head[1]))>> + <<set $wardrobe.handheld.push(clone(setup.clothes.handheld[8]))>> + <<set $wardrobe.handheld.last().colour to "blue">> + <</if>> <!-- strip the unneeded vars from starting clothes --> <<run clothesDataTrimmerLoop()>> diff --git a/game/base-clothing/school-shop.twee b/game/base-clothing/school-shop.twee index 09c48b252c8e3e521e8554e77a4c465713a0c34d..9d32ab570936529e18ca74e66dee0992bf7ba44c 100644 --- a/game/base-clothing/school-shop.twee +++ b/game/base-clothing/school-shop.twee @@ -89,6 +89,9 @@ *<<link "View Neck Accessories">><<replace "#clothingShop-div">><<NeckShop>><</replace>><</link>> *<br> */ + /*<<clothingcategoryicon "handheld">> + <<link "View Handheld Items">><<replace "#clothingShop-div">><<HandheldShop>><</replace>><</link>> + <br>*/ <<clothingcategoryicon "hand">> <<link "View Hand Accessories">><<replace "#clothingShop-div">><<HandsShop>><</replace>><</link>> <br> diff --git a/game/base-clothing/storeActions.twee b/game/base-clothing/storeActions.twee index c2fb57bfe983a18ea0c141a5373c49b664fd3f6c..144e76cc1d34ac1b5a79bbdd74a41f8a82fe0c2e 100644 --- a/game/base-clothing/storeActions.twee +++ b/game/base-clothing/storeActions.twee @@ -213,6 +213,13 @@ <<faceundress _temp_strip>> <</if>> + <<if $action_unclad_handheld is 1>> + <<unset $action_unclad_handheld>> + You put down your $worn.handheld.name. + <br> + <<handheldundress _temp_strip>> + <</if>> + <<if $action_unclad_hands is 1>> <<unset $action_unclad_hands>> <<if _temp_strip is "wolfcave">> @@ -340,6 +347,10 @@ <<set _stripOptions[$worn.hands.name] to "stripHands">> <</if>> + <<if !$worn.handheld.cursed and !_otherOutfits.handheld and $worn.handheld.name isnot "naked">> + <<set _stripOptions[$worn.handheld.name] to "stripHandheld">> + <</if>> + <<if Object.keys(_stripOptions).length gt 0>> Remove<<if _temp_strip isnot "birdtower">> and hide<</if>> your... @@ -365,6 +376,7 @@ <<case "stripHead">><<set $action_unclad_head to 1>> <<case "stripFace">><<set $action_unclad_face to 1>> <<case "stripHands">><<set $action_unclad_hands to 1>> + <<case "stripHandheld">><<set $action_unclad_handheld to 1>> <<default>> <</switch>> <</link>> diff --git a/game/base-clothing/updateClothes.js b/game/base-clothing/updateClothes.js index 9e3df03d1b9d37d474f65564d65b0d1a9a409326..c8a4d8f0fa4590946f404cf141cefa0590da0ae1 100644 --- a/game/base-clothing/updateClothes.js +++ b/game/base-clothing/updateClothes.js @@ -201,6 +201,7 @@ function wardrobesUpdate() { face: [], feet: [], hands: [], + handheld: [], head: [], legs: [], lower: [], diff --git a/game/base-clothing/wardrobes.twee b/game/base-clothing/wardrobes.twee index c4a1ffb6e47d7710838a12ae472b549515c8009c..a43af77a1ec88322bf6ef15a675ffccdb3f3d526 100644 --- a/game/base-clothing/wardrobes.twee +++ b/game/base-clothing/wardrobes.twee @@ -36,10 +36,10 @@ <<if $randomWear>> <<randomWear>> <</if>> - <<set _equip to ["over_upper", "over_lower", "upper", "lower", "under_upper", "under_lower", "over_head", "head", "face", "neck", "hands", "legs", "feet","genitals"]>> + <<set _equip to ["over_upper", "over_lower", "upper", "lower", "under_upper", "under_lower", "over_head", "head", "face", "neck", "hands", "handheld", "legs", "feet", "genitals"]>> <<set _slimePrevent to ["upper", "lower", "under_upper", "under_lower"]>> <<set _towelCheck to ["upper", "lower"]>> - <<set _equipSkip to {"over_upper":false, "over_lower":false, "upper":false, "lower":false, "under_upper":false, "under_lower":false, "over_head":false, "head":false, "face":false, "neck":false, "hands":false, "legs":false, "feet":false, "genitals":false}>> + <<set _equipSkip to {"over_upper":false, "over_lower":false, "upper":false, "lower":false, "under_upper":false, "under_lower":false, "over_head":false, "head":false, "face":false, "neck":false, "hands":false, "handheld":false, "legs":false, "feet":false, "genitals":false}>> <<set $_itemNames to []>> <<for _slot range _equip>> <<unset _outfitPieceIds>> @@ -285,6 +285,7 @@ <<set $wear_face to "none">> <<set $wear_neck to "none">> <<set $wear_hands to "none">> + <<set $wear_handheld to "none">> <<set $wear_legs to "none">> <<set $wear_feet to "none">> <<set $wear_genitals to "none">> @@ -449,6 +450,7 @@ { id: 'under_upper', label: 'Under Upper' }, { id: 'under_lower', label: 'Under Lower' }, { id: 'hands', label: 'Hands' }, + { id: 'handheld', label: 'Handheld' }, { id: 'legs', label: 'Legs' }, { id: 'feet', label: 'Feet' }, ]>> @@ -551,6 +553,7 @@ face: clone($worn.face.name), neck: clone($worn.neck.name), hands: clone($worn.hands.name), + handheld: clone($worn.handheld.name), legs: clone($worn.legs.name), feet: clone($worn.feet.name), genitals: clone($worn.genitals.name), @@ -565,7 +568,7 @@ <</if>> <<if _saveColor>> - <<set _equip to ["over_upper", "over_lower", "upper", "lower", "under_upper", "under_lower", "over_head", "head", "face", "neck", "hands", "legs", "feet"]>> + <<set _equip to ["over_upper", "over_lower", "upper", "lower", "under_upper", "under_lower", "over_head", "head", "face", "neck", "hands", "handheld", "legs", "feet"]>> <<set _colors to {}>> <<for _slot range _equip>> <<set _colors[_slot] to [$worn[_slot].colour, $worn[_slot].accessory_colour]>> @@ -1067,6 +1070,7 @@ <div id="clothingBox-face"><<oldWardrobeList "face">></div> <div id="clothingBox-neck"><<oldWardrobeList "neck">></div> <div id="clothingBox-hands"><<oldWardrobeList "hands">></div> + <div id="clothingBox-handheld"><<oldWardrobeList "handheld">></div> <div id="clothingBox-legs"><<oldWardrobeList "legs">></div> <div id="clothingBox-feet"><<oldWardrobeList "feet">></div> <div style="clear:both;"></div> diff --git a/game/base-clothing/widgets.twee b/game/base-clothing/widgets.twee index 5b6d6aab78d20328673e97e44fdb2997403ff78c..bfec4a9a1c2adb84963ef470856d27f8ab84367f 100644 --- a/game/base-clothing/widgets.twee +++ b/game/base-clothing/widgets.twee @@ -136,6 +136,10 @@ <<generalWear "hands" _args[0] _args[1] _args[2]>> <</widget>> +<<widget "handheldwear">> + <<generalWear "handheld" _args[0] _args[1] _args[2]>> +<</widget>> + <<widget "legswear">> <<generalWear "legs" _args[0] _args[1] _args[2]>> <</widget>> @@ -292,6 +296,10 @@ <<generalSend _args[1] "hands" _args[0] _args[2] _args[3]>> <</widget>> +<<widget "handheldsend">> + <<generalSend _args[1] "handheld" _args[0] _args[2] _args[3]>> +<</widget>> + <<widget "legssend">> <<generalSend _args[1] "legs" _args[0] _args[2] _args[3]>> <</widget>> @@ -317,6 +325,7 @@ <<facestrip>> <<neckstrip>> <<handsstrip>> + <<handheldstrip>> <<legsstrip>> <<feetstrip>> <<setKnowsAboutPregnancyCurrentLoaded>> @@ -433,6 +442,10 @@ <<generalStrip "hands">> <</widget>> +<<widget "handheldstrip">> + <<generalStrip "handheld">> +<</widget>> + <<widget "legsstrip">> <<generalStrip "legs">> <</widget>> @@ -441,6 +454,23 @@ <<generalStrip "feet">> <</widget>> +/*temporarily equips a handheld "prop" for visual effect in scenes. props can be cleared earlier in a scene via <<handheldon>> or <<clotheson>>, and are cleared in <<endevent>>*/ +<<widget "wearProp">> + <<switch _args[0]>> + <<case "milkshake">><<set _propIndex to 10>> + <<case "cigarette">><<set _propIndex to 11>> + <<case "popcorn">><<set _propIndex to 16>> + <<case "gingerbread">><<set _propIndex to 17>> + <<case "lemonade">><<set _propIndex to 18>> + <<case "mug">><<set _propIndex to 19>> + <<default>><span class="red">ERROR: _args[0] is not a valid prop. Please report this bug.</span> + <</switch>> + + <<set $propEquipped to 1>> + <<handheldstrip>> + <<handheldwear _propIndex>> +<</widget>> + /*Returns all carried clothes back to the wardrobe*/ <<widget "returnCarried">> <<if _args[0] is "wardrobe" or $wardrobes[_args[0]] is undefined>> @@ -487,6 +517,7 @@ <<handsruined>> <<legsruined>> <<feetruined>> + <<handheldruined>> <<setKnowsAboutPregnancyCurrentLoaded>> <</widget>> @@ -652,7 +683,7 @@ <<if $_item.colourCustom isnot undefined>><<set _colourCustom to $_item.colourCustom>><</if>> <<if $_item.accessory_colourCustom isnot undefined>><<set _accessory_colourCustom to $_item.accessory_colourCustom>><</if>> - <<if $_item.outfitSecondary isnot undefined and $_item.outfitSecondary[1] is "broken">> /* NO SPLIT ADDED */ + <<if $_item.outfitSecondary isnot undefined and $_item.outfitSecondary[1] is "broken">> /* NO SPLIT ADDED */ <<elseif $money gte $_cost>> <<generalSend $_return $_slot $_setupItem.index $_item.colour $_item.accessory_colour>> <<if $_item.one_piece is "split">> @@ -754,6 +785,11 @@ <<generalRuined "hands">> <</widget>> +<<widget "handheldruined">> + <<set _noRebuy to _args[0]>> + <<generalRuined "handheld">> +<</widget>> + <<widget "legsruined">> <<set _noRebuy to _args[0]>> <<generalRuined "legs">> @@ -778,8 +814,12 @@ <</for>> <<buttplugon>> <<if !($worn.upper.name is "naked" and $worn.lower.name is "naked" and $worn.under_lower.name is "naked" and $worn.under_upper.name is "naked")>> - You fix your clothing. + You fix your clothing<<if $rightarm is "bound">><<silently>><<handheldruined>><</silently>><<elseif !($worn.handheld.name is "naked")>> and pick up your $worn.handheld.name<</if>>. <br><br> + <<elseif $rightarm is "bound">> + <<silently>><<handheldruined>><</silently>> + <<elseif !($worn.handheld.name is "naked")>> + You pick up your $worn.handheld.name. <</if>> <<exposure>> @@ -803,7 +843,7 @@ <<set $_slot to _args[0]>> <</if>> <<set _slots to []>> - <<if $carried[$_slot].name isnot "naked">> + <<if $carried[$_slot].name isnot "naked" or ($_slot is "handheld" and $propEquipped is 1 and $carried[$_slot].name is "naked")>> <<if $worn[$_slot].cursed is 1>> <<carriedSend "wardrobe" $_slot>> <<else>> @@ -820,6 +860,7 @@ <</if>> <</for>> <<unset _outfitPrimaryOn>> + < <</if>> <</if>> @@ -877,6 +918,10 @@ <<generalOn "hands">> <</widget>> +<<widget "handheldon">> + <<generalOn "handheld">> +<</widget>> + <<widget "legson">> <<generalOn "legs">> <</widget>> @@ -1009,6 +1054,10 @@ <<generalSteal "hands" _args[0]>> <</widget>> +<<widget "handheldsteal">> + <<generalSteal "handheld" _args[0]>> +<</widget>> + <<widget "legssteal">> <<generalSteal "legs" _args[0]>> <</widget>> @@ -1077,7 +1126,7 @@ <<run window.wardrobeStripStraponException($worn.under_lower.name)>> <<else>> <<if _storeItemSkip is undefined>> - <<set _storeItemSkip to {"over_upper":false, "over_lower":false, "upper":false, "lower":false, "under_upper":false, "under_lower":false, "over_head":false, "head":false, "face":false, "neck":false, "hands":false, "legs":false, "feet":false, "butt_plug":true}>> + <<set _storeItemSkip to {"over_upper":false, "over_lower":false, "upper":false, "lower":false, "under_upper":false, "under_lower":false, "over_head":false, "head":false, "face":false, "neck":false, "hands":false, "handheld":false, "legs":false, "feet":false, "butt_plug":true}>> <</if>> <<unset _undressSlot>> /*Checks if the current slot is part of an outfit and switches to the main piece if that is the case*/ @@ -1239,6 +1288,10 @@ <<generalUndress _args[0] "hands">> <</widget>> +<<widget "handheldundress">> + <<generalUndress _args[0] "handheld">> +<</widget>> + <<widget "legsundress">> <<generalUndress _args[0] "legs">> <</widget>> @@ -1386,7 +1439,7 @@ /* Inputting "return" will return the item to the wardrobe */ <<widget "storeon">> - <<set _equipSkip to {"over_upper":false, "over_lower":false, "upper":false, "lower":false, "under_upper":false, "under_lower":false, "over_head":false, "head":false, "face":false, "neck":false, "hands":false, "legs":false, "feet":false}>> + <<set _equipSkip to {"over_upper":false, "over_lower":false, "upper":false, "lower":false, "under_upper":false, "under_lower":false, "over_head":false, "head":false, "face":false, "neck":false, "hands":false, "handheld":false, "legs":false, "feet":false}>> <<set _store_temp to _args[0]>> <<set _store_option to _args[1] or 0>> <<for $_slot range setup.clothingLayer.all>> @@ -1497,6 +1550,10 @@ <<generalStoreon _args[0] "hands" _args[1]>> <</widget>> +<<widget "storeonhandheld">> + <<generalStoreon _args[0] "handheld" _args[1]>> +<</widget>> + <<widget "storeonlegs">> <<generalStoreon _args[0] "legs" _args[1]>> <</widget>> @@ -1694,6 +1751,7 @@ neck:false, face:false, hands:false, + handheld:false, legs:false, feet:false, genitals:false, diff --git a/game/base-combat/end.twee b/game/base-combat/end.twee index 0b9f7c9b77fcf7deca1d933a284b3bf0406e7bd5..1610b914d53133751fbbaff2eba8aefbc6cdee91 100644 --- a/game/base-combat/end.twee +++ b/game/base-combat/end.twee @@ -627,6 +627,11 @@ <<set $index to 0>> <<set $modeloptionsOverride to {}>> + + <<if $propEquipped is 1 and $worn.handheld.type.includes("prop")>> + <<handheldon>> + <<unset $propEquipped>> + <</if>> <</widget>> :: Widgets End Speech [widget] diff --git a/game/base-combat/init.twee b/game/base-combat/init.twee index bfae413421e7113a7e343bf342bdbb77dac2c576..1e0d7e76da98cf1a3300d1d1af186fa99261cfae 100644 --- a/game/base-combat/init.twee +++ b/game/base-combat/init.twee @@ -425,7 +425,7 @@ <<set $stressgain to 0>> <<set $leftarm to "bound">> - <<set $rightarm to "bound">> + <<set $rightarm to "bound">><<handheldruined>> <<combatinit>> <</widget>> diff --git a/game/base-system/images.twee b/game/base-system/images.twee index d7f904420202136d55af6cdef5814260e2ea1be4..8b44e7396a47dccb5ab70059bd7004a1c02cd09f 100644 --- a/game/base-system/images.twee +++ b/game/base-system/images.twee @@ -925,6 +925,7 @@ <<widget "stallicon">> <<switch _args[0]>> <<case "open">><<icon "stall_open.png">> + <<case "balloon">><<icon "stall_balloon.png">> <<default>><<icon "stall.png">> <</switch>> <</widget>> @@ -993,6 +994,7 @@ <<widget "gifticon">> <<switch _args[0]>> + <<case "balloons">><<icon "balloons.png">> <<case "christmas">><<icon "gift_christmas.png">> <<case "christmas hat">><<icon "clothes/christmas_hat.png">> <<case "gothic">><<icon "clothes/gothic_gown.png">> @@ -1486,6 +1488,10 @@ <</switch>> <</widget>> +<<widget "smokeicon">> + <<icon "cig.png">> +<</widget>> + <<widget "daydreamicon">> <<icon "daydream.png">> <</widget>> diff --git a/game/base-system/named-npcs.twee b/game/base-system/named-npcs.twee index 55dd346f21c4767acb5d96584e68aee38d4e9b34..c971adb8d5e788b5d1ea411b98ebc68bb2efc95f 100644 --- a/game/base-system/named-npcs.twee +++ b/game/base-system/named-npcs.twee @@ -1217,7 +1217,11 @@ Zohar <<switch _npc>> <<case Robin>> Robin - <<if $robinromance is 1>> + <<if $robin.timer.hurt gte 2>> + <span class="red">feels betrayed.</span> + <<elseif $robin.timer.hurt gte 1>> + <span class="purple">feels conflicted.</span> + <<elseif $robinromance is 1>> <<if $NPCName[_i].trauma gte 80>> <<if $NPCName[_i].lust gte 50>> <span class="red">is lost in need for you.</span> diff --git a/game/base-system/overlays/journal.twee b/game/base-system/overlays/journal.twee index 67e918ffdcf2649672fc13f01aa4485187d4d575..d49626cb160319d1a525442fd63d7603c11a9499 100644 --- a/game/base-system/overlays/journal.twee +++ b/game/base-system/overlays/journal.twee @@ -29,477 +29,498 @@ <</if>> <br> <</if>> - <br> - <ul style="margin-top:0px;margin-left:-5px;"> - <<if $rentday isnot undefined>> - <<if $renttime lte 0>> - <li>Bailey is looking for you, and wants <<printmoney $rentmoney>><<babyRentDisplay " plus " " for not looking after your children" "gold">>.</li> - <<else>> - <li>Bailey wants <<printmoney $rentmoney>> on <<rentday>><<babyRentDisplay " plus " " for not looking after your children" "gold">>.</li> - <</if>> - <<elseif $rentmoney isnot undefined>> - <li>Bailey wants <<printmoney $rentmoney>><<babyRentDisplay " plus " " for not looking after your children" "gold">>.</li> - <</if>> - - <<if $psych is 1>> - <li>You have an appointment with Doctor Harper on Friday.</li> - <</if>> + <<if $rentday isnot undefined || $rentmoney isnot undefined>> + <hr> + <span class="gold bold">Time-Sensitive</span> + <ul style="margin-top:10px;margin-left:-5px;"> + <<if $rentday isnot undefined>> + <<if $renttime lte 0>> + <li>Bailey is looking for you, and wants <<printmoney $rentmoney>><<babyRentDisplay " plus " " for not looking after your children" "gold">>.</li> + <<else>> + <li>Bailey wants <<printmoney $rentmoney>> on <<rentday>><<babyRentDisplay " plus " " for not looking after your children" "gold">>.</li> + <</if>> + <<elseif $rentmoney isnot undefined>> + <li>Bailey wants <<printmoney $rentmoney>><<babyRentDisplay " plus " " for not looking after your children" "gold">>.</li> + <</if>> - <<if $eden_asylum_window is 1 and $location is "asylum">> - <<if Time.hour lt 22>> - <li>Eden will be watching the asylum at <<ampm 20 00>> tonight.</li> - <<else>> - <li>Eden is watching the asylum, waiting for you to mark your room.</li> - <</if>> - <</if>> + <<if $averydate is 1 and Time.hour lte 21 and $averydatedone isnot 1>> + <li>You have a date scheduled with Avery. <<nnpc_He "Avery">>'ll wait for you on Domus Street between <span class="gold"><<ampm 20 00>></span> and <span class="gold"><<ampm 21 00>></span>.</li> + <</if>> - <<if $daily.eden.distract gte 1 and $location is "asylum">> - <<if Time.hour lt 21>> - <li>Eden will create a distraction at <<ampm 21 00>> tonight.</li> - <</if>> - <</if>> + <<if $psych is 1>> + <li>You have an appointment with Doctor Harper on Friday.</li> + <</if>> - <<if $brothelshowdata.type isnot "none" and $brothelshowdata.intro>> - <<if Time.weekDay is 6 and not $brothelshowdata.done>> - <li>You're expected to perform at the brothel today.</li> - <<else>> - <li>You're expected to perform at the brothel on Friday.</li> - <</if>> - <<elseif $brothelshowdata.intro>> - <li>You can star in shows at the brothel.</li> - <</if>> + <<if $brothelshowdata.type isnot "none" and $brothelshowdata.intro>> + <<if Time.weekDay is 6 and not $brothelshowdata.done>> + <li>You're expected to perform at the brothel today.</li> + <<else>> + <li>You're expected to perform at the brothel on Friday.</li> + <</if>> + <</if>> - <<if $brothel_escortjob isnot undefined>> - <<if ($brothel_escortjob.done is undefined or $brothel_escortjob.escape is undefined) and $brothel_escortjob.accept is true and $brothel_escortjob.missed isnot true>> - <<set _date to new DateTime($brothel_escortjob.date)>> - <li>You're expected to be in front of the brothel - <<if Time.monthDay is _date.day>> - <span class="gold">today</span> at <span class="gold"><<ampm _date.hour>>.</span> - <<elseif _date.addDays(-7).day gte Time.monthDay>> - next <span class="gold">_date.weekDayName</span> at <span class="gold"><<ampm _date.hour>>.</span> - <<else>> - on <span class="gold">_date.weekDayName</span> at <span class="gold"><<ampm _date.hour>>.</span> - <</if>></li> - <</if>> - <</if>> + <<if $brothel_escortjob isnot undefined>> + <<if ($brothel_escortjob.done is undefined or $brothel_escortjob.escape is undefined) and $brothel_escortjob.accept is true and $brothel_escortjob.missed isnot true>> + <<set _date to new DateTime($brothel_escortjob.date)>> + <li>You have an escort job scheduled. You're expected to be in front of the brothel + <<if Time.monthDay is _date.day>> + <span class="gold">today</span> at <span class="gold"><<ampm _date.hour>>.</span> + <<elseif _date.addDays(-7).day gte Time.monthDay>> + next <span class="gold">_date.weekDayName</span> at <span class="gold"><<ampm _date.hour>>.</span> + <<else>> + on <span class="gold">_date.weekDayName</span> at <span class="gold"><<ampm _date.hour>>.</span> + <</if>></li> + <</if>> + <</if>> - <<if $dockwork gte 2>> - <li>You can work at the docks starting from <<ampm 7 00>> - <<ampm 8 00>> on any day except school days.</li> - <</if>> + <<if $community_service gte 1>> + <<if $community_service_done is 1>> + <li><span class="lblue">You've performed your community service today.</span></li> + <<elseif ["asylum","prison"].includes($location)>> + <li>Your sentence of community service has been put on hold due to your <<if $location is "prison">>incarceration<<else>>treatment<</if>>.</li> + <<elseif Time.hour gte 21>> + <li>It's too late in the day to perform your community service.</li> + <<elseif Time.hour lt 6>> + <li>The police station is expecting you later for your daily community service.</li> + <<else>> + <li>The police station is expecting you for your daily community service.</li> + <</if>> + <<if $community_service is 1>> + <li>You have <span class="purple">one day</span> of community service remaining.</li> + <<else>> + <li>You have <span class="pink">$community_service</span> days of community service remaining.</li> + <</if>> + <</if>> - <<if $pubtask2 is 1>> - <li>Return the black box to Landry at the pub.</li> - <<elseif $pubtask>> - <li>Landry wants you to retrieve a black box from the $pubtask.</li> - <</if>> + <<if $smuggler_known is 1 and $smuggler_timer gte 0>> + <li>Smugglers are bringing something valuable into town + <<if $smuggler_timer is 0>> + <span class="gold">tonight</span>, before midnight. + <<elseif $smuggler_timer is 1>> + <span class="gold">tomorrow</span>, before midnight. + <<else>> + in <span class="gold">$smuggler_timer</span> days. + <</if>> + <<if $smuggler_location is "forest">> + They're bringing it through the forest. + <<elseif $smuggler_location is "sewer">> + They're bringing it through the old sewers. + <<elseif $smuggler_location is "beach">> + They plan to land at that rock near the beach. + <<elseif $smuggler_location is "bus">> + They're sneaking it in on a bus. + <</if>> + </li> + <</if>> - <<if $police_hack is 1>> - <li>Landry might be able to help you with the locked police computer.</li> - <<elseif $pub_hack_job is 1>> - <li>Landry wants you to find a hacker supposedly named 'Mickey' living at the Domus street orphanage.</li> - <<elseif $pub_hack_job is 2>> - <li>Convince 'Mickey' to work with you.</li> - <<elseif $pub_hack_job is 3>> - <<if !$hacker_tasks.includes("bailey")>> - <li>'Mickey' wants you to implant a device on Bailey's computer while Bailey is logged in.</li> - <</if>> - <<if !$hacker_tasks.includes("leighton")>> - <li>'Mickey' wants you to steal memory cards from a strongbox under Leighton's desk.</li> - <</if>> - <<if $hacker_tasks.length gte 2>> - <li>You need to talk to Landry about 'Mickey'.</li> - <</if>> - <</if>> + <<if $farm_stage gte 7>> + <li>Remy will attack the farm + <<if $farm_attack_timer is 0>> + <span class="gold">tonight</span>. + <<elseif $farm_attack_timer is 1>> + <span class="gold">tomorrow</span>. + <<else>> + in <span class="gold">$farm_attack_timer</span> days. + <</if>> + <<nnpc_He Remy>>'ll arrive between <<ampm 21 00>> and midnight. + </li> + <</if>> - <<if $pubfame>> - <<if $pubfame.status is "accepted">> - <li> - <<switch $pubfame.task>> - <<case "river">> - 'Mickey' wants you to check on River, the maths teacher at your school. - <<case "gwylan">> - 'Mickey' wants you to find a specific snow globe at <<if $forest_shop_intro is 1>>Gwylan's shop<<else>>the shop on the outskirts of the forest<</if>>. - <<case "temple">> - 'Mickey' wants you to find a book on architecture at the temple with a password on the inside cover. - <<case "kylar">> - 'Mickey' wants you to deliver a letter to - <<if $NPCName[$NPCNameList.indexOf("Kylar")].state is "prison">> - the police station, so they can give it to Kylar. - <<else>> - Kylar<<if $NPCName[$NPCNameList.indexOf("Kylar")].init isnot 1>>, a student at your school<</if>>. - <</if>> - <<case "wren">> - 'Mickey' wants you to deliver a letter to <<if $wren_intro is undefined>>a <<nnpc_gender "Wren">> named Wren. <<nnpc_He "Wren">> can be found at Remy's estate in the moor, or at the docks at night<<else>>Wren<</if>>. - <<case "hospital">> - 'Mickey' wants you to steal a keycard from the hospital. - <<if $location is "asylum">> - However, you think they might be happy with a keycard from this place too. - <</if>> - <<case "morgan">> - 'Mickey' wants you to retrieve a USB drive from the old sewers. They think <<if $sewersintro is 1>>Morgan<<else>>someone down there<</if>> has it. - <<case "niki">> - 'Mickey' wants you to retrieve a photo from Niki's photography studio, of a $per_npc.pubfame_model.fullDescription with $pubfame.niki.hair hair. - <<case "bailey">> - 'Mickey' wants you to implant a device on Bailey's computer while Bailey is logged in. - <<case "briar">> - 'Mickey' wants you to implant a device on Briar's computer at the brothel. - <<case "office">> - 'Mickey' wants you to deliver a letter to the office building. - <<case "remy">> - <!-- intentionally does not include the password --> - 'Mickey' wants you to retrieve a package from a contact at Remy's riding school<<if $ridingschoolintro is undefined>>, in the countryside beyond Harvest Street<</if>>. - <<case "compound">> - 'Mickey' wants you to set cameras around the compound on Elk Street. - <<if $pubfame.compound.cameras.length gte 1>> - You've already hidden cameras in <<print formatList($pubfame.compound.cameras, "and", true)>>. - <</if>> - <</switch>> - They'll <<if $pubfame.goal.includes("perm")>>permanently<<else>>temporarily<</if>> <<if $pubfame.goal.includes("Raise")>>raise<<else>>lower<</if>> your <<fameProse $pubfame.target>> fame upon completion. - </li> - <<elseif $pubfame.status is "done">> - <li>You can report to 'Mickey' that your favour is complete.</li> - <</if>> + <<if $temple_rank is "initiate" or $temple_rank is "monk" or $temple_rank is "priest">> + <li>You are + <<if $temple_rank is "initiate">> + an initiate at the temple. + <<else>> + a <<temple_title>> of the temple. + <</if>> + <<if $temple_chastity_timer lte 0>> + <span class="pink">You have a chastity exam due.</span> + <<elseif $temple_chastity_timer is 1>> + You have a chastity exam due tomorrow. + <<else>> + You have a chastity exam due in <span class="gold">$temple_chastity_timer</span> days. + <</if>> + You will receive an <span class="gold">allowance</span> when passing the exam. + </li> + <</if>> + </ul> <</if>> - <<if $community_service gte 1>> - <<if $community_service_done is 1>> - <li><span class="lblue">You've performed your community service today.</span></li> - <<elseif ["asylum","prison"].includes($location)>> - <li>Your sentence of community service has been put on hold due to your <<if $location is "prison">>incarceration<<else>>treatment<</if>>.</li> - <<elseif Time.hour gte 21>> - <li>It's too late in the day to perform your community service.</li> - <<elseif Time.hour lt 6>> - <li>The police station is expecting you later for your daily community service.</li> - <<else>> - <li>The police station is expecting you for your daily community service.</li> - <</if>> - <<if $community_service is 1>> - <li>You have <span class="purple">one day</span> of community service remaining.</li> - <<else>> - <li>You have <span class="pink">$community_service</span> days of community service remaining.</li> - <</if>> - <</if>> + <<if ($location is "asylum" and ($eden_asylum_window is 1 or ($daily.eden.distract gte 1 and Time.hour lt 21))) || $temple_spear_mission gte 1 || $dockwork gte 2 || ($brothelshowdata.intro and $brothelshowdata.type is "none") || $robindebtevent gte 1 and $robinmissing isnot 0 || $pubtask2 is 1 || $pubtask || $police_hack is 1 || $pub_hack_job gte 1 || $pubfame || $earSlime.event and !_tempEventHide || $earSlime.forcedCommando isnot undefined || $earSlime.forcedDressing isnot undefined || $temple_rank || $chef_state gte 4 || $mason_pond gte 1 || ($brothel_machine_repair gte 1 and $brothel_machine_repair lte 3) || ($harpy gte 6 and $birdFly isnot 1) || $studyBooks isnot undefined and $studyBooks.rented isnot "none" || $adultshopgrandopening || ($adultshopintro is 1 and $adultshopunlocked is undefined)>> + /*TODO: streamline during eventual Journal UI Overhaul bc lol. lmao, even. */ + <hr> + <span class="gold bold">Reminders</span> + <ul style="margin-top:10px;margin-left:-5px;"> + <<if $temple_spear_mission is 1>> + <li>Jordan has tasked you with retrieving an artifact spear. It is said to reside on a mysterious island. + <<if $temple_spear_mission_winter is undefined>> + Jordan mentioned that the historian at the local museum might have more information. + <<else>> + According to Winter, you can find someone who knows of the island at a secret pub in the sewers. + <</if>> + </li> + <</if>> + <<if $eden_asylum_window is 1 and $location is "asylum">> + <<if Time.hour lt 22>> + <li>Eden will be watching the asylum at <<ampm 20 00>> tonight.</li> + <<else>> + <li>Eden is watching the asylum, waiting for you to mark your room.</li> + <</if>> + <</if>> - <<if $robindebtevent gte 1 and $robinmissing is "docks" and $docksrobinintro isnot 1>> - <li>Robin is missing. <<nnpc_He "Robin">> was taken to the docks on Mer Street.</li> - <</if>> + <<if $daily.eden.distract gte 1 and $location is "asylum">> + <<if Time.hour lt 21>> + <li>Eden will create a distraction at <<ampm 21 00>> tonight.</li> + <</if>> + <</if>> - <<if $robindebtevent gte 1 and $robinmissing is "landfill" and $mistrobinintro isnot 1 and $robinmistknown>> - <li>Robin is missing. <<nnpc_He "Robin">> was taken to the landfill on Elk Street.</li> - <</if>> + <<if $dockwork gte 2>> + <li>You can work at the docks starting from <<ampm 7 00>> - <<ampm 8 00>> on any day except school days.</li> + <</if>> - <<if $robindebtevent gte 1 and $robinmissing is "pillory" and $robinPillory.known is 1>> - <li>Robin is missing. - <<if Time.hour lte 14>> - <<nnpc_Hes "Robin">> scheduled to be put in the pillory on Cliff Street at <<ampm 15 00>>. - <<else>> - <<nnpc_Hes "Robin">> currently in the pillory. You don't know what will happen to <<nnpc_him "Robin">>. + <<if $brothelshowdata.intro and $brothelshowdata.type is "none" >> + <li>You can star in shows at the brothel.</li> <</if>> - </li> - <</if>> - <<if $averydate is 1 and Time.hour lte 21 and $averydatedone isnot 1>> - <li>You have a date scheduled with Avery. <<nnpc_He "Avery">>'ll wait for you on Domus Street between <<ampm 20 00>> and <<ampm 21 00>>.</li> - <</if>> + <<if $pubtask2 is 1>> + <li>Return the black box to Landry at the pub.</li> + <<elseif $pubtask>> + <li>Landry wants you to retrieve a black box from the $pubtask.</li> + <</if>> - <<if $earSlime.event and !_tempEventHide>> - <<switch $earSlime.event>> - <<case "get sperm into your anus" "get sperm into your vagina" "get sperm into your anus completed" "get sperm into your vagina completed">> - <li class="lewd">The slime in your head commanded you to get sperm into your <<print $player.vaginaExist ? "vagina" : "anus">>.</li> - <<case "get your own sperm into your anus" "get your own sperm into your vagina" "get your own sperm into your anus completed" "get your own sperm into your vagina completed">> - <li class="lewd">The slime in your head commanded you to get your own sperm into your <<print $player.vaginaExist ? "vagina" : "anus">>.</li> - <<case "only sleep naked from now on" "only wear feminine clothes for a while" "only wear masculine clothes for a while">> /* Show nothing */ - <<default>> - <li class="lewd">The slime in your head commanded you to <<print $earSlime.event>><<if $earSlime.noSleep>> before it allows you to sleep<</if>>.</li> - <</switch>> - <</if>> - <<if $earSlime.forcedCommando isnot undefined>> - <li class="lewd">The slime in your head commanded you to go commando.</li> - <</if>> - <<if $earSlime.forcedDressing isnot undefined>> - <li class="lewd">The slime in your head commanded you to only wear more <<print $earSlime.forcedDressing.type is "f" ? "feminine" : "masculine">> clothing.</li> - <</if>> + <<if $police_hack is 1>> + <li>Landry might be able to help you with the locked police computer.</li> + <<elseif $pub_hack_job is 1>> + <li>Landry wants you to find a hacker supposedly named 'Mickey' living at the Domus street orphanage.</li> + <<elseif $pub_hack_job is 2>> + <li>Convince 'Mickey' to work with you.</li> + <<elseif $pub_hack_job is 3>> + <<if !$hacker_tasks.includes("bailey")>> + <li>'Mickey' wants you to implant a device on Bailey's computer while Bailey is logged in.</li> + <</if>> + <<if !$hacker_tasks.includes("leighton")>> + <li>'Mickey' wants you to steal memory cards from a strongbox under Leighton's desk.</li> + <</if>> + <<if $hacker_tasks.length gte 2>> + <li>You need to talk to Landry about 'Mickey'.</li> + <</if>> + <</if>> - <<if $valentines is 1>> - <li> - Valentine's day is held on February 14th. - <<if $valentines_eden is 1 and !$valentines_eden_bought>> - You can buy something for Eden to celebrate. - <<elseif $valentines_eden_bought is 1>> - You can prepare a bath for Eden on Valentine's day at <<ampm 17 00>>. + <<if $pubfame>> + <<if $pubfame.status is "accepted">> + <li> + <<switch $pubfame.task>> + <<case "river">> + 'Mickey' wants you to check on River, the maths teacher at your school. + <<case "gwylan">> + 'Mickey' wants you to find a specific snow globe at <<if $forest_shop_intro is 1>>Gwylan's shop<<else>>the shop on the outskirts of the forest<</if>>. + <<case "temple">> + 'Mickey' wants you to find a book on architecture at the temple with a password on the inside cover. + <<case "kylar">> + 'Mickey' wants you to deliver a letter to + <<if $NPCName[$NPCNameList.indexOf("Kylar")].state is "prison">> + the police station, so they can give it to Kylar. + <<else>> + Kylar<<if $NPCName[$NPCNameList.indexOf("Kylar")].init isnot 1>>, a student at your school<</if>>. + <</if>> + <<case "wren">> + 'Mickey' wants you to deliver a letter to <<if $wren_intro is undefined>>a <<nnpc_gender "Wren">> named Wren. <<nnpc_He "Wren">> can be found at Remy's estate in the moor, or at the docks at night<<else>>Wren<</if>>. + <<case "hospital">> + 'Mickey' wants you to steal a keycard from the hospital. + <<if $location is "asylum">> + However, you think they might be happy with a keycard from this place too. + <</if>> + <<case "morgan">> + 'Mickey' wants you to retrieve a USB drive from the old sewers. They think <<if $sewersintro is 1>>Morgan<<else>>someone down there<</if>> has it. + <<case "niki">> + 'Mickey' wants you to retrieve a photo from Niki's photography studio, of a $per_npc.pubfame_model.fullDescription with $pubfame.niki.hair hair. + <<case "bailey">> + 'Mickey' wants you to implant a device on Bailey's computer while Bailey is logged in. + <<case "briar">> + 'Mickey' wants you to implant a device on Briar's computer at the brothel. + <<case "office">> + 'Mickey' wants you to deliver a letter to the office building. + <<case "remy">> + <!-- intentionally does not include the password --> + 'Mickey' wants you to retrieve a package from a contact at Remy's riding school<<if $ridingschoolintro is undefined>>, in the countryside beyond Harvest Street<</if>>. + <<case "compound">> + 'Mickey' wants you to set cameras around the compound on Elk Street. + <<if $pubfame.compound.cameras.length gte 1>> + You've already hidden cameras in <<print formatList($pubfame.compound.cameras, "and", true)>>. + <</if>> + <</switch>> + They'll <<if $pubfame.goal.includes("perm")>>permanently<<else>>temporarily<</if>> <<if $pubfame.goal.includes("Raise")>>raise<<else>>lower<</if>> your <<fameProse $pubfame.target>> fame upon completion. + </li> + <<elseif $pubfame.status is "done">> + <li>You can report to 'Mickey' that your favour is complete.</li> + <</if>> <</if>> - </li> - <</if>> - <<if $halloween is 1>> - <li> - Halloween is held on October 31st. - <<if $halloween_whitney is 1 and $NPCName[$NPCNameList.indexOf("Whitney")].state isnot "dungeon">> - Whitney will be trick-or-treating on Domus Street from <<ampm 19 00>>. + <<if $robindebtevent gte 1 and $robinmissing is "docks" and $docksrobinintro isnot 1>> + <li>Robin is missing. <<nnpc_He "Robin">> was taken to the docks on Mer Street.</li> <</if>> - <<if $halloween_robin is 1 and $robinmissing is 0>> - Robin wants to go trick-or-treating between <<ampm 16 00>> and <<ampm 19 00>>. + + <<if $robindebtevent gte 1 and $robinmissing is "landfill" and $mistrobinintro isnot 1 and $robinmistknown>> + <li>Robin is missing. <<nnpc_He "Robin">> was taken to the landfill on Elk Street.</li> <</if>> - <<if $halloween_kylar is 1 and $NPCName[$NPCNameList.indexOf("Kylar")].state isnot "prison">> - Kylar has asked you to meet in the park after <<ampm 21 00>>. + + <<if $robindebtevent gte 1 and $robinmissing is "pillory" and $robinPillory.known is 1>> + <li>Robin is missing. + <<if Time.hour lte 14>> + <<nnpc_Hes "Robin">> scheduled to be put in the pillory on Cliff Street at <<ampm 15 00>>. + <<else>> + <<nnpc_Hes "Robin">> currently in the pillory. You don't know what will happen to <<nnpc_him "Robin">>. + <</if>> + </li> + <</if>> + + <<if $earSlime.event and !_tempEventHide>> + <<switch $earSlime.event>> + <<case "get sperm into your anus" "get sperm into your vagina" "get sperm into your anus completed" "get sperm into your vagina completed">> + <li class="lewd">The slime in your head commanded you to get sperm into your <<print $player.vaginaExist ? "vagina" : "anus">>.</li> + <<case "get your own sperm into your anus" "get your own sperm into your vagina" "get your own sperm into your anus completed" "get your own sperm into your vagina completed">> + <li class="lewd">The slime in your head commanded you to get your own sperm into your <<print $player.vaginaExist ? "vagina" : "anus">>.</li> + <<case "only sleep naked from now on" "only wear feminine clothes for a while" "only wear masculine clothes for a while">> /* Show nothing */ + <<default>> + <li class="lewd">The slime in your head commanded you to <<print $earSlime.event>><<if $earSlime.noSleep>> before it allows you to sleep<</if>>.</li> + <</switch>> <</if>> - <<if $halloween_eden is 1>> - You can buy sweets for Eden to celebrate Halloween. + <<if $earSlime.forcedCommando isnot undefined>> + <li class="lewd">The slime in your head commanded you to go commando.</li> <</if>> - <<if $halloween_lake is 1>> - Students are throwing a party at the lake from <<ampm 18 00>> until midnight. - <<if $halloweenWolves>> - One of the members of the wolf pack was injured at it. - <</if>> + <<if $earSlime.forcedDressing isnot undefined>> + <li class="lewd">The slime in your head commanded you to only wear more <<print $earSlime.forcedDressing.type is "f" ? "feminine" : "masculine">> clothing.</li> <</if>> - </li> - <</if>> - <<if $christmas is 1>> - <<if Time.monthDay is 25>> - <<if Time.hour lte 20>> - <li>The orphans are celebrating Christmas.</li> + <<if $temple_rank is "prospective">> + <li>Jordan has offered you a place at the temple, but you must first pass the trial of purity.</li> <</if>> - <<else>> - <li>The orphans will celebrate Christmas on the 25th as best they can.</li> - <</if>> - <<if $christmas_gift is undefined>> - <li>You can buy them gifts at the shopping centre.</li> - <<elseif $christmas_gift is "clothes_unwrapped">> - <li>You can wrap their gifts in your room at the orphanage.</li> - <</if>> - <<if $christmas_gift_robin is undefined and $NPCName[$NPCNameList.indexOf("Robin")].init is 1>> - <li>You can buy Robin a gift at the shopping centre<<if $forest_shop_intro is 1>> or forest shop<</if>>.</li> - <<elseif $christmas_gift_robin and $christmas_gift_robin_wrapped isnot 1 and $NPCName[$NPCNameList.indexOf("Robin")].init is 1>> - <li>You can wrap Robin's gift in your room.</li> - <</if>> - <<if !$christmas_wrap>> - <li>The shopping centre should sell wrapping paper.</li> - <</if>> - <<if $syndromeeden gte 1>> - <<if Time.monthDay is 25>> - <<if Time.hour lte 20>> - <li>You can celebrate Christmas with Eden today.</li> - <</if>> - <<else>> - <li>Christmas is coming. You can celebrate it with Eden.</li> + + <<if $chef_state is 4>> + <li>Sam wants you to visit an address on Nightingale Street.</li> + <<elseif $chef_state is 7 and $chef_rework lte 0>> + <li>The renovations at the Ocean Breeze have finished.</li> + <<elseif $chef_state is 7 and $chef_rework lte 30>> + <li>The Ocean Breeze is closed for renovations. They will be done in <span class="gold">$chef_rework</span> days.</li> + <<elseif $chef_state is 7>> + <li>The Ocean Breeze will close for renovations in <span class="gold"><<print ($chef_rework - 30)>></span> days.</li> + <<elseif $chef_state is 8>> + <li>Sam wants you to attend the Ocean Breeze's grand reopening on any evening between <<ampm 18 00>> and <<ampm 21 00>>.</li> <</if>> - <</if>> - <<if $christmas_gift_eden is undefined and $syndromeeden gte 1>> - <li>You can buy Eden a gift at the shopping centre.</li> - <</if>> - <<if $edenmeal is 1>> - <li>Eden's invited you for a Christmas dinner at <<ampm 18 00>>.</li> - <</if>> - <</if>> - <<if $temple_rank is "prospective">> - <li>Jordan has offered you a place at the temple, but you must first pass the trial of purity.</li> - <<elseif $temple_rank is "initiate" or $temple_rank is "monk" or $temple_rank is "priest">> - <li>You are - <<if $temple_rank is "initiate">> - an initiate at the temple. - <<else>> - a <<temple_title>> of the temple. + <<if $mason_pond is 1>> + <li>Mason mentioned a stream under Domus Street, which could be used to make a spring. You'd need Bailey's permission first.</li> + <<elseif $mason_pond is 2>> + <li>Bailey wants <span class="gold">£6000</span> to build a spring in the orphanage garden.</li> + <<elseif $mason_pond is 3>> + <li>A spring is being built in the orphanage garden.</li> + <<elseif $mason_pond is 4>> + <li>The spring in the orphanage garden should be finished.</li> <</if>> - <<if $temple_chastity_timer lte 0>> - <span class="pink">You have a chastity exam due.</span> - <<elseif $temple_chastity_timer is 1>> - You have a chastity exam due tomorrow. - <<else>> - You have a chastity exam due in <span class="gold">$temple_chastity_timer</span> days. + + <<if $brothel_machine_repair is 1>> + <li>Ask Briar about the backstage sex machine.</li> + <<elseif $brothel_machine_repair is 2>> + <li>The brothel sex machine needs refuelling. It uses an expensive pink gel. Briar suggested looking in the landfill. It would be deep inside, near the compactor.</li> + <<elseif $brothel_machine_repair is 3>> + <li>You have the pink gel Briar wants for the sex machine.</li> <</if>> - You will receive an <span class="gold">allowance</span> when passing the exam. - </li> - <</if>> - <<if $temple_spear_mission is 1>> - <li>Jordan has tasked you with retrieving an artifact spear. It is said to reside on a mysterious island. - <<if $temple_spear_mission_winter is undefined>> - Jordan mentioned that the historian at the local museum might have more information. - <<else>> - According to Winter, you can find someone who knows of the island at a secret pub in the sewers. + <<if $harpy gte 6 and $birdFly isnot 1>> + <li>Your wings are strong, but you don't know how to use them. The Great Hawk could teach you.</li> <</if>> - </li> - <</if>> - <<if $chef_state is 4>> - <li>Sam wants you to visit an address on Nightingale Street.</li> - <<elseif $chef_state is 7 and $chef_rework lte 0>> - <li>The renovations at the Ocean Breeze have finished.</li> - <<elseif $chef_state is 7 and $chef_rework lte 30>> - <li>The Ocean Breeze is closed for renovations. They will be done in <span class="gold">$chef_rework</span> days.</li> - <<elseif $chef_state is 7>> - <li>The Ocean Breeze will close for renovations in <span class="gold"><<print ($chef_rework - 30)>></span> days.</li> - <<elseif $chef_state is 8>> - <li>Sam wants you to attend the Ocean Breeze's grand reopening on any evening between <<ampm 18 00>> and <<ampm 21 00>>.</li> - <</if>> + <<if $farm_state gte 5 and $estate_fence is undefined>> + <li>Remy is encroaching on Alex's farm, operating from the estate on the moor.</li> + <<elseif $estate_fence is "quest" and currentSkillValue('skulduggery') lt 800>> + <li>Find someone who can help you break into the Remy estate. Someone with underworld connections, or who knows the moor.</li> + <<elseif $estate_fence is "bird">> + <li>Search the Remy estate fence for an entrance made by the Great Hawk.</li> + <<elseif $estate_fence is "landry">> + <li>Search the Remy estate fence for an entrance made by Landry's specialist.</li> + <</if>> - <<if $smuggler_known is 1 and $smuggler_timer gte 0>> - <li>Smugglers are bringing something valuable into town - <<if $smuggler_timer is 0>> - <span class="gold">tonight</span>, before midnight. - <<elseif $smuggler_timer is 1>> - <span class="gold">tomorrow</span>, before midnight. - <<else>> - in <span class="gold">$smuggler_timer</span> days. + <<if $farm>> + <<if $farm.tower gte 1 and !$farm.tower_guard>> + <li>The watchtower at the farm isn't staffed. You can find suitable candidates in the pub on Harvest Street.</li> + <</if>> <</if>> - <<if $smuggler_location is "forest">> - They're bringing it through the forest. - <<elseif $smuggler_location is "sewer">> - They're bringing it through the old sewers. - <<elseif $smuggler_location is "beach">> - They plan to land at that rock near the beach. - <<elseif $smuggler_location is "bus">> - They're sneaking it in on a bus. + + <<if $photo>> + <<if $photo.silly is "accepted">> + <li>A business owner on the High Street is expecting you during the day.</li> + <<elseif $photo.silly is "done">> + <li>You can collect your pay for the High Street job from Niki.</li> + <</if>> <</if>> - </li> - <</if>> - <<if $mason_pond is 1>> - <li>Mason mentioned a stream under Domus Street, which could be used to make a spring. You'd need Bailey's permission first.</li> - <<elseif $mason_pond is 2>> - <li>Bailey wants <span class="gold">£6000</span> to build a spring in the orphanage garden.</li> - <<elseif $mason_pond is 3>> - <li>A spring is being built in the orphanage garden.</li> - <<elseif $mason_pond is 4>> - <li>The spring in the orphanage garden should be finished.</li> - <</if>> + <<if $jordan_ritual_dance is 1>> + <li>Jordan has asked you to investigate one of the manors on Danube street. One of the temple's flock went missing after finding work there. You can get access through Charlie, and your status as a dancer.</li> + <<elseif $jordan_ritual_dance is 2>> + <li>You encountered a strange ritual in a manor on Danube Street. Inform Jordan, priest at the temple.</li> + <</if>> - <<if $brothel_machine_repair is 1>> - <li>Ask Briar about the backstage sex machine.</li> - <<elseif $brothel_machine_repair is 2>> - <li>The brothel sex machine needs refuelling. It uses an expensive pink gel. Briar suggested looking in the landfill. It would be deep inside, near the compactor.</li> - <<elseif $brothel_machine_repair is 3>> - <li>You have the pink gel Briar wants for the sex machine.</li> - <</if>> + <<if $studyBooks isnot undefined and $studyBooks.rented isnot "none">> + <<if $book_rent_timer is 0>> + <li><span class="blue">You have a library book due.</span></li> + <<elseif $book_rent_timer lt 0>> + <li><span class="red">You have a library book overdue.</span></li> + <<else>> + <li>You have a library book due in <span class="gold">$book_rent_timer</span> day<<if $book_rent_timer gt 1>>s<</if>>.</li> + <</if>> + <</if>> - <<if $harpy gte 6 and $birdFly isnot 1>> - <li>Your wings are strong, but you don't know how to use them. The Great Hawk could teach you.</li> - <</if>> + <<if $farm>> + <<if $farm.build>> + <li> + <<switch $farm.build>> + <<case "parasites 1">> + The parasite barn is being built. + <<case "parasites 2">> + The parasite barn is being expanded. + <<case "wall 1">> + The wall is undergoing a thorough repair. + <<case "wall 2">> + The wall is being reinforced. + <<case "wall 3">> + A metal fence is being built atop the stone wall. + <<case "wall 4">> + Barbed wire is being affixed atop the fence. + <<case "tower 1">> + A watchtower is being constructed at the edge of the fields. + <<case "tower 2">> + Searchlights are being affixed atop the watchtower. + <<case "kennel 1">> + A guard dog training facility is being constructed. + <<case "barn 1" "barn 2">> + The barn is being expanded. + <<case "woodland 1" "woodland 2" "woodland 3">> + A fence is being built around the nearby woodland. + <<case "stable 1">> + The stable is being expanded. + <<case "coop 1" "coop 2">> + The coop is being expanded. + <<case "irrigation">> + Irrigation is being installed in a field. + <<case "nursery">> + A nursery is being built in the cottage. + <</switch>> + <<if $farm.build_timer is 1>> + It'll be finished <span class="gold">tomorrow.</span> + <<else>> + It'll be finished in <span class="gold"><<number $farm.build_timer>></span> days. + <</if>> + </li> + <</if>> + <</if>> - <<if $farm_state gte 5 and $estate_fence is undefined>> - <li>Remy is encroaching on Alex's farm, operating from the estate on the moor.</li> - <<elseif $estate_fence is "quest" and currentSkillValue('skulduggery') lt 800>> - <li>Find someone who can help you break into the Remy estate. Someone with underworld connections, or who knows the moor.</li> - <<elseif $estate_fence is "bird">> - <li>Search the Remy estate fence for an entrance made by the Great Hawk.</li> - <<elseif $estate_fence is "landry">> - <li>Search the Remy estate fence for an entrance made by Landry's specialist.</li> + <<if $adultshopgrandopening is true>> + <li>The grand opening of Sirris' adult shop is taking place on Elk Street today.</li> + <<elseif $adultshopintro is 1 and $adultshopunlocked is undefined>> + <<set $_theshop to "The adult shop">> + <li> + <<if $adultshopprogress gte 22>> + $_theshop's official opening is tomorrow. + <<elseif $adultshopprogress gte 18>> + $_theshop is nearing completion. + <<elseif $adultshopprogress gte 14>> + $_theshop is halfway to completion. + <<elseif $adultshopprogress gte 7>> + $_theshop is starting to take shape. + <<elseif $adultshopprogress gte 2>> + $_theshop is in disrepair. + <<else>> + $_theshop is in great disrepair. + <</if>> + <<if $adultshopprogress lt 22>> + You can help Sydney there on Elk Street, on Fridays after <<ampm 16>>. + <</if>> + </li> + <</if>> + </ul> <</if>> - <<if $farm>> - <<if $farm.tower gte 1 and !$farm.tower_guard>> - <li>The watchtower at the farm isn't staffed. You can find suitable candidates in the pub on Harvest Street.</li> - <</if>> + <<if $valentines is 1 or $halloween is 1 or $christmas is 1>> + <hr> + <span class="gold bold">Holidays</span> <</if>> - - <<if $farm_stage gte 7>> - <li>Remy will attack the farm - <<if $farm_attack_timer is 0>> - tonight. - <<elseif $farm_attack_timer is 1>> - tomorrow. - <<else>> - in $farm_attack_timer days. + <<if $valentines is 1>> + <ul style="margin-top:10px;margin-left:-5px;"> + <li>Valentine's day is held on February 14th.</li> + <<if $valentines_eden is 1 and !$valentines_eden_bought>> + <li>You can buy something for Eden to celebrate.</li> + <<elseif $valentines_eden_bought is 1>> + <li>You can prepare a bath for Eden on Valentine's day at <<ampm 17 00>>.</li> <</if>> - They'll arrive between <<ampm 21 00>> and midnight. - </li> - <</if>> - - <<if $photo>> - <<if $photo.silly is "accepted">> - <li>A business owner on the High Street is expecting you during the day.</li> - <<elseif $photo.silly is "done">> - <li>You can collect your pay for the High Street job from Niki.</li> - <</if>> + </ul> <</if>> - <<if $jordan_ritual_dance is 1>> - <li>Jordan has asked you to investigate one of the manors on Danube street. One of the temple's flock went missing after finding work there. You can get access through Charlie, and your status as a dancer.</li> - <<elseif $jordan_ritual_dance is 2>> - <li>You encountered a strange ritual in a manor on Danube Street. Inform Jordan, priest at the temple.</li> + <<if $halloween is 1>> + <ul style="margin-top:10px;margin-left:-5px;"> + <li>Halloween is held on October 31st.</li> + <<if $halloween_whitney is 1 and $NPCName[$NPCNameList.indexOf("Whitney")].state isnot "dungeon">> + <li>Whitney will be trick-or-treating on Domus Street from <<ampm 19 00>>.</li> + <</if>> + <<if $halloween_robin is 1 and $robinmissing is 0>> + <li>Robin wants to go trick-or-treating between <<ampm 16 00>> and <<ampm 19 00>>.</li> + <</if>> + <<if $halloween_kylar is 1 and $NPCName[$NPCNameList.indexOf("Kylar")].state isnot "prison">> + <li>Kylar has asked you to meet in the park after <<ampm 21 00>>.</li> + <</if>> + <<if $halloween_eden is 1>> + <li>You can buy sweets for Eden to celebrate Halloween.</li> + <</if>> + <<if $halloween_lake is 1>> + <li>Students are throwing a party at the lake from <<ampm 18 00>> until midnight.</li> + <<if $halloweenWolves>> + <li>One of the members of the wolf pack was injured at it.</li> + <</if>> + <</if>> + </ul> <</if>> - <<if $studyBooks isnot undefined and $studyBooks.rented isnot "none">> - <<if $book_rent_timer is 0>> - <li><span class="blue">You have a library book due.</span></li> - <<elseif $book_rent_timer lt 0>> - <li><span class="red">You have a library book overdue.</span></li> - <<else>> - <li>You have a library book due in <span class="gold">$book_rent_timer</span> day<<if $book_rent_timer gt 1>>s<</if>>.</li> - <</if>> - <</if>> + <<if $christmas is 1>> + <ul style="margin-top:10px;margin-left:-5px;"> + <li> + <<if Time.monthDay is 25 and Time.hour lte 20>> + The orphans are celebrating Christmas. + <<else>> + The orphans will celebrate Christmas on the <span class="gold">25th</span> as best they can. + <</if>> + <<if $christmas_gift is undefined>> + You can buy them gifts at the shopping centre. + <<elseif $christmas_gift is "clothes_unwrapped">> + You can wrap their gifts in your room at the orphanage. + <</if>> + </li> - <<if $farm>> - <<if $farm.build>> - <li> - <<switch $farm.build>> - <<case "parasites 1">> - The parasite barn is being built. - <<case "parasites 2">> - The parasite barn is being expanded. - <<case "wall 1">> - The wall is undergoing a thorough repair. - <<case "wall 2">> - The wall is being reinforced. - <<case "wall 3">> - A metal fence is being built atop the stone wall. - <<case "wall 4">> - Barbed wire is being affixed atop the fence. - <<case "tower 1">> - A watchtower is being constructed at the edge of the fields. - <<case "tower 2">> - Searchlights are being affixed atop the watchtower. - <<case "kennel 1">> - A guard dog training facility is being constructed. - <<case "barn 1" "barn 2">> - The barn is being expanded. - <<case "woodland 1" "woodland 2" "woodland 3">> - A fence is being built around the nearby woodland. - <<case "stable 1">> - The stable is being expanded. - <<case "coop 1" "coop 2">> - The coop is being expanded. - <<case "irrigation">> - Irrigation is being installed in a field. - <<case "nursery">> - A nursery is being built in the cottage. - <</switch>> - <<if $farm.build_timer is 1>> - It'll be finished <span class="gold">tomorrow.</span> - <<else>> - It'll be finished in <span class="gold"><<number $farm.build_timer>></span> days. + <<if $christmas_gift_robin is undefined and $NPCName[$NPCNameList.indexOf("Robin")].init is 1>> + <li>You can buy Robin a gift at the shopping centre<<if $forest_shop_intro is 1>> or forest shop<</if>>.</li> + <<elseif $christmas_gift_robin and $christmas_gift_robin_wrapped isnot 1 and $NPCName[$NPCNameList.indexOf("Robin")].init is 1>> + <li>You can wrap Robin's gift in your room.</li> <</if>> - </li> - <</if>> - <</if>> - - <<if $adultshopgrandopening is true>> - <li>The grand opening of Sirris' adult shop is taking place on Elk Street today.</li> - <<elseif $adultshopintro is 1 and $adultshopunlocked is undefined>> - <<set $_theshop to "The adult shop">> - <li> - <<if $adultshopprogress gte 22>> - $_theshop's official opening is tomorrow. - <<elseif $adultshopprogress gte 18>> - $_theshop is nearing completion. - <<elseif $adultshopprogress gte 14>> - $_theshop is halfway to completion. - <<elseif $adultshopprogress gte 7>> - $_theshop is starting to take shape. - <<elseif $adultshopprogress gte 2>> - $_theshop is in disrepair. - <<else>> - $_theshop is in great disrepair. + <<if !$christmas_wrap>> + <li>The shopping centre should sell wrapping paper.</li> <</if>> - <<if $adultshopprogress lt 22>> - You can help Sydney there on Elk Street, on Fridays after <<ampm 16>>. + + <<if $syndromeeden gte 1>> + <<if Time.monthDay is 25>> + <<if Time.hour lte 20>> + <li>You can celebrate Christmas with Eden today.</li> + <</if>> + <<else>> + <li>Christmas is coming. You can celebrate it with Eden.</li> + <</if>> + <<if $christmas_gift_eden is undefined>> + <li>You can buy Eden a gift at the shopping centre.</li> + <</if>> + <<if $edenmeal is 1>> + <li>Eden's invited you for a Christmas dinner at <<ampm 18 00>>.</li> + <</if>> <</if>> - </li> + </ul> <</if>> - </ul> <<if $scienceproject is "ongoing">> <hr> @@ -724,7 +745,7 @@ </ul> <</if>> - <<if $antiquemoney gt 0 || $blackmoney gt 0 || $phials_held gte 1 || $lurkers_held gte 1>> + <<if $antiquemoney gt 0 || $blackmoney gt 0 || $phials_held gte 1 || $lurkers_held gte 1 || $popcorn gte 1 || $milkshake gte 1>> <hr> <span class="gold bold">Inventory</span> <br> @@ -754,6 +775,12 @@ <</if>> </li> <</if>> + <<if $milkshake gte 1>> + <li>You are carrying <span class="green">$milkshake</span> <<print $milkshake is 1 ? "milkshake" : "milkshakes">>.</li> + <</if>> + <<if $popcorn gte 1>> + <li>You are carrying <span class="green">$popcorn</span> <<print $popcorn is 1 ? "bag" : "bags">> of popcorn.</li> + <</if>> </ul> <<if $plants_known.length gt 0>> @@ -863,7 +890,7 @@ <div class="red">Reloading your older save files will not have your recent changes. Excessive use will bloat save file size.</div> </span></mouse> <<textarea "_displayedTextArea" `LZString.decompress($journalNotes[_currentPage])`>> - + <<run $(() => { var notesTimer = null; $('#textarea--displayedtextarea').on('input change', e => { diff --git a/game/base-system/overlays/statistics.twee b/game/base-system/overlays/statistics.twee index 5da7e640e26224e95a240e2bfe7f4472801f758f..e030fd8b86dbc4e91a19152eff48808fab6eea30 100644 --- a/game/base-system/overlays/statistics.twee +++ b/game/base-system/overlays/statistics.twee @@ -469,6 +469,10 @@ Most days with a passive ear slime: $earSlimePassiveDaysStat <br> <</if>> + <<if $whitney_smoke gte 1>> + Cigarettes smoked: $whitney_smoke + <br> + <</if>> <br> <</foldout>> @@ -769,10 +773,8 @@ <br> Model fame: <<print Math.trunc($fame.model)>> <br> - <<if $islander_language>> - Islander language: <<print Math.trunc($islander_language)>> - <br> - <</if>> + Islander language: <<if $islander_language is undefined>>0<<else>><<print Math.trunc($islander_language)>><</if>> + <br><br> <</foldout>> <<foldout false "_crimeFoldout">> diff --git a/game/base-system/sleep.twee b/game/base-system/sleep.twee index 4a8ca4a56039ff2e564a2334414fd44b6fb79ff4..6ede29a5b5b7abe4bbfd6e989f2883d04a56e93f 100644 --- a/game/base-system/sleep.twee +++ b/game/base-system/sleep.twee @@ -35,8 +35,8 @@ <<if $bedGuest and $transformationParts.traits.mateForLife isnot "disabled" and isLoveInterest($bedGuest) and !$sleepWraith>> <<set $_bonusFatigueLoss += 3>><<set $stress -= 10>><<set $trauma -= 1>><<set $arousal += 10>> <</if>> - <!-- wearing any non-sleep clothing disables the sleep bonus (except under_upper and under_upper and anything else not listed here) --> - <<if !["over_upper", "over_lower", "upper", "lower", "over_head", "head", "face", "neck", "hands", "legs", "feet"].every(slot => $worn[slot].type.includes("naked") || $worn[slot].type.includes("sleep") || $worn[slot].type.includes("eerie"))>> + <!-- wearing any non-sleep clothing disables the sleep bonus (except under_upper and under_lower and anything else not listed here) --> + <<if !["over_upper", "over_lower", "upper", "lower", "over_head", "head", "face", "neck", "hands", "handheld", "legs", "feet"].every(slot => $worn[slot].type.includes("naked") || $worn[slot].type.includes("sleep") || $worn[slot].type.includes("eerie"))>> <<set $_bonusFatigueLoss to 0>> <</if>> <!-- sleeping in a poor/regular/comfy bed at home provides a -10/0/+10 bonus regardless of clothing --> @@ -72,7 +72,7 @@ <<set _sleepinterrupt to 1>> <<set _kylarWake to 2>> - <<elseif (($robinromance is 1 and _robin.lust gte 20) or (_robin.trauma gte 50 and $rng gte 51)) and !$robinbed and $robinwakeday isnot 1 and $kylarbed isnot 1 and $robinmissing is 0 /*and !$robin_kicked_out*/>> + <<elseif (($robinromance is 1 and _robin.lust gte 20) or (_robin.trauma gte 50 and $rng gte 51)) and !$robinbed and $robinwakeday isnot 1 and $kylarbed isnot 1 and $robinmissing is 0 and $robin.timer.hurt is 0 /*and !$robin_kicked_out*/>> <!-- Robin climbs into bed with you --> <<if Time.hour gte 18 or Time.hour lte 6>> <<set _sleepinterrupt to 1>> diff --git a/game/base-system/text.twee b/game/base-system/text.twee index 3048422a5e158e2ac46dbab7d16923cec884b598..2080248a598611bb158065bb8db405828088a175 100644 --- a/game/base-system/text.twee +++ b/game/base-system/text.twee @@ -7700,6 +7700,16 @@ Argument 2, where appropriate, determines whether it's the player undressing the <</if>> <</widget>> +<<widget "npcHurt">> + <<switch _args[0]>> + <<case "robin">> + <<set _text_output to "upset about "+$robin.hurtReason>> + <<default>> + <<set _text_output to either("hurt","upset")>> + <</switch>> + <<print _text_output>> +<</widget>> + <<widget "gbeauty">> <<if $statdisable is "f">> | <span class="green">+ Beauty</span> @@ -7903,6 +7913,19 @@ Argument 2, where appropriate, determines whether it's the player undressing the <<plant_details _args[0]>><<capitalise>> <</silently>><<print _text_output>><</widget>> +<<widget "seasonal_beverage">><<silently>> + <<switch Time.season>> + <<case "spring">> + <<set _text_output to "strawberry lemonade">> + <<case "summer">> + <<set _text_output to "lemonade">> + <<case "autumn">> + <<set _text_output to "mulled apple cider">> + <<case "winter">> + <<set _text_output to "hot chocolate">> + <</switch>> +<</silently>><<print _text_output>><</widget>> + <<widget "tower_creature_text">> <<silently>> <<if $NPCList[0].monster is "monster">> diff --git a/game/base-system/time/time.js b/game/base-system/time/time.js index af26f8d51dc35245e1d19eb1814a39d61ed331d9..63a5f5293df2d10506043afb4533f1c2080860f0 100644 --- a/game/base-system/time/time.js +++ b/game/base-system/time/time.js @@ -346,7 +346,7 @@ function weekPassed() { fragment.append(wikifier("robinPunishment", "docks")); V.robineventnote = 1; } - V.robinmoney += 300; + V.robinmoney += (300 + V.robin.moneyModifier); V.compoundcentre = 0; if (V.edenfreedom >= 1 && V.edenshopping === 2) V.edenshopping = 0; if (V.loft_kylar) V.loft_spray = 0; @@ -477,6 +477,10 @@ function dayPassed() { V.estatePersistent.newDeckTimer--; } } + if (V.balloonStand.robin.status === "closed") V.balloonStand.robin.status = "sabotaged"; + if (V.robin.timer.customer >= 1) V.robin.timer.customer--; + if (V.robin.timer.hurt >= 1) V.robin.timer.hurt--; + if (V.robin.timer.hurt === 0) V.robin.hurtReason = "nothing"; if (numberOfEarSlime()) { // Daily Corruption @@ -1656,7 +1660,7 @@ function passWater(passMinutes) { if (V.lowerwet) fragment.append(wikifier("lowerwet", -passMinutes * 2)); if (V.underlowerwet) fragment.append(wikifier("underlowerwet", -passMinutes * (V.worn.lower.type.includes("naked") ? 2 : 1))); if (V.underupperwet) fragment.append(wikifier("underupperwet", -passMinutes * (V.worn.upper.type.includes("naked") ? 2 : 1))); - } else if (V.outside && V.weather === "rain" && !V.worn.head.type.includes("rainproof")) { + } else if (V.outside && V.weather === "rain" && !V.worn.head.type.includes("rainproof") && !V.worn.handheld.type.includes("rainproof")) { if (!V.worn.upper.type.includes("naked") && !waterproofCheck(V.worn.upper) && !waterproofCheck(V.worn.over_upper)) { fragment.append(wikifier("upperwet", passMinutes)); } diff --git a/game/base-system/widgets.js b/game/base-system/widgets.js index f9108e1b3d199831a14f28580912ca120863fc54..dca350bcf3b96ab2e61cd86b104e2b34d8e2acdf 100644 --- a/game/base-system/widgets.js +++ b/game/base-system/widgets.js @@ -137,6 +137,7 @@ function genderappearancecheck() { addfemininityofclothingarticle("face", V.worn.face); addfemininityofclothingarticle("neck", V.worn.neck); addfemininityofclothingarticle("legs", V.worn.legs); + addfemininityofclothingarticle("handheld", V.worn.handheld); addfemininityofclothingarticle("feet", V.worn.feet); /* Hair length */ if (V.worn.over_head.hood !== 1 && V.worn.head.hood !== 1) { diff --git a/game/base-system/widgets.twee b/game/base-system/widgets.twee index 22c5795b783542b2edc162bd40057d4aaefd0c4c..4f203312347cccc88c55b719f13d1f311acf383e 100644 --- a/game/base-system/widgets.twee +++ b/game/base-system/widgets.twee @@ -2321,8 +2321,18 @@ <</widget>> <<widget "bind">> - <<set $leftarm to "bound">> - <<set $rightarm to "bound">> + <<if _args[0]>> + <<set _args[0] to "bound">> + <<if $rightarm is "bound" and $worn.handheld.name isnot "naked">> + <<handheldruined>> + <</if>> + <<else>> + <<set $leftarm to "bound">> + <<set $rightarm to "bound">> + <<if $worn.handheld.name isnot "naked">> + <<handheldruined>> + <</if>> + <</if>> <</widget>> <<widget "legbind">> @@ -2358,7 +2368,7 @@ <<if $leftarm is "bound" and $position isnot "wall">><<set $leftboundcarry to 1>><</if>> <<if $rightarm is "bound" and $position isnot "wall">><<set $rightboundcarry to 1>><</if>> <<if $rightboundcarry is 1 and $rightarm isnot "bound">> - <<set $rightarm to "bound">> + <<set $rightarm to "bound">><<handheldruined>> <</if>> <<if $leftboundcarry is 1 and $leftarm isnot "bound">> <<set $leftarm to "bound">> diff --git a/game/overworld-forest/loc-churchyard/catacombs.twee b/game/overworld-forest/loc-churchyard/catacombs.twee index 3c354247351c566f393213f46c2986a892dc9e11..06d1f9018e9be758e75c46f9b1d86478e2e2560d 100644 --- a/game/overworld-forest/loc-churchyard/catacombs.twee +++ b/game/overworld-forest/loc-churchyard/catacombs.twee @@ -20,7 +20,7 @@ You are in the catacombs beneath the forest. A staircase leads upwards, to the c The statue's eyes flicker. The web covering you slacks, loosens, <span class="green">and falls apart.</span> <br><br> <<if $worn.upper.name is "cocoon">> - <<upperruined>> + <<upperruined>><<handheldruined>> <</if>> <<if $worn.lower.name is "cocoon bottom">> <<lowerruined>> diff --git a/game/overworld-forest/loc-churchyard/widgets.twee b/game/overworld-forest/loc-churchyard/widgets.twee index 9c289e56b38a70011fd66b1552b2414b07b8ddcc..6d3c81f014d2c75ffad520f59f1aeddf302ee587 100644 --- a/game/overworld-forest/loc-churchyard/widgets.twee +++ b/game/overworld-forest/loc-churchyard/widgets.twee @@ -420,7 +420,7 @@ <<faceruined>> <</if>> <<if $worn.upper.name is "cocoon">> - <<upperruined>> + <<upperruined>><<handheldruined>> <</if>> <<if $worn.lower.name is "cocoon bottom">> <<lowerruined>> @@ -432,7 +432,7 @@ <<faceruined>> <</if>> <<if $worn.upper.name is "cocoon">> - <<upperruined>> + <<upperruined>><<handheldruined>> <</if>> <<if $worn.lower.name is "cocoon bottom">> <<lowerruined>> diff --git a/game/overworld-forest/loc-forest/events.twee b/game/overworld-forest/loc-forest/events.twee index f8e0792b4699e554adf67014d88ba1d704d869dc..523d5e4ee5748640be426facbe831bbe47a8f3e8 100644 --- a/game/overworld-forest/loc-forest/events.twee +++ b/game/overworld-forest/loc-forest/events.twee @@ -2375,7 +2375,7 @@ You come across a large plant, taller and thicker than you. It's surrounded by v :: Forest Pitcher <<effects>> -The dizziness becomes too intense. The world spins, and you fall. The vines spring to life as you land on them, wrapping around your limbs and pulling you into the air. You dangle, limp, as they lift you over the maw of the plant, and then inside.<<if $slimeObey isnot true>><<gtrauma>><<ggstress>><<trauma 6>><<stress 12>><</if>> +The dizziness becomes too intense. The world spins, and you fall. The vines spring to life as you land on them, wrapping around your limbs and pulling you into the air<<if $worn.handheld.name isnot "naked">>, forcing you to drop your $worn.handheld.name. <<handheldruined>><</if>>. You dangle, limp, as they lift you over the maw of the plant, and then inside.<<if $slimeObey isnot true>><<gtrauma>><<ggstress>><<trauma 6>><<stress 12>><</if>> <br><br> The fall jolts you to your senses. You land in a thick mucus that sticks to your skin, making it tingle. @@ -5431,7 +5431,7 @@ They step back and admire their handiwork triumphantly, while the other students <br><br> Held in place, you are powerless to resist as the <<person>> systematically tears and cuts off your clothing, leaving only the $worn.under_lower.name that suspend<<if $worn.under_lower.plural isnot 1>>s<</if>> you in the air. They step back and admire their handiwork triumphantly, while the other students giggle and take pictures.<<fameexhibitionism 50>> <br><br> - "Have fun up there, loser!" the <<person>> shouts as the group walks away. <<overheadruined>> <<overupperruined>> <<overlowerruined>> <<upperruined>> <<lowerruined>> <<underupperruined>> <<headruined>> <<faceruined>> <<legsruined>> <<feetruined>> <<handsruined>> <<ggstress>><<stress 50>> + "Have fun up there, loser!" the <<person>> shouts as the group walks away. <<overheadruined>> <<overupperruined>> <<overlowerruined>> <<upperruined>> <<lowerruined>> <<underupperruined>> <<headruined>> <<faceruined>> <<legsruined>> <<feetruined>> <<handsruined>><<handheldruined>><<ggstress>><<stress 50>> <</if>> <<forestBullyLeaves>> @@ -5447,7 +5447,7 @@ They step back and admire their handiwork triumphantly, while the other students <br><br> The <<person>> then begins to systematically tear and cut off your clothing, leaving only the $worn.under_lower.name that suspend<<if $worn.under_lower.plural isnot 1>>s<</if>> you in the air. <<He>> steps back and admires <<his>> handiwork triumphantly, while the other students giggle and take pictures.<<fameexhibitionism 50>> <br><br> - "Have fun up there, loser!" the <<person>> shouts as they walk away. <<overheadruined>> <<overupperruined>> <<overlowerruined>> <<upperruined>> <<lowerruined>> <<underupperruined>> <<headruined>> <<faceruined>> <<legsruined>> <<feetruined>> <<handsruined>> <<ggstress>><<stress 50>> + "Have fun up there, loser!" the <<person>> shouts as they walk away. <<overheadruined>> <<overupperruined>> <<overlowerruined>> <<upperruined>> <<lowerruined>> <<underupperruined>> <<headruined>> <<faceruined>> <<legsruined>> <<feetruined>> <<handsruined>> <<handheldruined>><<ggstress>><<stress 50>> <</if>> <<forestBullyLeaves>> diff --git a/game/overworld-forest/loc-lake/events.twee b/game/overworld-forest/loc-lake/events.twee index ad8b141ed3c356a9fb3b1faa78cd74027723b627..3d82a1e03622f24c46f7ac39d6a341c2006a697d 100644 --- a/game/overworld-forest/loc-lake/events.twee +++ b/game/overworld-forest/loc-lake/events.twee @@ -1065,7 +1065,7 @@ You wave at the <<person>>. <<He>> waves back. <<Hes>> a distance away, but you <<location "forest">><<effects>> <<set $forest to 10>> -<<set $leftarm to "bound">><<set $rightarm to "bound">> +<<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>> <<upperruined>><<lowerruined>><<underruined>> <<generateCultist 1>><<person1>> <<if $pronoun is "m">> diff --git a/game/overworld-forest/loc-wolfpack/hunts.twee b/game/overworld-forest/loc-wolfpack/hunts.twee index f18efc5b3904200cf0be8fe973d404c4b8a20664..520595a89e4cd85db223354e96abd04de86ce9ae 100644 --- a/game/overworld-forest/loc-wolfpack/hunts.twee +++ b/game/overworld-forest/loc-wolfpack/hunts.twee @@ -633,7 +633,7 @@ The pack lazes around, eating at their leisure. A small dispute breaks out and t <<person2>>"I know," the <<person>> says. <<He>> produces a rope from a bag beside the fire and ties your arms together. "There. Have fun being wolf food." <<tearful>> you leave the camp. You walk until their laughter fades behind you. <br><br> - <<set $leftarm to "bound">><<set $rightarm to "bound">> + <<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>> <<clotheson>> <<endcombat>> <<else>> diff --git a/game/overworld-plains/loc-bird/main.twee b/game/overworld-plains/loc-bird/main.twee index 33d799940eb719ac2e48e243bf68c9a58c8816a7..009689301e4255a0b3e4eb605ec1dc1b93233698 100644 --- a/game/overworld-plains/loc-bird/main.twee +++ b/game/overworld-plains/loc-bird/main.twee @@ -661,6 +661,10 @@ You have <<number $bird.fabric>> spare material<<if $bird.fabric gt 1>>s<</if>>. Tear up your <<link [[$worn.hands.name|Bird Tower Rope Clothes]]>><<set $bird.fabric += 1>><<handsruined>><</link>> <br> <</if>> + <<if $worn.handheld.name isnot "naked" and $worn.handheld.cursed isnot 1>> + Tear up your <<link [[$worn.hands.name|Bird Tower Rope Clothes]]>><<set $bird.fabric += 1>><<handheldruined>><</link>> + <br> + <</if>> <<if $worn.legs.name isnot "naked" and $worn.legs.cursed isnot 1>> Tear up your <<link [[$worn.legs.name|Bird Tower Rope Clothes]]>><<set $bird.fabric += 1>><<legsruined>><</link>> <br> diff --git a/game/overworld-plains/loc-farm/exhibitionism.twee b/game/overworld-plains/loc-farm/exhibitionism.twee index ba7be88e9a21b96927dc436646c707dc7d761969..c78c422449a234a92dd9e00695b0f5ff03976a50 100644 --- a/game/overworld-plains/loc-farm/exhibitionism.twee +++ b/game/overworld-plains/loc-farm/exhibitionism.twee @@ -476,7 +476,7 @@ They shove you around the lorry, onto the street, and close the gate behind you. <</if>> <br><br> -The <<person1>><<person>> slams <<his>> fist into your tummy, forcing you to keel over. "Foul mouth on this one," the <<person2>><<person>> laughs. "I'd say <<pshe>> belong with the pigs, but <<pher>> bad attitude might rub off on them." +The <<person1>><<person>> <<print playerBellyVisible() ? "delivers a swift kick to your kneecap" : "slams <<his>> fist into your tummy">>, forcing you to keel over. "Foul mouth on this one," the <<person2>><<person>> laughs. "I'd say <<pshe>> belong with the pigs, but <<pher>> bad attitude might rub off on them." <br><br> They shove you around the lorry, onto the street, and close the gate behind you. They didn't give you anything to cover with. diff --git a/game/overworld-plains/loc-farm/main.twee b/game/overworld-plains/loc-farm/main.twee index 876cc39b0c4d7c92cc26853d9ea400674543af0a..e1045454c2b2f4fc1d3a0def678f7e6556625758 100644 --- a/game/overworld-plains/loc-farm/main.twee +++ b/game/overworld-plains/loc-farm/main.twee @@ -2035,7 +2035,7 @@ Alex tries to respond, but can't form the words. <<He>> closes the shed door beh <<if $arousal gte $arousalmax>> Your body shakes. <<orgasm>> - Rather than surprised, Alex is emboldened by your orgasm. "You're such a pervert," <<he>> says, pulling your body into <<hers>>. + Rather than surprised, Alex is emboldened by your orgasm. "You're such a pervert," <<he>> says, pulling your body against <<his>>. <br><br> <<if $promiscuity gte 15>> diff --git a/game/overworld-plains/loc-farm/meadow.twee b/game/overworld-plains/loc-farm/meadow.twee index 053d5704640cd520da80101103f6d726747b6ec1..9c29fa8a1fb60ab47df8c018656c4b56f5bc4873 100644 --- a/game/overworld-plains/loc-farm/meadow.twee +++ b/game/overworld-plains/loc-farm/meadow.twee @@ -252,7 +252,7 @@ You drop to your knees and crawl into the hole. Your waist gets stuck. The tunne <<violence 1>> <<neutral 1>> <<molested>> - <<maninit>><<set $position to "wall">><<set $leftarm to "bound">><<set $rightarm to "bound">><<set $head to "bound">> + <<maninit>><<set $position to "wall">><<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>><<set $head to "bound">> <</if>> diff --git a/game/overworld-plains/loc-farm/work.twee b/game/overworld-plains/loc-farm/work.twee index fc14aff77bc8eb3e488e380dfd018cb9affe0c7a..c95364aeffd38d5329404c62bd1d840837341a41 100644 --- a/game/overworld-plains/loc-farm/work.twee +++ b/game/overworld-plains/loc-farm/work.twee @@ -1009,7 +1009,7 @@ You follow <<him>> to the farmhouse. Alex need only turn to see your <<lewdness> A towel drops down the stairwell, and you dry yourself in the kitchen. You hear Alex come down the stairs. <<He>> asks if you're decent before entering. -<<if $weather is "rain" and !$worn.head.type.includes("rainproof")>> +<<if $weather is "rain" and (!$worn.head.type.includes("rainproof") || !$worn.handheld.type.includes("rainproof"))>> "Get yourself a Sou'wester's if the rain's bothering you," <<he>> says. "They work a treat. I'd best get back to work." <<else>> "Did you fall in the river?" <<he>> laughs. "You go careful. I'd best get back to work." @@ -2601,6 +2601,7 @@ You sneak up to the shed, and push the door open. :: Alex Give Milkshake <<effects>> <<npc Alex>><<person1>> +<<wearProp "milkshake">> You approach Alex with the milkshake. <<He>> waves at you with a bottle beside <<him>>, seemingly unaware. "Hey, fancy-" <br> @@ -2611,11 +2612,12 @@ You approach Alex with the milkshake. <<He>> waves at you with a bottle beside < Alex takes it off your hands, and after twenty minutes of sipping and chatting, tips <<his>> hat off to you as you part ways. <br><br> -<<link [[Next|Farm Work]]>><</link>> +<<link [[Next|Farm Work]]>><<handheldon>><</link>> :: Alex Share Milkshake <<effects>> <<npc Alex>><<person1>> +<<wearProp "milkshake">> You sit beside Alex, then procure the milkshake. "Fancy a drink?" you ask simultaneously. <<He>> pulled out a bottle to offer you at the same time. <br><br> @@ -2630,7 +2632,7 @@ You sit beside Alex, then procure the milkshake. "Fancy a drink?" you ask simult "Thanks for the sugar," <<he>> wheezes, wiping a tear. After catching your breath, you part ways. <br><br> -<<link [[Next|Farm Work]]>><</link>> +<<link [[Next|Farm Work]]>><<handheldon>><</link>> :: Farm Stables Rest <<set $outside to 0>><<effects>> @@ -2977,9 +2979,9 @@ The machine continues its devilish work, sucking with more intensity. You feel a <<set _femaleclimaxAmount to 0>> <<if $femaleclimax>> <<set _femaleclimaxAmount++>> - Despite the attempts to milk your <<penis>>, no semen is sucked up the tube. + Despite the attempts to milk your <<penis>>, no semen is sucked up the tube. <<else>> - Your semen is sucked up the tube, where it drips into a glass tank. + Your semen is sucked up the tube, where it drips into a glass tank. <</if>> The machine doesn't give you a chance to recover.<<gggarousal>><<arousal 10000>> <<orgasm>><<if $femaleclimax>><<set _femaleclimaxAmount++>><</if>> @@ -2991,7 +2993,7 @@ The machine continues its devilish work, sucking with more intensity. You feel a <<else>> You remain on your hands and knees as the machine milks you again and again, however, you release no semen for it to collect. <</if>> - + Just when you fear you're about to pass out, the machine comes to a halt. <br><br> diff --git a/game/overworld-plains/loc-livestock/intro.twee b/game/overworld-plains/loc-livestock/intro.twee index 77bc2eed4f8b2efb29e85b4703786622501f1683..0cf5d1af484739e3cd3a8b11c2c53e4440bfdc2d 100644 --- a/game/overworld-plains/loc-livestock/intro.twee +++ b/game/overworld-plains/loc-livestock/intro.twee @@ -116,7 +116,7 @@ Your handler gives the leash a rough tug, and you're led inside. <<He>> nods, and arms grasp your clothes from behind, <span class="lewd">tearing the fabric from your body.</span> <br><br> <<overheadruined>><<overupperruined>><<overlowerruined>><<upperruined>><<lowerruined>><<underupperruined>><<underruined>> - <<headruined>><<faceruined>><<legsruined>><<feetruined>><<handsruined>> + <<headruined>><<faceruined>><<legsruined>><<feetruined>><<handsruined>><<handheldruined>> <</if>> <<generate2>><<generate3>> @@ -1206,7 +1206,7 @@ You open your mouth wider, allowing the <<personsimple>>'s fingers to explore as <<if $exposed lte 1 or $worn.head.name isnot "naked" or $worn.face.name isnot "naked" or $worn.legs.name isnot "naked" or $worn.feet.name isnot "naked" or $worn.hands.name isnot "naked" or $worn.over_upper.name isnot "naked" or $worn.over_lower.name isnot "naked" or $worn.over_head.name isnot "naked">> Hands intrude from behind, grasping your clothes, <span class="red">they tear the fabric from your body.</span> <<overheadruined>><<overupperruined>><<overlowerruined>><<upperruined>><<lowerruined>><<underupperruined>><<underruined>> - <<headruined>><<faceruined>><<legsruined>><<feetruined>><<handsruined>> + <<headruined>><<faceruined>><<legsruined>><<feetruined>><<handsruined>><<handheldruined>> <<if !playerChastity("hidden")>> <<push_nnpc_genderknown true>> <</if>> @@ -1228,7 +1228,7 @@ You bite down. Hard. <<His>> eyes flash and <<he>> withdraws, but <<he>> doesn't <<if $exposed lte 1 or $worn.head.name isnot "naked" or $worn.face.name isnot "naked" or $worn.legs.name isnot "naked" or $worn.feet.name isnot "naked" or $worn.hands.name isnot "naked" or $worn.over_upper.name isnot "naked" or $worn.over_lower.name isnot "naked" or $worn.over_head.name isnot "naked">> Hands intrude from behind, grasping your clothes, <span class="red">they tear the fabric from your body.</span> <<overheadruined>><<overupperruined>><<overlowerruined>><<upperruined>><<lowerruined>><<underupperruined>><<underruined>> - <<headruined>><<faceruined>><<legsruined>><<feetruined>><<handsruined>> + <<headruined>><<faceruined>><<legsruined>><<feetruined>><<handsruined>><<handheldruined>> <<if !playerChastity("hidden")>> <<push_nnpc_genderknown true>> <</if>> diff --git a/game/overworld-town/loc-adultshop/opening.twee b/game/overworld-town/loc-adultshop/opening.twee index 0ccd07b4aecdb99f50b2dd12c3373a2b737846b4..7f37c88640afcde8e8f5237fbd7c0789e9c60f36 100644 --- a/game/overworld-town/loc-adultshop/opening.twee +++ b/game/overworld-town/loc-adultshop/opening.twee @@ -1,5 +1,6 @@ :: Adult Shop Opening Walk <<effects>> +<<removeProp "milkshake">> <<set $location to "adult_shop">><<run statusCheck("Sydney")>> <<if _sydneyStatus.includes("corrupt") or _sydneyStatus.includes("corruptLust")>> diff --git a/game/overworld-town/loc-adultshop/shop.twee b/game/overworld-town/loc-adultshop/shop.twee index b69e72b7b49c0ae85a26cd0e365d049d0622b12b..1fff2b9a545fd5710474d6892542aae724e4bf23 100644 --- a/game/overworld-town/loc-adultshop/shop.twee +++ b/game/overworld-town/loc-adultshop/shop.twee @@ -84,6 +84,9 @@ <<clothingcategoryicon "neck">> <<link "View Neck Accessories">><<replace "#clothingShop-div">><<NeckShop>><</replace>><</link>> <br> + /*<<clothingcategoryicon "handheld">> + <<link "View Handheld Items">><<replace "#clothingShop-div">><<HandheldShop>><</replace>><</link>> + <br>*/ <<clothingcategoryicon "hand">> <<link "View Hand Accessories">><<replace "#clothingShop-div">><<HandsShop>><</replace>><</link>> <br> diff --git a/game/overworld-town/loc-alley/park.twee b/game/overworld-town/loc-alley/park.twee index 8d7ec0baac57b9ce6ef34563868e02f2018e5d0c..2e1166bf43a39f05697443e00d295ee9a0756e64 100644 --- a/game/overworld-town/loc-alley/park.twee +++ b/game/overworld-town/loc-alley/park.twee @@ -136,6 +136,8 @@ Tulips grow in great patches near the riverbank. <<endevent>> <<link [[Next|Park]]>><<set $eventskip to 1>><</link>> <br> + <<elseif _robin_location is "park" and $exposed lte 0 and $balloonStand.open is true and $balloonStand.robin.status is "unaffected">> + <<balloonRobinIntro>> <<else>> <<if $options.mapTop is true>> <<map "park">> @@ -215,6 +217,16 @@ Tulips grow in great patches near the riverbank. <<runicon>><<link [[Go for a run (0:30)|Park Run]]>><<pass 30>><<tiredness 3>><<stress -3>><<athletics 3>><<slimeEventEnd "running">><</link>><<gtiredness>><<gathletics>><<lstress>> <</if>> <</if>> + <<if Time.dayState is "day" and (($weather isnot "rain" and $weather isnot "snow") or $worn.handheld.type.includes("rainproof"))>> + <<if $milkshake gte 1 and $exposed lte 0>> + <<foodicon "milkshake">><<link [[Drink your milkshake (0:10)|Beach Milkshake]]>><<pass 10>><<set $milkshake -= 1>><<stress -5>><</link>><<lstress>> + <br> + <</if>> + <<if $popcorn gte 1 and $exposed lte 0>> + <<foodicon "popcorn">><<link [[Eat your popcorn (0:10)|Balloon Consume]]>><<pass 10>><<set $popcorn -= 1>><<wearProp "popcorn">><<trauma -3>><<set $phase to "park">><</link>><<ltrauma>> + <br> + <</if>> + <</if>> <<if Time.dayState is "night" and $exhibitionism gte 55 and $daily.ex.fountain is undefined>> <br> <<parkicon "fountain">><<link [[Bathe in the fountain (0:10)|Park Fountain]]>><<set $daily.ex.fountain to 1>><</link>><<exhibitionist4>> @@ -229,7 +241,7 @@ Tulips grow in great patches near the riverbank. <<link [[Cross flyover to the industrial district (0:05)|Flyover Ex Undies]]>><</link>><<if $daily.ex.flyover is undefined>><<exhibitionist3>><</if>> <</if>> <<else>> - <br> + <br><br> <<add_link "Travel<br>">><<hideDisplay>> <<high>> <<starfish>> diff --git a/game/overworld-town/loc-beach/balloon.twee b/game/overworld-town/loc-beach/balloon.twee new file mode 100644 index 0000000000000000000000000000000000000000..90b1e2e3fd0ef9f288dc17adab9b502fbb84350b --- /dev/null +++ b/game/overworld-town/loc-beach/balloon.twee @@ -0,0 +1,630 @@ +:: Balloon Stand [exitCheckBypass] +<<loadNPC 0 "stall_owner">><<person1>> + +<div id="clothingShop-div" class="main-shop-div"> + <<stallShop-main>> +</div> + +:: Balloon Purchase +<<effects>> + <<if $balloonStand.owner is "angry" and ["hot drink","cold drink"].includes($phase)>> + The <<person>> regards you for a long moment before sighing. "Sure," <<he>> says, sounding resigned. "Look, I'm sorry for losing my cool. It was kind of a dick move to start selling my own drinks after promising to help, but to be fair, you hurt me after you promised to get me off. I don't like being angry, though. We're good, right?" + <br><br> + <<He>> has a point. You nod. "We're good." + <<set $balloonStand.owner to "appeased">> + <<else>> + <<set _sir to $player.gender_appearance is 'f' ? 'miss' : 'sir'>> + "<<print $balloonStand.owner is "angry" ? "Sure, whatever," : either("Certainly,", "Right away, _sir,", "Sure thing,", "Coming right up,", "Absolutely!")>>" the <<person>> says. + <</if>> + <br><br> + <<switch $phase>> + <<case "hot drink" "cold drink">> + <<set $daily.ex.balloonDrink to ($daily.ex.balloonDrink or 0) + 1>> + <<set _prop to $phase is "cold drink" ? "lemonade" : "mug">> + <<wearProp _prop>> + + <<set _drink to $phase is "hot drink" ? + "a cup of steaming <<seasonal_beverage>>. The paper cup warms your hands" : + "glass of ice-cold <<seasonal_beverage>>. The plastic cup swelters in your hand">> + <<He>> pours you a _drink. + + <<if $daily.ex.balloonDrink is 2>> + "Thirsty, eh?" <<he>> says. "<<print playerBellyVisible() ? "Guess you gotta keep that little one hydrated" : "Glad to see you're staying hydrated">>." <<He>> smiles at you. + <<elseif $daily.ex.balloonDrink is 3>> + "Gotta save some for the other customers, so I'm gonna have to cut you off after this." <<He>> gives you an apologetic smile. + <</if>> + + <<case "popcorn">> + <<He>> scoops out some freshly-popped popcorn. The bag's still warm when <<he>> hands it to you. + <<set $daily.ex.popcorn to ($daily.ex.popcorn or 0) + 1>> + <<wearProp "popcorn">> + + <<if $daily.ex.popcorn is 2 and $balloonStand.owner isnot "angry">> + "You must be hungry," <<he>> says. <<print playerBellyVisible() ? `"I suppose you are eating for two." <<He>> smiles, glancing affectionately at your baby bump.` : `"Not getting enough to eat at home?" <<His>> brow creases momentarily, but <<he>> quickly shakes it off.`>> + <<elseif $daily.ex.popcorn is 3>> + "Gotta save some for the other customers, so I'm gonna have to cut you off after this." <<print $balloonStand.owner is "angry" ? "<<His>> voice is curt" : "<<He>> gives you an apologetic smile">>. + <</if>> + <</switch>> + "<<print $balloonStand.owner is "angry" ? "There you go. Get lost." : either("Good to see you, love.", "Have a great rest of your day now.", "Thanks for your custom.", "Enjoy!")>>" + <br><br> + <<switch $phase>> + <<case "hot drink" "cold drink">> + <<link [[Take a sip (0:15)|Balloon Consume]]>><<stress -9>><<pass 15>><</link>><<lstress>><br> + <<case "popcorn">> + <<link [[Eat the popcorn (0:15)|Balloon Consume]]>><<set $phase to $balloonStand.robin.status is "help needed" ? "ask_eat" : "popcorn">><<trauma -3>><</link>><<ltrauma>><br> + <<if $balloonStand.robin.status is "help needed">> + <<link [[Save it for later|Balloon Consume]]>><<set $phase to "ask">> <<set $popcorn += 1>><<handheldon>><</link>><br> + <<else>> + <<link [[Save it for later|Beach]]>><<set $eventskip to 1>><<set $popcorn += 1>><<endevent>><</link>> + <</if>> + <</switch>> + +:: Balloon Consume +<<effects>> + +<<switch $phase>> + <<case "hot drink">>You take a careful sip, careful not to scald your tongue. The <<seasonal_beverage>> is rich <<print Time.season is "winter" ? "and creamy" : "with spices">>, and you can feel the stress melting away. + <<case "cold drink">>You take a sip. The <<seasonal_beverage>> is <<print Time.season is "spring" ? "pleasantly fruity" : "tart">> and refreshing, and you can feel the stress melting away. + <<case "popcorn" "park" "ask_eat">>You pop a handful of popcorn into your mouth. It's buttery and salty, and it brings back nostalgic memories of trips to the cinema. + <<case "ask">>You fold over the top of the bag so popcorn doesn't spill everywhere before pocketing it. +<</switch>> +<br><br> +<<if ["ask","ask_eat"].includes($phase)>> + "I've been meaning to ask," the <<person>> says, resting <<his>> elbows on the stall as <<he>> leans over to chat with you. "What do you think of the popcorn? Good, right?" + <br><br> + <<if $speech_attitude is "meek">> + "It's very good, <<sir>>," you tell <<him>>. "Although, it is, um, kind of salty?" + <<elseif $speech_attitude is "bratty">> + "Yeah, gotta admit, you did good with it. Salty, though. I'm parched." You smack your lips frankly. + <<else>> + "It's tasty, yeah! If I had to critique it, it is a bit salty, though." + <</if>> + <br><br> + "Salt is addictive. That's how you keep 'em coming back," <<he>> says with a wink. "But good to know. I'm always open to ways to improve." + <br><br> + <<link [[Suggest that the stall owner partner with Robin|Balloon Partner]]>><<set $phase to "help">><<handheldon>><</link>><br> + <<link [[Suggest that the stall owner sell beverages|Balloon Partner]]>><<set $phase to "sabotage">><<handheldon>><</link>> +<<elseif $phase is "park">> + <<link [[Next|Park]]>><<set $eventskip to 1>><<endevent>><</link>> +<<else>> + <<link [[Next|Beach]]>><<set $eventskip to 1>><<endevent>><</link>> +<</if>> + +:: Balloon Partner +<<effects>> +<<npc Robin 2>><<person2>> +<<set _boyfriend to ($robinromance ? "<<person2>><personsimple>>friend" : "friend")>> + +<<switch $phase>> + <<case "help">> + <<if getRobinLocation() is "beach">> + "My _boyfriend's selling lemonade, right across the way there." You nod at Robin's lemonade stand. "It's really tasty. I think your customers would appreciate a nice cold drink after some of your popcorn." + <<else>> + "<<print Time.season is "winter" ? "When it's not cold out," : "<<Hes>> not there right now, but">> my _boyfriend spends the weekend selling lemonade, right across the way there. You've probably seen <<him>> around." You nod at the spot where Robin normally sets up shop. "<<print Time.season is "winter" ? "Now that it's winter, <<hes>> selling hot cocoa over in the park." : "It's really tasty.">> I think it'd hit the spot after some of your popcorn." + <</if>> + <br><br> + The <<person1>><<person>> cocks <<his>> head, considering your words. "I've tried that lemonade of <<person2>><<hers>> before," <<person1>><<he>> says. "It's mostly sugar water. I'm not saying no, but you're gonna have to work a little harder to convince me that partnering with your little _boyfriend isn't a terrible idea." + <br><br> + <<link [[Persuade|Balloon Convince]]>><<set $phase to "persuade">><</link>><<englishdifficulty 1 1000>><br> + <<if $promiscuity gte 55>> + <<link [[Seduce|Balloon Convince]]>><<set $phase to "seduce">><</link>><<promiscuous4>> + <br> + <</if>> + <<if $money gte 30000>> + <<link [[Bribe (£300)|Balloon Convince]]>><<set $phase to "bribe">><<set $money -= 30000>><</link>> + <</if>> + + <<case "sabotage">> + "Have you considered selling beverages alongside your popcorn?" you ask. + <br><br> + The <<person1>><<person>> hums noncommittally as <<he>> wipes down <<his>> stand. "Like your buddy <<print getRobinLocation() is "beach" ? "over there" : Time.season is "winter" ? "who sells hot chocolate in the park" : "who sells lemonade">>?" <<He>> leans in conspiratorially. "I've tried <<person2>><<his>> lemonade before. <<Hes>> a bit heavy-handed on the sugar, and really ought to invest in a proper juicer." + <br><br> + <<person1>><<He>> straightens back up. "What does your friend charge, anyway?" <<he>> muses, glancing over at <<print getRobinLocation() is "beach" ? "Robin's stall" : "where Robin normally sets up shop">>. "A pound? You can't make a living like that. Who knows, maybe a little friendly rivalry will help drum up some business for <<person2>><<him>>." The <<person1>><<person>> chuckles. "I'm already thinking of a seasonal menu. Cider in the fall, strawberry lemonade in the spring... this'll be fun. Stop by tomorrow, why don't you? I'll give you a drink on the house." <<set $balloonStand.freeDrink to true>> + <br><br> + <<if $speech_attitude is "meek">> + "That's very kind of you, <<sir>>." You give <<him>> a tiny smile. "Thank you." + <<elseif $speech_attitude is "bratty">> + "Sure, sign me up." You grin. "I'm always down for a freebie." + <<else>> + "I'd like that very much." You smile. "Thank you." + <</if>> + <br><br> + "Don't expect me to make a habit of it, though. I gotta earn a living here," <<he>> says with a wink. "You know, you're a shrewd one, <<girl>>. Keep it up, and you'll make a fine business magnate someday." <<stress -6>><<lstress>> + + <<balloonRobinSabotaged>> + <br><br> + <<link [[Next|Beach]]>><<set $eventskip to 1>><<endevent>><</link>> +<</switch>> + +:: Balloon Convince +<<effects>> +<<npc Robin 2>><<person2>> + +<<switch $phase>> + <<case "persuade">> + You talk at length about the virtues of Robin's <<print Time.season is "winter" ? "hot chocolate" : "lemonade">>. For good measure, you spin up a sob story about Robin's history as an orphan. + <br><br> + <<if $englishSuccess>> + "You'd really be helping <<person2>><<him>> out, <<person1>><<sir>>," you say, eyes wide and earnest. "<<Hes>> a good person, and <<he>> just needs someone to cut <<him>> a break for once. And it will be a two-way street, I assure you. <<He>>'ll happily send customers your way as well. Plus, think of all the good karma you'll be racking up, helping an unfortunate orphan get a leg up in this cruel world!" + <br><br> + The <<person1>><<person>> looks moved by your passionate words. <<balloonRobinHelped>> + <br><br> + <<link [[Next|Beach]]>><<set $eventskip to 1>><<endevent>><</link>> + <<else>> + The <<person1>><<person>> looks unmoved. "So, the <<person2>><<personsimple>>'s had a rough life. Who hasn't? I'm not providing a charity service here, and I don't see what <<he>> has to offer that will benefit me." + <br><br> + <<person1>><<He>> sighs. "Look, I'm not an asshole," the <<personsimple>> says. "I'm not convinced, but I like you. Stop by the stall some other time, and I'd be happy to hear you out." + <<set $daily.ex.balloonConvince to 1>> + <<set $balloonStand.robin.status to "convince">> + <br><br> + <<link [[Next|Beach]]>><<set $eventskip to 1>><<endevent>><</link>> + <</if>> + + <<case "seduce">> + <<set $seductiondifficulty to 8000>> + <<seductioncheck>> + <br><br> + <<seductionskilluptext>> + <<seductionskilluse>> + + "Are you sure I can't convince you?" you purr, leaning over <<person1>><<his>> stall. You lick your lips and glance pointedly at <<his>> crotch. "I am very good with my mouth... I'm sure we can come to an agreement." <<promiscuity4>> + + <<if $seductionrating gte $seductionrequired>> + <<He>> looks conflicted for a moment, but relents. "Ah, alright." <<He>> glances around quickly, then ushers you under the stall. "Make good use of that mouth, and I'll help you out. Hurry, before someone sees. I think I spot some potential customers over there." + <br><br> + <<link [[Next|Balloon Sex]]>><<set $sexstart to 1>><</link>> + <<else>> + The <<person>> looks at you and bursts into laughter, leaving you self-conscious. "Not a chance, sorry. Look, I'm not an asshole," <<he>> says. "I'm not interested, but I like you. Stop by the stall again tomorrow, and I'd be happy to hear you out. Use your words next time, not... whatever this was." <<He>> chuckles to <<himself>> and waves you off. + <<set $daily.ex.balloonConvince to 1>> + <<set $balloonStand.robin.status to "convince">> + <br><br> + <<link [[Next|Beach]]>><<set $eventskip to 1>><<endevent>><</link>> + <</if>> + + <<case "bribe">> + <<if $speech_attitude is "meek">> + "Might this help sweeten the deal?" You count out £300 and hand it to <<person1>><<him>>. + <<elseif $speech_attitude is "bratty">> + "Money talks, yeah? How's 300 quid sound?" You count out the money and stuff it in <<person1>><<his>> hands. + <<else>> + "Would 300 quid convince you?" You count out the money and hand it to <<person1>><<him>>. + <</if>> + <br><br> + <<He>> pockets the money, looking impressed. <<balloonRobinHelped>> + <br><br> + <<link [[Next|Beach]]>><<set $eventskip to 1>><<endevent>><</link>> +<</switch>> + +:: Balloon Sex + +<<if $sexstart is 1>> + <<set $sexstart to 0>> + <<set $enemyno to 1>><<set $enemynomax to 1>> + <<consensual>> + <<set $consensual to 1>> + <<neutral 1>> + + <<maninit>> + You crawl under the stall and give <<him>> a teasing lick. + <<promiscuity4>><<npcoral>><<set $NPCList[0].mouth to "none">> + <<set $enemytrust += 10>> +<</if>> +<<effects>> +The <<personsimple>> chats up a customer, doing <<his>> best to keep <<his>> voice steady. +<<effectsman>> +<<man>> +<<stateman>> +<br><br> +<<actionsman>> + +<<if _combatend>> + <span id="next"><<link [[Next|Balloon Sex Finish]]>><</link>></span><<nexttext>> +<<else>> + <span id="next"><<link [[Next|Balloon Sex]]>><</link>></span><<nexttext>> +<</if>> + +:: Balloon Sex Finish +<<location "beach">><<effects>> + +<<if $enemyarousal gte $enemyarousalmax>> + <<ejaculation>> + <<He>> pants as <<he>> comes down from <<his>> orgasm. <<He>> gives your cheek a clumsy pat, and you crawl out from underneath the stall, wiping your mouth. + <br><br> + <<balloonRobinHelped>> +<<elseif $enemyhealth lte 0>> + "Ow, you fucking whore!" the <<person>> shouts, kicking you away from <<him>>. You scramble out from under the stall. "You can forget about me helping your little friend!" <<he>> shouts after you as you sprint away from the stand. "In fact, <span class="red">I'm gonna start selling my own lemonade</span>! Next time, don't bite the hand that feeds you, asshole." + + <<balloonRobinSabotaged "angry">> +<<elseif $finish is 1>> + <<He>> looks disappointed as you crawl out from the stand. "Was that supposed to convince me?" <<He>> shakes <<his>> head. "Look, I like you. Stop by the stall some other time, and I'm willing to hear you out. Use your words next time, not... whatever this was." <<He>> waves you off. + <<set $balloonStand.robin.status to "convince">> + <<set $daily.ex.balloonConvince to 1>> +<</if>> +<<clotheson>> +<<endcombat>> +<<link [[Next|Beach]]>><</link>> + +:: Balloon Robin Check-In +<<effects>> +<<loadNPC 0 "stall_owner">><<npc Robin 2>> +<<set $balloonStand.robin.talked to true>> +<<set $balloonStand.robin.knows to ($phase is "confess" ? true : false)>> +<<set _lemonade to Time.season is "winter" ? "hot chocolate" : "lemonade">> +<<set _botchedHelp to ["angry", "appeased"].includes($balloonStand.owner)>> + +<<switch $phase>> + <<case "confess_helped">> + <<if $speech_attitude is "meek">> + "Well," you say coyly, "I might know what's causing it..." Robin looks at you with wide eyes, and you're barely able to suppress a giggle. "You have a new business partner! I asked that <<person1>><<personsimple>> who sells popcorn to send you <<his>> thirsty customers. <<He>> only asks that you point interested customers <<his>> way as well." + <<elseif $speech_attitude is "bratty">> + "Oh, I can tell you exactly why your business is booming," you say, grinning widely. Robin looks at you, wide-eyed and questioning. "It's because I'm a genius, and I convinced that schmuck selling popcorn to send you <<person1>><<his>> thirsty customers. Just send anyone who looks hungry over to <<him>>, and you're square." + <<else>> + "Well," you begin, offering Robin a smile. "You know that stall that sells popcorn? I convinced <<person1>><<him>> to send you <<his>> thirsty customers. <<He>> just wants you to send some customers <<his>> way occasionally too." + <</if>> + <br><br> + <<balloonRobinGrateful>> + + <<case "confess_sabotaged">> + <<if _botchedHelp>> + You take a deep breath and + <<if $speech_attitude is "meek">> + glance away from Robin. "W-well... I might, um, know the reason. See, I tried to convince that <<person1>><<personsimple>> who sells popcorn to send you <<his>> thirsty customers... but I ended up upsetting <<him>>. I think <<he>> started selling _lemonade in retaliation." + <<elseif $speech_attitude is "bratty">> + look Robin square in the eye. "I know what's going on. See, I tried to convince that schmuck who sells popcorn to send you <<person1>><<his>> thirsty customers. Accidentally pissed <<him>> off, and <<he>> started selling _lemonade to stick it to me." + <<else>> + address Robin. "I have some bad news. You know that stall that sells popcorn? I tried to convince <<person1>><<him>> to send you <<his>> thirsty customers, but it didn't work. I upset <<him>>, and <<he>> retaliated by selling <<his>> own lemonade." + <</if>> + <br><br> + Robin looks conflicted. "You're the reason why I'm losing customers?" + <<else>> + You take a deep breath and + <<if $speech_attitude is "meek">> + glance away from Robin. "W-well... I might, um, know the reason. + <<elseif $speech_attitude is "bratty">> + look Robin square in the eye. "I know what's going on. + <<else>> + address Robin. "I think I know why. + <</if>> + It's because I told the <<person1>><<personsimple>> who runs that balloon stand to start selling drinks." + <br><br> + <<person2>><<print C.npc.Robin.trauma gte 20 ? "Robin stares at you hollowly" : C.npc.Robin.dom gte 50 ? "Robin clenches <<his>> fists" : "Tears spring to Robin's eyes, and <<he>> blinks them away">>. <<He>> looks at a loss for words. "You did what?" <<he>> finally whispers. "Why would you do that? It's already hard enough making money without my <<if $robinromance is 1>><<girlfriend>><<else>>best friend<</if>> giving my competitor ideas. I thought we were in this together." + <</if>> + + <<case "quiet_helped">> + You choose to keep quiet. Robin barely notices your silence as <<he>> channels <<his>> giddy energy into rearranging <<his>> ingredients. + <br><br> + "Excuse me?" a <<generate3>><<person3>><<person>> interrupts you. "<<print Time.season is "winter" ? "A <<person1>><<personsimple>> at the beach" : "That <<person1>><<personsimple>> over there">> told me you're selling _lemonade? May I buy some?" + <br><br> + Robin's eyes widen slightly. "That's where the customers are coming from!" <<person2>><<he>> whispers to you, sounding excited. "What a nice <<person1>><<print $pronoun is "m" ? "man" : "lady">>... I guess there are good people in this world after all! I should start sending my customers <<his>> way too." Robin starts to make some _lemonade for the <<person3>><<person>>, humming as <<person2>><<he>> goes. <<llrtrauma>><<npcincr Robin trauma -5>><<ggdom Robin>><<npcincr Robin dom 5>> + <br><br> + A warm glow fills you as you watch Robin help the customer, oblivious to the role you played. It feels good to do something nice, regardless of public recognition. <<stress -12>><<trauma -6>><<lstress>><<ltrauma>> + + <<case "quiet_sabotaged">> + You decide not to say anything. Robin doesn't need to know about your <<print ["angry", "appeased"].includes($balloonStand.owner) ? "failure to help <<him>>" : "betrayal">>. Robin fidgets, restlessly rearranging <<his>> ingredients. "Oh well," <<he>> finally says with a sigh. "I guess there's no helping it. I'll just have to keep working hard." + <br><br> + You chat for a bit, and Robin seems in slightly better spirits by the time you bid <<him>> farewell. +<</switch>> +<br><br> +<<if $phase is "confess_sabotaged">> + <<set $robin.hurtReason to "the balloon stand situation">> + <<set $robin.timer.hurt to _botchedHelp ? 8 : 15>> + <<set _trauma to _botchedHelp ? 3 : 6>> + <<set _robin_trauma to _botchedHelp ? 2 : 15>> + <<set _robin_love to _botchedHelp ? -1 : -10>> + + <<link [[Apologise|Balloon Robin Check-In 2]]>><<set $phase to 0>><</link>><br> + <<capture _robin_trauma _robin_love>> + <<link [[Yell|Balloon Robin Check-In 2]]>><<set $phase to 1>><<trauma -6>><<npcincr Robin trauma _robin_trauma>><<npcincr Robin love _robin_love>><<npcincr Robin dom -1>><</link>><<ltrauma>><<lstress>><<grtrauma>><<llove Robin>><<ldom Robin>><br> + <</capture>> + <<capture _trauma>> + <<link [[Say nothing|Balloon Robin Check-In 2]]>><<set $phase to 2>><<trauma _trauma>><</link>><<gtrauma>><<if !_botchedHelp>><<grtrauma>><</if>> + <</capture>> +<<else>> + <<switch $location>> + <<case "park">><<link [[Next|Park]]>><<endevent>><</link>> + <<default>> <<link [[Next|Beach]]>><<endevent>><</link>> + <</switch>> +<</if>> + +:: Balloon Robin Check-In 2 + +<<if ["angry", "appeased"].includes($balloonStand.owner)>> + <<if $phase is 0>> + "<<print $speech_attitude is "meek" ? "I-it was an accident! I'm sorry..." : $speech_attitude is "bratty" ? "My bad, alright? I was just trying to help," : "I messed up. I'm sorry,">>" you tell <<person2>><<him>>. + <<elseif $phase is 1>> + You berate Robin, reminding <<person2>><<him>> that you did your best to help. <<He>> <<print C.npc.Robin.dom gte 80 ? "cuts you off before you can get too far in your diatribe" : "hangs <<his head as you lay into <<him>>. When you're finished, <<he>> looks up">>. + <<else>> + You keep your mouth shut. Robin looks at you balefully before continuing. + <</if>> + "I know it's not your fault," Robin says. <<person2>><<He>> <<print C.npc.Robin.dom gte 50 ? "stares at you, <<his>> fists tightly clenched" : "can't quite look you in the eye">>. "Thank you for trying, but <<print C.npc.Robin.dom gte 50 ? "I can take care of myself" : "I think you hurt more than you helped">>." <<He>> sighs. "I just... need some time, okay?" + <br><br> +<<else>> + <<if $phase is 0>> + "<<print $speech_attitude is "meek" ? "I-I'm sorry..." : $speech_attitude is "bratty" ? "My bad, alright?" : "I'm sorry,">>" you tell <<person2>><<him>>. "I just wanted to help." + <br><br> + "Help who? <<person1>><<Him>> or me?" Robin asks. <<person2>><<He>> sounds on the verge of tears. "If you wanted to help me, you should have told <<person1>><<him>> to send people to me for drinks, not to sell <<his>> own." + <br><br> + "I'm sorry," you repeat helplessly. "You're right, I shouldn't have done that. I thought maybe..." You break off and shake your head. "I didn't mean to hurt you." + <br><br> + "I know." <<person2>><<He>> stares at the ground. "Thank you for wanting to help." + <<elseif $phase is 1>> + You raise your voice as you lay into Robin, berating <<him>> for <<his>> naivete. You tell <<him>> that you did <<him>> a favor, <<print $robinpaid gte 1 ? "and if <<he>> ever hopes to pay <<his>> own way, <<he>> needs to get a real job" : "because <<he>> can't make a living just from selling lemonade">>. By the time you're done, <<hes>> in tears. + <br><br> + "I'll do better," <<he>> mumbles, "so you don't have to keep supporting me..." <<He>> needs a few moments to compose <<himself>>. + <<else>> + You keep your mouth shut, unable to find the appropriate words. + <br><br> + Robin seems even more upset at your reticence. "You can't even tell me why?" <<person2>><<he>> says, voice quivering with tears. <<npcincr Robin trauma 5>><<grtrauma>> + <</if>> + <br><br> + Finally, Robin takes a shuddery breath and swallows. "<<print C.npc.Robin.dom gte 50 ? "I'd like you to leave now" : "P-please, just go">>," <<person2>><<he>> says. "I just... want to be alone right now." +<</if>> + +<<He>> turns back to <<his>> stand, avoiding your gaze until you finally leave. +<br><br> + +<<switch $location>> + <<case "park">><<link [[Next|Park]]>><<endevent>><</link>> + <<default>> <<link [[Next|Beach]]>><<endevent>><</link>> +<</switch>> + +:: Balloon Decline +<<effects>> + +<<if $speech_attitude is "meek">> + "Sorry, but I can't right now. Thank you for the free balloon though, that's very kind of you," you say. +<<elseif $speech_attitude is "bratty">> + "Nah, I'm good. But thanks for the freebie," you say. +<<else>> + "I'm fine, but thanks for the balloon," you say. +<</if>> +<br><br> +You take your leave and let the <<person>> finish setting up <<his>> stall. +<br><br> +<<if getRobinLocation() is "beach">> + <<npc Robin 2>><<person2>> + <<balloonRobinIntro>> +<<else>> + <<link [[Next|Beach]]>><<set $eventskip to 1>><<endevent>><</link>> +<</if>> + +:: Balloon Robin Response +<<if $phase is 0>> + <<set _lemonade to Time.season is "winter" ? "hot chocolate" : "lemonade">> + You tell Robin <<he>> has nothing to worry about. The stall owner isn't selling _lemonade and would attract a different crowd. + <br><br> + "I guess that's true," Robin says. <<He>> glances <<print Time.season is "winter" ? "in the direction of the beach" : "at the stall">>. <<person1>>"<<Hes>> selling popcorn, right? Maybe <<he>>'ll send people over to me if they get thirsty," <<person2>><<he>> says, sounding <<print C.npc.Robin.trauma gte 40 ? "like <<hes>> trying to convince <<himself>> of the impossible" : "hopeful">>. + <br><br> + You nod encouragingly. <span class="blue">Maybe you can convince the stall owner to help Robin if you purchase some popcorn.</span> + <br><br> + The two of you make small talk for a bit. Eventually, Robin says <<he>> needs to get back to <<his>> stand. + <br> + <<if C.npc.Robin.trauma gte 40>> + <<He>> slowly ambles off, <<his>> gaze fixed on the ground. + <<else>> + <<He>> smiles and waves goodbye. + <</if>> +<<else>> + You don't respond. The silence stretches awkwardly between you. Robin fidgets. + <br><br> + "Yeah," <<person2>><<he>> finally says. "I guess maybe I should be worried." + <<if C.npc.Robin.trauma gte 40>> + <<He>> sighs, staring vacantly at the stall. "Well, I should get back to it, then." <<He>> slowly ambles off, <<his>> gaze fixed on the ground. + <<else>> + <<He>> sighs, looking momentarily despondent before bouncing back to <<his>> usual happy-go-lucky self. "Well, what can you do? I'll just have to keep on working hard." <<He>> smiles and waves goodbye. + <</if>> +<</if>> +<<set $balloonStand.robin.status to "help needed">> +<br><br> +<<switch $location>> + <<case "park">><<link [[Next|Beach]]>><<set $eventskip to 1>><<endevent>><</link>> + <<default>><<link [[Next|Beach]]>><<set $eventskip to 1>><<endevent>><</link>> +<</switch>> + +:: Balloon Widgets [widget] + +<<widget "stallShop-text">> + <<set _popcorn to $balloonStand.robin.status is "sabotaged" ? "popcorn and <<print Time.season is 'winter' ? 'hot chocolate' : 'lemonade'>>" : "popcorn">> + + <<if (getRobinLocation() is "beach")>> + <<if $balloonStand.robin.status is "sabotaged">> + <<set _robinText to "Customers mill around you. Across the way, a harried Robin desperately tries to attract people to <<nnpc_his Robin>> stand.">> + <<elseif $balloonStand.robin.status is "helped">> + <<set _robinText to "Across the way, Robin has more customers than usual. <<nnpc_He Robin>> catches you looking and waves at you.">> + <<else>> + <<set _robinText to "Across the way, Robin speaks to a solitary customer. <<nnpc_He Robin>> catches you looking and smiles tentatively.">> + <</if>> + <<elseif $robinmissing isnot 0>> + <<if $balloonStand.robin.status is "sabotaged">> + <<set _robinText to "Customers mill around you. You glance over at the spot where Robin normally set up shop. You can't help but feel responsible for <<nnpc_his Robin>> absence.">> + <<elseif $balloonStand.robin.status is "helped">> + <<set _robinText to "The <<personsimple>> begins to point another customer looking for a drink in the direction of Robin's stand. <<He>> quickly corrects <<himself>>, looking disspirited at Robin's absence.">> + <<else>> + <<set _robinText to "You glance over at the spot where Robin normally set up shop.">> + <</if>> + <<elseif $balloonStand.robin.status is "sabotaged">> + <<set _robinText to "Customers mill around you.">> + <<else>> + <<set _robinText to "">> + <</if>> + + <<if $phase is "firstcustomer">> + "Excellent!" The <<person>> claps <<his>> hands in delight. "What would you like?" + <<elseif $balloonStand.freeDrink>> + "Hey, you!" the <<person1>><<person>> says, flashing you a quick smile. "Thanks again for the business idea. I'm already seeing an influx of customers." Here, one drink on the house, as promised." <<set $balloonStand.freeDrink to false>> + <<else>> + The <<person>> <<print $balloonStand.owner is "angry" ? "scowls" : "smiles">> at you as you peruse <<his>> stand. The smell of fresh _popcorn fills the air. <<print _robinText>> + <</if>> + <br><br> +<</widget>> + +<<widget "stallShop-main">> + <<if $balloonStand.freeDrink>> + <<set $balloonStand.freeDrink to false>> + <<switch Time.season>> + <<case "winter" "autumn">><<set _cold to "hot">><<wearProp "mug">> + <<default>><<set _cold to "ice-cold">><<wearProp "lemonade">> + <</switch>> + + "Hey, you!" the <<person1>><<person>> says, flashing you a quick smile. "Thanks again for the business idea. I'm already seeing an influx of customers. Here, one drink on the house, as promised." + <br><br> + + <<switch _cold>> + <<case "hot">>You take a careful sip of the offered drink, careful not to scald your tongue. The <<seasonal_beverage>> is rich <<print Time.season is "winter" ? "and creamy" : "with spices">>. + <<case "ice-cold">>You take a sip of the offered drink. The _cold <<seasonal_beverage>> is <<print Time.season is "spring" ? "pleasantly fruity" : "tart">> and refreshing. + <</switch>> + <<stress -9>><<lstress>> + <br><br> + + You make small talk with the stall owner until a customer interrupts. You thank <<him>> for the free drink and step away. + <br><br> + + <<link [[Next|Beach]]>><<set $eventskip to 1>><<endevent>><</link>> + + <<else>> + <<if $tryOn.autoReset isnot false>><<tryOnReset>><</if>><<unset $tempDisable>> + <<set $outside to 0>><<effects>> + <<set $shopName = "stall">> + <<stallShop-text>> + + <div id="tryonstats-div"><<tryOnStats>></div> + <<unset $shopListStartCount>> + <<unset $clothes_choice>> + <<set $shopPage = 0>> + + <div id="warmth-description" class="hidden"> + <<warmthscale>> + <<warmth_description>> + </div> + + <<gifticon "balloons">><<link "Browse items">><<replace "#clothingShop-div">><<AllShop>><</replace>><<set $phase to 0>><</link>> + <<run linkifyDivs('.button-back-to-shop')>> + <<if ndef $popcorn>><<set $popcorn to 0>><</if>> + <<if ndef $daily.ex.popcorn >><<set $daily.ex.popcorn to 0>><</if>> + <<if $popcorn gte 3>> + <br> + <span class="blue">You can only carry three bags of <<foodicon "popcorn">>popcorn at once.</span> + <<elseif $money gte 600 and $daily.ex.popcorn lt 3>> + <br> + <<foodicon "popcorn">><<link [[Buy popcorn (0:02 £6)|Balloon Purchase]]>><<set $money -= 600>><<set $phase to "popcorn">><<pass 2>><</link>> + <</if>> + <<if $balloonStand.robin.status is "sabotaged" and $money gte 300 and !($daily.ex.balloonDrink gte 3)>> + <<switch Time.season>> + <<case "winter">><<set _drink to "hotcocoa">><<set _phase to "hot drink">> + <<case "spring">><<set _drink to "strawberrylemonade">><<set _phase to "cold drink">> + <<case "summer">><<set _drink to "lemonade">><<set _phase to "cold drink">> + <<default>><<set _drink to "hotcider">><<set _phase to "hot drink">> + <</switch>> + <br> + <<foodicon _drink>><<link [[Buy something to drink (0:02 £3)|Balloon Purchase]]>><<set $money -= 300>><<set $phase to _phase>><<pass 2>><</link>> + <</if>> + <<if $balloonStand.robin.status is "convince" and !$daily.ex.balloonConvince>> + <br> + <<socialiseicon>><<link [[Persuade the stall owner to partner with Robin|Balloon Convince]]>><<set $phase to "persuade">><</link>><<englishdifficulty 1 1000>> + <</if>> + <br><br> + <<if $tryOn.value gt 0>> + <<if $tryOn.value lt $money>> + <<sendItemsToDropdown>> + <<shopicon "register">><<link "Buy items">><<buyTryOnClothes "wear">><<updateclothingshop>><</link>> + <br> + <<wardrobeicon>><<link "Buy items and send to wardrobe">> + <<buyTryOnClothes "wardrobe">> + <<updatesidebarmoney>> + <<updatewarmthscale>> + <<updatewarmthdescription>> + <<updatesidebarimg>> + <<updatesidebardescription>> + <<updateallure>> + <<updatetryonstats>> + <<updateclothingshop>> + <<run updateMoment()>> + <</link>> + <br> + <</if>> + <<else>> + <<getouticon>><<link [[Leave|Beach]]>><<shopClothingFilterReset>><<set $tryOn.autoReset to true>><<endevent>><</link>> + <</if>> + <</if>> +<</widget>> + +<<widget "balloonRobinHelped">> + <<set _boyfriend to ($robinromance ? "<<person2>><personsimple>>friend" : "friend")>> + + "You're either <<print $robinromance ? "really in love with <<person2>><<him>>" : "a really good friend">>, or you really believe in the quality of <<person2>><<his>> stuff. Either way, I'll take it. Sure, we've got a deal. I'll send my customers to your _boyfriend's stall, if <<he>>'ll send any peckish customers my way." + + <<set $robin.moneyModifier += 50>> + <<set $balloonStand.robin.status to "helped">> + <<set $robin.timer.customer to 5>> /*Give Robin a few days to notice the effects on their stall*/ +<</widget>> + +<<widget "balloonRobinSabotaged">> + <<set $robin.moneyModifier -= 50>> + <<set $balloonStand.robin.status to "sabotaged">> + <<set $balloonStand.owner to _args[0] or "friendly">> + <<set $robin.timer.customer to 5>> /*Give Robin a few days to notice the effects on their stall*/ + <<set $daily.ex.balloonDrink to 3>> /*So the balloon owner doesn't start selling lemonade three seconds after*/ +<</widget>> + +<<widget "balloonRobinGrateful">> + <<set _boyfriend to ($robinromance ? "<<person2>><personsimple>>friend" : "best friend")>> + <<set _lemonade to Time.season is "winter" ? "hot chocolate" : "lemonade">> + <<set _stall to Time.season is "winter" ? "A <<person1>><<personsimple>> at the beach" : "That <<person1>><<personsimple>> over there">> + + Robin's mouth gapes for a few minutes. "You... did that for me?" + <br><br> + "Of course I did," you say. "You're my _boyfriend." + <br><br> + Robin looks at you for a moment before flinging <<person2>><<his>> arms around your neck and + <<if $robinromance is 1>> + kissing you. <<takeKissVirginity "Robin" "loveInterest">> <<He>> breaks away with a gasp, looking flustered. + <<else>> + hugging you hard enough to hurt. <<He>> breaks away first, visibly choked up. + <</if>> + There's tears in <<his>> eyes as <<he>> whispers, "Thank you. You do so much for me... what would I do without you?" <<He>> hugs you <<print $robinromance is 1 ? "tenderly" : "again">>, and the two of you stay like that for a moment. + <br><br> + "Excuse me?" a <<generate3>><<person3>><<person>> interrupts your embrace. "<<print _stall>> told me you're selling _lemonade? May I buy some?" + <<if $location isnot "park">> + <br><br> + You glance over at the balloon stall. The <<person>> gives you a wink. + <br><br> + <</if>> + "Ah, of course!" Robin says. "I'll make you some right now, <<person3>><<sir>>!" <<person2>><<He>> gives you one last grateful smile and busies <<himself>> with the _lemonade. <<ggglove "Robin">><<llrtrauma>><<npcincr Robin trauma -10>><<npcincr Robin love 10>> + <br><br> + A warm glow fills you. You watch Robin help the customer before bidding <<him>> farewell. <<He>> mouths you one last grateful "thank you" before you leave. <<famegood 5>><<stress -3>><<trauma -3>><<lstress>><<ltrauma>> +<</widget>> + +<<widget "balloonRobinAngryHelp">> + "I'm okay. I don't need <<print ["angry", "appeased"].includes($balloonStand.owner) ? "any more of your" : "your">> help right now." Robin fidgets. "Would you mind leaving me alone for a few?" It's clear <<hes>> still <<npcHurt "robin">>. + <br><br> + <<endevent>> +<</widget>> + +<<widget "balloonRobinAngryPurchase">> + "Thanks for your purchase," <<he>> says. <<He>> seems to feel bad about being icy towards you, and <<his>> face softens as <<he>> puts the money under the counter. +<</widget>> + +<<widget "balloonRobinTalk">> + <<if $balloonStand.robin.status is "helped" and $balloonStand.robin.talked is false and $robin.timer.customer is 0>> + <br><br> + "I don't know if you've noticed, but I've been getting so many more customers lately!" <<He>> looks pleased, if a bit flustered. "I don't know what's causing it, but... wow!" + <<elseif $balloonStand.robin.status is "sabotaged" and $balloonStand.robin.talked is false and $robin.timer.customer is 0>> + <br><br> + "You know, I haven't been getting a lot of customers lately." <<His>> expression clouds over. "That stall <<print getRobinLocation() is "beach" ? "over there started selling lemonade" : "on the beach with the popcorn and balloons started selling <<seasonal_beverage>>">>..." <<He>> sighs. "I wish I knew why." + <</if>> +<</widget>> + +<<widget "balloonRobinIntro">> + <<loadNPC 0 "stall_owner">><<npc Robin 2>><<person2>> + <<set _lemonade to Time.season is "winter" ? "hot chocolate" : "lemonade">> + + You see Robin stood behind <<his>> _lemonade stand. When <<he>> notices you, <<he>> leaves the stand and + <<if C.npc.Robin.trauma gte 40>> + shuffles over to you. "Hey," <<he>> mumbles. "Have you... <<print Time.season is "winter" ? "heard about that stall on the beach" : "seen that stall over there">>? The one selling the balloons and popcorn. Should I be worried? It's already hard enough to find customers." + <<else>> + approaches you. "Hey, I'm happy to see you here! I hope you'll stop by the stand later." Robin chews <<his>> lip. "Have you seen that other stall that's set up shop <<print Time.season is "winter" ? "on the beach" : "here">>? Should I be worried? I don't want my customers getting distracted by popcorn!" + <</if>> + <br><br> + <<link [[Reassure Robin|Balloon Robin Response]]>><<set $phase to 0>><</link>><br> + <<link [[Say nothing|Balloon Robin Response]]>><<set $phase to 1>><</link>> +<</widget>> diff --git a/game/overworld-town/loc-beach/events.twee b/game/overworld-town/loc-beach/events.twee index d4e3207457c7c7e96b7837d3da2cffb89eaa1ed0..9673806a8f0af8198127874db38bbe7687a8e303 100644 --- a/game/overworld-town/loc-beach/events.twee +++ b/game/overworld-town/loc-beach/events.twee @@ -694,7 +694,7 @@ You see your <<if $upperoff isnot 0>>$upperoff <<elseif $loweroff isnot 0>>$lowe <<effects>> You submit to being bound. <<person2>> The <<person>> ties your arms together behind your back while the <<person1>><<person>> looks on, a sardonic smile on <<his>> face. It doesn't take long, the <<person2>><<person>> soon stands back to admire <<his>> handiwork. You try to move your arms, but they are tied together tightly. You can only wave them impotently behind your back. Feelings of helplessness rise within you. -<<set $leftarm to "bound">><<set $rightarm to "bound">> +<<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>> <br><br> "Just one more thing I think," the <<person>> says, producing a collar and leash. diff --git a/game/overworld-town/loc-beach/main.twee b/game/overworld-town/loc-beach/main.twee index 2434b213ce814b81c9a46e6dac48c852671d3e92..a903e52a5954ea2f4cf2ad3f7150d36858d0c6dd 100644 --- a/game/overworld-town/loc-beach/main.twee +++ b/game/overworld-town/loc-beach/main.twee @@ -151,10 +151,25 @@ You could go for a swim, but make sure to dress appropriately. <<endevent>> <<link [[Next|Beach]]>><<set $eventskip to 1>><</link>> <br> + <<elseif Time.season is "summer" and Time.hour gt 9 and Time.hour lt 17 and $weather isnot "rain" and $balloonStand.open is false>> + <<generate1>><<saveNPC 0 stall_owner>><<npc Robin 2>> + Someone is setting up a new stall on the beach<<if _robin_location is "beach">>, directly across from Robin's lemonade stand. Robin looks somewhat worried<</if>>. The <<person1>><<person>> ties a bunch of colourful balloons to the stall, where they bob invitingly in the air. + <br><br> + The <<personsimple>> notices you staring and beckons you over. "Hey there!" <<he>> says. "Just getting my wares set up." + <br><br> + "What are you selling?" you ask. + <br><br> + "Just some little treats to brighten things up around here. Here, have a balloon. It's Free Balloon Day." <<He>> gives you a wink and hands you a balloon. "I have more if you'd like them, though you'll have to pay. I also have popcorn, and I'm hoping to expand. Care to be my first customer?" + <br><br> + <<set $balloonStand.open to true>> + <<link [[Buy something|Balloon Stand]]>><<set $phase to "firstcustomer">><<handheldwear 14>><</link>><br> + <<link [[Decline|Balloon Decline]]>><<handheldwear 14>><</link>> + <<elseif _robin_location is "beach" and $exposed lte 0 and $balloonStand.open is true and $balloonStand.robin.status is "unaffected">> + <<balloonRobinIntro>> <<else>> <<if $exposed lte 0>> <<if $scienceproject is "ongoing" and $sciencephallusknown is 1 and $sciencephallus lt 10 and Time.dayState isnot "night" and $weather isnot "rain" and $weather isnot "snow" and $exposed lte 0>> - <<ind>><<link [[Find participant for phallus project (0:15)|Beach Phallus]]>><<pass 15>><</link>> + <<investigateicon>><<link [[Find participant for phallus project (0:15)|Beach Phallus]]>><<pass 15>><</link>> <br> <</if>> <<swimicon>><<link [[Go for a swim (0:02)|Sea Beach]]>><<pass 2>><</link>> @@ -168,38 +183,54 @@ You could go for a swim, but make sure to dress appropriately. <<baskicon>><<link [[Tan on the beach (1:00)|Tanning]]>><<pass 60>><</link>><<lstress>> <br> <</if>> + <</if>> + <<if Time.dayState is "day" and ($weather isnot "rain" and $weather isnot "snow") or $worn.handheld.type.includes("rainproof")>> <<if $milkshake gte 1 and $exposed lte 0>> <<foodicon "milkshake">><<link [[Drink your milkshake (0:10)|Beach Milkshake]]>><<pass 10>><<set $milkshake -= 1>><<stress -5>><</link>><<lstress>> <br> <</if>> + <<if $popcorn gte 1 and $exposed lte 0>> + <<foodicon "popcorn">><<link [[Eat your popcorn (0:10)|Balloon Consume]]>><<pass 10>><<set $popcorn -= 1>><<wearProp "popcorn">><<trauma -3>><<set $phase to "popcorn">><</link>><<ltrauma>> + <br> + <</if>> <</if>> <<changingroomicon>><<link [[Changing room|Changing Room]]>><</link>> - <br> <<if $exposed lte 0>> + <<if $openinghours is 1 and $balloonStand.open is true>> + <br> + <<stallicon "balloon">><<link [[Balloon stand|Balloon Stand]]>><</link>> + <</if>> <<if _robin_location is "beach">> - <<robinicon "lemonade">><<link [[Robin's lemonade stand|Robin's Lemonade]]>><</link>> <br> + <<robinicon "lemonade">> + <<if $balloonStand.robin.status is "closed">> + <span class="red">Robin asked you to leave <<nnpc_him "Robin">> alone.</span> + <<else>> + <<link [[Robin's lemonade stand|Robin's Lemonade]]>><</link>> + <</if>> <</if>> <<if $leftleg is "bound" or $rightleg is "bound">> + <br> <<set $_boundType to ($leftleg is "bound" ? ($rightleg is "bound" ? "both legs" : "your left leg") : "your right leg")>> You cannot go for a run with $_boundType bound. <<elseif $worn.feet.type.includes("heels")>> + <br> <<walkicon>><<link [[Take a walk in heels (0:30)|Beach Heel Walk]]>><</link>><<gtiredness>><<lstress>> - <<else>> + <<else>> + <br> <<runicon>><<link [[Go for a run (0:30)|Beach Run]]>><<athletics 3>><</link>><<gtiredness>><<gathletics>><<lstress>> <</if>> - <br> <</if>> <<if $weather is "clear" and Time.dayState is "night" and $exposed lte 0>> - <<socialiseicon "party">><<link [[Party|Beach Party]]>><</link>> <br> + <<socialiseicon "party">><<link [[Party|Beach Party]]>><</link>> <</if>> <<if $weather is "clear" and Time.dayState isnot "night" and $exposed lte 0>> - <<socialiseicon "volleyball">><<link [[Volleyball|Beach Volleyball]]>><</link>> <br> + <<socialiseicon "volleyball">><<link [[Volleyball|Beach Volleyball]]>><</link>> <<if $exhibitionism gte 75 and $daily.beachStrip isnot 1>> - <<stripicon>><<link [[Strip (0:20)|Beach Strip]]>><<pass 20>><</link>><<exhibitionist5>> <br> + <<stripicon>><<link [[Strip (0:20)|Beach Strip]]>><<pass 20>><</link>><<exhibitionist5>> <</if>> <</if>> <<if $earSlime.forcedCommando isnot undefined and !$worn.under_lower.type.includes("naked")>> @@ -857,7 +888,7 @@ You run across the sand and splash through waves. The sun feels warm and gentle <<if $rng % 2 == 0>> <<link [[Next|Beach]]>><<clotheson>><</link>> <<else>> - <<link [[Next|Beach Clothes Stolen 1]]>><</link>> + <<link [[Next|Beach Clothes Stolen 1]]>><</link>> <</if>> <br> @@ -1089,10 +1120,10 @@ Eventually you get tired and say your goodbyes. You walk back onto the beach and :: Beach Strip Party Decline -"No thanks, I'm having fun by myself," you say. +"No thanks, I'm having fun by myself," you say. <br><br> -The <<person1>><<person>> shrugs and returns to <<his>> party. You continue enjoying your naked romp until you decide it's time to get dressed. +The <<person1>><<person>> shrugs and returns to <<his>> party. You continue enjoying your naked romp until you decide it's time to get dressed. <br><br> <<link [[Next|Beach]]>><<clotheson>><<endevent>><</link>> @@ -1100,25 +1131,25 @@ The <<person1>><<person>> shrugs and returns to <<his>> party. You continue enjo :: Beach Strip Party Agree 1 -"Sure!" you say. The <<person>> smiles, and you follow him back to the party. +"Sure!" you say. The <<person>> smiles, and you follow him back to the party. <br><br> You feel everyone's eyes on your body as you walk onto the dry sand and into the campsite. You are soon surrounded by two dozen people your own age. You quickly become the center of attention. <br><br> <<if playerBellyVisible()>> - A <<generatey2>><<person2>><<person>> almost passes you a cold beer, but stops when <<he>> sees your baby bump. + A <<generatey2>><<person2>><<person>> almost passes you a cold beer, but stops when <<he>> sees your baby bump. <<else>> - You're handed a cold beer by a <<generatey2>><<person2>><<person>>. + You're handed a cold beer by a <<generatey2>><<person2>><<person>>. <<if playerIsPregnant() and playerAwareTheyArePregnant()>> - You're not comfortable drinking while you know you're pregnant. + You're not comfortable drinking while you know you're pregnant. <br><br> - You hold the bottle while making conversation. If anyone notices your abstinence, they don't address it. + You hold the bottle while making conversation. If anyone notices your abstinence, they don't address it. <br><br> - <<else>> + <<else>> You politely sip the beer while making conversation. <<alcohol 60>> <br><br> - <</if>> + <</if>> <</if>> Your nudity is the hottest topic of conversation. "We go to school together, you know," a <<generatey3>><<person3>><<person>> says. "Can't say I'm surprised to see you here like this." @@ -1134,13 +1165,13 @@ Your nudity is the hottest topic of conversation. "We go to school together, you :: Beach Strip Party Agree 2 -Despite the occasional lewd remark, no one tries to grope or molest you. +Despite the occasional lewd remark, no one tries to grope or molest you. <br><br> You spend the next hour hanging out and enjoying the attention. Several people have their phones out and openly take footage of you. You agree to take several staged photos with the others and a big group photo with the whole party. <br> <<gcool>><<status 10>><<fameexhibitionism 30 "pic">> <br><br> -As the party begins to die down, you say your goodbyes and leave, returning to your clothes. You get dressed and end your naked day at the beach. +As the party begins to die down, you say your goodbyes and leave, returning to your clothes. You get dressed and end your naked day at the beach. <br><br> <<link [[Next|Beach]]>><<clotheson>><<endevent>><</link>> @@ -1188,11 +1219,11 @@ As the party begins to die down, you say your goodbyes and leave, returning to y <br> :: Beach Milkshake - +<<wearProp "milkshake">> <<effects>> You drink the milkshake you bought from the cafe. It's deliciously creamy, and each sip helps melt away the stress. <br><br> -<<link [[Next|Beach]]>><</link>> +<<link [[Next|Beach]]>><<handheldon>><</link>> :: Beach Clothes Stolen 1 @@ -1216,10 +1247,10 @@ You watch helplessly as <<he>> grabs your clothes, leaving you naked on the beac "Hey!" you shout. <br><br> -The <<person>> quickly grabs the last of your clothes and runs off. You take off after <<him>>, running as fast as you can over the sand. You try to cover yourself with your arms, but it slows you down too much. Soon you drop your arms, leaving your whole body exposed to the beach. +The <<person>> quickly grabs the last of your clothes and runs off. You take off after <<him>>, running as fast as you can over the sand. You try to cover yourself with your arms, but it slows you down too much. Soon you drop your arms, leaving your whole body exposed to the beach. <br><br> -You try to cover yourself with your arms, but it slows you down too much. Soon you drop your arms, leaving your whole body exposed to the beach. The <<person>> runs down the beach, passing many other people. It's obvious <<hes>> a thief, but no one tries to stop <<him>>. Instead, the onlookers shout and taunt you. You're able to spot a few of them holding their phones, filming the whole thing. +You try to cover yourself with your arms, but it slows you down too much. Soon you drop your arms, leaving your whole body exposed to the beach. The <<person>> runs down the beach, passing many other people. It's obvious <<hes>> a thief, but no one tries to stop <<him>>. Instead, the onlookers shout and taunt you. You're able to spot a few of them holding their phones, filming the whole thing. <br><br> <<link [[Next|Beach Clothes Stolen 3]]>><</link>><<athleticsdifficulty 1 1000>> @@ -1234,11 +1265,11 @@ You try to cover yourself with your arms, but it slows you down too much. Soon y You ignore him as you put your clothes on, finally covering yourself again.<<clotheson>> <br> - + <<link [[Next|Beach]]>><<endevent>><</link>> <br> <<else>> - <<Hes>> heading towards the street. You're almost able to grab <<him>>, but <<he>> makes it onto the sidewalk. The firmer ground helps <<him>> speed up, and <<he>> heads down the street, into a far more public and crowded area than the beach. + <<Hes>> heading towards the street. You're almost able to grab <<him>>, but <<he>> makes it onto the sidewalk. The firmer ground helps <<him>> speed up, and <<he>> heads down the street, into a far more public and crowded area than the beach. <br> <<link [[Chase after them|Beach Clothes Stolen 4]]>><</link>> @@ -1262,7 +1293,7 @@ You are already attracting attention and stares. You decide to turn around and r You <span class="green">successfully</span> catch up to <<him>> and tackle <<him>> to the ground. While the <<person>> is recovering, you grab your clothes as quickly as you can. <br><br> - "It was just a joke, lighten up," <<he>> says meekly. You are still completely naked in public, and a crowd has formed around you. They all stare as you dress yourself as quickly as possible, finally covering yourself. + "It was just a joke, lighten up," <<he>> says meekly. You are still completely naked in public, and a crowd has formed around you. They all stare as you dress yourself as quickly as possible, finally covering yourself. <br><br> You walk off, trying to stifle your embarrassment. <<clotheson>> @@ -1275,7 +1306,7 @@ You are already attracting attention and stares. You decide to turn around and r You think you are about to catch <<him>>, but outside the arcade, he slips into a crowd of people and disappears. You run past the crowd, trying to find <<him>>, but you see no sign of him or your clothes. <br><br> - You spend a minute trying desperately to find out which direction the thief went, but you can no longer make <<him>> out amongst the many people milling about. Meanwhile, everyone can see your fully exposed <<genitals>>, <<if $player.breastssize gte 3>><<breasts>>,<</if>> and <<bottom>>. Hundreds of pictures must have been taken of you, and even more people are showing up and pulling out their phones. You try to find a way to escape. + You spend a minute trying desperately to find out which direction the thief went, but you can no longer make <<him>> out amongst the many people milling about. Meanwhile, everyone can see your fully exposed <<genitals>>, <<if $player.breastssize gte 3>><<breasts>>,<</if>> and <<bottom>>. Hundreds of pictures must have been taken of you, and even more people are showing up and pulling out their phones. You try to find a way to escape. <br><br> Finally, you spot a gap in the crowd and run through. You run down the street, hearing laughter and shouts behind you. You sprint into the nearest alleyway and escape. diff --git a/game/overworld-town/loc-brothel/main.twee b/game/overworld-town/loc-brothel/main.twee index 3399fa5348f6a60373c7325cdbaf3f97d6cb2f61..75084579324e79f85b514d5b2b2aed5abc77d6d8 100644 --- a/game/overworld-town/loc-brothel/main.twee +++ b/game/overworld-town/loc-brothel/main.twee @@ -1105,7 +1105,7 @@ You are led down a dim corridor. You can hear music playing somewhere above. The "There," says Briar. "Now you're ready to service our customers. Because I'm kind, you'll only need to help <<number $punishmenthole>> of them." <<person1>><<He>> ties your neck to a peg beneath the hole, leaving your mouth pressed against it. "Have fun!" <<he>> says as <<he>> shuts the door, leaving you in darkness. <br><br> <<set $leftarm to "bound">> -<<set $rightarm to "bound">> +<<set $rightarm to "bound">><<handheldruined>> <<set $head to "bound">> <<set $feetuse to "bound">> <<set $punishmentposition to "gloryhole">> @@ -1499,14 +1499,14 @@ You examine the sex machine. A large phallus protrudes from the main body, besid <<He>> gives you a last pinch, then leaves you alone. <br><br> -<<endcombat>><<set $leftarm to "bound">><<set $rightarm to "bound">> +<<endcombat>><<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>> <<else>> You kick the <<person>> away from you. You hear <<him>> grumble, but <<he>> leaves you alone. <br><br> -<<endcombat>><<set $leftarm to "bound">><<set $rightarm to "bound">> +<<endcombat>><<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>> <</if>> @@ -1925,7 +1925,7 @@ Due to the high police presence, you have a to wait for things to calm down befo <<person2>>"This one's slippery," says the <<person>>. "Cuff <<phim>> first so <<pshe>> doesn't try anything." <br><br> "Okay." - <<set $leftarm to "bound">><<set $rightarm to "bound">> + <<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>> <</if>> <</if>> @@ -1989,7 +1989,7 @@ Due to the high police presence, you have a to wait for things to calm down befo :: Brothel Raid Arrest 2 <<set $outside to 0>><<set $location to "town">><<effects>> -<<set $leftarm to "bound">><<set $rightarm to "bound">> +<<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>> <<pass 45>> You are led out front where brothel staff are being cuffed and lined up against a wall. A crowd of passers-by gawk. <br><br> @@ -2580,7 +2580,7 @@ You notice ropes and chains lying on the floor, giving you an anxious feeling. :: Brothel Escort Job Undress <<effects>><<undress "escort_job">> -<<set $leftarm to "bound">><<set $rightarm to "bound">><<shackle_feet>> +<<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>><<shackle_feet>> <<if $phase is 1>> The <<person1>><<person>> and the <<person2>><<person>> give you lustful looks as you take off your clothing. They shove you to the middle of the room. diff --git a/game/overworld-town/loc-cafe/main.twee b/game/overworld-town/loc-cafe/main.twee index d10d0e89d7242d535e6e6ba44186cdb30b73ae86..906afbc257b98c1c033c133d4776442f0e450beb 100644 --- a/game/overworld-town/loc-cafe/main.twee +++ b/game/overworld-town/loc-cafe/main.twee @@ -151,10 +151,10 @@ You are in the Ocean Breeze Cafe. <<if $openinghours is 1 and $exposed lt 1 and $oceanbreezejob isnot 1>> <<if $oceanbreezejoboffer is 1>> - <<ind>><<link [[Ask for work|Ocean Breeze Ask Again]]>><</link>> + <<askicon>><<link [[Ask for work|Ocean Breeze Ask Again]]>><</link>> <br> <<else>> - <<ind>><<link [[Ask for work|Ocean Breeze Ask]]>><</link>> + <<askicon>><<link [[Ask for work|Ocean Breeze Ask]]>><</link>> <br> <</if>> <</if>> @@ -194,28 +194,28 @@ You are in the Ocean Breeze Cafe. <<if playerIsPregnant() and playerAwareTheyArePregnant()>> <span class="blue">You can't bring yourself to drink winter ale while you know you're with child.</span> <<else>> - <<link [[Buy winter ale (0:10 £7)|Cafe Winter Ale]]>><<set $daily.cafeEaten to 1>><<set $money -= 700>><<stress -6>><<alcohol 100>><<pass 10>><</link>><<lstress>><<galcohol>> + <<link [[Buy winter ale (0:10 £7)|Cafe Eat]]>><<set $phase to "winter ale">><<set $daily.cafeEaten to 1>><<set $money -= 700>><<stress -6>><<alcohol 100>><<pass 10>><</link>><<lstress>><<galcohol>> <</if>> <br> <<elseif Time.season is "spring">> <<if playerIsPregnant() and playerAwareTheyArePregnant()>> <span class="blue">You can't bring yourself to drink fruity ale while you know you're with child.</span> <<else>> - <<link [[Buy fruity ale (0:10 £7)|Cafe Spring Ale]]>><<set $daily.cafeEaten to 1>><<set $money -= 700>><<stress -6>><<alcohol 60>><<pass 10>><</link>><<lstress>><<galcohol>> + <<link [[Buy fruity ale (0:10 £7)|Cafe Eat]]>><<set $phase to "fruity ale">><<set $daily.cafeEaten to 1>><<set $money -= 700>><<stress -6>><<alcohol 60>><<pass 10>><</link>><<lstress>><<galcohol>> <</if>> <br> <<elseif Time.season is "summer">> <<if playerIsPregnant() and playerAwareTheyArePregnant()>> - <span class="blue">You can't bring yourself to drink shandy ale while you know you're with child.</span> + <span class="blue">You can't bring yourself to drink shandy while you know you're with child.</span> <<else>> - <<link [[Buy shandy (0:10 £7)|Cafe Summer Ale]]>><<set $daily.cafeEaten to 1>><<set $money -= 700>><<stress -6>><<alcohol 40>><<pass 10>><</link>><<lstress>><<galcohol>> + <<link [[Buy shandy (0:10 £7)|Cafe Eat]]>><<set $phase to "shandy">><<set $daily.cafeEaten to 1>><<set $money -= 700>><<stress -6>><<alcohol 40>><<pass 10>><</link>><<lstress>><<galcohol>> <</if>> <br> <<else>> <<if playerIsPregnant() and playerAwareTheyArePregnant()>> <span class="blue">You can't bring yourself to drink autumn ale while you know you're with child.</span> <<else>> - <<link [[Buy autumn ale (0:10 £7)|Cafe Autumn Ale]]>><<set $daily.cafeEaten to 1>><<set $money -= 700>><<stress -6>><<alcohol 80>><<pass 10>><</link>><<lstress>><<galcohol>> + <<link [[Buy autumn ale (0:10 £7)|Cafe Eat]]>><<set $phase to "autumn ale">><<set $daily.cafeEaten to 1>><<set $money -= 700>><<stress -6>><<alcohol 80>><<pass 10>><</link>><<lstress>><<galcohol>> <</if>> <br> <</if>> @@ -229,7 +229,12 @@ You are in the Ocean Breeze Cafe. <</if>> <<if $money gte 500>> <<foodicon "fruitsalad">> - <<link [[Buy fruit salad (0:20 £5)|Cafe Fruit Salad]]>><<set $daily.cafeEaten to 1>><<set $money -= 500>><<stress -6>><<pass 20>><</link>><<lstress>> + <<link [[Buy fruit salad (0:20 £5)|Cafe Eat]]>><<set $phase to "fruit salad">><<set $daily.cafeEaten to 1>><<set $money -= 500>><<stress -6>><<pass 20>><</link>><<lstress>> + <br> + <</if>> + <<if $money gte 600 and Time.season is "winter">> + <<foodicon "gingerbread">> + <<link [[Buy gingerbread (0:20 £6)|Cafe Eat]]>><<set $phase to "gingerbread">><<set $daily.cafeEaten to 1>><<set $money -= 600>><<stress -8>><<pass 20>><</link>><<lstress>> <br> <</if>> <<if $money gte 1000>> @@ -1455,7 +1460,7 @@ The rest of the shift passes uneventfully. You earn <<moneyGain 5>>. You <</if>> take a seat at one of the elevated seats at the window and order a <<print _coffee>> from the menu. -It arrives promptly; Wafting the delicious smell of fresh coffee up your nose. +It arrives promptly, wafting the delicious smell of fresh coffee up your nose. <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1 and $exhibitionism gte 55>> A wicked thought occurs to you as you take a sip of your coffee. @@ -1774,33 +1779,6 @@ You feel a little more refreshed with the caffeine in your system. <<endevent>> <<link [[Next|Ocean Breeze]]>><</link>> -:: Cafe Fruit Salad -<<set $outside to 0>><<set $location to "cafe">><<effects>> -<<if $daily.earSlimeOceanBreezeCafeEat>> - You decide that the ear slime is right and -<<else>> - You -<</if>> -<<if $weather is "rain">> - take a seat and order a fruit salad. - It arrives promptly; fresh strawberries, blueberries, kiwifruit, and chunks of pineapple. It's sweet and delicious. - You stare out the window at the rain-filled street, and feel comfy. - <br><br> -<<elseif $weather is "snow">> - take a seat and order a fruit salad. - It arrives promptly; fresh strawberries, blueberries, kiwifruit, and chunks of pineapple. It's sweet and delicious. - You stare out the window at the snowy street, and feel comfy. - <br><br> -<<else>> - take a seat outside and order a fruit salad. - It arrives promptly; fresh strawberries, blueberries, kiwifruit, and chunks of pineapple. It's sweet and delicious. - You stare out over the sea, and enjoy the breeze. - <br><br> -<</if>> - -<<link [[Next|Ocean Breeze]]>><</link>> -<br> - :: Cafe Pancakes <<set $outside to 0>><<set $location to "cafe">><<effects>> @@ -2132,117 +2110,30 @@ You ignore the <<person>> and finish licking the plate clean. You lean back, sat <<link [[Next|Ocean Breeze]]>><</link>> <br> -:: Cafe Winter Ale -<<set $outside to 0>><<set $location to "cafe">><<effects>> - -<<if $daily.earSlimeOceanBreezeCafeEat>> - You decide that the ear slime is right and -<<else>> - You -<</if>> -<<if $weather is "rain">> - take a seat and order a winter ale. - It arrives promptly; it's served in a beautifully curved glass. It's sweet, rather than bitter. It's delicious. - You stare out the window at the rain-filled street, and feel warm inside. - <br><br> -<<elseif $weather is "snow">> - take a seat and order a winter ale. - It arrives promptly; it's served in a beautifully curved glass. It's sweet, rather than bitter. It's delicious. - You stare out the window at the snowy street, and feel the alcohol warming you inside. - <br><br> -<<else>> - take a seat and order a winter ale. - It arrives promptly; it's served in a beautifully curved glass. It's sweet, rather than bitter. It's delicious. - You stare out the window, and feel the alcohol warming you inside. - <br><br> -<</if>> - -<<link [[Next|Ocean Breeze]]>><</link>> -<br> - -:: Cafe Spring Ale +:: Cafe Eat <<set $outside to 0>><<set $location to "cafe">><<effects>> - -<<if $daily.earSlimeOceanBreezeCafeEat>> - You decide that the ear slime is right and -<<else>> - You -<</if>> -<<if $weather is "rain">> - take a seat and, considering the season, order a fruity ale. - It arrives quickly and served in a regular beer glass. It's very sweet and light. It's delicious. - You stare out the window at the rain-filled street, and feel comfy. - <br><br> -<<elseif $weather is "snow">> - take a seat and, considering the season, order a fruity ale. - It arrives quickly and served in a regular beer glass. It's very sweet and light. It's delicious. - You stare out the window at the snowy street, and feel comfy. - <br><br> -<<else>> - take a seat and, considering the season, order a fruity ale. - It arrives quickly and served in a regular beer glass. It's very sweet and light. It's delicious. - You stare out over the sea, and enjoy the spring breeze. - <br><br> -<</if>> - -<<link [[Next|Ocean Breeze]]>><</link>> -<br> - -:: Cafe Summer Ale -<<set $outside to 0>><<set $location to "cafe">><<effects>> - -<<if $daily.earSlimeOceanBreezeCafeEat>> - You decide that the ear slime is right and -<<else>> - You -<</if>> -<<if $weather is "rain">> - take a seat and, considering the season, order a shandy. - It arrives quickly. It's served in a can with a beer glass; you're clearly meant to pour it yourself. It's lemon flavoured and very refreshing! - You stare out the window at the rain-filled street, and feel comfy. - <br><br> -<<elseif $weather is "snow">> - take a seat and, considering the season, order a shandy. - It arrives quickly. It's served in a can with a beer glass; you're clearly meant to pour it yourself. It's lemon flavoured and very refreshing! - You stare out the window at the snowy street, and feel comfy. - <br><br> -<<else>> - take a seat and, considering the season, order a shandy. - It arrives quickly. It's served in a can with a beer glass; you're clearly meant to pour it yourself. It's lemon flavoured and very refreshing! - You stare out over the sea, and enjoy the summer breeze. - <br><br> -<</if>> - -<<link [[Next|Ocean Breeze]]>><</link>> -<br> - -:: Cafe Autumn Ale -<<set $outside to 0>><<set $location to "cafe">><<effects>> - -<<if $daily.earSlimeOceanBreezeCafeEat>> - You decide that the ear slime is right and -<<else>> - You -<</if>> -<<if $weather is "rain">> - take a seat and order an autumn ale. - It arrives quickly. It's sweet and has a hint of caramel. It's delicious. - You stare out the window at the rain-filled street, and feel comfy. - <br><br> -<<elseif $weather is "snow">> - take a seat and order an autumn ale. - It arrives quickly. It's sweet and has a hint of caramel. It's delicious. - You stare out the window at the snowy street, and feel comfy. - <br><br> -<<else>> - take a seat and order an autumn ale. - It arrives quickly. It's sweet and has a hint of caramel. It's delicious. - You stare out over the sea, and enjoy the autumn breeze. - <br><br> -<</if>> - -<<link [[Next|Ocean Breeze]]>><</link>> -<br> +<<switch $phase>> + <<case "fruity ale">> + <<set _food to "a fruity ale. It arrives quickly, served in a regular beer glass. It's very sweet and light. It's delicious">> + <<case "winter ale">> + <<set _food to "winter ale. It arrives promptly, served in a beautifully curved glass. It's sweet, rather than bitter. It's delicious">> + <<case "shandy">> + <<set _food to "a shandy. It arrives quickly. It's served in a can with a beer glass; you're clearly meant to pour it yourself. It's lemon flavoured and very refreshing">> + <<case "autumn ale">> + <<set _food to "an autumn ale. It arrives quickly. It's sweet and has a hint of caramel. It's delicious">> + <<case "fruit salad">> + <<set _food to "a fruit salad. It arrives promptly, full of fresh strawberries, blueberries, kiwi, and chunks of pineapple. It's sweet and delicious">> + <<case "gingerbread">> + <<set _food to "a gingerbread man. It arrives promptly, a friendly icing face smiling up at you. It's sweet and delicious, and it reminds you of Christmas">> + <<wearProp "gingerbread">> + <<default>> + <<set _food to "your food. It arrives promptly, and you finish it quickly. It's delicious">> +<</switch>> + +<<print $daily.earSlimeOceanBreezeCafeEat ? "You decide that the ear slime is right and" : "You">> take a seat and order _food. +You stare out the window <<print $weather is "rain" ? "at the rain-filled street, feeling comfy" : $weather is "snow" ? "at the snowy street, feeling comfy" : "and gaze at the sea, enjoying the breeze">>. +<br><br> +<<link [[Next|Ocean Breeze]]>><<endevent>><</link>> :: Ocean Breeze Tourist <<set $outside to 0>><<set $location to "cafe">><<effects>> diff --git a/game/overworld-town/loc-compound/main.twee b/game/overworld-town/loc-compound/main.twee index 2420a3491d26e52ed765af02a7ff8acc5faaf25b..ec0e1c1079d07d7fad6761eb755a8f9c12cb2677 100644 --- a/game/overworld-town/loc-compound/main.twee +++ b/game/overworld-town/loc-compound/main.twee @@ -522,7 +522,7 @@ A <<generate3>><<npcClothesType $NPCList[2] "compoundLab">><<person3>><<person>> As soon as the <<person>> touches your arm a jolt surges through you. You lose consciousness. <br><br> -<<link [[Next|Elk Compound Experiment]]>><<upperruined>><<lowerruined>><<underruined>><<underupperruined>><<endcombat>><</link>> +<<link [[Next|Elk Compound Experiment]]>><<upperruined>><<lowerruined>><<underruined>><<underupperruined>><<handheldruined>><<endcombat>><</link>> <br> :: Elk Compound Fight Finish diff --git a/game/overworld-town/loc-compound/wraith.twee b/game/overworld-town/loc-compound/wraith.twee index 78bebd4d6961bdc39fa2228e7e5de87df3420841..2c060bd42f0fe1bc2806c709a12e55229a6e9437 100644 --- a/game/overworld-town/loc-compound/wraith.twee +++ b/game/overworld-town/loc-compound/wraith.twee @@ -569,13 +569,13 @@ A sudden noise draws your attention. A trio of guards, led by a <<person>>, run <span class="red">but fail.</span> Your body is held still. "We've subdued the intruder," the <<person>> says into <<his>> radio. <<He>> touches your head, and a jolt surges through you. The pale figure leaves your body, waving at you as you lose conciousness. <br><br> - <<link [[Next|Elk Compound Experiment]]>><<upperruined>><<lowerruined>><<underruined>><<underupperruined>><<endWraith>><<clearWraith>><<endRainWraith>><</link>> + <<link [[Next|Elk Compound Experiment]]>><<upperruined>><<lowerruined>><<underruined>><<underupperruined>><<handheldruined>><<endWraith>><<clearWraith>><<endRainWraith>><</link>> <</if>> <<else>> <span class="pink">You let it hold you still.</span> "We've subdued the intruder," the <<person>> says into <<his>> radio. <<He>> touches your head, and a jolt surges through you. The pale figure leaves your body, waving at you as you lose conciousness. <br><br> - <<link [[Next|Elk Compound Experiment]]>><<upperruined>><<lowerruined>><<underruined>><<underupperruined>><<endWraith>><<clearWraith>><<endRainWraith>><</link>> + <<link [[Next|Elk Compound Experiment]]>><<upperruined>><<lowerruined>><<underruined>><<underupperruined>><<handheldruined>><<endWraith>><<clearWraith>><<endRainWraith>><</link>> <</if>> :: Elk Compound Possessed Guards Fight diff --git a/game/overworld-town/loc-docks/main.twee b/game/overworld-town/loc-docks/main.twee index f5428c4db25c6f27b4251f18f62f184da116bc4a..670159aa924af7ec7f538b73ef530ad1fc6b3218 100644 --- a/game/overworld-town/loc-docks/main.twee +++ b/game/overworld-town/loc-docks/main.twee @@ -265,7 +265,7 @@ You swim back to shore. "<<pShe>> capsized it on purpose!" the <<person>> says t <<neutral 1>> <<molested>> <<maninit>> - <<set $leftarm to "bound">><<set $rightarm to "bound">> + <<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>> They push you onto the deck, flip you over, and bind your arms with tight knots. <br><br> <<if $worn.upper.type.includes("naked") and $worn.lower.type.includes("naked")>><<set $phase to 1>><</if>> @@ -848,8 +848,8 @@ The <<person>> seems anxious. :: Passout Docks <<set $outside to 0>><<set $location to "town">><<dockeffects>><<effects>> -<<upperruined>><<lowerruined>><<underruined>> -<<set $leftarm to "bound">><<set $rightarm to "bound">> +<<upperruined>><<lowerruined>><<underruined>><<handheldruined>> +<<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>> You awaken naked on a chair. Lengths of rope criss-cross your body and tie you down. A round board sits on your knees and leans against your chest, giving you some cover from prying eyes. You can't move an inch. Walls of corrugated metal suggest you're inside a cargo container. You're not alone. <br><br> diff --git a/game/overworld-town/loc-home/event-widgets.twee b/game/overworld-town/loc-home/event-widgets.twee index 690c594af2d0a090f5dbfb0051e132dea1384e18..1d6dd9725d34ccd4b87b9763cd7296544d9e5779 100644 --- a/game/overworld-town/loc-home/event-widgets.twee +++ b/game/overworld-town/loc-home/event-widgets.twee @@ -128,7 +128,7 @@ <br> <<link [[Refuse|Orphanage Loft Intro]]>><<set $phase to 1>><</link>> <br> - + <<case 6>> <<homeeventnorm>> <</switch>> @@ -352,107 +352,17 @@ <<link [[Ignore (0:01)|Home Orphan Poster]]>><<set $phase to 2>><<pass 1>><</link>> <<case 14>> - <<if $orphan_hope gte 40 and $rng gte 56>> - You make your way through the orphanage. - <br><br> - - A melodious sound fills the halls. The music's volume increases until it reverberates in you. It dulls outside noise, seemingly brightening your surroundings.<<lstress>><<stress -6>> - <br><br> - - Eventually, you stumble upon its origin. It is coming from an open door nearby. - <br><br> - - <<link [[Investigate (0:15)|Home Orphan Music Calm Choice]]>><<pass 15>><<set $phase to 1>><</link>> - <br> - <<link [[Ignore|Home Orphan Music Calm Choice]]>><<set $phase to 2>><</link>> - - <<elseif $orphan_hope gte 20 and $rng gte 56>> - <<generatey1>><<person1>> - - You make your way through the orphanage. - <br><br> - - You hear breaking, followed by screaming. Bailey appears, holding a <<person1>><<person>> and the remains of some string instrument. The <<person1>><<person>> kicks, screams, and raves about Bailey's tyranny. - <br><Br> - - Bailey seems unbothered, until the <<personsimple>> bites <<nnpc_him "Bailey">>. <<nnpc_He "Bailey">> strikes the orphan, slamming <<him>> against the wall. A nasty bruise forms from the impact. The silenced orphan clutches <<his>> face, holding back sobs.<<gstress>><<gtrauma>><<stress 6>><<trauma 3>> - <br><br> - - Bailey grabs <<him>> by <<his>> hair and continues to walk.<<lreb>><<reb -1>> - <br><br> - - <<link [[Next|Orphanage]]>><<endevent>><</link>> - - <<elseif $orphan_reb gte 40 and $rng gte 56>> - <<generatey1>><<person1>> - - You make your way through the orphanage. - <br><br> - - You nearly jump out of your skin when you hear a booming sound. The noise sends your heart racing as you search for its origin.<<gstress>><<stress 6>> - <br><br> - - Eventually, you find it. A <<person1>><<person>> is standing on two tables, playing an electric guitar and fiddling with an amplifier. Orphans approach <<his>> 'stage', curious about the performance. - <br><br> - - <<link [[Approach|Home Orphan Music Stormy Choice]]>><<set $phase to 1>><</link>> - <br> - <<link [[Ignore|Home Orphan Music Stormy Choice]]>><<set $phase to 2>><</link>> - - <<elseif $orphan_reb gte 20 and $rng gte 56>> - <<generatey1>><<person1>> - - <<switch random(1,5)>> - <<case 1>> - <<set _instrument to "flute">> - - <<case 2>> - <<set _instrument to "violin">> - - <<case 3>> - <<set _instrument to "keyboard">> - - <<case 4>> - <<set _instrument to "guitar">> - - <<case 5>> - <<set _instrument to "recorder">> - <</switch>> - - As you make your way through the orphanage, you hear a familiar voice. It's Bailey. - <br><br> - - "Hand it over." <<nnpc_He "Bailey">> looms over a <<person1>><<person>> clutching a _instrument. - <br><br> - - "It's my _instrument," the <<personsimple>> protests. "You can't just take it!" - <br><br> - - Bailey's expression hardens. <<nnpc_He "Bailey">> steps forward, and leans into the <<personsimple>>'s face. "Repeat that. Please."<<gstress>><<stress 6>> - <br><br> - - The <<person1>><<person>> scowls but hands the _instrument over to Bailey, who tears it out of <<his>> hands. - <br><br> - - "Thank you." <<nnpc_He "Bailey">> carts the _instrument off, leaving the <<personsimple>> to glare at <<nnpc_him "Bailey">>.<<lhope>><<greb>><<hope 1>><<reb 1>> - <br><br> - - <<link [[Next|Orphanage]]>><<endevent>><</link>> - - <<else>> - <<npc Bailey>>Bailey shoves past you, carrying a resupply for the kitchen. - <<pain 1>><<gpain>> - <br><br> - - <<link [[Next|Orphanage]]>><<endevent>><</link>> - <br> + <<npc Bailey>>Bailey shoves past you, carrying a resupply for the kitchen. + <<pain 1>><<gpain>> + <br><br> - <</if>> + <<link [[Next|Orphanage]]>><<endevent>><</link>> + <br> <</switch>> <</widget>> <<widget "homeeventhopehi">> - <<switch random(1, 5)>> + <<switch random(1, 6)>> <<case 1>> <<npc Bailey>><<person1>>A group of orphans sit in a circle, chatting. Bailey breaks them up. <<lreb>><<reb -1>> @@ -461,67 +371,9 @@ <<link [[Next|Orphanage]]>><<endevent>><</link>> <br> <<case 2>> - <<if $orphan_reb gte 40 and $rng gte 56>> - <<generatey1>><<person1>> - - You make your way through the orphanage. - <br><br> - - A <<person1>><<person>> runs past you, laughing maniacally and throwing posters about. You catch one. The poster is a manifesto against Bailey, cursing <<nnpc_him "Bailey">> and listing the sordid details of <<nnpc_his "Bailey">> crimes. - <br><br> - - The poster is torn out of your hand, and you're thrown against the wall.<<gpain>><<violence 6>> - <br><br> - - You look up. It's Bailey. <<nnpc_He "Bailey">> doesn't address you, instead sprinting after the <<personsimple>>. - <br><br> - - <<elseif $orphan_reb lte -20 and $rng gte 56>> - <<generatey1>><<person1>> - - You make your way through the orphanage. - <br><br> - - You hear Bailey, and turn to see <<nnpc_him "Bailey">> talking down to a <<person1>><<person>>. - <br><br> - - "So instead of going out to look for work, you're sitting around doing nothing?" <<nnpc_he "Bailey">> waves around a 'looking for job' poster, irritated. - <br><br> - - "N-not exactly," the <<person1>><<person>> starts. "I j-just don't want to risk bein-" The <<personsimple>> jumps as Bailey rips up <<his>> advert. - <br><br> - - "Your <<printmoney 50000>> is due the day after tomorrow. I don't care what you have to do to get it." - <br><br> - - Tears form in the <<person1>><<person>>'s eyes. <<He>> runs off. You decide to leave, before Bailey notices you.<<lhope>><<greb>><<hope -1>><<reb 1>> - <br><br> - - <<elseif $orphan_hope lte -20 and $rng gte 56>> - <<generatey1>> <<generatey2>> - You make your way through the orphanage. - <br><br> - - You see a <<person1>><<person>> consoling a <<person2>><<person>>. They are beside the pinned up scraps of a poster. Between sobs, the <<person2>><<person>> stutters out, "W-why does Bailey keep t-t-tearing dow-" - <br><br> - - <<He>> wails. The <<person1>><<person>> wraps <<his>> arms around <<person2>><<him>>. "It's okay," <<person1>><<he>> starts, "Look." The <<personsimple>> reaches into <<his>> pocket and hands <<his>> crying friend some bills. - <br><br> - - "Go put up another one. We won't let Bailey win." The <<person2>><<personsimple>> stops <<his>> crying and runs off, thanking the <<person1>><<person>> the entire way. The <<personsimple>> turns to the scraps. - <br><br> - - "That was all the money I had too..." <<He>> sighs. - <br><br> - - You continue on.<<ghope>><<greb>><<hope 1>><<reb 1>> - <br><br> - - <<else>> - <<npc Bailey>><<person1>>Someone's put up an encouraging poster in the main hall. Bailey tears it down. - <<lhope>><<hope -1>> - <br><br> - <</if>> + <<npc Bailey>><<person1>>Someone's put up an encouraging poster in the main hall. Bailey tears it down. + <<lhope>><<hope -1>> + <br><br> <<link [[Next|Orphanage]]>><<endevent>><</link>> <br> @@ -542,33 +394,18 @@ <<link [[Next|Orphanage]]>><<endevent>><</link>> <br> <<case 5>> - <<if $orphan_hope gte 20 and $rng gte 56>> - <<switch random(1,8)>> - <<case 1>> - <<set _poster to "a sunrise with 'each day is a new opportunity to shine' scrawled below.">> - - <<case 2>> - <<set _poster to "two stick figures holding hands. 'Together we can do anything' is scrawled below.">> - - <<case 3>> - <<set _poster to "a flower growing out of cracked pavement. 'Each day is a new opportunity to shine' is scrawled below.">> - - <<case 4>> - <<set _poster to "a hand reaching out with the words 'No matter what, you are not alone.'">> - - <<case 5>> - <<set _poster to "a yellow thumbs up.">> - - <<case 6>> - <<set _poster to "a seed is sprouting from the ground. 'Even the tiniest of beginnings can lead to something great' is scrawled below.">> - - <<case 7>> - <<set _poster to "an explorer scaling a mountain. 'The sky's the limit' is scrawled below.">> - - <<case 8>> - <<set _poster to "a multi-coloured heart. 'I don't know you, but I love you' is scrawled in crayon.">> - - <</switch>> + <<rng>> + <<if $rng gte 56>> + <<set _poster to either( + "a sunrise with 'each day is a new opportunity to shine' scrawled below.", + "two stick figures holding hands. 'Together we can do anything' is scrawled below.", + "a flower growing out of cracked pavement. 'Each day is a new opportunity to shine' is scrawled below.", + "is a hand reaching out with the words 'No matter what, you are not alone.'", + "is a yellow thumbs up.", + "a seed is sprouting from the ground. 'Even the tiniest of beginnings can lead to something great' is scrawled below.", + "an explorer scaling a mountain. 'The sky's the limit' is scrawled below.", + "a multi-coloured heart. 'I don't know you, but I love you' is scrawled in crayon." + )>> You make your way through the orphanage. <br><br> @@ -576,48 +413,43 @@ You pause mid-way. You spot a poorly drawn and coloured poster haphazardly pinned to a notice board. It depicts _poster <br><br> - A fuzzy feeling creeps into your chest as you pass the poster.<<ghope>><<hope 1>> - <br><br> - - <<elseif $orphan_reb gte 20 and $rng gte 56>> - <<switch random(1,4)>> - <<case 1>> - <<set _poster to "Bailey, with a big 'X' drawn over <<Baileygender_his>> face. It has no words, but the intent is clear.">> - - <<case 2>> - <<set _poster to "the orphanage, with an 'X' drawn over it. Underneath, 'end the tyranny' is written in bold letters.">> - - <<case 3>> - <<generatey1>> - <<set _poster to "a <<person1>><<person>> holding a banner that reads 'Our Voices Matter.'">> - - <<case 4>> - <<set _poster to "three bold words: 'Fearless. Resilient. Unyielding.'">> - <</switch>> - - You make your way through the orphanage. - <br><br> - - You pause mid-way. Haphazardly pinned to a notice board, you spot an interesting poster. It depicts _poster + A fuzzy feeling creeps into your chest as you pass the poster.<<ghope>><<hope 1>><<lstress>><<stress -6>> <br><br> - - A warmth stirs in you as you pass the poster.<<greb>><<reb 1>> - <br><br> - <<else>> You find an encouraging home-made poster in the main hall. One of the residents must have put it up. Somehow, it makes you feel better. - <<lstress>><<stress -6>> + <<ghope>><<hope 1>><<lstress>><<stress -6>> <br><br> - <</if>> + <<link [[Next|Orphanage]]>><<endevent>><</link>> + <br> + <<case 6>> + You make your way through the orphanage. + <br><br> + A melodious sound fills the halls. The music's volume increases until it reverberates in you. It dulls outside noise, seemingly brightening your surroundings.<<lstress>><<stress -6>> + <br><br> + Eventually, you stumble upon its origin. It is coming from an open door nearby. + <br><br> + <<link [[Investigate (0:15)|Home Orphan Music Calm Choice]]>><<pass 15>><<set $phase to 1>><</link>> + <br> + <<link [[Ignore|Home Orphan Music Calm Choice]]>><<set $phase to 2>><</link>> + <br> + <<case 7>> + As you make your way through the orphanage, you hear the uplifting sound of music playing. <<lstress>><<stress -6>> + <br><br> + The music abruptly stops, and you hear the sound of something breaking, followed by yelling. Bailey appears, holding a <<generatey1>><<person1>><<person>> and the remains of some string instrument. The <<person1>><<person>> kicks, screams, and raves about Bailey's tyranny. <<greb>><<reb 1>> + <br><br> + Bailey seems unbothered, until the <<personsimple>> bites <<nnpc_him "Bailey">>. <<nnpc_He "Bailey">> strikes the orphan, slamming <<him>> against the wall. A nasty bruise forms from the impact. The silenced orphan clutches <<his>> face, holding back sobs.<<gtrauma>><<trauma 3>> + <br><br> + Bailey grabs <<him>> by <<his>> hair and continues to walk. + <br><br> <<link [[Next|Orphanage]]>><<endevent>><</link>> <br> <</switch>> <</widget>> <<widget "homeeventhopelo">> - <<switch random(1, 5)>> + <<switch random(1, 7)>> <<case 1>> <<generateyv1>><<person1>>You hear a sniffling. A <<person>> stands alone in the corner, facing the wall. <br><br> @@ -655,11 +487,43 @@ <<link [[Next|Orphanage]]>><<endevent>><</link>> <br> + + <<case 6>> + You make your way through the orphanage. + <br><br> + + You see a <<generatey1>><<person1>><<person>> consoling a <<generatey2>><<person2>><<person>>. They are beside the pinned up scraps of a poster. Between sobs, the <<person2>><<person>> stutters out, "W-why does Bailey keep t-t-tearing dow-" + <br><br> + + <<He>> wails. The <<person1>><<person>> wraps <<his>> arms around <<person2>><<him>>. "It's okay," <<person1>><<he>> says. "Look." The <<personsimple>> reaches into <<his>> pocket and hands <<his>> crying friend some bills. + <br><br> + + "Go put up another one. We won't let Bailey win." The <<person2>><<personsimple>> stops <<his>> crying and runs off, thanking the <<person1>><<person>> the entire way. The <<personsimple>> turns to the scraps. + <br><br> + + "That was all the money I had too..." <<He>> sighs. + <br><br> + + You continue on.<<ghope>><<greb>><<hope 1>><<reb 1>> + <br><br> + <<link [[Next|Orphanage]]>><<endevent>><</link>> + + <<case 7>> + As you enter the main hall, you see a younger orphan slumped by the door. <<He>> looks despondent. + + <<link [[Comfort (1:00)|Home Balloon]]>><<famegood 1>><<pass 60>><<set $phase to 0>><</link>><<ghope>> + <<if $worn.handheld.name.includes("balloon")>> + <br> + <<link [[Give balloon|Home Balloon]]>><<famegood 1>><<set $phase to 1>><</link>><<ghope>> + <</if>> + <br> + <<link [[Ignore|Orphanage]]>><<endevent>><</link>> + <</switch>> <</widget>> <<widget "homeeventrebhi">> - <<switch random(1, 5)>> + <<switch random(1, 9)>> <<case 1>> <<npc Bailey>><<person1>>You see Bailey walking between bedrooms, carrying confiscated snacks. <<lhope>><<hope -1>> @@ -761,11 +625,79 @@ <<link [[Ignore|Orphanage]]>><</link>> <br> + <<case 6>> + You make your way through the orphanage. + <br><br> + + A <<generatey1>><<person1>><<person>> runs past you, laughing maniacally and throwing posters about. You catch one. The poster is a manifesto against Bailey, cursing <<nnpc_him "Bailey">> and listing the sordid details of <<nnpc_his "Bailey">> crimes. <<reb 1>><<greb>> + <br><br> + + The poster is torn out of your hand, and you're thrown against the wall.<<gpain>><<violence 6>> + <br><br> + + You look up. It's Bailey. <<nnpc_He "Bailey">> doesn't address you, instead sprinting after the <<personsimple>>. + <br><br> + + <<link [[Next|Orphanage]]>><<endevent>><</link>> + <<case 7>> + <<generatey1>> + <<set _poster to either( + "Bailey, with a big 'X' drawn over <<Baileygender_his>> face. It has no words, but the intent is clear.", + "Bailey, with a big 'X' drawn over <<Baileygender_his>> face. It has no words, but the intent is clear.", + "the orphanage, with an 'X' drawn over it. Underneath, 'end the tyranny' is written in bold letters.", + "a <<person1>><<person>> holding a banner that reads 'Our Voices Matter.'", + "three bold words: 'Fearless. Resilient. Unyielding.'" + )>> + + You make your way through the orphanage. + <br><br> + + You pause mid-way. Haphazardly pinned to a notice board, you spot an interesting poster. It depicts _poster + <br><br> + + A warmth stirs in you as you pass the poster.<<greb>><<reb 1>> + <br><br> + + <<link [[Next|Orphanage]]>><<endevent>><</link>> + <<case 8>> + You make your way through the orphanage. + <br><br> + + You nearly jump out of your skin when you hear a booming sound. The noise sends your heart racing as you search for its origin.<<gstress>><<stress 6>> + <br><br> + + Eventually, you find it. A <<generatey1>><<person1>><<person>> is standing on two tables, playing an electric guitar and fiddling with an amplifier. Orphans approach <<his>> 'stage', curious about the performance. + <br><br> + + <<link [[Approach|Home Orphan Music Stormy Choice]]>><<set $phase to 1>><</link>> + <br> + <<link [[Ignore|Home Orphan Music Stormy Choice]]>><<set $phase to 2>><</link>> + <<case 9>> + <<set _instrument to either("flute","violin","keyboard","guitar","recorder")>> + As you make your way through the orphanage, you hear a familiar voice. It's Bailey. + <br><br> + + "Hand it over." <<nnpc_He "Bailey">> looms over a <<generatey1>><<person1>><<person>> clutching a _instrument. + <br><br> + + "It's my _instrument," the <<personsimple>> protests. "You can't just take it!" + <br><br> + + Bailey's expression hardens. <<nnpc_He "Bailey">> steps forward and leans into the <<personsimple>>'s face. "Repeat that. Please."<<gstress>><<stress 6>> + <br><br> + + The <<person1>><<person>> scowls but hands the _instrument over to Bailey, who tears it out of <<his>> hands. + <br><br> + + "Thank you." <<nnpc_He "Bailey">> carts the _instrument off, leaving the <<personsimple>> to glare at <<nnpc_him "Bailey">>. The <<personsimple>> mutters darkly about the things <<he>>'d do to Bailey.<<lhope>><<greb>><<hope -1>><<reb 1>> + <br><br> + + <<link [[Next|Orphanage]]>><<endevent>><</link>> <</switch>> <</widget>> <<widget "homeeventreblo">> - <<switch random(1, 5)>> + <<switch random(1, 6)>> <<case 1>> <<npc Bailey>><<person1>>Bailey walks through the main hall. The orphans avert their eyes, afraid to meet <<his>> gaze. <<lreb>><<reb -1>> @@ -809,10 +741,32 @@ The <<person2>><<person>> considers, then walks back towards the <<person1>><<person>>. <br><br> - <<link [[Intervene|Home Solicitation]]>><<hope -1>><</link>><<lhope>> + <<link [[Intervene|Home Solicitation]]>><<hope 1>><</link>><<ghope>> <br> <<link [[Ignore|Orphanage]]>><<endevent>><</link>> <br> + <<case 6>> + <<generatey1>><<person1>> + + You make your way through the orphanage. + <br><br> + + You hear Bailey, and turn to see <<nnpc_him "Bailey">> talking down to a <<person1>><<person>>. + <br><br> + + "So instead of going out to look for work, you're sitting around doing nothing?" <<nnpc_he "Bailey">> waves around a 'looking for job' poster, irritated. + <br><br> + + "N-not exactly," the <<person1>><<person>> starts. "I j-just don't want to risk bein-" The <<personsimple>> jumps as Bailey rips up <<his>> advert. + <br><br> + + "Your <<printmoney 50000>> is due the day after tomorrow. I don't care what you have to do to get it." + <br><br> + + Tears form in the <<person1>><<person>>'s eyes. <<He>> runs off. You decide to leave, before Bailey notices you.<<lhope>><<hope -1>> + <br><br> + <<link [[Next|Orphanage]]>><<endevent>><</link>> + <br> <</switch>> <</widget>> diff --git a/game/overworld-town/loc-home/events.twee b/game/overworld-town/loc-home/events.twee index 1fcd1f3cc53ba446fc893cc3199cb81182e86cef..5a6dc7db9d0541b272c4d9c926a748b308280652 100644 --- a/game/overworld-town/loc-home/events.twee +++ b/game/overworld-town/loc-home/events.twee @@ -997,7 +997,7 @@ You ask the <<person>> to sit down until you can replace <<his>> bandages. A def <br><br> <<if $rng gte 1>> - "Thanks for your help," <<he>> says. You start to leave, but <<he>> grabs onto you. "Wait a second, I have something for you." <<He>> takes a piece of paper and scribbles something on it before handing it back to you. + "Thanks for your help," <<he>> says. You start to leave, but <<he>> grabs onto you. "Wait a second, I have something for you." <<He>> takes a piece of paper and scribbles something on it before handing it back to you. <br><br> It reads: 'Coupon for 1 free orgasm. Expires in 2 minutes'. <<He>> rubs <<his>> thighs together, waiting for your answer. @@ -1014,12 +1014,12 @@ You ask the <<person>> to sit down until you can replace <<his>> bandages. A def <<link [[Refuse|Home Orphan Poster Sex Choice]]>><<set $phase to 2>><</link>> <<else>> - "Thanks for your help," <<he>> says. + "Thanks for your help," <<he>> says. <br><br> <<if $speech_attitude is "meek">> "It's n-no problem, I should have paid more attention. W-why do you have all that paper? I-If you don't mind me asking!" - + <<elseif $speech_attitude is "bratty">> "Yeah, yeah, it's just paper. Why do you need so much anyways?" @@ -1111,7 +1111,7 @@ You ask the <<person>> to sit down until you can replace <<his>> bandages. A def <<elseif $finish is 1>> <<He>> stops, mortified. "W-was it that bad?" <<His>> eyes slowly widen, "Wait. Shit, I left Bailey's papers out there." <<He>> throws on <<his>> clothes, unable to meet your face and runs off. <br><br> - + You leave before <<he>> can return. <</if>> @@ -1121,6 +1121,46 @@ You ask the <<person>> to sit down until you can replace <<his>> bandages. A def <<link [[Next|Orphanage]]>><</link>> +:: Home Balloon +<<effects>> + +<<generateyv1>><<person1>><<person>> +<<if $phase is 1>> + "What's wrong?" you ask. The <<person>> looks at you. + <br><br> + + "I don't like it here," <<he>> says. + <br><br> + + You spend the next hour listening as the <<person>> shares <<his>> fears, offering comforting words when appropriate. <<He>> misses <<his>> parents, is afraid of Bailey, is afraid to go outside, and hates the food. Despite <<his>> distress, <<he>> perks up the longer <<he>> speaks. + <br><br> + + "Thank you for listening to me," <<he>> says. "I feel better now." <<He>> gives you a quick hug and leaves, looking in considerably better spirits. <<ghope>><<hope 1>> + <br><br> + + <<link [[Next|Orphanage]]>><<endevent>><</link>> +<<else>> + "Hey," you say. "You look upset. I'm not sure if this will help, but I thought you might like it." You hand <<him>> your balloon.<<handheldruined>> + <br><br> + + <<His>> eyes light up. "Are... are you sure?" <<he>> asks as <<he>> accepts the balloon. + <br><br> + + <<if $speech_attitude is "meek">> + "I am," you say, smiling at him. "It's what you need right now, isn't it? Something to brighten your day." + <<elseif $speech_attitude is "bratty">> + "'Course I'm sure," you say breezily, ruffling <<his>> hair. "All yours." + <<else>> + "Of course I am," you say. "You deserve it!" + <</if>> + <br><br> + He giggles. You leave <<him>> to gently bat the balloon around, looking in considerably better spirits. <<ghope>><<hope 2>> + + <<link [[Next|Orphanage]]>><<endevent>><</link>> +<</if>> + +<<else>> + :: Home Orphan Music Calm Choice <<effects>> @@ -1150,7 +1190,7 @@ You ask the <<person>> to sit down until you can replace <<his>> bandages. A def <br><br> <<link [[Next|Home Orphan Music Calm]]>><</link>> - + <<else>> You ignore the door and continue on your way. The music fades into silence. <br><br> @@ -1183,7 +1223,7 @@ You ask the <<person>> to sit down until you can replace <<his>> bandages. A def Bailey closes the distance faster than you can react. <<nnpc_he "Bailey">> grabs the <<person1>><<person>> and violently tugs <<him>> towards the door. <<He>> screams and thrashes in Bailey's grip. <br><br> - + The other orphans clamour to get out the door. One bowls into you and sends you flying. Your head hits something hard, and you are dazed. You lay there trying to steady your vision.<<gpain>><<gstress>><<gtrauma>><<violence 6>><<stress 6>><<trauma 4>> <br><br> @@ -1201,7 +1241,7 @@ You ask the <<person>> to sit down until you can replace <<his>> bandages. A def <<effects>> <<if $phase is 1>> - The <<person1>><<person>> catches your eye and gives you a small nod of recognition, before turning <<his>> attention back to <<his>> instrument. + The <<person1>><<person>> catches your eye and gives you a small nod of recognition, before turning <<his>> attention back to <<his>> instrument. <br><br> The room is dead silent as <<he>> plays <<his>> first notes. The music starts slow, but steadily picks up a few seconds in. It's chaotically beautiful, and soon has you swaying to the beat. diff --git a/game/overworld-town/loc-hospital/abduction.twee b/game/overworld-town/loc-hospital/abduction.twee index be9cf033f6d48f57412e0ca94c2e6b59cfdf43c8..42fa93396db5b34cfb2f6fe513d2796e68680281 100644 --- a/game/overworld-town/loc-hospital/abduction.twee +++ b/game/overworld-town/loc-hospital/abduction.twee @@ -227,7 +227,7 @@ You run down the corridor. As you reach the door you hear a sharp buzz and the s <<molested>> <<beastCombatInit>> <<beastTrainGenerate>> - <<set $position to "wall">><<set $leftarm to "bound">><<set $rightarm to "bound">><<set $head to "bound">> + <<set $position to "wall">><<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>><<set $head to "bound">> <</if>> <<effects>> diff --git a/game/overworld-town/loc-office/coffee.twee b/game/overworld-town/loc-office/coffee.twee index d81e1c360c1543b41e4cba3998d4832bb4a0de9d..4adc90be760ba84671016e4432cc066e2cba75e4 100644 --- a/game/overworld-town/loc-office/coffee.twee +++ b/game/overworld-town/loc-office/coffee.twee @@ -82,6 +82,7 @@ The commotion has gathered a small crowd of onlookers, none of whom rush to help <<underlowerruined>> <<underupperruined>> <<feetruined>> + <<handheldruined>> <<endcombat>> <<passout>> <<if $officecomplaints gte 10>> diff --git a/game/overworld-town/loc-park/robin.twee b/game/overworld-town/loc-park/robin.twee index 691c82df2dc9da1490701b6b0cc27ce2da555d5b..e9c204f4e34db168bdfbf6767b8dcb9bfea84373 100644 --- a/game/overworld-town/loc-park/robin.twee +++ b/game/overworld-town/loc-park/robin.twee @@ -1,15 +1,20 @@ :: Robin Chocolate Widgets [widget] <<widget "robinChocolateOfferHelp">> - <!-- Note: Don't try to move the <<endevent>> outside these links, that would make this widget less portable. --> - <<if $money gte 200>> - <<foodicon "cocoa">><<link [[Buy hot chocolate (0:15)|Robin Chocolate Purchase]]>><<stress -6>><<trauma -1>><<pass 15>><</link>><<lstress>><<ltrauma>> + <<if ["helped", "sabotaged"].includes($balloonStand.robin.status) and $balloonStand.robin.talked is false and $robin.timer.customer is 0>> + <<link [[Tell Robin the truth|Balloon Robin Check-In]]>><<set $phase to ("confess_"+$balloonStand.robin.status)>><</link>> <br> + <<link [[Stay silent|Balloon Robin Check-In]]>><<set $phase to ("quiet_"+$balloonStand.robin.status)>><</link>> + <<else>> + <!-- Note: Don't try to move the <<endevent>> outside these links, that would make this widget less portable. --> + <<if $money gte 200>> + <<foodicon "cocoa">><<link [[Buy hot chocolate (0:15)|Robin Chocolate Purchase]]>><<stress -6>><<trauma -1>><<pass 15>><<clotheson>><</link>><<lstress>><<ltrauma>> + <br> + <</if>> + <<robinicon "cocoa">><<link [[Offer help (0:30)|Robin Chocolate Help]]>><<endevent>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><<clotheson>><</link>><<glove>><<lrtrauma>> + <br> + <<getouticon>><<link [[Leave|Park]]>><<endevent>><<clotheson>><</link>> <</if>> - <<robinicon "cocoa">><<link [[Offer help (0:30)|Robin Chocolate Help]]>><<endevent>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>> - <br> - <<getouticon>><<link [[Leave|Park]]>><<endevent>><</link>> - <br> <</widget>> :: Robin Chocolate @@ -21,24 +26,29 @@ Robin waves when <<he>> sees you. <<He>> stirs a steaming pot with <<his>> other hand. "Hey," <<he>> says. "People don't buy much lemonade when it's so cold. I'm selling hot chocolate instead. Here." <<He>> mixes warm milk from the pot with cocoa powder and sugar, then hands you the mug. It's very sweet.<<lstress>><<stress -6>> <<else>> - You see Robin stood behind <<his>> hot chocolate stand, wrapped up warm against the cold. <<He>> waves when <<he>> sees you. + You see Robin stood behind <<his>> hot chocolate stand, wrapped up warm against the cold. <<print $robin.timer.hurt gte 1 ? "<<He>> glances away when <<he>> sees you." : _robin.trauma gte 40 ? "<<He>> flinches whenever somebody passes <<him>>. When <<he>> sees you, <<he>> gives a timid wave." : "<<He>> waves when <<he>> sees you.">> <</if>> <br><br> - +<<balloonRobinTalk>> <<robinChocolateOfferHelp>> :: Robin Chocolate Purchase <<effects>><<npc Robin>><<person1>> <<set $money -= 200>> +<<wearprop "cocoa">> -"Sure! One hot chocolate, coming right up!" Robin says, turning to warm up the milk. +"<<print $robin.timer.hurt gte 1 ? "I guess." : "Sure!">> One hot chocolate, coming right up!" Robin says, turning to warm up the milk. <br><br> You slip £2 across the counter to <<him>>, and accept the offered mug once it's ready. <br><br> -<<if $robinpaid is 1 and $daily.robin.freeDrink isnot 1>> +<<if $robin.timer.hurt gte 1>> + <<set $robinmoney += 2>> + <<balloonRobinAngryPurchase>> + +<<elseif $robinpaid is 1 and $daily.robin.freeDrink isnot 1>> <<set $daily.robin.freeDrink to 1>> "I-I can't take this from you..." <<He>> says, sliding the money back across the counter to you. "You're already paying Bailey for me. Besides, I'd just end up giving it back to you." <<set $money += 200>> @@ -67,9 +77,9 @@ You take your time with the mug, letting it warm your hands as you sip away at t "It's getting nippy out," Robin says. "Could you help me carry my stuff home?" <<endevent>> <br><br> - <<link [[Accept (0:30)|Orphanage]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>> + <<link [[Accept (0:30)|Orphanage]]>><<npcincr Robin love 1>><<pass 30>><</link>><<clotheson>><<glove>> <br> - <<link [[Refuse|Park]]>><</link>> + <<link [[Refuse|Park]]>><<clotheson>><</link>> <br> <<else>> @@ -106,6 +116,9 @@ You take your time with the mug, letting it warm your hands as you sip away at t <<endevent>> <<link [[Next|Orphanage]]>><</link>> <br> +<<elseif $robin.timer.hurt gte 1>> + <<balloonRobinAngryHelp>> + <<robinChocolateOfferHelp>> <<else>> <<He>> smiles. <<if $rng gte 81 and $cow gte 6 and $livestock_intro isnot undefined>> @@ -276,6 +289,7 @@ You help Robin carry <<his>> equipment to the park. "Thank you for the help," << "It's hard carrying it all on my own." <</if>> <<He>> lights <<his>> portable stove. +<<balloonRobinTalk>> <br><br> <<robinChocolateOfferHelp>> @@ -371,7 +385,6 @@ Robin smiles when you return to <<him>>. <<effects>> <<set _robin to statusCheck("Robin")>> - <<if $speech_attitude is "meek">> "I-I'm sorry," you say. "I spilled some of the hot chocolate." <<elseif $speech_attitude is "bratty">> diff --git a/game/overworld-town/loc-police/arrest.twee b/game/overworld-town/loc-police/arrest.twee index 6d5fdbafe9f8323ffa49c7b1b6d84839810710b9..9fd1ec3cde188d7fe1dae05f487c9a4ec29dfa8d 100644 --- a/game/overworld-town/loc-police/arrest.twee +++ b/game/overworld-town/loc-police/arrest.twee @@ -50,7 +50,7 @@ You turn and run from the hospital. <<set $outside to 0>><<set $location to "town">><<effects>> They cuff you and lead you to their waiting car. They put you in the back, climb in the front and set off. -<<set $leftarm to "bound">><<set $rightarm to "bound">> +<<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>> <br><br> <<if crimeSumCurrent() gte 5000>> The driver, a <<person1>><<person>>, looks back at you. "You've been a bad <<girl>> haven't you? Caused all sorts of problems." @@ -295,7 +295,7 @@ After an hour, a <<generatePolice 1>><<person1>><<person>> in a police uniform a <br><br> <<crimeParade>> <br> - + "<span class="red">Perhaps a stint in prison will set you straight.</span> I sentence you to <span class="red"><<print Math.trunc(crimeSumCurrent() / 250)>></span> days." <<He>> stamps a document in front of <<him>>. "Get this wretch out of my sight." <br><br> @@ -327,7 +327,7 @@ After an hour, a <<generatePolice 1>><<person1>><<person>> in a police uniform a Once seated, the <<person2>><<person>> reads off your crimes. <br><br> <<crimeParade>> - <br> + <br> "These are only petty crimes. You'll be given the chance to make amends, and give back to the community. <span class="pink">You are to report to the police station every day, starting tomorrow.</span> There you will be assigned a service. It'll take about an hour. You can arrive anytime during daylight hours." <br><br> "These crimes warrant diff --git a/game/overworld-town/loc-prison/punishment.twee b/game/overworld-town/loc-prison/punishment.twee index 7673907db3076ae202c79da4c0a07b0b579a1885..3d91c4e92ddf7c8bc5f3a500274468743d0c27b3 100644 --- a/game/overworld-town/loc-prison/punishment.twee +++ b/game/overworld-town/loc-prison/punishment.twee @@ -313,7 +313,7 @@ Writing is engraved on its surface. <<link [[Next|Prison Punishment Mask]]>><<prison_punishment_init>><</link>> <br> <<case "bindings">> - <<set $leftarm to "bound">><<set $rightarm to "bound">> + <<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>> <<methodical_guard 0 cap>> nods at <<veteran_guard 3>><<person4>>, who produces a length of rope. "Hold still <<girl>>." <<He>> binds your arms together, leaving you helpless. <br><br> diff --git a/game/overworld-town/loc-pub/seduction.twee b/game/overworld-town/loc-pub/seduction.twee index b36403d0d970d58529625ec656ffc8f176baa7fa..c6a621974e06e22a741057b49a9de5b7b08f573e 100644 --- a/game/overworld-town/loc-pub/seduction.twee +++ b/game/overworld-town/loc-pub/seduction.twee @@ -829,7 +829,7 @@ You knock <<him>> into the stall door, which <<he>> crashes through. <<tearful>> <<if $drunk gt 0>> <<if $rng gte 51 and !isBloodmoon()>> - + <<set $location to "town">> You walk with <<him>>. <<He>> has to grab your shoulders to steady you more than once, but you manage to climb onto the back seat of <<his>> car. The journey doesn't take long. "This is your home right?" <<he>> asks. "It's not my place to say but you should be more careful in the future. There are creeps who prey on cute <<girls>> like you." <<He>> helps you to the front door, only going back to <<his>> car once you're safe inside. @@ -1287,7 +1287,7 @@ Briar pulls a lever and a hole opens in the wall a few feet off the ground. <br><br> The thugs push your legs through, then your <<bottom>>, until your back half hangs out the other side. Briar manipulates the lever a bit, and the hole tightens around your waist. <<He>> kneels in front of you and lifts your chin. "You're going to pay me back the only way you can." <<He>> stands up and leaves the room, taking <<his>> thugs with <<him>>. -<<set $leftarm to "bound">><<set $rightarm to "bound">> +<<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>> <br><br> <<endevent>> You feel something prod your behind. diff --git a/game/overworld-town/loc-school/canteen.twee b/game/overworld-town/loc-school/canteen.twee index dfcb62cf1f4c663cc953250d70aebd674ae09959..f8bf0921a6ffe8e9a070e94009ebc7837c13495d 100644 --- a/game/overworld-town/loc-school/canteen.twee +++ b/game/overworld-town/loc-school/canteen.twee @@ -452,9 +452,10 @@ You peek through the door to make sure the hall is empty before exiting the cant <</if>> :: Canteen Milkshake +<<wearProp "milkshake">> You drink the milkshake you bought from the cafe. It's deliciously creamy, and each sip helps melt away the stress of school. <br><br> -<<link [[Next|Canteen]]>><</link>> +<<link [[Next|Canteen]]>><<clotheson>><</link>> :: Canteen Lunch Sandwich <<effects>> diff --git a/game/overworld-town/loc-school/classes/history-events.twee b/game/overworld-town/loc-school/classes/history-events.twee index 8e0b268865ede3f39de8966f75992e78edf498f1..f32113022ee691c347352939dfd835e21ff3800c 100644 --- a/game/overworld-town/loc-school/classes/history-events.twee +++ b/game/overworld-town/loc-school/classes/history-events.twee @@ -534,7 +534,7 @@ The <<person>> tries to argue, but Winter won't hear it. <<He>> rubs <<his>> hea <<molested>> <<maninit>><<npcspank>> <<set $timer to 18>> - <<set $position to "wall">><<set $walltype to "cleanpillory">><<set $leftarm to "bound">><<set $rightarm to "bound">><<set $head to "bound">><<set $NPCList[0].lefthand to 0>> + <<set $position to "wall">><<set $walltype to "cleanpillory">><<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>><<set $head to "bound">><<set $NPCList[0].lefthand to 0>> <<enableSchoolRescue "delinquency">> <</if>> diff --git a/game/overworld-town/loc-school/classes/history.twee b/game/overworld-town/loc-school/classes/history.twee index 2e55b048803b8e332b5443009a3cb2d32593ebd2..e507d67ffa594a77ef8f738374aec411ba217e8f 100644 --- a/game/overworld-town/loc-school/classes/history.twee +++ b/game/overworld-town/loc-school/classes/history.twee @@ -154,6 +154,9 @@ <!-- Should be changed once naked classes are a thing --> You don't think you should study while not being properly dressed. <br> + <<elseif !$worn.handheld.type.includes("bookbag")>> + <span class="blue">You can't study without your bookbag.</span> + <br> <<else>> <<historyicon>><<link [[Study history|History Classroom Study]]>><</link>><<gstress>><<ghistory>> <</if>> diff --git a/game/overworld-town/loc-school/classes/science.twee b/game/overworld-town/loc-school/classes/science.twee index 376fe872cbddcab15d455d1bf86950e2297e37d4..7dd83c0ce5138e2bae06dcb00cb85e7054bacca8 100644 --- a/game/overworld-town/loc-school/classes/science.twee +++ b/game/overworld-town/loc-school/classes/science.twee @@ -110,11 +110,20 @@ You enter the science classroom. No one else has arrived yet. You could use the extra time to study. <br><br> - <<classgrades>> - <<schoolperiodtext>> - <<if $worn.upper.type.includes("naked") and $worn.lower.type.includes("naked")>> - <!-- Should be changed once naked classes are a thing --> - You don't think you should study while not being properly dressed. + <<classgrades>> + <<schoolperiodtext>> + <<if $worn.upper.type.includes("naked") and $worn.lower.type.includes("naked")>> + <!-- Should be changed once naked classes are a thing --> + You don't think you should study while not being properly dressed. + <br> + <<elseif !$worn.handheld.type.includes("bookbag")>> + <span class="blue">You can't study without your bookbag.</span> + <br> + <<else>> + <<scienceicon>><<link [[Study science|Science Classroom Study]]>><</link>><<gstress>><<gscience>> + <</if>> + <br> + <<getouticon>><<link [[Leave|Hallways]]>><</link>> <br> <<else>> <<scienceicon>><<link [[Study science|Science Classroom Study]]>><</link>><<gstress>><<gscience>> @@ -263,7 +272,7 @@ Sirris looks exasperated. "Right. I'll have to inform the head of your behaviour <br><br> <<endevent>> <<exam_cheat science>> - + <<if !$daily.earSlimeCheatExam and numberOfEarSlime() and earSlimeMakingMundaneRequests() and random(0,200) gte 150 - $earSlime.corruption>> <<set $daily.earSlimeCheatExam to true>> <span @class="$earSlime.startedThreats ? 'lewd' : 'lblue'">You feel the slime in your head command you to cheat in the exam.</span> It promises rewards if you comply<<if $earSlime.startedThreats>>, and threatens consequences if you do not<</if>>. diff --git a/game/overworld-town/loc-school/hallways.twee b/game/overworld-town/loc-school/hallways.twee index 484db80bb4e5d0ad1d55b604d34d306d03dec32b..3b7a4e90d5476c8c203b522f081af9fa91e6ad44 100644 --- a/game/overworld-town/loc-school/hallways.twee +++ b/game/overworld-town/loc-school/hallways.twee @@ -1744,7 +1744,7 @@ You turn an empty plastic box upside down, climb atop it, and throw open the win <<violence 1>> <<neutral 1>> <<molested>> - <<maninit>><<set $position to "wall">><<set $leftarm to "bound">><<set $rightarm to "bound">><<set $head to "bound">> + <<maninit>><<set $position to "wall">><<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>><<set $head to "bound">> <<set $timer to 10>> <<enable_rescue>> <</if>> diff --git a/game/overworld-town/loc-school/main.twee b/game/overworld-town/loc-school/main.twee index 9974a66a1b50a628bb01091648acafbb3110d75a..d1cfbfa40beefea9ad76ae6530a30ced01f3f386 100644 --- a/game/overworld-town/loc-school/main.twee +++ b/game/overworld-town/loc-school/main.twee @@ -1069,7 +1069,7 @@ A minute passes before a <<generatey1>><<generatey2>><<fullGroup>> round the cor <<neutral 1>> <<molested>> -<<generate1>><<generate2>><<maninit>><<set $leftarm to "bound">><<set $rightarm to "bound">><<set $feetuse to "bound">> +<<generate1>><<generate2>><<maninit>><<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>><<set $feetuse to "bound">> You awaken in the science classroom, bent over a desk. Straps tie down your arms and legs, restricting your movement. <br><br> <</if>> diff --git a/game/overworld-town/loc-school/widgets.twee b/game/overworld-town/loc-school/widgets.twee index a30f46c80d3cebcd9dddcd8c57dc6c80624055f4..cb1d325df3874926916d9b624cd84766ae0614d3 100644 --- a/game/overworld-town/loc-school/widgets.twee +++ b/game/overworld-town/loc-school/widgets.twee @@ -435,7 +435,17 @@ <</if>> <<elseif $rng gte 81>> - Sirris asks the class to turn to page $rng of their textbook. The classroom has a laid-back atmosphere; most of the students spend more time chatting than reading. + Sirris asks the class to turn to page $rng of their textbook. + <<if $worn.handheld.name isnot "naked" and !$worn.handheld.type.includes("bookbag")>> + You realise too late that you forgot your bookbag. + <<if $NPCName[$NPCNameList.indexOf("Sirris")].love gte 10>> + Sirris gently chides you, but passes you a spare copy of the textbook. "I'll excuse it this time, but please be more prepared in the future." + <<else>> + Sirris shakes <<his>> head. "I'm sorry, but I need you to be more prepared next time," <<he>> admonishes as <<he>> hands you a spare copy of the textbook. <<detention 1>><<gdelinquency>> + <</if>> + <<else>> + The classroom has a laid-back atmosphere; most of the students spend more time chatting than reading. + <</if>> <<elseif $rng gte 71>> Sirris puts on a short video about <<print either("nature","space","magnetic fields","electrons","chemical bonds","Einstein","the pioneers of the scientific method","Isaac Newton","nuclear fusion","the role of enzymes","DNA")>>. The classroom has a laid-back atmosphere. Most students watch, but many carry on chatting. <<elseif $rng gte 61>> @@ -1355,25 +1365,51 @@ A student near you finishes reading a passage. Now Doren points to you. <br><br> - <<if $trauma gte (($traumamax / 5) * 3)>> - But due to the stress you've been under, you forgot your book! <<gstress>><<stress 4>> - <<elseif $delinquency gte 666>> - Does <<he>> seriously expect you to read like these nerds? You haven't even brought your book. - <<elseif $tiredness gte (C.tiredness.max / 5) * 3>> - But you're so tired, you left your book in your locker. + <<if $worn.handheld.name isnot "naked" and !$worn.handheld.type.includes("bookbag")>> + <<if $trauma gte (($traumamax / 5) * 3)>> + But due to the stress you've been under, you forgot your bookbag! <<gstress>><<stress 4>> + <<elseif $delinquency gte 666>> + Does <<he>> seriously expect you to read like these nerds? You haven't even brought your book. + <<elseif $tiredness gte (C.tiredness.max / 5) * 3>> + But you're so tired, you left your book in your locker. + <<else>> + But you forgot your bookbag today. + <</if>> + <br><br> + + <<link [[Tell Doren you don't have your book|English Read Passage]]>><<set $phase to 0>><</link>> + <br> + <<link [[Look to classmates for help|English Read Passage]]>><<set $phase to 1>><</link>> + <br> + <<link [[Try to make something up|English Read Passage]]>><<set $phase to 2>><</link>> + <br> + <<if $speech_attitude is "bratty" or $delinquency gte 400>><<link [[Refuse to read|English Read Passage]]>><<set $phase to 3>><</link>><br><</if>> <<else>> - But you forgot your book today. + You turn the page and begin reciting the passage aloud. + + <<if $englishtrait gte 4>> + You add a dramatic flair to your reading, and the class hangs on every word. Doren compliments your diction. "You have a mighty fine gift there, <<lass>>. + <<if $englishPlay is "ongoing" and $englishPlayRoles.Player isnot "none">> + I'm looking forward to seeing you shine onstage. + <<elseif $englishPlay is "ongoing">> + It's a shame you didn't sign up for the play. + <<if $englishPlayLate>>There's still time, you know!<</if>> + <<else>> + Have you ever considered a career in theatre? + <</if>>" <<npcincr Doren love 1>> + <<elseif $englishtrait is 3>> + Your voice is strong and clear as you breeze through the text. Doren gives you a nod of approval and moves on to the next student. + <<elseif $englishtrait is 2>> + You stutter when you reach some foreign phrases, but you manage to get through the reading decently enough. + <<elseif $englishtrait is 1>> + The text is too erudite for you, and you falter as you read. Doren corrects your mispronunciation of an unfamiliar word, and someone in the back of the room titters. <<lcool>><<status -1>> + <<else>> + You try to make it through the passage, but it's beyond your comprehension. Your classmates openly snicker as you fumble over the words. Doren reprimands the class but takes pity on you by moving on to the next person. You sink into your seat and console yourself with the knowledge that you at least remembered to bring your book to class. <<lcool>><<status -3>> + <</if>> <</if>> <br><br> - - <<link [[Tell Doren you don't have your book|English Read Passage]]>><<set $phase to 0>><</link>> - <br> - <<link [[Look to classmates for help|English Read Passage]]>><<set $phase to 1>><</link>> - <br> - <<link [[Try to make something up|English Read Passage]]>><<set $phase to 2>><</link>> - <br> - <<if $speech_attitude is "bratty" or $delinquency gte 400>><<link [[Refuse to read|English Read Passage]]>><<set $phase to 3>><</link>><br><</if>> - + <<endevent>> + <<link [[Next|English Lesson]]>><</link>> <<elseif $rng gte 41>> <<if $delinquency gte 400>> <<npc Doren>><<person1>>In a bid to keep the classroom ruckus down, Doren has the less controllable students separated, which includes you <<if $kylarenglishstate is "active">>and Kylar<</if>>. <<He>><<endevent>> seats you next to a quiet <<generates1>><<person1>><<person>> who never causes any trouble. diff --git a/game/overworld-town/loc-sea/widgets.twee b/game/overworld-town/loc-sea/widgets.twee index 8ee0334950777f931d8222068726b7058590f29c..f7d5f0b1368102335ad64fe51c4fc7a76cda27ce 100644 --- a/game/overworld-town/loc-sea/widgets.twee +++ b/game/overworld-town/loc-sea/widgets.twee @@ -200,6 +200,7 @@ <<if $uncladunder is 1>><<set $uncladunder to 0>> <<underruined>> <</if>> + <<handheldruined>> <<else>> After the wave has passed you look around for your missing clothing, and see it floating not far from you. You swim over to it, not feeling relief until it's recovered. <</if>> diff --git a/game/overworld-town/loc-shop/clothing-v2.twee b/game/overworld-town/loc-shop/clothing-v2.twee index 5c0aa01ecaa8d577e104f5e6a69e55c923b3b605..dcf2091c2501be783f41bef47d7c92bf3acbecdc 100644 --- a/game/overworld-town/loc-shop/clothing-v2.twee +++ b/game/overworld-town/loc-shop/clothing-v2.twee @@ -297,7 +297,8 @@ if (!curr.shopGroup) return prev; if (curr.shopGroup === _itemData.shopGroup) return prev + 1; return prev; - },0) gt 1 and $options.images is 1>><div class='fa-icon fa-plus clothing-icon-plus'></div><</if>> + },0) gt 1>><div class='fa-icon fa-plus clothing-icon-plus'></div> + <</if>> <<if _locked and $options.images is 1>> <img src="img/misc/icon/lock.png" class="clothing-locked"> <<else>> @@ -1163,6 +1164,10 @@ <<set _item = _items_list[0].item>> <<set _slot = _items_list[0].slot>> <</if>> + <<if _slot is "handheld">> + <<set _modeloptions.arm_right to "hold">> + <</if>> + <<rendermodel "canvas-mannequin">> <</if>> diff --git a/game/overworld-town/loc-shop/clothing.twee b/game/overworld-town/loc-shop/clothing.twee index 5a0b0c8b964a3a8be09bfc7604c25a2fc57428fd..a814a26990edb3769be608f6852600a8ed6cfa63 100644 --- a/game/overworld-town/loc-shop/clothing.twee +++ b/game/overworld-town/loc-shop/clothing.twee @@ -80,6 +80,9 @@ <br> <<clothingcategoryicon "neck">> <<link "View Neck Accessories">><<replace "#clothingShop-div">><<NeckShop>><</replace>><</link>> + <br><br> + <<clothingcategoryicon "handheld">> + <<link "View Handheld Items">><<replace "#clothingShop-div">><<HandheldShop>><</replace>><</link>> <br> <<clothingcategoryicon "hand">> <<link "View Hand Accessories">><<replace "#clothingShop-div">><<HandsShop>><</replace>><</link>> diff --git a/game/overworld-town/loc-shop/clothingCategories-v2.twee b/game/overworld-town/loc-shop/clothingCategories-v2.twee index 61b2bc10bd02c7549dc997b0e3430bb52eed93b0..e55021c2afc64b8557ca302b35aedbcda913c01d 100644 --- a/game/overworld-town/loc-shop/clothingCategories-v2.twee +++ b/game/overworld-town/loc-shop/clothingCategories-v2.twee @@ -221,6 +221,24 @@ </div> <</widget>> +<<widget "HandheldShop">> + <<set $outside to 0>><<effects>> + + <<if $clothes_choice and $clothes_choice_previous>> + <<if $clothes_choice is $clothes_choice_previous>> + <<shopbuyv2 "handheld">> + <<else>> + <<shopbuyv2 "handheld" "reset">> + <</if>> + <<else>> + <<shopbuyv2 "handheld" "reset">> + <</if>> + + <div id="clothes-list" class="clothes-list"> + <<clothingShopv2 $shopName "handheld">> + </div> +<</widget>> + <<widget "LegsShop">> <<set $outside to 0>><<effects>> @@ -278,159 +296,174 @@ <!-- Renders block of buttons for switching category --> <<widget "shopCategoryTabs">> <div id="shopCategories" class="shop-category-tabs no-numberify"> - <div class="category-group"> - <<set _active = _args[0] == "all" ? "active" : "">> - <div @class="'div-link category-tab ' + _active"> - <<if $options.images is 1>> - <<clothingcategoryicon "all">> - <<else>> - <div class="category-icon-alt">OO</div> - <</if>> - <<link "">><<set $shopPage = 0>><<unset $clothes_choice>><<set _shopNameFilter to ''>><<replace "#clothingShop-div">><<AllShop>><</replace>><</link>> - </div> - </div> - <<if $debug is 1>> + <<if $shopName isnot "stall">> <div class="category-group"> - <<set _active = _args[0] == "overoutfit" ? "active" : "">> + <<set _active = _args[0] == "all" ? "active" : "">> <div @class="'div-link category-tab ' + _active"> <<if $options.images is 1>> - <<clothingcategoryicon "overoutfit">> + <<clothingcategoryicon "all">> <<else>> <div class="category-icon-alt">OO</div> <</if>> - <<link "">><<set $shopPage = 0>><<unset $clothes_choice>><<set _shopNameFilter to ''>><<replace "#clothingShop-div">><<OverOutfitShop>><</replace>><</link>> + <<link "">><<set $shopPage = 0>><<unset $clothes_choice>><<set _shopNameFilter to ''>><<replace "#clothingShop-div">><<AllShop>><</replace>><</link>> </div> </div> - <</if>> - <div class="category-group"> - <<if $shopName isnot "school">> - <<set _active = _args[0] == "outfit" ? "active" : "">> + <<if $debug is 1>> + <div class="category-group"> + <<set _active = _args[0] == "overoutfit" ? "active" : "">> + <div @class="'div-link category-tab ' + _active"> + <<if $options.images is 1>> + <<clothingcategoryicon "overoutfit">> + <<else>> + <div class="category-icon-alt">OO</div> + <</if>> + <<link "">><<set $shopPage = 0>><<unset $clothes_choice>><<set _shopNameFilter to ''>><<replace "#clothingShop-div">><<OverOutfitShop>><</replace>><</link>> + </div> + </div> + <</if>> + <div class="category-group"> + <<if $shopName isnot "school">> + <<set _active = _args[0] == "outfit" ? "active" : "">> + <div @class="'div-link category-tab ' + _active"> + <<if $options.images is 1>> + <<clothingcategoryicon "outfit">> + <<else>> + <div class="category-icon-alt">O</div> + <</if>> + <<link "">><<set $shopPage = 0>><<unset $clothes_choice>><<set _shopNameFilter to ''>><<replace "#clothingShop-div">><<OutfitShop>><</replace>><</link>> + </div> + <</if>> + <<set _active = _args[0] == "upper" ? "active" : "">> + <div @class="'div-link category-tab ' + _active"> + <<if $options.images is 1>> + <<clothingcategoryicon "upper">> + <<else>> + <div class="category-icon-alt">U</div> + <</if>> + <<link "">><<set $shopPage = 0>><<unset $clothes_choice>><<set _shopNameFilter to ''>><<replace "#clothingShop-div">><<TopShop>><</replace>><</link>> + </div> + <<set _active = _args[0] == "lower" ? "active" : "">> + <div @class="'div-link category-tab ' + _active"> + <<if $options.images is 1>> + <<clothingcategoryicon "lower">> + <<else>> + <div class="category-icon-alt">L</div> + <</if>> + <<link "">><<set $shopPage = 0>><<unset $clothes_choice>><<set _shopNameFilter to ''>><<replace "#clothingShop-div">><<BottomShop>><</replace>><</link>> + </div> + </div> + <div class="category-group"> + <<set _active = _args[0] == "underoutfit" ? "active" : "">> <div @class="'div-link category-tab ' + _active"> <<if $options.images is 1>> - <<clothingcategoryicon "outfit">> + <<clothingcategoryicon "underoutfit">> <<else>> - <div class="category-icon-alt">O</div> + <div class="category-icon-alt">UO</div> <</if>> - <<link "">><<set $shopPage = 0>><<unset $clothes_choice>><<set _shopNameFilter to ''>><<replace "#clothingShop-div">><<OutfitShop>><</replace>><</link>> + <<link "">><<set $shopPage = 0>><<unset $clothes_choice>><<set _shopNameFilter to ''>><<replace "#clothingShop-div">><<UnderOutfitShop>><</replace>><</link>> </div> - <</if>> - <<set _active = _args[0] == "upper" ? "active" : "">> - <div @class="'div-link category-tab ' + _active"> - <<if $options.images is 1>> - <<clothingcategoryicon "upper">> - <<else>> - <div class="category-icon-alt">U</div> - <</if>> - <<link "">><<set $shopPage = 0>><<unset $clothes_choice>><<set _shopNameFilter to ''>><<replace "#clothingShop-div">><<TopShop>><</replace>><</link>> - </div> - <<set _active = _args[0] == "lower" ? "active" : "">> - <div @class="'div-link category-tab ' + _active"> - <<if $options.images is 1>> - <<clothingcategoryicon "lower">> - <<else>> - <div class="category-icon-alt">L</div> + <<set _active = _args[0] == "underupper" ? "active" : "">> + <div @class="'div-link category-tab ' + _active"> + <<if $options.images is 1>> + <<clothingcategoryicon "underupper">> + <<else>> + <div class="category-icon-alt">UU</div> + <</if>> + <<link "">><<set $shopPage = 0>><<unset $clothes_choice>><<set _shopNameFilter to ''>><<replace "#clothingShop-div">><<UnderTopShop>><</replace>><</link>> + </div> + <<set _active = _args[0] == "underlower" ? "active" : "">> + <div @class="'div-link category-tab ' + _active"> + <<if $options.images is 1>> + <<clothingcategoryicon "underlower">> + <<else>> + <div class="category-icon-alt">UL</div> + <</if>> + <<link "">><<set $shopPage = 0>><<unset $clothes_choice>><<set _shopNameFilter to ''>><<replace "#clothingShop-div">><<UnderBottomShop>><</replace>><</link>> + </div> + <<if $location is "adult_shop">> + <<set _active = _args[0] == "genitals" ? "active" : "">> + /* Left here for future expansion */ + /*<div @class="'div-link category-tab ' + _active"> + <<if $options.images is 1>> + <<clothingcategoryicon "genitals">> + <<else>> + <div class="category-icon-alt">Fe</div> + <</if>> + <<link "">><<set $shopPage = 0>><<unset $clothes_choice>><<replace "#clothingShop-div">><<GenitalShop>><</replace>><</link>> + </div>*/ <</if>> - <<link "">><<set $shopPage = 0>><<unset $clothes_choice>><<set _shopNameFilter to ''>><<replace "#clothingShop-div">><<BottomShop>><</replace>><</link>> </div> - </div> + <</if>> <div class="category-group"> - <<set _active = _args[0] == "underoutfit" ? "active" : "">> - <div @class="'div-link category-tab ' + _active"> - <<if $options.images is 1>> - <<clothingcategoryicon "underoutfit">> - <<else>> - <div class="category-icon-alt">UO</div> - <</if>> - <<link "">><<set $shopPage = 0>><<unset $clothes_choice>><<set _shopNameFilter to ''>><<replace "#clothingShop-div">><<UnderOutfitShop>><</replace>><</link>> - </div> - <<set _active = _args[0] == "underupper" ? "active" : "">> - <div @class="'div-link category-tab ' + _active"> - <<if $options.images is 1>> - <<clothingcategoryicon "underupper">> - <<else>> - <div class="category-icon-alt">UU</div> - <</if>> - <<link "">><<set $shopPage = 0>><<unset $clothes_choice>><<set _shopNameFilter to ''>><<replace "#clothingShop-div">><<UnderTopShop>><</replace>><</link>> - </div> - <<set _active = _args[0] == "underlower" ? "active" : "">> - <div @class="'div-link category-tab ' + _active"> - <<if $options.images is 1>> - <<clothingcategoryicon "underlower">> - <<else>> - <div class="category-icon-alt">UL</div> - <</if>> - <<link "">><<set $shopPage = 0>><<unset $clothes_choice>><<set _shopNameFilter to ''>><<replace "#clothingShop-div">><<UnderBottomShop>><</replace>><</link>> - </div> - <<if $location is "adult_shop">> - <<set _active = _args[0] == "genitals" ? "active" : "">> - /* Left here for future expansion */ - /*<div @class="'div-link category-tab ' + _active"> + <<if $shopName isnot "stall">> + <<set _active = _args[0] == "head" ? "active" : "">> + <div @class="'div-link category-tab ' + _active"> <<if $options.images is 1>> - <<clothingcategoryicon "genitals">> + <<clothingcategoryicon "head">> <<else>> - <div class="category-icon-alt">Fe</div> + <div class="category-icon-alt">He</div> <</if>> - <<link "">><<set $shopPage = 0>><<unset $clothes_choice>><<replace "#clothingShop-div">><<GenitalShop>><</replace>><</link>> - </div>*/ - <</if>> - </div> - <div class="category-group"> - <<set _active = _args[0] == "head" ? "active" : "">> - <div @class="'div-link category-tab ' + _active"> - <<if $options.images is 1>> - <<clothingcategoryicon "head">> - <<else>> - <div class="category-icon-alt">He</div> + <<link "">><<set $shopPage = 0>><<unset $clothes_choice>><<set _shopNameFilter to ''>><<replace "#clothingShop-div">><<HeadShop>><</replace>><</link>> + </div> + <<set _active = _args[0] == "face" ? "active" : "">> + <div @class="'div-link category-tab ' + _active"> + <<if $options.images is 1>> + <<clothingcategoryicon "face">> + <<else>> + <div class="category-icon-alt">Fa</div> + <</if>> + <<link "">><<set $shopPage = 0>><<unset $clothes_choice>><<set _shopNameFilter to ''>><<replace "#clothingShop-div">><<FaceShop>><</replace>><</link>> + </div> + <<if $shopName isnot "school">> + <<set _active = _args[0] == "neck" ? "active" : "">> + <div @class="'div-link category-tab ' + _active"> + <<if $options.images is 1>> + <<clothingcategoryicon "neck">> + <<else>> + <div class="category-icon-alt">Ne</div> + <</if>> + <<link "">><<set $shopPage = 0>><<unset $clothes_choice>><<set _shopNameFilter to ''>><<replace "#clothingShop-div">><<NeckShop>><</replace>><</link>> + </div> <</if>> - <<link "">><<set $shopPage = 0>><<unset $clothes_choice>><<set _shopNameFilter to ''>><<replace "#clothingShop-div">><<HeadShop>><</replace>><</link>> - </div> - <<set _active = _args[0] == "face" ? "active" : "">> - <div @class="'div-link category-tab ' + _active"> - <<if $options.images is 1>> - <<clothingcategoryicon "face">> - <<else>> - <div class="category-icon-alt">Fa</div> + <<set _active = _args[0] == "handheld" ? "active" : "">> + <<if $shopName is "clothing">> /*Only shop with handheld items atm*/ + <div @class="'div-link category-tab ' + _active"> + <<if $options.images is 1>> + <<clothingcategoryicon "handheld">> + <<else>> + <div class="category-icon-alt">Hd</div> + <</if>> + <<link "">><<set $shopPage = 0>><<unset $clothes_choice>><<set _shopNameFilter to ''>><<replace "#clothingShop-div">><<HandheldShop>><</replace>><</link>> + </div> <</if>> - <<link "">><<set $shopPage = 0>><<unset $clothes_choice>><<set _shopNameFilter to ''>><<replace "#clothingShop-div">><<FaceShop>><</replace>><</link>> - </div> - <<if $shopName isnot "school">> - <<set _active = _args[0] == "neck" ? "active" : "">> + <<set _active = _args[0] == "hands" ? "active" : "">> + <div @class="'div-link category-tab ' + _active"> + <<if $options.images is 1>> + <<clothingcategoryicon "hand">> + <<else>> + <div class="category-icon-alt">Ha</div> + <</if>> + <<link "">><<set $shopPage = 0>><<unset $clothes_choice>><<set _shopNameFilter to ''>><<replace "#clothingShop-div">><<HandsShop>><</replace>><</link>> + </div> + <<set _active = _args[0] == "legs" ? "active" : "">> <div @class="'div-link category-tab ' + _active"> <<if $options.images is 1>> - <<clothingcategoryicon "neck">> + <<clothingcategoryicon "legs">> <<else>> - <div class="category-icon-alt">Ne</div> + <div class="category-icon-alt">Le</div> <</if>> - <<link "">><<set $shopPage = 0>><<unset $clothes_choice>><<set _shopNameFilter to ''>><<replace "#clothingShop-div">><<NeckShop>><</replace>><</link>> + <<link "">><<set $shopPage = 0>><<unset $clothes_choice>><<set _shopNameFilter to ''>><<replace "#clothingShop-div">><<LegsShop>><</replace>><</link>> + </div> + <<set _active = _args[0] == "feet" ? "active" : "">> + <div @class="'div-link category-tab ' + _active"> + <<if $options.images is 1>> + <<clothingcategoryicon "feet">> + <<else>> + <div class="category-icon-alt">Fe</div> + <</if>> + <<link "">><<set $shopPage = 0>><<unset $clothes_choice>><<set _shopNameFilter to ''>><<replace "#clothingShop-div">><<FeetShop>><</replace>><</link>> </div> <</if>> - <<set _active = _args[0] == "hands" ? "active" : "">> - <div @class="'div-link category-tab ' + _active"> - <<if $options.images is 1>> - <<clothingcategoryicon "hand">> - <<else>> - <div class="category-icon-alt">Ha</div> - <</if>> - <<link "">><<set $shopPage = 0>><<unset $clothes_choice>><<set _shopNameFilter to ''>><<replace "#clothingShop-div">><<HandsShop>><</replace>><</link>> - </div> - <<set _active = _args[0] == "legs" ? "active" : "">> - <div @class="'div-link category-tab ' + _active"> - <<if $options.images is 1>> - <<clothingcategoryicon "legs">> - <<else>> - <div class="category-icon-alt">Le</div> - <</if>> - <<link "">><<set $shopPage = 0>><<unset $clothes_choice>><<set _shopNameFilter to ''>><<replace "#clothingShop-div">><<LegsShop>><</replace>><</link>> - </div> - <<set _active = _args[0] == "feet" ? "active" : "">> - <div @class="'div-link category-tab ' + _active"> - <<if $options.images is 1>> - <<clothingcategoryicon "feet">> - <<else>> - <div class="category-icon-alt">Fe</div> - <</if>> - <<link "">><<set $shopPage = 0>><<unset $clothes_choice>><<set _shopNameFilter to ''>><<replace "#clothingShop-div">><<FeetShop>><</replace>><</link>> - </div> </div> </div> <<run linkifyDivs('#shopCategories')>> @@ -453,4 +486,4 @@ <<case "legs">><<replace "#clothingShop-div">><<LegsShop>><</replace>> <<case "feet">><<replace "#clothingShop-div">><<FeetShop>><</replace>> <</switch>> -<</widget>> \ No newline at end of file +<</widget>> diff --git a/game/overworld-town/loc-shop/main.twee b/game/overworld-town/loc-shop/main.twee index 3e7a03f54232a73e63ac7267ff1dcc623bef7e67..ab59e12d3fa35785a2051533ef5d9cfa226f4837 100644 --- a/game/overworld-town/loc-shop/main.twee +++ b/game/overworld-town/loc-shop/main.twee @@ -209,6 +209,7 @@ You've pushed yourself too much. <<lowerruined>> <<upperruined>> <<underruined>> +<<handheldruined>> <<underupperwear 1>> <<underlowerwear 2>> @@ -319,6 +320,7 @@ True to <<his>> word, there's £15 on the table, along with a bottle of water, a <<upperruined>> <<lowerruined>> <<underruined>> + <<handheldruined>> You awaken to find yourself suspended and naked in a small room. Your wrists are tied together by a thin rope which hangs on a hook attached to the ceiling. <<person1>>A <<person>> holds a tape measure up to your chest while<<person2>> a <<person>> fondles your <<bottom>>. <<set $phase to 1>> <</if>> diff --git a/game/overworld-town/loc-shop/tryOn.twee b/game/overworld-town/loc-shop/tryOn.twee index 365cde0e1e83f74271a1987ce5d1768b06b83b94..522415f638a5dbcde7dbe4edd88fd9f8d81ec1e3 100644 --- a/game/overworld-town/loc-shop/tryOn.twee +++ b/game/overworld-town/loc-shop/tryOn.twee @@ -18,6 +18,7 @@ "over_head":clone($worn.over_head), "head":clone($worn.head), "hands":clone($worn.hands), + "handheld":clone($worn.handheld), "legs":clone($worn.legs), "lower":clone($worn.lower), "over_lower":clone($worn.over_lower), @@ -33,6 +34,7 @@ "head":null, "over_head":null, "hands":null, + "handheld":null, "legs":null, "lower":null, "over_lower":null, @@ -51,7 +53,7 @@ <<widget "tryOnStats">> <<if $debug is 1>> <<if $tryOn.showEquip.over_head is null and $tryOn.showEquip.over_upper is null and $tryOn.showEquip.over_lower is null - and $worn.over_head.name isnot "naked" and $worn.over_upper.name isnot "naked" and $worn.over_lower.name isnot "naked">> + and $worn.over_head.name isnot "naked" and $worn.over_upper.name isnot "naked" and $worn.over_lower.name isnot "naked" and $shopName isnot "stall">> <<link "Show Normal Clothes">><<ShowUnderEquip "over" "hide">><<updatesidebarimg>><<updatetryonstats>><<numberify "#passages > .passage">><</link>> <br> <<elseif $tryOn.showEquip.over_head isnot null or $tryOn.showEquip.over_upper isnot null or $tryOn.showEquip.over_lower isnot null>> @@ -59,7 +61,7 @@ <br> <</if>> <</if>> - <<if $tryOn.showUnderEquip.upper is null and $tryOn.showUnderEquip.lower is null>> + <<if $tryOn.showUnderEquip.upper is null and $tryOn.showUnderEquip.lower is null and $shopName isnot "stall">> <<link "Show Under Clothes">><<ShowUnderEquip "normal" "hide">><<if $shopName is "school">><<set $schoolShopAction.push("under")>><</if>><<updatesidebarimg>><<updatetryonstats>><<numberify "#passages > .passage">><</link>> <br><br> <<elseif $tryOn.showUnderEquip.upper isnot null and $tryOn.showUnderEquip.lower isnot null>> @@ -70,7 +72,7 @@ <<if _slots.map(x => $tryOn.tryingOn[x]).some(x => x != null)>> Clothes you are trying on total to <<printmoney $tryOn.value>>. This includes: <br> - <<if $passage is "Clothing Shop" or $passage is "School Library Shop" or $passage is "Forest Shop" or $passage is "Adult Shop Store">> + <<if ["Clothing Shop","School Library Shop","Forest Shop","Adult Shop Store","Balloon Stand"].includes($passage)>> <<set _slots to setup.clothingLayer.all>> <ul> <<for _tryon range _slots.map(x => [x, $tryOn.tryingOn[x]]).filter(x => x[1] != null && x[1].outfitSecondary is undefined)>> diff --git a/game/overworld-town/loc-shop/widgets.twee b/game/overworld-town/loc-shop/widgets.twee index 52376d6c7082a9a779a69cafba366019b11a1b0b..cf828678bb921f7b53855a24300d7a7187f0646a 100644 --- a/game/overworld-town/loc-shop/widgets.twee +++ b/game/overworld-town/loc-shop/widgets.twee @@ -525,6 +525,8 @@ Forth argument - item index*/ <<set _clothesDesc to "Exposes your belly. Makes pregnancy more obvious.">> <<case "constricting">> <<set _clothesDesc to "Unable to be worn after a certain point during pregnancy.">> + <<case "bookbag">> + <<set _clothesDesc to "Allows you to bring school textbooks to class.">> /*<<case "maternity">><<set _clothesDesc to "Large and comfortable, belly unbidden.">>*/ <<case "esoteric">> <<set _clothesDesc to "Reveals what cannot be.">> @@ -1016,6 +1018,7 @@ Forth argument - item index*/ <<set $specialClothes to { "witchdress":"locked", "christmasdress":"locked", + "jingle-belldress":"locked", "serafuku":"locked", "vampirejacket":"locked", "slutshirt":"locked", @@ -1174,6 +1177,7 @@ Forth argument - item index*/ <<set $specialClothes["christmashat"] to "unlocked">> <<set $specialClothes["christmaslegwarmers"] to "unlocked">> <<set $specialClothes["minisnowman"] to "unlocked">> + <<set $specialClothes["jingle-belldress"] to "unlocked">> <</if>> <<if $valentines is 1>> <<set $specialClothes["rose"] to "unlocked">> @@ -1245,6 +1249,7 @@ Forth argument - item index*/ <<set _specialClothesHint to { "witchdress":"In stock from the 21st of October.", "christmasdress":"In stock from the 18th of December.", + "jingle-belldress":"In stock from the 18th of December.", "serafuku":"Discover the headteacher's secret.", "vampirejacket":"In stock from the 21st of October.", "slutshirt":"Survive slavery in an underground brothel.", diff --git a/game/overworld-town/loc-street/events.twee b/game/overworld-town/loc-street/events.twee index 1920672f8778db902e0857867420ae361c718aac..1eff9c28e979cce9117418f52496c4208ee9a451 100644 --- a/game/overworld-town/loc-street/events.twee +++ b/game/overworld-town/loc-street/events.twee @@ -843,7 +843,7 @@ Deciding that <<he>> might have bitten off more than <<he>> can chew, <<he>> fle <<violence 1>> <<neutral 1>> <<molested>> - <<generate1>><<generate2>><<maninit>><<set $leftarm to "bound">><<set $rightarm to "bound">>You wake up on a moth-eaten mattress in a small room you've never seen before. Your arms are bound behind your back. You aren't alone. + <<generate1>><<generate2>><<maninit>><<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>>You wake up on a moth-eaten mattress in a small room you've never seen before. Your arms are bound behind your back. You aren't alone. <br> <</if>> <<effects>> @@ -3034,7 +3034,7 @@ Industrial <br><br> "You just assaulted a police officer," <<he>> puts something on your arms, binding them behind you. <br><br> - <<set $rightarm to "bound">><<set $leftarm to "bound">> + <<set $rightarm to "bound">><<handheldruined>><<set $leftarm to "bound">> <<rng 50 100>> <<if crimeSumCurrent() gt ($rng + ($enemyangermax - $enemyanger)) * 20>> /*more angry = more likely to arrest you for smaller crime value*/ "With your record, no one will ask too many awkward questions about how I caught you. I'll probably even get a bonus." @@ -3048,7 +3048,7 @@ Industrial <br><br> <<He>> shoves you out of the car naked. With your arms still bound you're unable to stop yourself bashing into a wall. <br><br> - "Have a nice walk home!" <<His>> car screeches away.<<upperruined>><<lowerruined>><<underruined>> + "Have a nice walk home!" <<His>> car screeches away.<<upperruined>><<lowerruined>><<underruined>><<handheldruined>> <<endcombat>> <<destinationeventend>> <</if>> @@ -3079,7 +3079,7 @@ Industrial "Take what you need from that bag beside you," <<he>> says. "It's all there." <br><br> You turn to get the bag, when the <<person>> roughly grabs you. You feel something lock around your arms, binding them behind you. - <<set $rightarm to "bound">><<set $leftarm to "bound">> + <<set $rightarm to "bound">><<handheldruined>><<set $leftarm to "bound">> <br><br> "Guess what?" <<He>> says. "You're under arrest. Prostitution." <br><br> @@ -3787,7 +3787,7 @@ Everything goes dark... <br><br> You wake up some time later handcuffed in a holding cell. <br><br> -<<link [[Wait (1:00)|Police Cell]]>><<pass 1 hour>><<set $leftarm to "bound">><<set $rightarm to "bound">><<endevent>><</link>> +<<link [[Wait (1:00)|Police Cell]]>><<pass 1 hour>><<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>><<endevent>><</link>> <br> :: Street Police Search @@ -4118,7 +4118,7 @@ A glance at one of them causes your stomach to fall. You close your eyes tight a :: Street Police Mid Chastity <<set $outside to 1>> -<<set $leftarm to "bound">><<set $rightarm to "bound">> +<<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>> <br><br> <<overlowerruined>><<lowerruined>><<underruined>><<effects>> "You won't get away with hiding your stolen loot in there," the <<person2>><<person>> growls. @@ -4312,7 +4312,7 @@ A glance at one of them causes your stomach to fall. You close your eyes tight a :: Street Police Full Chastity <<set $outside to 1>> -<<set $leftarm to "bound">><<set $rightarm to "bound">> +<<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>> <br><br> <<lowerruined>><<underruined>><<effects>> "You won't get away with hiding your stolen loot in there," the <<person2>><<person>> growls. @@ -4440,7 +4440,7 @@ A glance at one of them causes your stomach to fall. You close your eyes tight a :: Street Police Extreme Chastity <<set $outside to 1>> -<<set $leftarm to "bound">><<set $rightarm to "bound">> +<<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>> <br><br> <<overlowerruined>><<lowerruined>><<underruined>><<effects>> "You won't get away with hiding your stolen loot in there," the <<person2>><<person>> growls furiously. @@ -4536,7 +4536,7 @@ Next, you find yourself lying on your back while holding onto the back of your k :: Street Police Extreme 4 <<set $outside to 1>> -<<set $leftarm to "bound">><<set $rightarm to "bound">><<effects>> +<<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>><<effects>> <<pass 10>> Finally, they bind your arms and force you to stand with your legs apart, while they line up citizen volunteers to aid in their body-search. With your arms bound, you can't even protect your modesty as these stranger's eyes pore over your naked flesh. Just when you think it can't get worse, the 'good citizens' grow bolder. Hands start to poke, prod, fondle and grope. Some earlier volunteers return to 'double-check.' The two officers overseeing this 'search' note down any observations. <br><br> diff --git a/game/overworld-town/loc-temple/quarters.twee b/game/overworld-town/loc-temple/quarters.twee index e0473fec726549f6cb41783bd14d2a0ea5d3c975..6257975c331a0bad8e6727d08d9b8a3ca0fc6421 100644 --- a/game/overworld-town/loc-temple/quarters.twee +++ b/game/overworld-town/loc-temple/quarters.twee @@ -460,7 +460,7 @@ You feel <<his>> hands on your <<bottom>>. You try to escape, <span class="red"> <<violence 1>> <<neutral 1>> <<molested>> - <<maninit>><<set $position to "wall">><<set $leftarm to "bound">><<set $rightarm to "bound">><<set $head to "bound">> + <<maninit>><<set $position to "wall">><<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>><<set $head to "bound">> <<set $timer to 15>> <</if>> diff --git a/game/overworld-town/special-kylar/main.twee b/game/overworld-town/special-kylar/main.twee index 7606db65e863a2c7a26831062419702b3df5ee5c..4abfd2fcbd265591b2ee994dbe08ad90f17cac2e 100644 --- a/game/overworld-town/special-kylar/main.twee +++ b/game/overworld-town/special-kylar/main.twee @@ -873,7 +873,7 @@ You continue on, not wanting to get involved. No one gives you a second glance. :: Kylar Basement <<set $outside to 0>><<set $location to "school">><<effects>> -<<npc Kylar>><<person1>><<set $leftarm to "bound">><<set $rightarm to "bound">> +<<npc Kylar>><<person1>><<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>> <<set $stress -= 2000>><<clothesontowel>><<pain 1>> <<set $kylarSeen.pushUnique("basement")>> You awaken sat on a chair. You can't move. Your legs are chained and your arms are bound behind you. You're in a spacious basement. A tiny window lets in a little light. @@ -2940,6 +2940,7 @@ You nod and hand the cup over to Kylar. <<He>> looks delighted. You spend the ne :: Kylar Share Milkshake <<set $outside to 1>><<set $location to "school">><<schooleffects>><<effects>> +<<wearProp "milkshake">> You take out your milkshake and show it to Kylar. "You brought me something?" <<He>> says, looking at the creamy treat. <br><br> diff --git a/game/overworld-town/special-robin/lemonade.twee b/game/overworld-town/special-robin/lemonade.twee index 30ba192c5c7cdd92f3846ebc9e72e76f3248cfdc..b29ee4e4ca9b7a56c4380ac7d2201658cb0e35bc 100644 --- a/game/overworld-town/special-robin/lemonade.twee +++ b/game/overworld-town/special-robin/lemonade.twee @@ -2,24 +2,19 @@ <<location "beach">><<effects>> <<set _robin to statusCheck("Robin")>> +<<npc Robin>><<person1>> +<<set _scandalous to ($robinromance is 1 and $worn.under_upper.type.includesAny("swim", "naked") and $worn.under_lower.type.includesAny("swim", "naked") and $worn.upper.type.includes("naked") and $worn.lower.type.includes("naked") and $worn.under_upper.reveal gte 800 and $worn.under_lower.reveal gte 800)>> -<<if $robinlemonadeintro isnot 1>><<set $robinlemonadeintro to 1>><<set $daily.robin.freeDrink to 1>> - <<npc Robin>><<person1>>You see Robin stood behind <<his>> lemonade stand. <<He>> waves when <<he>> sees you. - <br><br> +You see Robin stood behind <<his>> lemonade stand. +<<print $robin.timer.hurt gte 1 ? "<<He>> glances away when <<he>> sees you." : _robin.trauma gte 40 ? "<<He>> flinches whenever somebody passes <<him>>. When <<he>> sees you, <<he>> gives a timid wave." : _scandalous ? "<<He>> stares at you with <<his>> mouth agape, scandalised by your swimwear. <<He>> raises <<his>> hand in a tentative wave." : "<<He>> waves when <<he>> sees you.">> - "Hey," <<he>> says as you draw close. <<He>> beams. "It's nice to see you. I want you to try my lemonade." <<He>> mixes together water, lemon juice, and sugar and hands you the glass. "On the house." It's very sweet. +<<if $robin.timer.hurt gte 1>> <br><br> - - <<else>> - <<npc Robin>><<person1>> - <<if _robin.trauma gte 40>> - You see Robin stood behind <<his>> lemonade stand. <<He>> flinches whenever somebody passes <<him>>. - When <<he>> sees you, <<he>> gives a timid wave. - <<elseif $robinromance is 1 and $worn.under_upper.type.includesAny("swim", "naked") and $worn.under_lower.type.includesAny("swim", "naked") and $worn.upper.type.includes("naked") and $worn.lower.type.includes("naked") and $worn.under_upper.reveal gte 800 and $worn.under_lower.reveal gte 800>> - Robin stares at you with <<his>> mouth wide agape as you approach <<his>> lemonade stand. <<He>> is scandalised by your swimwear. - <<else>> - You see Robin stood behind <<his>> lemonade stand. <<He>> waves when <<he>> sees you. - <</if>> + "Hey," <<he>> says as you draw close. <<He>> sounds distant, and doesn't greet you further. The silence is made more awkward by the lack of customers. +<<elseif $robinlemonadeintro isnot 1>><<set $robinlemonadeintro to 1>><<set $daily.robin.freeDrink to 1>> + <br><br> + "Hey," <<he>> says as you draw close. <<He>> beams. "It's nice to see you. I want you to try my lemonade." <<He>> mixes together water, lemon juice, and sugar and hands you the glass. "On the house." It's very sweet. +<<else>> <<if _robin.crossdressing is 2>> <<if _robin.pronoun is "f">> <<if _robin.breastsize gte 9>> /* massive, huge, gigantic, enormous */ @@ -38,11 +33,10 @@ <<His>> <<npcClothesText _robin "upper">> and big smile makes <<him>> look like a happy girl. <</if>> <</if>> - <br><br> - <</if>> +<<balloonRobinTalk>> <<endevent>> - +<br><br> <<lemonade_stand_options>> :: Robin's Lemonade Purchase @@ -51,13 +45,17 @@ <<npc Robin>><<person1>> <<set $money -= 100>> -"Sure! Just give me a minute..." Robin says, pouring the lemonade into a glass. +"<<print $robin.timer.hurt gte 1 ? "I guess." : "Sure!">> Just give me a minute..." Robin says, pouring the lemonade into a glass. <br><br> -<<He>> hands you the glass with a smile, and you slide £1 across the counter. +<<He>> hands you the glass with a <<print $robin.timer.hurt gte 1 ? "blank expression" : "smile">>, and you slide £1 across the counter. <br><br> -<<if $robinpaid is 1 and $daily.robin.freeDrink isnot 1>> +<<if $robin.timer.hurt gte 1>> + <<set $robinmoney += 1>> + <<balloonRobinAngryPurchase>> + +<<elseif $robinpaid is 1 and $daily.robin.freeDrink isnot 1>> <<set $daily.robin.freeDrink to 1>> "I-I can't take this from you..." <<He>> says, pushing the money back across to you. "You're already paying Bailey for me. Besides, I'd just end up giving it back to you." <<set $money += 100>> @@ -128,6 +126,9 @@ You down the glass almost in one go, listening to the waves as you watch the tid <<endevent>> <<link [[Next|Orphanage]]>><</link>> <br> +<<elseif $robin.timer.hurt gte 1>> + <<balloonRobinAngryHelp>> + <<lemonade_stand_options>> <<else>> <<He>> smiles<<if _robin.trauma gte 40>> weakly<</if>>. <<if $rng gte 81 and $cow gte 6 and $livestock_intro isnot undefined>> @@ -749,7 +750,7 @@ You help Robin carry <<his>> equipment to the beach. <<else>> "Thank you for the help," <<he>> says. "It's hard carrying it all on my own." <<He>> starts juicing lemons. <</if>> - +<<balloonRobinTalk>> <br><br> <<endevent>> <<lemonade_stand_options>> diff --git a/game/overworld-town/special-robin/main.twee b/game/overworld-town/special-robin/main.twee index 8022f702c8a9be038d8975114833cac9357a1efa..0e21fc510b37ac3b69d7cb915a62b8db13abfec1 100644 --- a/game/overworld-town/special-robin/main.twee +++ b/game/overworld-town/special-robin/main.twee @@ -1581,16 +1581,23 @@ You nod, continuing to walk to the school with Robin. The rest of the trip is un <<elseif $weather is "rain">> <<if _robin.trauma gte 80>> - <<He>> stands out in the rain, slowly getting soaked. <<He>> smiles weakly when <<he>> sees you. "H-hey," <<he>> says, eyes half covered by wet hair. + <<He>> stands out in the rain, slowly getting soaked. <<He>> smiles weakly when <<he>> sees you. "H-hey," <<he>> says, eyes half covered by wet hair. <<if $worn.handheld.type.includes("rainproof")>>You quickly cover <<him>> with your $worn.handheld.name. <<He>> gives you a grateful half-smile.<</if>> <br><br> Together you walk back to the orphanage. <<if $robin_injured>><<He>> limps, and you move slowly to let <<him>> keep up. <</if>><<He>> doesn't seem keen on talking, and stays very close to you whenever other people are around. <<lrtrauma>><<npcincr Robin trauma -2>> + <<elseif $worn.handheld.type.includes("rainproof")>> + Robin smiles at the sight of your $worn.handheld.name. "I'm glad you're keeping dry," <<he>> says. "I'd hate for you to get to sick." + <br><br> + + Your umbrella occasionally bumps into Robin's as the two of you walk back to the orphanage, causing <<him>> to giggle. <<if $robinromance>>You hold hands as you walk. <<takeHandholdingVirginity "Robin" "romantic">><</if>> + <<ltrauma>><<lstress>><<trauma -2>><<stress -4>> + <<dry>> <<else>> - <<He>> holds out an umbrella so that both of you can fit under it. "Somehow I knew you'd forget again," <<he>> says with a soft smile. + <<He>> holds out an umbrella so that both of you can fit under it. "Somehow I knew you'd forget again," <<he>> says with a soft smile. <<if $worn.head.type.includes("rainproof") or $worn.over_upper.type.includes("rainproof")>>"At least you have something to keep you dry, but still, you should consider getting an umbrella."<</if>> <br><br> - The umbrella keeps you dry, and together you walk back to the orphanage<<if $robinromance>>, holding hands as you go. <<takeHandholdingVirginity "Robin" "romantic">><<else>>.<</if>> + <<if $worn.head.type.includes("rainproof")>>Your $worn.head.name and the umbrella keep<<elseif $worn.over_upper.type.includes("rainproof")>>Your $worn.over_upper.name and the umbrella keep<<else>>Robin's umbrella keeps<</if>> you dry, and together you walk back to the orphanage<<if $robinromance>>, holding hands as you go. <<takeHandholdingVirginity "Robin" "romantic">><<else>>.<</if>> <<ltrauma>><<lstress>><<trauma -2>><<stress -4>> <<dry>> <</if>> @@ -1941,7 +1948,7 @@ The <<person1>><<person>> unties Robin, who doesn't seem to be aware of what's h <<robinpay>> -<<upperruined>><<lowerruined>><<underruined>> +<<upperruined>><<lowerruined>><<underruined>><<handheldruined>> <<set $leftarm to "bound">><<set $rightarm to "bound">> "You won't be needing these," the <<person2>><<person>> says, tearing off your clothing. "Right, let's go." <br><br> @@ -4099,9 +4106,9 @@ Finally, <<he>> relents and gives you the money. You make £<<print $robinmoney> "You're such a cute cow." <</if>> <<if $robinconsole is 0>> - You rest your head in <<his>> lap while <<he>> stares out the window. + You rest your head in <<his>> lap <<print $robin.timer.hurt gte 1 ? "until <<he>> shifts away from you" : "while <<he>> stares out the window">>. <<else>> - You rest your head in <<his>> lap while <<he>> plays a game. + You rest your head in <<his>> lap <<print $robin.timer.hurt gte 1 ? "until <<he>> shifts away from you" : "while <<he>> plays a game">>. <</if>> <br><br> @@ -4152,9 +4159,9 @@ Finally, <<he>> relents and gives you the money. You make £<<print $robinmoney> <br><br> <</if>> <<if $robinconsole is 0>> - You rest your head in <<his>> lap, while <<he>> stares out the window. + You rest your head in <<his>> lap <<print $robin.timer.hurt gte 1 ? "until <<he>> shifts away from you" : "while <<he>> stares out the window">>. <<else>> - You rest your head in <<his>> lap, while <<he>> plays a game. + You rest your head in <<his>> lap <<print $robin.timer.hurt gte 1 ? "until <<he>> shifts away from you" : "while <<he>> plays a game">>. <</if>> <br><br> @@ -4163,12 +4170,16 @@ Finally, <<he>> relents and gives you the money. You make £<<print $robinmoney> :: Robin Wolf <<set $outside to 0>><<set $location to "home">><<effects>> -Feeling a sudden urge, you fall on your back and present your belly to Robin. <<He>> doesn't seem to notice this sign of affection, so you whine to attract <<his>> attention. <<He>> looks at you and giggles. "What are you doing, silly?" You wriggle and pant. Robin takes the hint and rubs your exposed tummy. You feel safe and warm. It is almost as if you are being pulled in a vortex of inexplicable tranquillity. -<br><br> -Every time Robin hits your sweet spot, you feel the need to kick, but you hold back. "Who's a good <<girl>>? You are! Yes, you are!" <<He>> smiles as <<he>> scratches you, filling your heart with joy. You close your eyes and succumb to the pleasant sensation. +Feeling a sudden urge, you fall on your back and present your belly to Robin. <<He>> doesn't seem to notice this sign of affection, so you whine to attract <<his>> attention. <<He>> looks at you and giggles. "What are you doing, silly?" You wriggle and pant. +<<if $robin.timer.hurt gte 1>> + For a moment, it looks like Robin's going to rub your exposed tummy, but <<he>> turns away and <<print $robinconsole is 0 ? "looks out the window" : "goes back to <<his>> game">>. +<<else>> + Robin takes the hint and rubs your exposed tummy. You feel safe and warm. It is almost as if you are being pulled in a vortex of inexplicable tranquillity. + <br><br> + Every time Robin hits your sweet spot, you feel the need to kick, but you hold back. "Who's a good <<girl>>? You are! Yes, you are!" <<He>> smiles as <<he>> scratches you, filling your heart with joy. You close your eyes and succumb to the pleasant sensation. +<</if>> <br><br> - <<robinoptions>> :: Robin Fox @@ -4176,8 +4187,11 @@ Every time Robin hits your sweet spot, you feel the need to kick, but you hold b You swish your tail back and forth, until it lands over <<his>> lap. <<He>> idly reaches down to pet it, before looking surprised. "It's so soft!" <br><br> - -You spend a little while having your tail stroked, and shiver with delight. +<<if $robin.timer.hurt gte 1>> + <<He>> hesitates before politely moving your tail out of <<his>> lap. +<<else>> + You spend a little while having your tail stroked, and shiver with delight. +<</if>> <br><br> <<robinoptions>> @@ -4502,7 +4516,7 @@ You wrap your arms around <<his>> shoulders. <</if>> <br><br> -Robin hugs you back and smiles. "Thank you," <<he>> says. "I won't be that stupid again." +Robin <<print $robin.timer.hurt gte 1 ? "gives you a distant smile" : "hugs you back and smiles">>. "Thank you," <<he>> says. "I won't be that stupid again." <br><br> <<robinoptions>> @@ -4839,6 +4853,7 @@ You install the USB, and a file folder automatically pops up a second later. You <</if>> :: Robin Give Milkshake +<<wearProp "milkshake">> <<effects>> <<pass 20>> You hand Robin a milkshake and sit next to <<him>> on the bed. "Oh, thank you," <<he>> says as <<he>> takes the creamy drink out of your hands. You spend the next twenty minutes sipping milkshake and chatting. @@ -4848,11 +4863,12 @@ You hand Robin a milkshake and sit next to <<him>> on the bed. "Oh, thank you," <<robinoptions>> :: Robin Share Milkshake +<<wearProp "milkshake">> <<effects>> <<pass 20>> You sit on the bed and produce a milkshake. You offer it to Robin. "Is that for me?" <<he>> asks as <<he>> takes the creamy drink out of your hands. <br><br> -"I thought we could share it," you say, scooting up next to <<him>>. You spend the next twenty minutes sipping milkshake and chatting. +"I thought we could share it," you say, scooting up next to <<him>>. You spend the next twenty minutes sipping the milkshake and chatting. <<npcincr Robin love 2>><<gglove>> <br><br> diff --git a/game/overworld-town/special-robin/walk.twee b/game/overworld-town/special-robin/walk.twee index 4004e9150ddec8fd3d62cb024cad53569e835d27..2704253a1405b819713b4586e6a866fa5b3e8494 100644 --- a/game/overworld-town/special-robin/walk.twee +++ b/game/overworld-town/special-robin/walk.twee @@ -91,32 +91,97 @@ You walk together to the High Street. The cinema stands beside the shopping centre. Three films are showing. <br><br> <</if>> - <<link [[Superhero (1:30)|Robin Cinema Superhero]]>><<pass 90>><<stress -12>><</link>><<lstress>> + <<link [[Superhero (1:30)|Robin Cinema Popcorn]]>><<set $phase to 0>><<pass 90>><<stress -12>><</link>><<lstress>> <br> - <<link [[Romance (1:30)|Robin Cinema Romance]]>><<pass 90>><<stress -12>><</link>><<lstress>> + <<link [[Romance (1:30)|Robin Cinema Popcorn]]>><<set $phase to 1>><<pass 90>><<stress -12>><</link>><<lstress>> <br> - <<link [[Horror (1:30)|Robin Cinema Horror]]>><<pass 90>><<stress 6>><</link>><<gstress>> + <<link [[Horror (1:30)|Robin Cinema Popcorn]]>><<set $phase to 2>><<pass 90>><<stress 6>><</link>><<gstress>> <br> <</if>> +:: Robin Cinema Popcorn +<<set $outside to 0>><<set $location to "town">><<effects>> +<<switch $phase>> + <<case 1>> + <<set _popcornIntro to "\"Can we get popcorn?\" Robin asks as you buy the tickets. \"It's not proper without popcorn.\"">> + <<set _theatreLink to "Romance">> + <<case 2>> + <<set _popcornIntro to "Robin's face turns white. \"A scary film?\" <<he>> asks. \"I'm not good with scary. Can we at least get some popcorn? It might make it less scary.\"">> + <<set _theatreLink to "Horror">> + <<default>> + <<set _popcornIntro to "\"I wanted to see this,\" Robin says as you buy the tickets. <<He>> bobs on <<his>> heels. \"Can we get popcorn?\"">> + <<set _theatreLink to "Superhero">> +<</switch>> +_popcornIntro +<br><br> +<<if $popcorn is 1>> + <<if $speech_attitude is "meek">> + "Oh, yes!" You clap your hands and pull out the popcorn you purchased from the balloon stand. "I bought some popcorn earlier and was saving it for a special occasion. I'm certain it's cheaper than here." + <<elseif $speech_attitude is "bratty">> + "Hell yeah, we can!" You grin and pull out the popcorn you purchased from the balloon stand. "Check out what I smuggled in. Fuck concession stand prices, am I right?" + <<else>> + "Absolutely." You nod and pull out the popcorn you purchased from the balloon stand. "I bought some popcorn earlier to save a few quid." + <</if>> + <br><br> + "Did you get that from that balloon stand <<print Time.season is "winter" ? " in the park" : "on the beach">>? + <<if $balloonStand.robin.status is "helped">> + The person who runs it seems nice. I'm happy to support another entrepreneur." Robin smiles. + <<elseif $balloonStand.robin.status is "sabotaged">> + <<if $balloonStand.robin.knows is false>> + Why would you give them your custom?" Robin asks, sounding wounded. "I'm struggling as is, and I don't need my <<print $robinromance is 1 ? "<<girlfriend>>" : "best friend">> shopping at the competitor." + <<else>> + You're shopping there too?" Robin asks, sounding aghast. "Giving them business ideas wasn't enough?" + <</if>> + <br><br> + It takes several minutes to calm Robin down, but <<he>> begrudgingly acknowledges that you meant no harm. <<npcincr Robin love -5>><<npcincr Robin dom -3>> + <<else>> + I'm still a little wary about sharing the beach with them, but their popcorn does smell delicious..." Robin gives you a tentative smile. + <</if>> + <br><br> + <<socialiseicon "cinema">><<link [[Enter theatre|"Robin Cinema " + _theatreLink]]>><<set $phase2 to "popcorn">><</link>> + +<<else>> + <<if $money gte 1000>> + <<foodicon "popcorn">><<link [[Buy popcorn (£10)|"Robin Cinema " + _theatreLink]]>><<set $money -= 1000>><<set $popcorn += 1>><<set $phase to "purchase">><<set $phase2 to "popcorn">><</link>><br> + <<socialiseicon "cinema">><<link [[Enter theatre|"Robin Cinema " + _theatreLink]]>><</link>> + <<else>> + <<if $speech_attitude is "meek">> + "I-I'm so sorry, but I can't afford it..." You bite your lip and glance away from Robin. + <<elseif $speech_attitude is "bratty">> + You make a show of patting yourself down. "Yeah, I got nothing on me. Buy the popcorn yourself if you want it that bad." + <<else>> + "I'm sorry," you say. "I can't afford it." + <</if>> + <br><br> + <<if $robinmoney gte 10>> + "That's okay," Robin assures you. "My treat!" <<He>> purchases a bag of popcorn for the two of you to share. <<set $robinmoney -= 10>><<set $popcorn += 1>> + <br><br> + <<socialiseicon "cinema">><<link [[Enter theatre|"Robin Cinema " + _theatreLink]]>><<set $phase2 to "popcorn">><</link>> + <<else>> + "Oh." Robin looks crestfallen for a moment, but <<he>> quickly shakes it off. "It's okay! I guess I shouldn't've brought it up, because I can't afford it either." <<He>> gives a sheepish little laugh. + <br><br> + <<socialiseicon "cinema">><<link [[Enter theatre|"Robin Cinema " + _theatreLink]]>><</link>> + <</if>> + <</if>> +<</if>> + + :: Robin Cinema Superhero <<set $outside to 0>><<set $location to "town">><<effects>> +<<if $phase is "purchase">>You purchase a bag of overpriced, if tasty, popcorn.<</if>> +<<if $phase2 is "popcorn">><<wearProp "popcorn">><</if>> -"I wanted to see this," Robin says as you buy the tickets. <<He>> bobs on <<his>> heels. "Can we get popcorn?" -<br><br> - -<<He>> runs ahead of you into the theatre. You find <<him>> waiting by the attendant looking sheepish. You had the tickets. Once through, <<he>> runs ahead again, finding two free seats near the middle of the room. <<He>> waves at you. -<br><br> +Robin runs ahead of you into the theatre. You find <<him>> waiting by the attendant looking sheepish. You had the tickets. Once through, <<he>> runs ahead again, finding two free seats near the middle of the room. <<He>> waves at you. The film soon starts. It's pretty good. Robin enjoys it, and laughs along with the rest of the audience. <br><br> <<if $robinromance is 1>> - <<link [[Fondle|Robin Cinema Fondle]]>><<npcincr Robin lust 1>><</link>><<promiscuous1>><<glust>> + <<link [[Fondle|Robin Cinema Fondle]]>><<npcincr Robin lust 1>><</link>><<promiscuous1>><<handheldon>><<glust>> <br> <</if>> -<<link [[Keep watching (0:15)|Robin Cinema Watch]]>><<pass 15>><</link>> +<<link [[Keep watching (0:15)|Robin Cinema Watch]]>><<pass 15>><<handheldon>><</link>> <br> :: Robin Cinema Fondle @@ -168,6 +233,7 @@ You watch the film to its satisfying conclusion. Robin doesn't say much on the w :: Robin Cinema Watch <<set $outside to 0>><<set $location to "town">><<effects>> +<<if $phase2 is "popcorn">><<popcornEat>><</if>> <<if $phase is 1>> You watch the film to its satisfying conclusion. Robin talks about it the entire way home. <<He>> doesn't mention your probing hand, though <<he>> looks flushed. @@ -182,9 +248,8 @@ You watch the film to its satisfying conclusion. Robin doesn't say much on the w :: Robin Cinema Romance <<set $outside to 0>><<set $location to "town">><<effects>> - -"Can we get popcorn?" Robin asks as you buy the tickets. "It's not proper without popcorn." -<br><br> +<<if $phase is "purchase">>You purchase a bag of overpriced, if tasty, popcorn.<</if>> +<<if $phase2 is "popcorn">><<wearProp "popcorn">><</if>> <<if $robinromance is 1>> <<set $dateCount.Total++>><<set $dateCount.Robin++>> @@ -268,6 +333,7 @@ No one in the room seems to notice what you're up to. :: Robin Cinema Frisky Leave <<set $outside to 0>><<set $location to "town">><<effects>> +<<if $phase2 is "popcorn">><<popcornEat>><</if>> Robin gasps as you pull yourself away. You spend the short remainder of the film in each other's arms. <<Hes>> paying more attention to you than <<he>> is to the screen. <br><br> @@ -276,6 +342,7 @@ Robin gasps as you pull yourself away. You spend the short remainder of the film :: Robin Cinema Floor <<set $outside to 0>><<set $location to "town">><<effects>> +<<if $phase2 is "popcorn">><<popcornEat>><</if>> You pull away from Robin and steal a quick glance to make sure nobody is watching. Everyone is completely oblivious to the lewd act that's about to happen in the back of the theatre. Robin eyes you with longing, already breathless with arousal. <br><br> @@ -358,6 +425,7 @@ Hidden by the unoccupied row of seats in front of you, the two of you have free :: Robin Cinema Bush <<set $outside to 0>><<set $location to "town">><<effects>> +<<if $phase2 is "popcorn">><<popcornEat>><</if>> Applause rings through the showroom as the credits roll. Robin can't look away from you. The two of you leave the showroom, hand-in-hand. <br><br> @@ -609,6 +677,7 @@ You leave the theatre, hand-in-hand. <<He>> looks frustrated, and clings to you :: Robin Cinema Wet <<set $outside to 0>><<set $location to "town">><<effects>> +<<if $phase2 is "popcorn">><<popcornEat>><</if>> The two of you leave the theatre, hand-in-sticky-hand. Robin clings to you tight on the walk home. You can still smell the sugary substance, and you feel an urge to clean <<him>>. Your cat ears twitch. <br><br> Robin breaks the silence as you pass through the park. "Can we rest for a moment?" You nod, following the path until you come across a bench. @@ -665,12 +734,14 @@ You purr as you pull your head away, only to quickly re-engage and lap up Robin' <br><br> The two of you fix your clothing. <<He>> clings to you tight, only letting out the occasional sound of sweet, blissful relief. The walk home is silent. <br><br> +<<if $phase2 is "popcorn">><<popcornEat>><</if>> <<link [[Next|Robin Options]]>><</link>> <br> :: Robin Cinema Romance Watch <<set $outside to 0>><<set $location to "town">><<effects>> +<<if $phase2 is "popcorn">><<popcornEat>><</if>> Robin applauds when the credits roll, and talks about the film on the way home. <br><br> @@ -682,6 +753,7 @@ Robin applauds when the credits roll, and talks about the film on the way home. :: Robin Cinema Flirt <<set $outside to 0>><<set $location to "town">><<effects>> +<<silently>><<handheldon>><</silently>> You quote one of the film's leads, from the part right before the two protagonists first kiss. Robin smiles and takes the other role. You think you get the lines right. <<He>> says the final line. <br><br> @@ -703,6 +775,7 @@ You quote one of the film's leads, from the part right before the two protagonis :: Robin Cinema Listen <<set $outside to 0>><<set $location to "town">><<effects>> +<<silently>><<handheldon>><</silently>> You listen to Robin talk about the film. <<He>> enjoyed it more than you, and <<his>> delight is infectious. Maybe it wasn't so bad. <br><br> @@ -712,11 +785,10 @@ You listen to Robin talk about the film. <<He>> enjoyed it more than you, and << :: Robin Cinema Horror <<set $outside to 0>><<set $location to "town">><<effects>> +<<if $phase is "purchase">>You purchase a bag of overpriced, if tasty, popcorn.<</if>> +<<if $phase2 is "popcorn">><<wearProp "popcorn">><</if>> -Robin's face turns white. "A scary film?" <<he>> asks. "I'm not good with scary." -<br><br> - -You buy the tickets and enter the theatre. Robin is hesitant to follow. <<He>> sits beside you, but when the person sat behind <<him>> nudges <<his>> seat <<he>> leaps up with a sharp scream. +You buy the tickets and enter the theatre. Robin is hesitant to follow. <<He>> sits beside you, but when the person sat behind <<him>> nudges <<his>> seat <<he>> leaps up with a sharp scream. <<if $phase2 is "popcorn">>Popcorn spills everywhere.<</if>> <br><br> <<link [[Comfort (0:45)|Robin Cinema Comfort]]>><<pass 45>><<npcincr Robin love 1>><<stress 6>><</link>><<gstress>><<glove>> @@ -731,6 +803,7 @@ You put your arms around Robin and ease <<him>> back into <<his>> seat. "It's on <br><br> "I know," <<he>> says. <<He>> doesn't sound convinced. +<<popcornSpill>> <br><br> The film starts. Robin screams and wraps <<his>> arms around you whenever something scary happens. By the climax <<he>> is glued to your side, <<his>> head buried in your shoulder. <<He>> doesn't seem relieved even when the film is over. @@ -747,6 +820,7 @@ The film starts. Robin screams and wraps <<his>> arms around you whenever someth "Come on," you say. "Bailey's scarier than any movie." Robin laughs and sits down. <br><br> +<<popcornSpill>> The film starts. It's quite frightening. You think you're getting used to it when it catches you off guard. Instinct takes over, and you grope for Robin's hand. <<takeHandholdingVirginity "Robin" "romantic">> <br><br> diff --git a/game/overworld-town/special-robin/widgets.twee b/game/overworld-town/special-robin/widgets.twee index 96dee7908b47b1bd57bdd8050a30f6f879154ca5..468a9cfbc6e2ca4f8e7b460e360590142d2a815b 100644 --- a/game/overworld-town/special-robin/widgets.twee +++ b/game/overworld-town/special-robin/widgets.twee @@ -84,13 +84,13 @@ You knock on the door. Robin opens it and smiles. <<His>> eyes are red. "Hey," <<he>> says. "Come in." You enter and sit on the bed. <<He>> sits beside you. <br><br> - <<elseif $robinpaid is 1 and $robinPayout is 0 and $robinmoney gte 20 and _robin.love gte 80 and _robin.trauma lte 20>> + <<elseif $robinpaid is 1 and $robinPayout is 0 and $robinmoney gte 20 and _robin.love gte 80 and _robin.trauma lte 20 and $robin.timer.hurt is 0>> <<robinPayout>> <br><br> <<elseif $halloween is 1 and !$halloween_robin>> <<set $halloween_robin to 1>><<set $halloween_robin_costume to "ghost">> - You knock on the door. Robin throws it open and hugs you. "It's almost time," <<he>> says. "Halloween! Here's my costume." <<He>> leans over <<his>> bed and grabs the blanket, before hurling it over <<his>> head. "I'm a ghost." + You knock on the door. <<robinOpen>> "It's almost time," <<he>> says. "Halloween! Here's my costume." <<He>> leans over <<his>> bed and grabs the blanket, before hurling it over <<his>> head. "I'm a ghost." <br><br> <<He>> sits down. There's an open magazine beside <<him>>, advertising more impressive, but pricey, costumes. Some are circled in pen, but <<he>> moves it away to clear space before you get a good look. @@ -103,7 +103,7 @@ <<elseif _robin.comforted is 0>> <<set _robin.comforted to 1>> - You knock on the door. Robin throws it open and hugs you, though <<he>> looks upset. + You knock on the door. Robin throws it open and <<print $robin.timer.hurt gte 1 ? "stares blankly at you" : "hugs you, though <<he>> looks upset">>. <<switch $robinLastPunishment>> <<case "dinner">> "I'm having trouble eating lately," <<he>> gives a pained laugh. @@ -128,13 +128,14 @@ <br><br> <<elseif _robin.trauma gte 10>> - You knock on the door. Robin throws it open and hugs you. "Come in," <<he>> says. You enter and sit on the bed. <<He>> sits beside you. + You knock on the door. <<robinOpen>> You enter and sit on the bed. <<He>> sits beside you. <br><br> <<if $robinthank isnot 1>> <<set $robinthank to 1>> You open your mouth to speak, but Robin interrupts you. "Thank you," <<he>> says. "For everything." <<He>> rests <<his>> head on your shoulder. <br><br> <</if>> + <<else>> <<if $robinconsoleintro isnot 1>> <<set $robinconsoleintro to 1>><<set $robinconsole to 1>> @@ -145,7 +146,7 @@ <br><br> <<elseif $robinconsole is 1 and $robinpaid isnot 1 and $robindebt gte ($robindebtlimit - 1) and $robinconsolelost isnot 1>> <<set $robinconsolelost to 1>><<set $robinconsole to 0>> - You knock on the door. Robin opens it and hugs you. "Come in," <<he>> says, pulling you inside. <<He>> sits on the bed. Something is different. There's no console. + You knock on the door. <<robinOpen>> <<He>> sits on the bed. Something is different. There's no console. <br><br> "You've noticed," <<he>> says. "I was bored of it, so I sold it." <<He>> smiles, but it doesn't touch <<his>> eyes. <br><br> @@ -186,8 +187,18 @@ <<getouticon>><<link [[Leave|Orphanage]]>><<set $fromRobinRoom to true>><<endevent>><</link>> <br> <!-- Normal Robin events --> + <<elseif $robin.timer.hurt gte 1>> + You knock on the door. <<robinOpen>> <<He>> sits on the bed beside the television and picks up the controller. + <<if _robin.crossdressing gte 2>> + <<if _robin.pronoun is "f">> + It looks like <<hes>> wearing <<his>> chest binder today. + <<else>> + You take note of <<his>> <<npcClothesText _robin "upper">>. + <</if>> + <</if>> + <<elseif $robinconsole is 0>> - You knock on the door. Robin throws it open and hugs you. "Come in," <<he>> says, pulling you inside. <<He>> sits on the bed and stares at the spot <<his>> console used to fill. + You knock on the door. <<robinOpen>> <<He>> sits on the bed and stares at the spot <<his>> console used to fill. <<if _robin.crossdressing gte 2>> <<if _robin.pronoun is "f">> It looks like <<hes>> wearing <<his>> chest binder today. @@ -275,7 +286,7 @@ <</if>> <<else>> - You knock on the door. Robin throws it open and hugs you. "Come in," <<he>> says, pulling you inside. + You knock on the door. <<robinOpen>> <<He>> sits on the bed beside the television and picks up the controller. <<if _robin.crossdressing gte 2>> <<if _robin.pronoun is "f">> @@ -339,7 +350,9 @@ <</if>> <<elseif Time.hour gte 21 or Time.hour lte 5>> Robin looks at the clock on the wall. - <<if _robin.trauma lte 30>> + <<if $balloonStand.robin.time gte 1>> + "<<print _robin.trauma lte 30 ? "It's past my bed time," : "I-I should probably go to sleep,">>" <<he>> says. "<<print $robinromance ? "I'd rather sleep alone tonight, if you don't mind" : "You should get some sleep too">>." + <<elseif _robin.trauma lte 30>> "It's past my bed time," <<he>> says. <<He>> hugs you. "Goodnight." <<elseif _robin.trauma lte 60>> "I-I should probably go to sleep," <<he>> says. <<He>> hugs you before reluctantly letting go. "Goodnight." @@ -517,7 +530,7 @@ <<link [[Say you were raped|Robin Pregnancy Raped]]>><</link>> <br> <<else>> - <<if _robin.trauma lt 80>> + <<if _robin.trauma lt 80 and $robin.timer.hurt is 0>> <<if _robin.love gte 5 and _robin.lovestage is undefined>> <<set _robin.lovestage to 0>> "Thanks for spending time with me," <<he>> says. "It's less fun alone." @@ -654,25 +667,29 @@ <</widget>> <<widget "robinhug">> - <<if $daily.robin.hugCry isnot 1 and $robinpaid isnot 1 and $trauma gte ($traumamax / 7) * 2>> - <<link [[Cry (0:05)|Robin Hug Cry]]>><<pass 5>><<set $daily.robin.hugCry to 1>><<stress -12>><<trauma -6>><<tearup>><<npcincr Robin love 1>><<npcincr Robin dom 1>><</link>><<lstress>><<ltrauma>><<glove>><<gdom>> - <br> - <</if>> - <<if $daily.robin.hugCry isnot 1 and $trauma gte ($traumamax / 7) * 3>> - <<link [[Break down (0:30)|Robin Hug Break]]>><<set $daily.robin.hugCry to 1>><<stress -12>><<stress -12>><<trauma -6>><<trauma -6>><<pass 30>><<tearup>><<npcincr Robin love 1>><<npcincr Robin dom 1>><</link>><<llstress>><<lltrauma>><<glove>><<gdom>> - <br> - <</if>> - <<if $daily.robin.hugComplain isnot 1>> - <<link [[Complain (0:10)|Robin Hug Complain]]>><<set $daily.robin.hugComplain to 1>><<stress -12>><<trauma -6>><<pass 10>><</link>><<lstress>><<ltrauma>> - <br> - <</if>> - <<if $NPCName[$NPCNameList.indexOf("Robin")].love gte 50>> - <<link [[Cuddle (0:10)|Robin Hug Cuddle]]>><<set $robinhugging to 1>><<pass 10>><<npcincr Robin love 1>><<trauma -1>><<stress -1>><</link>><<lstress>><<ltrauma>><<glove>> - <br> - <</if>> - <<if $robinstunned isnot 1 and $robinconsole is 1>> - <<link [[Watch Robin play (0:30)|Robin Watch]]>><<set $robinhugging to 1>><<stress -6>><<trauma -3>><<pass 30>><<npcincr Robin love 1>><</link>><<lstress>><<ltrauma>><<glove>> - <br> + <<if $robin.timer.hurt gte 1>> + Robin lets you hug <<him>> for a moment before gently untangling <<himself>> from you. "I'm sorry," <<he>> says. "I'm still a little upset with you. I need some space." + <<else>> + <<if $daily.robin.hugCry isnot 1 and $robinpaid isnot 1 and $trauma gte ($traumamax / 7) * 2>> + <<link [[Cry (0:05)|Robin Hug Cry]]>><<pass 5>><<set $daily.robin.hugCry to 1>><<stress -12>><<trauma -6>><<tearup>><<npcincr Robin love 1>><<npcincr Robin dom 1>><</link>><<lstress>><<ltrauma>><<glove>><<gdom>> + <br> + <</if>> + <<if $daily.robin.hugCry isnot 1 and $trauma gte ($traumamax / 7) * 3>> + <<link [[Break down (0:30)|Robin Hug Break]]>><<set $daily.robin.hugCry to 1>><<stress -12>><<stress -12>><<trauma -6>><<trauma -6>><<pass 30>><<tearup>><<npcincr Robin love 1>><<npcincr Robin dom 1>><</link>><<llstress>><<lltrauma>><<glove>><<gdom>> + <br> + <</if>> + <<if $daily.robin.hugComplain isnot 1>> + <<link [[Complain (0:10)|Robin Hug Complain]]>><<set $daily.robin.hugComplain to 1>><<stress -12>><<trauma -6>><<pass 10>><</link>><<lstress>><<ltrauma>> + <br> + <</if>> + <<if $NPCName[$NPCNameList.indexOf("Robin")].love gte 50>> + <<link [[Cuddle (0:10)|Robin Hug Cuddle]]>><<set $robinhugging to 1>><<pass 10>><<npcincr Robin love 1>><<trauma -1>><<stress -1>><</link>><<lstress>><<ltrauma>><<glove>> + <br> + <</if>> + <<if $robinstunned isnot 1 and $robinconsole is 1>> + <<link [[Watch Robin play (0:30)|Robin Watch]]>><<set $robinhugging to 1>><<stress -6>><<trauma -3>><<pass 30>><<npcincr Robin love 1>><</link>><<lstress>><<ltrauma>><<glove>> + <br> + <</if>> <</if>> <<link [[Stop hugging|Robin Hug Stop]]>><</link>> <br> @@ -699,6 +716,14 @@ <br> <</widget>> +<<widget "robinOpen">> + <<if $robin.timer.hurt gte 1>> + Robin throws it open, pausing when <<he>> sees you. "Come in," <<he>> says, standing aside from so you can enter <<his>> room. It's clear <<hes>> still <<npcHurt "robin">>, but <<hes>> willing to spend time with you, at least. + <<else>> + Robin throws it open and hugs you. "Come in," <<he>> says, pulling you inside. + <</if>> +<</widget>> + <<widget "robinPayout">> <<set $robinPayout to 1>> You knock on the door. Robin throws it open and hugs you. "Come in," <<he>> says, pulling you inside. <<He>> fumbles around in <<his>> drawer for a moment, before handing you <span class="gold">£<<print $robinmoney>></span>. @@ -819,15 +844,19 @@ <</widget>> <<widget "lemonade_stand_options">> - - <<if $money gte 100>> - <<foodicon "lemonade">><<link [[Buy lemonade (0:15)|Robin's Lemonade Purchase]]>><<stress -6>><<trauma -1>><<pass 15>><</link>><<lstress>><<ltrauma>> + <<if ["helped", "sabotaged"].includes($balloonStand.robin.status) and $balloonStand.robin.talked is false and $robin.timer.customer is 0>> + <<link [[Tell Robin the truth|Balloon Robin Check-In]]>><<set $phase to ("confess_"+$balloonStand.robin.status)>><</link>> + <br> + <<link [[Stay silent|Balloon Robin Check-In]]>><<set $phase to ("quiet_"+$balloonStand.robin.status)>><</link>> + <<else>> + <<if $money gte 100>> + <<foodicon "lemonade">><<link [[Buy lemonade (0:15)|Robin's Lemonade Purchase]]>><<stress -6>><<trauma -1>><<pass 15>><</link>><<lstress>><<ltrauma>> + <br> + <</if>> + <<robinicon "lemonade">><<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>> <br> + <<getouticon>><<link [[Leave|Beach]]>><<endevent>><</link>> <</if>> - <<robinicon "lemonade">><<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>> - <br> - <<getouticon>><<link [[Leave|Beach]]>><<endevent>><</link>> - <</widget>> <<widget "robinroom_link">> @@ -850,3 +879,24 @@ <</if>> <</widget>> + +<<widget "popcornEat">> + <<silently>><<clotheson>><<set $popcorn -=1>><</silently>> +<</widget>> + +<<widget "popcornSpill">> + <<if $popcorn gte 1>> + <<popcornEat>> + "I'm sorry I spilled the popcorn." Robin shoots you an apologetic look. "I was looking forward to it, and I know you were too." + <br><br> + <<if $speech_attitude is "meek">> + "It's okay," you say soothingly. "I promise I don't mind. We can always get popcorn some other time!" + <<elseif $speech_attitude is "bratty">> + "Please," you say, nudging <<him>> with your elbow. "I don't care about that. No use crying over spilled popcorn, right?" + <<else>> + "Hey, it's fine," you say, smiling at <<him>> encouragingly. "It's just popcorn." + <</if>> + <br><br> + <<He>> gives you a smile and a quick hug. "Thanks," <<he>> says. "You're the best." + <</if>> +<</widget>> diff --git a/game/overworld-town/special-sydney/main.twee b/game/overworld-town/special-sydney/main.twee index c7c1ffc0642b3e8bdb78e989ab9105d81906671d..4cf4e2b90a263d02c563810f57daea6a20d94421 100644 --- a/game/overworld-town/special-sydney/main.twee +++ b/game/overworld-town/special-sydney/main.twee @@ -1125,6 +1125,7 @@ You spend the next fifteen minutes chatting, as Sydney takes extra care not to s <<sydneyOptions>> :: Sydney Share Milkshake +<<wearProp "milkshake">> <<set $outside to 1>><<set $location to "school">><<schooleffects>><<effects>><<run statusCheck("Sydney")>> You take out your milkshake and place it on the rental counter. diff --git a/game/overworld-town/special-sydney/walk.twee b/game/overworld-town/special-sydney/walk.twee index 07c69f90e619a76e712d06e90a7ea96907f1ca4c..2a4b16bcec69b940ed0ae0333ea583ad590d6115 100644 --- a/game/overworld-town/special-sydney/walk.twee +++ b/game/overworld-town/special-sydney/walk.twee @@ -1340,7 +1340,7 @@ You arrive at the beach with Sydney. <<if $weather is "rain" or $weather is "snow">> The beach itself is mostly deserted due to the $weather, but the violent waves have attracted surfers. You decide to stick to the promenade overlooking the ocean. <br><br> - Sydney makes sure to keep you under <<his>> umbrella as you watch the waves roll in. The sound of the<<if $weather is "rain">> rain and<</if>> waves is relaxing. <<stress -12>><<llstress>> + <<print $worn.handheld.type.includes(rainproof) ? "You and Sydney stand side-by-side under your respective umbrellas" : "Sydney makes sure to keep you under <<his>> umbrella">> as you watch the waves roll in. The sound of the<<if $weather is "rain">> rain and<</if>> waves is relaxing. <<stress -12>><<llstress>> <br><br> You spot a large wave coming in. It will likely splash over the edge of the promenade and soak both of you if you don't move. <br><br> @@ -1438,7 +1438,7 @@ You step away from the edge. Sydney looks over, before getting drenched as the w :: Sydney Beach Promenade Soak Both <<effects>><<run statusCheck("Sydney")>> You brace yourself for the wave's impact. Sydney looks over to you, and you're both drenched as it crashes into the promenade. -<<His>> umbrella offers no protection from the deluge, and <<his>><<if $exit is "library">> school clothes<<else>> temple robes<</if>> get soaked through. +<<print $worn.handheld.type.includes(rainproof) ? "Your umbrellas offer" : "Sydney's umbrella offers">> no protection from the deluge, and <<his>><<if $exit is "library">> school clothes<<else>> temple robes<</if>> get soaked through. <<if !$worn.upper.type.includes("swim") and !$worn.upper.type.includes("naked")>> <<set $upperwet to 200>> <</if>> @@ -1451,7 +1451,7 @@ You brace yourself for the wave's impact. Sydney looks over to you, and you're b <br><br> "I'd be upset, but getting to see you all exposed like that is pretty nice." <<He>> glances around. "There's a changing room at the other end, but I can see a few people near it." <<else>> - You can see <<his>> underwear through the fabric. <<He>> hastily tries to cover both of you with the umbrella. <<arousal 400>><<garousal>> + You can see <<his>> underwear through the fabric. <<He>> hastily tries to cover both of you with <<his>> umbrella. <<arousal 400>><<garousal>> <br><br> "Shoot, shoot, shoot! They're completely see-through! We... we need a changing room..." <<His>> neck swivels until <<he>> spots one at the other end of the promenade. However, there are a few people near it. <</if>> @@ -1488,7 +1488,7 @@ You brace yourself for the wave's impact. Sydney looks over to you, and you're b :: Sydney Beach Promenade Soak Accompany <<effects>><<run statusCheck("Sydney")>> -You and Sydney walk over to the changing rooms,<<if $exposed gte 1>> using the umbrella to hide your exposure<<else>> and you do your best to shield Sydney from view<</if>>. You hear some lewd remarks from the crowd as they notice your approach. +You and Sydney walk over to the changing rooms,<<if $exposed gte 1>> using <<print $worn.handheld.type.includes(rainproof) ? "your umbrellas" : "the umbrella">> to hide your exposure<<else>> and you do your best to shield Sydney from view<</if>>. You hear some lewd remarks from the crowd as they notice your approach. <br><br> <<generate2>><<person2>> <<if $exposed gte 1>> @@ -1500,7 +1500,7 @@ You and Sydney walk over to the changing rooms,<<if $exposed gte 1>> using the u <<Hes>> cut off as Sydney grabs <<his>> arm. <<Hes>> pulled in, coming face to face inches from Sydney. "Mine. No filthy sinner touches <<phim>> except me." Sydney stares at <<him>> for what feels like minutes, before releasing <<him>>. The crowd backs away. <<else>> <<He>> stops <<himself>> as <<he>> realises Sydney is staring right at <<him>>. You can't quite describe the look <<person1>><<hes>> giving the <<person2>><<person>>, but it's made <<him>> freeze in place. The noise of the crowd quickly dies out. - Sydney approaches, removing the <<person>>'s hand from your shoulder and tossing it aside like a soiled rag. "Disgusting. Perhaps you should try washing your sins away in the ocean, you might make good food for a passing whale at the very least. Make yourself scarce, lustful cretin." + Sydney approaches, removing the <<person>>'s hand from your shoulder and tossing it aside like a soiled rag. "Disgusting. Perhaps you should try washing your sins away in the ocean; you might make good food for a passing whale, at the very least. Make yourself scarce, lustful cretin." <</if>> <br><br> Sydney takes your arm and keeps walking. diff --git a/game/overworld-town/special-sydney/widgets.twee b/game/overworld-town/special-sydney/widgets.twee index 98d48788307e61c2ae36b94c6e2eb86bd69f6a94..5e2a7568e819296453c9e9e1101be350f7137df7 100644 --- a/game/overworld-town/special-sydney/widgets.twee +++ b/game/overworld-town/special-sydney/widgets.twee @@ -320,7 +320,7 @@ <<elseif $sydneySeen.includes("mass") or $sydneySeen.includes("initiate")>> "It's closing time. I'm off to the temple.<<if $sydneyromance is 1>> Would you... mind walking me there?<<else>> There's plenty to be done, would you like to come with me?<</if>>" <br><br> - <<wolficon>><<link [[Go with Sydney (0:25)|Temple Sydney Walk]]>><<pass 25>><<stress -3>><<npcincr Sydney love 1>><</link>><<lstress>><<glove>> + <<wolficon>><<link [[Go with Sydney (0:25)|Temple Sydney Walk]]>><<clotheson>><<pass 25>><<stress -3>><<npcincr Sydney love 1>><</link>><<lstress>><<glove>> <br> <<else>> "It's closing time." @@ -334,7 +334,7 @@ <br><br> <</if>> <</if>> - <<getouticon>><<link [[Leave|School Library]]>><<endevent>><<set $eventskip to 1>><</link>> + <<link [[Leave|School Library]]>><<clotheson>><<endevent>><<set $eventskip to 1>><</link>> <br> <<case "shop">> <<if $adultshopgrandopening is true>> @@ -418,7 +418,7 @@ Sydney stretches. "I need to get ready for tonight's vigil. Wish me luck!" <<if $sydneyromance is 1>><<He>> kisses you on the cheek before leaving.<</if>> <br><br> <<link [[Next|Temple]]>><<endevent>><<set $eventskip to 1>><</link>> - <br> + <br> <<default>> Sydney stretches. "Time to get back to work. I'll be around." <<if $sydneyromance is 1>><<He>> kisses you on the cheek before leaving.<</if>> <br><br> @@ -585,7 +585,7 @@ <</if>> <br><br> <<set $_noLeave to true>> - <<link [[Go with Sydney (1:00)|Adult Shop Opening Walk]]>><<unset $sydneyExit>><<pass 10>><</link>> + <<link [[Go with Sydney (1:00)|Adult Shop Opening Walk]]>><<clotheson>><<unset $sydneyExit>><<pass 10>><</link>> <<elseif $sydneySeen.includes("shop")>> "I'm off to help my <<sydneymum>> with the shop. You can come too, if you want." <br><br> @@ -611,7 +611,7 @@ <</switch>> <br><br> <<if !$_noLeave>> - <<getouticon>><<link [[Leave (0:01)|$sydneyExit]]>><<unset $sydneyExit>><<endevent>><<pass 1>><<set $eventskip to 1>><</link>> + <<link [[Leave (0:01)|$sydneyExit]]>><<clotheson>><<unset $sydneyExit>><<endevent>><<pass 1>><<set $eventskip to 1>><</link>> <br> <</if>> <</widget>> @@ -627,10 +627,10 @@ <</if>> <<if $location is "adult_shop">> /*Placeholder. Unfinished.*/ <<if $NPCName[$NPCNameList.indexOf("Sydney")].love gte 20>> - <<link [[Help with work (0:30)|Sydney Shop Help]]>><<pass 30>><<npcincr Sydney love 1>><<stress -3>><<trauma -3>><</link>><<lstress>><<ltrauma>><<glove>> + <<ind>><<link [[Help with work (0:30)|Sydney Shop Help]]>><<pass 30>><<npcincr Sydney love 1>><<stress -3>><<trauma -3>><</link>><<lstress>><<ltrauma>><<glove>> <br> <<else>> - <<link [[Help with work (0:30)|Sydney Shop Help]]>><<pass 30>><<npcincr Sydney love 1>><</link>><<glove>> + <<ind>><<link [[Help with work (0:30)|Sydney Shop Help]]>><<pass 30>><<npcincr Sydney love 1>><</link>><<glove>> <br> <</if>> <</if>> diff --git a/game/overworld-town/special-whitney/main.twee b/game/overworld-town/special-whitney/main.twee index e04988f2002e06a157a5c041119825a86784a164..d9264aa8a0c0eee548bd241bcebbe39ef1e3bf39 100644 --- a/game/overworld-town/special-whitney/main.twee +++ b/game/overworld-town/special-whitney/main.twee @@ -823,7 +823,7 @@ Whitney holds onto you just a bit longer, and begrudgingly lets you go. <<He>> bites <<his>> lip, spreading <<his>> legs a little wider to give you a better angle. You dive in for real, running your tongue in short circles around <<his>> puckered hole. You reach up and grip <<his>> thighs for support, occasionally moving down a bit to lap teasingly at <<his>> <<if C.npc.Whitney.penis isnot "none">>sack<<else>>pussy<</if>>. <br><br> - <<He>> takes half a step backwards, pinning your face between <<his>> ass and the locker, <<if C.npc.Whitney.penis isnot "none">>shaft hardening rapidly<<else>>pussy glistening with moisture<</if>> as you work. Pressing forward, you slowly worm your tongue into <<his>> tight hole, forcing a satisfied groan from <<his>> mouth. + <<He>> takes half a step backwards, pinning your face between <<his>> ass and the locker, <<if C.npc.Whitney.penis isnot "none">>shaft hardening rapidly<<else>>pussy glistening with moisture<</if>> as you work. Pressing forward, you slowly worm your tongue into <<his>> tight hole, forcing a satisfied groan from <<his>> mouth. <br><br> <<He>> pulls out <<his>> phone, cranes <<his>> arm around behind <<him>>, and takes a picture. Several of <<his>> friends do the same, laughing and showing each other their phones. @@ -897,7 +897,7 @@ Whitney holds onto you just a bit longer, and begrudgingly lets you go. :: Whitney Abduction <<set $outside to 0>><<set $location to "town">><<effects>> -<<set $leftarm to "bound">><<set $rightarm to "bound">> +<<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>> <<npc Whitney>><<person1>>You wake up to cold water drenching your face. Whitney stands above you, holding an empty bucket. Your arms are bound and you're lying in an unfamiliar alley. <br><br> @@ -1333,7 +1333,7 @@ You stand on the other side. You're in an open space behind a large building. Th <<maninit>> You make no effort to resist as Whitney <<npcUndressText $NPCName[$NPCNameList.indexOf("Whitney")] "lower" "self">>. <<stuck_in_wall_oral>><<molested>><<controlloss>> - <<set $enemytrust -= 40>><<set $position to "wall">><<set $walltype to "front">><<set $leftarm to "bound">><<set $rightarm to "bound">><<set $head to "bound">> + <<set $enemytrust -= 40>><<set $position to "wall">><<set $walltype to "front">><<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>><<set $head to "bound">> <<set $timer to 10>> <<set $audienceforceteen to 1>> <</if>> @@ -1481,7 +1481,7 @@ You stand on the other side. You're in an open space behind a large building. Th <<maninit>> <<stuck_in_wall_oral>> - <<set $enemytrust -= 40>><<set $position to "wall">><<set $walltype to "front">><<set $leftarm to "bound">><<set $rightarm to "bound">><<set $head to "bound">> + <<set $enemytrust -= 40>><<set $position to "wall">><<set $walltype to "front">><<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>><<set $head to "bound">> <<set $timer to 10>> <<set $audienceforceteen to 1>> <</if>> @@ -1625,7 +1625,7 @@ You stand on the other side. You're in an open space behind a large building. Th <<neutral 1>> <<molested>> <<beastCombatInit>> - <<set $enemytrust -= 40>><<set $position to "wall">><<set $leftarm to "bound">><<set $rightarm to "bound">><<set $head to "bound">> + <<set $enemytrust -= 40>><<set $position to "wall">><<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>><<set $head to "bound">> <</if>> <<effects>> @@ -1686,7 +1686,7 @@ You stand on the other side. You're in an open space behind a large building. Th <<neutral 1>> <<molested>> <<maninit>> - <<set $enemytrust -= 40>><<set $position to "wall">><<set $leftarm to "bound">><<set $rightarm to "bound">><<set $head to "bound">> + <<set $enemytrust -= 40>><<set $position to "wall">><<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>><<set $head to "bound">> <</if>> <<effects>> @@ -1810,7 +1810,7 @@ You journey to Mer Street. When you arrive Whitney steps up to the edge of the p <<else>> <<He>> points at a street light. <<His>> friends grasp your arms and drag you over to it. Someone ties your arms in place. <br><br> - <<set $leftarm to "bound">><<set $rightarm to "bound">> + <<bind>> Whitney saunters over to you. "Think I'll leave you here awhile. You'll have company." <<He>> points at a fishing ship just landing. "Doesn't look like they caught much. They must be real frustrated. I know what'll cheer them up. A nice slut all tied and ready for them." <<He>> and <<his>> friends leave. You can't turn to tell if they're gone or watching from somewhere. <br><br> @@ -2468,7 +2468,7 @@ Whitney snickers and leers with <<his>> friends as they eye you up. Whitney has <<set $outside to 1>><<set $location to "park">><<effects>> <<if $phase is 1 and C.npc.Whitney.love gte random(10,20)>> - Whitney looks down at you and rolls his eyes. <<He>> sighs. "Alright, it was a stupid idea. This slut wouldn't be able to pull it off anyways." They walk away, but not before Whitney looks back at you with a disappointed glare. + Whitney looks down at you and rolls <<his>> eyes. <<He>> sighs. "Alright, it was a stupid idea. This slut wouldn't be able to pull it off anyways." They walk away, but not before Whitney looks back at you with a disappointed glare. <br><br> <<link [[Next|Park]]>><<endevent>><<set $eventskip to 1>><</link>> <<else>> @@ -3972,7 +3972,7 @@ Whitney rides you down Oxford Street, <<his>> amused friends following behind. < <<He>> climbs from your back, using your hair for purchase. <<He>> maintains <<his>> grip once back on <<his>> feet, and pulls your head back. "Maybe I'll let my friends ride you too." <<He>> pauses, then leans forward and kisses you, tongue-first. <<takeKissVirginity "Whitney" "loveInterest">> <br><br> - "Later <<girl>>friend," <<he>> says as <<he>> pulls away. <<He>> and <<his>> friends swagger away. + "Later <<girlfriend>>," <<he>> says as <<he>> pulls away. <<He>> and <<his>> friends swagger away. <br><br> <<else>> <<He>> climbs from your back, using your hair for purchase. "Maybe I'll let my friends ride you sometime. I bet you'd like that." @@ -4105,7 +4105,11 @@ You approach Whitney, and take shelter from the $weather under the tree. <<endevent>> <br><br> <<whitneyexit>> - +<<elseif $whitney_smoke is undefined and $whitneyromance gte 1 and C.npc.Whitney.love gte 20 and !playerIsPregnant()>> + "How's my <<girlfriend>> doing today, huh?" Whitney wraps an arm around your shoulder and pulls you <<print $worn.handheld.type.includes("rainproof") ? "closer" : "underneath <<his>> umbrella">>. <<He>> takes a drag of <<his>> cigarette before handing it to you. "Want some?" + <br><br> + <<link [[Accept the cigarette|Whitney Park Cigarette Smoke]]>><<set $phase to 0>><</link>><br> + <<link [[Refuse|Whitney Park Cigarette Smoke]]>><<set $phase to 1>><</link>> <<elseif $daily.whitney.text gte 3>> <br><br> "That's it, I warned you!" <<He>> closes <<his>> umbrella and grabs you. @@ -4117,6 +4121,317 @@ You approach Whitney, and take shelter from the $weather under the tree. <<whitneyoptions>> <</if>> +:: Whitney Park Cigarette Smoke + +<<set $hasUmbrella to ($worn.handheld.type.includes("rainproof") ? 1 : 0)>> +<<if $phase is 1>> + /*Refuse*/ + You shake your head. Whitney shrugs and slips the cigarette between <<his>> lips again. "Suit yourself," <<he>> says, sounding faintly disgruntled. "More for me." + + <<if C.npc.Whitney.lust gte 40>> + <br><br> + Whitney draws in another lungful of smoke before suddenly tugging you in for a kiss. Just before your lips touch, <<he>> slowly exhales a thin stream of smoke, catching you off-guard. You cough in <<his>> face. + <br><br> + Whitney leans away from you and exhales the rest of the smoke in an annoyed huff. "Idiot," <<he>> grumbles. <<He>> tosses the cigarette onto the ground and crunches it beneath <<his>> heel. "Should've figured a dumb slut like you wouldn't even know how to shotgun." + <br><br> + <<if $speech_attitude is "meek">> + "S-sorry," you stammer out. "I just wasn't expecting the smoke." + <<elseif $speech_attitude is "bratty">> + "How's that my fault? I said I didn't want to smoke, and it's not like you gave me a warning that you were gonna pull something like that," you say. + <<else>> + "Sorry," you say. "I wasn't exactly prepared for you to do that." + <</if>> + <br><br> + <<He>> shakes <<his>> head. "Yeah, whatever. That was my last fag, anyway. I'm leaving." <<He>> walks off without another word. <<npcincr Whitney love -1>><<llove "Whitney">><<npcincr Whitney dom -1>><<ldom "Whitney">> + <<set $whitney_shotgun to 0>> + <br><br> + <<whitneyexit>> + <<else>> + <br><br> + You get the feeling <<he>> was looking forward to sharing a smoke with you. + <</if>> + <<set $whitney_smoke to 0>> + <<set $daily.whitney.smoke to true>> +<<else>> + /*Smoke*/ + <<wearProp "cigarette">> + <<if $whitney_smoke isnot undefined>> + <<if $speech_action is "meek">> + "Um, would it be okay if we shared?" you ask, gesturing at Whitney's cigarette. + <<elseif $speech_action is "bratty">> + "Cool if I take a hit?" you ask, giving a nonchalant nod towards Whitney's cigarette. + <<else>> + "Mind if we share?" you ask, nodding at Whitney's cigarette. + <</if>> + <</if>> + <br><br> + <<if $whitney_smoke is undefined or $whitney_smoke is 0>> + <<print $whitney_smoke is undefined ? 'You take the offered cigarette.' : 'Whitney looks pleasantly surprised at your request. "Yeah? You finally grow a spine after wussing out last time?" <<He>> hands you <<his>> cigarette.'>> Whitney stares at your lips as you gingerly raise it to your mouth. You inhale and promptly choke on smoke. <<if $daily.hookah isnot undefined>>The burn of nicotine stands in sharp contrast to the sweet-smelling hookah juice you've smoked before.<</if>> + <br><br> + Whitney bursts into laughter. "What, don't tell me this was your first time?" You're coughing too hard to answer. + <<if $player.virginity.vaginal is "Whitney" or $player.virginity.penile is "Whitney">> + "What can I say, guess I'm just good at popping your cherry." + <<elseif $player.virginity.oral is "Whitney">> + "And here I thought I'd already taken care of that oral virginity of yours." + <<else>> + "Surprised a slut like you still has a virginity to lose." + <</if>> + <<He>> snickers to <<himself>> as you pass the cigarette back to <<him>>, your eyes watering. + <br><br> + <<if $speech_action is "meek">> + "You're so mean to me," you pout when you finally catch your breath. + <<elseif $speech_action is "bratty">> + "You're an asshole," you say when you finally catch your breath. + <<else>> + "Rude," you say when you finally catch your breath. + <</if>> + <br><br> + "You know it, babe." Whitney grins and plants a kiss on your forehead. <<npcincr Whitney love 1>><<glove "Whitney">> + <<set $whitney_smoke to 1>> + <<else>> + Whitney takes <<print either("a leisurely", "a pointed", "a quick", "one last")>> drag of <<his>> cigarette before handing it to you. + <br><br> + <<if $whitney_smoke gte 7>> + <<He>> watches as you smoothly slip the cigarette between your lips. You hold the breath for a long moment before slowly exhaling a thin stream of smoke. "<<print either("That's my <<girl>>,", "Hot,", "Hell yeah,", "That's how you use your mouth,",)>>" <<he>> says with a nod. "Bet you've got iron lungs from all that practice. C'mere, let's test that theory out." + <br><br> + <<if $science gte 400>> + You helpfully refrain from pointing out that if anything, your lung capacity has worsened. + <<else>> + Increased lung capacity from smoking doesn't sound right, but you don't know enough about science to dispute it. + <</if>> + <<elseif $whitney_smoke gte 5>> + <<He>> stares at your lips as you take a practiced drag. "I guess your mouth might be good at more than just <<if $NPCList[0].penis isnot "none">>sucking me off<<else>>eating me out<</if>>," <<he>> comments. <<if C.npc.Whitney.lust gte 10>>"Gonna need you to refresh my memory here with a little demonstration." <<He>> grabs <<his>> crotch and gives a vulgar grin.<<else>>"You'll have to refresh my memory with a little demonstration some other time."<</if>> + <<elseif $whitney_smoke gte 3>> + <<His>> eyes linger on your lips as you take a pull of the cigarette. + <br><br> + <<if $speech_action is "meek">> + "Do you like what you see?" you say coyly. "You keep staring at my mouth when I smoke..." + <<elseif $speech_action is "bratty">> + "You're not slick, you know," you tease. "I can see you staring at my mouth." + <<else>> + "Subtle," you say with a grin. "I see you staring at my mouth." + <</if>> + <br><br> + Whitney flushes and looks away. "Dunno what you're talking about," <<he>> says, clearing <<his>> throat. <<He>> holds out <<his>> hand for the cigarette. + <<elseif $whitney_smoke gt 1>> + <<He>> eyes you as you carefully inhale. You hold the lungful of smoke for a moment before slowly exhaling. You successfully refrain from coughing. Whitney seems disappointed. + <br><br> + <<if $speech_action is "meek">> + "See?" you say. "I told you I could do better!" + <<elseif $speech_action is "bratty">> + "How do you like them apples? I told you, I just had to get warmed up," you say. + <<else>> + "Who's laughing now?" you say. "Like I said, I was just rusty." + <</if>> + <br><br> + "Uh-huh," Whitney says. <<He>> motions with <<his>> hand for you to pass the cigarette back to <<him>>. "Too bad, I was looking forward to a good laugh. Guess you're gonna have to find some other way to entertain me." <<He>> slides the cigarette between <<his>> lips once more. + <<else>> + <<He>> smirks as you put the cigarette in your mouth, clearly expecting another disastrous encounter. You keep it together for longer this time, but still end up coughing. "What's the matter? Poor baby can't handle <<pher>> smoke?" <<he>> mocks. + <br><br> + <<if $speech_action is "meek">> + "I-I can do better! Just you wait," you tell <<him>>. + <<elseif $speech_action is "bratty">> + "Yeah, yeah, laugh it up. I'm just getting warmed up," you tell <<him>>. + <<else>> + "I'm just rusty. We'll see who's laughing later," you tell <<him>>. + <</if>> + You pass the cigarette back to <<him>>. + <br><br> + "Right," <<he>> says knowingly. "Your body just needs to learn how to take it. You're used to that, right, slut?" <<He>> laughs, but rubs your back as you give one last cough. <<npcincr Whitney love 1>><<glove>> + <</if>> + <<set $whitney_smoke++>> + <</if>> + <<set $daily.whitney.smoke to true>> +<</if>> +<br><br> +<<if $whitney_smoke gte 3>> + <<if $whitney_smoke gte 7>> + <<if $whitney_shotgun gte 0>> + <<link [[Shotgun kiss Whitney|Whitney Park Cigarette Smoke Kiss]]>><<npcincr Whitney love 1>><<npcincr Whitney dom -1>><<npcincr Whitney lust 1>><<oralskill 1>><</link>><<gcontrol>><<glove>><<ldom>><<glust>><<goralskill>><<promiscuous1>><<kissvirginitywarning>> + <<else>> + <<link [[Kiss Whitney|Whitney Park Cigarette Smoke Kiss]]>><<npcincr Whitney love 1>><<npcincr Whitney lust 1>><</link>><<gcontrol>><<glove>><<glust>><<promiscuous1>><<kissvirginitywarning>> + <</if>> + <br> + <<elseif $whitney_smoke gte 5>> + <<if $promiscuity gte 55>> + <<link [[Kneel|Whitney Park Cigarette Smoke Oral]]>><<npcincr Whitney love 1>><</link>><<glove>><<promiscuous4>> + <<else>> + <span class="blue">You are not promiscuous enough to take things further.</span> + <</if>> + <br> + <<else>> + <<link [[Tease|Whitney Park Cigarette Smoke Tease]]>><</link>> + <br> + <</if>> + <<link [[Hand the cigarette back|Whitney Park Cigarette Smoke 2]]>><<clotheson>><</link>> +<<else>> + <<link [[Next|Park]]>><<clotheson>><<unset $hasUmbrella>><<endevent>><<set $eventskip to 1>><</link>> +<</if>> + +:: Whitney Park Cigarette Smoke Kiss +<<set $outside to 0>><<effects>> +<<if $whitney_shotgun is 0>> + /*PC's learned how to shotgun */ + On the other side of the park, a couple's making out. Whitney watches their groping with idle interest. You take advantage of <<his>> momentary distraction to quickly take a drag, holding the smoke in your mouth. + <br><br> + Whitney turns to you, mouth open like <<hes>> about to say something. You dip your head towards <<his>> before <<he>> can get the words out, and <<he>> smirks, leaning in to meet your lips. + <br><br> + You exhale the smoke before <<he>> can complete the kiss. <<He>> makes a noise of surprise but reacts quickly and inhales. <<ldom "Whitney">> You seal the remaining distance, brushing your lips against <<his>>. <<takeKissVirginity "Whitney" "loveInterest">> + <br><br> + You pull away, blowing the rest of the smoke into the air, and smile at <<him>>. + <br><br> + "Look at you, full of surprises," <<he>> says. <<He>> looks impressed, but pleased, at your audacity. + <br><br> + <<link [[Next|Park]]>><<clotheson>><<unset $hasUmbrella>><<endevent>><<set $eventskip to 1>><</link>> + +<<elseif $whitney_shotgun gte 1>> + /*PC's shotgunned before */ + Whitney watches with idle interest as you take a drag and hold the smoke in your mouth. <<He>> <<print C.npc.Whitney.dom lte 10 ? "leans in expectantly and waits" : "leans against the tree, waiting for you to come to <<him>>">>. You humour <<him>>, closing the distance between you. The cigarette dangles between your fingers, dangerously close to <<his>> face, as you run a thumb down <<his>> jawline. + <br><br> + <<His>> face is flushed, but <<he>> can't tear <<his>> gaze away from you as you nudge <<his>> chin until <<he>> parts <<his>> lips slightly. You tip your chin and exhale against <<his>> lips. <<His>> breath is hot against your skin as <<he>> inhales. The two of you stay like that, sharing your breath, as the heady rush of nicotine courses through you. + <br><br> + Whitney's mouth follows yours when you start to pull away, chasing a familiar high. <<He>> grabs your waist, <<print C.npc.Whitney.dom lte 10 ? "pulling you flush against <<his>> body. <<He>> backs up so <<his>> back is flat against the tree, hands firmly planted on your <<bottom>>" : "manhandling you until your back is pressed against the tree">>. You make out for a few minutes, until Whitney shoves <<print C.npc.Whitney.dom lte 10 ? "you away" : "off of the tree">>. + <br> + <</if>> + "Damn, slut," <<he>> says with a gasp. "You're good with that mouth." <<He>> straightens out <<his>> <<npcClothesText $NPCName[$NPCNameList.indexOf("Whitney")] "upper">> before holding <<his>> hand out for the cigarette. You pass it back to <<him>>. + <br><br> + <<link [[Next|Park]]>><<clotheson>><<unset $hasUmbrella>><<endevent>><<set $eventskip to 1>><</link>> + +<<else>> + /*PC doesn't know how to shotgun */ + You lean in to kiss Whitney, but <<he>> stops you. "Hang on," <<he>> says, snatching the cigarette from your hand. <<He>> takes a drag before sealing the distance between you once more. + + Just before your lips touch, <<he>> slowly exhales a thin stream of smoke, catching you off-guard. + <<set $whitney_shotgun to 0>> + <<willpowerdifficulty 1 300 no_text>> + <<if $willpowerSuccess>> + You weren't expecting it, but you're no stranger to smoking now. You inhale on reflex, allowing the smoke to pass from <<his>> mouth to yours. <<His>> lips brush against yours as the heady rush of nicotine courses through you. + <br><br> + <<He>> pulls away from you with a smirk. You're not sure what's more addictive, the cigarette or <<his>> lips. Judging by <<his>> flushed face, you guess <<he>> feels the same way. <<garousal>><<arousal 600>><<glust "Whitney">> "Good to see my <<girl>> already knows how to shotgun," <<he>> comments. "You're not totally useless." <<He>> wraps an arm around you and finishes off the rest of the cigarette. + <br><br> + <<link [[Next|Park]]>><<clotheson>><<unset $hasUmbrella>><<endevent>><<set $eventskip to 1>><</link>> + <<else>> + <<silently>><<clotheson>><</silently>> + You try to refrain, but you can't help but cough in <<his>> face. + <br><br> + Whitney leans away from you and exhales the rest of the smoke in an annoyed huff. "Idiot," <<he>> grumbles. <<He>> tosses the cigarette onto the ground and crunches it beneath <<his>> heel. "Should've figured a dumb slut like you wouldn't even know how to shotgun." + <br><br> + <<if $speech_attitude is "meek">> + "S-sorry," you stammer out. "I just wasn't expecting the smoke." + <<elseif $speech_attitude is "bratty">> + "How's that my fault? I was expecting a kiss, not a dumbass stunt like that," you say. + <<else>> + "Sorry," you say. "I wasn't exactly prepared for you to do that." + <</if>> + <br><br> + <<He>> shakes <<his>> head. "Yeah, whatever. That was my last fag, anyway. I'm leaving." <<He>> walks off without another word. <<npcincr Whitney love -1>><<llove "Whitney">><<npcincr Whitney dom -1>><<ldom "Whitney">> + <br><br> + <<whitneyexit>> + <</if>> +<</if>> + +:: Whitney Park Cigarette Smoke Tease +<<set $outside to 0>><<effects>> +You pull the cigarette back, holding it out of <<his>> reach. "Oh, I think you know exactly what I'm talking about," you purr. "I think someone has a little oral fixation and can't wait to get <<his>> mouth wrapped around something my lips have touched." +<br><br> +"Fuck you," <<he>> says, but there's no vitriol in <<his>> words, just a fond exasperation. "If that was all I wanted, I'd be going down on half the town." +<br><br> +You don't miss a beat as you continue, "So what do you want, then? Are you thinking about how much you wish my mouth was all over you instead?" +<br><br> +"What I want," Whitney says, "is for you to shut up already. I swear, one of these days I'm gonna gag you and fuck you until you can't walk straight. See how mouthy you are after that." +<br><br> +<<if $speech_action is "meek">> + "I think I'd like that, actually." +<<elseif $speech_action is "bratty">> + "Don't threaten me with a good time." +<<else>> + "Sounds fun." +<</if>> +<br><br> +Whitney gives a bark of laughter and pulls you in for a kiss. "You would be into that, slut. Now gimme my fag back." <<He>> snatches it back from you, looking away as <<he>> sucks in another lungful of smoke. +<br><br> +<<link [[Next|Park]]>><<clotheson>><<unset $hasUmbrella>><<endevent>><<set $eventskip to 1>><</link>> + +:: Whitney Park Cigarette Smoke Oral +<<set $outside to 0>><<effects>> +Dropping the cigarette, you sink to your knees in front of Whitney, heedless of the wet grass. <<if $hasUmbrella is 1>>You put down your umbrella and<<else>>You<</if>> reach for the waistband of Whitney's <<npcClothesText $NPCName[$NPCNameList.indexOf("Whitney")] "lower">>. +<<if C.npc.Whitney.lust gte 10>> + Whitney gives a low chuckle. "Good to see you can take a hint," <<he>> says. <<He>> holds <<his>> umbrella over your head, keeping you dry as you <<npcUndressText $NPCName[$NPCNameList.indexOf("Whitney")] "lower">>. "Can't have you getting sick on me now," <<he>> says. If the rain bothers <<him>>, <<he>> doesn't show it; <<he>> simply spreads <<his>> legs to give you better access. + <<if $NPCList[0].penis is "none">> + <<if random(0, 99) lt $straponchance>> + <<npcstrapon 0>> + <</if>> + <</if>> + <<if $NPCList[0].penis isnot "none">> + You <<oraltext>> wrap your lips around the head of <<his>> <<if $NPCList[0].penisdesc.includes("strap-on")>>$NPCList[0].penisdesc. It's silicone, of course, but Whitney's breath quickens as if <<he>> can feel it.<<else>>cock, flattening your tongue against <<his>> slit. A bead of precum trickles out, and you eagerly lap it up. Whitney sighs with pleasure.<</if>> + <br><br> + <<if $NPCList[0].penissize gte 4>> + You stroke the base of <<his>> shaft and swallow as much of <<his>> girth as you can manage. + <<elseif $NPCList[0].penissize gte 1>> + You grip the base of <<his>> shaft as you take <<him>> deeper, swallowing <<him>> to the hilt. + <<else>> + You grip the backs of <<his>> thighs, pulling <<him>> closer as you easily envelop <<his>> cock. + <</if>> + <br><br> + You lose yourself in the moment, head bobbing between Whitney's legs as you service <<him>>. As an involuntary moan of pleasure escapes you, Whitney's composure cracks entirely. <<He>> grabs the back of your head with <<his>> free hand, <<print C.npc.Whitney.dom gte 10 ? "fucking your throat to completion" : "anchoring you in place as <<he>> cums with a whimper">>. <<His>> hips jerk erratically as <<he>> <<if $NPCList[0].penisdesc.includes("strap-on")>>grinds the base of the strap-on against <<his>> clit.<<else>>spurts cum down your throat.<<bodyliquid "mouth" "semen" 1>><</if>> Finally, <<he>> eases you back. <<npcincr Whitney lust -20>><<llust>> + <br><br> + <<if $NPCList[0].penisdesc.includes("strap-on")>> + <<if $speech_action is "meek">> + "I had no idea it felt so good for me to touch this thing," you muse. + <<elseif $speech_action is "bratty">> + "I can't believe you came just from me sucking a hunk of silicone," you say with a snicker. + <<else>> + "Did sucking on this thing actually make you cum?" you ask. + <</if>> + <br><br> + "Shut it," Whitney says. "I don't need a real cock to get something out of you sucking me off. I just like seeing you on your knees where you belong, is all." + <<else>> + <<if $speech_action is "meek">> + You blush as you obediently open your mouth to show <<him>> that you've swallowed. + <<elseif $speech_action is "bratty">> + You stick out your tongue to show <<him>> <<his>> load before swallowing it in one exaggerated gulp. + <<else>> + You open your mouth to show <<him>> that you've swallowed <<his>> cum. + <</if>> + Whitney gives a breathy little laugh, still recovering from <<his>> orgasm. "Good <<girl>>," <<he>> says. + <</if>> + <<else>> + Whitney's already glistening with arousal. You drink it in, teasing your tongue between <<his>> slick folds to <<oraltext>> lap at <<his>> entrance. Whitney sighs with pleasure, carding <<his>> fingers through your hair. You give <<him>> a slow, sweet parting kiss before traveling further north. + <br><br> + You take a moment to tease <<him>>, exhaling against the stiff bud of <<his>> clit. <<He>> twitches in annoyance, canting <<his>> hips towards you and grumbling for you to get a move on. <<He>> glowers down at you, but <<his>> flushed face tells another story. You <<print $speech_attitude is "meek" ? "giggle" : $speech_attitude is "bratty" ? "snicker" : "smile">> and finally give <<him>> the direct stimulation <<he>> seeks. + <br><br> + With one smooth motion, you envelop <<him>>, flattening your tongue as you suck on <<his>> clit. You lose yourself in the moment, head bobbing between Whitney's legs as you service <<him>>. As an involuntary moan of pleasure escapes you, Whitney's composure cracks entirely. <<He>> grabs the back of your head with <<his>> free hand, anchoring you in place as <<he>> cums with a <<print C.npc.Whitney.dom gte 10 ? "moan. <<His>> hips jerk erratically as <<he>> smothers your face against <<his>> crotch" : "whimper. <<His>> hips jerk erratically as <<he>> rides your tongue to completion">>. Finally, <<he>> eases you back. <<bodyliquid "mouth" "goo">> <<npcincr Whitney lust -20>><<llust>> + <</if>> + <br><br> + Whitney exhales. "Thanks, slut," <<he>> says as <<he>> fixes <<his>> clothes. "I needed that. C'mere." <<He>> pushes <<his>> wet fringe out of <<his>> eyes before tugging you to your feet. <<Hes>> soaked from the rain, and <<his>> wet clothes dampen your back as <<he>> presses up against you. + <br><br> + <<He>> sucks a bruising kiss into your neck as <<his>> hand makes its way <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>>under the hem of your $worn.lower.name<<elseif $worn.lower.name isnot "naked">>down the front of your $worn.lower.name<<else>>towards your crotch<</if>>. + <br><br> + <<if (($player.penisExist and !playerChastity("penis")) or ($player.vaginaExist and !playerChastity("hidden")))>> + <<whitneyFinish>> + "Can't have anyone saying I don't take care of my <<girl>>," Whitney says as <<he>> withdraws <<his>> hand. + <<else>> + "Don't think I wouldn't return the favour, slut." <<His>> hand brushes against your <<genitals>>, and you can feel <<him>> frowning into the crook of your neck. + <<if $worn.genitals.origin is "Whitney">> + After a moment's pause, <<he>> gives a low chuckle. "Oh, right, that's on me. Well, glad you're still listening to orders." + <<else>> + "The fuck you wearing this shit for?" <<He>> shrugs. "Well, I tried to be nice and get you off. Your loss." + <</if>> + <</if>> + <<He>> gives your ass a parting smack before sending you on your way. "Catch you later, slut." <<npcincr Whitney lust -20>><<llust>><<glove>><<npcincr Whitney love 1>> + <<whitneyexit>> +<<else>> + Whitney makes a noise of annoyance. "C'mon, slut, I said some other time," <<he>> says. <<He>> reaches for your hand and pulls you to your feet. "Not in the mood right now." <<He>> shakes <<his>> head. "God, you're insatiable." + <br><br> + <<link [[Next|Park]]>><<clotheson>><<unset $hasUmbrella>><<endevent>><<set $eventskip to 1>><</link>> +<</if>> + +:: Whitney Park Cigarette Smoke 2 +<<set $outside to 0>><<effects>> +You pass the cigarette back to Whitney. As if on autopilot, <<he>> immediately takes another drag. You try to banter, but <<his>> answers are short, and the conversation peters out. +<br><br> +<<link [[Next|Park]]>><<unset $hasUmbrella>><<endevent>><<set $eventskip to 1>><</link>> + :: Whitney Chat <<set $outside to 0>><<effects>> <<set _whitney to statusCheck("Whitney")>> @@ -4140,7 +4455,7 @@ You approach Whitney, and take shelter from the $weather under the tree. <br><br> <<link [[Go along with it|Whitney Park Whore]]>><<stress 6>><<npcincr Whitney dom 1>><</link>><<gdom>><<gstress>> <br> - <<link [[Fight|Whitney Park Whore Fight]]>><<set $fightstart to 1>><<npcincr Whitney love -1>><<npcincr Whitney dom -1>><</link>><<llove>><<ldom>> + <<link [[Fight|Whitney Park Whore Fight]]>><<set $fightstart to 1>><<npcincr Whitney love -1>><<npcincr Whitney dom -1>><</link>><<llove "Whitney">><<ldom>> <<if $submissive gte 1500>> <br> <<link [["Beg " + $NPCList[0].pronouns.him + " not to"|Whitney Park Whore Beg]]>><<sub 3>><<npcincr Whitney dom 3>><<npcincr Whitney lust 1>><</link>><<ggdom>><<glust>><<submissivetext>> @@ -4159,14 +4474,14 @@ You approach Whitney, and take shelter from the $weather under the tree. <<elseif $skin.forehead.special is "Whitney">> <<He>> rubs <<his>> thumb on your forehead, right on the <<tattoo forehead>>. "Make sure everyone sees that." <<else>> - <<He>> steps closer, making sure you're covered by <<his>> umbrella. + <<He>> steps closer, <<print $worn.handheld.type.includes("rainproof") ? "causing <<his>> umbrella to bump against yours. <<He>> nudges your umbrella aside and drapes an arm around your shoulders" : "making sure you're covered by <<his>> umbrella">>. <</if>> <<elseif $rng gte 81>> <<if $NPCName[$NPCNameList.indexOf("Robin")].init is 1 and $robinmissing is 0 and $NPCName[$NPCNameList.indexOf("Robin")].trauma lt 80 and Time.season is "winter">> You see <<his>> gaze drift to the other side of the park, <<if Time.isWeekEnd() and Time.hour gte 9 and Time.hour lte 16>> at Robin's hot chocolate stand. "Sometimes I just want to trash that fucking eyesore," <<he>> says. - "But <<nnpc_his "Robin">> stuff is really good." <<He>> takes a drag of <<his>> cigarette. + "But <<nnpc_his "Robin">> stuff is really good." <<print playerBellyVisible() ? "<<He>> chews <<his>> gum for a moment." : "<<He>> takes a drag of <<his>> cigarette">>. "If you ever tell <<nnpc_him "Robin">> I said that, they'll never find your body." <<else>> at where Robin usually sets up <<nnpc_his "Robin">> hot chocolate stand. "Could really go for some of <<nnpc_his "Robin">> stuff right now." @@ -4182,7 +4497,7 @@ You approach Whitney, and take shelter from the $weather under the tree. "Do you ever stop talking?" <<he>> asks. A few moments of silence pass. "It was a question, not a request, idiot!" <<gstress>><<stress 1>> <<elseif $rng gte 21>> - "Keep bothering me and I'll dunk you in the fountain," <<he>> says in between drags. "Sure would like to see your clothes go see-through." + "Keep bothering me and I'll dunk you in the fountain," <<he>> says <<print playerBellyVisible() ? "as <<he>> chews <<his>> gum" : "in between drags">>. "Sure would like to see your clothes go see-through." <<else>> <<He>> stays silent, but seems to be listening. <</if>> @@ -4219,7 +4534,7 @@ You approach Whitney, and take shelter from the $weather under the tree. <br><br> <<whitneyoptions>> <<else>> - You try to chat with Whitney, but <<he>> keeps smoking, not uttering a word. + You try to chat with Whitney, but <<he>> keeps <<print playerBellyVisible() ? "chewing <<his>> gum" : "smoking">>, not uttering a word. <br><br> <<whitneyoptions>> <</if>> @@ -4271,7 +4586,7 @@ You press forward, putting your hands on <<his>> waist and pulling yourself clos <<link [[Next|Whitney Park Sex]]>><<set $sexstart to 1>><</link>> <br> <<elseif _whitney.lust gte 20>> - Whitney looks you over for a moment, tossing <<his>> cigarette aside. + Whitney looks you over for a moment and <<print playerBellyVisible() ? "spits <<his>> wad of gum onto the grass" : "tosses <<his>> cigarette aside">>. <<if _whitney.dom gte 16>> <<He>> grabs you by the wrists, pulling you along as <<he>> walks backwards towards the bench. <<He>> sits, pulling you down on top of <<him>>. "You look even better this close up," <<he>> says before pulling you in for a kiss. @@ -4332,7 +4647,7 @@ You press forward, putting your hands on <<his>> waist and pulling yourself clos <br><br> <<whitneyoptions>> <<else>> - "Come on, hurry up and finish already ,you useless shit." + "Come on, hurry up and finish already, you useless shit." <br><br> <<He>> locks eyes with you, and the speed of <<his>> assault increases. <<if $player.penisExist and $player.vaginaExist>> @@ -4379,7 +4694,7 @@ You press forward, putting your hands on <<his>> waist and pulling yourself clos <</if>> <</if>> <<else>> - Whitney lets out a sigh. "Not today, you needy little shit. Not in the mood." + Whitney lets out a sigh and shakes you off. "Not today, you needy little shit. Not in the mood." <br><br> <<whitneyoptions>> <</if>> @@ -4396,7 +4711,7 @@ You press forward, putting your hands on <<his>> waist and pulling yourself clos <br><br> <<if $whitneyrescued and $whitneyRescueTalk is undefined>> <<set $whitneyRescueTalk to 1>> - <<He>> throws <<his>> cigarette to the ground, and steps on it. "Why?" <<He>> looks you right in the eyes. + <<He>> <<print playerBellyVisible() ? "spits <<his>> wad of gum onto the ground" : "throws <<his>> cigarette to the ground, and steps on it.">> "Why?" <<He>> looks you right in the eyes. <br><br> <<if $speech_attitude is "meek">> "W...well, I was just worr-" @@ -4406,8 +4721,7 @@ You press forward, putting your hands on <<his>> waist and pulling yourself clos "I was just concer-" <</if>><<He>> grabs you, cutting you short. <br><br> - "Why the fuck did you save me? After everything I did to you?" You think you can see tears welling in <<his>> eyes. "I tied you up, and got ready to sell you. You could have just let them take me, but you fucking didn't. - What the fuck is wrong with you? Any sane person would have..." + "Why the fuck did you save me? After everything I did to you?" You think you can see tears welling in <<his>> eyes. "I tied you up, and got ready to sell you. You could have just let them take me, but you fucking didn't. What the fuck is wrong with you? Any sane person would have..." <br><br> <<He>> stops <<himself>> and slowly lets you go. <<He>> turns and starts to quickly walk away. "Honestly. You don't make any fucking sense." <<npcincr Whitney love 3>><<gglove>> <br><br> @@ -4516,7 +4830,7 @@ You press forward, putting your hands on <<his>> waist and pulling yourself clos <<he>> says back in a mocking tone. "Fucking killjoy." <<He>> stops and looks at you for a moment, and drops the few coins <<he>> picked up back into the fountain. <</if>> <br><br> -The two of you walk back to the bench under the tree. <<He>> lights another cigarette, staying silent for the next few minutes. +The two of you walk back to the bench under the tree. <<He>> <<print playerBellyVisible() ? "sticks <<his>> bubblegum on the back of the bench. <<He>> stays silent as <<he>> unwraps a fresh piece of gum and pops it in <<his>> mouth." : "lights another cigarette, staying silent for the next few minutes.">> <br><br> <<if $whitneyromance is 1>> "<<print either( @@ -4529,7 +4843,7 @@ The two of you walk back to the bench under the tree. <<He>> lights another ciga <br><br> <<whitneyoptions>> <<else>> - "Mind your own business, slut," <<he>> finally answers. "And stop bothering me." <<He>> throws <<his>> cigarette into the fountain, and walks away, leaving you alone under the tree. + "Mind your own business, slut," <<he>> finally answers. "And stop bothering me." <<He>> <<print playerBellyVisible() ? "spits <<his>> gum" : "throws <<his>> cigarette">> into the fountain, and walks away, leaving you alone under the tree. <br><br> <<whitneyexit>> <</if>> @@ -4607,7 +4921,7 @@ The two of you walk back to the bench under the tree. <<He>> lights another ciga <</if>> <</if>> <<if $rng gte 98>> - A <<if maleChance() lte random(1,100)>>man<<else>>woman<</if>> walking by takes notice, and quickly reverses their direction. Whitney gives them a smug smile. + A <<if maleChance() lte random(1,100)>>man<<else>>woman<</if>> walking by takes notice, and quickly reverses direction. Whitney gives them a smug smile. <</if>> <<effects>> @@ -4634,7 +4948,7 @@ The two of you walk back to the bench under the tree. <<He>> lights another ciga <<clotheson>> - <<tearful>> Whitney helps you stand from the bench. <<He>> pulls a cigarette out of <<his>> shirt pocket, still holding you with <<his>> other arm. + <<tearful>> Whitney helps you stand from the bench. <<He>> pulls a <<print playerBellyVisible() ? "stick of gum" : "cigarette">> out of <<his>> shirt pocket, still holding you with <<his>> other arm. <<llust>> <br><br> @@ -4777,7 +5091,7 @@ Before long, you're home. "Don't worry, I'm not gonna shove you in this time," <<he>> laughs. "Aren't I nice?" <br> <<if $phase gte 2>> - <<He>> kicks you in the <<if playerBellyVisible()>>nose<<else>>gut<</if>> as <<he>> leaves, knocking you back down.<<pain 2>><<gpain>> + <<He>> kicks you in the <<print playerBellyVisible() ? "nose" : "gut">> as <<he>> leaves, knocking you back down.<<pain 2>><<gpain>> <<else>> <<He>> shoves past you and disappears down the hallway. <</if>> @@ -6078,7 +6392,7 @@ You approach the delinquents. They're noisier up close. Whitney leers at you, <<link [[Next|Whitney Pub Chastity]]>><</link>> <br> <<else>> - "You're lucky," <<he>> whispers. "Got in a fight here last week. Almost got booted out. Now I gotta mind my manners." <<He>> sinks <<his>> hand lower and + "You're lucky," <<he>> whispers. "Got in a fight here last week. Almost got booted out. Now I gotta mind my manners." <<He>> sinks <<his>> hand lower and <<if $worn.genitals.name is "chastity parasite">> squeezes your chastity parasite. <<elseif $player.penisExist>> @@ -6903,7 +7217,7 @@ You watch <<him>> skulk into an alley, leaving you alone. <<if $orgasmcurrent is 0>> <<He>> frowns at you. "Make up your mind, you indecisive <<bitch>>." <<else>> - <<He>> frowns at you. "Hope your feeling better, slut." <<llove>><<npcincr Whitney love -1>> + <<He>> frowns at you. "Hope you're feeling better, slut." <<llove>><<npcincr Whitney love -1>> <</if>> <</if>> <br><br> @@ -6969,7 +7283,7 @@ Bailey doesn't allow cigarettes in the orphanage. :: Whitney Orphanage Loft Take <<effects>> -You take the packet. Whitney blows smoke in your face, and laughs as you cough. +You take the packet. <<print playerBellyVisible() ? "Whitney leans in close, blowing a bubble until it pops in your face. You flinch, causing <<him>> to laugh." : "Whitney blows smoke in your face and laughs as you cough.">> <br><br> <<whitneyoptions>> @@ -6993,7 +7307,7 @@ Whitney laughs as you take the packet. "Whatever you say, slut. Your mouth has o :: Whitney Orphanage Loft 3 <<effects>> -You tell Whitney that Bailey confiscated the cigarettes. <<He>> tilts <<his>> head up, and blows a puff of smoke into the air above. "I knew a dumb slut like you would get caught," <<he>> says. "That's why I have another plan. My <<if $pronoun is "m">>uncle<<else>>aunt<</if>> is a handy sort, and said they'd help." +You tell Whitney that Bailey confiscated the cigarettes. <<He>> <<print playerBellyVisible() ? "chews <<his>> gum loudly" : "tilts <<his>> head up and blows a puff of smoke into the air above">>. "I knew a dumb slut like you would get caught," <<he>> says. "That's why I have another plan. My <<if $pronoun is "m">>uncle<<else>>aunt<</if>> is a handy sort, and said they'd help." <br><br> "They're charging though. <span class="gold">£2000</span>. You'll need to fork up the cash." <br><br> @@ -7059,7 +7373,7 @@ Whitney examines the money a moment before squirrelling it away. "Let's go see m You leave the park with Whitney, enduring the occasional grope. When you reach Cliff Street, <<he>> pushes you against a wall, in view of the customers in a nearby cafe. <br><br> -"I know you were waving your ass like that intentionally," <<he>> says, grabbing your <<bottom>> and moving in to kiss you. Some in the cafe watch openly. One, a very tall <<if $pronoun is "m">>man<<else>>woman<</if>>, makes a tutting motion, and looks away. +"I know you were waving your ass like that intentionally," <<he>> says, grabbing your <<bottom>> and moving in to kiss you. Some in the cafe watch openly. One, a very tall <<if $pronoun is "m">>man<<else>>woman<</if>>, makes a tutting motion and looks away. <br><br> <<link [[Kiss|Whitney Orphanage Loft Kiss]]>><<arousal 600>><</link>><<kissvirginitywarning>><<garousal>> @@ -7070,7 +7384,7 @@ You leave the park with Whitney, enduring the occasional grope. When you reach C :: Whitney Orphanage Loft Kiss <<effects>> -You kiss Whitney, letting <<his>> tongue invade your mouth, and <<his>> fringe tickle your nose.<<takeKissVirginity "Whitney" `($whitneyromance is 1?"loveInterest":"romantic")`>> +You kiss Whitney, letting <<his>> tongue invade your mouth, and <<his>> fringe tickles your nose.<<takeKissVirginity "Whitney" `($whitneyromance is 1?"loveInterest":"romantic")`>> <br><br> <<He>> steps back, keeping one arm around you, and looks at the cafe. "Our <<personsimple>> is waiting in there," <<he>> says. "They're a cunt. Just keep that in mind." @@ -7082,10 +7396,10 @@ You kiss Whitney, letting <<his>> tongue invade your mouth, and <<his>> fringe t :: Whitney Orphanage Loft Pull <<effects>> -You pull away from Whitney, but <<he>> bites your now-exposed neck instead, laughing at your yelp. +You pull away from Whitney, but <<he>> bites your now-exposed neck instead, laughing as you yelp. <br><br> -<<He>> steps back, keeping one arm around you, and looks at the cafe. "Our <<personsimple>> is waiting in there," <<he>> says. "They're a cunt. Just keep that in mind." +<<He>> steps back, keeping one arm around you, and looks at the cafe. "Our <<personsimple>> is waiting in there," <<he>> says. "<<Hes>> a cunt. Just keep that in mind." <br><br> <<link [[Next|Whitney Orphanage Loft Cafe]]>><</link>> @@ -7098,7 +7412,7 @@ You pull away from Whitney, but <<he>> bites your now-exposed neck instead, laug The smell of fried fish and chips greets you as the door swings open. The tall <<personsimple>> glances at Whitney, then observes you. <br><br> -<<if $pronoun is "m">>"Uncle,"<<else>>"Auntie,"<</if>> Whitney says, taking a seat opposite <<him>>. <<He>> pulls the chair out beside <<him>>, and sits you beneath a landscape portrait of a seafaring vessel. "This is my <<if $player.gender_appearance is "m">>boyfriend<<else>>girlfriend<</if>>." +<<if $pronoun is "m">>"Uncle,"<<else>>"Auntie,"<</if>> Whitney says, taking a seat opposite <<him>>. <<He>> pulls the chair out beside <<him>>, and sits you beneath a landscape portrait of a seafaring vessel. "This is my <<girlfriend>>." <br><br> Whitney's <<if $pronoun is "m">>uncle<<else>>aunt<</if>> watches you over a sip of <<his>> beer. One of <<his>> legs juts from beneath the table, with a lanky arm resting on <<his>> knee. The resemblance is subtle. @@ -7117,7 +7431,7 @@ Whitney's <<if $pronoun is "m">>uncle<<else>>aunt<</if>> watches you over a sip <<if $speech_attitude is "meek">> "Hello," you say. "Pleased to meet you." <<elseif $speech_attitude is "bratty">> - "Hey," you say." + "Hey," you say. <<else>> "Hello," you say. <</if>> @@ -7129,10 +7443,10 @@ Whitney's <<if $pronoun is "m">>uncle<<else>>aunt<</if>> nods in response. "That thing we talked about," Whitney says. "I brought the money. Well, this whore did." <br><br> -The older relative spits out <<his>> drink, and glares at <<his>> <<if $pronoun is "m">>nephew<<else>>neice<</if>>. "What's the matter with you?" <<His>> voice is deep, rumbling like a distant ocean. "Don't talk about your <<if $player.gender_appearance is "m">>boyfriend<<else>>girlfriend<</if>> like <<pshes>> a piece of meat." +The older <<if $pronoun is "m">>man<<else>>woman<</if>> spits out <<his>> drink and glares at <<his>> <<if $pronoun is "m">>nephew<<else>>niece<</if>>. "What's the matter with you?" <<His>> voice is deep, rumbling like a distant ocean. "Don't talk about your <<girlfriend>> like <<pshes>> a piece of meat." <br><br> -Whitney laughs. "You're not refusing the dosh are you?" <<His>> <<if $pronoun is "m">>uncle<<else>>aunt<</if>> snatches it from <<his>> hands. +Whitney laughs. "You're not refusing the dosh, are you?" <<His>> <<if $pronoun is "m">>uncle<<else>>aunt<</if>> snatches it from <<his>> hands. <br><br> <<link [[Next|Whitney Orphanage Loft Cafe 2]]>><</link>> @@ -7147,10 +7461,10 @@ You hold out your hand. The older <<if $pronoun is "m">>man<<else>>woman<</if>> "That thing we talked about," Whitney says. "I brought the money. Well, this whore did." <br><br> -The older relative spits out <<his>> drink, and glares at <<his>> <<if $pronoun is "m">>nephew<<else>>neice<</if>>. "What's the matter with you?" <<His>> voice is deep, rumbling like a distant ocean. "Don't talk about your <<if $player.gender_appearance is "m">>boyfriend<<else>>girlfriend<</if>> like <<pshes>> a piece of meat." +The older <<if $pronoun is "m">>man<<else>>woman<</if>> spits out <<his>> drink and glares at <<his>> <<if $pronoun is "m">>nephew<<else>>niece<</if>>. "What's the matter with you?" <<His>> voice is deep, rumbling like a distant ocean. "Don't talk about your <<girlfriend>> like <<pshes>> a piece of meat." <br><br> -Whitney laughs. "You're not refusing the dosh are you?" <<His>> <<if $pronoun is "m">>uncle<<else>>aunt<</if>> snatches it from <<his>> hands. +Whitney laughs. "You're not refusing the dosh, are you?" <<His>> <<if $pronoun is "m">>uncle<<else>>aunt<</if>> snatches it from <<his>> hands. <br><br> <<link [[Next|Whitney Orphanage Loft Cafe 2]]>><</link>> @@ -7159,16 +7473,16 @@ Whitney laughs. "You're not refusing the dosh are you?" <<His>> <<if $pronoun is :: Whitney Orphanage Loft Cafe Silent <<effects>> -You remain silent. "I didn't think you'd end up with a shy one." Whitney's <<if $pronoun is "m">>uncle<<else>>aunt<</if>> says, looking at <<his>> <<if $pronoun is "m">>nephew<<else>>neice<</if>>. <<His>> voice is deep, rumbling like a distant sea. +You remain silent. "I didn't think you'd end up with a shy one." Whitney's <<if $pronoun is "m">>uncle<<else>>aunt<</if>> says, looking at <<his>> <<if $pronoun is "m">>nephew<<else>>niece<</if>>. <<His>> voice is deep, rumbling like a distant sea. <br><br> "That thing we talked about," Whitney says. "I brought the money. Well, this whore did." <br><br> -The older <<if $pronoun is "m">>man<<else>>woman<</if>> spits out <<his>> drink and glares at Whitney. "What's the matter with you? Don't talk about your <<if $player.gender_appearance is "m">>boyfriend<<else>>girlfriend<</if>> like <<pshes>> a piece of meat." +The older <<if $pronoun is "m">>man<<else>>woman<</if>> spits out <<his>> drink, and glares at <<his>> <<if $pronoun is "m">>nephew<<else>>niece<</if>>. "What's the matter with you?" <<His>> voice is deep, rumbling like a distant ocean. "Don't talk about your <<girlfriend>> like <<pshes>> a piece of meat." <br><br> -Whitney laughs. "You're not refusing the dosh are you?" <<His>> <<if $pronoun is "m">>uncle<<else>>aunt<</if>> snatches it from <<his>> hands. +Whitney laughs. "You're not refusing the dosh, are you?" <<His>> <<if $pronoun is "m">>uncle<<else>>aunt<</if>> snatches it from <<his>> hands. <br><br> <<link [[Next|Whitney Orphanage Loft Cafe 2]]>><</link>> @@ -7180,7 +7494,7 @@ Whitney laughs. "You're not refusing the dosh are you?" <<His>> <<if $pronoun is "I'll get straight to it," Whitney's <<if $pronoun is "m">>uncle<<else>>aunt<</if>> says. "After my food. I've already ordered." <br><br> -Whitney plucks a menu from a nearby stand, and passes it to you. "I fancy haddock," <<he>> says. "What about you? My treat." +Whitney plucks a menu from a nearby stand and passes it to you. "I fancy haddock," <<he>> says. "What about you? My treat." <br><br> You look at the menu. @@ -7210,7 +7524,7 @@ You look at the menu. "Is there a vegetarian option?" you ask. <</if>> <br><br> -Whitney's <<if $pronoun is "m">>uncle<<else>>aunt<</if>> shakes <<his>> head. "Even the chips are fried in animal fat." <<He>> reaches into <<his>> pocket, and produces a half-full packet of mints. "You can have these." +Whitney's <<if $pronoun is "m">>uncle<<else>>aunt<</if>> shakes <<his>> head. "Even the chips are fried in animal fat." <<He>> reaches into <<his>> pocket and produces a half-full packet of mints. "You can have these." <br><br> <<link [[Eat the mints|Whitney Orphanage Loft Cafe 3]]>><<set $phase to 5>><</link>> @@ -7318,11 +7632,11 @@ Whitney's <<if $pronoun is "m">>uncle<<else>>aunt<</if>> finishes chewing before <br><br> <<if $phase is 5>> - "It's a shithole," Whitney nods, stealing one of your mints. + "It's a shithole." Whitney nods, stealing one of your mints. <<elseif $phase isnot 0>> - "It's a shithole," Whitney nods, stealing one of your chips despite having a plateful of <<his>> own. + "It's a shithole." Whitney nods, stealing one of your chips despite having a plateful of <<his>> own. <<else>> - "It's a shithole," Whitney nods. + "It's a shithole." Whitney nods. <</if>> <br><br> <<His>> <<if $pronoun is "m">>uncle<<else>>aunt<</if>> doesn't respond, and continues eating <<his>> meal. @@ -7335,7 +7649,7 @@ Whitney's <<if $pronoun is "m">>uncle<<else>>aunt<</if>> finishes chewing before <<effects>> <<if $speech_attitude is "meek">> - "Can you tell me a little about your <<if $pronoun is "m">>nephew<<else>>niece?<</if>>" you ask. + "Can you tell me a little about your <<if $pronoun is "m">>nephew<<else>>niece<</if>>?" you ask. <<elseif $speech_attitude is "bratty">> "Tell me something about Whitney," you say. <<else>> @@ -7361,10 +7675,10 @@ Whitney's face turns bright red. "I don't have any plush toys, liar!" Cutlery rattles onto empty plates. "Right," Whitney's <<if $pronoun is "m">>uncle<<else>>aunt<</if>> says. "No sense waiting. I'll get the tools from my van, then you can show me where this orphanage is." -You leave the cafe with the pair, and, after a brief stop to collect equipment, soon arrive at Domus Street. The older <<if $pronoun is "m">>man<<else>>woman<</if>> recognises the old building as the orphanage at once. <<His>> eyes linger on it a moment, but then <<he>> looks up, and around. +You leave the cafe with the pair and, after a brief stop to collect equipment, soon arrive at Domus Street. The older <<if $pronoun is "m">>man<<else>>woman<</if>> recognises the old building as the orphanage at once. <<His>> eyes linger on it a moment, but then <<he>> looks up, and around. <br><br> -Without further hesitation, <<he>> approaches the side of the orphanage, and clambers up a drainpipe. <<He>> disappears through an open window, into the loft. +Without further hesitation, <<he>> approaches the side of the orphanage, and clambers up a drainpipe. <<He>> disappears through an open window into the loft. <br><br> <<link [[Next|Whitney Orphanage Loft Cafe 6]]>><</link>> @@ -7376,11 +7690,11 @@ Without further hesitation, <<he>> approaches the side of the orphanage, and cla "Let's go up there," Whitney says. "I want to see what the old bugger is up to." <br><br> -You enter the orphanage, and show Whitney the way to the loft. "What a gloomy fucking place," <<he>> comments, staring up the ladder. +You enter the orphanage and show Whitney the way to the loft. "What a gloomy fucking place," <<he>> comments, staring up the ladder. <br><br> <<if $worn.lower.skirt is 1>> - <<He>> looks pointedly at your skirt, and grins. "You first." + <<He>> looks pointedly at your skirt and grins. "You first." <br><br> <<link [[Go first, but stay modest|Whitney Orphanage Loft Modest]]>><</link>> @@ -7430,7 +7744,7 @@ You climb the ladder, but keep a hand between your legs so Whitney can't see up :: Whitney Orphanage Loft Flaunt <<effects>> -You climb the ladder, giving your <<bottom>> and exaggerated wiggle as you do, making sure your skirt flares revealingly, exposing your <<print $worn.under_lower.name>>. +You climb the ladder, giving your <<bottom>> an exaggerated wiggle as you do, making sure your skirt flares revealingly, exposing your <<print $worn.under_lower.name>>. <<exhibitionism1>> As you reach the top, Whitney rushes behind you, pinning you between the ladder and <<his>> body. "You're in the way, slut," <<he>> says, grinding against your <<bottom>> and groping your <<breasts>>.<<gstress>><<ggarousal>><<stress 6>><<arousal 1200>> @@ -7445,7 +7759,7 @@ You manage to squirm the rest of the way, leaving <<him>> to climb up after you. :: Whitney Orphanage Loft Flaunt Lewd <<effects>> -You climb the ladder, giving your <<bottom>> and exaggerated wiggle as you do, making sure your skirt flares revealingly, exposing your <<genitals>>. +You climb the ladder, giving your <<bottom>> an exaggerated wiggle as you do, making sure your skirt flares revealingly, exposing your <<genitals>>. <<exhibitionism3>> As you reach the top, Whitney rushes behind you, pinning you between the ladder and <<his>> body. "You're in the way, slut," <<he>> says, grinding against your <<bottom>> and groping your <<breasts>>.<<gstress>><<ggarousal>><<stress 6>><<arousal 1200>> @@ -7475,7 +7789,7 @@ There's no way that wiggling isn't deliberate. :: Whitney Orphanage Loft Slap <<effects>> -You reach up and slap Whitney through <<his>> <<print $NPCList[0].clothes.lower.name>>. <<He>> doesn't flinch, but laughs. "I knew you wouldn't resist, slut." +You reach up and slap Whitney through <<his>> <<print $NPCList[0].clothes.lower.name>>. <<He>> doesn't flinch, but laughs. "I knew you couldn't resist, slut." <<promiscuity1>> <<link [[Next|Whitney Orphanage Loft 7]]>><</link>> @@ -7487,7 +7801,7 @@ You reach up and slap Whitney through <<his>> <<print $NPCList[0].clothes.lower. Whitney strides through the gloomy loft, in the wrong direction at first, but at last finds the right room. <<His>> <<if $pronoun is "m">>uncle<<else>>aunt<</if>> is nowhere to be seen, but a length of cable has been attached to the wall opposite the window. <br><br> -<<He>> looks outside, down at the hanging cable. It trails across the ground, and disappears into a hedge. +<<He>> looks outside, down at the hanging cable. It trails across the ground and disappears into a hedge. <br><br> The two of you are alone. @@ -7532,7 +7846,7 @@ The two of you are alone. There's a pause, then the wire shakes. A basket emerges from the branches, sliding down the gentle incline of the wire. It glides through the window, until it bumps against the opposite wall. <br><br> -Whitney reaches in, and retrieves a packet of cigarettes. "Nice," <<he>> says, lighting up at once. +Whitney reaches in, and retrieves a packet of cigarettes. "Nice," <<he>> says. <<print playerBellyVisible() ? "<<He>> goes to light one, but after a sidelong glance at your belly, <<he>> reluctantly puts out the lighter" : "<<He>> lights up at once">>. <br><br> <<link [[Next|Whitney Orphanage Loft 9]]>><</link>> @@ -7542,7 +7856,7 @@ Whitney reaches in, and retrieves a packet of cigarettes. "Nice," <<he>> says, l :: Whitney Orphanage Loft 9 <<effects>> -Whitney smokes at the window, trying to peer through the branches of the tree. You can't see anything. "We should go see what the old bugger did on the other end," <<he>> says, flicking the cigarette butt onto the grass outside. +Whitney <<print playerBellyVisible() ? "looks out" : "smokes at">> the window, trying to peer through the branches of the tree. You can't see anything. "We should go see what the old bugger did on the other end," <<he>> says, <<print playerBellyVisible() ? "draping an arm across your shoulders" : "flicking the cigarette butt onto the grass outside">>. <br><br> You leave the Orphanage with Whitney. <<Hes>> unaware of how to reach the other side of that tree, so you lead the way through the alleys, until you come to an old telegraph pole. Whitney's <<if $pronoun is "m">>uncle<<else>>aunt<</if>> hangs from the top. @@ -7578,7 +7892,7 @@ Whitney throws an arm around your shoulder. "Course <<pshe>> is." You return to the orphanage, and tell the residents in the living room that you have something to show them. Others join as you pass their rooms, summoned by the sound of feet. <br><br> -You reach the loft, and crowd into the room with the new apparatus. A murmur of interest rises as the wire shakes, and a basket appears between the branches. You grasp it as it enters the window, and place it on the ground for all to see. +You reach the loft and crowd into the room with the new apparatus. A murmur of interest rises as the wire shakes, and a basket appears between the branches. You grasp it as it enters the window, and place it on the ground for all to see. <br><br> It's full of sweets. Chocolates, mints, sherbert, and others that you don't get a chance to see. The orphans empty the basket in a flash. They're so busy passing them out, they take a moment to recognise the firecrackers that were hidden beneath. The eyes of the more mischievous residents light up. @@ -7591,7 +7905,7 @@ It's full of sweets. Chocolates, mints, sherbert, and others that you don't get :: Whitney Orphanage Loft 12 <<effects>> -The residents leave once the basket is emptied, leaving you alone. You notice a scrap of paper at the bottom, marred by a cigarette burn. It otherwise appears blank, until you turn it over, and find writing. +The residents leave once the basket is emptied, leaving you alone. You notice a scrap of paper at the bottom, marred by a cigarette burn. It otherwise appears blank, until you turn it over and find writing. <br><br> <<link [[Read|Whitney Orphanage Loft 13]]>><</link>> diff --git a/game/overworld-town/special-whitney/park.twee b/game/overworld-town/special-whitney/park.twee index 4c50ee7ac84cf215e450321aa27c109bc6a9e727..9dd6a3fb6f6295e129e3ab064fc47d3f8a56d5df 100644 --- a/game/overworld-town/special-whitney/park.twee +++ b/game/overworld-town/special-whitney/park.twee @@ -8,6 +8,7 @@ <br> :: Whitney Milkshake Share + <<wearProp "milkshake">> <<if $speech_attitude is "meek">> "I-I thought we could maybe share?" You smile, offering <<him>> the drink. Whitney wraps an arm around you. You spend the next twenty minutes leaning against <<him>>, occasionally taking sips. @@ -23,12 +24,12 @@ Whitney has a smug look as <<he>> keeps the cup out of reach above your head. <br><br> - <<link [[Let it happen|Whitney Milkshake Allow]]>><</link>> + <<link [[Let it happen|Whitney Milkshake Allow]]>><<handheldon>><</link>> <br> - <<link [[Protest|Whitney Milkshake Protest]]>><</link>> + <<link [[Protest|Whitney Milkshake Protest]]>><<handheldon>><</link>> <br> <<if $promiscuity gte 35>> - <<link [[Distract|Whitney Milkshake Distract]]>><</link>><<promiscuous3>> + <<link [[Distract|Whitney Milkshake Distract]]>><<handheldon>><</link>><<promiscuous3>> <br> <</if>> @@ -193,7 +194,7 @@ <<ejaculation>> <<He>> leans back, shoving you backwards away from <<his>> lap. "Get yourself cleaned up before somebody sees you, slut. Don't want anybody else getting any ideas." - Whitney lights a cigarette and stands, fixing <<his>> clothes. + Whitney <<print playerBellyVisible() ? "stands, fixing <<his>> clothes. <<He>> waits until you're a healthy distance away before lighting a cigarette" : "lights a cigarette and stands, fixing <<his>> clothes">>. <<npcincr Whitney lust -20>><<llust>> <<elseif $enemyhealth lte 0>> You shove Whitney back, before scrambling backwards and getting to your feet. <<tearful>> you flee. Whitney is gone when you look back. @@ -278,7 +279,7 @@ :: Whitney Milkshake Give Whitney looks taken aback as you hand <<him>> the milkshake, and roughly wraps <<his>> arm around your shoulder. - You spend the next twenty minutes leaning against <<him>>, idly chatting while Whitney drinks and smokes. + You spend the next twenty minutes leaning against <<him>>, idly chatting while Whitney <<print playerBellyVisible() ? "drinks" : "drinks and smokes">>. When <<hes>> done, <<he>> leans over and kisses you with a surprising softness. <<He>> tastes like vanilla and cigarettes. <br><br> @@ -292,7 +293,7 @@ :: Whitney Milkshake Fail <<set _whitney to $NPCName[$NPCNameList.indexOf("Whitney")]>> Whitney eyes the milkshake in your hand. You hesitate, but brace yourself and wordlessly offer the drink. <<He>> stares at you silently. - You start to retract the drink, but in a flash Whitney has splashed it over your face. + You start to retract the drink, but in a flash, Whitney splashes it over your face. <span class="red">It drips down to soak through your clothes.</span><<trauma 3>><<stress 8>><<gtrauma>><<ggstress>> <br><br> @@ -531,7 +532,7 @@ The <<fullGroup>> look between each other, before hastily pulling out their wall <<He>> laughs. "Like you have a choice." <</if>> - There's a long silence, interspersed with <<if $weather is "rain">>rainfall and<</if>> Whitney taking deep drags of <<his>> cigarette. <<He>> breaks it with a sigh. + There's a long silence, interspersed with <<if $weather is "rain">>rainfall and<</if>> Whitney <<print playerBellyVisible() ? "smacking <<his>> gum" : "taking deep drags of <<his>> cigarette">>. <<He>> breaks it with a sigh. <br><br> <<if $whitneyromance is 1>> @@ -541,9 +542,9 @@ The <<fullGroup>> look between each other, before hastily pulling out their wall <</if>> <br><br> - <<He>> goes back to <<his>> cigarette. There's no further argument. + <<He>> goes back to <<his>> <<print playerBellyVisible() ? "gum" : "cigarette">>. There's no further argument. <<else>> - You quietly pocket the money. Whitney glances at you between puffs of smoke. + You quietly pocket the money. Whitney glances at you <<print playerBellyVisible() ? "between smacks of gum" : "between puffs of smoke">>. <br><br> <<if $whitneyromance is 1>> @@ -700,4 +701,4 @@ Despite the chill in the air, you're sweating by the end. <br><br> <<endevent>> -<<destinationeventend>> \ No newline at end of file +<<destinationeventend>> diff --git a/game/overworld-town/special-whitney/street.twee b/game/overworld-town/special-whitney/street.twee index 4996d5066ba5a581393b81ae9bc571ee81bd44fc..5c74962785620d8fad809a85e66d85a451eefe7b 100644 --- a/game/overworld-town/special-whitney/street.twee +++ b/game/overworld-town/special-whitney/street.twee @@ -750,7 +750,7 @@ <<He>> nips your ear and shoves you aside, laughing as <<he>> leaves. <<else>> - <<He>> slumps against a wall and lights a cigarette. <<His>> breathing slowly steadies.<<npcincr Whitney lust -20>><<llust>> + <<He>> slumps against a wall and <<print playerBellyVisible() ? "pulls out a cigarette, but a glance at your belly convinces <<him>> not to light it" : "lights a cigarette">>. <<His>> breathing slowly steadies.<<npcincr Whitney lust -20>><<llust>> <br><br> "Thanks for the easy lay, slut." <<He>> leads <<his>> friends out of the alley, laughing as they go. You're left alone, lying on the pavement. @@ -758,7 +758,7 @@ <<elseif $enemyhealth lte 0>> You push Whitney away. <<His>> friends taunt you as you flee, but none give chase.<<npcincr Whitney dom -1>><<ldom>> <<else>> - Whitney shoves you away. "Fine," <<he>> grumbles. <<He>> lights a cigarette and stomps off. <<His>> friends ridicule you, but otherwise leave you be. + Whitney shoves you away. "Fine," <<he>> grumbles. <<He>> <<print playerBellyVisible() ? "pulls out" : "lights">> a cigarette and stomps off. <<His>> friends ridicule you, but otherwise leave you be. <</if>> <br><br> @@ -1020,7 +1020,7 @@ Held by the ankles, you're forced over the edge of the dumpster. Your fall is cu You turn your face away. <<He>> grasps your hair, trying to hold you still, but you're persistent. <<He>> takes the hint eventually. <br><br> - "Fucking fine," <<he>> sighs, slouching against the wall. <<He>> lights a cigarette and turns away from you. You take it as permission to leave. + "Fucking fine," <<he>> sighs, slouching against the wall. <<He>> <<print playerBellyVisible() ? "flips you off" : "lights a cigarette">> and turns away from you. You take it as permission to leave. <</if>> <br><br> @@ -3111,7 +3111,7 @@ Whitney smirks at you, more interested in your expression than your newly-expose <br> <<link [[Kick|Street Bully Roof Kick]]>><<stress -12>><</link>><<llstress>> <br> -<<link [[Ignore|Street Bully Roof Ignore]]>><</link>><<gtrauma>> +<<link [[Ignore|Street Bully Roof Ignore]]>><<trauma 6>><</link>><<gtrauma>> <br> diff --git a/game/overworld-town/special-whitney/widgets.twee b/game/overworld-town/special-whitney/widgets.twee index e20898ed1297a70689aceef48ebf1238f32992c0..a8f2fa1b03b6531c6d4309a132ec8721605504d7 100644 --- a/game/overworld-town/special-whitney/widgets.twee +++ b/game/overworld-town/special-whitney/widgets.twee @@ -58,10 +58,20 @@ <<else>> <<if $whitneyromance is 1 or $NPCName[$NPCNameList.indexOf("Whitney")].dom gte 10>> "What's my favourite slut doing here?" + <<print playerBellyVisible() ? + "<<He>> glances at your baby bump. Without you asking, <<he>> puts out the cigarette, popping a stick of gum in <<his>> mouth instead." : + "<<He>> offers up a smile." + >> <<elseif $whitneyrescued>> - <<He>> looks at you, but quickly looks away. + <<print playerBellyVisible() ? + "<<He>> looks at you just long enough to take in your baby bump, then quickly looks away. <<He>> drops <<his>> cigarette and pops a stick of gum in <<his mouth instead." : + "<<He>> looks at you, but quickly looks away." + >> <<else>> - <<He>> looks annoyed. + <<print playerBellyVisible() ? + "<<He>> looks annoyed, but <<he>> still puts out <<his>> cigarette when <<he>> catches sight of your baby bump. <<He>> wordlessly pops a stick of gum in <<his>> mouth instead." : + "<<He>> looks annoyed." + >> <</if>> <</if>> <<else>> @@ -76,7 +86,7 @@ <<elseif $location is "park" and $rng gte 50>> <<He>> stares at the fountain. <<else>> - <<He>> takes a drag of <<his>> cigarette. + <<He>> <<print playerBellyVisible() ? "blows a bubble. It pops with a snap" : "takes a drag of <<his>> cigarette">>. <</if>> <</if>> <br><br> @@ -121,6 +131,10 @@ <<askicon>><<link [[Ask if something's wrong|Whitney Ask]]>><<set $daily.whitney.ask to 1>><</link>> <br> <</if>> + <<if !$daily.whitney.smoke and $location is "park" and !playerIsPregnant()>> + <<smokeicon>><<link [[Ask for a smoke|Whitney Park Cigarette Smoke]]>><<set $phase to 2>><<npcincr Whitney love 1>><</link>><<glove "Whitney">> + <br> + <</if>> <<if !$daily.whitney.chastityBeg and $worn.genitals.origin is "Whitney">> <<templeicon "pray">><<link [[Beg for release|Whitney Chastity Beg]]>><<set $daily.whitney.chastityBeg to 1>><</link>> <br> @@ -130,17 +144,17 @@ <br> <</if>> <<if $loft_known is 1 and $loft_whitney is undefined and $whitney_bailey_met gte 1>> - <<link [[Tell Whitney about the orphanage loft|Whitney Orphanage Loft]]>><</link>> + <<socialiseicon>><<link [[Tell Whitney about the orphanage loft|Whitney Orphanage Loft]]>><</link>> <br> <</if>> <<if $loft_whitney is 3>> - <<link [[Tell Whitney that Bailey took the cigarettes|Whitney Orphanage Loft 3]]>><<set $loft_whitney to 5>><</link>> + <<socialiseicon>><<link [[Tell Whitney that Bailey took the cigarettes|Whitney Orphanage Loft 3]]>><<set $loft_whitney to 5>><</link>> <br> <<elseif $loft_whitney is 4>> - <<link [[Tell Whitney about the cigarette incident at the orphanage|Whitney Orphanage Loft 4]]>><<set $loft_whitney to 5>><</link>> + <<socialiseicon>><<link [[Tell Whitney about the cigarette incident at the orphanage|Whitney Orphanage Loft 4]]>><<set $loft_whitney to 5>><</link>> <br> <<elseif $loft_whitney is 5>> - <<link [[Remind Whitney about the orphanage loft|Whitney Orphanage Loft 5]]>><</link>> + <<socialiseicon>><<link [[Remind Whitney about the orphanage loft|Whitney Orphanage Loft 5]]>><</link>> <br> <</if>> <<whitneyoptionsleave>> diff --git a/game/overworld-underground/loc-sewers/main.twee b/game/overworld-underground/loc-sewers/main.twee index e01b34791ec6495db87b4d4a1b0b53aab9b3e10d..34b94558c9d8b225a8556a83319f4b9bad1937da 100644 --- a/game/overworld-underground/loc-sewers/main.twee +++ b/game/overworld-underground/loc-sewers/main.twee @@ -210,7 +210,7 @@ You are within the storm drain system, close to where it flows out into the sea. <<molested>> <<generate1>><<generate2>><<maninit>> <<npcClothesType $NPCList[0] "worker">><<npcClothesType $NPCList[1] "worker">> - <<set $leftarm to "bound">><<set $rightarm to "bound">><<upperruined>><<lowerruined>><<underruined>> + <<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>><<upperruined>><<lowerruined>><<underruined>><<handheldruined>> You awaken in a windowless room. A length of tubing is wrapped around your waist, binding your arms behind your back and suspending you from the ceiling. A <<fullGroup>> sit in front of you. "<<pShe>>'s awake," the <<person>> walks behind you and gives you a firm smack on your rear. "We get to keep anything we find on the job. So we're just gonna help ourselves to you. Don't try to resist." <br><br> <</if>> diff --git a/game/overworld-underground/loc-sewers/old-sewers.twee b/game/overworld-underground/loc-sewers/old-sewers.twee index 378780ef6673da5e52ae445e3221fb1b47bf68e8..e8938c7f2f5229ff175d994a4f5e8931d0edb470 100644 --- a/game/overworld-underground/loc-sewers/old-sewers.twee +++ b/game/overworld-underground/loc-sewers/old-sewers.twee @@ -410,7 +410,7 @@ You are in the old sewers. The walls are covered in huge spider webs. You reach into the web and tug out the candlestick. <<if $rng gte 81>> It's covered with sticky web. You pull it off, but it sticks to your hand. You try to pull it off your hand, but get your hands stuck together. - <<set $leftarm to "bound">><<set $rightarm to "bound">> + <<bind>> <</if>> <br><br> <<link [[Next|Sewers Webs]]>><</link>> diff --git a/game/overworld-underground/loc-underground/main.twee b/game/overworld-underground/loc-underground/main.twee index 78accc93e2c6c88202d56ccf8c3c248bc7a1f215..a5e1f5f5aa9f150cf2047a328bb5b07c2e1c2224 100644 --- a/game/overworld-underground/loc-underground/main.twee +++ b/game/overworld-underground/loc-underground/main.twee @@ -29,7 +29,7 @@ <</widget>> <<widget "undergroundCellOptions">> - <<ind>><<link [[Rest (1:00)|Underground Cell Rest]]>><<pass 1 hour>><<set $tiredness -= 1000>><</link>><<ltiredness>> + <<bedicon "zzz">><<link [[Rest (1:00)|Underground Cell Rest]]>><<pass 1 hour>><<set $tiredness -= 1000>><</link>><<ltiredness>> <br> <<if $undergroundbrothel.robin and !$undergroundbrothel.robinSpoke>> <<ind>><<link [[Talk to Robin (0:10)|Underground Cell Robin Talk]]>><<pass 10>><<stress -4>><<trauma -4>><<npcincr Robin trauma -2>><</link>><<lstress>><<ltrauma>><<lrtrauma>> diff --git a/game/special-exhibition/main.twee b/game/special-exhibition/main.twee index 0be1bf952297909a4dad777131b0c71af1d01d1a..503a6684423ae5132778b57ec7e54d286adba217 100644 --- a/game/special-exhibition/main.twee +++ b/game/special-exhibition/main.twee @@ -825,7 +825,7 @@ You crouch behind a dumpster and wait for the voices to pass. Unfortunately, the <<violence 1>> <<neutral 1>> <<molested>> - <<maninit>><<set $position to "wall">><<set $leftarm to "bound">><<set $rightarm to "bound">><<set $head to "bound">> + <<maninit>><<set $position to "wall">><<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>><<set $head to "bound">><<handheldruined>> <<set $timer to 16>> <</if>> <<effects>> @@ -3735,7 +3735,7 @@ You dart across the yard, and haul yourself up the wall. It looks like you're ne <<violence 1>> <<neutral 1>> <<molested>> - <<maninit>><<set $position to "wall">><<set $leftarm to "bound">><<set $rightarm to "bound">><<set $head to "bound">> + <<maninit>><<set $position to "wall">><<bind>><<set $head to "bound">> <</if>> <<effects>> <<effectsman>> diff --git a/img/body/mannequin/rightarmhold.png b/img/body/mannequin/rightarmhold.png new file mode 100644 index 0000000000000000000000000000000000000000..5f723efc4bbd7ee1340408575586aea4f259ddff Binary files /dev/null and b/img/body/mannequin/rightarmhold.png differ diff --git a/img/body/rightarmhold.png b/img/body/rightarmhold.png new file mode 100644 index 0000000000000000000000000000000000000000..7b4d295cf5a1f50de13e3a3d4dec95ef77b75748 Binary files /dev/null and b/img/body/rightarmhold.png differ diff --git a/img/bodyRed/rightarmhold.png b/img/bodyRed/rightarmhold.png new file mode 100644 index 0000000000000000000000000000000000000000..a5f49a96b1694732b87e5b36c10279f2dc72b68a Binary files /dev/null and b/img/bodyRed/rightarmhold.png differ diff --git a/img/clothes/handheld/backpack/back_acc.png b/img/clothes/handheld/backpack/back_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..487a983a8abbf9f7b565c9cff0c72987cd498201 Binary files /dev/null and b/img/clothes/handheld/backpack/back_acc.png differ diff --git a/img/clothes/handheld/backpack/back_gray.png b/img/clothes/handheld/backpack/back_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..9942285d53260b4ae4c5eb3eba66de92b01e5cf8 Binary files /dev/null and b/img/clothes/handheld/backpack/back_gray.png differ diff --git a/img/clothes/handheld/backpack/right_acc.png b/img/clothes/handheld/backpack/right_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..be53c97532d50c6cb92e87d76e0aff87b0a60fe1 Binary files /dev/null and b/img/clothes/handheld/backpack/right_acc.png differ diff --git a/img/clothes/handheld/backpack/right_cover_acc.png b/img/clothes/handheld/backpack/right_cover_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..be53c97532d50c6cb92e87d76e0aff87b0a60fe1 Binary files /dev/null and b/img/clothes/handheld/backpack/right_cover_acc.png differ diff --git a/img/clothes/handheld/backpack/right_cover_gray.png b/img/clothes/handheld/backpack/right_cover_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..94cc859e5072e88bcdf9e9a2faf1812d93ea3ad5 Binary files /dev/null and b/img/clothes/handheld/backpack/right_cover_gray.png differ diff --git a/img/clothes/handheld/backpack/right_gray.png b/img/clothes/handheld/backpack/right_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..8208ddf5787bf65c694544c6de11e55aa7549249 Binary files /dev/null and b/img/clothes/handheld/backpack/right_gray.png differ diff --git a/img/clothes/handheld/balloon/right_acc.png b/img/clothes/handheld/balloon/right_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..e0b8e70995a62499aedb9e12a20decb5508999a5 Binary files /dev/null and b/img/clothes/handheld/balloon/right_acc.png differ diff --git a/img/clothes/handheld/balloon/right_cover_acc.png b/img/clothes/handheld/balloon/right_cover_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..8a41bb93a80bf1d4ff501ceb10315d93e991cbc5 Binary files /dev/null and b/img/clothes/handheld/balloon/right_cover_acc.png differ diff --git a/img/clothes/handheld/balloon/right_cover_gray.png b/img/clothes/handheld/balloon/right_cover_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..0aa0f53ba443a8fb43b06e106114435f59df8fa8 Binary files /dev/null and b/img/clothes/handheld/balloon/right_cover_gray.png differ diff --git a/img/clothes/handheld/balloon/right_gray.png b/img/clothes/handheld/balloon/right_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..89736a8daf1f3e2d1f50c9690133b2407fd2ca0e Binary files /dev/null and b/img/clothes/handheld/balloon/right_gray.png differ diff --git a/img/clothes/handheld/balloonheart/right_acc.png b/img/clothes/handheld/balloonheart/right_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..0fd86cbc31632130ced68f5fe942ad57162fc74b Binary files /dev/null and b/img/clothes/handheld/balloonheart/right_acc.png differ diff --git a/img/clothes/handheld/balloonheart/right_cover_acc.png b/img/clothes/handheld/balloonheart/right_cover_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..0d794ea8c1b831a1d0cf25ab7c45ac256de925e9 Binary files /dev/null and b/img/clothes/handheld/balloonheart/right_cover_acc.png differ diff --git a/img/clothes/handheld/balloonheart/right_cover_gray.png b/img/clothes/handheld/balloonheart/right_cover_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..bb86eb1b9cac2036cc22646c14fa186bfdc84fcc Binary files /dev/null and b/img/clothes/handheld/balloonheart/right_cover_gray.png differ diff --git a/img/clothes/handheld/balloonheart/right_gray.png b/img/clothes/handheld/balloonheart/right_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..3478105be6b9cd887341f3c1473e212b88d16d04 Binary files /dev/null and b/img/clothes/handheld/balloonheart/right_gray.png differ diff --git a/img/clothes/handheld/cigarette/right.png b/img/clothes/handheld/cigarette/right.png new file mode 100644 index 0000000000000000000000000000000000000000..73f2a47af9707a6b8bcab391f2123f9808f3589b Binary files /dev/null and b/img/clothes/handheld/cigarette/right.png differ diff --git a/img/clothes/handheld/cigarette/right_acc.png b/img/clothes/handheld/cigarette/right_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..62ca07c7a1623af1fbc3eabe5a23cd2aa91f9484 Binary files /dev/null and b/img/clothes/handheld/cigarette/right_acc.png differ diff --git a/img/clothes/handheld/cigarette/right_cover.png b/img/clothes/handheld/cigarette/right_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..c4d3f02a228981a16df4bfdd80ec4f6c8e8804a7 Binary files /dev/null and b/img/clothes/handheld/cigarette/right_cover.png differ diff --git a/img/clothes/handheld/cigarette/right_cover_acc.png b/img/clothes/handheld/cigarette/right_cover_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..2f5ecb72f0ea46d5d9e103d792cb146cad62d520 Binary files /dev/null and b/img/clothes/handheld/cigarette/right_cover_acc.png differ diff --git a/img/clothes/handheld/cocoa/right.png b/img/clothes/handheld/cocoa/right.png new file mode 100644 index 0000000000000000000000000000000000000000..b3fb0e4e39c63cb0a40c2f956a992c3d3087c7bf Binary files /dev/null and b/img/clothes/handheld/cocoa/right.png differ diff --git a/img/clothes/handheld/cocoa/right_cover.png b/img/clothes/handheld/cocoa/right_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..ca13860b787d8c9699fa9dcdba0a10ad6502671d Binary files /dev/null and b/img/clothes/handheld/cocoa/right_cover.png differ diff --git a/img/clothes/handheld/featherduster/right.png b/img/clothes/handheld/featherduster/right.png new file mode 100644 index 0000000000000000000000000000000000000000..e4bd9427fb5e819361242ada2cfb578c6120de22 Binary files /dev/null and b/img/clothes/handheld/featherduster/right.png differ diff --git a/img/clothes/handheld/featherduster/right_cover.png b/img/clothes/handheld/featherduster/right_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..b61e112e1dfbbd923432807359b044f58c3d34bc Binary files /dev/null and b/img/clothes/handheld/featherduster/right_cover.png differ diff --git a/img/clothes/handheld/gingerbread/right.png b/img/clothes/handheld/gingerbread/right.png new file mode 100644 index 0000000000000000000000000000000000000000..8b1b6e3b7c5034953c0a18baab8c6ba37faed9eb Binary files /dev/null and b/img/clothes/handheld/gingerbread/right.png differ diff --git a/img/clothes/handheld/heartpurse/right_acc_gray.png b/img/clothes/handheld/heartpurse/right_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..cdda70645650462b5fd83ccd8beac41fc3d05d82 Binary files /dev/null and b/img/clothes/handheld/heartpurse/right_acc_gray.png differ diff --git a/img/clothes/handheld/heartpurse/right_cover_acc_gray.png b/img/clothes/handheld/heartpurse/right_cover_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..99669220176a4dc2787d33184173d7f94501290f Binary files /dev/null and b/img/clothes/handheld/heartpurse/right_cover_acc_gray.png differ diff --git a/img/clothes/handheld/heartpurse/right_cover_gray.png b/img/clothes/handheld/heartpurse/right_cover_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..daf3e3d9a06ddb783010025ce4a9447034ffef24 Binary files /dev/null and b/img/clothes/handheld/heartpurse/right_cover_gray.png differ diff --git a/img/clothes/handheld/heartpurse/right_gray.png b/img/clothes/handheld/heartpurse/right_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..f9fad470b358dd4917e6acd98bce31eb1e59c379 Binary files /dev/null and b/img/clothes/handheld/heartpurse/right_gray.png differ diff --git a/img/clothes/handheld/lemonade/right.png b/img/clothes/handheld/lemonade/right.png new file mode 100644 index 0000000000000000000000000000000000000000..ea966ee71c92610dfea14d0f6f419254a6ab5b4e Binary files /dev/null and b/img/clothes/handheld/lemonade/right.png differ diff --git a/img/clothes/handheld/lemonade/right_cover.png b/img/clothes/handheld/lemonade/right_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..a4c9a0be9e86869a17527ec103a13f66ef029726 Binary files /dev/null and b/img/clothes/handheld/lemonade/right_cover.png differ diff --git a/img/clothes/handheld/messengerbag/right_acc.png b/img/clothes/handheld/messengerbag/right_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..ed28ab36e0da15e263c6f53ca86cc5404b98fc2d Binary files /dev/null and b/img/clothes/handheld/messengerbag/right_acc.png differ diff --git a/img/clothes/handheld/messengerbag/right_cover_acc.png b/img/clothes/handheld/messengerbag/right_cover_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..bc66e26f26abe626932995d001a6b37bec8c20ea Binary files /dev/null and b/img/clothes/handheld/messengerbag/right_cover_acc.png differ diff --git a/img/clothes/handheld/messengerbag/right_cover_gray.png b/img/clothes/handheld/messengerbag/right_cover_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..677a83a2e7681ad71623dee4cef6e13f9066e2df Binary files /dev/null and b/img/clothes/handheld/messengerbag/right_cover_gray.png differ diff --git a/img/clothes/handheld/messengerbag/right_gray.png b/img/clothes/handheld/messengerbag/right_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..f241326c04916b6d7722f52198c7bbc1c5cca30a Binary files /dev/null and b/img/clothes/handheld/messengerbag/right_gray.png differ diff --git a/img/clothes/handheld/milkshake/right.png b/img/clothes/handheld/milkshake/right.png new file mode 100644 index 0000000000000000000000000000000000000000..a6704b64dac411b9f88d009e2ea7f294ecbcb775 Binary files /dev/null and b/img/clothes/handheld/milkshake/right.png differ diff --git a/img/clothes/handheld/milkshake/right_cover.png b/img/clothes/handheld/milkshake/right_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..f2ad873ad80a7e88f0886f7e077e93debf814dff Binary files /dev/null and b/img/clothes/handheld/milkshake/right_cover.png differ diff --git a/img/clothes/handheld/mug/right.png b/img/clothes/handheld/mug/right.png new file mode 100644 index 0000000000000000000000000000000000000000..e004eb679f00c97dea1da30b19e581b95006efaf Binary files /dev/null and b/img/clothes/handheld/mug/right.png differ diff --git a/img/clothes/handheld/paperfan/right_acc.png b/img/clothes/handheld/paperfan/right_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..e15c6af81960dc8216a6cacbba8acf889a6a2a22 Binary files /dev/null and b/img/clothes/handheld/paperfan/right_acc.png differ diff --git a/img/clothes/handheld/paperfan/right_cover_acc.png b/img/clothes/handheld/paperfan/right_cover_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..aad0f9ee7b2e202f58bd95596563a6b3f7d92d83 Binary files /dev/null and b/img/clothes/handheld/paperfan/right_cover_acc.png differ diff --git a/img/clothes/handheld/paperfan/right_cover_gray.png b/img/clothes/handheld/paperfan/right_cover_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..93abb9a32cf4928cdb816e6f40e83ba589c41c43 Binary files /dev/null and b/img/clothes/handheld/paperfan/right_cover_gray.png differ diff --git a/img/clothes/handheld/paperfan/right_gray.png b/img/clothes/handheld/paperfan/right_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..1ad41df645d929a3f661918ef8a30e9f83685ddb Binary files /dev/null and b/img/clothes/handheld/paperfan/right_gray.png differ diff --git a/img/clothes/handheld/parasol/back_acc_gray.png b/img/clothes/handheld/parasol/back_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..f645889b753bfe102b10d67414b6bc31dfd18bf8 Binary files /dev/null and b/img/clothes/handheld/parasol/back_acc_gray.png differ diff --git a/img/clothes/handheld/parasol/back_gray.png b/img/clothes/handheld/parasol/back_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..63d93ed28071c840cb51f0ebc7aafb98e0d3b81f Binary files /dev/null and b/img/clothes/handheld/parasol/back_gray.png differ diff --git a/img/clothes/handheld/parasol/mask.png b/img/clothes/handheld/parasol/mask.png new file mode 100644 index 0000000000000000000000000000000000000000..2f72a7b1a0f5cbc88dea74d47ccef6494b49a59c Binary files /dev/null and b/img/clothes/handheld/parasol/mask.png differ diff --git a/img/clothes/handheld/parasol/right_acc_gray.png b/img/clothes/handheld/parasol/right_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..c53c88a9f1a0fadc7b22d1c4ce4392692b1197cf Binary files /dev/null and b/img/clothes/handheld/parasol/right_acc_gray.png differ diff --git a/img/clothes/handheld/parasol/right_cover_acc_gray.png b/img/clothes/handheld/parasol/right_cover_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..b46127570dfac33e4664b4bfb1c192cbfc41b3ca Binary files /dev/null and b/img/clothes/handheld/parasol/right_cover_acc_gray.png differ diff --git a/img/clothes/handheld/parasol/right_cover_gray.png b/img/clothes/handheld/parasol/right_cover_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..f06d87d2761ab377acf7258c4e08d575c19a0cd1 Binary files /dev/null and b/img/clothes/handheld/parasol/right_cover_gray.png differ diff --git a/img/clothes/handheld/parasol/right_gray.png b/img/clothes/handheld/parasol/right_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..b16fc2ee930ebb7310347c0b33e97f48b63d9dcc Binary files /dev/null and b/img/clothes/handheld/parasol/right_gray.png differ diff --git a/img/clothes/handheld/parasolpaper/back_acc.png b/img/clothes/handheld/parasolpaper/back_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..f304f01112b15a1c30fff4f4fe6cc1d9a2e6cfa4 Binary files /dev/null and b/img/clothes/handheld/parasolpaper/back_acc.png differ diff --git a/img/clothes/handheld/parasolpaper/back_gray.png b/img/clothes/handheld/parasolpaper/back_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..ce39a0302347da0f28745a66785a95d419164697 Binary files /dev/null and b/img/clothes/handheld/parasolpaper/back_gray.png differ diff --git a/img/clothes/handheld/parasolpaper/right.png b/img/clothes/handheld/parasolpaper/right.png new file mode 100644 index 0000000000000000000000000000000000000000..2d35c40582f18495319f157df129948892095be9 Binary files /dev/null and b/img/clothes/handheld/parasolpaper/right.png differ diff --git a/img/clothes/handheld/parasolpaper/right_acc.png b/img/clothes/handheld/parasolpaper/right_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..6e949e02bdb4ab3dcd290b3497c75936310a1613 Binary files /dev/null and b/img/clothes/handheld/parasolpaper/right_acc.png differ diff --git a/img/clothes/handheld/parasolpaper/right_cover_acc.png b/img/clothes/handheld/parasolpaper/right_cover_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..3d6e59f1777218621f86bcde62fabdfd688a100d Binary files /dev/null and b/img/clothes/handheld/parasolpaper/right_cover_acc.png differ diff --git a/img/clothes/handheld/parasolpaper/right_cover_gray.png b/img/clothes/handheld/parasolpaper/right_cover_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..e0a9ef5c47ce85cc038e2070b777ac93ef1a403f Binary files /dev/null and b/img/clothes/handheld/parasolpaper/right_cover_gray.png differ diff --git a/img/clothes/handheld/parasolpaper/right_gray.png b/img/clothes/handheld/parasolpaper/right_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..2d35c40582f18495319f157df129948892095be9 Binary files /dev/null and b/img/clothes/handheld/parasolpaper/right_gray.png differ diff --git a/img/clothes/handheld/parasolsweet/back_acc_gray.png b/img/clothes/handheld/parasolsweet/back_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..6233708742de6b50bd843bbe260fd24f104ea1d9 Binary files /dev/null and b/img/clothes/handheld/parasolsweet/back_acc_gray.png differ diff --git a/img/clothes/handheld/parasolsweet/back_gray.png b/img/clothes/handheld/parasolsweet/back_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..6ed5bfece9e2c48ca519e163ffcee49b1481fc55 Binary files /dev/null and b/img/clothes/handheld/parasolsweet/back_gray.png differ diff --git a/img/clothes/handheld/parasolsweet/mask.png b/img/clothes/handheld/parasolsweet/mask.png new file mode 100644 index 0000000000000000000000000000000000000000..2f72a7b1a0f5cbc88dea74d47ccef6494b49a59c Binary files /dev/null and b/img/clothes/handheld/parasolsweet/mask.png differ diff --git a/img/clothes/handheld/parasolsweet/right_acc_gray.png b/img/clothes/handheld/parasolsweet/right_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..dd4a33df80bc3f78fa16e3241f21377678c434a6 Binary files /dev/null and b/img/clothes/handheld/parasolsweet/right_acc_gray.png differ diff --git a/img/clothes/handheld/parasolsweet/right_cover_acc_gray.png b/img/clothes/handheld/parasolsweet/right_cover_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..2c449efb824cf07555342fba538f31673578cc9d Binary files /dev/null and b/img/clothes/handheld/parasolsweet/right_cover_acc_gray.png differ diff --git a/img/clothes/handheld/parasolsweet/right_cover_gray.png b/img/clothes/handheld/parasolsweet/right_cover_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..324b861eb2007691da59ab3b698fae6dd63dc47c Binary files /dev/null and b/img/clothes/handheld/parasolsweet/right_cover_gray.png differ diff --git a/img/clothes/handheld/parasolsweet/right_gray.png b/img/clothes/handheld/parasolsweet/right_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..f721cdcb0cab31c82c1af9b059c5021d72ba748f Binary files /dev/null and b/img/clothes/handheld/parasolsweet/right_gray.png differ diff --git a/img/clothes/handheld/pompoms/left.png b/img/clothes/handheld/pompoms/left.png new file mode 100644 index 0000000000000000000000000000000000000000..ef2f1193f39f8d45a3944c1458104197706f9469 Binary files /dev/null and b/img/clothes/handheld/pompoms/left.png differ diff --git a/img/clothes/handheld/pompoms/left_acc.png b/img/clothes/handheld/pompoms/left_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..5417a99abea46406bb1a8fb48abeea07a7ac52b6 Binary files /dev/null and b/img/clothes/handheld/pompoms/left_acc.png differ diff --git a/img/clothes/handheld/pompoms/left_cover.png b/img/clothes/handheld/pompoms/left_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..3b3cd6a2ea3e581d21979ee23764f0ce46db9f84 Binary files /dev/null and b/img/clothes/handheld/pompoms/left_cover.png differ diff --git a/img/clothes/handheld/pompoms/left_cover_acc.png b/img/clothes/handheld/pompoms/left_cover_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..878629e210bbf02bb9473d4a2afa9f6964732c4e Binary files /dev/null and b/img/clothes/handheld/pompoms/left_cover_acc.png differ diff --git a/img/clothes/handheld/pompoms/left_cover_gray.png b/img/clothes/handheld/pompoms/left_cover_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..e93df691a9e97c249c328e764ef91ef1967041cd Binary files /dev/null and b/img/clothes/handheld/pompoms/left_cover_gray.png differ diff --git a/img/clothes/handheld/pompoms/left_gray.png b/img/clothes/handheld/pompoms/left_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..f21a7b9406d524dc6118c129c5a903f1ee7b6a46 Binary files /dev/null and b/img/clothes/handheld/pompoms/left_gray.png differ diff --git a/img/clothes/handheld/pompoms/right.png b/img/clothes/handheld/pompoms/right.png new file mode 100644 index 0000000000000000000000000000000000000000..6ff4eb639dd54f79394a5428482b25a7f87d1da8 Binary files /dev/null and b/img/clothes/handheld/pompoms/right.png differ diff --git a/img/clothes/handheld/pompoms/right_acc.png b/img/clothes/handheld/pompoms/right_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..b66ce78f7bceafbfc0d44d143c3e5617886665f2 Binary files /dev/null and b/img/clothes/handheld/pompoms/right_acc.png differ diff --git a/img/clothes/handheld/pompoms/right_cover.png b/img/clothes/handheld/pompoms/right_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..c68f7f4b2ed96cc0cf723bd6cd2ea1a018fe86cc Binary files /dev/null and b/img/clothes/handheld/pompoms/right_cover.png differ diff --git a/img/clothes/handheld/pompoms/right_cover_acc.png b/img/clothes/handheld/pompoms/right_cover_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..aaf99357189e62043f66afe3b5c208252818eb58 Binary files /dev/null and b/img/clothes/handheld/pompoms/right_cover_acc.png differ diff --git a/img/clothes/handheld/pompoms/right_cover_gray.png b/img/clothes/handheld/pompoms/right_cover_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..d17cd80bd0821dc1dbb98823362bdbb26776a153 Binary files /dev/null and b/img/clothes/handheld/pompoms/right_cover_gray.png differ diff --git a/img/clothes/handheld/pompoms/right_gray.png b/img/clothes/handheld/pompoms/right_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..1d576556e0a517a0692cb99fd1e0829706b2e7eb Binary files /dev/null and b/img/clothes/handheld/pompoms/right_gray.png differ diff --git a/img/clothes/handheld/popcorn/right.png b/img/clothes/handheld/popcorn/right.png new file mode 100644 index 0000000000000000000000000000000000000000..6368b61f41b24bec7895b5c3439a9db301bbd11b Binary files /dev/null and b/img/clothes/handheld/popcorn/right.png differ diff --git a/img/clothes/handheld/purse/right_acc_gray.png b/img/clothes/handheld/purse/right_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..426a93c5d8adffd302db772c0d8ae5194e710631 Binary files /dev/null and b/img/clothes/handheld/purse/right_acc_gray.png differ diff --git a/img/clothes/handheld/purse/right_cover_acc_gray.png b/img/clothes/handheld/purse/right_cover_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..8d8bc0d113a1b281e5bcb080627075bd1f6ec54c Binary files /dev/null and b/img/clothes/handheld/purse/right_cover_acc_gray.png differ diff --git a/img/clothes/handheld/purse/right_cover_gray.png b/img/clothes/handheld/purse/right_cover_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..e5774437e3f252d0dfcffe63efa3e797c7521860 Binary files /dev/null and b/img/clothes/handheld/purse/right_cover_gray.png differ diff --git a/img/clothes/handheld/purse/right_gray.png b/img/clothes/handheld/purse/right_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..98eb3be8ca16d83d8b11a983ca7aa3d0be42a7ff Binary files /dev/null and b/img/clothes/handheld/purse/right_gray.png differ diff --git a/img/clothes/handheld/umbrella/back_acc_gray.png b/img/clothes/handheld/umbrella/back_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..de90c577c0a900499c31e5971dcfccecd7866358 Binary files /dev/null and b/img/clothes/handheld/umbrella/back_acc_gray.png differ diff --git a/img/clothes/handheld/umbrella/back_gray.png b/img/clothes/handheld/umbrella/back_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..67347df5798d3aa1130a0bb63c1bd260c0bcdc3e Binary files /dev/null and b/img/clothes/handheld/umbrella/back_gray.png differ diff --git a/img/clothes/handheld/umbrella/mask.png b/img/clothes/handheld/umbrella/mask.png new file mode 100644 index 0000000000000000000000000000000000000000..120e3eb1c956731ee587ac6c5ab54e116354b690 Binary files /dev/null and b/img/clothes/handheld/umbrella/mask.png differ diff --git a/img/clothes/handheld/umbrella/right_acc_gray.png b/img/clothes/handheld/umbrella/right_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..67f935c6d0436c4d34f3899a800bdde33f3e5ff7 Binary files /dev/null and b/img/clothes/handheld/umbrella/right_acc_gray.png differ diff --git a/img/clothes/handheld/umbrella/right_cover_acc_gray.png b/img/clothes/handheld/umbrella/right_cover_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..fcb9d7194be63b240fbfb495a4993a7352e71fd8 Binary files /dev/null and b/img/clothes/handheld/umbrella/right_cover_acc_gray.png differ diff --git a/img/clothes/handheld/umbrella/right_cover_gray.png b/img/clothes/handheld/umbrella/right_cover_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..9530f86acaa349b3b86b302b639a9b2a93eca392 Binary files /dev/null and b/img/clothes/handheld/umbrella/right_cover_gray.png differ diff --git a/img/clothes/handheld/umbrella/right_gray.png b/img/clothes/handheld/umbrella/right_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..dca6854880967a95e80f64c96c6fb97b8b7f5711 Binary files /dev/null and b/img/clothes/handheld/umbrella/right_gray.png differ diff --git a/img/clothes/hands/armwarmers/hold_acc_gray.png b/img/clothes/hands/armwarmers/hold_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..fca5cfccb56aa5b0ea37f0c3304f760cfd0acba9 Binary files /dev/null and b/img/clothes/hands/armwarmers/hold_acc_gray.png differ diff --git a/img/clothes/hands/armwarmers/hold_gray.png b/img/clothes/hands/armwarmers/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..b3553aed7f4620dc008c7948f5ed9f15987d7a80 Binary files /dev/null and b/img/clothes/hands/armwarmers/hold_gray.png differ diff --git a/img/clothes/hands/cow/hold.png b/img/clothes/hands/cow/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..90503f8978790e9ee151e5b7014be8620e68d7de Binary files /dev/null and b/img/clothes/hands/cow/hold.png differ diff --git a/img/clothes/hands/fingerlessgloves/hold_gray.png b/img/clothes/hands/fingerlessgloves/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..7bb23bb1f89c1517620e6f571cafffb8e37fb679 Binary files /dev/null and b/img/clothes/hands/fingerlessgloves/hold_gray.png differ diff --git a/img/clothes/hands/gold/hold.png b/img/clothes/hands/gold/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..59a1b5c3bfb643c5c95fcf528609f5deb1862f13 Binary files /dev/null and b/img/clothes/hands/gold/hold.png differ diff --git a/img/clothes/hands/lacewarmers/hold_gray.png b/img/clothes/hands/lacewarmers/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..23983da40929499721bfcc48a38b7fcd83daafcc Binary files /dev/null and b/img/clothes/hands/lacewarmers/hold_gray.png differ diff --git a/img/clothes/hands/longleathergloves/hold.png b/img/clothes/hands/longleathergloves/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..6779adb7122fcb5b733382b85d10b8b182043044 Binary files /dev/null and b/img/clothes/hands/longleathergloves/hold.png differ diff --git a/img/clothes/hands/mittens/hold_gray.png b/img/clothes/hands/mittens/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..6084fa61ec3da51f8eee1d38f1ce1ca7c64cd5c5 Binary files /dev/null and b/img/clothes/hands/mittens/hold_gray.png differ diff --git a/img/clothes/hands/pompoms/hold.png b/img/clothes/hands/pompoms/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..224467e76bdd4414b4da4bfa14efbb4cc6810110 Binary files /dev/null and b/img/clothes/hands/pompoms/hold.png differ diff --git a/img/clothes/hands/pompoms/hold_acc.png b/img/clothes/hands/pompoms/hold_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..2ccf4c7783ecf664eab89dc6106a6fc5fa748ffa Binary files /dev/null and b/img/clothes/hands/pompoms/hold_acc.png differ diff --git a/img/clothes/hands/pompoms/hold_gray.png b/img/clothes/hands/pompoms/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..464d3f61c0456b482d017c5709b13cc113c0fcb1 Binary files /dev/null and b/img/clothes/hands/pompoms/hold_gray.png differ diff --git a/img/clothes/hands/pompoms/left.png b/img/clothes/hands/pompoms/left.png index ef2f1193f39f8d45a3944c1458104197706f9469..763e644276011dba86f47faa358714d27ad018e5 100644 Binary files a/img/clothes/hands/pompoms/left.png and b/img/clothes/hands/pompoms/left.png differ diff --git a/img/clothes/hands/pompoms/left_acc.png b/img/clothes/hands/pompoms/left_acc.png index 5417a99abea46406bb1a8fb48abeea07a7ac52b6..7c38f732265f131e21191dcb9b606472a63563a8 100644 Binary files a/img/clothes/hands/pompoms/left_acc.png and b/img/clothes/hands/pompoms/left_acc.png differ diff --git a/img/clothes/hands/pompoms/left_cover.png b/img/clothes/hands/pompoms/left_cover.png index 3b3cd6a2ea3e581d21979ee23764f0ce46db9f84..fc9aaa7647b21d5f519ce83728f63a2a5d289087 100644 Binary files a/img/clothes/hands/pompoms/left_cover.png and b/img/clothes/hands/pompoms/left_cover.png differ diff --git a/img/clothes/hands/pompoms/left_cover_acc.png b/img/clothes/hands/pompoms/left_cover_acc.png index 878629e210bbf02bb9473d4a2afa9f6964732c4e..5f201f82426310f9252c0f4a85997c007399639d 100644 Binary files a/img/clothes/hands/pompoms/left_cover_acc.png and b/img/clothes/hands/pompoms/left_cover_acc.png differ diff --git a/img/clothes/hands/pompoms/left_cover_gray.png b/img/clothes/hands/pompoms/left_cover_gray.png index e93df691a9e97c249c328e764ef91ef1967041cd..950165a6f9083edf1513f4b74eb74fc12ef43406 100644 Binary files a/img/clothes/hands/pompoms/left_cover_gray.png and b/img/clothes/hands/pompoms/left_cover_gray.png differ diff --git a/img/clothes/hands/pompoms/left_gray.png b/img/clothes/hands/pompoms/left_gray.png index f21a7b9406d524dc6118c129c5a903f1ee7b6a46..2ca3c875889e576174dd672fc7b6ad7dc2c85e8e 100644 Binary files a/img/clothes/hands/pompoms/left_gray.png and b/img/clothes/hands/pompoms/left_gray.png differ diff --git a/img/clothes/hands/pompoms/right.png b/img/clothes/hands/pompoms/right.png index 6ff4eb639dd54f79394a5428482b25a7f87d1da8..9ab6f6ee256c928e3f28b1f6cf3173a26e2c836b 100644 Binary files a/img/clothes/hands/pompoms/right.png and b/img/clothes/hands/pompoms/right.png differ diff --git a/img/clothes/hands/pompoms/right_acc.png b/img/clothes/hands/pompoms/right_acc.png index b66ce78f7bceafbfc0d44d143c3e5617886665f2..475c744af8ebaecd462fd5e47a048b36ff52eb7a 100644 Binary files a/img/clothes/hands/pompoms/right_acc.png and b/img/clothes/hands/pompoms/right_acc.png differ diff --git a/img/clothes/hands/pompoms/right_cover.png b/img/clothes/hands/pompoms/right_cover.png index c68f7f4b2ed96cc0cf723bd6cd2ea1a018fe86cc..3f61b0404d22757195c445d10c57bf5dbd83fb94 100644 Binary files a/img/clothes/hands/pompoms/right_cover.png and b/img/clothes/hands/pompoms/right_cover.png differ diff --git a/img/clothes/hands/pompoms/right_cover_acc.png b/img/clothes/hands/pompoms/right_cover_acc.png index aaf99357189e62043f66afe3b5c208252818eb58..9ae05c7b36d6ee60a930bf54303030099e021c13 100644 Binary files a/img/clothes/hands/pompoms/right_cover_acc.png and b/img/clothes/hands/pompoms/right_cover_acc.png differ diff --git a/img/clothes/hands/pompoms/right_cover_gray.png b/img/clothes/hands/pompoms/right_cover_gray.png index d17cd80bd0821dc1dbb98823362bdbb26776a153..3f5f359e9b3e662f87cca8a64d9368e76b0b7026 100644 Binary files a/img/clothes/hands/pompoms/right_cover_gray.png and b/img/clothes/hands/pompoms/right_cover_gray.png differ diff --git a/img/clothes/hands/pompoms/right_gray.png b/img/clothes/hands/pompoms/right_gray.png index 1d576556e0a517a0692cb99fd1e0829706b2e7eb..31b4ce45abd389f1b7e83053179e07fac02f44eb 100644 Binary files a/img/clothes/hands/pompoms/right_gray.png and b/img/clothes/hands/pompoms/right_gray.png differ diff --git a/img/clothes/hands/workgloves/hold.png b/img/clothes/hands/workgloves/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..bdb4b023febc56f8982d8acc3f3f628fc30b297a Binary files /dev/null and b/img/clothes/hands/workgloves/hold.png differ diff --git a/img/clothes/lower/diving/frayed.png b/img/clothes/lower/diving/frayed.png index 9af36226bfd9d0a867de722da8c5e2a841151b63..d09ce3ea8b00d7bcb8171086d7adcb05e04e662c 100644 Binary files a/img/clothes/lower/diving/frayed.png and b/img/clothes/lower/diving/frayed.png differ diff --git a/img/clothes/lower/diving/full.png b/img/clothes/lower/diving/full.png index 1f97062c997f0c6e7f2deaf2acec629ca7e3e0ed..8e5e9dafcb11cb1be5ef7fbadb11826bbbbe71b3 100644 Binary files a/img/clothes/lower/diving/full.png and b/img/clothes/lower/diving/full.png differ diff --git a/img/clothes/lower/diving/tattered.png b/img/clothes/lower/diving/tattered.png index 2724136106936e48a9dd8be6055a4600d53b00d6..727cb27ddfce2afcf397c8e7f26665ca1fdece7c 100644 Binary files a/img/clothes/lower/diving/tattered.png and b/img/clothes/lower/diving/tattered.png differ diff --git a/img/clothes/lower/diving/torn.png b/img/clothes/lower/diving/torn.png index 3ce57fa507eacb0d6b6f61f1a3d73b65c5be7252..98ab5e22beeb8dc9130c88dfd4c2d463a9dca387 100644 Binary files a/img/clothes/lower/diving/torn.png and b/img/clothes/lower/diving/torn.png differ diff --git a/img/clothes/lower/jingledress/frayed.png b/img/clothes/lower/jingledress/frayed.png new file mode 100644 index 0000000000000000000000000000000000000000..2444c57f19d3295ce3bb7204df32c56acc5ecad4 Binary files /dev/null and b/img/clothes/lower/jingledress/frayed.png differ diff --git a/img/clothes/lower/jingledress/full.png b/img/clothes/lower/jingledress/full.png new file mode 100644 index 0000000000000000000000000000000000000000..075e28df14c6a401af9cae9d9b50e3b54c685a24 Binary files /dev/null and b/img/clothes/lower/jingledress/full.png differ diff --git a/img/clothes/lower/jingledress/tattered.png b/img/clothes/lower/jingledress/tattered.png new file mode 100644 index 0000000000000000000000000000000000000000..80ffa5de4d50fd27a4a7c16aae2d1ebdd92db5fd Binary files /dev/null and b/img/clothes/lower/jingledress/tattered.png differ diff --git a/img/clothes/lower/jingledress/torn.png b/img/clothes/lower/jingledress/torn.png new file mode 100644 index 0000000000000000000000000000000000000000..51b68ca89bff40dbb86ddebc608fbb1ecd873342 Binary files /dev/null and b/img/clothes/lower/jingledress/torn.png differ diff --git a/img/clothes/lower/monk/frayed.png b/img/clothes/lower/monk/frayed.png index 12619c0afd2f58cae6386938b61697cade9be0e3..a069ac3c52debd2af0e2ec79071e2e9ced9048fb 100644 Binary files a/img/clothes/lower/monk/frayed.png and b/img/clothes/lower/monk/frayed.png differ diff --git a/img/clothes/lower/monk/full.png b/img/clothes/lower/monk/full.png index 796157a465ec8b3e528fa977acac6e176e694628..5f6671aff8d7eb0974229754df34477b19843a4a 100644 Binary files a/img/clothes/lower/monk/full.png and b/img/clothes/lower/monk/full.png differ diff --git a/img/clothes/lower/monk/tattered.png b/img/clothes/lower/monk/tattered.png index 78dcc718173f16e67f74b59c5472693afaf1e76a..ecc1d9c48367ce49ac5654a3b44a4c73b33cf771 100644 Binary files a/img/clothes/lower/monk/tattered.png and b/img/clothes/lower/monk/tattered.png differ diff --git a/img/clothes/lower/monk/torn.png b/img/clothes/lower/monk/torn.png index 7e4874d64fb8201f4390b06cac7ff07c1a8014d7..d867d770059225afe5eaf8de9073ee4e971cfa86 100644 Binary files a/img/clothes/lower/monk/torn.png and b/img/clothes/lower/monk/torn.png differ diff --git a/img/clothes/lower/shrinemaiden/full.png b/img/clothes/lower/shrinemaiden/full.png index 598ce4c7b8aea7b62821e751677212ea3e386450..ffe150702339796faa923a61e6a3ce4df0ec148e 100644 Binary files a/img/clothes/lower/shrinemaiden/full.png and b/img/clothes/lower/shrinemaiden/full.png differ diff --git a/img/clothes/lower/shrinemaiden/tattered.png b/img/clothes/lower/shrinemaiden/tattered.png index 16536362c671b27a1e0fdd634473db1c45cfeb58..5a1aa16f546ca89fce370c38545d9ee6c36dd292 100644 Binary files a/img/clothes/lower/shrinemaiden/tattered.png and b/img/clothes/lower/shrinemaiden/tattered.png differ diff --git a/img/clothes/lower/skimpylolita/acc.png b/img/clothes/lower/skimpylolita/acc.png index 992bdbfa6516822288c25fbe6601726b535aeda2..93538b9b064148d09e9c40a02fb1977acc7549ec 100644 Binary files a/img/clothes/lower/skimpylolita/acc.png and b/img/clothes/lower/skimpylolita/acc.png differ diff --git a/img/clothes/lower/sundress/frayed_gray.png b/img/clothes/lower/sundress/frayed_gray.png index 68b840b09dfc1a3033f81aaa0e2b287c6a97b512..77100e5371400ea4e3a29fb26876a6886567814b 100644 Binary files a/img/clothes/lower/sundress/frayed_gray.png and b/img/clothes/lower/sundress/frayed_gray.png differ diff --git a/img/clothes/lower/sundress/full_gray.png b/img/clothes/lower/sundress/full_gray.png index b0d952c5d421e45f8e294379fc70592a0625fc01..0e9d4b01ea40d8c02acab8659a368056d76e5471 100644 Binary files a/img/clothes/lower/sundress/full_gray.png and b/img/clothes/lower/sundress/full_gray.png differ diff --git a/img/clothes/lower/sundress/tattered_gray.png b/img/clothes/lower/sundress/tattered_gray.png index 11d6b40abd358beeac09f850a47853f69e0bf287..77100e5371400ea4e3a29fb26876a6886567814b 100644 Binary files a/img/clothes/lower/sundress/tattered_gray.png and b/img/clothes/lower/sundress/tattered_gray.png differ diff --git a/img/clothes/lower/sundress/torn_gray.png b/img/clothes/lower/sundress/torn_gray.png index 39aa701d667ce3749c5263b9965d4709c64e2150..39410f46c6cec5c690dc17e95d8bc9c50d8c4139 100644 Binary files a/img/clothes/lower/sundress/torn_gray.png and b/img/clothes/lower/sundress/torn_gray.png differ diff --git a/img/clothes/lower/victorianmaid/frayed.png b/img/clothes/lower/victorianmaid/frayed.png index ca6291afbeab428c3a7949c41c5ec169856f853d..8733498bb59669174ac72aa1cc39020a4d9c309e 100644 Binary files a/img/clothes/lower/victorianmaid/frayed.png and b/img/clothes/lower/victorianmaid/frayed.png differ diff --git a/img/clothes/lower/victorianmaid/full.png b/img/clothes/lower/victorianmaid/full.png index d3ed36382b6dd54f61e963f46df72c568a156d15..691ef050ea33f9f15f9b7058853cfd1637abdcea 100644 Binary files a/img/clothes/lower/victorianmaid/full.png and b/img/clothes/lower/victorianmaid/full.png differ diff --git a/img/clothes/lower/victorianmaid/tattered.png b/img/clothes/lower/victorianmaid/tattered.png index fba22e86ac77ed0cf73dc0194a64f181e01e1b0f..71090b1e59a01d97e9bab31243b4c2fc2cbe8b47 100644 Binary files a/img/clothes/lower/victorianmaid/tattered.png and b/img/clothes/lower/victorianmaid/tattered.png differ diff --git a/img/clothes/lower/victorianmaid/torn.png b/img/clothes/lower/victorianmaid/torn.png index affdda8871e01c08c0730acfcb41f599b0b291e6..427ac0809db67b01b4513de5c65efc87a640d6f4 100644 Binary files a/img/clothes/lower/victorianmaid/torn.png and b/img/clothes/lower/victorianmaid/torn.png differ diff --git a/img/clothes/over_upper/cream/hold.png b/img/clothes/over_upper/cream/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..0e2ffd003595a00a1ada0bad6110d62687ad8d8d Binary files /dev/null and b/img/clothes/over_upper/cream/hold.png differ diff --git a/img/clothes/over_upper/froggy/hold.png b/img/clothes/over_upper/froggy/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..eceadd8be89de97986e990832416d0ebd1263ef3 Binary files /dev/null and b/img/clothes/over_upper/froggy/hold.png differ diff --git a/img/clothes/under_upper/armsleeves/hold_gray.png b/img/clothes/under_upper/armsleeves/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..ef3cde2986df8b1174d18888d6a1c1e7e367df0a Binary files /dev/null and b/img/clothes/under_upper/armsleeves/hold_gray.png differ diff --git a/img/clothes/under_upper/leotard/hold_gray.PNG b/img/clothes/under_upper/leotard/hold_gray.PNG new file mode 100644 index 0000000000000000000000000000000000000000..948c3855ba216dc4121e28c3b3f44a8c6719edda Binary files /dev/null and b/img/clothes/under_upper/leotard/hold_gray.PNG differ diff --git a/img/clothes/under_upper/mesh/hold.png b/img/clothes/under_upper/mesh/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..fabfb0d15374d53077a821dd3921ccdc8714bd69 Binary files /dev/null and b/img/clothes/under_upper/mesh/hold.png differ diff --git a/img/clothes/under_upper/swimshirt/frayed_gray.png b/img/clothes/under_upper/swimshirt/frayed_gray.png index 9d551f9a8bd2754051bd1e45be9a5ed676e45d05..f54de8226d8e8fa7561c053b858c31decbf102a5 100644 Binary files a/img/clothes/under_upper/swimshirt/frayed_gray.png and b/img/clothes/under_upper/swimshirt/frayed_gray.png differ diff --git a/img/clothes/under_upper/swimshirt/full_gray.png b/img/clothes/under_upper/swimshirt/full_gray.png index 69f95a4d6a4527c5600de4357bfb9e4281fd565f..add105d8228095eedc819439a974fa0939cc7977 100644 Binary files a/img/clothes/under_upper/swimshirt/full_gray.png and b/img/clothes/under_upper/swimshirt/full_gray.png differ diff --git a/img/clothes/under_upper/swimshirt/hold_gray.png b/img/clothes/under_upper/swimshirt/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..964bb2b12f4b93c3eed350065b3000f63eda2261 Binary files /dev/null and b/img/clothes/under_upper/swimshirt/hold_gray.png differ diff --git a/img/clothes/under_upper/undershirt/hold_gray.png b/img/clothes/under_upper/undershirt/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..0f9cb3360030bde4f84833d3be0c96e7381d1ebc Binary files /dev/null and b/img/clothes/under_upper/undershirt/hold_gray.png differ diff --git a/img/clothes/under_upper/unitard/hold_gray.png b/img/clothes/under_upper/unitard/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..eebe80ef0f1524f8ecf21890b719e5f7c707b5c1 Binary files /dev/null and b/img/clothes/under_upper/unitard/hold_gray.png differ diff --git a/img/clothes/upper/ao dai/hold_gray.png b/img/clothes/upper/ao dai/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..c2bce8fdf316ae74f957e8645018e1113e9f1568 Binary files /dev/null and b/img/clothes/upper/ao dai/hold_gray.png differ diff --git a/img/clothes/upper/babydolllingerie/full_gray.png b/img/clothes/upper/babydolllingerie/full_gray.png index 8fb11a6bf6e45161fe4c4683592504ddd8f718d2..d1888d9e6a1fc208aefdeb5d5d841a12aab34acd 100644 Binary files a/img/clothes/upper/babydolllingerie/full_gray.png and b/img/clothes/upper/babydolllingerie/full_gray.png differ diff --git a/img/clothes/upper/band tee/hold_gray.png b/img/clothes/upper/band tee/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..97cb36d323987819f9d35edaac6083f93bea9c47 Binary files /dev/null and b/img/clothes/upper/band tee/hold_gray.png differ diff --git a/img/clothes/upper/baseball/hold.png b/img/clothes/upper/baseball/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..1b4455c69b4818c75f4fb2dc21131aa643d974b4 Binary files /dev/null and b/img/clothes/upper/baseball/hold.png differ diff --git a/img/clothes/upper/baseball/hold_gray.png b/img/clothes/upper/baseball/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..d36aa00f5d122592edcc18ab2f82dea0f8ee2528 Binary files /dev/null and b/img/clothes/upper/baseball/hold_gray.png differ diff --git a/img/clothes/upper/bathrobe/hold.png b/img/clothes/upper/bathrobe/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..5b528d23d6ab508b98d3e681179eb5af6c0e3a5b Binary files /dev/null and b/img/clothes/upper/bathrobe/hold.png differ diff --git a/img/clothes/upper/beatnik/frayed.png b/img/clothes/upper/beatnik/frayed.png index 0acd85adef5798ab7a98695fa6bc29ad23fa5385..6e06d0b377b10a162c1a8b60b8ef97f4454f10b2 100644 Binary files a/img/clothes/upper/beatnik/frayed.png and b/img/clothes/upper/beatnik/frayed.png differ diff --git a/img/clothes/upper/beatnik/full.png b/img/clothes/upper/beatnik/full.png index 684262de628b4c5d08c713d89f1392c16ab0ae9c..20c4a02e00277e13255f55df6c40e7ea4a61bad7 100644 Binary files a/img/clothes/upper/beatnik/full.png and b/img/clothes/upper/beatnik/full.png differ diff --git a/img/clothes/upper/beatnik/hold.png b/img/clothes/upper/beatnik/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..6916c16b76a06cc46132e2575f2740bfba7c0661 Binary files /dev/null and b/img/clothes/upper/beatnik/hold.png differ diff --git a/img/clothes/upper/beatnik/tattered.png b/img/clothes/upper/beatnik/tattered.png index 06da6a22dffc65943ee5a52705aa62dee0d02641..aa6758a5d7892a9f02478a3986062e7787669775 100644 Binary files a/img/clothes/upper/beatnik/tattered.png and b/img/clothes/upper/beatnik/tattered.png differ diff --git a/img/clothes/upper/beatnik/torn.png b/img/clothes/upper/beatnik/torn.png index 2908b2d14ab73803d736b827935c4e2349477dc8..191d8a125553757c717a4414dca245f1eb3b95e9 100644 Binary files a/img/clothes/upper/beatnik/torn.png and b/img/clothes/upper/beatnik/torn.png differ diff --git a/img/clothes/upper/belly/hold_gray.png b/img/clothes/upper/belly/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..3e11eea68010a32afd2cf89c8634c5f2acb31742 Binary files /dev/null and b/img/clothes/upper/belly/hold_gray.png differ diff --git a/img/clothes/upper/blackleather/hold.png b/img/clothes/upper/blackleather/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..d6c39fda821c29bb23a26f7ef1bd39a3a23eea44 Binary files /dev/null and b/img/clothes/upper/blackleather/hold.png differ diff --git a/img/clothes/upper/blouse/hold.png b/img/clothes/upper/blouse/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..0e2ffd003595a00a1ada0bad6110d62687ad8d8d Binary files /dev/null and b/img/clothes/upper/blouse/hold.png differ diff --git a/img/clothes/upper/boxy/hold_gray.png b/img/clothes/upper/boxy/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..048694b3483eee497cb82aa6e3ed21b1adfa61a7 Binary files /dev/null and b/img/clothes/upper/boxy/hold_gray.png differ diff --git a/img/clothes/upper/brownleather/hold.png b/img/clothes/upper/brownleather/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..01e3d7fdf00bd174170e5be02653bf163359a05f Binary files /dev/null and b/img/clothes/upper/brownleather/hold.png differ diff --git a/img/clothes/upper/cable/hold.png b/img/clothes/upper/cable/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..1bf65159fbf80bf5b3bb0542e67c31bf7a2ab8c5 Binary files /dev/null and b/img/clothes/upper/cable/hold.png differ diff --git a/img/clothes/upper/cable/hold_gray.png b/img/clothes/upper/cable/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..5a7bca4e8fcb862451b8d5c2c53cd305ea5fb3ff Binary files /dev/null and b/img/clothes/upper/cable/hold_gray.png differ diff --git a/img/clothes/upper/cableknitcardigan/hold_gray.png b/img/clothes/upper/cableknitcardigan/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..35d7a8ea53ad772df08197398d8ad96089e748c8 Binary files /dev/null and b/img/clothes/upper/cableknitcardigan/hold_gray.png differ diff --git a/img/clothes/upper/camo/hold.png b/img/clothes/upper/camo/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..c9db316a9ef505fe755f271cda908d26eb9aae27 Binary files /dev/null and b/img/clothes/upper/camo/hold.png differ diff --git a/img/clothes/upper/camo/hold_gray.png b/img/clothes/upper/camo/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..66057f6e969e79d3f57e44e078c5a890a88c0a76 Binary files /dev/null and b/img/clothes/upper/camo/hold_gray.png differ diff --git a/img/clothes/upper/cat hoodie/hold_gray.png b/img/clothes/upper/cat hoodie/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..c35e108248508ca2e05b8666ccfd0e316f751de0 Binary files /dev/null and b/img/clothes/upper/cat hoodie/hold_gray.png differ diff --git a/img/clothes/upper/catsuit/hold.png b/img/clothes/upper/catsuit/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..55da891fbc996f154a3c8fa316aade85e43f00d8 Binary files /dev/null and b/img/clothes/upper/catsuit/hold.png differ diff --git a/img/clothes/upper/catsuit/hold_gray.png b/img/clothes/upper/catsuit/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..15b518c64a0d79c203cb5b196c84a81b9e869c68 Binary files /dev/null and b/img/clothes/upper/catsuit/hold_gray.png differ diff --git a/img/clothes/upper/checkered/hold.png b/img/clothes/upper/checkered/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..dc94f85c7b874fc867690b5ce13ee9f1a8f1e39c Binary files /dev/null and b/img/clothes/upper/checkered/hold.png differ diff --git a/img/clothes/upper/checkered/hold_gray.png b/img/clothes/upper/checkered/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..dd6cf46ab4adc7d6638070dcf0d2b6929dc55ce5 Binary files /dev/null and b/img/clothes/upper/checkered/hold_gray.png differ diff --git a/img/clothes/upper/cheerleader/hold.png b/img/clothes/upper/cheerleader/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..0e2ffd003595a00a1ada0bad6110d62687ad8d8d Binary files /dev/null and b/img/clothes/upper/cheerleader/hold.png differ diff --git a/img/clothes/upper/cheongsam/hold_gray.png b/img/clothes/upper/cheongsam/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..4efd61a1f6e8f5690a15dabcc8dfb253c48509d0 Binary files /dev/null and b/img/clothes/upper/cheongsam/hold_gray.png differ diff --git a/img/clothes/upper/christmas/frayed.png b/img/clothes/upper/christmas/frayed.png index 2f82d4ab943deb063237be84ffc91923bd85c906..13c5048c2b19a8671baa4aa5d9f346ccfc50a66c 100644 Binary files a/img/clothes/upper/christmas/frayed.png and b/img/clothes/upper/christmas/frayed.png differ diff --git a/img/clothes/upper/christmas/full.png b/img/clothes/upper/christmas/full.png index 2f82d4ab943deb063237be84ffc91923bd85c906..13c5048c2b19a8671baa4aa5d9f346ccfc50a66c 100644 Binary files a/img/clothes/upper/christmas/full.png and b/img/clothes/upper/christmas/full.png differ diff --git a/img/clothes/upper/christmas/hold.png b/img/clothes/upper/christmas/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..dbbeecc904abfb2cbe74fd3565975b22a29fca69 Binary files /dev/null and b/img/clothes/upper/christmas/hold.png differ diff --git a/img/clothes/upper/christmas/tattered.png b/img/clothes/upper/christmas/tattered.png index 2f82d4ab943deb063237be84ffc91923bd85c906..13c5048c2b19a8671baa4aa5d9f346ccfc50a66c 100644 Binary files a/img/clothes/upper/christmas/tattered.png and b/img/clothes/upper/christmas/tattered.png differ diff --git a/img/clothes/upper/christmas/torn.png b/img/clothes/upper/christmas/torn.png index 2f82d4ab943deb063237be84ffc91923bd85c906..13c5048c2b19a8671baa4aa5d9f346ccfc50a66c 100644 Binary files a/img/clothes/upper/christmas/torn.png and b/img/clothes/upper/christmas/torn.png differ diff --git a/img/clothes/upper/christmasdress/hold.png b/img/clothes/upper/christmasdress/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..dbbeecc904abfb2cbe74fd3565975b22a29fca69 Binary files /dev/null and b/img/clothes/upper/christmasdress/hold.png differ diff --git a/img/clothes/upper/christmasdressfancy/hold.png b/img/clothes/upper/christmasdressfancy/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..aabc1a7f5ba7c9a173cca22e7abeb277bec6dfa8 Binary files /dev/null and b/img/clothes/upper/christmasdressfancy/hold.png differ diff --git a/img/clothes/upper/classyvampire/hold.png b/img/clothes/upper/classyvampire/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..a2203b893bd88fcf0a4e9d9c42621f3db2ba5cf6 Binary files /dev/null and b/img/clothes/upper/classyvampire/hold.png differ diff --git a/img/clothes/upper/colour block crop/hold_acc_gray.png b/img/clothes/upper/colour block crop/hold_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..2d35c40582f18495319f157df129948892095be9 Binary files /dev/null and b/img/clothes/upper/colour block crop/hold_acc_gray.png differ diff --git a/img/clothes/upper/colour block crop/hold_gray.png b/img/clothes/upper/colour block crop/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..6da10cbba32c70de0f7323ef838075167a90bd16 Binary files /dev/null and b/img/clothes/upper/colour block crop/hold_gray.png differ diff --git a/img/clothes/upper/cowchaps/frayed.png b/img/clothes/upper/cowchaps/frayed.png deleted file mode 100644 index 4472c0c45359d5f827ac780611a7a16aaf390c73..0000000000000000000000000000000000000000 Binary files a/img/clothes/upper/cowchaps/frayed.png and /dev/null differ diff --git a/img/clothes/upper/cowchaps/full.png b/img/clothes/upper/cowchaps/full.png deleted file mode 100644 index 36b7b1745568c7e33bc32e8658bcd398812a7fcd..0000000000000000000000000000000000000000 Binary files a/img/clothes/upper/cowchaps/full.png and /dev/null differ diff --git a/img/clothes/upper/cowchaps/tattered.png b/img/clothes/upper/cowchaps/tattered.png deleted file mode 100644 index 1c93990134423efc71bb313fd71dd9dfe748b584..0000000000000000000000000000000000000000 Binary files a/img/clothes/upper/cowchaps/tattered.png and /dev/null differ diff --git a/img/clothes/upper/cowchaps/torn.png b/img/clothes/upper/cowchaps/torn.png deleted file mode 100644 index 7555145f20f683f93b31810404784a9a9f194509..0000000000000000000000000000000000000000 Binary files a/img/clothes/upper/cowchaps/torn.png and /dev/null differ diff --git a/img/clothes/upper/cowonesie/hold.png b/img/clothes/upper/cowonesie/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..cab851015cf573044ab714aeaf6664b2c0ee4529 Binary files /dev/null and b/img/clothes/upper/cowonesie/hold.png differ diff --git a/img/clothes/upper/croppedhoodie/hold.png b/img/clothes/upper/croppedhoodie/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..557482efceca516a0a26843b2b16b1b4f32353b1 Binary files /dev/null and b/img/clothes/upper/croppedhoodie/hold.png differ diff --git a/img/clothes/upper/croppedhoodie/hold_gray.png b/img/clothes/upper/croppedhoodie/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..69ff3dbffb1a2a6ccfa87e39e87ef90c9e209220 Binary files /dev/null and b/img/clothes/upper/croppedhoodie/hold_gray.png differ diff --git a/img/clothes/upper/diving/hold.png b/img/clothes/upper/diving/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..980417c599166d9de14e505f733d73153164e591 Binary files /dev/null and b/img/clothes/upper/diving/hold.png differ diff --git a/img/clothes/upper/diving/hold_gray.png b/img/clothes/upper/diving/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..369ce010c22c70ba3e3ffe857ba9321814aee991 Binary files /dev/null and b/img/clothes/upper/diving/hold_gray.png differ diff --git a/img/clothes/upper/doublebreasted/acc.png b/img/clothes/upper/doublebreasted/acc.png index 171c0640259382a40d67eccdd40f2c1a95f78842..ab356a44d28465bfc2887dd0c9b0f751e6a94400 100644 Binary files a/img/clothes/upper/doublebreasted/acc.png and b/img/clothes/upper/doublebreasted/acc.png differ diff --git a/img/clothes/upper/doublebreasted/acc_gray.png b/img/clothes/upper/doublebreasted/acc_gray.png index 5be6f3525d10e24759c80db2fb8fa54c5e02d5d5..aae905267b17235263ae61c13eb16818ac6e91a7 100644 Binary files a/img/clothes/upper/doublebreasted/acc_gray.png and b/img/clothes/upper/doublebreasted/acc_gray.png differ diff --git a/img/clothes/upper/doublebreasted/hold.png b/img/clothes/upper/doublebreasted/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..3f539fbc70aa7ff0214f47a98fda390ba4417363 Binary files /dev/null and b/img/clothes/upper/doublebreasted/hold.png differ diff --git a/img/clothes/upper/doublebreasted/hold_acc.png b/img/clothes/upper/doublebreasted/hold_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..a016b2ea24eec319eb60e3fe469211cf45931811 Binary files /dev/null and b/img/clothes/upper/doublebreasted/hold_acc.png differ diff --git a/img/clothes/upper/doublebreasted/hold_acc_gray.png b/img/clothes/upper/doublebreasted/hold_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..0fdaa5a301a305996759a36a6d94a97254bb20b6 Binary files /dev/null and b/img/clothes/upper/doublebreasted/hold_acc_gray.png differ diff --git a/img/clothes/upper/doublebreasted/hold_gray.png b/img/clothes/upper/doublebreasted/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..50bff4daecea7a83cbbe43c501b4be5432f6a6b4 Binary files /dev/null and b/img/clothes/upper/doublebreasted/hold_gray.png differ diff --git a/img/clothes/upper/doublebreasted/left_acc.png b/img/clothes/upper/doublebreasted/left_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..94bfc23a4470ac72f52eee0e6e442bc72e37a1d8 Binary files /dev/null and b/img/clothes/upper/doublebreasted/left_acc.png differ diff --git a/img/clothes/upper/doublebreasted/left_acc_gray.png b/img/clothes/upper/doublebreasted/left_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..a15b4ae87247c13479943ed0aaba82cd26d32e65 Binary files /dev/null and b/img/clothes/upper/doublebreasted/left_acc_gray.png differ diff --git a/img/clothes/upper/doublebreasted/left_cover_acc.png b/img/clothes/upper/doublebreasted/left_cover_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..c681de14c0d6ae7346c91d73da9a81a8b2dc1137 Binary files /dev/null and b/img/clothes/upper/doublebreasted/left_cover_acc.png differ diff --git a/img/clothes/upper/doublebreasted/left_cover_acc_gray.png b/img/clothes/upper/doublebreasted/left_cover_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..2acd9d2af085f608e3698fa309f00faf91f3942c Binary files /dev/null and b/img/clothes/upper/doublebreasted/left_cover_acc_gray.png differ diff --git a/img/clothes/upper/doublebreasted/right_acc.png b/img/clothes/upper/doublebreasted/right_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..50e118395898984e844b6c332a7c965d0665ce31 Binary files /dev/null and b/img/clothes/upper/doublebreasted/right_acc.png differ diff --git a/img/clothes/upper/doublebreasted/right_acc_gray.png b/img/clothes/upper/doublebreasted/right_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..22c0aad875c9b6db67bc76c1e7e2cda1d7774895 Binary files /dev/null and b/img/clothes/upper/doublebreasted/right_acc_gray.png differ diff --git a/img/clothes/upper/doublebreasted/right_cover_acc.png b/img/clothes/upper/doublebreasted/right_cover_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..a5b6898e8fc57e35cf9ab8a8add4da31934b6c05 Binary files /dev/null and b/img/clothes/upper/doublebreasted/right_cover_acc.png differ diff --git a/img/clothes/upper/doublebreasted/right_cover_acc_gray.png b/img/clothes/upper/doublebreasted/right_cover_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..040b2d2a9f5102f380ad4dec950ce843ff435e58 Binary files /dev/null and b/img/clothes/upper/doublebreasted/right_cover_acc_gray.png differ diff --git a/img/clothes/upper/dress/hold.png b/img/clothes/upper/dress/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..708fe0b335b5c828098262b83a53271a8c05abae Binary files /dev/null and b/img/clothes/upper/dress/hold.png differ diff --git a/img/clothes/upper/dress/hold_gray.png b/img/clothes/upper/dress/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..80b486acdec59f625b4c7d06c1595c0099b25e41 Binary files /dev/null and b/img/clothes/upper/dress/hold_gray.png differ diff --git a/img/clothes/upper/football/frayed.png b/img/clothes/upper/football/frayed.png index 3cfb113d5d970226c50f58939bae32ce2160af91..304c7e713976f3f2ecc9055fcc38b2abdbda94bf 100644 Binary files a/img/clothes/upper/football/frayed.png and b/img/clothes/upper/football/frayed.png differ diff --git a/img/clothes/upper/football/frayed_gray.png b/img/clothes/upper/football/frayed_gray.png index f808a80e92a2e727fb95f61ac799b4939aaec0d9..021c885bb70fdabb636edcde5da88ed477c6ad9f 100644 Binary files a/img/clothes/upper/football/frayed_gray.png and b/img/clothes/upper/football/frayed_gray.png differ diff --git a/img/clothes/upper/football/full.png b/img/clothes/upper/football/full.png index 20b252ddf64a691fa6262c3a26746fbb4efdd75c..f3354f190317eef871dcace487b04c95efee2938 100644 Binary files a/img/clothes/upper/football/full.png and b/img/clothes/upper/football/full.png differ diff --git a/img/clothes/upper/football/full_gray.png b/img/clothes/upper/football/full_gray.png index 7d10224443735d188b3f98bb3d69b23d5ceba146..a0b3845ce05bffd7228b26920aa2b5e12efb8033 100644 Binary files a/img/clothes/upper/football/full_gray.png and b/img/clothes/upper/football/full_gray.png differ diff --git a/img/clothes/upper/football/hold.png b/img/clothes/upper/football/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..8b5ca15a321cbef664d89687f7ac522630b6ae67 Binary files /dev/null and b/img/clothes/upper/football/hold.png differ diff --git a/img/clothes/upper/football/hold_gray.png b/img/clothes/upper/football/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..6a542f8163665cec6f602bbe09d5fff628eb699a Binary files /dev/null and b/img/clothes/upper/football/hold_gray.png differ diff --git a/img/clothes/upper/football/left.png b/img/clothes/upper/football/left.png index 89d609b3c1895504731344091113b3c835b1124a..0d5de19e1c4c91895b08def41c996012fb8ae338 100644 Binary files a/img/clothes/upper/football/left.png and b/img/clothes/upper/football/left.png differ diff --git a/img/clothes/upper/football/left_cover.png b/img/clothes/upper/football/left_cover.png index 89d609b3c1895504731344091113b3c835b1124a..6b402e6d136c04f00f0cd72a606f0935cc448c2a 100644 Binary files a/img/clothes/upper/football/left_cover.png and b/img/clothes/upper/football/left_cover.png differ diff --git a/img/clothes/upper/football/left_cover_gray.png b/img/clothes/upper/football/left_cover_gray.png index 89d609b3c1895504731344091113b3c835b1124a..835eb0497386ca5e9b425cb376509cfbb6f16779 100644 Binary files a/img/clothes/upper/football/left_cover_gray.png and b/img/clothes/upper/football/left_cover_gray.png differ diff --git a/img/clothes/upper/football/left_gray.png b/img/clothes/upper/football/left_gray.png index 89d609b3c1895504731344091113b3c835b1124a..9df8eaaf6c8e0e61b0d962938feb0a2e3d513adc 100644 Binary files a/img/clothes/upper/football/left_gray.png and b/img/clothes/upper/football/left_gray.png differ diff --git a/img/clothes/upper/football/right.png b/img/clothes/upper/football/right.png index 89d609b3c1895504731344091113b3c835b1124a..e5e6efc4e5c303348cf6630eb6e6dc6bbe79cebb 100644 Binary files a/img/clothes/upper/football/right.png and b/img/clothes/upper/football/right.png differ diff --git a/img/clothes/upper/football/right_cover.png b/img/clothes/upper/football/right_cover.png index 89d609b3c1895504731344091113b3c835b1124a..4ac1576bf9e6f168b5c51740f5aa0b022198dff3 100644 Binary files a/img/clothes/upper/football/right_cover.png and b/img/clothes/upper/football/right_cover.png differ diff --git a/img/clothes/upper/football/right_cover_gray.png b/img/clothes/upper/football/right_cover_gray.png index 89d609b3c1895504731344091113b3c835b1124a..1fa43a1ce8ec98fa16f689e7276f881d665dae95 100644 Binary files a/img/clothes/upper/football/right_cover_gray.png and b/img/clothes/upper/football/right_cover_gray.png differ diff --git a/img/clothes/upper/football/right_gray.png b/img/clothes/upper/football/right_gray.png index 89d609b3c1895504731344091113b3c835b1124a..1fa938715570cf026f68eeb825319073b7e54c01 100644 Binary files a/img/clothes/upper/football/right_gray.png and b/img/clothes/upper/football/right_gray.png differ diff --git a/img/clothes/upper/football/tattered.png b/img/clothes/upper/football/tattered.png index 6c0028b119ddb274817bc7929a112b2a5e396faa..752efabb7ae368021888529b311f53c05aa7ce22 100644 Binary files a/img/clothes/upper/football/tattered.png and b/img/clothes/upper/football/tattered.png differ diff --git a/img/clothes/upper/football/tattered_gray.png b/img/clothes/upper/football/tattered_gray.png index 5edaf045ed7035a2a38f7108ae81b9c8605bc78e..75bc23361f6e33ad645924f79836ef39ce0db453 100644 Binary files a/img/clothes/upper/football/tattered_gray.png and b/img/clothes/upper/football/tattered_gray.png differ diff --git a/img/clothes/upper/football/torn.png b/img/clothes/upper/football/torn.png index 416444cd16c9348839f6248299ad966e27da481b..5580a3da7b68ccaadc2dbfd8af29491505ee63f8 100644 Binary files a/img/clothes/upper/football/torn.png and b/img/clothes/upper/football/torn.png differ diff --git a/img/clothes/upper/football/torn_gray.png b/img/clothes/upper/football/torn_gray.png index b300816224490827b0dbf7d22fc8fcb363afe635..f78135b6f8c6be3d5bdf4c707d82ebf2581df416 100644 Binary files a/img/clothes/upper/football/torn_gray.png and b/img/clothes/upper/football/torn_gray.png differ diff --git a/img/clothes/upper/futuresuit/hold.png b/img/clothes/upper/futuresuit/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..27c7fd99ca2f06ba8586417b19bd0ac19ac8e265 Binary files /dev/null and b/img/clothes/upper/futuresuit/hold.png differ diff --git a/img/clothes/upper/futuresuit/hold_gray.png b/img/clothes/upper/futuresuit/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..4fcc8b7590b73af00a261e7efe6df2078bfc7a8c Binary files /dev/null and b/img/clothes/upper/futuresuit/hold_gray.png differ diff --git a/img/clothes/upper/gakuran/hold_gray.png b/img/clothes/upper/gakuran/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..1663bf34c82a5376ad3dd7d1e1c5d5c30c2e2741 Binary files /dev/null and b/img/clothes/upper/gakuran/hold_gray.png differ diff --git a/img/clothes/upper/gothic/hold.png b/img/clothes/upper/gothic/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..6b9f1cd0af51c028b125b096f1ca4b5c4c7a2441 Binary files /dev/null and b/img/clothes/upper/gothic/hold.png differ diff --git a/img/clothes/upper/gothicjacket/full.png b/img/clothes/upper/gothicjacket/full.png index 85a2b794ae97350e8cc4c296c42b022e3dbfa805..1087e30c5e3202d01a4c050a4bf496ebc1fc8065 100644 Binary files a/img/clothes/upper/gothicjacket/full.png and b/img/clothes/upper/gothicjacket/full.png differ diff --git a/img/clothes/upper/gothicjacket/hold.png b/img/clothes/upper/gothicjacket/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..3f8207d0bdc5c7f95fd5211a2f51a282f7d4db23 Binary files /dev/null and b/img/clothes/upper/gothicjacket/hold.png differ diff --git a/img/clothes/upper/gothicold/hold_gray.png b/img/clothes/upper/gothicold/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..713f3af2b7f88a19d3f4a7465abe909aeda75475 Binary files /dev/null and b/img/clothes/upper/gothicold/hold_gray.png differ diff --git a/img/clothes/upper/gymshirt/hold.png b/img/clothes/upper/gymshirt/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..3448a8be11a7a3fb659547a85e0871da74b741cb Binary files /dev/null and b/img/clothes/upper/gymshirt/hold.png differ diff --git a/img/clothes/upper/hanfu/hold.png b/img/clothes/upper/hanfu/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..e1a0e55693f58edd73b36ef1cc3b3f92113f6874 Binary files /dev/null and b/img/clothes/upper/hanfu/hold.png differ diff --git a/img/clothes/upper/hanfu/hold_gray.png b/img/clothes/upper/hanfu/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..521d06a82626ad3fb38d492d84429849a9a5fe37 Binary files /dev/null and b/img/clothes/upper/hanfu/hold_gray.png differ diff --git a/img/clothes/upper/hoodie/hold_gray.png b/img/clothes/upper/hoodie/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..502e8d4b20589a5f2c6ebab707133db285880500 Binary files /dev/null and b/img/clothes/upper/hoodie/hold_gray.png differ diff --git a/img/clothes/upper/hunt/hold_gray.png b/img/clothes/upper/hunt/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..2b7a87bba461104bf1a4b69243b8b2f8256ccb18 Binary files /dev/null and b/img/clothes/upper/hunt/hold_gray.png differ diff --git a/img/clothes/upper/utility/left_cover_gray.png b/img/clothes/upper/jingledress/0.png similarity index 100% rename from img/clothes/upper/utility/left_cover_gray.png rename to img/clothes/upper/jingledress/0.png diff --git a/img/clothes/upper/utility/left_gray.png b/img/clothes/upper/jingledress/1.png similarity index 100% rename from img/clothes/upper/utility/left_gray.png rename to img/clothes/upper/jingledress/1.png diff --git a/img/clothes/upper/utility/right_cover_gray.png b/img/clothes/upper/jingledress/2.png similarity index 100% rename from img/clothes/upper/utility/right_cover_gray.png rename to img/clothes/upper/jingledress/2.png diff --git a/img/clothes/upper/jingledress/3.png b/img/clothes/upper/jingledress/3.png new file mode 100644 index 0000000000000000000000000000000000000000..d181249d3a78fb2ce9970eaeac1abaa2966f4de7 Binary files /dev/null and b/img/clothes/upper/jingledress/3.png differ diff --git a/img/clothes/upper/jingledress/4.png b/img/clothes/upper/jingledress/4.png new file mode 100644 index 0000000000000000000000000000000000000000..906922583c7548cd46ba5ef274289de52447adb0 Binary files /dev/null and b/img/clothes/upper/jingledress/4.png differ diff --git a/img/clothes/upper/jingledress/5.png b/img/clothes/upper/jingledress/5.png new file mode 100644 index 0000000000000000000000000000000000000000..7bfcf149c45b5a9863938a23c09bc3c015258081 Binary files /dev/null and b/img/clothes/upper/jingledress/5.png differ diff --git a/img/clothes/upper/jingledress/6.png b/img/clothes/upper/jingledress/6.png new file mode 100644 index 0000000000000000000000000000000000000000..81ed7662aae300a48508362ed3ca7133932fc7bb Binary files /dev/null and b/img/clothes/upper/jingledress/6.png differ diff --git a/img/clothes/upper/jingledress/frayed.png b/img/clothes/upper/jingledress/frayed.png new file mode 100644 index 0000000000000000000000000000000000000000..83fbb03586668cc44499d4a4a8af0d4639238415 Binary files /dev/null and b/img/clothes/upper/jingledress/frayed.png differ diff --git a/img/clothes/upper/jingledress/full.png b/img/clothes/upper/jingledress/full.png new file mode 100644 index 0000000000000000000000000000000000000000..7c434033db1dd566a13eceb4c5db39028aa6c258 Binary files /dev/null and b/img/clothes/upper/jingledress/full.png differ diff --git a/img/clothes/upper/jingledress/hold.png b/img/clothes/upper/jingledress/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..aabc1a7f5ba7c9a173cca22e7abeb277bec6dfa8 Binary files /dev/null and b/img/clothes/upper/jingledress/hold.png differ diff --git a/img/clothes/upper/jingledress/left.png b/img/clothes/upper/jingledress/left.png new file mode 100644 index 0000000000000000000000000000000000000000..c9b06eda69796da3f0e09143b15b2216912b4b5e Binary files /dev/null and b/img/clothes/upper/jingledress/left.png differ diff --git a/img/clothes/upper/jingledress/left_cover.png b/img/clothes/upper/jingledress/left_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..24d4daf2153f5ea3c0c5d19616ef072180640a30 Binary files /dev/null and b/img/clothes/upper/jingledress/left_cover.png differ diff --git a/img/clothes/upper/jingledress/right.png b/img/clothes/upper/jingledress/right.png new file mode 100644 index 0000000000000000000000000000000000000000..3dc2c1f4e8a542b417d1e5cdaa0ef8bd50bc6b4a Binary files /dev/null and b/img/clothes/upper/jingledress/right.png differ diff --git a/img/clothes/upper/jingledress/right_cover.png b/img/clothes/upper/jingledress/right_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..356932c4dbec22e7a0972f28233f5b4cabc2ef99 Binary files /dev/null and b/img/clothes/upper/jingledress/right_cover.png differ diff --git a/img/clothes/upper/jingledress/tattered.png b/img/clothes/upper/jingledress/tattered.png new file mode 100644 index 0000000000000000000000000000000000000000..e061549a31e38966fd9285ec90ccdab3ff415170 Binary files /dev/null and b/img/clothes/upper/jingledress/tattered.png differ diff --git a/img/clothes/upper/jingledress/torn.png b/img/clothes/upper/jingledress/torn.png new file mode 100644 index 0000000000000000000000000000000000000000..96dae525b2892a97d37c6c949ea0502be4158262 Binary files /dev/null and b/img/clothes/upper/jingledress/torn.png differ diff --git a/img/clothes/upper/utility/right_gray.png b/img/clothes/upper/jingledresssleeveless/0.png similarity index 100% rename from img/clothes/upper/utility/right_gray.png rename to img/clothes/upper/jingledresssleeveless/0.png diff --git a/img/clothes/upper/jingledresssleeveless/1.png b/img/clothes/upper/jingledresssleeveless/1.png new file mode 100644 index 0000000000000000000000000000000000000000..5903f168d5e2dd0b3fd1b06b3c32bc2cb31d21c1 Binary files /dev/null and b/img/clothes/upper/jingledresssleeveless/1.png differ diff --git a/img/clothes/upper/jingledresssleeveless/2.png b/img/clothes/upper/jingledresssleeveless/2.png new file mode 100644 index 0000000000000000000000000000000000000000..5903f168d5e2dd0b3fd1b06b3c32bc2cb31d21c1 Binary files /dev/null and b/img/clothes/upper/jingledresssleeveless/2.png differ diff --git a/img/clothes/upper/jingledresssleeveless/3.png b/img/clothes/upper/jingledresssleeveless/3.png new file mode 100644 index 0000000000000000000000000000000000000000..d181249d3a78fb2ce9970eaeac1abaa2966f4de7 Binary files /dev/null and b/img/clothes/upper/jingledresssleeveless/3.png differ diff --git a/img/clothes/upper/jingledresssleeveless/4.png b/img/clothes/upper/jingledresssleeveless/4.png new file mode 100644 index 0000000000000000000000000000000000000000..906922583c7548cd46ba5ef274289de52447adb0 Binary files /dev/null and b/img/clothes/upper/jingledresssleeveless/4.png differ diff --git a/img/clothes/upper/jingledresssleeveless/5.png b/img/clothes/upper/jingledresssleeveless/5.png new file mode 100644 index 0000000000000000000000000000000000000000..7bfcf149c45b5a9863938a23c09bc3c015258081 Binary files /dev/null and b/img/clothes/upper/jingledresssleeveless/5.png differ diff --git a/img/clothes/upper/jingledresssleeveless/6.png b/img/clothes/upper/jingledresssleeveless/6.png new file mode 100644 index 0000000000000000000000000000000000000000..81ed7662aae300a48508362ed3ca7133932fc7bb Binary files /dev/null and b/img/clothes/upper/jingledresssleeveless/6.png differ diff --git a/img/clothes/upper/jingledresssleeveless/frayed.png b/img/clothes/upper/jingledresssleeveless/frayed.png new file mode 100644 index 0000000000000000000000000000000000000000..83fbb03586668cc44499d4a4a8af0d4639238415 Binary files /dev/null and b/img/clothes/upper/jingledresssleeveless/frayed.png differ diff --git a/img/clothes/upper/jingledresssleeveless/full.png b/img/clothes/upper/jingledresssleeveless/full.png new file mode 100644 index 0000000000000000000000000000000000000000..7c434033db1dd566a13eceb4c5db39028aa6c258 Binary files /dev/null and b/img/clothes/upper/jingledresssleeveless/full.png differ diff --git a/img/clothes/upper/jingledresssleeveless/hold.png b/img/clothes/upper/jingledresssleeveless/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..aabc1a7f5ba7c9a173cca22e7abeb277bec6dfa8 Binary files /dev/null and b/img/clothes/upper/jingledresssleeveless/hold.png differ diff --git a/img/clothes/upper/jingledresssleeveless/tattered.png b/img/clothes/upper/jingledresssleeveless/tattered.png new file mode 100644 index 0000000000000000000000000000000000000000..e061549a31e38966fd9285ec90ccdab3ff415170 Binary files /dev/null and b/img/clothes/upper/jingledresssleeveless/tattered.png differ diff --git a/img/clothes/upper/jingledresssleeveless/torn.png b/img/clothes/upper/jingledresssleeveless/torn.png new file mode 100644 index 0000000000000000000000000000000000000000..96dae525b2892a97d37c6c949ea0502be4158262 Binary files /dev/null and b/img/clothes/upper/jingledresssleeveless/torn.png differ diff --git a/img/clothes/upper/jumper/1_gray.png b/img/clothes/upper/jumper/1_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..80bb9b3daa0feee578a6ea4f5d011f2fac4264f6 Binary files /dev/null and b/img/clothes/upper/jumper/1_gray.png differ diff --git a/img/clothes/upper/jumper/2_gray.png b/img/clothes/upper/jumper/2_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..428311d4bd1888303cc5df33066620018f794871 Binary files /dev/null and b/img/clothes/upper/jumper/2_gray.png differ diff --git a/img/clothes/upper/jumper/3_gray.png b/img/clothes/upper/jumper/3_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..bf3b2c3a6389babbeb6c24a04a23bdb4375a33a4 Binary files /dev/null and b/img/clothes/upper/jumper/3_gray.png differ diff --git a/img/clothes/upper/jumper/4_gray.png b/img/clothes/upper/jumper/4_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..c3610d371b61dec6a2991ff6676c988f8c8c50f1 Binary files /dev/null and b/img/clothes/upper/jumper/4_gray.png differ diff --git a/img/clothes/upper/jumper/5_gray.png b/img/clothes/upper/jumper/5_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..beb8f536e3c2f4a7a04e177fbde84902d7a67068 Binary files /dev/null and b/img/clothes/upper/jumper/5_gray.png differ diff --git a/img/clothes/upper/jumper/acc_frayed_gray.png b/img/clothes/upper/jumper/acc_frayed_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..b5926081b5aa42488dabb96f72acabe2d3ee52cf Binary files /dev/null and b/img/clothes/upper/jumper/acc_frayed_gray.png differ diff --git a/img/clothes/upper/jumper/acc_full_gray.png b/img/clothes/upper/jumper/acc_full_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..7600347a58bc322699a701411b7b68abc8523c2e Binary files /dev/null and b/img/clothes/upper/jumper/acc_full_gray.png differ diff --git a/img/clothes/upper/jumper/acc_tattered_gray.png b/img/clothes/upper/jumper/acc_tattered_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..0f45bd53bdf8ec8dc38ddea01081e8581b130790 Binary files /dev/null and b/img/clothes/upper/jumper/acc_tattered_gray.png differ diff --git a/img/clothes/upper/jumper/acc_torn_gray.png b/img/clothes/upper/jumper/acc_torn_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..db030c033465942710b71c9dc55646f51ccfecd2 Binary files /dev/null and b/img/clothes/upper/jumper/acc_torn_gray.png differ diff --git a/img/clothes/upper/jumper/frayed_gray.png b/img/clothes/upper/jumper/frayed_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..f1037bfe513a4d94ecd5bfbf3d791730f5fe5527 Binary files /dev/null and b/img/clothes/upper/jumper/frayed_gray.png differ diff --git a/img/clothes/upper/jumper/full_gray.png b/img/clothes/upper/jumper/full_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..b86d3b8456e3b5de8192fba8ba5e3b0b4a08cbcb Binary files /dev/null and b/img/clothes/upper/jumper/full_gray.png differ diff --git a/img/clothes/upper/jumper/hold_acc_gray.png b/img/clothes/upper/jumper/hold_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..522605ee4760d3b9f0fc2b81472eb349481d0d65 Binary files /dev/null and b/img/clothes/upper/jumper/hold_acc_gray.png differ diff --git a/img/clothes/upper/jumper/hold_gray.png b/img/clothes/upper/jumper/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..b3e306524ca010f1cade5d1438987e1b934b697b Binary files /dev/null and b/img/clothes/upper/jumper/hold_gray.png differ diff --git a/img/clothes/upper/jumper/left_acc_gray.png b/img/clothes/upper/jumper/left_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..b3e9f809ddca4d04e00efc36b66d230d5aed5ac5 Binary files /dev/null and b/img/clothes/upper/jumper/left_acc_gray.png differ diff --git a/img/clothes/upper/jumper/left_cover_acc.png b/img/clothes/upper/jumper/left_cover_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..2a34330f6a2fd659bc71525b76ee6cf18855ed54 Binary files /dev/null and b/img/clothes/upper/jumper/left_cover_acc.png differ diff --git a/img/clothes/upper/jumper/left_cover_gray.png b/img/clothes/upper/jumper/left_cover_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..894840d4667cd91d6ff20c0e9911130213bbf951 Binary files /dev/null and b/img/clothes/upper/jumper/left_cover_gray.png differ diff --git a/img/clothes/upper/jumper/left_gray.png b/img/clothes/upper/jumper/left_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..03d1e1d364b44951ac0e191ddf5ef6ebb5a0c4f7 Binary files /dev/null and b/img/clothes/upper/jumper/left_gray.png differ diff --git a/img/clothes/upper/jumper/right_acc_gray.png b/img/clothes/upper/jumper/right_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..248f27366a7604f77952d9bede3b34c6e28721e7 Binary files /dev/null and b/img/clothes/upper/jumper/right_acc_gray.png differ diff --git a/img/clothes/upper/jumper/right_cover_gray.png b/img/clothes/upper/jumper/right_cover_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..ab48d46b95d69ec9869de0fde764e8f8a72c9f6e Binary files /dev/null and b/img/clothes/upper/jumper/right_cover_gray.png differ diff --git a/img/clothes/upper/jumper/right_gray.png b/img/clothes/upper/jumper/right_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..2c9c23b617eb47cbf437256d9759a9206605c547 Binary files /dev/null and b/img/clothes/upper/jumper/right_gray.png differ diff --git a/img/clothes/upper/jumper/tattered_gray.png b/img/clothes/upper/jumper/tattered_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..7ffa610f80f34d6930bbaf8f3eeb7bc5f15cd1fa Binary files /dev/null and b/img/clothes/upper/jumper/tattered_gray.png differ diff --git a/img/clothes/upper/jumper/torn_gray.png b/img/clothes/upper/jumper/torn_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..0add6d1ffbf039f30ec2d51f82af46217a61a448 Binary files /dev/null and b/img/clothes/upper/jumper/torn_gray.png differ diff --git a/img/clothes/upper/jumperghost/1_gray.png b/img/clothes/upper/jumperghost/1_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..80bb9b3daa0feee578a6ea4f5d011f2fac4264f6 Binary files /dev/null and b/img/clothes/upper/jumperghost/1_gray.png differ diff --git a/img/clothes/upper/jumperghost/2_gray.png b/img/clothes/upper/jumperghost/2_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..428311d4bd1888303cc5df33066620018f794871 Binary files /dev/null and b/img/clothes/upper/jumperghost/2_gray.png differ diff --git a/img/clothes/upper/jumperghost/3_gray.png b/img/clothes/upper/jumperghost/3_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..bf3b2c3a6389babbeb6c24a04a23bdb4375a33a4 Binary files /dev/null and b/img/clothes/upper/jumperghost/3_gray.png differ diff --git a/img/clothes/upper/jumperghost/4_gray.png b/img/clothes/upper/jumperghost/4_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..c3610d371b61dec6a2991ff6676c988f8c8c50f1 Binary files /dev/null and b/img/clothes/upper/jumperghost/4_gray.png differ diff --git a/img/clothes/upper/jumperghost/5_gray.png b/img/clothes/upper/jumperghost/5_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..beb8f536e3c2f4a7a04e177fbde84902d7a67068 Binary files /dev/null and b/img/clothes/upper/jumperghost/5_gray.png differ diff --git a/img/clothes/upper/jumperghost/acc_frayed_gray.png b/img/clothes/upper/jumperghost/acc_frayed_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..042d90598ffda0bbba7298c485d005f865b1e85e Binary files /dev/null and b/img/clothes/upper/jumperghost/acc_frayed_gray.png differ diff --git a/img/clothes/upper/jumperghost/acc_full_gray.png b/img/clothes/upper/jumperghost/acc_full_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..628df4c6daeabc3e9246b7b51a5a20354109991e Binary files /dev/null and b/img/clothes/upper/jumperghost/acc_full_gray.png differ diff --git a/img/clothes/upper/jumperghost/acc_tattered_gray.png b/img/clothes/upper/jumperghost/acc_tattered_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..306ec82a50f3ab68ddb329143cb027a7d9fa4977 Binary files /dev/null and b/img/clothes/upper/jumperghost/acc_tattered_gray.png differ diff --git a/img/clothes/upper/jumperghost/acc_torn_gray.png b/img/clothes/upper/jumperghost/acc_torn_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..bcdfd407d9448c721e5f816f6306a6814ab2b0ba Binary files /dev/null and b/img/clothes/upper/jumperghost/acc_torn_gray.png differ diff --git a/img/clothes/upper/jumperghost/frayed_gray.png b/img/clothes/upper/jumperghost/frayed_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..f1037bfe513a4d94ecd5bfbf3d791730f5fe5527 Binary files /dev/null and b/img/clothes/upper/jumperghost/frayed_gray.png differ diff --git a/img/clothes/upper/jumperghost/full_gray.png b/img/clothes/upper/jumperghost/full_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..b86d3b8456e3b5de8192fba8ba5e3b0b4a08cbcb Binary files /dev/null and b/img/clothes/upper/jumperghost/full_gray.png differ diff --git a/img/clothes/upper/jumperghost/hold_acc_gray.png b/img/clothes/upper/jumperghost/hold_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..522605ee4760d3b9f0fc2b81472eb349481d0d65 Binary files /dev/null and b/img/clothes/upper/jumperghost/hold_acc_gray.png differ diff --git a/img/clothes/upper/jumperghost/hold_gray.png b/img/clothes/upper/jumperghost/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..b3e306524ca010f1cade5d1438987e1b934b697b Binary files /dev/null and b/img/clothes/upper/jumperghost/hold_gray.png differ diff --git a/img/clothes/upper/jumperghost/left_acc_gray.png b/img/clothes/upper/jumperghost/left_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..b3e9f809ddca4d04e00efc36b66d230d5aed5ac5 Binary files /dev/null and b/img/clothes/upper/jumperghost/left_acc_gray.png differ diff --git a/img/clothes/upper/jumperghost/left_cover_acc.png b/img/clothes/upper/jumperghost/left_cover_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..2a34330f6a2fd659bc71525b76ee6cf18855ed54 Binary files /dev/null and b/img/clothes/upper/jumperghost/left_cover_acc.png differ diff --git a/img/clothes/upper/jumperghost/left_cover_gray.png b/img/clothes/upper/jumperghost/left_cover_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..894840d4667cd91d6ff20c0e9911130213bbf951 Binary files /dev/null and b/img/clothes/upper/jumperghost/left_cover_gray.png differ diff --git a/img/clothes/upper/jumperghost/left_gray.png b/img/clothes/upper/jumperghost/left_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..03d1e1d364b44951ac0e191ddf5ef6ebb5a0c4f7 Binary files /dev/null and b/img/clothes/upper/jumperghost/left_gray.png differ diff --git a/img/clothes/upper/jumperghost/right_acc_gray.png b/img/clothes/upper/jumperghost/right_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..248f27366a7604f77952d9bede3b34c6e28721e7 Binary files /dev/null and b/img/clothes/upper/jumperghost/right_acc_gray.png differ diff --git a/img/clothes/upper/jumperghost/right_cover_gray.png b/img/clothes/upper/jumperghost/right_cover_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..ab48d46b95d69ec9869de0fde764e8f8a72c9f6e Binary files /dev/null and b/img/clothes/upper/jumperghost/right_cover_gray.png differ diff --git a/img/clothes/upper/jumperghost/right_gray.png b/img/clothes/upper/jumperghost/right_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..2c9c23b617eb47cbf437256d9759a9206605c547 Binary files /dev/null and b/img/clothes/upper/jumperghost/right_gray.png differ diff --git a/img/clothes/upper/jumperghost/tattered_gray.png b/img/clothes/upper/jumperghost/tattered_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..7ffa610f80f34d6930bbaf8f3eeb7bc5f15cd1fa Binary files /dev/null and b/img/clothes/upper/jumperghost/tattered_gray.png differ diff --git a/img/clothes/upper/jumperghost/torn_gray.png b/img/clothes/upper/jumperghost/torn_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..0add6d1ffbf039f30ec2d51f82af46217a61a448 Binary files /dev/null and b/img/clothes/upper/jumperghost/torn_gray.png differ diff --git a/img/clothes/upper/jumperheart/1_gray.png b/img/clothes/upper/jumperheart/1_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..80bb9b3daa0feee578a6ea4f5d011f2fac4264f6 Binary files /dev/null and b/img/clothes/upper/jumperheart/1_gray.png differ diff --git a/img/clothes/upper/jumperheart/2_gray.png b/img/clothes/upper/jumperheart/2_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..428311d4bd1888303cc5df33066620018f794871 Binary files /dev/null and b/img/clothes/upper/jumperheart/2_gray.png differ diff --git a/img/clothes/upper/jumperheart/3_gray.png b/img/clothes/upper/jumperheart/3_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..bf3b2c3a6389babbeb6c24a04a23bdb4375a33a4 Binary files /dev/null and b/img/clothes/upper/jumperheart/3_gray.png differ diff --git a/img/clothes/upper/jumperheart/4_gray.png b/img/clothes/upper/jumperheart/4_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..c3610d371b61dec6a2991ff6676c988f8c8c50f1 Binary files /dev/null and b/img/clothes/upper/jumperheart/4_gray.png differ diff --git a/img/clothes/upper/jumperheart/5_gray.png b/img/clothes/upper/jumperheart/5_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..beb8f536e3c2f4a7a04e177fbde84902d7a67068 Binary files /dev/null and b/img/clothes/upper/jumperheart/5_gray.png differ diff --git a/img/clothes/upper/jumperheart/acc_frayed_gray.png b/img/clothes/upper/jumperheart/acc_frayed_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..86cac5ac629f8e6863cc463e2a62d30305c62bf4 Binary files /dev/null and b/img/clothes/upper/jumperheart/acc_frayed_gray.png differ diff --git a/img/clothes/upper/jumperheart/acc_full_gray.png b/img/clothes/upper/jumperheart/acc_full_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..bf80af8b69af2850f22fdac861a099843ba33f90 Binary files /dev/null and b/img/clothes/upper/jumperheart/acc_full_gray.png differ diff --git a/img/clothes/upper/jumperheart/acc_tattered_gray.png b/img/clothes/upper/jumperheart/acc_tattered_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..214fc89cc543abdaf08c816db029d8b8bdaf8c4b Binary files /dev/null and b/img/clothes/upper/jumperheart/acc_tattered_gray.png differ diff --git a/img/clothes/upper/jumperheart/acc_torn_gray.png b/img/clothes/upper/jumperheart/acc_torn_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..0cc465ed5a54f77e767753b57d4b39f85268f7bf Binary files /dev/null and b/img/clothes/upper/jumperheart/acc_torn_gray.png differ diff --git a/img/clothes/upper/jumperheart/frayed_gray.png b/img/clothes/upper/jumperheart/frayed_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..f1037bfe513a4d94ecd5bfbf3d791730f5fe5527 Binary files /dev/null and b/img/clothes/upper/jumperheart/frayed_gray.png differ diff --git a/img/clothes/upper/jumperheart/full_gray.png b/img/clothes/upper/jumperheart/full_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..b86d3b8456e3b5de8192fba8ba5e3b0b4a08cbcb Binary files /dev/null and b/img/clothes/upper/jumperheart/full_gray.png differ diff --git a/img/clothes/upper/jumperheart/hold_acc_gray.png b/img/clothes/upper/jumperheart/hold_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..522605ee4760d3b9f0fc2b81472eb349481d0d65 Binary files /dev/null and b/img/clothes/upper/jumperheart/hold_acc_gray.png differ diff --git a/img/clothes/upper/jumperheart/hold_gray.png b/img/clothes/upper/jumperheart/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..b3e306524ca010f1cade5d1438987e1b934b697b Binary files /dev/null and b/img/clothes/upper/jumperheart/hold_gray.png differ diff --git a/img/clothes/upper/jumperheart/left_acc_gray.png b/img/clothes/upper/jumperheart/left_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..b3e9f809ddca4d04e00efc36b66d230d5aed5ac5 Binary files /dev/null and b/img/clothes/upper/jumperheart/left_acc_gray.png differ diff --git a/img/clothes/upper/jumperheart/left_cover_acc.png b/img/clothes/upper/jumperheart/left_cover_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..2a34330f6a2fd659bc71525b76ee6cf18855ed54 Binary files /dev/null and b/img/clothes/upper/jumperheart/left_cover_acc.png differ diff --git a/img/clothes/upper/jumperheart/left_cover_gray.png b/img/clothes/upper/jumperheart/left_cover_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..894840d4667cd91d6ff20c0e9911130213bbf951 Binary files /dev/null and b/img/clothes/upper/jumperheart/left_cover_gray.png differ diff --git a/img/clothes/upper/jumperheart/left_gray.png b/img/clothes/upper/jumperheart/left_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..03d1e1d364b44951ac0e191ddf5ef6ebb5a0c4f7 Binary files /dev/null and b/img/clothes/upper/jumperheart/left_gray.png differ diff --git a/img/clothes/upper/jumperheart/right_acc_gray.png b/img/clothes/upper/jumperheart/right_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..248f27366a7604f77952d9bede3b34c6e28721e7 Binary files /dev/null and b/img/clothes/upper/jumperheart/right_acc_gray.png differ diff --git a/img/clothes/upper/jumperheart/right_cover_gray.png b/img/clothes/upper/jumperheart/right_cover_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..ab48d46b95d69ec9869de0fde764e8f8a72c9f6e Binary files /dev/null and b/img/clothes/upper/jumperheart/right_cover_gray.png differ diff --git a/img/clothes/upper/jumperheart/right_gray.png b/img/clothes/upper/jumperheart/right_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..2c9c23b617eb47cbf437256d9759a9206605c547 Binary files /dev/null and b/img/clothes/upper/jumperheart/right_gray.png differ diff --git a/img/clothes/upper/jumperheart/tattered_gray.png b/img/clothes/upper/jumperheart/tattered_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..7ffa610f80f34d6930bbaf8f3eeb7bc5f15cd1fa Binary files /dev/null and b/img/clothes/upper/jumperheart/tattered_gray.png differ diff --git a/img/clothes/upper/jumperheart/torn_gray.png b/img/clothes/upper/jumperheart/torn_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..0add6d1ffbf039f30ec2d51f82af46217a61a448 Binary files /dev/null and b/img/clothes/upper/jumperheart/torn_gray.png differ diff --git a/img/clothes/upper/jumperskull/1_gray.png b/img/clothes/upper/jumperskull/1_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..80bb9b3daa0feee578a6ea4f5d011f2fac4264f6 Binary files /dev/null and b/img/clothes/upper/jumperskull/1_gray.png differ diff --git a/img/clothes/upper/jumperskull/2_gray.png b/img/clothes/upper/jumperskull/2_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..428311d4bd1888303cc5df33066620018f794871 Binary files /dev/null and b/img/clothes/upper/jumperskull/2_gray.png differ diff --git a/img/clothes/upper/jumperskull/3_gray.png b/img/clothes/upper/jumperskull/3_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..bf3b2c3a6389babbeb6c24a04a23bdb4375a33a4 Binary files /dev/null and b/img/clothes/upper/jumperskull/3_gray.png differ diff --git a/img/clothes/upper/jumperskull/4_gray.png b/img/clothes/upper/jumperskull/4_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..c3610d371b61dec6a2991ff6676c988f8c8c50f1 Binary files /dev/null and b/img/clothes/upper/jumperskull/4_gray.png differ diff --git a/img/clothes/upper/jumperskull/5_gray.png b/img/clothes/upper/jumperskull/5_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..beb8f536e3c2f4a7a04e177fbde84902d7a67068 Binary files /dev/null and b/img/clothes/upper/jumperskull/5_gray.png differ diff --git a/img/clothes/upper/jumperskull/acc_frayed_gray.png b/img/clothes/upper/jumperskull/acc_frayed_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..d8dedbbf093f8e942d2a279a26171b1fea8e9bb8 Binary files /dev/null and b/img/clothes/upper/jumperskull/acc_frayed_gray.png differ diff --git a/img/clothes/upper/jumperskull/acc_full_gray.png b/img/clothes/upper/jumperskull/acc_full_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..120e03c89a2a56a6df33ec2b571bf7dec3100fb9 Binary files /dev/null and b/img/clothes/upper/jumperskull/acc_full_gray.png differ diff --git a/img/clothes/upper/jumperskull/acc_tattered_gray.png b/img/clothes/upper/jumperskull/acc_tattered_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..0f91d5b82f37ed2c1a1c847ed0b03187be084243 Binary files /dev/null and b/img/clothes/upper/jumperskull/acc_tattered_gray.png differ diff --git a/img/clothes/upper/jumperskull/acc_torn_gray.png b/img/clothes/upper/jumperskull/acc_torn_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..eea62be80e10e1cd7a77549e121377ba8f09ca4c Binary files /dev/null and b/img/clothes/upper/jumperskull/acc_torn_gray.png differ diff --git a/img/clothes/upper/jumperskull/frayed_gray.png b/img/clothes/upper/jumperskull/frayed_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..f1037bfe513a4d94ecd5bfbf3d791730f5fe5527 Binary files /dev/null and b/img/clothes/upper/jumperskull/frayed_gray.png differ diff --git a/img/clothes/upper/jumperskull/full_gray.png b/img/clothes/upper/jumperskull/full_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..b86d3b8456e3b5de8192fba8ba5e3b0b4a08cbcb Binary files /dev/null and b/img/clothes/upper/jumperskull/full_gray.png differ diff --git a/img/clothes/upper/jumperskull/hold_acc_gray.png b/img/clothes/upper/jumperskull/hold_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..522605ee4760d3b9f0fc2b81472eb349481d0d65 Binary files /dev/null and b/img/clothes/upper/jumperskull/hold_acc_gray.png differ diff --git a/img/clothes/upper/jumperskull/hold_gray.png b/img/clothes/upper/jumperskull/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..b3e306524ca010f1cade5d1438987e1b934b697b Binary files /dev/null and b/img/clothes/upper/jumperskull/hold_gray.png differ diff --git a/img/clothes/upper/jumperskull/left_acc_gray.png b/img/clothes/upper/jumperskull/left_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..b3e9f809ddca4d04e00efc36b66d230d5aed5ac5 Binary files /dev/null and b/img/clothes/upper/jumperskull/left_acc_gray.png differ diff --git a/img/clothes/upper/jumperskull/left_cover_acc.png b/img/clothes/upper/jumperskull/left_cover_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..2a34330f6a2fd659bc71525b76ee6cf18855ed54 Binary files /dev/null and b/img/clothes/upper/jumperskull/left_cover_acc.png differ diff --git a/img/clothes/upper/jumperskull/left_cover_gray.png b/img/clothes/upper/jumperskull/left_cover_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..894840d4667cd91d6ff20c0e9911130213bbf951 Binary files /dev/null and b/img/clothes/upper/jumperskull/left_cover_gray.png differ diff --git a/img/clothes/upper/jumperskull/left_gray.png b/img/clothes/upper/jumperskull/left_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..03d1e1d364b44951ac0e191ddf5ef6ebb5a0c4f7 Binary files /dev/null and b/img/clothes/upper/jumperskull/left_gray.png differ diff --git a/img/clothes/upper/jumperskull/right_acc_gray.png b/img/clothes/upper/jumperskull/right_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..248f27366a7604f77952d9bede3b34c6e28721e7 Binary files /dev/null and b/img/clothes/upper/jumperskull/right_acc_gray.png differ diff --git a/img/clothes/upper/jumperskull/right_cover_gray.png b/img/clothes/upper/jumperskull/right_cover_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..ab48d46b95d69ec9869de0fde764e8f8a72c9f6e Binary files /dev/null and b/img/clothes/upper/jumperskull/right_cover_gray.png differ diff --git a/img/clothes/upper/jumperskull/right_gray.png b/img/clothes/upper/jumperskull/right_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..2c9c23b617eb47cbf437256d9759a9206605c547 Binary files /dev/null and b/img/clothes/upper/jumperskull/right_gray.png differ diff --git a/img/clothes/upper/jumperskull/tattered_gray.png b/img/clothes/upper/jumperskull/tattered_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..7ffa610f80f34d6930bbaf8f3eeb7bc5f15cd1fa Binary files /dev/null and b/img/clothes/upper/jumperskull/tattered_gray.png differ diff --git a/img/clothes/upper/jumperskull/torn_gray.png b/img/clothes/upper/jumperskull/torn_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..0add6d1ffbf039f30ec2d51f82af46217a61a448 Binary files /dev/null and b/img/clothes/upper/jumperskull/torn_gray.png differ diff --git a/img/clothes/upper/jumperxmas/1_gray.png b/img/clothes/upper/jumperxmas/1_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..80bb9b3daa0feee578a6ea4f5d011f2fac4264f6 Binary files /dev/null and b/img/clothes/upper/jumperxmas/1_gray.png differ diff --git a/img/clothes/upper/jumperxmas/2_gray.png b/img/clothes/upper/jumperxmas/2_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..428311d4bd1888303cc5df33066620018f794871 Binary files /dev/null and b/img/clothes/upper/jumperxmas/2_gray.png differ diff --git a/img/clothes/upper/jumperxmas/3_gray.png b/img/clothes/upper/jumperxmas/3_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..bf3b2c3a6389babbeb6c24a04a23bdb4375a33a4 Binary files /dev/null and b/img/clothes/upper/jumperxmas/3_gray.png differ diff --git a/img/clothes/upper/jumperxmas/4_gray.png b/img/clothes/upper/jumperxmas/4_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..c3610d371b61dec6a2991ff6676c988f8c8c50f1 Binary files /dev/null and b/img/clothes/upper/jumperxmas/4_gray.png differ diff --git a/img/clothes/upper/jumperxmas/5_gray.png b/img/clothes/upper/jumperxmas/5_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..beb8f536e3c2f4a7a04e177fbde84902d7a67068 Binary files /dev/null and b/img/clothes/upper/jumperxmas/5_gray.png differ diff --git a/img/clothes/upper/jumperxmas/acc.png b/img/clothes/upper/jumperxmas/acc.png new file mode 100644 index 0000000000000000000000000000000000000000..8651e015d3d757b715de126ce3a7a7a9e431ee38 Binary files /dev/null and b/img/clothes/upper/jumperxmas/acc.png differ diff --git a/img/clothes/upper/jumperxmas/frayed_gray.png b/img/clothes/upper/jumperxmas/frayed_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..0c5e7007b4258990962256464a218dcf83acb20b Binary files /dev/null and b/img/clothes/upper/jumperxmas/frayed_gray.png differ diff --git a/img/clothes/upper/jumperxmas/full_gray.png b/img/clothes/upper/jumperxmas/full_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..a7f75e84525b24b77b455ab3e180639ebf0adcd4 Binary files /dev/null and b/img/clothes/upper/jumperxmas/full_gray.png differ diff --git a/img/clothes/upper/jumperxmas/hold_gray.png b/img/clothes/upper/jumperxmas/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..b3e306524ca010f1cade5d1438987e1b934b697b Binary files /dev/null and b/img/clothes/upper/jumperxmas/hold_gray.png differ diff --git a/img/clothes/upper/jumperxmas/left_cover_gray.png b/img/clothes/upper/jumperxmas/left_cover_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..9c7548b753a32c38b1847dd9951a91f852247710 Binary files /dev/null and b/img/clothes/upper/jumperxmas/left_cover_gray.png differ diff --git a/img/clothes/upper/jumperxmas/left_gray.png b/img/clothes/upper/jumperxmas/left_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..98b38de46d79dbcd6f0ca73536e0f935b744a0b2 Binary files /dev/null and b/img/clothes/upper/jumperxmas/left_gray.png differ diff --git a/img/clothes/upper/jumperxmas/right_cover_gray.png b/img/clothes/upper/jumperxmas/right_cover_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..ab48d46b95d69ec9869de0fde764e8f8a72c9f6e Binary files /dev/null and b/img/clothes/upper/jumperxmas/right_cover_gray.png differ diff --git a/img/clothes/upper/jumperxmas/right_gray.png b/img/clothes/upper/jumperxmas/right_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..4ba502b4ce7fd32779a1e9d6b2ade9ec48f14cd0 Binary files /dev/null and b/img/clothes/upper/jumperxmas/right_gray.png differ diff --git a/img/clothes/upper/jumperxmas/tattered_gray.png b/img/clothes/upper/jumperxmas/tattered_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..7b62aa1b7850ff2457f3b433b2873b52f1f2a520 Binary files /dev/null and b/img/clothes/upper/jumperxmas/tattered_gray.png differ diff --git a/img/clothes/upper/jumperxmas/torn_gray.png b/img/clothes/upper/jumperxmas/torn_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..d3ec505b26e4b0c526e81e7e462302c2d950541a Binary files /dev/null and b/img/clothes/upper/jumperxmas/torn_gray.png differ diff --git a/img/clothes/upper/jumpsuit/hold.png b/img/clothes/upper/jumpsuit/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..f391f3c79591c32ac7f167ad67ddb399d6b5a0ee Binary files /dev/null and b/img/clothes/upper/jumpsuit/hold.png differ diff --git a/img/clothes/upper/karate/hold.png b/img/clothes/upper/karate/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..18e491b31c9498faa472936ef86d1f99d7282119 Binary files /dev/null and b/img/clothes/upper/karate/hold.png differ diff --git a/img/clothes/upper/kimono/hold_gray.png b/img/clothes/upper/kimono/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..7e7932a33348c5f92d23ed90e1e6fe78502d5f99 Binary files /dev/null and b/img/clothes/upper/kimono/hold_gray.png differ diff --git a/img/clothes/upper/kimonomini/hold_gray.png b/img/clothes/upper/kimonomini/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..7e7932a33348c5f92d23ed90e1e6fe78502d5f99 Binary files /dev/null and b/img/clothes/upper/kimonomini/hold_gray.png differ diff --git a/img/clothes/upper/leder/hold.png b/img/clothes/upper/leder/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..f1074e26ef389058c7a20c73320fb3d14d203e91 Binary files /dev/null and b/img/clothes/upper/leder/hold.png differ diff --git a/img/clothes/upper/letterman/hold.png b/img/clothes/upper/letterman/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..a13b9a42108519227d5c9358b999a323ba630a5b Binary files /dev/null and b/img/clothes/upper/letterman/hold.png differ diff --git a/img/clothes/upper/letterman/hold_acc.png b/img/clothes/upper/letterman/hold_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..0fce6886854ba390f543863faf0fa9b89122b42b Binary files /dev/null and b/img/clothes/upper/letterman/hold_acc.png differ diff --git a/img/clothes/upper/letterman/hold_acc_gray.png b/img/clothes/upper/letterman/hold_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..7cec5ee691a2ac77c53dab0b04c1a36fde2d9569 Binary files /dev/null and b/img/clothes/upper/letterman/hold_acc_gray.png differ diff --git a/img/clothes/upper/letterman/hold_gray.png b/img/clothes/upper/letterman/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..a13b9a42108519227d5c9358b999a323ba630a5b Binary files /dev/null and b/img/clothes/upper/letterman/hold_gray.png differ diff --git a/img/clothes/upper/letterman/left real.png b/img/clothes/upper/letterman/left_acc.png similarity index 100% rename from img/clothes/upper/letterman/left real.png rename to img/clothes/upper/letterman/left_acc.png diff --git a/img/clothes/upper/letterman/left_acc_gray.png b/img/clothes/upper/letterman/left_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..fe08d6b351f5dc6e92c44a41a2c1923d4cede34f Binary files /dev/null and b/img/clothes/upper/letterman/left_acc_gray.png differ diff --git a/img/clothes/upper/letterman/left_cover real.png b/img/clothes/upper/letterman/left_cover_acc.png similarity index 100% rename from img/clothes/upper/letterman/left_cover real.png rename to img/clothes/upper/letterman/left_cover_acc.png diff --git a/img/clothes/upper/letterman/left_cover_acc_gray.png b/img/clothes/upper/letterman/left_cover_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..b37191de41efc55af3fc05369185b6c30795a741 Binary files /dev/null and b/img/clothes/upper/letterman/left_cover_acc_gray.png differ diff --git a/img/clothes/upper/letterman/right real.png b/img/clothes/upper/letterman/right_acc.png similarity index 100% rename from img/clothes/upper/letterman/right real.png rename to img/clothes/upper/letterman/right_acc.png diff --git a/img/clothes/upper/letterman/right_acc_gray.png b/img/clothes/upper/letterman/right_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..731dd156262d72a5f3bf2bff35d1e4f816f5962d Binary files /dev/null and b/img/clothes/upper/letterman/right_acc_gray.png differ diff --git a/img/clothes/upper/letterman/right_cover real.png b/img/clothes/upper/letterman/right_cover_acc.png similarity index 100% rename from img/clothes/upper/letterman/right_cover real.png rename to img/clothes/upper/letterman/right_cover_acc.png diff --git a/img/clothes/upper/letterman/right_cover_acc_gray.png b/img/clothes/upper/letterman/right_cover_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..e811bbe733a021c5bde713cc92bb7595ae2f4de1 Binary files /dev/null and b/img/clothes/upper/letterman/right_cover_acc_gray.png differ diff --git a/img/clothes/upper/maid/hold.png b/img/clothes/upper/maid/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..e0272a0023aa98c5db5f4801ca0b585810fe006a Binary files /dev/null and b/img/clothes/upper/maid/hold.png differ diff --git a/img/clothes/upper/monk/hold.png b/img/clothes/upper/monk/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..690c6d1857947b06d04667c7bb202044a0841653 Binary files /dev/null and b/img/clothes/upper/monk/hold.png differ diff --git a/img/clothes/upper/monster/hold.png b/img/clothes/upper/monster/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..c2ccaa05eadba8b3be298cb15f724b69ee65906e Binary files /dev/null and b/img/clothes/upper/monster/hold.png differ diff --git a/img/clothes/upper/monster/hold_acc.png b/img/clothes/upper/monster/hold_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..cf361b3f3dbb99bba89d9563e4a9494d6cf7d5a1 Binary files /dev/null and b/img/clothes/upper/monster/hold_acc.png differ diff --git a/img/clothes/upper/monster/hold_acc_gray.png b/img/clothes/upper/monster/hold_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..3e2370b08d10f9cd5bd508c1009b38a5b9a5d714 Binary files /dev/null and b/img/clothes/upper/monster/hold_acc_gray.png differ diff --git a/img/clothes/upper/monster/hold_gray.png b/img/clothes/upper/monster/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..82f0f950c8b4be649092bf2826fe069a53765a16 Binary files /dev/null and b/img/clothes/upper/monster/hold_gray.png differ diff --git a/img/clothes/upper/mummy/hold.png b/img/clothes/upper/mummy/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..d47f1478b22eeee1782402287e8544046e65f8f3 Binary files /dev/null and b/img/clothes/upper/mummy/hold.png differ diff --git a/img/clothes/upper/nun/hold.png b/img/clothes/upper/nun/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..53f51c2330131996f0b32bdca348a8c7040fe6cd Binary files /dev/null and b/img/clothes/upper/nun/hold.png differ diff --git a/img/clothes/upper/openshoulderlolita/hold_gray.png b/img/clothes/upper/openshoulderlolita/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..8917eb9148dd09bf75847c3bc24a747aa9b357a4 Binary files /dev/null and b/img/clothes/upper/openshoulderlolita/hold_gray.png differ diff --git a/img/clothes/upper/openshoulderscrop/hold.png b/img/clothes/upper/openshoulderscrop/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..93188dabdde37b8296fb7b739ec54c4959d04b34 Binary files /dev/null and b/img/clothes/upper/openshoulderscrop/hold.png differ diff --git a/img/clothes/upper/openshoulderscrop/hold_gray.png b/img/clothes/upper/openshoulderscrop/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..0899c70ba3dbe446d69ae2a5bd878fb34c9816b6 Binary files /dev/null and b/img/clothes/upper/openshoulderscrop/hold_gray.png differ diff --git a/img/clothes/upper/openshouldersweater/hold.png b/img/clothes/upper/openshouldersweater/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..1636c1cb5ec60721425baac14e54b00031df6eb9 Binary files /dev/null and b/img/clothes/upper/openshouldersweater/hold.png differ diff --git a/img/clothes/upper/openshouldersweater/hold_gray.png b/img/clothes/upper/openshouldersweater/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..a630ecddb954bf4e46f71f73e58b927d2320a417 Binary files /dev/null and b/img/clothes/upper/openshouldersweater/hold_gray.png differ diff --git a/img/clothes/upper/overalls/hold.png b/img/clothes/upper/overalls/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..0e2ffd003595a00a1ada0bad6110d62687ad8d8d Binary files /dev/null and b/img/clothes/upper/overalls/hold.png differ diff --git a/img/clothes/upper/patient/hold.png b/img/clothes/upper/patient/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..0c98a8b29c974cf91877f2dd2bdc640e1b1ed7e4 Binary files /dev/null and b/img/clothes/upper/patient/hold.png differ diff --git a/img/clothes/upper/patient/hold_gray.png b/img/clothes/upper/patient/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..5c81e884425ed53ee6408b87415a68a3ca1889ae Binary files /dev/null and b/img/clothes/upper/patient/hold_gray.png differ diff --git a/img/clothes/upper/peacoat/hold.png b/img/clothes/upper/peacoat/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..ed5733c6cfd47af98027b24359df699e829502e0 Binary files /dev/null and b/img/clothes/upper/peacoat/hold.png differ diff --git a/img/clothes/upper/peacoat/hold_gray.png b/img/clothes/upper/peacoat/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..6b67297451252f3a427d7f13cd1b61ca531b17dd Binary files /dev/null and b/img/clothes/upper/peacoat/hold_gray.png differ diff --git a/img/clothes/upper/pinknurse/hold.png b/img/clothes/upper/pinknurse/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..e94a783c1ec478d9421338fb0e4312597bf6a9c5 Binary files /dev/null and b/img/clothes/upper/pinknurse/hold.png differ diff --git a/img/clothes/upper/pinknurse/hold_gray.png b/img/clothes/upper/pinknurse/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..32c5a71ee55eb3dee66dbe642803be9ff0a89192 Binary files /dev/null and b/img/clothes/upper/pinknurse/hold_gray.png differ diff --git a/img/clothes/upper/pinksweater/frayed.png b/img/clothes/upper/pinksweater/frayed.png index 4ec6dc7ed3c43a4a0a0abdc963cb1756b5d7c9f6..39ac1a7086c1561c10ba19f1a203de8d83321324 100644 Binary files a/img/clothes/upper/pinksweater/frayed.png and b/img/clothes/upper/pinksweater/frayed.png differ diff --git a/img/clothes/upper/pinksweater/full.png b/img/clothes/upper/pinksweater/full.png index b30dc2468e8ba6d5db9dffc54143394005253c72..39ac1a7086c1561c10ba19f1a203de8d83321324 100644 Binary files a/img/clothes/upper/pinksweater/full.png and b/img/clothes/upper/pinksweater/full.png differ diff --git a/img/clothes/upper/pinksweater/hold.png b/img/clothes/upper/pinksweater/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..fd1aaed271c6bab305f946eb976f3363266fb11b Binary files /dev/null and b/img/clothes/upper/pinksweater/hold.png differ diff --git a/img/clothes/upper/pinksweater/tattered.png b/img/clothes/upper/pinksweater/tattered.png index 4ec6dc7ed3c43a4a0a0abdc963cb1756b5d7c9f6..39ac1a7086c1561c10ba19f1a203de8d83321324 100644 Binary files a/img/clothes/upper/pinksweater/tattered.png and b/img/clothes/upper/pinksweater/tattered.png differ diff --git a/img/clothes/upper/pinksweater/torn.png b/img/clothes/upper/pinksweater/torn.png index 4ec6dc7ed3c43a4a0a0abdc963cb1756b5d7c9f6..39ac1a7086c1561c10ba19f1a203de8d83321324 100644 Binary files a/img/clothes/upper/pinksweater/torn.png and b/img/clothes/upper/pinksweater/torn.png differ diff --git a/img/clothes/upper/pinksweaterlarge/hold.png b/img/clothes/upper/pinksweaterlarge/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..fd1aaed271c6bab305f946eb976f3363266fb11b Binary files /dev/null and b/img/clothes/upper/pinksweaterlarge/hold.png differ diff --git a/img/clothes/upper/pjs/hold.png b/img/clothes/upper/pjs/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..43f48a4c5e9a566bb2ef214401e772e6356426c1 Binary files /dev/null and b/img/clothes/upper/pjs/hold.png differ diff --git a/img/clothes/upper/pjs/hold_gray.png b/img/clothes/upper/pjs/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..dde0e4acd44ba574ff33c80d9a131d768ad9f551 Binary files /dev/null and b/img/clothes/upper/pjs/hold_gray.png differ diff --git a/img/clothes/upper/pjsmoon/hold.png b/img/clothes/upper/pjsmoon/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..45321512fdc015755b840424dc6d59e0f7d5801e Binary files /dev/null and b/img/clothes/upper/pjsmoon/hold.png differ diff --git a/img/clothes/upper/pjsmoon/hold_gray.png b/img/clothes/upper/pjsmoon/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..f2e1105ef791d50df5768809d77fbaf33b54545c Binary files /dev/null and b/img/clothes/upper/pjsmoon/hold_gray.png differ diff --git a/img/clothes/upper/pjsstar/hold.png b/img/clothes/upper/pjsstar/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..ca39ac56aedbdaeb038148525f22644bd8440319 Binary files /dev/null and b/img/clothes/upper/pjsstar/hold.png differ diff --git a/img/clothes/upper/pjsstar/hold_gray.png b/img/clothes/upper/pjsstar/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..e158adbbcaf01da1b411bea9fe347da5ed080109 Binary files /dev/null and b/img/clothes/upper/pjsstar/hold_gray.png differ diff --git a/img/clothes/upper/plasticnurse/hold.png b/img/clothes/upper/plasticnurse/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..e94a783c1ec478d9421338fb0e4312597bf6a9c5 Binary files /dev/null and b/img/clothes/upper/plasticnurse/hold.png differ diff --git a/img/clothes/upper/plasticnurse/hold_gray.png b/img/clothes/upper/plasticnurse/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..32c5a71ee55eb3dee66dbe642803be9ff0a89192 Binary files /dev/null and b/img/clothes/upper/plasticnurse/hold_gray.png differ diff --git a/img/clothes/upper/polo/hold_acc_gray.png b/img/clothes/upper/polo/hold_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..0dd26e3e5ebff151c9891549b803e9e07fcd8fe3 Binary files /dev/null and b/img/clothes/upper/polo/hold_acc_gray.png differ diff --git a/img/clothes/upper/polo/hold_gray.png b/img/clothes/upper/polo/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..61131fda0a4160aebe2a30de1165804b80206c8f Binary files /dev/null and b/img/clothes/upper/polo/hold_gray.png differ diff --git a/img/clothes/upper/prison/hold.png b/img/clothes/upper/prison/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..866f9905fb51c8b9ba9fdb66daea3a08d5fecce6 Binary files /dev/null and b/img/clothes/upper/prison/hold.png differ diff --git a/img/clothes/upper/puffer/hold.png b/img/clothes/upper/puffer/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..3c2ec85564d4e743ca0194b35c85481aca323037 Binary files /dev/null and b/img/clothes/upper/puffer/hold.png differ diff --git a/img/clothes/upper/puffer/hold_gray.png b/img/clothes/upper/puffer/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..de4ccd9d984a7f98abfb256a8fa9d0a2bb3bf309 Binary files /dev/null and b/img/clothes/upper/puffer/hold_gray.png differ diff --git a/img/clothes/upper/racing/hold.png b/img/clothes/upper/racing/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..5d39e484f1bb55b46356388412bc55d2665a742a Binary files /dev/null and b/img/clothes/upper/racing/hold.png differ diff --git a/img/clothes/upper/racing/hold_gray.png b/img/clothes/upper/racing/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..f12d51d83e8f14fcd316e7f86aa7cf3a43b40287 Binary files /dev/null and b/img/clothes/upper/racing/hold_gray.png differ diff --git a/img/clothes/upper/rag/hold.png b/img/clothes/upper/rag/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..0e2ffd003595a00a1ada0bad6110d62687ad8d8d Binary files /dev/null and b/img/clothes/upper/rag/hold.png differ diff --git a/img/clothes/upper/retro/hold.png b/img/clothes/upper/retro/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..8506c575bd004f1107fd44adc26d95633cc347c0 Binary files /dev/null and b/img/clothes/upper/retro/hold.png differ diff --git a/img/clothes/upper/retro/hold_gray.png b/img/clothes/upper/retro/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..81232dd725aad7201f05631ecef7cb4a88853e94 Binary files /dev/null and b/img/clothes/upper/retro/hold_gray.png differ diff --git a/img/clothes/upper/sailor/hold.png b/img/clothes/upper/sailor/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..8148adfe3265cc8b5cee2ab612cb885f0a97be1f Binary files /dev/null and b/img/clothes/upper/sailor/hold.png differ diff --git a/img/clothes/upper/sailor/hold_gray.png b/img/clothes/upper/sailor/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..94091d3b6f005186f167f66c3b6fd8c7e5550146 Binary files /dev/null and b/img/clothes/upper/sailor/hold_gray.png differ diff --git a/img/clothes/upper/sailorshort/hold.png b/img/clothes/upper/sailorshort/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..0f92198b04ab06bfa26ba267131dce5583e363be Binary files /dev/null and b/img/clothes/upper/sailorshort/hold.png differ diff --git a/img/clothes/upper/sailorshort/hold_gray.png b/img/clothes/upper/sailorshort/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..df0798cc878f620050c834b58b7d9b8e3024fe29 Binary files /dev/null and b/img/clothes/upper/sailorshort/hold_gray.png differ diff --git a/img/clothes/upper/scarecrow/hold.png b/img/clothes/upper/scarecrow/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..c04c9a84f066628f8376676fa7128f45e930addc Binary files /dev/null and b/img/clothes/upper/scarecrow/hold.png differ diff --git a/img/clothes/upper/schoolblouse/hold_gray.png b/img/clothes/upper/schoolblouse/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..85e0c3ef931f8811de94e72f71f5c350bd8ab34a Binary files /dev/null and b/img/clothes/upper/schoolblouse/hold_gray.png differ diff --git a/img/clothes/upper/schoolcardigan/hold_alt_gray.png b/img/clothes/upper/schoolcardigan/hold_alt_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..fc5219cc48bd17c58da4eba5ded3343fe844326d Binary files /dev/null and b/img/clothes/upper/schoolcardigan/hold_alt_gray.png differ diff --git a/img/clothes/upper/schoolcardigan/hold_gray.png b/img/clothes/upper/schoolcardigan/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..efa1213b5d4db4277372c859dd6f770471e90802 Binary files /dev/null and b/img/clothes/upper/schoolcardigan/hold_gray.png differ diff --git a/img/clothes/upper/schoolshirt/hold.png b/img/clothes/upper/schoolshirt/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..666fd57739aea7ec4cd4863841edc0a9a8d30412 Binary files /dev/null and b/img/clothes/upper/schoolshirt/hold.png differ diff --git a/img/clothes/upper/schoolshirt/hold_gray.png b/img/clothes/upper/schoolshirt/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..96e8c46cf53b414929d5a5ea890d7c328add65a6 Binary files /dev/null and b/img/clothes/upper/schoolshirt/hold_gray.png differ diff --git a/img/clothes/upper/scout/hold.png b/img/clothes/upper/scout/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..0208456d71dd6382cda412f8503c20479a209632 Binary files /dev/null and b/img/clothes/upper/scout/hold.png differ diff --git a/img/clothes/upper/scout/hold_gray.png b/img/clothes/upper/scout/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..ca94ba815bacc1c0fc8a28aff33289aec9d9ea84 Binary files /dev/null and b/img/clothes/upper/scout/hold_gray.png differ diff --git a/img/clothes/upper/serafuku/hold.png b/img/clothes/upper/serafuku/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..bd6b97d297d69da3c83a18c6b060e68397cbc0d3 Binary files /dev/null and b/img/clothes/upper/serafuku/hold.png differ diff --git a/img/clothes/upper/serafuku/hold_gray.png b/img/clothes/upper/serafuku/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..bf8d3fdbda28046fd324689ef9008abc1a3054ad Binary files /dev/null and b/img/clothes/upper/serafuku/hold_gray.png differ diff --git a/img/clothes/upper/serafuku_new/frayed_gray.png b/img/clothes/upper/serafuku_new/frayed_gray.png index 75c67a684cce0d42b1f3b3af73fe85187b1c8022..98a1074db22ddfafce689b91e0086e772cd48410 100644 Binary files a/img/clothes/upper/serafuku_new/frayed_gray.png and b/img/clothes/upper/serafuku_new/frayed_gray.png differ diff --git a/img/clothes/upper/serafuku_new/full_gray.png b/img/clothes/upper/serafuku_new/full_gray.png index 9015cdce482e3a47e2fca398c84d5a4826eb713a..fee71e5671e879ad443dac4d6818e44b09b2cb13 100644 Binary files a/img/clothes/upper/serafuku_new/full_gray.png and b/img/clothes/upper/serafuku_new/full_gray.png differ diff --git a/img/clothes/upper/serafuku_new/hold_acc_gray.png b/img/clothes/upper/serafuku_new/hold_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..54590fc4bdce01e07508b93340f6d5541a1d6097 Binary files /dev/null and b/img/clothes/upper/serafuku_new/hold_acc_gray.png differ diff --git a/img/clothes/upper/serafuku_new/hold_gray.png b/img/clothes/upper/serafuku_new/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..59a6c7f99f74d865eb5aba4861798f1ebdc65545 Binary files /dev/null and b/img/clothes/upper/serafuku_new/hold_gray.png differ diff --git a/img/clothes/upper/serafuku_new/tattered_gray.png b/img/clothes/upper/serafuku_new/tattered_gray.png index e5c01dcf3c0091608bd63204555a516e793a8521..bbd54fada6ff50073d979edaf0868670bd0f34d4 100644 Binary files a/img/clothes/upper/serafuku_new/tattered_gray.png and b/img/clothes/upper/serafuku_new/tattered_gray.png differ diff --git a/img/clothes/upper/serafuku_new/torn_gray.png b/img/clothes/upper/serafuku_new/torn_gray.png index ec3c848f3b79c0e0ad67b41659f27edd53a28a0b..097d59f8eac904bb075f905bc204e2b476fd5c71 100644 Binary files a/img/clothes/upper/serafuku_new/torn_gray.png and b/img/clothes/upper/serafuku_new/torn_gray.png differ diff --git a/img/clothes/upper/shadbelly/hold.png b/img/clothes/upper/shadbelly/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..3d6f8f6d15d43c77dcfe104512da57b41851db04 Binary files /dev/null and b/img/clothes/upper/shadbelly/hold.png differ diff --git a/img/clothes/upper/shortballgown/hold.png b/img/clothes/upper/shortballgown/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..0e2ffd003595a00a1ada0bad6110d62687ad8d8d Binary files /dev/null and b/img/clothes/upper/shortballgown/hold.png differ diff --git a/img/clothes/upper/shortballgown/hold_gray.png b/img/clothes/upper/shortballgown/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..0e2ffd003595a00a1ada0bad6110d62687ad8d8d Binary files /dev/null and b/img/clothes/upper/shortballgown/hold_gray.png differ diff --git a/img/clothes/upper/shrinemaiden/hold.png b/img/clothes/upper/shrinemaiden/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..5f9219b0060872f739242fa37f7b7a186f5867b7 Binary files /dev/null and b/img/clothes/upper/shrinemaiden/hold.png differ diff --git a/img/clothes/upper/singlebreasted/acc.png b/img/clothes/upper/singlebreasted/acc.png index 171c0640259382a40d67eccdd40f2c1a95f78842..ab356a44d28465bfc2887dd0c9b0f751e6a94400 100644 Binary files a/img/clothes/upper/singlebreasted/acc.png and b/img/clothes/upper/singlebreasted/acc.png differ diff --git a/img/clothes/upper/singlebreasted/acc_gray.png b/img/clothes/upper/singlebreasted/acc_gray.png index 5be6f3525d10e24759c80db2fb8fa54c5e02d5d5..aae905267b17235263ae61c13eb16818ac6e91a7 100644 Binary files a/img/clothes/upper/singlebreasted/acc_gray.png and b/img/clothes/upper/singlebreasted/acc_gray.png differ diff --git a/img/clothes/upper/singlebreasted/hold.png b/img/clothes/upper/singlebreasted/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..3f539fbc70aa7ff0214f47a98fda390ba4417363 Binary files /dev/null and b/img/clothes/upper/singlebreasted/hold.png differ diff --git a/img/clothes/upper/singlebreasted/hold_acc.png b/img/clothes/upper/singlebreasted/hold_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..a016b2ea24eec319eb60e3fe469211cf45931811 Binary files /dev/null and b/img/clothes/upper/singlebreasted/hold_acc.png differ diff --git a/img/clothes/upper/singlebreasted/hold_acc_gray.png b/img/clothes/upper/singlebreasted/hold_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..0fdaa5a301a305996759a36a6d94a97254bb20b6 Binary files /dev/null and b/img/clothes/upper/singlebreasted/hold_acc_gray.png differ diff --git a/img/clothes/upper/singlebreasted/hold_gray.png b/img/clothes/upper/singlebreasted/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..50bff4daecea7a83cbbe43c501b4be5432f6a6b4 Binary files /dev/null and b/img/clothes/upper/singlebreasted/hold_gray.png differ diff --git a/img/clothes/upper/singlebreasted/left_acc.png b/img/clothes/upper/singlebreasted/left_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..94bfc23a4470ac72f52eee0e6e442bc72e37a1d8 Binary files /dev/null and b/img/clothes/upper/singlebreasted/left_acc.png differ diff --git a/img/clothes/upper/singlebreasted/left_acc_gray.png b/img/clothes/upper/singlebreasted/left_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..a15b4ae87247c13479943ed0aaba82cd26d32e65 Binary files /dev/null and b/img/clothes/upper/singlebreasted/left_acc_gray.png differ diff --git a/img/clothes/upper/singlebreasted/left_cover_acc.png b/img/clothes/upper/singlebreasted/left_cover_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..c681de14c0d6ae7346c91d73da9a81a8b2dc1137 Binary files /dev/null and b/img/clothes/upper/singlebreasted/left_cover_acc.png differ diff --git a/img/clothes/upper/singlebreasted/left_cover_acc_gray.png b/img/clothes/upper/singlebreasted/left_cover_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..2acd9d2af085f608e3698fa309f00faf91f3942c Binary files /dev/null and b/img/clothes/upper/singlebreasted/left_cover_acc_gray.png differ diff --git a/img/clothes/upper/singlebreasted/right_acc.png b/img/clothes/upper/singlebreasted/right_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..50e118395898984e844b6c332a7c965d0665ce31 Binary files /dev/null and b/img/clothes/upper/singlebreasted/right_acc.png differ diff --git a/img/clothes/upper/singlebreasted/right_acc_gray.png b/img/clothes/upper/singlebreasted/right_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..22c0aad875c9b6db67bc76c1e7e2cda1d7774895 Binary files /dev/null and b/img/clothes/upper/singlebreasted/right_acc_gray.png differ diff --git a/img/clothes/upper/singlebreasted/right_cover_acc.png b/img/clothes/upper/singlebreasted/right_cover_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..a5b6898e8fc57e35cf9ab8a8add4da31934b6c05 Binary files /dev/null and b/img/clothes/upper/singlebreasted/right_cover_acc.png differ diff --git a/img/clothes/upper/singlebreasted/right_cover_acc_gray.png b/img/clothes/upper/singlebreasted/right_cover_acc_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..040b2d2a9f5102f380ad4dec950ce843ff435e58 Binary files /dev/null and b/img/clothes/upper/singlebreasted/right_cover_acc_gray.png differ diff --git a/img/clothes/upper/skele/hold.png b/img/clothes/upper/skele/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..9e94553320950f002597df636168a23758e8973f Binary files /dev/null and b/img/clothes/upper/skele/hold.png differ diff --git a/img/clothes/upper/skimpylolita/hold.png b/img/clothes/upper/skimpylolita/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..0e2ffd003595a00a1ada0bad6110d62687ad8d8d Binary files /dev/null and b/img/clothes/upper/skimpylolita/hold.png differ diff --git a/img/clothes/upper/skimpylolita/hold_gray.png b/img/clothes/upper/skimpylolita/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..0e2ffd003595a00a1ada0bad6110d62687ad8d8d Binary files /dev/null and b/img/clothes/upper/skimpylolita/hold_gray.png differ diff --git a/img/clothes/upper/slut/hold.png b/img/clothes/upper/slut/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..e128f6a9cf574e69e76679e423c9532abac6678b Binary files /dev/null and b/img/clothes/upper/slut/hold.png differ diff --git a/img/clothes/upper/slut/hold_gray.png b/img/clothes/upper/slut/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..896b43163b81e8b88f9818a6b9a47b1b823bef55 Binary files /dev/null and b/img/clothes/upper/slut/hold_gray.png differ diff --git a/img/clothes/upper/soccer/hold.png b/img/clothes/upper/soccer/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..dcd555ce3910fa1ecca5910343c7920e6b496765 Binary files /dev/null and b/img/clothes/upper/soccer/hold.png differ diff --git a/img/clothes/upper/soccer/hold_gray.png b/img/clothes/upper/soccer/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..72b303de7fadab7d0dd23dad27f86214516e8f16 Binary files /dev/null and b/img/clothes/upper/soccer/hold_gray.png differ diff --git a/img/clothes/upper/split/hold.png b/img/clothes/upper/split/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..6d475d6633b444912e3871b6888c1c4deb42caf1 Binary files /dev/null and b/img/clothes/upper/split/hold.png differ diff --git a/img/clothes/upper/split/hold_gray.png b/img/clothes/upper/split/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..64435f3a7574d13f78e3c03a2da2b1018e96a491 Binary files /dev/null and b/img/clothes/upper/split/hold_gray.png differ diff --git a/img/clothes/upper/straightjacket/hold.png b/img/clothes/upper/straightjacket/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..0e2ffd003595a00a1ada0bad6110d62687ad8d8d Binary files /dev/null and b/img/clothes/upper/straightjacket/hold.png differ diff --git a/img/clothes/upper/straightjacket_unbound/hold.png b/img/clothes/upper/straightjacket_unbound/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..882983db67ed30a54a5f801124ba6b0465b741c1 Binary files /dev/null and b/img/clothes/upper/straightjacket_unbound/hold.png differ diff --git a/img/clothes/upper/sweater/frayed.png b/img/clothes/upper/sweater/frayed.png index 3fe86d45395aa1e1a540b5296056c80030b42f51..5b11bf71f2c719d3961717de073dd423b67e1d33 100644 Binary files a/img/clothes/upper/sweater/frayed.png and b/img/clothes/upper/sweater/frayed.png differ diff --git a/img/clothes/upper/sweater/hold.png b/img/clothes/upper/sweater/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..32592b8e32565044f435f0a60ffb6e0734771153 Binary files /dev/null and b/img/clothes/upper/sweater/hold.png differ diff --git a/img/clothes/upper/sweater/tattered.png b/img/clothes/upper/sweater/tattered.png index 3fe86d45395aa1e1a540b5296056c80030b42f51..5b11bf71f2c719d3961717de073dd423b67e1d33 100644 Binary files a/img/clothes/upper/sweater/tattered.png and b/img/clothes/upper/sweater/tattered.png differ diff --git a/img/clothes/upper/sweater/torn.png b/img/clothes/upper/sweater/torn.png index 3fe86d45395aa1e1a540b5296056c80030b42f51..5b11bf71f2c719d3961717de073dd423b67e1d33 100644 Binary files a/img/clothes/upper/sweater/torn.png and b/img/clothes/upper/sweater/torn.png differ diff --git a/img/clothes/upper/sweaterlarge/hold.png b/img/clothes/upper/sweaterlarge/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..32592b8e32565044f435f0a60ffb6e0734771153 Binary files /dev/null and b/img/clothes/upper/sweaterlarge/hold.png differ diff --git a/img/clothes/upper/swimshirt/hold.png b/img/clothes/upper/swimshirt/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..ff0a45e70832be2a4f572aa01ba4e1670a091d97 Binary files /dev/null and b/img/clothes/upper/swimshirt/hold.png differ diff --git a/img/clothes/upper/swimshirt/hold_gray.png b/img/clothes/upper/swimshirt/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..e4e9ef112624407546617ae2327e820a5f09c907 Binary files /dev/null and b/img/clothes/upper/swimshirt/hold_gray.png differ diff --git a/img/clothes/upper/tanktop/frayed_gray.png b/img/clothes/upper/tanktop/frayed_gray.png index fe711668ab43347b8cffa24e1faf8b1f61130c9b..1b483eb11bc16575365e1033f892ee234796a34b 100644 Binary files a/img/clothes/upper/tanktop/frayed_gray.png and b/img/clothes/upper/tanktop/frayed_gray.png differ diff --git a/img/clothes/upper/tanktop/full_gray.png b/img/clothes/upper/tanktop/full_gray.png index 9d8049ece126726c73deb8d4a7bffb80aa43eb68..ee644ea24f7e9b62cc71f374cf3927b8f27fb28c 100644 Binary files a/img/clothes/upper/tanktop/full_gray.png and b/img/clothes/upper/tanktop/full_gray.png differ diff --git a/img/clothes/upper/tanktop/left.png b/img/clothes/upper/tanktop/left.png deleted file mode 100644 index ca1563d14aa99ea38360c97b5d32916c80b76aa9..0000000000000000000000000000000000000000 Binary files a/img/clothes/upper/tanktop/left.png and /dev/null differ diff --git a/img/clothes/upper/tanktop/left_cover.png b/img/clothes/upper/tanktop/left_cover.png deleted file mode 100644 index fec2adc71ce563f03bde8cb0680d4173e634ff30..0000000000000000000000000000000000000000 Binary files a/img/clothes/upper/tanktop/left_cover.png and /dev/null differ diff --git a/img/clothes/upper/tanktop/right.png b/img/clothes/upper/tanktop/right.png deleted file mode 100644 index ca1563d14aa99ea38360c97b5d32916c80b76aa9..0000000000000000000000000000000000000000 Binary files a/img/clothes/upper/tanktop/right.png and /dev/null differ diff --git a/img/clothes/upper/tanktop/right_cover.png b/img/clothes/upper/tanktop/right_cover.png deleted file mode 100644 index b0a213af616b8adbd65c7a049128fe2f332dcaa8..0000000000000000000000000000000000000000 Binary files a/img/clothes/upper/tanktop/right_cover.png and /dev/null differ diff --git a/img/clothes/upper/tiefronttop/hold.png b/img/clothes/upper/tiefronttop/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..0e2ffd003595a00a1ada0bad6110d62687ad8d8d Binary files /dev/null and b/img/clothes/upper/tiefronttop/hold.png differ diff --git a/img/clothes/upper/tiefronttop/hold_gray.png b/img/clothes/upper/tiefronttop/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..0e2ffd003595a00a1ada0bad6110d62687ad8d8d Binary files /dev/null and b/img/clothes/upper/tiefronttop/hold_gray.png differ diff --git a/img/clothes/upper/towellarge/hold.png b/img/clothes/upper/towellarge/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..0e2ffd003595a00a1ada0bad6110d62687ad8d8d Binary files /dev/null and b/img/clothes/upper/towellarge/hold.png differ diff --git a/img/clothes/upper/towellarge/hold_gray.png b/img/clothes/upper/towellarge/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..0e2ffd003595a00a1ada0bad6110d62687ad8d8d Binary files /dev/null and b/img/clothes/upper/towellarge/hold_gray.png differ diff --git a/img/clothes/upper/traditionalmaid/hold.png b/img/clothes/upper/traditionalmaid/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..ac58c3864955f3400bd0660930fd618dcfb4d82b Binary files /dev/null and b/img/clothes/upper/traditionalmaid/hold.png differ diff --git a/img/clothes/upper/transparentnurse/hold.png b/img/clothes/upper/transparentnurse/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..e94a783c1ec478d9421338fb0e4312597bf6a9c5 Binary files /dev/null and b/img/clothes/upper/transparentnurse/hold.png differ diff --git a/img/clothes/upper/transparentnurse/hold_gray.png b/img/clothes/upper/transparentnurse/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..32c5a71ee55eb3dee66dbe642803be9ff0a89192 Binary files /dev/null and b/img/clothes/upper/transparentnurse/hold_gray.png differ diff --git a/img/clothes/upper/tshirt/hold.png b/img/clothes/upper/tshirt/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..4b5adc18d1beaf2a0633d65573b3f2342f6a563f Binary files /dev/null and b/img/clothes/upper/tshirt/hold.png differ diff --git a/img/clothes/upper/tshirt/hold_gray.png b/img/clothes/upper/tshirt/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..a5b509ad6453e6071803493ea986ed341dd7a1ef Binary files /dev/null and b/img/clothes/upper/tshirt/hold_gray.png differ diff --git a/img/clothes/upper/turtleneck/hold.png b/img/clothes/upper/turtleneck/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..dd16331e4954fde3bc90c172aecce4a4a11008d9 Binary files /dev/null and b/img/clothes/upper/turtleneck/hold.png differ diff --git a/img/clothes/upper/turtleneck/hold_gray.png b/img/clothes/upper/turtleneck/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..ace01180393cfb1d88be8a749cb2202ff16fc36e Binary files /dev/null and b/img/clothes/upper/turtleneck/hold_gray.png differ diff --git a/img/clothes/upper/turtleneckjumper/hold.png b/img/clothes/upper/turtleneckjumper/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..dd16331e4954fde3bc90c172aecce4a4a11008d9 Binary files /dev/null and b/img/clothes/upper/turtleneckjumper/hold.png differ diff --git a/img/clothes/upper/turtleneckjumper/hold_gray.png b/img/clothes/upper/turtleneckjumper/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..ace01180393cfb1d88be8a749cb2202ff16fc36e Binary files /dev/null and b/img/clothes/upper/turtleneckjumper/hold_gray.png differ diff --git a/img/clothes/upper/tuxedo/frayed.png b/img/clothes/upper/tuxedo/frayed.png index afe60bee86757b24b81709709425ee3a7287e011..55be7ae106fa488237bac95fe2eaef323ba5bb66 100644 Binary files a/img/clothes/upper/tuxedo/frayed.png and b/img/clothes/upper/tuxedo/frayed.png differ diff --git a/img/clothes/upper/tuxedo/full.png b/img/clothes/upper/tuxedo/full.png index 6a322707ef3b6251e37e5ba6336ff4a546d7a64e..d8e02d30cac9f7255746928bde91581f1eb71ed3 100644 Binary files a/img/clothes/upper/tuxedo/full.png and b/img/clothes/upper/tuxedo/full.png differ diff --git a/img/clothes/upper/tuxedo/hold.png b/img/clothes/upper/tuxedo/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..78bbeed4649327ac80411d29e5063d9009f3ef4a Binary files /dev/null and b/img/clothes/upper/tuxedo/hold.png differ diff --git a/img/clothes/upper/tuxedo/tattered.png b/img/clothes/upper/tuxedo/tattered.png index 1dfa282cbe2f9ccbe14b3725d0faee7197e55a0d..43fe9e7316f92d168d029db3ec6cf75da33a7c60 100644 Binary files a/img/clothes/upper/tuxedo/tattered.png and b/img/clothes/upper/tuxedo/tattered.png differ diff --git a/img/clothes/upper/tuxedo/torn.png b/img/clothes/upper/tuxedo/torn.png index a481899706c5597a0cc802e7560dbc53897c2bbc..587ddea12412d1fb81fef8407c791b287d05c68e 100644 Binary files a/img/clothes/upper/tuxedo/torn.png and b/img/clothes/upper/tuxedo/torn.png differ diff --git a/img/clothes/upper/utility/left.png b/img/clothes/upper/utility/left.png deleted file mode 100644 index 89d609b3c1895504731344091113b3c835b1124a..0000000000000000000000000000000000000000 Binary files a/img/clothes/upper/utility/left.png and /dev/null differ diff --git a/img/clothes/upper/utility/left_cover.png b/img/clothes/upper/utility/left_cover.png deleted file mode 100644 index 89d609b3c1895504731344091113b3c835b1124a..0000000000000000000000000000000000000000 Binary files a/img/clothes/upper/utility/left_cover.png and /dev/null differ diff --git a/img/clothes/upper/utility/right.png b/img/clothes/upper/utility/right.png deleted file mode 100644 index 89d609b3c1895504731344091113b3c835b1124a..0000000000000000000000000000000000000000 Binary files a/img/clothes/upper/utility/right.png and /dev/null differ diff --git a/img/clothes/upper/utility/right_cover.png b/img/clothes/upper/utility/right_cover.png deleted file mode 100644 index 89d609b3c1895504731344091113b3c835b1124a..0000000000000000000000000000000000000000 Binary files a/img/clothes/upper/utility/right_cover.png and /dev/null differ diff --git a/img/clothes/upper/vampire/hold.png b/img/clothes/upper/vampire/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..bcb5ba133598dd7c243022d773981f93902101f6 Binary files /dev/null and b/img/clothes/upper/vampire/hold.png differ diff --git a/img/clothes/upper/vampire/hold_gray.png b/img/clothes/upper/vampire/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..1b8a01d7537202adf73d558cc1c0ba16a1ed6e06 Binary files /dev/null and b/img/clothes/upper/vampire/hold_gray.png differ diff --git a/img/clothes/upper/victorianmaid/hold.png b/img/clothes/upper/victorianmaid/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..6d14371efda02ac38682e00878d8cc0825a0c7c3 Binary files /dev/null and b/img/clothes/upper/victorianmaid/hold.png differ diff --git a/img/clothes/upper/victorianmaid/rightarmhold1.png.url b/img/clothes/upper/victorianmaid/rightarmhold1.png.url new file mode 100644 index 0000000000000000000000000000000000000000..7c16c3fd820384abd48a728f6066064f5eda23bd --- /dev/null +++ b/img/clothes/upper/victorianmaid/rightarmhold1.png.url @@ -0,0 +1,2 @@ +[InternetShortcut] +URL=https://cdn.discordapp.com/attachments/1039382317078151168/1167215468650696744/rightarmhold1.png?ex=654d511d&is=653adc1d&hm=43a93e21e39451db97ffe719937a9dea00def09a9e5ed93b2bca5c5a00419c1f& diff --git a/img/clothes/upper/virginkiller/hold.png b/img/clothes/upper/virginkiller/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..0e2ffd003595a00a1ada0bad6110d62687ad8d8d Binary files /dev/null and b/img/clothes/upper/virginkiller/hold.png differ diff --git a/img/clothes/upper/virginkiller/hold_gray.png b/img/clothes/upper/virginkiller/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..0e2ffd003595a00a1ada0bad6110d62687ad8d8d Binary files /dev/null and b/img/clothes/upper/virginkiller/hold_gray.png differ diff --git a/img/clothes/upper/vneck/hold.png b/img/clothes/upper/vneck/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..e3a132ca0d195b76afda3bacb15e3007908af59e Binary files /dev/null and b/img/clothes/upper/vneck/hold.png differ diff --git a/img/clothes/upper/vneck/hold_gray.png b/img/clothes/upper/vneck/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..df61c2d8cebaf4d1f25a240980e76799be273e8c Binary files /dev/null and b/img/clothes/upper/vneck/hold_gray.png differ diff --git a/img/clothes/upper/waiter/full.png b/img/clothes/upper/waiter/full.png index 49cfcabd37baa497e4da856063f5528288586857..a2c1289771ef127b2094fd33bfa4b8caede050af 100644 Binary files a/img/clothes/upper/waiter/full.png and b/img/clothes/upper/waiter/full.png differ diff --git a/img/clothes/upper/waiter/hold.png b/img/clothes/upper/waiter/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..4491b868ab4243e09951e1c9be1a5dbcb79ae47c Binary files /dev/null and b/img/clothes/upper/waiter/hold.png differ diff --git a/img/clothes/upper/waitress/hold.png b/img/clothes/upper/waitress/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..464f47ddbcfa887c902a79c9f750213bc5eb12db Binary files /dev/null and b/img/clothes/upper/waitress/hold.png differ diff --git a/img/clothes/upper/waitress/hold_gray.png b/img/clothes/upper/waitress/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..34cd0ec9b1ec8112772752eaabc345a578cdc97d Binary files /dev/null and b/img/clothes/upper/waitress/hold_gray.png differ diff --git a/img/clothes/upper/winterjacket/hold.png b/img/clothes/upper/winterjacket/hold.png new file mode 100644 index 0000000000000000000000000000000000000000..a5b314c9a0611d06498170bc313b11a005c61c82 Binary files /dev/null and b/img/clothes/upper/winterjacket/hold.png differ diff --git a/img/clothes/upper/winterjacket/hold_gray.png b/img/clothes/upper/winterjacket/hold_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..b0f4b4990589fa1a6a0a549d7b3e1d8960fa397e Binary files /dev/null and b/img/clothes/upper/winterjacket/hold_gray.png differ diff --git a/img/misc/icon/balloons.png b/img/misc/icon/balloons.png new file mode 100644 index 0000000000000000000000000000000000000000..6738e38eb4db961853745931559f1f5d791e3381 Binary files /dev/null and b/img/misc/icon/balloons.png differ diff --git a/img/misc/icon/cig.png b/img/misc/icon/cig.png new file mode 100644 index 0000000000000000000000000000000000000000..56ae318e14af69aa352853a16726d6236b26b878 Binary files /dev/null and b/img/misc/icon/cig.png differ diff --git a/img/misc/icon/clothes/backpack.png b/img/misc/icon/clothes/backpack.png new file mode 100644 index 0000000000000000000000000000000000000000..585410e7e0561d60325de4d0d344c1752acc01ee Binary files /dev/null and b/img/misc/icon/clothes/backpack.png differ diff --git a/img/misc/icon/clothes/backpack_acc.png b/img/misc/icon/clothes/backpack_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..f75b2e0741ce18d6fe0bd6ddf5d66b94408cc11a Binary files /dev/null and b/img/misc/icon/clothes/backpack_acc.png differ diff --git a/img/misc/icon/clothes/balloon.png b/img/misc/icon/clothes/balloon.png new file mode 100644 index 0000000000000000000000000000000000000000..77797e928f4ab2b30245e6969f173423e5bd2f9c Binary files /dev/null and b/img/misc/icon/clothes/balloon.png differ diff --git a/img/misc/icon/clothes/balloon_heart.png b/img/misc/icon/clothes/balloon_heart.png new file mode 100644 index 0000000000000000000000000000000000000000..2da99bc5b810b8a0f0995989e0d69dd383ab5a7d Binary files /dev/null and b/img/misc/icon/clothes/balloon_heart.png differ diff --git a/img/misc/icon/clothes/categories/handheld.png b/img/misc/icon/clothes/categories/handheld.png new file mode 100644 index 0000000000000000000000000000000000000000..b03566b161f562f0dd120a0227435a516a6cca13 Binary files /dev/null and b/img/misc/icon/clothes/categories/handheld.png differ diff --git a/img/misc/icon/clothes/fan.png b/img/misc/icon/clothes/fan.png new file mode 100644 index 0000000000000000000000000000000000000000..86a6de5369fd4aa25307a3b27ae7dffb514bfedd Binary files /dev/null and b/img/misc/icon/clothes/fan.png differ diff --git a/img/misc/icon/clothes/fan_acc.png b/img/misc/icon/clothes/fan_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..9fd19989f6f573d317f1a911ee844fa2ed955b58 Binary files /dev/null and b/img/misc/icon/clothes/fan_acc.png differ diff --git a/img/misc/icon/clothes/feather_duster.png b/img/misc/icon/clothes/feather_duster.png new file mode 100644 index 0000000000000000000000000000000000000000..6a61d4360e7fa0fcdbc5835d391002e32fb0a71f Binary files /dev/null and b/img/misc/icon/clothes/feather_duster.png differ diff --git a/img/misc/icon/clothes/fingerless_gloves_acc.png b/img/misc/icon/clothes/fingerless_gloves_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..e7f4017683e5d63a78ef1c85f0241336ba3313ba Binary files /dev/null and b/img/misc/icon/clothes/fingerless_gloves_acc.png differ diff --git a/img/misc/icon/clothes/heart_purse.png b/img/misc/icon/clothes/heart_purse.png new file mode 100644 index 0000000000000000000000000000000000000000..666f409a1405fad5bc3ae0c4e846e68e2ac7a49f Binary files /dev/null and b/img/misc/icon/clothes/heart_purse.png differ diff --git a/img/misc/icon/clothes/heart_purse_acc.png b/img/misc/icon/clothes/heart_purse_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..68075a1bdcbcb062d7d7c810256d4a5760ec0973 Binary files /dev/null and b/img/misc/icon/clothes/heart_purse_acc.png differ diff --git a/img/misc/icon/clothes/jinglebell_dress.png b/img/misc/icon/clothes/jinglebell_dress.png new file mode 100644 index 0000000000000000000000000000000000000000..2c8b3849f554ecacd2650abb528dfaf262d83243 Binary files /dev/null and b/img/misc/icon/clothes/jinglebell_dress.png differ diff --git a/img/misc/icon/clothes/jumper.png b/img/misc/icon/clothes/jumper.png new file mode 100644 index 0000000000000000000000000000000000000000..b50217112236253ab65991bf8df1c6e0da7b9516 Binary files /dev/null and b/img/misc/icon/clothes/jumper.png differ diff --git a/img/misc/icon/clothes/jumper_acc.png b/img/misc/icon/clothes/jumper_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..0aa685b27b82c1e34e7c70a223b7d9ea09a40d03 Binary files /dev/null and b/img/misc/icon/clothes/jumper_acc.png differ diff --git a/img/misc/icon/clothes/messenger_bag.png b/img/misc/icon/clothes/messenger_bag.png new file mode 100644 index 0000000000000000000000000000000000000000..08f04e6a51f6a5276b5625f50fede35e54d6142c Binary files /dev/null and b/img/misc/icon/clothes/messenger_bag.png differ diff --git a/img/misc/icon/clothes/messenger_bag_acc.png b/img/misc/icon/clothes/messenger_bag_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..9c0abf401d7d28e1446793fab46079ebec9e7de9 Binary files /dev/null and b/img/misc/icon/clothes/messenger_bag_acc.png differ diff --git a/img/misc/icon/clothes/paperparasol.png b/img/misc/icon/clothes/paperparasol.png new file mode 100644 index 0000000000000000000000000000000000000000..7dabf181bd3580f9eac40bd1be0ea0780a134ea9 Binary files /dev/null and b/img/misc/icon/clothes/paperparasol.png differ diff --git a/img/misc/icon/clothes/paperparasol_acc.png b/img/misc/icon/clothes/paperparasol_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..d4391f59f1ebb092507486429a8884fa26f4d56b Binary files /dev/null and b/img/misc/icon/clothes/paperparasol_acc.png differ diff --git a/img/misc/icon/clothes/parasol.png b/img/misc/icon/clothes/parasol.png new file mode 100644 index 0000000000000000000000000000000000000000..24ab5c4763d3a436002b3432f595f25f43a15837 Binary files /dev/null and b/img/misc/icon/clothes/parasol.png differ diff --git a/img/misc/icon/clothes/parasol_acc.png b/img/misc/icon/clothes/parasol_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..587fb14a488bf8c4b1b39be26883a20c357ce8a4 Binary files /dev/null and b/img/misc/icon/clothes/parasol_acc.png differ diff --git a/img/misc/icon/clothes/purse.png b/img/misc/icon/clothes/purse.png new file mode 100644 index 0000000000000000000000000000000000000000..44263bcacadb33c98d4b8bcbb183b105fda578eb Binary files /dev/null and b/img/misc/icon/clothes/purse.png differ diff --git a/img/misc/icon/clothes/purse_acc.png b/img/misc/icon/clothes/purse_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..08d64561a7992e08305d2939f8fce4a82437061e Binary files /dev/null and b/img/misc/icon/clothes/purse_acc.png differ diff --git a/img/misc/icon/clothes/sweetparasol_acc.png b/img/misc/icon/clothes/sweetparasol_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..f9480777c1d223b358202a418259d9368876ce8f Binary files /dev/null and b/img/misc/icon/clothes/sweetparasol_acc.png differ diff --git a/img/misc/icon/clothes/traits/bookbag.png b/img/misc/icon/clothes/traits/bookbag.png new file mode 100644 index 0000000000000000000000000000000000000000..9022820bab8f1625c97b4f5bd271637b2de67342 Binary files /dev/null and b/img/misc/icon/clothes/traits/bookbag.png differ diff --git a/img/misc/icon/clothes/umbrella.png b/img/misc/icon/clothes/umbrella.png new file mode 100644 index 0000000000000000000000000000000000000000..24ab5c4763d3a436002b3432f595f25f43a15837 Binary files /dev/null and b/img/misc/icon/clothes/umbrella.png differ diff --git a/img/misc/icon/clothes/umbrella_acc.png b/img/misc/icon/clothes/umbrella_acc.png new file mode 100644 index 0000000000000000000000000000000000000000..8e082cb39538c30ecfcc476d42573b0f6b64c9d9 Binary files /dev/null and b/img/misc/icon/clothes/umbrella_acc.png differ diff --git a/img/misc/icon/food_gingerbread.png b/img/misc/icon/food_gingerbread.png new file mode 100644 index 0000000000000000000000000000000000000000..373d3086d56d4c4fbc03e1b8e9ff38d0a73e81b0 Binary files /dev/null and b/img/misc/icon/food_gingerbread.png differ diff --git a/img/misc/icon/food_hotcider.png b/img/misc/icon/food_hotcider.png new file mode 100644 index 0000000000000000000000000000000000000000..78f36bdcb0e4a53d277b33f89eb7712a814a546f Binary files /dev/null and b/img/misc/icon/food_hotcider.png differ diff --git a/img/misc/icon/food_hotcocoa.png b/img/misc/icon/food_hotcocoa.png new file mode 100644 index 0000000000000000000000000000000000000000..a8a507d6925b22c8afc611fadade67d361de5623 Binary files /dev/null and b/img/misc/icon/food_hotcocoa.png differ diff --git a/img/misc/icon/food_popcorn.png b/img/misc/icon/food_popcorn.png new file mode 100644 index 0000000000000000000000000000000000000000..6c667161157a654679ffe9599c4d244c3720c0d2 Binary files /dev/null and b/img/misc/icon/food_popcorn.png differ diff --git a/img/misc/icon/food_strawberrylemonade.png b/img/misc/icon/food_strawberrylemonade.png new file mode 100644 index 0000000000000000000000000000000000000000..abdbdf7a4fc07c22dd9ffe82d9e6fa116d709503 Binary files /dev/null and b/img/misc/icon/food_strawberrylemonade.png differ diff --git a/img/misc/icon/stall_balloon.png b/img/misc/icon/stall_balloon.png new file mode 100644 index 0000000000000000000000000000000000000000..2284a668fdd0176d430b1e270c96fad00a134074 Binary files /dev/null and b/img/misc/icon/stall_balloon.png differ diff --git a/img/misc/normal/sex_shop_dusk_open.gif b/img/misc/normal/sex_shop_dusk_open.gif new file mode 100644 index 0000000000000000000000000000000000000000..5d3d1eb8093f45fbc65728c81c827ff7f28f93a6 Binary files /dev/null and b/img/misc/normal/sex_shop_dusk_open.gif differ diff --git a/img/misc/normal/sex_shop_night_open.gif b/img/misc/normal/sex_shop_night_open.gif new file mode 100644 index 0000000000000000000000000000000000000000..88cd72e5c2455ba7739d43b146df289b1249b44b Binary files /dev/null and b/img/misc/normal/sex_shop_night_open.gif differ diff --git a/img/sex/doggy/active/hands/pompoms/left hand.png b/img/sex/doggy/active/hands/pompoms/left hand.png index 6621eb7b54593e514d2cfbe0440cc3c1bda9d403..e831d9cf99854fbcb45a859cf8914c6a0bc51e78 100644 Binary files a/img/sex/doggy/active/hands/pompoms/left hand.png and b/img/sex/doggy/active/hands/pompoms/left hand.png differ diff --git a/img/sex/doggy/active/hands/pompoms/left handjob.png b/img/sex/doggy/active/hands/pompoms/left handjob.png index 2a61e2a1bcea5ab0c8d1cbe5291b57a595365bc8..586284af014a3d285c01a20f132d7aa3c39f85db 100644 Binary files a/img/sex/doggy/active/hands/pompoms/left handjob.png and b/img/sex/doggy/active/hands/pompoms/left handjob.png differ diff --git a/img/sex/doggy/active/hands/pompoms/right hand.png b/img/sex/doggy/active/hands/pompoms/right hand.png index fa70641e5f08dba206674ffd8a1fffaa20e7b0aa..2975866b9c6137e1551f5d1beb78559f233de7e0 100644 Binary files a/img/sex/doggy/active/hands/pompoms/right hand.png and b/img/sex/doggy/active/hands/pompoms/right hand.png differ diff --git a/img/sex/doggy/active/hands/pompoms/right handjob.png b/img/sex/doggy/active/hands/pompoms/right handjob.png index bbf3a244587e1a735d2f4a837fdc89f1e1d3037c..dc19a2196a810689d6c1713903cbdae17f1c244d 100644 Binary files a/img/sex/doggy/active/hands/pompoms/right handjob.png and b/img/sex/doggy/active/hands/pompoms/right handjob.png differ diff --git a/img/sex/missionary/active/hands/pompoms/left handjob.png b/img/sex/missionary/active/hands/pompoms/left handjob.png index 7803f634f3eb31a7e88e397352339b6f0d1f52d2..4a60350cf673fdb305ffb7c799da61298a567c59 100644 Binary files a/img/sex/missionary/active/hands/pompoms/left handjob.png and b/img/sex/missionary/active/hands/pompoms/left handjob.png differ diff --git a/img/sex/missionary/active/hands/pompoms/right arm stroke.png b/img/sex/missionary/active/hands/pompoms/right arm stroke.png index 949fb302c0622a689b8a92c36a1292953e38e8c0..e88e8dccb4c2f8c195284c9059a784fb111eba63 100644 Binary files a/img/sex/missionary/active/hands/pompoms/right arm stroke.png and b/img/sex/missionary/active/hands/pompoms/right arm stroke.png differ diff --git a/img/sex/missionary/active/hands/pompoms/right arm.png b/img/sex/missionary/active/hands/pompoms/right arm.png index ff6bfa3294ee67bcd96a57c39a7fe180db706670..bff14d4b60e648903a60df5f9a6581fc6e0cad02 100644 Binary files a/img/sex/missionary/active/hands/pompoms/right arm.png and b/img/sex/missionary/active/hands/pompoms/right arm.png differ diff --git a/img/sex/missionary/active/hands/pompoms/right handjob.png b/img/sex/missionary/active/hands/pompoms/right handjob.png index f7508eeccdc9549f6f80b3c56635f2cba7a34bab..614fefc1a7a05eb3bd5d94c407a6decfa015ecfc 100644 Binary files a/img/sex/missionary/active/hands/pompoms/right handjob.png and b/img/sex/missionary/active/hands/pompoms/right handjob.png differ