diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index df0e5adcdd6..885754fe492 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -15,9 +15,30 @@ GLOBAL_LIST_INIT(available_ui_styles, list( "Glass" = 'icons/hud/screen_glass.dmi' )) +//SKYRAT EDIT - ADDITION - ERP ICONS FIX + +GLOBAL_LIST_INIT(available_erp_ui_styles, list( + "Midnight" = 'modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/midnight.dmi', + "Retro" = 'modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/retro.dmi', + "Plasmafire" = 'modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/plasmafire.dmi', + "Slimecore" = 'modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/slimecore.dmi', + "Operative" = 'modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/operative.dmi', + "Clockwork" = 'modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/clockwork.dmi', + "Glass" = 'modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/glass.dmi' +)) + +//SKYRAT EDIT - ADDITION - ERP ICONS FIX - END + /proc/ui_style2icon(ui_style) return GLOB.available_ui_styles[ui_style] || GLOB.available_ui_styles[GLOB.available_ui_styles[1]] +//SKYRAT EDIT - ADDITION - ERP ICONS FIX + +/proc/erp_ui_style2icon(ui_style) + return GLOB.available_erp_ui_styles[ui_style] || GLOB.available_erp_ui_styles[GLOB.available_erp_ui_styles[1]] + +//SKYRAT EDIT - ADDITION - ERP ICONS FIX - END + /datum/hud var/mob/mymob @@ -82,6 +103,7 @@ GLOBAL_LIST_INIT(available_ui_styles, list( var/atom/movable/screen/spacesuit // subtypes can override this to force a specific UI style var/ui_style + var/erp_ui_style //SKYRAT EDIT - ADDITION - ERP ICONS FIX /datum/hud/New(mob/owner) mymob = owner @@ -89,6 +111,7 @@ GLOBAL_LIST_INIT(available_ui_styles, list( if (!ui_style) // will fall back to the default if any of these are null ui_style = ui_style2icon(owner.client?.prefs?.read_preference(/datum/preference/choiced/ui_style)) + erp_ui_style = erp_ui_style2icon(owner.client?.prefs?.read_preference(/datum/preference/choiced/ui_style)) //SKYRAT EDIT - ADDITION - ERP ICONS FIX hide_actions_toggle = new hide_actions_toggle.InitialiseIcon(src) @@ -293,16 +316,26 @@ GLOBAL_LIST_INIT(available_ui_styles, list( if (item.icon == ui_style) item.icon = new_ui_style - //SKYRAT EDIT ADDITION BEGIN - ERP_SLOT_SYSTEM - for(var/atom/item in ERP_toggleable_inventory) - if (item.icon == ui_style) - item.icon = new_ui_style - //SKYRAT EDIT ADDITION END - ui_style = new_ui_style build_hand_slots() hide_actions_toggle.InitialiseIcon(src) +//SKYRAT EDIT - ADDITION - ERP ICONS FIX + +/datum/hud/proc/update_erp_ui_style(new_erp_ui_style) + // do nothing if overridden by a subtype or already on that style + if (initial(erp_ui_style) || erp_ui_style == new_erp_ui_style) + return + + for(var/atom/item in ERP_toggleable_inventory) + if (item.icon == erp_ui_style) + item.icon = new_erp_ui_style + + erp_ui_style = new_erp_ui_style + hide_actions_toggle.InitialiseIcon(src) + +//SKYRAT EDIT - ADDITION - ERP ICONS FIX - END + //Triggered when F12 is pressed (Unless someone changed something in the DMF) /mob/verb/button_pressed_F12() set name = "F12" diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index 50663c35a6e..ba7fdedbdb0 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -239,7 +239,7 @@ using.screen_loc = ui_erp_inventory using.hud = src // When creating a character, we will check if the ERP is enabled on the client, if not, then the ERP button is immediately invisible - if(owner.client?.prefs?.read_preference(/datum/preference/toggle/erp/sex_toy)) + if(!owner.client?.prefs?.read_preference(/datum/preference/toggle/erp/sex_toy)) using.invisibility = 100 static_inventory += using //SKYRAT EDIT ADDITION END @@ -308,7 +308,7 @@ //SKYRAT EDIT ADDITION BEGIN - ERP_SLOT_SYSTEM inv_box = new /atom/movable/screen/inventory() inv_box.name = "vagina" - inv_box.icon = ui_style + inv_box.icon = erp_ui_style inv_box.icon_state = "vagina" inv_box.screen_loc = ui_vagina_down inv_box.slot_id = ITEM_SLOT_VAGINA @@ -317,7 +317,7 @@ inv_box = new /atom/movable/screen/inventory() inv_box.name = "anus" - inv_box.icon = ui_style + inv_box.icon = erp_ui_style inv_box.icon_state = "anus" inv_box.screen_loc = ui_anus_down inv_box.slot_id = ITEM_SLOT_ANUS @@ -326,7 +326,7 @@ inv_box = new /atom/movable/screen/inventory() inv_box.name = "nipples" - inv_box.icon = ui_style + inv_box.icon = erp_ui_style inv_box.icon_state = "nipples" inv_box.screen_loc = ui_nipples_down inv_box.slot_id = ITEM_SLOT_NIPPLES @@ -335,7 +335,7 @@ inv_box = new /atom/movable/screen/inventory() inv_box.name = "penis" - inv_box.icon = ui_style + inv_box.icon = erp_ui_style inv_box.icon_state = "penis" inv_box.screen_loc = ui_penis_down inv_box.slot_id = ITEM_SLOT_PENIS diff --git a/code/modules/client/preferences/ui_style.dm b/code/modules/client/preferences/ui_style.dm index 08f1af6c7dd..d7e9907df59 100644 --- a/code/modules/client/preferences/ui_style.dm +++ b/code/modules/client/preferences/ui_style.dm @@ -24,3 +24,4 @@ /datum/preference/choiced/ui_style/apply_to_client(client/client, value) client.mob?.hud_used?.update_ui_style(ui_style2icon(value)) + client.mob?.hud_used?.update_erp_ui_style(erp_ui_style2icon(value)) //SKYRAT EDIT - ADDITION - ERP ICONS FIX diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 832b1cf5288..77ce0dc6249 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -413,8 +413,10 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp var/atom/movable/screen/alert/A = throw_alert("[REF(source)]_notify_cloning", /atom/movable/screen/alert/notify_cloning) if(A) var/ui_style = client?.prefs?.read_preference(/datum/preference/choiced/ui_style) + var/erp_ui_style = client?.prefs?.read_preference(/datum/preference/choiced/ui_style) //SKYRAT EDIT - ADDITION - ERP ICONS FIX if(ui_style) A.icon = ui_style2icon(ui_style) + A.icon = erp_ui_style2icon(erp_ui_style) //SKYRAT EDIT - ADDITION - ERP ICONS FIX A.desc = message var/old_layer = source.layer var/old_plane = source.plane diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index 605e20f57ae..dc15ae7f6d7 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -40,6 +40,7 @@ if(hud_used) hud_used.show_hud(hud_used.hud_version) hud_used.update_ui_style(ui_style2icon(client.prefs?.read_preference(/datum/preference/choiced/ui_style))) + hud_used.update_erp_ui_style(erp_ui_style2icon(client.prefs?.read_preference(/datum/preference/choiced/ui_style))) //SKYRAT EDIT - ADDITION - ERP ICONS FIX next_move = 1 diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index fd49e6bf252..8731bc1d14e 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -352,8 +352,10 @@ var/atom/movable/screen/alert/notify_action/A = O.throw_alert("[REF(source)]_notify_action", /atom/movable/screen/alert/notify_action) if(A) var/ui_style = O.client?.prefs?.read_preference(/datum/preference/choiced/ui_style) + var/erp_ui_style = O.client?.prefs?.read_preference(/datum/preference/choiced/ui_style) //SKYRAT EDIT - ADDITION - ERP ICONS FIX if(ui_style) A.icon = ui_style2icon(ui_style) + A.icon = erp_ui_style2icon(erp_ui_style) //SKYRAT EDIT - ADDITION - ERP ICONS FIX if (header) A.name = header A.desc = message diff --git a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_structures/lustwish.dm b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_structures/lustwish.dm index 72536fec904..6f1cc485810 100644 --- a/modular_skyrat/modules/modular_items/lewd_items/code/lewd_structures/lustwish.dm +++ b/modular_skyrat/modules/modular_items/lewd_items/code/lewd_structures/lustwish.dm @@ -14,6 +14,7 @@ //STUFF SOLD HERE// products = list(//Sex toys /obj/item/clothing/sextoy/signalvib = 8, + /obj/item/assembly/signaler = 8, /obj/item/clothing/sextoy/eggvib = 8, /obj/item/clothing/sextoy/buttplug = 6, /obj/item/clothing/sextoy/nipple_clamps = 4, @@ -32,15 +33,12 @@ /obj/item/clothing/sextoy/vibrator = 4, /obj/item/serviette_pack = 10, /obj/item/restraints/handcuffs/lewd = 8, - /obj/item/pillow = 24, - /obj/item/assembly/signaler = 8, + /obj/item/pillow = 32, //cmon, why there is always 0 pillows, where do you guys stuff it. //clothing facial/head /obj/item/clothing/mask/ballgag = 8, /obj/item/clothing/mask/ballgag/phallic = 8, /obj/item/clothing/mask/ballgag/phallic/kazoo = 8, - /obj/item/clothing/mask/muzzle/ring = 4, - /obj/item/clothing/mask/muzzle/ball = 4, /obj/item/clothing/head/domina_cap = 5, /obj/item/clothing/head/helmet/space/deprivation_helmet = 5, /obj/item/clothing/head/maid = 5, @@ -49,39 +47,23 @@ /obj/item/clothing/mask/gas/bdsm_mask = 5, /obj/item/reagent_containers/glass/lewd_filter = 5, /obj/item/clothing/glasses/hypno = 4, - /obj/item/clothing/glasses/blindfold = 8, /obj/item/clothing/head/kitty = 4, /obj/item/clothing/head/rabbitears = 4, //neck /obj/item/clothing/neck/kink_collar = 8, - /obj/item/clothing/neck/human_petcollar = 8, - /obj/item/clothing/neck/human_petcollar/locked/cowcollar = 3, - /obj/item/clothing/neck/human_petcollar/locked/bellcollar = 5, - /obj/item/clothing/neck/human_petcollar/locked/spikecollar = 3, - /obj/item/clothing/neck/human_petcollar/locked/cross = 3, /obj/item/clothing/neck/human_petcollar/choker = 4, //torso clothing /obj/item/clothing/under/misc/latex_catsuit = 8, /obj/item/clothing/suit/straight_jacket/latex_straight_jacket = 5, - /obj/item/clothing/under/rank/civilian/janitor/maid = 5, /obj/item/clothing/under/costume/lewdmaid = 5, - /obj/item/clothing/under/costume/maid = 5, - /obj/item/clothing/suit/straight_jacket/shackles = 3, + /obj/item/clothing/suit/straight_jacket/shackles = 4, /obj/item/clothing/under/stripper_outfit = 5, - /obj/item/clothing/under/costume/loincloth = 4, - /obj/item/clothing/under/misc/stripper = 4, - /obj/item/clothing/under/misc/stripper/green = 4, - /obj/item/clothing/under/misc/stripper/mankini = 4, - /obj/item/clothing/under/misc/stripper/bunnysuit = 4, - /obj/item/clothing/under/misc/stripper/bunnysuit/white = 4, + /obj/item/clothing/under/misc/stripper/bunnysuit = 5, + /obj/item/clothing/under/misc/stripper/bunnysuit/white = 5, /obj/item/clothing/under/misc/gear_harness = 4, - /obj/item/clothing/under/shorts/polychromic/pantsu = 4, - /obj/item/clothing/under/misc/poly_bottomless = 4, - /obj/item/clothing/under/misc/poly_tanktop = 4, - /obj/item/clothing/under/misc/poly_tanktop/female = 4, //hands /obj/item/clothing/gloves/ball_mittens = 8, @@ -101,8 +83,8 @@ //chems /obj/item/reagent_containers/pill/crocin = 20, - /obj/item/reagent_containers/glass/bottle/crocin = 6, /obj/item/reagent_containers/pill/camphor = 10, + /obj/item/reagent_containers/glass/bottle/crocin = 6, /obj/item/reagent_containers/glass/bottle/camphor = 3, /obj/item/reagent_containers/glass/bottle/breast_enlarger = 6, //Those are legal 'cause you can just turn off prefs in round in "CLOWN SMOKE MACHINE+PENIS ENLARGEMENT CHEMICAL CASE". Yes, i have special code-phrase for this. I've seen some shit. /obj/item/reagent_containers/glass/bottle/penis_enlarger = 6, @@ -111,31 +93,21 @@ /obj/item/clothing/glasses/nice_goggles = 1, //easter egg, don't touch plz) //fur niture //haha you got it - /obj/item/storage/box/bdsmbed_kit = 5, - /obj/item/storage/box/strippole_kit = 3, + /obj/item/storage/box/bdsmbed_kit = 4, + /obj/item/storage/box/strippole_kit = 4, /obj/item/storage/box/xstand_kit = 4, - /obj/item/storage/box/milking_kit = 2) + /obj/item/storage/box/milking_kit = 4) contraband = list( /obj/item/electropack/shockcollar = 4, /obj/item/clothing/neck/kink_collar/locked = 4, /obj/item/clothing/neck/mind_collar = 2, /obj/item/clothing/suit/straight_jacket/kinky_sleepbag = 2, //my favorite thing, spent 1 month on it. Don't remove please. - /obj/item/clothing/under/costume/jabroni = 4, - /obj/item/clothing/neck/human_petcollar/locked = 2, - /obj/item/key/collar = 2, - /obj/item/electropack/shockcollar = 4, - /obj/item/assembly/signaler = 4, /obj/item/reagent_containers/pill/hexacrocin = 10, /obj/item/reagent_containers/pill/pentacamphor = 5, /obj/item/reagent_containers/glass/bottle/hexacrocin = 4, /obj/item/reagent_containers/glass/bottle/pentacamphor = 2) - premium = list( - /obj/item/clothing/under/dress/corset = 4, - /obj/item/clothing/under/pants/chaps = 4, - /obj/item/clothing/neck/human_petcollar/locked/holocollar = 3) - refill_canister = /obj/item/vending_refill/lustwish payment_department = ACCOUNT_SRV default_price = 30 diff --git a/modular_skyrat/modules/modular_items/lewd_items/code/technical_stuff_for_lewd.dm b/modular_skyrat/modules/modular_items/lewd_items/code/technical_stuff_for_lewd.dm index f0b046704db..e3fecadcd42 100644 --- a/modular_skyrat/modules/modular_items/lewd_items/code/technical_stuff_for_lewd.dm +++ b/modular_skyrat/modules/modular_items/lewd_items/code/technical_stuff_for_lewd.dm @@ -1258,3 +1258,34 @@ GLOBAL_LIST_INIT(strippable_human_erp_items, create_erp_strippable_list(list( else if(H.w_uniform && istype(H.w_uniform, /obj/item/clothing/under/misc/latex_catsuit/)) return FALSE return FALSE + +/datum/preference/toggle/erp/sex_toy/apply_to_client_updated(client/client, value) + . = ..() + if(client?.prefs?.read_preference(/datum/preference/toggle/erp/sex_toy)) + if(client.mob.hud_used) + for(var/atom/movable/screen/human/ERP_toggle/E in client.mob.hud_used.static_inventory) + if(istype(E, /atom/movable/screen/human/ERP_toggle)) + E.invisibility = 0 + else + if(ishuman(client.mob)) + var/mob/living/carbon/human/M = client.mob + if(M.vagina != null) + M.dropItemToGround(M.vagina, TRUE, M.loc, TRUE, FALSE, TRUE) + if(M.anus != null) + M.dropItemToGround(M.anus, TRUE, M.loc, TRUE, FALSE, TRUE) + if(M.nipples != null) + M.dropItemToGround(M.nipples, TRUE, M.loc, TRUE, FALSE, TRUE) + if(M.penis != null) + M.dropItemToGround(M.penis, TRUE, M.loc, TRUE, FALSE, TRUE) + if(client.mob.hud_used) + if(client.mob.hud_used.ERP_inventory_shown) + client.mob.hud_used.ERP_inventory_shown = FALSE + client.screen -= client.mob.hud_used.ERP_toggleable_inventory + + for(var/atom/movable/screen/human/ERP_toggle/E in client.mob.hud_used.static_inventory) + if(istype(E, /atom/movable/screen/human/ERP_toggle)) + E.invisibility = 100 + + + client.mob.hud_used.hidden_inventory_update(client.mob) + client.mob.hud_used.persistent_inventory_update(client.mob) diff --git a/modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/clockwork.dmi b/modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/clockwork.dmi index e8b4cef2232..e91a4c2d79b 100644 Binary files a/modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/clockwork.dmi and b/modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/clockwork.dmi differ diff --git a/modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/glass.dmi b/modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/glass.dmi index 219fe5de561..3b4cf0ef53a 100644 Binary files a/modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/glass.dmi and b/modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/glass.dmi differ diff --git a/modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/midnight.dmi b/modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/midnight.dmi index c7332a95dd0..2ac5ac404ba 100644 Binary files a/modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/midnight.dmi and b/modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/midnight.dmi differ diff --git a/modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/operative.dmi b/modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/operative.dmi index 6bf44d608f3..37d2bf3aaeb 100644 Binary files a/modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/operative.dmi and b/modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/operative.dmi differ diff --git a/modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/plasmafire.dmi b/modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/plasmafire.dmi index fcdd5afdbc1..acef3d670b0 100644 Binary files a/modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/plasmafire.dmi and b/modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/plasmafire.dmi differ diff --git a/modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/retro.dmi b/modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/retro.dmi index 257d40563ab..c86063def34 100644 Binary files a/modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/retro.dmi and b/modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/retro.dmi differ diff --git a/modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/slimecore.dmi b/modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/slimecore.dmi index c68a4ce239e..4ca4d75b3b3 100644 Binary files a/modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/slimecore.dmi and b/modular_skyrat/modules/modular_items/lewd_items/icons/obj/lewd_items/inventory_icons/slimecore.dmi differ