Bluespace sewing kit

For big bits
This commit is contained in:
JaySparrow
2020-06-14 22:24:38 -05:00
parent 926d352540
commit 4c60d0c7f2
10 changed files with 129 additions and 33 deletions
+14 -2
View File
@@ -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, "<span class='notice'>You fix the damage on [src] with [C].</span>")
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("<span class='notice'>You add a few stiches to your clothing, and find them to fit a little looser.</span>", 1)
B.uses -= 1 //One use has been used
if(B.uses <= 0)
user.show_message("<span class='notice'>The thread has been used up!</span>", 1)
qdel(B)
else
user.show_message("<span class='notice'>You probably don't need any more room in that.</span>", 1)
return ..()
/obj/item/clothing/Destroy()
+2 -1
View File
@@ -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
@@ -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("<span class='notice'>You find yourself unable to stitch this.</span>", 1)
return
/obj/item/bluespace_thread/attack_self(mob/living/user)
user.show_message("<span class='notice'>The spool has [uses] uses remaining.</span>", 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
+8 -1
View File
@@ -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
+6
View File
@@ -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
Binary file not shown.

After

Width:  |  Height:  |  Size: 324 B

@@ -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, "<span class='warning'>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..!</b></span>")
o.visible_message("<span class='boldnotice'>[o]'s chest suddenly bursts forth, ripping their clothes off!'</span>")
else
to_chat(o, "<span class='notice'>Your bountiful bosom is so rich with mass, you seriously doubt you'll be able to fit any clothes over it.</b></span>")
//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, "<span class='warning'>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..!</b></span>")
o.visible_message("<span class='boldnotice'>[o]'s chest suddenly bursts forth, ripping their clothes off!'</span>")
else
to_chat(o, "<span class='notice'>Your bountiful bosom is so rich with mass, you seriously doubt you'll be able to fit any clothes over it.</b></span>")
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, "<span class='warning'>Your enormous breasts are way too large to fit anything over them!</b></span>")
//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, "<span class='warning'>Your enormous breasts are way too large to fit anything over them!</b></span>")
/*
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, "<span class='warning'>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..!</b></span>")
owner.visible_message("<span class='boldnotice'>[o]'s schlong suddenly bursts forth, ripping their clothes off!'</span>")
//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, "<span class='warning'>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..!</b></span>")
owner.visible_message("<span class='boldnotice'>[o]'s schlong suddenly bursts forth, ripping their clothes off!'</span>")
else
to_chat(o, "<span class='notice'>Your emancipated trouser snake is so ripe with girth, you seriously doubt you'll be able to fit any clothes over it.</b></span>")
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, "<span class='warning'>Your swelling cock begins to strain against your clothes tightly!</b></span>")
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, "<span class='warning'>Your erect member is way to large to fit anything over! You will need to be flaccid again to wear clothes!</b></span>")
//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, "<span class='warning'>Your swelling cock begins to strain against your clothes tightly!</b></span>")
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, "<span class='warning'>Your erect member is way to large to fit anything over! You will need to be flaccid again to wear clothes!</b></span>")
/*
switch(round(P.cached_length))
if(21)
@@ -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
/*
@@ -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, "<span class='warning'>Your breasts begin to strain against your clothes tightly!</b></span>")
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, "<span class='warning'>Your breasts begin to strain against your clothes tightly!</b></span>")
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, "<span class='warning'>Your cock begins to strain against your clothes tightly!</b></span>")
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, "<span class='warning'>Your cock begins to strain against your clothes tightly!</b></span>")
M.apply_damage(1, BRUTE, target)
P.update()
..()
+1
View File
@@ -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"