From 4c60d0c7f270b4b03dac5f3f16728c76f3e7ed90 Mon Sep 17 00:00:00 2001 From: JaySparrow Date: Sun, 14 Jun 2020 22:24:38 -0500 Subject: [PATCH] Bluespace sewing kit For big bits --- code/modules/clothing/clothing.dm | 16 ++++- code/modules/vending/clothesmate.dm | 3 +- hyperstation/code/obj/bluespace sewing kit.dm | 35 ++++++++++ hyperstation/code/obj/leash.dm | 9 ++- hyperstation/code/obj/rope.dm | 6 ++ hyperstation/icons/obj/bluespace_thread.dmi | Bin 0 -> 324 bytes .../code/datums/status_effects/chems.dm | 64 ++++++++++++------ .../code/game/machinery/vending.dm | 4 +- .../chemistry/reagents/enlargement.dm | 24 +++++-- tgstation.dme | 1 + 10 files changed, 129 insertions(+), 33 deletions(-) create mode 100644 hyperstation/code/obj/bluespace sewing kit.dm create mode 100644 hyperstation/icons/obj/bluespace_thread.dmi diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 08adb8e5..31776bd0 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -47,8 +47,8 @@ //Basically syntax is species_restricted = list("Species Name","Species Name") //Add a "exclude" string to do the opposite, making it only only species listed that can't wear it. //You append this to clothing objects. - - + //Hyper change// - Variables for HS13 checks + var/roomy = 0 //0 For false /obj/item/clothing/Initialize() @@ -95,6 +95,18 @@ obj_integrity = max_integrity to_chat(user, "You fix the damage on [src] with [C].") return 1 + //Hyper Change// + if(istype(W, /obj/item/bluespace_thread)) + var/obj/item/bluespace_thread/B = W + if (istype(src, /obj/item/clothing/under) || istype(src, /obj/item/clothing/suit)) //Make sure the thread is used on an item that could be ripped off in the first place + roomy = 1 //True + user.show_message("You add a few stiches to your clothing, and find them to fit a little looser.", 1) + B.uses -= 1 //One use has been used + if(B.uses <= 0) + user.show_message("The thread has been used up!", 1) + qdel(B) + else + user.show_message("You probably don't need any more room in that.", 1) return ..() /obj/item/clothing/Destroy() diff --git a/code/modules/vending/clothesmate.dm b/code/modules/vending/clothesmate.dm index 0e4252bb..4c77e09f 100644 --- a/code/modules/vending/clothesmate.dm +++ b/code/modules/vending/clothesmate.dm @@ -130,7 +130,8 @@ /obj/item/clothing/suit/jacket/leather/overcoat = 4, /obj/item/clothing/under/pants/mustangjeans = 3, /obj/item/clothing/neck/necklace/dope = 5, - /obj/item/clothing/suit/jacket/letterman_nanotrasen = 5) + /obj/item/clothing/suit/jacket/letterman_nanotrasen = 5, + /obj/item/bluespace_thread = 3) refill_canister = /obj/item/vending_refill/clothing /obj/item/vending_refill/clothing diff --git a/hyperstation/code/obj/bluespace sewing kit.dm b/hyperstation/code/obj/bluespace sewing kit.dm new file mode 100644 index 00000000..f466460e --- /dev/null +++ b/hyperstation/code/obj/bluespace sewing kit.dm @@ -0,0 +1,35 @@ +//Jay Sparrow +#define ROOMY = "ROOMY" + +/obj/item/bluespace_thread + name = "Bluespace Sewing Kit" + desc = "Thread infused with bluespace dust to make your clothes a little more roomy." + icon = 'hyperstation/icons/obj/bluespace_thread.dmi' + icon_state = "thread" + item_state = "thread" + var/uses = 2 //Give it two charges, so you can hit your uniform and jacket + +/obj/item/bluespace_thread/attack_obj(obj/O, mob/living/user) + . = ..() + if(!istype(O, /obj/item/clothing)) + user.show_message("You find yourself unable to stitch this.", 1) + return + + +/obj/item/bluespace_thread/attack_self(mob/living/user) + user.show_message("The spool has [uses] uses remaining.", 1) + +//Let's add this to the loadout screen +/datum/gear/bluespace_thread + name = "Bluespace Sewing Kit" + category = SLOT_IN_BACKPACK + path = /obj/item/bluespace_thread + +//Crafting recipe +/datum/crafting_recipe/bluespace_thread + name = "Bluespace Sewing Kit" + result = /obj/item/bluespace_thread + time = 40 + reqs = list(/obj/item/stack/ore/bluespace_crystal = 1, + /obj/item/stack/sheet/cloth = 2) + category = CAT_MISC \ No newline at end of file diff --git a/hyperstation/code/obj/leash.dm b/hyperstation/code/obj/leash.dm index 235fcc25..a4f94c98 100644 --- a/hyperstation/code/obj/leash.dm +++ b/hyperstation/code/obj/leash.dm @@ -87,7 +87,7 @@ Icons, maybe? //Called when someone is clicked with the leash /obj/item/leash/attack(mob/living/carbon/C, mob/living/user) //C is the target, user is the one with the leash - if(istype(C.get_item_by_slot(SLOT_NECK), /obj/item/clothing/neck/petcollar) || istype(C.get_item_by_slot(SLOT_NECK), /obj/item/electropack/shockcollar)) //TODO: Shock collars too why not + if(istype(C.get_item_by_slot(SLOT_NECK), /obj/item/clothing/neck/petcollar) || istype(C.get_item_by_slot(SLOT_NECK), /obj/item/electropack/shockcollar)) var/leashtime = 50 if(C.handcuffed) leashtime = 5 @@ -394,3 +394,10 @@ Icons, maybe? QDEL_NULL(mobhook_leash_freepet) leash_pet.add_movespeed_modifier(MOVESPEED_ID_LEASH, multiplicative_slowdown = 5) +/datum/crafting_recipe/leash + name = "Leash" + result = /obj/item/leash + time = 40 + reqs = list(/obj/item/stack/sheet/metal = 1, + /obj/item/stack/sheet/cloth = 3) + category = CAT_MISC \ No newline at end of file diff --git a/hyperstation/code/obj/rope.dm b/hyperstation/code/obj/rope.dm index 829257e4..98c933a2 100644 --- a/hyperstation/code/obj/rope.dm +++ b/hyperstation/code/obj/rope.dm @@ -47,3 +47,9 @@ if (!C.handcuffed) return //Break when the rope is removed +/datum/crafting_recipe/rope + name = "Soft Rope" + result = /obj/item/restraints/handcuffs/rope + time = 40 + reqs = list(/obj/item/stack/sheet/cloth = 5) + category = CAT_MISC \ No newline at end of file diff --git a/hyperstation/icons/obj/bluespace_thread.dmi b/hyperstation/icons/obj/bluespace_thread.dmi new file mode 100644 index 0000000000000000000000000000000000000000..77b9e6d57fa40eaf9e9b3408881cde3cf36b126b GIT binary patch literal 324 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv{s5m4*8>L*{Qv)d)22v3dZv#p(mIV0)GdMiEkp|>sRfR;9xTF>*7iAWdWaj5FFjUM54l5`s{r)Am;N#aP zTHd-^=gyoD-VkbV(fGk5o%24LCmD)*dUseD2N_>B_EMPhXws2MAqv4ORTgWQ8oG9N z8>?Qw%D5|E6z}U|!Ds;_t_bw@VMK-yFYFUOJ&SC4}+W%zX{hJq&u8ug;mn zz{zztT0G(2krjtI(#0oOJMkRO5Ik%U^}}FOsGE#x^mUIq$zopr05j-;UjP6A literal 0 HcmV?d00001 diff --git a/modular_citadel/code/datums/status_effects/chems.dm b/modular_citadel/code/datums/status_effects/chems.dm index 099d4559..599a590a 100644 --- a/modular_citadel/code/datums/status_effects/chems.dm +++ b/modular_citadel/code/datums/status_effects/chems.dm @@ -44,12 +44,16 @@ var/items = o.get_contents() for(var/obj/item/W in items) if(W == o.w_uniform || W == o.wear_suit) - o.dropItemToGround(W, TRUE) - playsound(o.loc, 'sound/items/poster_ripped.ogg', 50, 1) - to_chat(o, "Your clothes give, ripping into pieces under the strain of your swelling breasts! Unless you manage to reduce the size of your breasts, there's no way you're going to be able to put anything on over these melons..!") - o.visible_message("[o]'s chest suddenly bursts forth, ripping their clothes off!'") - else - to_chat(o, "Your bountiful bosom is so rich with mass, you seriously doubt you'll be able to fit any clothes over it.") + //Hyper change + var/obj/item/clothing/W2 = W + if(!W2.roomy == 1) //If the clothes are "roomy" then don't do this. + //Hyper change end + o.dropItemToGround(W, TRUE) + playsound(o.loc, 'sound/items/poster_ripped.ogg', 50, 1) + to_chat(o, "Your clothes give, ripping into pieces under the strain of your swelling breasts! Unless you manage to reduce the size of your breasts, there's no way you're going to be able to put anything on over these melons..!") + o.visible_message("[o]'s chest suddenly bursts forth, ripping their clothes off!'") + else + to_chat(o, "Your bountiful bosom is so rich with mass, you seriously doubt you'll be able to fit any clothes over it.") return ..() /datum/status_effect/chem/breast_enlarger/tick(mob/living/carbon/human/H)//If you try to wear clothes, you fail. Slows you down if you're comically huge @@ -66,9 +70,13 @@ var/items = o.get_contents() for(var/obj/item/W in items) if(W == o.w_uniform || W == o.wear_suit) - o.dropItemToGround(W, TRUE) - playsound(o.loc, 'sound/items/poster_ripped.ogg', 50, 1) - to_chat(owner, "Your enormous breasts are way too large to fit anything over them!") + //Hyper change// Check for a flag before we remove clothes. + var/obj/item/clothing/W2 = W + if(!W2.roomy == 1) //If the clothes are "roomy" then don't do this. + //End Hyper Change// + o.dropItemToGround(W, TRUE) + playsound(o.loc, 'sound/items/poster_ripped.ogg', 50, 1) + to_chat(owner, "Your enormous breasts are way too large to fit anything over them!") /* if (B.size == "huge") if(prob(1)) @@ -125,14 +133,23 @@ var/mob/living/carbon/human/o = owner var/items = o.get_contents() if(o.w_uniform || o.wear_suit) - to_chat(o, "Your clothes give, ripping into peices under the strain of your swelling pecker! Unless you manage to reduce the size of your emancipated trouser snake, there's no way you're going to be able to put anything on over this girth..!") - owner.visible_message("[o]'s schlong suddenly bursts forth, ripping their clothes off!'") + //Hyper change// Check for a flag before we remove clothes. + var/obj/item/clothing/suit = o.get_item_by_slot(SLOT_W_UNIFORM) + var/obj/item/clothing/jacket = o.get_item_by_slot(SLOT_WEAR_SUIT) + if(!suit.roomy == 1 || !jacket.roomy == 1) //If the clothes are "roomy" then don't do this. + //End Hyper Change// + to_chat(o, "Your clothes give, ripping into peices under the strain of your swelling pecker! Unless you manage to reduce the size of your emancipated trouser snake, there's no way you're going to be able to put anything on over this girth..!") + owner.visible_message("[o]'s schlong suddenly bursts forth, ripping their clothes off!'") else to_chat(o, "Your emancipated trouser snake is so ripe with girth, you seriously doubt you'll be able to fit any clothes over it.") for(var/obj/item/W in items) if(W == o.w_uniform || W == o.wear_suit) - o.dropItemToGround(W, TRUE) - playsound(o.loc, 'sound/items/poster_ripped.ogg', 50, 1) + //Hyper change// Check for a flag before we remove clothes. + var/obj/item/clothing/W2 = W + if(!W2.roomy == 1) //If the clothes are "roomy" then don't do this. + //End Hyper Change// + o.dropItemToGround(W, TRUE) + playsound(o.loc, 'sound/items/poster_ripped.ogg', 50, 1) return ..() @@ -151,14 +168,19 @@ var/items = o.get_contents() for(var/obj/item/W in items) - if (o.arousalloss > 32) // warning that your shaft is getting errect! - if(W == o.w_uniform || W == o.wear_suit ) - to_chat(M, "Your swelling cock begins to strain against your clothes tightly!") - if (o.arousalloss > 33) - if(W == o.w_uniform || W == o.wear_suit ) - o.dropItemToGround(W, TRUE) - playsound(o.loc, 'sound/items/poster_ripped.ogg', 50, 1) - to_chat(owner, "Your erect member is way to large to fit anything over! You will need to be flaccid again to wear clothes!") + //Hyper change// Check for a flag before we remove clothes. + if(istype(W, /obj/item/clothing)) + var/obj/item/clothing/W2 = W + if(!W2.roomy == 1) //If the clothes are "roomy" then don't do this. + //End Hyper Change// + if (o.arousalloss > 32) // warning that your shaft is getting errect! + if(W == o.w_uniform || W == o.wear_suit ) + to_chat(M, "Your swelling cock begins to strain against your clothes tightly!") + if (o.arousalloss > 33) + if(W == o.w_uniform || W == o.wear_suit ) + o.dropItemToGround(W, TRUE) + playsound(o.loc, 'sound/items/poster_ripped.ogg', 50, 1) + to_chat(owner, "Your erect member is way to large to fit anything over! You will need to be flaccid again to wear clothes!") /* switch(round(P.cached_length)) if(21) diff --git a/modular_citadel/code/game/machinery/vending.dm b/modular_citadel/code/game/machinery/vending.dm index 6bed45ce..fd6294dd 100644 --- a/modular_citadel/code/game/machinery/vending.dm +++ b/modular_citadel/code/game/machinery/vending.dm @@ -63,7 +63,9 @@ ) premium = list( /obj/item/electropack/shockcollar = 3, - /obj/item/clothing/neck/petcollar/locked = 1 + /obj/item/clothing/neck/petcollar/locked = 1, + /obj/item/restraints/handcuffs/rope = 1, + /obj/item/leash = 1 ) refill_canister = /obj/item/vending_refill/kink /* diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm index 5ebad3b2..6f8954f7 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm @@ -98,10 +98,15 @@ B.cached_size = B.cached_size + 0.05 if (B.cached_size >= 8.5 && B.cached_size < 9) if(H.w_uniform || H.wear_suit) - var/target = M.get_bodypart(BODY_ZONE_CHEST) - to_chat(M, "Your breasts begin to strain against your clothes tightly!") - M.adjustOxyLoss(5, 0) - M.apply_damage(1, BRUTE, target) + //Hyper change// Check for a flag before we remove clothes. + var/obj/item/clothing/suit = H.get_item_by_slot(SLOT_W_UNIFORM) + var/obj/item/clothing/jacket = H.get_item_by_slot(SLOT_WEAR_SUIT) + if(!suit.roomy == 1 || !jacket.roomy == 1) //If the clothes are "roomy" then don't do this. + //End Hyper Change// + var/target = M.get_bodypart(BODY_ZONE_CHEST) + to_chat(M, "Your breasts begin to strain against your clothes tightly!") + M.adjustOxyLoss(5, 0) + M.apply_damage(1, BRUTE, target) B.update() ..() @@ -272,9 +277,14 @@ P.cached_length = P.cached_length + 0.1 if (P.cached_length >= 20.5 && P.cached_length < 21) if(H.w_uniform || H.wear_suit|| H.arousalloss > 33) - var/target = M.get_bodypart(BODY_ZONE_CHEST) - to_chat(M, "Your cock begins to strain against your clothes tightly!") - M.apply_damage(1, BRUTE, target) + //Hyper change// Check for a flag before we remove clothes. + var/obj/item/clothing/suit = H.get_item_by_slot(SLOT_W_UNIFORM) + var/obj/item/clothing/jacket = H.get_item_by_slot(SLOT_WEAR_SUIT) + if(!suit.roomy == 1 || !jacket.roomy == 1) //If the clothes are "roomy" then don't do this. + //End Hyper Change// + var/target = M.get_bodypart(BODY_ZONE_CHEST) + to_chat(M, "Your cock begins to strain against your clothes tightly!") + M.apply_damage(1, BRUTE, target) P.update() ..() diff --git a/tgstation.dme b/tgstation.dme index ff636be0..9bd0c7b8 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -2891,6 +2891,7 @@ #include "hyperstation\code\modules\resize\holder_micro.dm" #include "hyperstation\code\modules\resize\resizing.dm" #include "hyperstation\code\modules\resize\sizegun.dm" +#include "hyperstation\code\obj\bluespace sewing kit.dm" #include "hyperstation\code\obj\decal.dm" #include "hyperstation\code\obj\fluff.dm" #include "hyperstation\code\obj\kinkyclothes.dm"