Merge pull request #424 from TotallyNotADog/slaveImplant

The Slutcurity Update. Powered by Horny™
This commit is contained in:
Dahlular
2020-09-05 19:15:08 -06:00
committed by GitHub
52 changed files with 373 additions and 18 deletions
+5
View File
@@ -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"
+63 -1
View File
@@ -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 -1
View File
@@ -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)
+10
View File
@@ -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
+14
View File
@@ -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."
+10 -1
View File
@@ -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
+2 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+10 -1
View File
@@ -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,
+9 -1
View File
@@ -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