mirror of
https://github.com/KabKebab/GS13.git
synced 2026-07-10 07:30:36 +01:00
Merge pull request #424 from TotallyNotADog/slaveImplant
The Slutcurity Update. Powered by Horny™
This commit is contained in:
@@ -249,6 +249,11 @@
|
||||
desc = "A special beret with the security insignia emblazoned on it. For officers with class."
|
||||
icon_state = "officerberet"
|
||||
|
||||
/obj/item/clothing/head/beret/sec/bitch
|
||||
name = "security's bitch beret"
|
||||
desc = "A softer beret with the word 'BITCH' embroidered on it in pink thread."
|
||||
icon_state = "bitchberet"
|
||||
|
||||
//Curator
|
||||
/obj/item/clothing/head/fedora/curator
|
||||
name = "treasure hunter's fedora"
|
||||
|
||||
@@ -38,10 +38,32 @@
|
||||
aggressiveness = 1 //Borgs are nicecurity!
|
||||
actions_types = list(/datum/action/item_action/halt)
|
||||
|
||||
/obj/item/clothing/mask/gas/sechailer/slut
|
||||
name = "slutcurity hailer"
|
||||
desc = "A modified Security gas mask designed for softer apprehension, now with a hot pink paintjob!"
|
||||
icon_state = "sluthailer"
|
||||
item_state = "sluthailer"
|
||||
aggressiveness = 0 //can't have your pets being mean!
|
||||
actions_types = list(/datum/action/item_action/halt)
|
||||
|
||||
/obj/item/clothing/mask/gas/sechailer/slut/attack_hand(mob/user)
|
||||
if(iscarbon(user))
|
||||
var/mob/living/carbon/C = user
|
||||
if(src == C.wear_mask)
|
||||
to_chat(user, "<span class='warning'>The mask is fastened tight! You'll need help taking this off!</span>")
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/item/clothing/mask/gas/sechailer/screwdriver_act(mob/living/user, obj/item/I)
|
||||
if(..())
|
||||
return TRUE
|
||||
switch(aggressiveness)
|
||||
if(-1)
|
||||
to_chat(user, "<span class='notice'>You set the restrictor to the top position.</span>")
|
||||
aggressiveness = 0
|
||||
if(0)
|
||||
to_chat(user, "<span class='notice'>You set the restrictor to the bottom position.</span>")
|
||||
aggressiveness = -1
|
||||
if(1)
|
||||
to_chat(user, "<span class='notice'>You set the restrictor to the middle position.</span>")
|
||||
aggressiveness = 2
|
||||
@@ -109,6 +131,10 @@
|
||||
return
|
||||
|
||||
switch(aggressiveness) // checks if the user has unlocked the restricted phrases
|
||||
if(-1)
|
||||
phrase = rand(25,29) // the mask will only play submissive 'slut cop' phrases
|
||||
if(0)
|
||||
phrase = rand(19,24) // the mask will only play dominant 'slut cop' phrases
|
||||
if(1)
|
||||
phrase = rand(1,5) // set the upper limit as the phrase above the first 'bad cop' phrase, the mask will only play 'nice' phrases
|
||||
if(2)
|
||||
@@ -178,8 +204,44 @@
|
||||
if(18)
|
||||
phrase_text = "I am, the LAW!"
|
||||
phrase_sound = "dredd"
|
||||
if(19) // slut cop - dom
|
||||
phrase_text = "Your ass is mine!"
|
||||
phrase_sound = "ass"
|
||||
if(20) //Thank you Yappy for 19 & 20
|
||||
phrase_text = "Your consent is forfeit."
|
||||
phrase_sound = "consent"
|
||||
if(21)
|
||||
phrase_text = "Fuck my brains out, I dare you."
|
||||
phrase_sound = "brains"
|
||||
if(22)
|
||||
phrase_text = "Hands up, pants down."
|
||||
phrase_sound = "pants"
|
||||
if(23)
|
||||
phrase_text = "On your knees, and say please."
|
||||
phrase_sound = "knees"
|
||||
if(24) //Thank you Nata for 22-24
|
||||
phrase_text = "Empty or not, I'm cumming for you!"
|
||||
phrase_sound = "empty"
|
||||
if(25) // slut cop - sub
|
||||
phrase_text = "Please, I need more!"
|
||||
phrase_sound = "please"
|
||||
if(26)
|
||||
phrase_text = "My body is yours."
|
||||
phrase_sound = "body"
|
||||
if(27)
|
||||
phrase_text = "Am I a good pet?"
|
||||
phrase_sound = "goodpet"
|
||||
if(28)
|
||||
phrase_text = "I am yours..."
|
||||
phrase_sound = "yours"
|
||||
if(29) //Thank you Kraxie for 28 & 29
|
||||
phrase_text = "Master..."
|
||||
phrase_sound = "master"
|
||||
|
||||
usr.audible_message("[usr]'s Compli-o-Nator: <font color='red' size='4'><b>[phrase_text]</b></font>")
|
||||
if(aggressiveness <= 0)
|
||||
usr.audible_message("[usr]'s Compli-o-Nator: <font color=#D45592 size='2'><b>[phrase_text]</b></font>")
|
||||
else
|
||||
usr.audible_message("[usr]'s Compli-o-Nator: <font color='red' size='4'><b>[phrase_text]</b></font>")
|
||||
playsound(src.loc, "sound/voice/complionator/[phrase_sound].ogg", 100, 0, 4)
|
||||
cooldown = world.time
|
||||
cooldown_special = world.time
|
||||
|
||||
@@ -9,7 +9,15 @@
|
||||
equip_delay_other = 20
|
||||
mutantrace_variation = MUTANTRACE_VARIATION
|
||||
|
||||
/obj/item/clothing/mask/muzzle/attack_paw(mob/user)
|
||||
/obj/item/clothing/mask/muzzle/attack_hand(mob/user)
|
||||
if(iscarbon(user))
|
||||
var/mob/living/carbon/C = user
|
||||
if(src == C.wear_mask)
|
||||
to_chat(user, "<span class='warning'>You need help taking this off!</span>")
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/item/clothing/mask/muzzle/attack_paw(mob/user) //apparently this is for monkies only
|
||||
if(iscarbon(user))
|
||||
var/mob/living/carbon/C = user
|
||||
if(src == C.wear_mask)
|
||||
|
||||
@@ -267,6 +267,16 @@
|
||||
hasprimary = TRUE
|
||||
primary_color = "#222222"
|
||||
|
||||
/obj/item/clothing/neck/petcollar/locked/security
|
||||
name = "security collar"
|
||||
desc = "For when you need to show everyone who your pet belongs to."
|
||||
icon_state = "seccollar"
|
||||
item_state = "seccollar"
|
||||
hasprimary = FALSE
|
||||
hassecondary = FALSE
|
||||
hastertiary = FALSE
|
||||
|
||||
|
||||
/obj/item/key/collar
|
||||
name = "Collar Key"
|
||||
desc = "A key for a tiny lock on a collar or bag."
|
||||
|
||||
@@ -122,6 +122,12 @@
|
||||
permeability_coefficient = 0.05 //Thick soles, and covers the ankle
|
||||
pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes
|
||||
|
||||
/obj/item/clothing/shoes/jackboots/tall
|
||||
name = "tall jackboots"
|
||||
desc = "A pair of knee-high jackboots, complete with heels. All style, all the time."
|
||||
icon_state = "jackboots-tall"
|
||||
item_state = "jackboots-tall"
|
||||
|
||||
/obj/item/clothing/shoes/jackboots/fast
|
||||
slowdown = -1
|
||||
|
||||
|
||||
@@ -42,6 +42,20 @@
|
||||
icon_state = "blueshift"
|
||||
item_state = "blueshift"
|
||||
|
||||
/obj/item/clothing/suit/armor/vest/stripper
|
||||
name = "stripper armor"
|
||||
desc = "Talk about lightweight."
|
||||
icon_state = "armorstripper"
|
||||
item_state = "armorstripper"
|
||||
armor = list("melee" = 15, "bullet" = 10, "laser" = 10, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/suit/armor/vest/stripper/bikini
|
||||
name = "bikini armor"
|
||||
desc = "How is this even supposed to work? It barely covers anything!"
|
||||
icon_state = "armorstripperalt"
|
||||
item_state = "armorstripperalt"
|
||||
|
||||
/obj/item/clothing/suit/armor/hos
|
||||
name = "armored greatcoat"
|
||||
desc = "A greatcoat enhanced with a special alloy for some extra protection and style for those with a commanding presence."
|
||||
|
||||
@@ -573,6 +573,12 @@
|
||||
armor = list("melee" = 25, "bullet" = 15, "laser" = 30, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 45)
|
||||
hoodtype = /obj/item/clothing/head/hooded/winterhood/security
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/security/pink
|
||||
name = "pink security winter coat"
|
||||
icon_state = "coatsecuritypink"
|
||||
item_state = "coatsecuritypink"
|
||||
hoodtype = /obj/item/clothing/head/hooded/winterhood/security/pink
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/security/Initialize()
|
||||
. = ..()
|
||||
allowed = GLOB.security_wintercoat_allowed
|
||||
@@ -580,6 +586,9 @@
|
||||
/obj/item/clothing/head/hooded/winterhood/security
|
||||
icon_state = "winterhood_security"
|
||||
|
||||
/obj/item/clothing/head/hooded/winterhood/security/pink
|
||||
icon_state = "winterhood_securitypink"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/hos
|
||||
name = "head of security's winter coat"
|
||||
icon_state = "coathos"
|
||||
@@ -887,4 +896,4 @@
|
||||
allowed = GLOB.security_wintercoat_allowed
|
||||
|
||||
/obj/item/clothing/head/hooded/winterhood/durathread
|
||||
icon_state = "winterhood_durathread"
|
||||
icon_state = "winterhood_durathread"
|
||||
|
||||
@@ -24,6 +24,12 @@
|
||||
icon_state = "security"
|
||||
item_state = "gy_suit"
|
||||
item_color = "security"
|
||||
/obj/item/clothing/under/rank/security/pink
|
||||
name = "pink security jumpsuit"
|
||||
desc = "A tactical security jumpsuit for officers that screw up their laundry."
|
||||
icon_state = "rsecuritypink"
|
||||
item_state = "r_suit"
|
||||
item_color = "rsecuritypink"
|
||||
/obj/item/clothing/under/rank/security/skirt
|
||||
name = "security jumpskirt"
|
||||
desc = "A \"tactical\" security jumpsuit with the legs replaced by a skirt."
|
||||
@@ -33,6 +39,26 @@
|
||||
body_parts_covered = CHEST|GROIN|ARMS
|
||||
can_adjust = FALSE //you know now that i think of it if you adjust the skirt and the sprite disappears isn't that just like flashing everyone
|
||||
fitted = FEMALE_UNIFORM_TOP
|
||||
/obj/item/clothing/under/rank/security/skirt/slut
|
||||
name = "slutty security jumpskirt"
|
||||
desc = "A \"\"\"tactical\"\"\" security jumpsuit with the legs replaced by a skirt. No matter how you adjust it, it always feels a little too small."
|
||||
icon_state = "secslutskirt"
|
||||
item_state = "secslutskirt"
|
||||
item_color = null //i dont understand what item_color even is, apparently setting it to null means it won't change color in a washing machine?
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION //look at the first two comments in vg_under.dm
|
||||
/obj/item/clothing/under/rank/security/skirt/slut/pink
|
||||
desc = "A \"\"\"tactical\"\"\" security jumpsuit with the legs replaced by a skirt. No matter how you adjust it, it always feels a little too small. This one seems to have an experimental color scheme."
|
||||
icon_state = "secslutskirtpink"
|
||||
item_state = "secslutskirtpink"
|
||||
/obj/item/clothing/under/rank/security/stripper
|
||||
name = "security stripper outfit"
|
||||
desc = "This can't be dress code compliant, can it?"
|
||||
icon_state = "secstripper"
|
||||
item_state = "secstripper"
|
||||
item_color = null
|
||||
can_adjust = FALSE
|
||||
body_parts_covered = CHEST|GROIN
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
|
||||
/obj/item/clothing/under/rank/warden
|
||||
|
||||
@@ -783,4 +783,5 @@
|
||||
item_state = "corset"
|
||||
body_parts_covered = CHEST|GROIN
|
||||
can_adjust = FALSE
|
||||
fitted = FEMALE_UNIFORM_TOP
|
||||
fitted = FEMALE_UNIFORM_TOP
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
@@ -274,7 +274,7 @@
|
||||
loc.handle_fall(src, forced)//it's loc so it doesn't call the mob's handle_fall which does nothing
|
||||
|
||||
/mob/living/carbon/is_muzzled()
|
||||
return(istype(src.wear_mask, /obj/item/clothing/mask/muzzle))
|
||||
return(istype(src.wear_mask, /obj/item/clothing/mask/muzzle)||istype(src.wear_mask, /obj/item/clothing/mask/gas/sechailer/slut)) //i sure do love snowflake code
|
||||
|
||||
/mob/living/carbon/hallucinating()
|
||||
if(hallucination)
|
||||
|
||||
@@ -522,6 +522,16 @@
|
||||
category = list("Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL
|
||||
|
||||
/datum/design/implant_slave
|
||||
name = "Slave Implant Case"
|
||||
desc = "A glass case containing an implant."
|
||||
id = "implant_slave"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 500, MAT_GLASS = 500)
|
||||
build_path = /obj/item/implantcase/slave
|
||||
category = list("Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL
|
||||
|
||||
//Cybernetic organs
|
||||
|
||||
/datum/design/cybernetic_liver
|
||||
@@ -949,4 +959,4 @@
|
||||
construction_time = 40
|
||||
build_path = /obj/item/hypospray/mkii/disposable
|
||||
category = list("Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
|
||||
@@ -518,7 +518,7 @@
|
||||
display_name = "Subdermal Implants"
|
||||
description = "Electronic implants buried beneath the skin."
|
||||
prereq_ids = list("biotech", "datatheory")
|
||||
design_ids = list("implanter", "implantcase", "implant_chem", "implant_tracking", "locator", "c38_trac")
|
||||
design_ids = list("implanter", "implantcase", "implant_chem", "implant_tracking", "implant_slave", "locator", "c38_trac")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
|
||||
export_price = 5000
|
||||
|
||||
|
||||
@@ -16,7 +16,16 @@
|
||||
/obj/item/secbat = 5)
|
||||
contraband = list(/obj/item/clothing/glasses/sunglasses = 2,
|
||||
/obj/item/storage/fancy/donut_box = 2,
|
||||
/obj/item/ssword_kit = 1)
|
||||
/obj/item/ssword_kit = 1,
|
||||
/obj/item/clothing/suit/armor/vest/stripper = 5,
|
||||
/obj/item/clothing/suit/armor/vest/stripper/bikini = 5,
|
||||
/obj/item/clothing/neck/petcollar/locked/security = 5,
|
||||
/obj/item/electropack/shockcollar/security = 5,
|
||||
/obj/item/storage/belt/slut = 5,
|
||||
/obj/item/clothing/mask/gas/sechailer/slut = 5,
|
||||
/obj/item/bdsm_whip/ridingcrop = 3,
|
||||
/obj/structure/bed/secbed = 3,
|
||||
/obj/item/dildo/flared/gigantic = 1)
|
||||
premium = list(/obj/item/coin/antagtoken = 1,
|
||||
/obj/item/clothing/head/helmet/blueshirt = 1,
|
||||
/obj/item/clothing/suit/armor/vest/blueshirt = 1,
|
||||
|
||||
@@ -21,7 +21,15 @@
|
||||
/obj/item/clothing/under/pants/khaki = 5)
|
||||
premium = list(/obj/item/clothing/under/rank/security/navyblue = 5,
|
||||
/obj/item/clothing/suit/security/officer = 5,
|
||||
/obj/item/clothing/head/beret/sec/navyofficer = 5)
|
||||
/obj/item/clothing/head/beret/sec/navyofficer = 5,
|
||||
/obj/item/clothing/under/rank/security/pink = 5,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/security/pink = 5,
|
||||
/obj/item/clothing/under/rank/security/skirt/slut = 5,
|
||||
/obj/item/clothing/under/rank/security/skirt/slut/pink = 5,
|
||||
/obj/item/clothing/under/rank/security/stripper = 5,
|
||||
/obj/item/clothing/shoes/jackboots/tall = 5,
|
||||
/obj/item/clothing/head/beret/sec/bitch = 5,
|
||||
/obj/item/clothing/gloves/latexsleeves/security = 5)
|
||||
refill_canister = /obj/item/vending_refill/wardrobe/sec_wardrobe
|
||||
|
||||
/obj/item/vending_refill/wardrobe/sec_wardrobe
|
||||
|
||||
Reference in New Issue
Block a user