diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index 12ca7e9039..64a0085e46 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -39438,6 +39438,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/tcommsat/computer) "bSe" = ( @@ -39906,6 +39909,9 @@ "bTI" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/holopad/secure, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/tcommsat/computer) "bTJ" = ( @@ -40234,6 +40240,9 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/tcommsat/computer) "bUz" = ( @@ -40929,6 +40938,9 @@ /area/science/misc_lab) "bWs" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel, /area/tcommsat/computer) "bWt" = ( @@ -40948,12 +40960,18 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/tcommsat/computer) "bWv" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/tcommsat/computer) "bWw" = ( @@ -41042,6 +41060,9 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 }, +/obj/structure/cable{ + icon_state = "2-8" + }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "bWK" = ( @@ -41054,6 +41075,9 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "bWL" = ( @@ -41777,6 +41801,9 @@ /area/hallway/primary/aft) "bYF" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "2-8" + }, /turf/open/floor/plasteel, /area/tcommsat/computer) "bYG" = ( @@ -42418,6 +42445,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel/dark, /area/tcommsat/computer) "can" = ( @@ -42438,6 +42468,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel/dark, /area/tcommsat/computer) "cao" = ( @@ -42451,6 +42484,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel/dark, /area/tcommsat/computer) "cap" = ( @@ -52042,6 +52078,9 @@ /obj/machinery/power/terminal{ dir = 1 }, +/obj/structure/cable{ + icon_state = "0-4" + }, /turf/open/floor/plasteel/dark/telecomms, /area/tcommsat/server) "cSL" = ( @@ -63082,6 +63121,12 @@ }, /turf/open/floor/plating, /area/maintenance/fore) +"spC" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) "spR" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 4 @@ -92603,7 +92648,7 @@ bXz bYA bZn cah -bWB +bZo ccf cdc cdZ @@ -92860,7 +92905,7 @@ bXC bXC bZp cak -bWB +bZo bWB bWB cec @@ -93117,7 +93162,7 @@ bXB bYC bZo bWB -bWB +bZo cch cde ceb @@ -93373,8 +93418,8 @@ bWG bXD bYz cSE -bWB -bYz +bZn +spC bYz cdf ced diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm index 681cfb6d99..00751f2cab 100644 --- a/code/__DEFINES/antagonists.dm +++ b/code/__DEFINES/antagonists.dm @@ -112,11 +112,6 @@ GLOBAL_LIST_EMPTY(living_heart_cache) //A list of all living hearts in existance #define BLOB_ATTACK_REFUND 2 //blob refunds this much if it attacks and doesn't spread #define BLOB_REFLECTOR_COST 15 -//Objectives-Ambitions Panel -#define REQUEST_NEW_OBJECTIVE "new_objective" -#define REQUEST_DEL_OBJECTIVE "del_objective" -#define REQUEST_WIN_OBJECTIVE "win_objective" -#define REQUEST_LOSE_OBJECTIVE "lose_objective" /// How many telecrystals a normal traitor starts with #define TELECRYSTALS_DEFAULT 20 /// How many telecrystals mapper/admin only "precharged" uplink implant @@ -128,3 +123,9 @@ GLOBAL_LIST_EMPTY(living_heart_cache) //A list of all living hearts in existance /// The dimensions of the antagonist preview icon. Will be scaled to this size. #define ANTAGONIST_PREVIEW_ICON_SIZE 96 + +//Objectives-Ambitions Panel +#define REQUEST_NEW_OBJECTIVE "new_objective" +#define REQUEST_DEL_OBJECTIVE "del_objective" +#define REQUEST_WIN_OBJECTIVE "win_objective" +#define REQUEST_LOSE_OBJECTIVE "lose_objective" diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm index 2ead5ea068..35de475d35 100644 --- a/code/__DEFINES/atmospherics.dm +++ b/code/__DEFINES/atmospherics.dm @@ -116,6 +116,7 @@ #define GLOVES_MAX_TEMP_PROTECT 1500 //For some gloves #define SHOES_MIN_TEMP_PROTECT 2.0 //For gloves #define SHOES_MAX_TEMP_PROTECT 1500 //For gloves +#define COAT_MAX_TEMP_PROTECT 330 //For winter coats (if they can stop you from getting cold why can't they do it the other way to a lesser extent) #define PRESSURE_DAMAGE_COEFFICIENT 4 //The amount of pressure damage someone takes is equal to (pressure / HAZARD_HIGH_PRESSURE)*PRESSURE_DAMAGE_COEFFICIENT, with the maximum of MAX_PRESSURE_DAMAGE #define MAX_HIGH_PRESSURE_DAMAGE 16 // CITADEL CHANGES Max to 16, low to 8. diff --git a/code/__DEFINES/inventory.dm b/code/__DEFINES/inventory.dm index 1431ad2109..f9f242e7e3 100644 --- a/code/__DEFINES/inventory.dm +++ b/code/__DEFINES/inventory.dm @@ -6,116 +6,67 @@ #define STORAGE_VIEW_DEPTH 2 //ITEM INVENTORY SLOT BITMASKS -#define ITEM_SLOT_OCLOTHING (1<<0) -#define ITEM_SLOT_ICLOTHING (1<<1) -#define ITEM_SLOT_GLOVES (1<<2) -#define ITEM_SLOT_EYES (1<<3) -#define ITEM_SLOT_EARS (1<<4) -#define ITEM_SLOT_MASK (1<<5) -#define ITEM_SLOT_HEAD (1<<6) -#define ITEM_SLOT_FEET (1<<7) -#define ITEM_SLOT_ID (1<<8) -#define ITEM_SLOT_BELT (1<<9) -#define ITEM_SLOT_BACK (1<<10) -#define ITEM_SLOT_POCKET (1<<11) // this is to allow items with a w_class of WEIGHT_CLASS_NORMAL or WEIGHT_CLASS_BULKY to fit in pockets. -#define ITEM_SLOT_DENYPOCKET (1<<12) // this is to deny items with a w_class of WEIGHT_CLASS_SMALL or WEIGHT_CLASS_TINY to fit in pockets. -#define ITEM_SLOT_NECK (1<<13) -#define ITEM_SLOT_HANDS (1<<14) -#define ITEM_SLOT_BACKPACK (1<<15) -#define ITEM_SLOT_SUITSTORE (1<<16) -//skyrat edit -#define ITEM_SLOT_UNDERWEAR (1<<17) -#define ITEM_SLOT_SOCKS (1<<18) -#define ITEM_SLOT_SHIRT (1<<19) -#define ITEM_SLOT_WRISTS (1<<20) -// +/// Suit slot (armors, costumes, space suits, etc.) +#define ITEM_SLOT_OCLOTHING (1<<0) +/// Jumpsuit slot +#define ITEM_SLOT_ICLOTHING (1<<1) +/// Glove slot +#define ITEM_SLOT_GLOVES (1<<2) +/// Glasses slot +#define ITEM_SLOT_EYES (1<<3) +/// Ear slot (radios, earmuffs) +#define ITEM_SLOT_EARS_LEFT (1<<4) +/// Mask slot +#define ITEM_SLOT_MASK (1<<5) +/// Head slot (helmets, hats, etc.) +#define ITEM_SLOT_HEAD (1<<6) +/// Shoe slot +#define ITEM_SLOT_FEET (1<<7) +/// ID slot +#define ITEM_SLOT_ID (1<<8) +/// Belt slot +#define ITEM_SLOT_BELT (1<<9) +/// Back slot +#define ITEM_SLOT_BACK (1<<10) +/// Dextrous simplemob "hands" (used for Drones and Dextrous Guardians) +#define ITEM_SLOT_DEX_STORAGE (1<<11) +/// Neck slot (ties, bedsheets, scarves) +#define ITEM_SLOT_NECK (1<<12) +/// A character's hand slots +#define ITEM_SLOT_HANDS (1<<13) +/// Inside of a character's backpack +#define ITEM_SLOT_BACKPACK (1<<14) +/// Suit Storage slot +#define ITEM_SLOT_SUITSTORE (1<<15) +/// Left Pocket slot +#define ITEM_SLOT_LPOCKET (1<<16) +/// Right Pocket slot +#define ITEM_SLOT_RPOCKET (1<<17) +// -- Sandstorm edit -- +/// Underwear slot +#define ITEM_SLOT_UNDERWEAR (1<<17) +/// Socks slot +#define ITEM_SLOT_SOCKS (1<<18) +/// Shirt slot +#define ITEM_SLOT_SHIRT (1<<19) +/// Right ear slot +#define ITEM_SLOT_EARS_RIGHT (1<<20) +/// Wrist slot +#define ITEM_SLOT_WRISTS (1<<21) +// -- End edit -- +/// Handcuff slot +#define ITEM_SLOT_HANDCUFFED (1<<22) +/// Legcuff slot (bolas, beartraps) +#define ITEM_SLOT_LEGCUFFED (1<<23) -//SLOTS -#define SLOT_BACK 1 -#define SLOT_WEAR_MASK 2 -#define SLOT_HANDCUFFED 3 -#define SLOT_HANDS 4 //wherever you provide a slot for hands you provide SLOT_HANDS - //SLOT_HANDS as a slot will pick ANY available hand -#define SLOT_BELT 5 -#define SLOT_WEAR_ID 6 -#define SLOT_EARS_LEFT 7 //skyrat edit -#define SLOT_GLASSES 8 -#define SLOT_GLOVES 9 -#define SLOT_NECK 10 -#define SLOT_HEAD 11 -#define SLOT_SHOES 12 -#define SLOT_WEAR_SUIT 13 -#define SLOT_W_UNIFORM 14 -#define SLOT_L_STORE 15 -#define SLOT_R_STORE 16 -#define SLOT_S_STORE 17 -#define SLOT_IN_BACKPACK 18 -#define SLOT_LEGCUFFED 19 -#define SLOT_GENERC_DEXTROUS_STORAGE 20 -//skyrat edit -#define SLOT_W_UNDERWEAR 21 -#define SLOT_W_SOCKS 22 -#define SLOT_W_SHIRT 23 -#define SLOT_EARS_RIGHT 24 -#define SLOT_WRISTS 25 -// +/// Total amount of slots +#define SLOTS_AMT 25 // Keep this up to date! +//SLOT GROUP HELPERS +#define ITEM_SLOT_POCKETS (ITEM_SLOT_LPOCKET|ITEM_SLOT_RPOCKET) -#define SLOTS_AMT 25 // Keep this up to date! //skyrat edit - extra slots - -//I hate that this has to exist -/proc/slotdefine2slotbit(slotdefine) //Keep this up to date with the value of SLOT BITMASKS and SLOTS (the two define sections above) - . = 0 - switch(slotdefine) - if(SLOT_BACK) - . = ITEM_SLOT_BACK - if(SLOT_WEAR_MASK) - . = ITEM_SLOT_MASK - if(SLOT_NECK) - . = ITEM_SLOT_NECK - if(SLOT_BELT) - . = ITEM_SLOT_BELT - if(SLOT_WEAR_ID) - . = ITEM_SLOT_ID - //skyrat edit - if(SLOT_EARS_RIGHT) - . = ITEM_SLOT_EARS - if(SLOT_EARS_LEFT) - . = ITEM_SLOT_EARS - // - if(SLOT_GLASSES) - . = ITEM_SLOT_EYES - if(SLOT_GLOVES) - . = ITEM_SLOT_GLOVES - //skyrat edit - if(SLOT_WRISTS) - . = ITEM_SLOT_WRISTS - // - if(SLOT_HEAD) - . = ITEM_SLOT_HEAD - if(SLOT_SHOES) - . = ITEM_SLOT_FEET - if(SLOT_WEAR_SUIT) - . = ITEM_SLOT_OCLOTHING - if(SLOT_W_UNIFORM) - . = ITEM_SLOT_ICLOTHING - if(SLOT_L_STORE, SLOT_R_STORE) - . = ITEM_SLOT_POCKET - if(SLOT_HANDS) - . = ITEM_SLOT_HANDS - if(SLOT_IN_BACKPACK) - . = ITEM_SLOT_BACKPACK - if(SLOT_S_STORE) - . = ITEM_SLOT_SUITSTORE - //skyrat edit - if(SLOT_W_UNDERWEAR) - . = ITEM_SLOT_UNDERWEAR - if(SLOT_W_SOCKS) - . = ITEM_SLOT_SOCKS - if(SLOT_W_SHIRT) - . = ITEM_SLOT_SHIRT - // - +//EARS HELPER +#define ITEM_SLOT_EARS (ITEM_SLOT_EARS_LEFT|ITEM_SLOT_EARS_RIGHT) //Bit flags for the flags_inv variable, which determine when a piece of clothing hides another. IE a helmet hiding glasses. #define HIDEGLOVES (1<<0) @@ -278,4 +229,4 @@ GLOBAL_LIST_INIT(security_wintercoat_allowed, typecacheof(list( #define GET_INTERNAL_SLOTS(C) list(C.head, C.wear_mask) //Slots that won't trigger humans' update_genitals() on equip(). -GLOBAL_LIST_INIT(no_genitals_update_slots, list(SLOT_L_STORE, SLOT_R_STORE, SLOT_S_STORE, SLOT_IN_BACKPACK, SLOT_LEGCUFFED, SLOT_HANDCUFFED, SLOT_HANDS, SLOT_GENERC_DEXTROUS_STORAGE)) +GLOBAL_LIST_INIT(no_genitals_update_slots, list(ITEM_SLOT_LPOCKET, ITEM_SLOT_RPOCKET, ITEM_SLOT_SUITSTORE, ITEM_SLOT_BACKPACK, ITEM_SLOT_LEGCUFFED, ITEM_SLOT_HANDCUFFED, ITEM_SLOT_HANDS, ITEM_SLOT_DEX_STORAGE)) diff --git a/code/__DEFINES/maths.dm b/code/__DEFINES/maths.dm index f56cd76a71..60d02c1e49 100644 --- a/code/__DEFINES/maths.dm +++ b/code/__DEFINES/maths.dm @@ -105,6 +105,9 @@ #define TORADIANS(degrees) ((degrees) * 0.0174532925) +/// Gets shift x that would be required the bitflag (1<You have been equipped with a replica fabricator, an advanced tool that can convert objects like doors, tables or even coats into clockwork equivalents.") slot = H.equip_in_one_of_slots(S, slots) if(slot == "In your backpack") diff --git a/code/game/gamemodes/clown_ops/bananium_bomb.dm b/code/game/gamemodes/clown_ops/bananium_bomb.dm index 9ce9bff6ac..b276aeeb48 100644 --- a/code/game/gamemodes/clown_ops/bananium_bomb.dm +++ b/code/game/gamemodes/clown_ops/bananium_bomb.dm @@ -37,24 +37,24 @@ if(!H.w_uniform || H.dropItemToGround(H.w_uniform)) C = new /obj/item/clothing/under/rank/civilian/clown(H) ADD_TRAIT(C, TRAIT_NODROP, CLOWN_NUKE_TRAIT) - H.equip_to_slot_or_del(C, SLOT_W_UNIFORM) + H.equip_to_slot_or_del(C, ITEM_SLOT_ICLOTHING) //skyrat edit if(!H.w_shirt || H.dropItemToGround(H.w_shirt)) C = new /obj/item/clothing/underwear/shirt/clown(H) ADD_TRAIT(C, TRAIT_NODROP, CLOWN_NUKE_TRAIT) - H.equip_to_slot_or_del(C, SLOT_W_SHIRT) + H.equip_to_slot_or_del(C, ITEM_SLOT_SHIRT) // if(!H.shoes || H.dropItemToGround(H.shoes)) C = new /obj/item/clothing/shoes/clown_shoes(H) ADD_TRAIT(C, TRAIT_NODROP, CLOWN_NUKE_TRAIT) - H.equip_to_slot_or_del(C, SLOT_SHOES) + H.equip_to_slot_or_del(C, ITEM_SLOT_FEET) if(!H.wear_mask || H.dropItemToGround(H.wear_mask)) C = new /obj/item/clothing/mask/gas/clown_hat(H) ADD_TRAIT(C, TRAIT_NODROP, CLOWN_NUKE_TRAIT) - H.equip_to_slot_or_del(C, SLOT_WEAR_MASK) + H.equip_to_slot_or_del(C, ITEM_SLOT_MASK) H.dna.add_mutation(CLOWNMUT) H.dna.add_mutation(SMILE) diff --git a/code/game/gamemodes/clown_ops/clown_weapons.dm b/code/game/gamemodes/clown_ops/clown_weapons.dm index a27cb02ea8..081ffbbdc4 100644 --- a/code/game/gamemodes/clown_ops/clown_weapons.dm +++ b/code/game/gamemodes/clown_ops/clown_weapons.dm @@ -214,7 +214,7 @@ if(!istype(C.wear_mask, /obj/item/clothing/mask/gas/clown_hat) && !istype(C.wear_mask, /obj/item/clothing/mask/gas/mime)) if(!C.wear_mask || C.dropItemToGround(C.wear_mask)) var/obj/item/clothing/mask/fakemoustache/sticky/the_stash = new /obj/item/clothing/mask/fakemoustache/sticky() - C.equip_to_slot_or_del(the_stash, SLOT_WEAR_MASK, TRUE, TRUE, TRUE, TRUE) + C.equip_to_slot_or_del(the_stash, ITEM_SLOT_MASK, TRUE, TRUE, TRUE, TRUE) /obj/item/clothing/mask/fakemoustache/sticky var/unstick_time = 2 MINUTES @@ -226,7 +226,7 @@ /obj/item/clothing/mask/fakemoustache/sticky/equipped(mob/user, slot) . = ..() - if(slot == SLOT_WEAR_MASK) + if(slot == ITEM_SLOT_MASK) ADD_TRAIT(user, TRAIT_NO_INTERNALS, STICKY_MOUSTACHE_TRAIT) /obj/item/clothing/mask/fakemoustache/sticky/dropped(mob/user) diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index a82abe9b3d..f7ccae24e4 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -154,7 +154,7 @@ if(tc) var/obj/item/U = new uplink_type(H, H.key, tc) - H.equip_to_slot_or_del(U, SLOT_IN_BACKPACK) + H.equip_to_slot_or_del(U, ITEM_SLOT_BACKPACK) var/obj/item/implant/weapons_auth/W = new W.implant(H) @@ -170,7 +170,7 @@ mask = /obj/item/clothing/mask/gas/syndicate suit = /obj/item/clothing/suit/space/hardsuit/syndi r_pocket = /obj/item/tank/internals/emergency_oxygen/engi - internals_slot = SLOT_R_STORE + internals_slot = ITEM_SLOT_RPOCKET belt = /obj/item/storage/belt/military r_hand = /obj/item/gun/ballistic/automatic/shotgun/bulldog backpack_contents = list(/obj/item/storage/box/survival/syndie=1,\ @@ -186,7 +186,7 @@ suit = /obj/item/clothing/suit/space/syndicate/black/red head = /obj/item/clothing/head/helmet/space/syndicate/black/red r_pocket = /obj/item/tank/internals/emergency_oxygen/engi - internals_slot = SLOT_R_STORE + internals_slot = ITEM_SLOT_RPOCKET belt = /obj/item/storage/belt/military backpack_contents = list(/obj/item/storage/box/survival/syndie=1,\ /obj/item/tank/jetpack/oxygen/harness=1,\ diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index 0358c3af2c..fd43b994e8 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -165,7 +165,7 @@ If not set, defaults to check_completion instead. Set it. It's used by cryo. if(receiver && receiver.current) if(ishuman(receiver.current)) var/mob/living/carbon/human/H = receiver.current - var/list/slots = list("backpack" = SLOT_IN_BACKPACK) + var/list/slots = list("backpack" = ITEM_SLOT_BACKPACK) for(var/eq_path in special_equipment) var/obj/O = new eq_path . += O @@ -1197,7 +1197,7 @@ GLOBAL_LIST_EMPTY(cult_contraband) I.forceMove(get_turf(owner)) if(ishuman(owner)) var/mob/living/carbon/human/H = owner - H.equip_in_one_of_slots(I, list("backpack" = SLOT_IN_BACKPACK), critical = TRUE) + H.equip_in_one_of_slots(I, list("backpack" = ITEM_SLOT_BACKPACK), critical = TRUE) hoarded_item = I diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 1b9141ab01..a93a7cfc3b 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -433,7 +433,7 @@ var/mob/living/L = C.loc var/turf/pos = get_turf(L) - if(!pos || C != L.get_item_by_slot(SLOT_NECK)) + if(!pos || C != L.get_item_by_slot(ITEM_SLOT_NECK)) continue var/list/slave = list() diff --git a/code/game/machinery/limbgrower.dm b/code/game/machinery/limbgrower.dm index 13dcf758f0..cd0d4b4a8f 100644 --- a/code/game/machinery/limbgrower.dm +++ b/code/game/machinery/limbgrower.dm @@ -52,23 +52,30 @@ /obj/machinery/limbgrower/ui_data(mob/user) var/list/data = list() - - for(var/datum/reagent/reagent_id in reagents.reagent_list) - var/list/reagent_data = list( - reagent_name = reagent_id.name, - reagent_amount = reagent_id.volume, - reagent_type = reagent_id.type - ) - data["reagents"] += list(reagent_data) - + if(reagents.reagent_list.len) + for(var/datum/reagent/reagent_id in reagents.reagent_list) + var/list/reagent_data = list( + reagent_name = reagent_id.name, + reagent_amount = reagent_id.volume, + reagent_type = reagent_id.type + ) + data["reagents"] += list(reagent_data) + else + data["reagents"] = list() data["total_reagents"] = reagents.total_volume data["max_reagents"] = reagents.maximum_volume data["busy"] = busy var/list/disk_data = list() disk_data["disk"] = dna_disk //Do i, the machine, have a disk? - disk_data["name"] = dna_disk?.fields["name"] //Name for the human saved if there is one + if(dna_disk) + if(dna_disk.fields["name"]) + disk_data["name"] = dna_disk.fields["name"] + else if(dna_disk.genetic_makeup_buffer["name"]) + disk_data["name"] = dna_disk.genetic_makeup_buffer["name"] + else + disk_data["name"] = "No name" + //Name for the human saved if there is one data["disk"] = disk_data - return data /obj/machinery/limbgrower/ui_static_data(mob/user) @@ -119,6 +126,18 @@ if (busy) to_chat(user, "\The [src] is busy. Please wait for completion of previous operation.") return + if(ispath(user_item.type, /obj/item/reagent_containers/blood) && user.a_intent != INTENT_HARM) + var/obj/item/reagent_containers/blood/B = user_item + if(!B.reagents.get_reagents()) + to_chat(user, "You can't fill [src] with an empty [B.name]!") + return + if(reagents.total_volume == reagents.maximum_volume) + to_chat(user, "\The [src] can't hold more blood!") + return + user.visible_message("[user] drains the [user_item] into [src] using the blood bag port on [src].", + "You drain the [user_item] into [src] using the blood bag port.") + B.reagents.trans_to(src, B.amount_per_transfer_from_this) + return if(default_deconstruction_screwdriver(user, "limbgrower_panelopen", "limbgrower_idleoff", user_item)) ui_close(user) @@ -180,7 +199,7 @@ for(var/reagent_id in consumed_reagents_list) consumed_reagents_list[reagent_id] *= production_coefficient if(!reagents.has_reagent(reagent_id, consumed_reagents_list[reagent_id])) - audible_message("\The [src] buzzes.") + audible_message("\The [src] buzzes and states \"INSUFFICENT REAGENTS\"") playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE) return @@ -206,17 +225,13 @@ * modified_consumed_reagents_list - the list of reagents we will consume on build, modified by the production coefficient. */ /obj/machinery/limbgrower/proc/build_item(list/modified_consumed_reagents_list) - for(var/reagent_id in modified_consumed_reagents_list) - if(!reagents.has_reagent(reagent_id, modified_consumed_reagents_list[reagent_id])) - audible_message("\The [src] buzzes.") - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE) - break - - reagents.remove_reagent(reagent_id, modified_consumed_reagents_list[reagent_id]) - + reagent_usage(modified_consumed_reagents_list) var/built_typepath = being_built.build_path // If we have a bodypart, we need to initialize the limb on its own. Otherwise we can build it here. - if(ispath(built_typepath, /obj/item/bodypart)) + if(ispath(built_typepath, /mob/living/carbon/human/chestonly)) + if(!build_mob_chest(built_typepath, FALSE)) + reagent_usage(modified_consumed_reagents_list, FALSE) + else if(ispath(built_typepath, /obj/item/bodypart)) build_limb(built_typepath) else if(ispath(built_typepath, /obj/item/organ/genital)) //genitals are uhh... customizable build_genital(built_typepath) @@ -227,6 +242,25 @@ flick("limbgrower_unfill", src) icon_state = "limbgrower_idleoff" +/obj/machinery/limbgrower/proc/reagent_usage(modified_consumed_reagents_list, remove = TRUE) + // Apparently, having a boolean in a loop is worse than doing it twice + if(remove) + for(var/reagent_id in modified_consumed_reagents_list) + if(reagent_sanity_check(reagent_id, modified_consumed_reagents_list[reagent_id])) + reagents.remove_reagent(reagent_id, modified_consumed_reagents_list[reagent_id]) + else + for(var/reagent_id in modified_consumed_reagents_list) + if(reagent_sanity_check(reagent_id, modified_consumed_reagents_list[reagent_id])) + reagents.add_reagent(reagent_id, modified_consumed_reagents_list[reagent_id]) + + +/obj/machinery/limbgrower/proc/reagent_sanity_check(reagent_id, amount) + if(reagents.has_reagent(reagent_id, amount)) + return TRUE + audible_message("\The [src] buzzes, with a screen showing: INSUFFICENT REAGENTS") + playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE) + return FALSE + /* * The process of putting together a limb. * This is called from after we remove the reagents, so this proc is just initializing the limb type. @@ -318,6 +352,53 @@ else new built_typepath(loc) +/obj/machinery/limbgrower/proc/build_mob_chest(built_typepath) + // Create a mob with a chest, but nothing else + if(!ispath(built_typepath, /mob/living/carbon/human/chestonly)) + playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE) + visible_message(src, "Buzzes, an error screen appearing on its display.") + return FALSE + // Fields is from cloning, a much fuller scan, genetic_makeup_buffer is less so + var/dna_genetics = dna_disk?.genetic_makeup_buffer + var/dna_cloning = dna_disk?.fields + var/datum/species/selected = GLOB.species_datums[selected_category] + var/mob/living/carbon/human/chestonly/C = new(loc) + C.real_name = length(dna_genetics) ? dna_genetics["name"] : "Synthetic Humanoid #[rand(10000, 99999)]" + if(length(dna_cloning)) + C.hardset_dna(dna_cloning["UI"], dna_cloning["SE"], dna_cloning["name"], dna_cloning["blood_type"], dna_cloning["mrace"], dna_cloning["features"]) + else if(length(dna_genetics)) + C.hardset_dna(dna_genetics["UI"], null, dna_genetics["name"], dna_genetics["blood_type"]) + else + C.real_name = "Synthetic Humanoid #[rand(10000, 99999)]" + C.hair_style = "bald" + C.skin_tone = "albino" + C.set_species(selected) + C.set_resting(TRUE, TRUE) + // Don't want to cause it to deathgasp.. + C.stat = DEAD + C.adjustOxyLoss(200) + // Limb replacement causes toxloss, which can cause too much suffering for the doctor that I don't want + C.adjustCloneLoss(45) + C.med_hud_set_status() + C.med_hud_set_health() + C.underwear = "Nude" + C.undershirt = "Nude" + C.saved_underwear = "" + C.saved_undershirt = "" + + // Just enough to start reviving them, I hope + C.blood_volume = BLOOD_VOLUME_SURVIVE + // At some point, make a way to deal with species regenerate_organs + // Remove all the organs + for(var/organ in C.internal_organs) + var/obj/item/organ/O = organ + O.Remove(organ) + C.update_body(TRUE) + C.update_hair() + C.update_body_parts() + C.update_appearance() + return TRUE + /obj/machinery/limbgrower/RefreshParts() reagents.maximum_volume = 0 for(var/obj/item/reagent_containers/glass/our_beaker in component_parts) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 61f638fc69..529e01f2f5 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -351,7 +351,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb return if(anchored) return - if(loc == user && current_equipped_slot && current_equipped_slot != SLOT_HANDS) + if(loc == user && current_equipped_slot && current_equipped_slot != ITEM_SLOT_HANDS) if(current_equipped_slot in user.check_obscured_slots()) to_chat(user, "You are unable to unequip that while wearing other garments over it!") return FALSE @@ -416,7 +416,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb return if(anchored) return - if(loc == user && current_equipped_slot && current_equipped_slot != SLOT_HANDS) + if(loc == user && current_equipped_slot && current_equipped_slot != ITEM_SLOT_HANDS) if(current_equipped_slot in user.check_obscured_slots()) to_chat(user, "You are unable to unequip that while wearing other garments over it!") return FALSE @@ -568,7 +568,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb //sometimes we only want to grant the item's action if it's equipped in a specific slot. /obj/item/proc/item_action_slot_check(slot, mob/user, datum/action/A) - if(slot == SLOT_IN_BACKPACK || slot == SLOT_LEGCUFFED) //these aren't true slots, so avoid granting actions there + if(slot == ITEM_SLOT_BACKPACK || slot == ITEM_SLOT_LEGCUFFED) //these aren't true slots, so avoid granting actions there return FALSE return TRUE @@ -829,7 +829,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb if(ismob(location)) var/mob/M = location var/success = FALSE - if(src == M.get_item_by_slot(SLOT_WEAR_MASK)) + if(src == M.get_item_by_slot(ITEM_SLOT_MASK)) success = TRUE if(success) location = get_turf(M) diff --git a/code/game/objects/items/chrono_eraser.dm b/code/game/objects/items/chrono_eraser.dm index 04838103f9..682ce18215 100644 --- a/code/game/objects/items/chrono_eraser.dm +++ b/code/game/objects/items/chrono_eraser.dm @@ -34,7 +34,7 @@ user.put_in_hands(PA) /obj/item/chrono_eraser/item_action_slot_check(slot, mob/user, datum/action/A) - if(slot == SLOT_BACK) + if(slot == ITEM_SLOT_BACK) return 1 /obj/item/gun/energy/chrono_gun diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index 702cbd8d56..8227097d8f 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -89,7 +89,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM ..() /obj/item/proc/help_light_cig(mob/living/M) - var/mask_item = M.get_item_by_slot(SLOT_WEAR_MASK) + var/mask_item = M.get_item_by_slot(ITEM_SLOT_MASK) if(istype(mask_item, /obj/item/clothing/mask/cigarette)) return mask_item @@ -130,7 +130,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM reagents.add_reagent_list(list_reagents) if(starts_lit) light() - AddComponent(/datum/component/knockoff,90,list(BODY_ZONE_PRECISE_MOUTH),list(SLOT_WEAR_MASK))//90% to knock off when wearing a mask + AddComponent(/datum/component/knockoff,90,list(BODY_ZONE_PRECISE_MOUTH),list(ITEM_SLOT_MASK))//90% to knock off when wearing a mask /obj/item/clothing/mask/cigarette/Destroy() STOP_PROCESSING(SSobj, src) @@ -819,7 +819,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM /obj/item/clothing/mask/vape/equipped(mob/user, slot) . = ..() - if(slot == SLOT_WEAR_MASK) + if(slot == ITEM_SLOT_MASK) if(!screw) to_chat(user, "You start puffing on the vape.") reagents.reagents_holder_flags &= ~(NO_REACT) @@ -830,7 +830,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM /obj/item/clothing/mask/vape/dropped(mob/user) . = ..() var/mob/living/carbon/C = user - if(C.get_item_by_slot(SLOT_WEAR_MASK) == src) + if(C.get_item_by_slot(ITEM_SLOT_MASK) == src) reagents.reagents_holder_flags |= NO_REACT STOP_PROCESSING(SSobj, src) diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index bf1fdb1716..a231da32c8 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -36,8 +36,8 @@ var/text_buffer = "" var/static/list/graffiti = list("amyjon","face","matt","revolution","engie","guy","end","dwarf","uboa","body","cyka","star","poseur tag","prolizard","antilizard", "tile") - var/static/list/symbols = list("danger","firedanger","electricdanger","biohazard","radiation","safe","evac","space","med","trade","shop","food","peace","like","skull","nay","heart","credit") - var/static/list/drawings = list("smallbrush","brush","largebrush","splatter","snake","stickman","carp","ghost","clown","taser","disk","fireaxe","toolbox","corgi","cat","toilet","blueprint","beepsky","scroll","bottle","shotgun") + var/static/list/symbols = list("danger","firedanger","electricdanger","biohazard","radiation","safe","evac","space","med","trade","shop","food","peace","like","skull","nay","heart","credit", "sonne", "ironguard", "scp", "falange", "swas") + var/static/list/drawings = list("smallbrush","brush","largebrush","splatter","snake","stickman","carp","ghost","clown","taser","disk","fireaxe","toolbox","corgi","cat","toilet","blueprint","beepsky","scroll","bottle","shotgun", "boobs", "booty", "bdragon") var/static/list/oriented = list("arrow","line","thinline","shortline","body","chevron","footprint","clawprint","pawprint") // These turn to face the same way as the drawer var/static/list/runes = list("rune1","rune2","rune3","rune4","rune5","rune6") var/static/list/randoms = list(RANDOM_ANY, RANDOM_RUNE, RANDOM_ORIENTED, diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index 0570de6bcf..476758efee 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -80,13 +80,13 @@ /obj/item/defibrillator/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags) if(loc == user) if(slot_flags == ITEM_SLOT_BACK) - if(user.get_item_by_slot(SLOT_BACK) == src) + if(user.get_item_by_slot(ITEM_SLOT_BACK) == src) ui_action_click() else to_chat(user, "Put the defibrillator on your back first!") else if(slot_flags == ITEM_SLOT_BELT) - if(user.get_item_by_slot(SLOT_BELT) == src) + if(user.get_item_by_slot(ITEM_SLOT_BELT) == src) ui_action_click() else to_chat(user, "Strap the defibrillator's belt on first!") @@ -182,7 +182,7 @@ /obj/item/defibrillator/equipped(mob/user, slot) ..() - if((slot_flags == ITEM_SLOT_BACK && slot != SLOT_BACK) || (slot_flags == ITEM_SLOT_BELT && slot != SLOT_BELT)) + if((slot_flags == ITEM_SLOT_BACK && slot != ITEM_SLOT_BACK) || (slot_flags == ITEM_SLOT_BELT && slot != ITEM_SLOT_BELT)) remove_paddles(user) update_power() diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 2339e88a76..1a130998b6 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -369,6 +369,10 @@ GLOBAL_LIST_EMPTY(PDAs) dat += "
  • [PDAIMG(rdoor)]Toggle Remote Door
  • " if (cartridge.access & CART_DRONEPHONE) dat += "
  • [PDAIMG(dronephone)]Drone Phone
  • " + if (cartridge.access & CART_BARTENDER) + dat += "
  • [PDAIMG(bucket)]Drink Recipe Browser
  • " + if (cartridge.access & CART_CHEMISTRY) + dat += "
  • [PDAIMG(bucket)]Chemistry Recipe Browser
  • " dat += "
  • [PDAIMG(atmos)]Atmospheric Scan
  • " dat += "
  • [PDAIMG(flashlight)][fon ? "Disable" : "Enable"] Flashlight
  • " if (pai) @@ -705,6 +709,16 @@ GLOBAL_LIST_EMPTY(PDAs) if(T) pai.forceMove(T) +//DRINK RECIPE BROWSER============================= + if("Drink Recipe Browser") + if(cartridge && cartridge.access & CART_BARTENDER) + recipe_search(U, GLOB.drink_reactions_list) + +//CHEMISTRY RECIPE BROWSER + if("Chemistry Recipe Browser") + if(cartridge && cartridge.access & CART_CHEMISTRY) + recipe_search(U, GLOB.normalized_chemical_reactions_list) + //LINK FUNCTIONS=================================== else//Cartridge menu linking diff --git a/code/game/objects/items/devices/PDA/PDA_types.dm b/code/game/objects/items/devices/PDA/PDA_types.dm index 23ebaec3c2..8fcd97c261 100644 --- a/code/game/objects/items/devices/PDA/PDA_types.dm +++ b/code/game/objects/items/devices/PDA/PDA_types.dm @@ -222,6 +222,7 @@ /obj/item/pda/bar name = "bartender PDA" icon_state = "pda-bartender" + default_cartridge = /obj/item/cartridge/bartender inserted_item = /obj/item/pen/fountain /obj/item/pda/atmos diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm index 4ca0b86bc0..ca72e3371b 100644 --- a/code/game/objects/items/devices/PDA/cart.dm +++ b/code/game/objects/items/devices/PDA/cart.dm @@ -13,6 +13,8 @@ #define CART_QUARTERMASTER (1<<12) #define CART_HYDROPONICS (1<<13) #define CART_DRONEPHONE (1<<14) +#define CART_BARTENDER (1<<15) +#define CART_CHEMISTRY (1<<16) /obj/item/cartridge @@ -77,7 +79,7 @@ /obj/item/cartridge/chemistry name = "\improper ChemWhiz cartridge" icon_state = "cart-chem" - access = CART_REAGENT_SCANNER + access = CART_REAGENT_SCANNER | CART_CHEMISTRY bot_access_flags = MED_BOT /obj/item/cartridge/security @@ -190,6 +192,12 @@ bot_access_flags = SEC_BOT | MULE_BOT | FLOOR_BOT | CLEAN_BOT | MED_BOT | FIRE_BOT spam_enabled = 1 +/obj/item/cartridge/bartender + name = "\improper B.O.O.Z.E cartridge" + desc = "Now with 12% alcohol!" + icon_state = "cart-bar" + access = CART_BARTENDER + /obj/item/cartridge/captain/New() ..() radio = new(src) diff --git a/code/game/objects/items/devices/megaphone.dm b/code/game/objects/items/devices/megaphone.dm index 365446bad9..a3de2d822f 100644 --- a/code/game/objects/items/devices/megaphone.dm +++ b/code/game/objects/items/devices/megaphone.dm @@ -19,7 +19,7 @@ /obj/item/megaphone/equipped(mob/M, slot) . = ..() - if (slot == SLOT_HANDS) + if (slot == ITEM_SLOT_HANDS) RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech) else UnregisterSignal(M, COMSIG_MOB_SAY) diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm index ad65432fa8..f67c66d104 100644 --- a/code/game/objects/items/devices/radio/electropack.dm +++ b/code/game/objects/items/devices/radio/electropack.dm @@ -158,7 +158,7 @@ category = list("hacked", "Misc") /obj/item/electropack/shockcollar/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags) - if(loc == user && user.get_item_by_slot(SLOT_NECK)) + if(loc == user && user.get_item_by_slot(ITEM_SLOT_NECK)) to_chat(user, "The collar is fastened tight! You'll need help taking this off!") return return ..() @@ -169,7 +169,7 @@ if(isliving(loc) && on) //the "on" arg is currently useless var/mob/living/L = loc - if(!L.get_item_by_slot(SLOT_NECK)) //**properly** stops pocket shockers + if(!L.get_item_by_slot(ITEM_SLOT_NECK)) //**properly** stops pocket shockers return if(shock_cooldown == TRUE) return diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index dad6adb3c4..d3f932eddc 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -56,7 +56,7 @@ GLOBAL_LIST_INIT(channel_tokens, list( /obj/item/radio/headset/ComponentInitialize() . = ..() if (bowman) - AddComponent(/datum/component/wearertargeting/earprotection, list(SLOT_EARS_LEFT, SLOT_EARS_RIGHT)) //skyrat edit + AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_EARS_LEFT, ITEM_SLOT_EARS_RIGHT)) /obj/item/radio/headset/Initialize() . = ..() @@ -377,4 +377,4 @@ GLOBAL_LIST_INIT(channel_tokens, list( name = replacetext(name,"headset", "bowman headset") desc = "[desc] Protects ears from flashbangs." bowman = TRUE - AddComponent(/datum/component/wearertargeting/earprotection, list(SLOT_EARS_LEFT, SLOT_EARS_RIGHT)) //skyrat edit + AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_EARS_LEFT, ITEM_SLOT_EARS_RIGHT)) diff --git a/code/game/objects/items/devices/reverse_bear_trap.dm b/code/game/objects/items/devices/reverse_bear_trap.dm index de7e3d2812..810f2150e6 100644 --- a/code/game/objects/items/devices/reverse_bear_trap.dm +++ b/code/game/objects/items/devices/reverse_bear_trap.dm @@ -48,7 +48,7 @@ /obj/item/reverse_bear_trap/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags) if(iscarbon(user)) var/mob/living/carbon/C = user - if(C.get_item_by_slot(SLOT_HEAD) == src) + if(C.get_item_by_slot(ITEM_SLOT_HEAD) == src) if(HAS_TRAIT_FROM(src, TRAIT_NODROP, REVERSE_BEAR_TRAP_TRAIT) && !struggling) struggling = TRUE var/fear_string @@ -82,26 +82,26 @@ ..() /obj/item/reverse_bear_trap/attack(mob/living/target, mob/living/user) - if(target.get_item_by_slot(SLOT_HEAD)) + if(target.get_item_by_slot(ITEM_SLOT_HEAD)) to_chat(user, "Remove [target.p_their()] headgear first!") return target.visible_message("[user] starts forcing [src] onto [target]'s head!", \ "[target] starts forcing [src] onto your head!", "You hear clanking.") to_chat(user, "You start forcing [src] onto [target]'s head...") - if(!do_after(user, 30, target = target) || target.get_item_by_slot(SLOT_HEAD)) + if(!do_after(user, 30, target = target) || target.get_item_by_slot(ITEM_SLOT_HEAD)) return target.visible_message("[user] forces and locks [src] onto [target]'s head!", \ "[target] locks [src] onto your head!", "You hear a click, and then a timer ticking down.") to_chat(user, "You force [src] onto [target]'s head and click the padlock shut.") user.dropItemToGround(src) - target.equip_to_slot_if_possible(src, SLOT_HEAD) + target.equip_to_slot_if_possible(src, ITEM_SLOT_HEAD) arm() notify_ghosts("[user] put a reverse bear trap on [target]!", source = src, action = NOTIFY_ORBIT, ghost_sound = 'sound/machines/beep.ogg') /obj/item/reverse_bear_trap/proc/snap() reset() var/mob/living/carbon/human/H = loc - if(!istype(H) || H.get_item_by_slot(SLOT_HEAD) != src) + if(!istype(H) || H.get_item_by_slot(ITEM_SLOT_HEAD) != src) visible_message("[src]'s jaws snap open with an ear-piercing crack!") playsound(src, 'sound/effects/snap.ogg', 75, TRUE) else diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 0f7e75c882..f1e6da5747 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -434,7 +434,7 @@ GENETICS SCANNER if(R) blood_type = R.name - + if((C.scan_blood_volume() + C.integrating_blood) <= (BLOOD_VOLUME_SAFE * C.blood_ratio) && (C.scan_blood_volume() + C.integrating_blood) > (BLOOD_VOLUME_OKAY*C.blood_ratio)) msg += "LOW [HAS_TRAIT(C, TRAIT_ROBOTIC_ORGANISM) ? "coolant" : "blood"] level [blood_percent] %, [C.scan_blood_volume()] cl[C.integrating_blood? ", with [integrated_blood_percent] % of it integrating, [C.integrating_blood] cl " : ""]. type: [blood_type]\n" else if((C.scan_blood_volume() + C.integrating_blood) <= (BLOOD_VOLUME_OKAY * C.blood_ratio)) diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index ac79b3b887..11900d8e42 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -208,7 +208,7 @@ effective or pretty fucking useless. actions_types = list(/datum/action/item_action/toggle) /obj/item/shadowcloak/ui_action_click(mob/user) - if(user.get_item_by_slot(SLOT_BELT) == src) + if(user.get_item_by_slot(ITEM_SLOT_BELT) == src) if(!on) Activate(usr) else @@ -216,7 +216,7 @@ effective or pretty fucking useless. return /obj/item/shadowcloak/item_action_slot_check(slot, mob/user, datum/action/A) - if(slot == SLOT_BELT) + if(slot == ITEM_SLOT_BELT) return 1 /obj/item/shadowcloak/proc/Activate(mob/living/carbon/human/user) @@ -238,11 +238,11 @@ effective or pretty fucking useless. /obj/item/shadowcloak/dropped(mob/user) ..() - if(user && user.get_item_by_slot(SLOT_BELT) != src) + if(user && user.get_item_by_slot(ITEM_SLOT_BELT) != src) Deactivate() /obj/item/shadowcloak/process() - if(user.get_item_by_slot(SLOT_BELT) != src) + if(user.get_item_by_slot(ITEM_SLOT_BELT) != src) Deactivate() return var/turf/T = get_turf(src) diff --git a/code/game/objects/items/fluff.dm b/code/game/objects/items/fluff.dm index 7105e57c30..0df8d5b447 100644 --- a/code/game/objects/items/fluff.dm +++ b/code/game/objects/items/fluff.dm @@ -6,7 +6,7 @@ // 1) Tennis balls, lines 39 - 99 // 2) Chew bones, lines 101 - 138 // 3) Frisbee, lines 140 - 166 -*/ +*/ /obj/item/toy/fluff name = "Fluff Item" diff --git a/code/game/objects/items/granters.dm b/code/game/objects/items/granters.dm index d1450c2685..c084b90d6f 100644 --- a/code/game/objects/items/granters.dm +++ b/code/game/objects/items/granters.dm @@ -336,7 +336,7 @@ var/obj/item/clothing/magichead = new /obj/item/clothing/mask/horsehead/cursed(user.drop_location()) if(!user.dropItemToGround(user.wear_mask)) qdel(user.wear_mask) - user.equip_to_slot_if_possible(magichead, SLOT_WEAR_MASK, TRUE, TRUE) + user.equip_to_slot_if_possible(magichead, ITEM_SLOT_MASK, TRUE, TRUE) qdel(src) else to_chat(user,"I say thee neigh") //It still lives here diff --git a/code/game/objects/items/inducer.dm b/code/game/objects/items/inducer.dm index ddcd35f834..a5913c308d 100644 --- a/code/game/objects/items/inducer.dm +++ b/code/game/objects/items/inducer.dm @@ -188,7 +188,7 @@ icon_state = "inducer-combat" item_state = "inducer-combat" w_class = WEIGHT_CLASS_BULKY - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT desc = "A tool for inductively charging internal power cells. This one has been modified and upgraded to be able to charge into guns as well as normal electronics." cell_type = /obj/item/stock_parts/cell/hyper powertransfer = 1300 diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm index 6bb501807d..56ad6c2534 100644 --- a/code/game/objects/items/storage/bags.dm +++ b/code/game/objects/items/storage/bags.dm @@ -108,7 +108,7 @@ desc = "This little bugger can be used to store and transport ores." icon = 'icons/obj/mining.dmi' icon_state = "satchel" - slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_POCKET + slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_POCKETS w_class = WEIGHT_CLASS_NORMAL component_type = /datum/component/storage/concrete/stack var/spam_protection = FALSE //If this is TRUE, the holder won't receive any messages when they fail to pick up ore through crossing it @@ -400,7 +400,7 @@ icon = 'icons/obj/chemical.dmi' icon_state = "bag" desc = "A bag for storing pills, patches, and bottles." - slot_flags = ITEM_SLOT_BELT|ITEM_SLOT_POCKET + slot_flags = ITEM_SLOT_BELT|ITEM_SLOT_POCKETS resistance_flags = FLAMMABLE /obj/item/storage/bag/chemistry/ComponentInitialize() @@ -420,7 +420,7 @@ icon = 'icons/obj/chemical.dmi' icon_state = "biobag" desc = "A bag for the safe transportation and disposal of biowaste and other biological materials." - slot_flags = ITEM_SLOT_BELT|ITEM_SLOT_POCKET + slot_flags = ITEM_SLOT_BELT|ITEM_SLOT_POCKETS resistance_flags = FLAMMABLE /obj/item/storage/bag/bio/ComponentInitialize() @@ -451,7 +451,7 @@ desc = "A pouch for your ammo that goes in your pocket." icon = 'icons/obj/items_and_weapons.dmi' icon_state = "ammopouch" - slot_flags = ITEM_SLOT_POCKET + slot_flags = ITEM_SLOT_POCKETS w_class = WEIGHT_CLASS_BULKY resistance_flags = FLAMMABLE @@ -472,7 +472,7 @@ Bag for holding materials desc = "A pouch for sheets and RCD ammunition that manages to hang where you would normally put things in your pocket." icon = 'icons/obj/items_and_weapons.dmi' icon_state = "materialpouch" - slot_flags = ITEM_SLOT_POCKET + slot_flags = ITEM_SLOT_POCKETS w_class = WEIGHT_CLASS_BULKY resistance_flags = FLAMMABLE diff --git a/code/game/objects/items/storage/book.dm b/code/game/objects/items/storage/book.dm index 476f35fe4c..1a3b40d1da 100644 --- a/code/game/objects/items/storage/book.dm +++ b/code/game/objects/items/storage/book.dm @@ -73,7 +73,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "bible", var/mob/living/carbon/human/H = usr H.dna.add_mutation(CLOWNMUT) H.dna.add_mutation(SMILE) - H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(H), SLOT_WEAR_MASK) + H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(H), ITEM_SLOT_MASK) GLOB.bible_icon_state = icon_state GLOB.bibleitemstates = item_state diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm index 9d48351852..48db846a43 100644 --- a/code/game/objects/items/storage/fancy.dm +++ b/code/game/objects/items/storage/fancy.dm @@ -248,10 +248,10 @@ return ..() var/obj/item/clothing/mask/cigarette/cig = locate(/obj/item/clothing/mask/cigarette) in contents if(cig) - if(!user.wear_mask && !(SLOT_WEAR_MASK in M.check_obscured_slots())) + if(!user.wear_mask && !(ITEM_SLOT_MASK in M.check_obscured_slots())) var/obj/item/clothing/mask/cigarette/W = cig SEND_SIGNAL(src, COMSIG_TRY_STORAGE_TAKE, W, M) - M.equip_to_slot_if_possible(W, SLOT_WEAR_MASK) + M.equip_to_slot_if_possible(W, ITEM_SLOT_MASK) contents -= W to_chat(user, "You take \a [W] out of the pack.") else diff --git a/code/game/objects/items/tanks/watertank.dm b/code/game/objects/items/tanks/watertank.dm index fffcd6dada..88131fb197 100644 --- a/code/game/objects/items/tanks/watertank.dm +++ b/code/game/objects/items/tanks/watertank.dm @@ -58,7 +58,7 @@ /obj/item/watertank/equipped(mob/user, slot) ..() - if(slot != SLOT_BACK) + if(slot != ITEM_SLOT_BACK) remove_noz() /obj/item/watertank/proc/remove_noz() @@ -348,14 +348,14 @@ toggle_injection() /obj/item/reagent_containers/chemtank/item_action_slot_check(slot, mob/user, datum/action/A) - if(slot == SLOT_BACK) + if(slot == ITEM_SLOT_BACK) return 1 /obj/item/reagent_containers/chemtank/proc/toggle_injection() var/mob/living/carbon/human/user = usr if(!istype(user)) return - if (user.get_item_by_slot(SLOT_BACK) != src) + if (user.get_item_by_slot(ITEM_SLOT_BACK) != src) to_chat(user, "The chemtank needs to be on your back before you can activate it!") return if(on) diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index 66f3c7104c..59e3cc4a45 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -1232,7 +1232,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 /obj/item/slapper/on_offered(mob/living/carbon/offerer) . = TRUE - + if(!(locate(/mob/living/carbon) in orange(1, offerer))) visible_message(span_danger("[offerer] raises [offerer.p_their()] arm, looking around for a high-five, but there's no one around!"), \ span_warning("You post up, looking for a high-five, but finding no one within range!"), null, 2) diff --git a/code/game/turfs/simulated/lava.dm b/code/game/turfs/simulated/lava.dm index 8d7da15761..5da3d079c2 100644 --- a/code/game/turfs/simulated/lava.dm +++ b/code/game/turfs/simulated/lava.dm @@ -153,8 +153,8 @@ continue if(iscarbon(L)) var/mob/living/carbon/C = L - var/obj/item/clothing/S = C.get_item_by_slot(SLOT_WEAR_SUIT) - var/obj/item/clothing/H = C.get_item_by_slot(SLOT_HEAD) + var/obj/item/clothing/S = C.get_item_by_slot(ITEM_SLOT_OCLOTHING) + var/obj/item/clothing/H = C.get_item_by_slot(ITEM_SLOT_HEAD) if(S && H && S.clothing_flags & LAVAPROTECT && H.clothing_flags & LAVAPROTECT) return diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 972b9e6977..8b28141958 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -30,10 +30,9 @@ to_chat(usr, "You seem to be selecting a mob that doesn't exist anymore.", confidential = TRUE) return -//SKYRAT CHANGES BEGIN +//ambition start var/list/body = list("Options for [M.key]") -//SKYRAT CHANGES END - +//ambition end body += "Options panel for [M]" if(M.client) body += " played by [M.client] " @@ -221,12 +220,11 @@ body += "
    " body += "" -//SKYRAT CHANGES BEGIN +//ambition start var/datum/browser/popup = new(usr, "adminplayeropts-[REF(M)]", "Player Panel", nwidth = 550, nheight = 515) popup.set_content(body.Join()) popup.open() -//SKYRAT CHANGES END - +//ambition end SSblackbox.record_feedback("tally", "admin_verb", 1, "Player Panel") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 154df05356..69201d0317 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -71,7 +71,7 @@ GLOBAL_PROTECT(admin_verbs_admin) /client/proc/cmd_admin_man_up_global, //CIT CHANGE - ditto /client/proc/cmd_admin_create_centcom_report, /client/proc/cmd_change_command_name, - /client/proc/cmd_player_playtimes, /* shows players by playtime */ + /client/proc/cmd_admin_check_player_exp, /* shows players by playtime */ /client/proc/toggle_combo_hud, // toggle display of the combination pizza antag and taco sci/med/eng hud /client/proc/toggle_AI_interact, /*toggle admin ability to interact with machines as an AI*/ /datum/admins/proc/open_shuttlepanel, /* Opens shuttle manipulator UI */ diff --git a/code/modules/admin/playtimes.dm b/code/modules/admin/playtimes.dm new file mode 100644 index 0000000000..c9c908629b --- /dev/null +++ b/code/modules/admin/playtimes.dm @@ -0,0 +1,69 @@ +/datum/player_playtime/New(mob/viewer) + ui_interact(viewer) + +/datum/player_playtime/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "PlayerPlaytimes", "Player Playtimes") + ui.open() + +/datum/player_playtime/ui_state(mob/user) + return GLOB.admin_state + +/datum/player_playtime/ui_data(mob/user) + var/list/data = list() + + var/list/clients = list() + for(var/client/C in GLOB.clients) + var/list/client = list() + + client["ckey"] = C.ckey + client["playtime"] = C.get_exp_living(TRUE) + client["playtime_hours"] = C.get_exp_living() + client["flags"] = check_flags(C) + + var/mob/M = C.mob + client["observer"] = isobserver(M) + client["ingame"] = !isnewplayer(M) + client["name"] = M.real_name + var/nnpa = CONFIG_GET(number/notify_new_player_age) + if(nnpa >= 0) + if(C.account_age >= 0 && (C.account_age < CONFIG_GET(number/notify_new_player_age))) + client["new_account"] = "New BYOND account [C.account_age] day[(C.account_age==1?"":"s")] old, created on [C.account_join_date]" + + clients += list(client) + + clients = sortList(clients, /proc/cmp_playtime) + data["clients"] = clients + return data + +/datum/player_playtime/ui_act(action, params) + if(..()) + return + + switch(action) + if("view_playtime") + var/mob/target = get_mob_by_ckey(params["ckey"]) + usr.client.holder.cmd_show_exp_panel(target.client) + if("admin_pm") + usr.client.cmd_admin_pm(params["ckey"]) + if("player_panel") + var/mob/target = get_mob_by_ckey(params["ckey"]) + usr.client.holder.show_player_panel(target) + if("view_variables") + var/mob/target = get_mob_by_ckey(params["ckey"]) + usr.client.debug_variables(target) + if("observe") + if(!isobserver(usr) && !check_rights(R_ADMIN)) + return + + var/mob/target = get_mob_by_key(params["ckey"]) + if(!target) + to_chat(usr, "Player not found.") + return + + var/client/C = usr.client + if(!isobserver(usr) && !C.admin_ghost()) + return + var/mob/dead/observer/A = C.mob + A.ManualFollow(target) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 8d56133083..6a0778a518 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1706,8 +1706,8 @@ if(ishuman(L)) var/mob/living/carbon/human/observer = L - observer.equip_to_slot_or_del(new /obj/item/clothing/under/suit/black(observer), SLOT_W_UNIFORM) - observer.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(observer), SLOT_SHOES) + observer.equip_to_slot_or_del(new /obj/item/clothing/under/suit/black(observer), ITEM_SLOT_ICLOTHING) + observer.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(observer), ITEM_SLOT_FEET) L.Unconscious(100) sleep(5) L.forceMove(pick(GLOB.tdomeobserve)) diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index b0c553c0d9..602b5ce7a7 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -202,7 +202,7 @@ id.forceMove(W) W.update_icon() else - H.equip_to_slot(id,SLOT_WEAR_ID) + H.equip_to_slot(id,ITEM_SLOT_ID) else alert("Invalid mob") diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index e5e5fca448..ec0bcd5bab 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -1579,6 +1579,19 @@ Traitors and the like can also be revived with the previous role mostly intact. log_game("[key_name(usr)] triggered a CentCom recall, with the message of: [message]") SSshuttle.centcom_recall(SSshuttle.emergency.timer, message) +/client/proc/cmd_admin_check_player_exp() //Allows admins to determine who the newer players are. + set category = "Admin" + set name = "Player Playtime" + + if(!check_rights(R_ADMIN)) + return + + if(!CONFIG_GET(flag/use_exp_tracking)) + to_chat(usr, "Tracking is disabled in the server configuration file.") + return + + new /datum/player_playtime(usr) + /obj/effect/temp_visual/fireball icon = 'icons/obj/wizard.dmi' icon_state = "fireball" diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm index 2f71abf15e..ab9b85cc61 100644 --- a/code/modules/antagonists/_common/antag_datum.dm +++ b/code/modules/antagonists/_common/antag_datum.dm @@ -50,6 +50,10 @@ GLOBAL_LIST_EMPTY(antagonists) var/show_name_in_check_antagonists = FALSE /// Should this antagonist be shown as antag to ghosts? Shouldn't be used for stealthy antagonists like traitors var/show_to_ghosts = FALSE +//ambition start + /// Lazy list for antagonists to request the admins objectives. + var/list/requested_objective_changes +//ambition end /* CIT SPECIFIC */ /// Quirks that will be removed upon gaining this antag. Pacifist and mute are default. @@ -59,11 +63,6 @@ GLOBAL_LIST_EMPTY(antagonists) var/delete_on_mind_deletion = TRUE -//ambition start - /// Lazy list for antagonists to request the admins objectives. - var/list/requested_objective_changes -//ambition end - var/list/skill_modifiers /* CIT SPECIFIC end */ @@ -83,7 +82,9 @@ GLOBAL_LIST_EMPTY(antagonists) if(!owner) stack_trace("Destroy()ing antagonist datum when it has no owner.") else +//ambition start owner?.do_remove_antag_datum(src) +//ambition end owner = null return ..() @@ -486,35 +487,6 @@ GLOBAL_LIST_EMPTY(antagonists) return ..() -///Clears change requests from deleted objectives to avoid broken references. -/datum/antagonist/proc/clean_request_from_del_objective(datum/objective/source, force) - var/objective_reference = REF(source) - for(var/uid in requested_objective_changes) - var/list/change_request = requested_objective_changes[uid] - if(change_request["target"] != objective_reference) - continue - LAZYREMOVE(requested_objective_changes, uid) - - -/datum/antagonist/proc/add_objective_change(uid, list/additions) - LAZYADD(requested_objective_changes, uid) - var/datum/objective/request_target = additions["target"] - if(!ispath(request_target)) - request_target = locate(request_target) in objectives - if(istype(request_target)) - RegisterSignal(request_target, COMSIG_PARENT_QDELETING, .proc/clean_request_from_del_objective) - requested_objective_changes[uid] = additions - - -/datum/antagonist/proc/remove_objective_change(uid) - if(!LAZYACCESS(requested_objective_changes, uid)) - return - var/datum/objective/request_target = requested_objective_changes[uid]["target"] - if(!ispath(request_target)) - request_target = locate(request_target) in objectives - if(istype(request_target)) - UnregisterSignal(request_target, COMSIG_PARENT_QDELETING) - LAZYREMOVE(requested_objective_changes, uid) ///ANTAGONIST UI STUFF /datum/antagonist/ui_interact(mob/user, datum/tgui/ui) @@ -559,3 +531,33 @@ GLOBAL_LIST_EMPTY(antagonists) /datum/action/antag_info/IsAvailable() return TRUE + +///Clears change requests from deleted objectives to avoid broken references. +/datum/antagonist/proc/clean_request_from_del_objective(datum/objective/source, force) + var/objective_reference = REF(source) + for(var/uid in requested_objective_changes) + var/list/change_request = requested_objective_changes[uid] + if(change_request["target"] != objective_reference) + continue + LAZYREMOVE(requested_objective_changes, uid) + + +/datum/antagonist/proc/add_objective_change(uid, list/additions) + LAZYADD(requested_objective_changes, uid) + var/datum/objective/request_target = additions["target"] + if(!ispath(request_target)) + request_target = locate(request_target) in objectives + if(istype(request_target)) + RegisterSignal(request_target, COMSIG_PARENT_QDELETING, .proc/clean_request_from_del_objective) + requested_objective_changes[uid] = additions + + +/datum/antagonist/proc/remove_objective_change(uid) + if(!LAZYACCESS(requested_objective_changes, uid)) + return + var/datum/objective/request_target = requested_objective_changes[uid]["target"] + if(!ispath(request_target)) + request_target = locate(request_target) in objectives + if(istype(request_target)) + UnregisterSignal(request_target, COMSIG_PARENT_QDELETING) + LAZYREMOVE(requested_objective_changes, uid) diff --git a/code/modules/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm index 8484732d8d..011d175cfa 100644 --- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm +++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm @@ -62,7 +62,7 @@ A.UpdateButtonIcon() /obj/item/clothing/suit/armor/abductor/vest/item_action_slot_check(slot, mob/user, datum/action/A) - if(slot == SLOT_WEAR_SUIT) //we only give the mob the ability to activate the vest if he's actually wearing it. + if(slot == ITEM_SLOT_OCLOTHING) //we only give the mob the ability to activate the vest if he's actually wearing it. return TRUE /obj/item/clothing/suit/armor/abductor/vest/proc/SetDisguise(datum/icon_snapshot/entry) diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm index 29e64a4913..c5f1cfbb40 100644 --- a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm +++ b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm @@ -84,7 +84,7 @@ return FALSE if(owner.current.reagents.has_reagent(/datum/reagent/consumable/garlic)) return FALSE - if(istype(owner.current.get_item_by_slot(SLOT_NECK), /obj/item/clothing/neck/garlic_necklace)) + if(istype(owner.current.get_item_by_slot(ITEM_SLOT_NECK), /obj/item/clothing/neck/garlic_necklace)) return FALSE owner.current.adjustStaminaLoss(-1.5 + (actual_regen * -7) * mult, 0) // Humans lose stamina damage really quickly. Vamps should heal more. owner.current.adjustCloneLoss(-0.1 * (actual_regen * 2) * mult, 0) diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_powers.dm b/code/modules/antagonists/bloodsucker/bloodsucker_powers.dm index 2fb7a2ccca..0a799021e9 100644 --- a/code/modules/antagonists/bloodsucker/bloodsucker_powers.dm +++ b/code/modules/antagonists/bloodsucker/bloodsucker_powers.dm @@ -94,7 +94,7 @@ if(display_error) to_chat(owner, "You have a stake in your chest! Your powers are useless.") return FALSE - if(istype(owner.get_item_by_slot(SLOT_NECK), /obj/item/clothing/neck/garlic_necklace)) + if(istype(owner.get_item_by_slot(ITEM_SLOT_NECK), /obj/item/clothing/neck/garlic_necklace)) if(display_error) to_chat(owner, "") return FALSE diff --git a/code/modules/antagonists/bloodsucker/powers/brawn.dm b/code/modules/antagonists/bloodsucker/powers/brawn.dm index 5444cccd3f..db3ce92ec1 100644 --- a/code/modules/antagonists/bloodsucker/powers/brawn.dm +++ b/code/modules/antagonists/bloodsucker/powers/brawn.dm @@ -105,7 +105,7 @@ var/mob/living/carbon/user_C = owner //message_admins("DEBUG3: attempt_cast() [name] / [user_C.handcuffed] ") if(user_C.handcuffed) - var/obj/O = user_C.get_item_by_slot(SLOT_HANDCUFFED) + var/obj/O = user_C.get_item_by_slot(ITEM_SLOT_HANDCUFFED) if(istype(O)) user_C.clear_cuffs(O,TRUE) playsound(get_turf(usr), 'sound/effects/grillehit.ogg', 80, 1, -1) @@ -124,7 +124,7 @@ return TRUE */ // Destroy Leg Cuffs if(user_C.legcuffed) - var/obj/O = user_C.get_item_by_slot(SLOT_LEGCUFFED) + var/obj/O = user_C.get_item_by_slot(ITEM_SLOT_LEGCUFFED) if(istype(O)) user_C.clear_cuffs(O,TRUE) playsound(get_turf(usr), 'sound/effects/grillehit.ogg', 80, 1, -1) diff --git a/code/modules/antagonists/changeling/powers/biodegrade.dm b/code/modules/antagonists/changeling/powers/biodegrade.dm index 8b3b1659d1..b440228a4e 100644 --- a/code/modules/antagonists/changeling/powers/biodegrade.dm +++ b/code/modules/antagonists/changeling/powers/biodegrade.dm @@ -17,7 +17,7 @@ return FALSE if(user.handcuffed) - var/obj/O = user.get_item_by_slot(SLOT_HANDCUFFED) + var/obj/O = user.get_item_by_slot(ITEM_SLOT_HANDCUFFED) if(!istype(O)) return FALSE user.visible_message("[user] vomits a glob of acid on [user.p_their()] [O]!", \ @@ -27,7 +27,7 @@ used = TRUE if(user.legcuffed) - var/obj/O = user.get_item_by_slot(SLOT_LEGCUFFED) + var/obj/O = user.get_item_by_slot(ITEM_SLOT_LEGCUFFED) if(!istype(O)) return FALSE user.visible_message("[user] vomits a glob of acid on [user.p_their()] [O]!", \ @@ -37,7 +37,7 @@ used = TRUE if(user.wear_suit && user.wear_suit.breakouttime && !used) - var/obj/item/clothing/suit/S = user.get_item_by_slot(SLOT_WEAR_SUIT) + var/obj/item/clothing/suit/S = user.get_item_by_slot(ITEM_SLOT_OCLOTHING) if(!istype(S)) return FALSE user.visible_message("[user] vomits a glob of acid across the front of [user.p_their()] [S]!", \ diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm index f4b74c5567..ec95ee4ef6 100644 --- a/code/modules/antagonists/changeling/powers/mutations.dm +++ b/code/modules/antagonists/changeling/powers/mutations.dm @@ -130,8 +130,8 @@ user.dropItemToGround(user.head) user.dropItemToGround(user.wear_suit) - user.equip_to_slot_if_possible(new suit_type(user), SLOT_WEAR_SUIT, 1, 1, 1) - user.equip_to_slot_if_possible(new helmet_type(user), SLOT_HEAD, 1, 1, 1) + user.equip_to_slot_if_possible(new suit_type(user), ITEM_SLOT_OCLOTHING, 1, 1, 1) + user.equip_to_slot_if_possible(new helmet_type(user), ITEM_SLOT_HEAD, 1, 1, 1) var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling) changeling.chem_recharge_slowdown += recharge_slowdown @@ -637,7 +637,7 @@ user.dropItemToGround(user.gloves) - user.equip_to_slot_if_possible(new glove_type(user), SLOT_GLOVES, 1, 1, 1) + user.equip_to_slot_if_possible(new glove_type(user), ITEM_SLOT_GLOVES, 1, 1, 1) playsound(user, 'sound/effects/blobattack.ogg', 30, 1) var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling) changeling.chem_recharge_slowdown += recharge_slowdown @@ -733,7 +733,7 @@ /obj/item/clothing/gloves/fingerless/pugilist/cling/equipped(mob/user, slot) . = ..() - if(current_equipped_slot == SLOT_GLOVES) + if(current_equipped_slot == ITEM_SLOT_GLOVES) to_chat(user, "With [src] formed around our arms, we are ready to fight.") /obj/item/clothing/gloves/fingerless/pugilist/cling/dropped(mob/user) diff --git a/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm b/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm index ad507adcec..b5f2a358e6 100644 --- a/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm +++ b/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm @@ -38,7 +38,7 @@ /obj/item/clothing/head/helmet/clockwork/equipped(mob/living/user, slot) ..() - if(slot == SLOT_HEAD && !is_servant_of_ratvar(user)) + if(slot == ITEM_SLOT_HEAD && !is_servant_of_ratvar(user)) if(!iscultist(user)) to_chat(user, "\"Now now, this is for my servants, not you.\"") user.visible_message("As [user] puts [src] on, it flickers off [user.p_their()] head!", "The helmet flickers off your head, leaving only nausea!") @@ -105,7 +105,7 @@ /obj/item/clothing/suit/armor/clockwork/equipped(mob/living/user, slot) ..() - if(slot == SLOT_WEAR_SUIT && !is_servant_of_ratvar(user)) + if(slot == ITEM_SLOT_OCLOTHING && !is_servant_of_ratvar(user)) if(!iscultist(user)) to_chat(user, "\"Now now, this is for my servants, not you.\"") user.visible_message("As [user] puts [src] on, it flickers off [user.p_their()] body!", "The cuirass flickers off your body, leaving only nausea!") @@ -165,7 +165,7 @@ /obj/item/clothing/gloves/clockwork/equipped(mob/living/user, slot) ..() - if(slot == SLOT_GLOVES && !is_servant_of_ratvar(user)) + if(slot == ITEM_SLOT_GLOVES && !is_servant_of_ratvar(user)) if(!iscultist(user)) to_chat(user, "\"Now now, this is for my servants, not you.\"") user.visible_message("As [user] puts [src] on, it flickers off [user.p_their()] arms!", "The gauntlets flicker off your arms, leaving only nausea!") @@ -215,7 +215,7 @@ /obj/item/clothing/shoes/clockwork/equipped(mob/living/user, slot) ..() - if(slot == SLOT_SHOES && !is_servant_of_ratvar(user)) + if(slot == ITEM_SLOT_FEET && !is_servant_of_ratvar(user)) if(!iscultist(user)) to_chat(user, "\"Now now, this is for my servants, not you.\"") user.visible_message("As [user] puts [src] on, it flickers off [user.p_their()] feet!", "The treads flicker off your feet, leaving only nausea!") diff --git a/code/modules/antagonists/clockcult/clock_items/construct_chassis.dm b/code/modules/antagonists/clockcult/clock_items/construct_chassis.dm index daee9f5c2c..9342cd8ea5 100644 --- a/code/modules/antagonists/clockcult/clock_items/construct_chassis.dm +++ b/code/modules/antagonists/clockcult/clock_items/construct_chassis.dm @@ -117,4 +117,4 @@ S.no_cost = TRUE if(seasonal_hat && seasonal_hat != "none") var/obj/item/hat = new seasonal_hat(construct) - construct.equip_to_slot_or_del(hat, SLOT_HEAD) + construct.equip_to_slot_or_del(hat, ITEM_SLOT_HEAD) diff --git a/code/modules/antagonists/clockcult/clock_items/judicial_visor.dm b/code/modules/antagonists/clockcult/clock_items/judicial_visor.dm index e748da8765..138f04feb3 100644 --- a/code/modules/antagonists/clockcult/clock_items/judicial_visor.dm +++ b/code/modules/antagonists/clockcult/clock_items/judicial_visor.dm @@ -28,13 +28,13 @@ return ..() /obj/item/clothing/glasses/judicial_visor/item_action_slot_check(slot, mob/user, datum/action/A) - if(slot != SLOT_GLASSES) + if(slot != ITEM_SLOT_EYES) return 0 return ..() /obj/item/clothing/glasses/judicial_visor/equipped(mob/living/user, slot) ..() - if(slot != SLOT_GLASSES) + if(slot != ITEM_SLOT_EYES) update_status(FALSE) if(blaster.ranged_ability_user) blaster.remove_ranged_ability() @@ -55,13 +55,13 @@ addtimer(CALLBACK(src, .proc/check_on_mob, user), 1) //dropped is called before the item is out of the slot, so we need to check slightly later /obj/item/clothing/glasses/judicial_visor/proc/check_on_mob(mob/user) - if(user && src != user.get_item_by_slot(SLOT_GLASSES)) //if we happen to check and we AREN'T in the slot, we need to remove our shit from whoever we got dropped from + if(user && src != user.get_item_by_slot(ITEM_SLOT_EYES)) //if we happen to check and we AREN'T in the slot, we need to remove our shit from whoever we got dropped from update_status(FALSE) if(blaster.ranged_ability_user) blaster.remove_ranged_ability() /obj/item/clothing/glasses/judicial_visor/attack_self(mob/user) - if(is_servant_of_ratvar(user) && src == user.get_item_by_slot(SLOT_GLASSES)) + if(is_servant_of_ratvar(user) && src == user.get_item_by_slot(ITEM_SLOT_EYES)) blaster.toggle(user) /obj/item/clothing/glasses/judicial_visor/proc/update_status(change_to) @@ -89,7 +89,7 @@ if(!src) return 0 recharging = FALSE - if(user && src == user.get_item_by_slot(SLOT_GLASSES)) + if(user && src == user.get_item_by_slot(ITEM_SLOT_EYES)) to_chat(user, "Your [name] hums. It is ready.") else active = FALSE @@ -115,7 +115,7 @@ /obj/effect/proc_holder/judicial_visor/InterceptClickOn(mob/living/caller, params, atom/target) if(..()) return - if(ranged_ability_user.incapacitated() || !visor || visor != ranged_ability_user.get_item_by_slot(SLOT_GLASSES)) + if(ranged_ability_user.incapacitated() || !visor || visor != ranged_ability_user.get_item_by_slot(ITEM_SLOT_EYES)) remove_ranged_ability() return diff --git a/code/modules/antagonists/clockcult/clock_items/wraith_spectacles.dm b/code/modules/antagonists/clockcult/clock_items/wraith_spectacles.dm index 5e25b8de82..837844d0cb 100644 --- a/code/modules/antagonists/clockcult/clock_items/wraith_spectacles.dm +++ b/code/modules/antagonists/clockcult/clock_items/wraith_spectacles.dm @@ -75,7 +75,7 @@ /obj/item/clothing/glasses/wraith_spectacles/equipped(mob/living/user, slot) ..() - if(slot != SLOT_GLASSES || up) + if(slot != ITEM_SLOT_EYES || up) return if(HAS_TRAIT(user, TRAIT_BLIND)) to_chat(user, "\"You're blind, idiot. Stop embarrassing yourself.\"" ) diff --git a/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm b/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm index 7ba4ce0936..be4785f4a7 100644 --- a/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm +++ b/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm @@ -200,18 +200,18 @@ /datum/action/innate/clockwork_armaments/Activate() var/do_message = 0 - var/obj/item/I = owner.get_item_by_slot(SLOT_WEAR_SUIT) + var/obj/item/I = owner.get_item_by_slot(ITEM_SLOT_OCLOTHING) if(remove_item_if_better(I, owner)) - do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/suit/armor/clockwork(null), SLOT_WEAR_SUIT) - I = owner.get_item_by_slot(SLOT_HEAD) + do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/suit/armor/clockwork(null), ITEM_SLOT_OCLOTHING) + I = owner.get_item_by_slot(ITEM_SLOT_HEAD) if(remove_item_if_better(I, owner)) - do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/head/helmet/clockwork(null), SLOT_HEAD) - I = owner.get_item_by_slot(SLOT_GLOVES) + do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/head/helmet/clockwork(null), ITEM_SLOT_HEAD) + I = owner.get_item_by_slot(ITEM_SLOT_GLOVES) if(remove_item_if_better(I, owner)) - do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/gloves/clockwork(null), SLOT_GLOVES) - I = owner.get_item_by_slot(SLOT_SHOES) + do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/gloves/clockwork(null), ITEM_SLOT_GLOVES) + I = owner.get_item_by_slot(ITEM_SLOT_FEET) if(remove_item_if_better(I, owner)) - do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/shoes/clockwork(null), SLOT_SHOES) + do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/shoes/clockwork(null), ITEM_SLOT_FEET) if(do_message) owner.visible_message("Strange armor appears on [owner]!", "A bright shimmer runs down your body, equipping you with Ratvarian armor.") playsound(owner, 'sound/magic/clockwork/fellowship_armory.ogg', 15 * do_message, TRUE) //get sound loudness based on how much we equipped @@ -309,16 +309,16 @@ continue T = get_turf(M) var/heal_ticks = 0 //one heal tick for each piece of ratvarian armor worn - var/obj/item/I = H.get_item_by_slot(SLOT_WEAR_SUIT) + var/obj/item/I = H.get_item_by_slot(ITEM_SLOT_OCLOTHING) if(is_type_in_typecache(I, ratvarian_armor_typecache)) heal_ticks++ - I = H.get_item_by_slot(SLOT_HEAD) + I = H.get_item_by_slot(ITEM_SLOT_HEAD) if(is_type_in_typecache(I, ratvarian_armor_typecache)) heal_ticks++ - I = H.get_item_by_slot(SLOT_GLOVES) + I = H.get_item_by_slot(ITEM_SLOT_GLOVES) if(is_type_in_typecache(I, ratvarian_armor_typecache)) heal_ticks++ - I = H.get_item_by_slot(SLOT_SHOES) + I = H.get_item_by_slot(ITEM_SLOT_FEET) if(is_type_in_typecache(I, ratvarian_armor_typecache)) heal_ticks++ if(heal_ticks) diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm index 8a51e4d17e..3373de9ff0 100644 --- a/code/modules/antagonists/cult/blood_magic.dm +++ b/code/modules/antagonists/cult/blood_magic.dm @@ -678,12 +678,12 @@ uses-- var/mob/living/carbon/C = target C.visible_message("Otherworldly armor suddenly appears on [C]!") - C.equip_to_slot_or_del(new /obj/item/clothing/under/color/black,SLOT_W_UNIFORM) - C.equip_to_slot_or_del(new /obj/item/clothing/head/culthood/alt(user), SLOT_HEAD) - C.equip_to_slot_or_del(new /obj/item/clothing/suit/cultrobes/alt(user), SLOT_WEAR_SUIT) - C.equip_to_slot_or_del(new /obj/item/clothing/shoes/cult/alt(user), SLOT_SHOES) - C.equip_to_slot_or_del(new /obj/item/storage/backpack/cultpack(user), SLOT_BACK) - C.equip_to_slot_or_del(new /obj/item/clothing/gloves/fingerless/pugilist/hungryghost(user), SLOT_GLOVES) + C.equip_to_slot_or_del(new /obj/item/clothing/under/color/black,ITEM_SLOT_ICLOTHING) + C.equip_to_slot_or_del(new /obj/item/clothing/head/culthood/alt(user), ITEM_SLOT_HEAD) + C.equip_to_slot_or_del(new /obj/item/clothing/suit/cultrobes/alt(user), ITEM_SLOT_OCLOTHING) + C.equip_to_slot_or_del(new /obj/item/clothing/shoes/cult/alt(user), ITEM_SLOT_FEET) + C.equip_to_slot_or_del(new /obj/item/storage/backpack/cultpack(user), ITEM_SLOT_BACK) + C.equip_to_slot_or_del(new /obj/item/clothing/gloves/fingerless/pugilist/hungryghost(user), ITEM_SLOT_GLOVES) if(C == user) qdel(src) //Clears the hands C.put_in_hands(new /obj/item/melee/cultblade(user)) diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm index 4fffbe1f2e..2850cb85cc 100644 --- a/code/modules/antagonists/cult/cult.dm +++ b/code/modules/antagonists/cult/cult.dm @@ -98,9 +98,9 @@ /datum/antagonist/cult/proc/cult_give_item(obj/item/item_path, mob/living/carbon/human/mob) var/list/slots = list( - "backpack" = SLOT_IN_BACKPACK, - "left pocket" = SLOT_L_STORE, - "right pocket" = SLOT_R_STORE + "backpack" = ITEM_SLOT_BACKPACK, + "left pocket" = ITEM_SLOT_LPOCKET, + "right pocket" = ITEM_SLOT_RPOCKET ) var/T = new item_path(mob) diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index 7981a10701..3b73a998e7 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -1090,7 +1090,7 @@ structure_check() searches for nearby cultist structures required for the invoca /proc/hudFix(mob/living/carbon/human/target) if(!target || !target.client) return - var/obj/O = target.get_item_by_slot(SLOT_GLASSES) + var/obj/O = target.get_item_by_slot(ITEM_SLOT_EYES) if(istype(O, /obj/item/clothing/glasses/hud/security)) var/datum/atom_hud/AH = GLOB.huds[DATA_HUD_SECURITY_ADVANCED] AH.add_hud_to(target) diff --git a/code/modules/antagonists/devil/devil.dm b/code/modules/antagonists/devil/devil.dm index 65ce89d33f..9f69f10887 100644 --- a/code/modules/antagonists/devil/devil.dm +++ b/code/modules/antagonists/devil/devil.dm @@ -460,10 +460,10 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master", return -1 currentMob.change_mob_type( /mob/living/carbon/human, targetturf, null, 1) var/mob/living/carbon/human/H = owner.current - H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/civilian/lawyer/black(H), SLOT_W_UNIFORM) - H.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(H), SLOT_SHOES) - H.equip_to_slot_or_del(new /obj/item/storage/briefcase(H), SLOT_HANDS) - H.equip_to_slot_or_del(new /obj/item/pen(H), SLOT_L_STORE) + H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/civilian/lawyer/black(H), ITEM_SLOT_ICLOTHING) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(H), ITEM_SLOT_FEET) + H.equip_to_slot_or_del(new /obj/item/storage/briefcase(H), ITEM_SLOT_HANDS) + H.equip_to_slot_or_del(new /obj/item/pen(H), ITEM_SLOT_LPOCKET) if(SOULVALUE >= BLOOD_THRESHOLD) H.set_species(/datum/species/lizard, 1) H.underwear = "Nude" diff --git a/code/modules/antagonists/eldritch_cult/eldritch_antag.dm b/code/modules/antagonists/eldritch_cult/eldritch_antag.dm index fc0a5cdc6a..d7334d6c9c 100644 --- a/code/modules/antagonists/eldritch_cult/eldritch_antag.dm +++ b/code/modules/antagonists/eldritch_cult/eldritch_antag.dm @@ -72,9 +72,9 @@ /datum/antagonist/heretic/proc/ecult_give_item(obj/item/item_path, mob/living/carbon/human/H) var/list/slots = list( - "backpack" = SLOT_IN_BACKPACK, - "left pocket" = SLOT_L_STORE, - "right pocket" = SLOT_R_STORE + "backpack" = ITEM_SLOT_BACKPACK, + "left pocket" = ITEM_SLOT_LPOCKET, + "right pocket" = ITEM_SLOT_RPOCKET ) var/T = new item_path(H) diff --git a/code/modules/antagonists/eldritch_cult/eldritch_items.dm b/code/modules/antagonists/eldritch_cult/eldritch_items.dm index 28228aedd6..c0f3e2be7c 100644 --- a/code/modules/antagonists/eldritch_cult/eldritch_items.dm +++ b/code/modules/antagonists/eldritch_cult/eldritch_items.dm @@ -145,7 +145,7 @@ /obj/item/clothing/neck/eldritch_amulet/equipped(mob/user, slot) . = ..() - if(ishuman(user) && user.mind && slot == SLOT_NECK && (IS_HERETIC(user) || IS_HERETIC_MONSTER(user))) + if(ishuman(user) && user.mind && slot == ITEM_SLOT_NECK && (IS_HERETIC(user) || IS_HERETIC_MONSTER(user))) ADD_TRAIT(user, trait, CLOTHING_TRAIT) user.update_sight() @@ -239,7 +239,7 @@ /obj/item/clothing/mask/void_mask/equipped(mob/user, slot) . = ..() - if(ishuman(user) && user.mind && slot == SLOT_WEAR_MASK) + if(ishuman(user) && user.mind && slot == ITEM_SLOT_MASK) local_user = user START_PROCESSING(SSobj, src) diff --git a/code/modules/antagonists/ert/ert.dm b/code/modules/antagonists/ert/ert.dm index 43a7e561c0..a8e57ee08b 100644 --- a/code/modules/antagonists/ert/ert.dm +++ b/code/modules/antagonists/ert/ert.dm @@ -234,8 +234,8 @@ var/obj/O = new C(owner.current) var/list/slots = list ( "backpack" = ITEM_SLOT_BACKPACK, - "left pocket" = SLOT_L_STORE, - "right pocket" = SLOT_R_STORE + "left pocket" = ITEM_SLOT_LPOCKET, + "right pocket" = ITEM_SLOT_RPOCKET ) var/mob/living/carbon/human/H = owner.current var/equipped = H.equip_in_one_of_slots(O, slots) diff --git a/code/modules/antagonists/highlander/highlander.dm b/code/modules/antagonists/highlander/highlander.dm index 70d7fdd3fe..513a8d63b6 100644 --- a/code/modules/antagonists/highlander/highlander.dm +++ b/code/modules/antagonists/highlander/highlander.dm @@ -45,11 +45,11 @@ qdel(I) for(var/obj/item/I in H.held_items) qdel(I) - H.equip_to_slot_or_del(new /obj/item/clothing/under/costume/kilt/highlander(H), SLOT_W_UNIFORM) - H.equip_to_slot_or_del(new /obj/item/radio/headset/heads/captain(H), SLOT_EARS_LEFT) //skyrat edit - H.equip_to_slot_or_del(new /obj/item/clothing/head/beret/highlander(H), SLOT_HEAD) - H.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(H), SLOT_SHOES) - H.equip_to_slot_or_del(new /obj/item/pinpointer/nuke(H), SLOT_L_STORE) + H.equip_to_slot_or_del(new /obj/item/clothing/under/costume/kilt/highlander(H), ITEM_SLOT_ICLOTHING) + H.equip_to_slot_or_del(new /obj/item/radio/headset/heads/captain(H), ITEM_SLOT_EARS_LEFT) // Sandstorm edit + H.equip_to_slot_or_del(new /obj/item/clothing/head/beret/highlander(H), ITEM_SLOT_HEAD) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(H), ITEM_SLOT_FEET) + H.equip_to_slot_or_del(new /obj/item/pinpointer/nuke(H), ITEM_SLOT_LPOCKET) for(var/obj/item/pinpointer/nuke/P in H) P.attack_self(H) var/obj/item/card/id/W = new(H) @@ -60,7 +60,7 @@ W.registered_name = H.real_name ADD_TRAIT(W, TRAIT_NODROP, HIGHLANDER) W.update_label(H.real_name) - H.equip_to_slot_or_del(W, SLOT_WEAR_ID) + H.equip_to_slot_or_del(W, ITEM_SLOT_ID) sword = new(H) if(!GLOB.highlander) diff --git a/code/modules/antagonists/overthrow/overthrow.dm b/code/modules/antagonists/overthrow/overthrow.dm index f086f5db97..fffd8f9237 100644 --- a/code/modules/antagonists/overthrow/overthrow.dm +++ b/code/modules/antagonists/overthrow/overthrow.dm @@ -127,9 +127,9 @@ // Give AI hacking board var/obj/item/aiModule/core/full/overthrow/O = new(H) var/list/slots = list ( - "backpack" = SLOT_IN_BACKPACK, - "left pocket" = SLOT_L_STORE, - "right pocket" = SLOT_R_STORE + "backpack" = ITEM_SLOT_BACKPACK, + "left pocket" = ITEM_SLOT_LPOCKET, + "right pocket" = ITEM_SLOT_RPOCKET ) var/where = H.equip_in_one_of_slots(O, slots, critical = TRUE) if (!where) diff --git a/code/modules/antagonists/revolution/revolution.dm b/code/modules/antagonists/revolution/revolution.dm index 925527f35e..e4625b4ef2 100644 --- a/code/modules/antagonists/revolution/revolution.dm +++ b/code/modules/antagonists/revolution/revolution.dm @@ -272,9 +272,9 @@ if(give_flash) var/obj/item/assembly/flash/T = new(H) var/list/slots = list ( - "backpack" = SLOT_IN_BACKPACK, - "left pocket" = SLOT_L_STORE, - "right pocket" = SLOT_R_STORE + "backpack" = ITEM_SLOT_BACKPACK, + "left pocket" = ITEM_SLOT_LPOCKET, + "right pocket" = ITEM_SLOT_RPOCKET ) var/where = H.equip_in_one_of_slots(T, slots, critical = TRUE) if (!where) diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm index 78403d4e27..f184961004 100644 --- a/code/modules/antagonists/traitor/datum_traitor.dm +++ b/code/modules/antagonists/traitor/datum_traitor.dm @@ -240,9 +240,9 @@ folder = new/obj/item/folder/syndicate/blue(mob.loc) var/list/slots = list ( - "backpack" = SLOT_IN_BACKPACK, - "left pocket" = SLOT_L_STORE, - "right pocket" = SLOT_R_STORE + "backpack" = ITEM_SLOT_BACKPACK, + "left pocket" = ITEM_SLOT_LPOCKET, + "right pocket" = ITEM_SLOT_RPOCKET ) var/where = "At your feet" diff --git a/code/modules/antagonists/wizard/equipment/artefact.dm b/code/modules/antagonists/wizard/equipment/artefact.dm index 44f267358a..6f7ba374f7 100644 --- a/code/modules/antagonists/wizard/equipment/artefact.dm +++ b/code/modules/antagonists/wizard/equipment/artefact.dm @@ -229,12 +229,12 @@ H.dropItemToGround(I) var/hat = pick(/obj/item/clothing/head/helmet/roman, /obj/item/clothing/head/helmet/roman/legionnaire) - H.equip_to_slot_or_del(new hat(H), SLOT_HEAD) - H.equip_to_slot_or_del(new /obj/item/clothing/under/costume/roman(H), SLOT_W_UNIFORM) - H.equip_to_slot_or_del(new /obj/item/clothing/shoes/roman(H), SLOT_SHOES) + H.equip_to_slot_or_del(new hat(H), ITEM_SLOT_HEAD) + H.equip_to_slot_or_del(new /obj/item/clothing/under/costume/roman(H), ITEM_SLOT_ICLOTHING) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/roman(H), ITEM_SLOT_FEET) H.put_in_hands(new /obj/item/shield/riot/roman(H), TRUE) H.put_in_hands(new /obj/item/claymore(H), TRUE) - H.equip_to_slot_or_del(new /obj/item/spear(H), SLOT_BACK) + H.equip_to_slot_or_del(new /obj/item/spear(H), ITEM_SLOT_BACK) /obj/item/voodoo diff --git a/code/modules/antagonists/wizard/wizard.dm b/code/modules/antagonists/wizard/wizard.dm index ea4d89e1d2..1821ecabfa 100644 --- a/code/modules/antagonists/wizard/wizard.dm +++ b/code/modules/antagonists/wizard/wizard.dm @@ -211,17 +211,17 @@ if(!istype(master_mob) || !istype(H)) return if(master_mob.ears) - H.equip_to_slot_or_del(new master_mob.ears.type, SLOT_EARS_LEFT) //skyrat edit + H.equip_to_slot_or_del(new master_mob.ears.type, ITEM_SLOT_EARS_LEFT) // Sandstorm edit if(master_mob.w_uniform) - H.equip_to_slot_or_del(new master_mob.w_uniform.type, SLOT_W_UNIFORM) + H.equip_to_slot_or_del(new master_mob.w_uniform.type, ITEM_SLOT_ICLOTHING) if(master_mob.shoes) - H.equip_to_slot_or_del(new master_mob.shoes.type, SLOT_SHOES) + H.equip_to_slot_or_del(new master_mob.shoes.type, ITEM_SLOT_FEET) if(master_mob.wear_suit) - H.equip_to_slot_or_del(new master_mob.wear_suit.type, SLOT_WEAR_SUIT) + H.equip_to_slot_or_del(new master_mob.wear_suit.type, ITEM_SLOT_OCLOTHING) if(master_mob.head) - H.equip_to_slot_or_del(new master_mob.head.type, SLOT_HEAD) + H.equip_to_slot_or_del(new master_mob.head.type, ITEM_SLOT_HEAD) if(master_mob.back) - H.equip_to_slot_or_del(new master_mob.back.type, SLOT_BACK) + H.equip_to_slot_or_del(new master_mob.back.type, ITEM_SLOT_BACK) //Operation: Fuck off and scare people owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/area_teleport/teleport(null)) diff --git a/code/modules/arousal/arousal.dm b/code/modules/arousal/arousal.dm index a9acc206a2..98181340b3 100644 --- a/code/modules/arousal/arousal.dm +++ b/code/modules/arousal/arousal.dm @@ -122,7 +122,7 @@ to_chat(L,"[src] climaxes [(Lgen) ? "in your [Lgen.name]" : "with you"], [p_their()] [G.name] spilling nothing!") //SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm) //Sandstorm edit do_climax(fluid_source, spillage ? loc : L, G, spillage) - L.receive_climax(src, Lgen, G, spillage) + //L.receive_climax(src, Lgen, G, spillage) /mob/living/carbon/human/proc/mob_fill_container(obj/item/organ/genital/G, obj/item/reagent_containers/container, mb_time = 30) //For beaker-filling, beware the bartender var/datum/reagents/fluid_source = G.climaxable(src) @@ -260,7 +260,7 @@ // if(partner) //Did they pass the clothing checks? //skyrat edit - mob_climax_partner(G, partner, spillage = forced_spillage, mb_time = 0, Lgen = forced_receiving_genital) //Instant climax due to forced + mob_climax_partner(G, partner, spillage = forced_spillage, mb_time = 0, Lgen = forced_receiving_genital, forced = forced_climax) //Instant climax due to forced // continue //You've climaxed once with this organ, continue on //not exposed OR if no partner was found while exposed, climax alone diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm index d32905e007..805f5b6e2e 100644 --- a/code/modules/awaymissions/capture_the_flag.dm +++ b/code/modules/awaymissions/capture_the_flag.dm @@ -534,7 +534,7 @@ no_drops += H.get_item_by_slot(ITEM_SLOT_GLOVES) no_drops += H.get_item_by_slot(ITEM_SLOT_FEET) no_drops += H.get_item_by_slot(ITEM_SLOT_ICLOTHING) - no_drops += H.get_item_by_slot(ITEM_SLOT_EARS) + no_drops += H.get_item_by_slot(ITEM_SLOT_EARS_LEFT) for(var/i in no_drops) var/obj/item/I = i ADD_TRAIT(I, TRAIT_NODROP, CAPTURE_THE_FLAG_TRAIT) diff --git a/code/modules/awaymissions/mission_code/jungleresort.dm b/code/modules/awaymissions/mission_code/jungleresort.dm index 6c82b2c0c4..f520cfdbee 100644 --- a/code/modules/awaymissions/mission_code/jungleresort.dm +++ b/code/modules/awaymissions/mission_code/jungleresort.dm @@ -27,7 +27,7 @@ /obj/item/clothing/head/rice_hat/cursed/equipped(mob/M, slot) . = ..() - if (slot == SLOT_HEAD) + if (slot == ITEM_SLOT_HEAD) RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech) else UnregisterSignal(M, COMSIG_MOB_SAY) diff --git a/code/modules/awaymissions/mission_code/snowdin.dm b/code/modules/awaymissions/mission_code/snowdin.dm index 5d30ccd907..ba3f07bd7d 100644 --- a/code/modules/awaymissions/mission_code/snowdin.dm +++ b/code/modules/awaymissions/mission_code/snowdin.dm @@ -589,7 +589,7 @@ back = /obj/item/storage/backpack mask = /obj/item/clothing/mask/breath r_pocket = /obj/item/tank/internals/emergency_oxygen/engi - internals_slot = SLOT_R_STORE + internals_slot = ITEM_SLOT_RPOCKET /obj/effect/mob_spawn/human/syndicatesoldier/coldres/alive/female mob_gender = FEMALE diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index aa2d2f2bb1..68c5365e75 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -3654,10 +3654,10 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/occupied_slots = L[initial(G.category)] ? L[initial(G.category)] + 1 : 1 LAZYSET(L, initial(G.category), occupied_slots) switch(slot) - if(SLOT_IN_BACKPACK) + if(ITEM_SLOT_BACKPACK) if(L[LOADOUT_CATEGORY_BACKPACK] < BACKPACK_SLOT_AMT) return TRUE - if(SLOT_HANDS) + if(ITEM_SLOT_HANDS) if(L[LOADOUT_CATEGORY_HANDS] < HANDS_SLOT_AMT) return TRUE else diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm index 008772663d..697afd4885 100644 --- a/code/modules/clothing/chameleon.dm +++ b/code/modules/clothing/chameleon.dm @@ -63,8 +63,8 @@ // it's TRAIT_NODROP D.dropItemToGround(target, TRUE) qdel(old_headgear) - // where is `SLOT_HEAD` defined? WHO KNOWS - D.equip_to_slot(new_headgear, SLOT_HEAD) + // where is `ITEM_SLOT_HEAD` defined? WHO KNOWS + D.equip_to_slot(new_headgear, ITEM_SLOT_HEAD) return 1 diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 1a7c220550..572cce28b2 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -219,7 +219,7 @@ ..() if (!istype(user)) return - if(slot_flags & slotdefine2slotbit(slot)) //Was equipped to a valid slot for this item? + if(slot_flags & slot) //Was equipped to a valid slot for this item? if(iscarbon(user) && LAZYLEN(zones_disabled)) RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/bristle) if(LAZYLEN(user_vars_to_edit)) @@ -450,7 +450,7 @@ BLIND // can't see anything return FALSE // Skip species restriction checks on non-equipment slots - if(slot in list(SLOT_IN_BACKPACK, SLOT_L_STORE, SLOT_R_STORE)) + if(slot in list(ITEM_SLOT_BACKPACK, ITEM_SLOT_LPOCKET, ITEM_SLOT_RPOCKET)) return TRUE if(species_restricted && ishuman(M)) diff --git a/code/modules/clothing/ears/_ears.dm b/code/modules/clothing/ears/_ears.dm index cc36d2b02e..2e9cd678c6 100644 --- a/code/modules/clothing/ears/_ears.dm +++ b/code/modules/clothing/ears/_ears.dm @@ -20,7 +20,7 @@ /obj/item/clothing/ears/earmuffs/ComponentInitialize() . = ..() AddElement(/datum/element/earhealing) - AddComponent(/datum/component/wearertargeting/earprotection, list(SLOT_EARS_LEFT, SLOT_EARS_RIGHT)) //skyrat edit + AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_EARS_LEFT, ITEM_SLOT_EARS_RIGHT)) /obj/item/clothing/ears/headphones name = "headphones" diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm index 737bbbb522..9726ab6b59 100644 --- a/code/modules/clothing/glasses/_glasses.dm +++ b/code/modules/clothing/glasses/_glasses.dm @@ -115,7 +115,7 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 100) /obj/item/clothing/glasses/science/item_action_slot_check(slot, mob/user, datum/action/A) - if(slot == SLOT_GLASSES) + if(slot == ITEM_SLOT_EYES) return 1 /obj/item/clothing/glasses/night @@ -158,7 +158,7 @@ /obj/item/clothing/glasses/eyepatch/syndicate/equipped(mob/living/carbon/human/user, slot) . = ..() - if(slot == SLOT_GLASSES) + if(slot == ITEM_SLOT_EYES) user.visible_message("Circuitry from the eyepatch links itself to your brain as you put on the eyepatch.") if(HAS_TRAIT(user, TRAIT_POOR_AIM)) user.visible_message("You hear a fizzing noise from the circuit. That can't be good.") @@ -351,7 +351,7 @@ /obj/item/clothing/glasses/sunglasses/blindfold/equipped(mob/living/carbon/human/user, slot) . = ..() - if(slot == SLOT_GLASSES) + if(slot == ITEM_SLOT_EYES) user.become_blind("blindfold_[REF(src)]") /obj/item/clothing/glasses/sunglasses/blindfold/dropped(mob/living/carbon/human/user) @@ -372,7 +372,7 @@ var/colored_before = FALSE /obj/item/clothing/glasses/sunglasses/blindfold/white/equipped(mob/living/carbon/human/user, slot) - if(ishuman(user) && slot == SLOT_GLASSES) + if(ishuman(user) && slot == ITEM_SLOT_EYES) update_icon(user) user.update_inv_glasses() //Color might have been changed by update_icon. ..() diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index cad91315a3..c848dbdfa8 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -18,7 +18,7 @@ /obj/item/clothing/glasses/hud/equipped(mob/living/carbon/human/user, slot) ..() - if(hud_type && slot == SLOT_GLASSES) + if(hud_type && slot == ITEM_SLOT_EYES) var/datum/atom_hud/H = GLOB.huds[hud_type] H.add_hud_to(user) diff --git a/code/modules/clothing/glasses/phantomthief.dm b/code/modules/clothing/glasses/phantomthief.dm index ba3ea2830e..db77f17218 100644 --- a/code/modules/clothing/glasses/phantomthief.dm +++ b/code/modules/clothing/glasses/phantomthief.dm @@ -17,7 +17,7 @@ /obj/item/clothing/glasses/phantomthief/syndicate/examine(mob/user) . = ..() - if(user.get_item_by_slot(SLOT_GLASSES) == src) + if(user.get_item_by_slot(ITEM_SLOT_EYES) == src) if(world.time >= nextadrenalinepop) . += "The built-in adrenaline injector is ready for use." else @@ -33,7 +33,7 @@ . = ..() if(!istype(user)) return - if(slot != SLOT_GLASSES) + if(slot != ITEM_SLOT_EYES) return RegisterSignal(user, COMSIG_LIVING_COMBAT_ENABLED, .proc/injectadrenaline) diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm index 836b845faa..1e3f2c08cf 100644 --- a/code/modules/clothing/gloves/color.dm +++ b/code/modules/clothing/gloves/color.dm @@ -31,7 +31,7 @@ C.visible_message("[U] sprays glittery rubber on the hands of [C]!") else user.visible_message("The rubber fails to stick to [C]'s hands!", - "The rubber fails to stick to [C]'s [(SLOT_GLOVES in C.check_obscured_slots()) ? "unexposed" : ""] hands!") + "The rubber fails to stick to [C]'s [(ITEM_SLOT_GLOVES in C.check_obscured_slots()) ? "unexposed" : ""] hands!") qdel(src) @@ -226,7 +226,7 @@ /obj/item/clothing/gloves/color/latex/equipped(mob/user, slot) ..() - if(slot == SLOT_GLOVES) + if(slot == ITEM_SLOT_GLOVES) ADD_TRAIT(user, carrytrait, GLOVE_TRAIT) /obj/item/clothing/gloves/color/latex/dropped(mob/user) diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index 225ef867b0..4eee7cef02 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -9,6 +9,8 @@ equip_delay_other = 20 cold_protection = HANDS min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + heat_protection = HANDS + max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT strip_mod = 0.9 custom_price = PRICE_ALMOST_CHEAP @@ -36,7 +38,7 @@ /obj/item/clothing/gloves/fingerless/pugilist/equipped(mob/user, slot) . = ..() - if(slot == SLOT_GLOVES) + if(slot == ITEM_SLOT_GLOVES) wornonce = TRUE if((HAS_TRAIT(user, TRAIT_NOPUGILIST))) to_chat(user, "What purpose is there to don the weapons of pugilism if you're already well-practiced in martial arts? Mixing arts is blasphemous!") @@ -195,7 +197,7 @@ /obj/item/clothing/gloves/fingerless/ablative/equipped(mob/user, slot) . = ..() - if(current_equipped_slot == SLOT_GLOVES) + if(current_equipped_slot == ITEM_SLOT_GLOVES) RegisterSignal(user, COMSIG_LIVING_ACTIVE_PARRY_START, .proc/get_component_parry_data) wornonce = TRUE @@ -262,7 +264,7 @@ /obj/item/clothing/gloves/fingerless/pugilist/mauler/equipped(mob/user, slot) . = ..() - if(slot == SLOT_GLOVES) + if(slot == ITEM_SLOT_GLOVES) wornonce = TRUE if((HAS_TRAIT(user, TRAIT_NOPUGILIST))) return @@ -352,6 +354,8 @@ transfer_prints = TRUE cold_protection = HANDS min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + heat_protection = HANDS + max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT strip_mod = 0.9 /obj/item/clothing/gloves/evening/black diff --git a/code/modules/clothing/gloves/mittens.dm b/code/modules/clothing/gloves/mittens.dm index 42250aae2f..b1b17c9afe 100644 --- a/code/modules/clothing/gloves/mittens.dm +++ b/code/modules/clothing/gloves/mittens.dm @@ -6,6 +6,8 @@ //item_color = "white" cold_protection = HANDS min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + heat_protection = HANDS + max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT resistance_flags = NONE /obj/item/clothing/gloves/mittens/random diff --git a/code/modules/clothing/gloves/tacklers.dm b/code/modules/clothing/gloves/tacklers.dm index 39d39ba58f..754a72ff0c 100644 --- a/code/modules/clothing/gloves/tacklers.dm +++ b/code/modules/clothing/gloves/tacklers.dm @@ -6,6 +6,8 @@ transfer_prints = TRUE cold_protection = HANDS min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + heat_protection = HANDS + max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT resistance_flags = NONE //custom_premium_price = PRICE_EXPENSIVE /// For storing our tackler datum so we can remove it after @@ -28,7 +30,7 @@ if(!ishuman(user)) return switch(slot) // I didn't like how it looked - if(SLOT_GLOVES) + if(ITEM_SLOT_GLOVES) var/mob/living/carbon/human/H = user tackler = H.AddComponent(/datum/component/tackler, stamina_cost=tackle_stam_cost, base_knockdown = base_knockdown, range = tackle_range, speed = tackle_speed, skill_mod = skill_mod, min_distance = min_distance) else @@ -103,7 +105,7 @@ /obj/item/clothing/gloves/tackler/combat/insulated/infiltrator/equipped(mob/user, slot) . = ..() - if(slot == SLOT_GLOVES) + if(slot == ITEM_SLOT_GLOVES) ADD_TRAIT(user, carrytrait, GLOVE_TRAIT) /obj/item/clothing/gloves/tackler/combat/insulated/infiltrator/dropped(mob/user) diff --git a/code/modules/clothing/head/_head.dm b/code/modules/clothing/head/_head.dm index 6ad3a19694..ea58d0bc88 100644 --- a/code/modules/clothing/head/_head.dm +++ b/code/modules/clothing/head/_head.dm @@ -34,7 +34,7 @@ var/obj/item/WH = H.head H.visible_message("[src] bounces off [H]'s [WH.name]!", "[src] bounces off your [WH.name], falling to the floor.") return - if(H.equip_to_slot_if_possible(src, SLOT_HEAD, FALSE, TRUE)) + if(H.equip_to_slot_if_possible(src, ITEM_SLOT_HEAD, FALSE, TRUE)) H.visible_message("[src] lands neatly on [H]'s head!", "[src] lands perfectly onto your head!") return if(iscyborg(hit_atom)) diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 6b698f9619..126b1af40f 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -27,7 +27,7 @@ /obj/item/clothing/head/helmet/ComponentInitialize() . = ..() - AddComponent(/datum/component/wearertargeting/earprotection, list(SLOT_HEAD)) + AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_HEAD)) /obj/item/clothing/head/helmet/examine(mob/user) . = ..() diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index 5af694ea1b..592614af61 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -220,7 +220,7 @@ /obj/item/clothing/head/warden/drill/equipped(mob/M, slot) . = ..() - if (slot == SLOT_HEAD) + if (slot == ITEM_SLOT_HEAD) RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech) else UnregisterSignal(M, COMSIG_MOB_SAY) diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 76e8ca53df..eb48048c00 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -264,7 +264,8 @@ item_state = "that" cold_protection = HEAD min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT - + heat_protection = HEAD + max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT dog_fashion = /datum/dog_fashion/head/santa beepsky_fashion = /datum/beepsky_fashion/santa @@ -354,7 +355,7 @@ /obj/item/clothing/head/frenchberet/equipped(mob/M, slot) . = ..() - if (slot == SLOT_HEAD) + if (slot == ITEM_SLOT_HEAD) RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech) else UnregisterSignal(M, COMSIG_MOB_SAY) diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 247062581d..21cec4f7d2 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -93,6 +93,8 @@ var/earflaps = TRUE cold_protection = HEAD min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT + heat_protection = HEAD + max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT ///Sprite visible when the ushanka flaps are folded up. var/upsprite = "ushankaup" ///Sprite visible when the ushanka flaps are folded down. @@ -147,7 +149,7 @@ beepsky_fashion = /datum/beepsky_fashion/cat /obj/item/clothing/head/kitty/equipped(mob/living/carbon/human/user, slot) - if(ishuman(user) && slot == SLOT_HEAD) + if(ishuman(user) && slot == ITEM_SLOT_HEAD) update_icon(user) user.update_inv_head() //Color might have been changed by update_icon. ..() @@ -186,7 +188,7 @@ /obj/item/clothing/head/cardborg/equipped(mob/living/user, slot) ..() - if(ishuman(user) && slot == SLOT_HEAD) + if(ishuman(user) && slot == ITEM_SLOT_HEAD) var/mob/living/carbon/human/H = user if(istype(H.wear_suit, /obj/item/clothing/suit/cardborg)) var/obj/item/clothing/suit/cardborg/CB = H.wear_suit @@ -265,7 +267,7 @@ /obj/item/clothing/head/foilhat/equipped(mob/living/carbon/human/user, slot) . = ..() - if(slot != SLOT_HEAD || warped) + if(slot != ITEM_SLOT_HEAD || warped) return if(paranoia) QDEL_NULL(paranoia) @@ -295,7 +297,7 @@ if(!isliving(loc) || !paranoia) return var/mob/living/target = loc - if(target.get_item_by_slot(SLOT_HEAD) != src) + if(target.get_item_by_slot(ITEM_SLOT_HEAD) != src) return QDEL_NULL(paranoia) if(!target.IsUnconscious()) diff --git a/code/modules/clothing/masks/_masks.dm b/code/modules/clothing/masks/_masks.dm index ef7c6a1926..cca13ce1d8 100644 --- a/code/modules/clothing/masks/_masks.dm +++ b/code/modules/clothing/masks/_masks.dm @@ -18,7 +18,7 @@ /obj/item/clothing/mask/equipped(mob/M, slot) . = ..() - if (slot == SLOT_WEAR_MASK && modifies_speech) + if (slot == ITEM_SLOT_MASK && modifies_speech) RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech) else UnregisterSignal(M, COMSIG_MOB_SAY) diff --git a/code/modules/clothing/masks/cluwne.dm b/code/modules/clothing/masks/cluwne.dm index 602d4ff29c..f8ff2e55d1 100644 --- a/code/modules/clothing/masks/cluwne.dm +++ b/code/modules/clothing/masks/cluwne.dm @@ -55,7 +55,7 @@ . = ..() if(!ishuman(user)) return - if(slot == SLOT_WEAR_MASK) + if(slot == ITEM_SLOT_MASK) var/mob/living/carbon/human/H = user H.dna.add_mutation(CLUWNEMUT) return @@ -88,7 +88,7 @@ if(!ishuman(user)) return var/mob/living/carbon/human/H = user - if(slot == SLOT_WEAR_MASK) + if(slot == ITEM_SLOT_MASK) if(is_cursed && can_cluwne) //logic predetermined log_admin("[key_name(H)] was made into a cluwne by [src]") message_admins("[key_name(H)] got cluwned by [src]") diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index e6a0425920..45da6a9a75 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -290,7 +290,7 @@ . = ..() if(iscarbon(user)) var/mob/living/carbon/C = user - if((C.get_item_by_slot(SLOT_HEAD == src)) || (C.get_item_by_slot(SLOT_WEAR_MASK) == src)) + if((C.get_item_by_slot(ITEM_SLOT_HEAD == src)) || (C.get_item_by_slot(ITEM_SLOT_MASK) == src)) to_chat(user, "You can't tie [src] while wearing it!") return if(slot_flags & ITEM_SLOT_HEAD) diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm index 28a3343ae6..1f40df0f57 100644 --- a/code/modules/clothing/neck/_neck.dm +++ b/code/modules/clothing/neck/_neck.dm @@ -226,7 +226,7 @@ return /obj/item/clothing/neck/petcollar/locked/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags) - if(loc == user && user.get_item_by_slot(SLOT_NECK) && lock != FALSE) + if(loc == user && user.get_item_by_slot(ITEM_SLOT_NECK) && lock != FALSE) to_chat(user, "The collar is locked! You'll need unlock the collar before you can take it off!") return ..() @@ -323,7 +323,7 @@ . = ..() if(iscarbon(user)) var/mob/living/carbon/C = user - if(C.get_item_by_slot(SLOT_NECK) == src) + if(C.get_item_by_slot(ITEM_SLOT_NECK) == src) to_chat(user, "You can't untie [src] while wearing it!") return if(user.is_holding(src)) diff --git a/code/modules/clothing/outfits/vr.dm b/code/modules/clothing/outfits/vr.dm index ac852a35a8..99fc5d1359 100644 --- a/code/modules/clothing/outfits/vr.dm +++ b/code/modules/clothing/outfits/vr.dm @@ -36,7 +36,7 @@ . = ..() var/key = H.key ? H.key : preference_source ? preference_source.key : null var/obj/item/uplink/U = new /obj/item/uplink/nuclear_restricted(H, key, 80) - H.equip_to_slot_or_del(U, SLOT_IN_BACKPACK) + H.equip_to_slot_or_del(U, ITEM_SLOT_BACKPACK) var/obj/item/implant/weapons_auth/W = new W.implant(H) var/obj/item/implant/explosive/E = new diff --git a/code/modules/clothing/outfits/vv_outfit.dm b/code/modules/clothing/outfits/vv_outfit.dm index 0daf2b39aa..23cd6e8d2d 100644 --- a/code/modules/clothing/outfits/vv_outfit.dm +++ b/code/modules/clothing/outfits/vv_outfit.dm @@ -10,47 +10,47 @@ /datum/outfit/varedit/proc/set_equipement_by_slot(slot,item_path) switch(slot) - if(SLOT_W_UNIFORM) + if(ITEM_SLOT_ICLOTHING) uniform = item_path - if(SLOT_BACK) + if(ITEM_SLOT_BACK) back = item_path - if(SLOT_WEAR_SUIT) + if(ITEM_SLOT_OCLOTHING) suit = item_path - if(SLOT_BELT) + if(ITEM_SLOT_BELT) belt = item_path - if(SLOT_GLOVES) + if(ITEM_SLOT_GLOVES) gloves = item_path - if(SLOT_SHOES) + if(ITEM_SLOT_FEET) shoes = item_path - if(SLOT_HEAD) + if(ITEM_SLOT_HEAD) head = item_path - if(SLOT_WEAR_MASK) + if(ITEM_SLOT_MASK) mask = item_path - if(SLOT_NECK) + if(ITEM_SLOT_NECK) neck = item_path - //skyrat edit - if(SLOT_EARS_LEFT) + // Sandstorm edit + if(ITEM_SLOT_EARS_LEFT) ears = item_path - if(SLOT_EARS_RIGHT) + if(ITEM_SLOT_EARS_RIGHT) ears_extra = item_path - if(SLOT_WRISTS) + if(ITEM_SLOT_WRISTS) wrists = item_path - if(SLOT_W_SHIRT) + if(ITEM_SLOT_SHIRT) shirt = item_path - if(SLOT_W_UNDERWEAR) + if(ITEM_SLOT_UNDERWEAR) underwear = item_path - if(SLOT_W_SOCKS) + if(ITEM_SLOT_SOCKS) socks = item_path // - if(SLOT_GLASSES) + if(ITEM_SLOT_EYES) glasses = item_path - if(SLOT_WEAR_ID) + if(ITEM_SLOT_ID) id = item_path - if(SLOT_S_STORE) + if(ITEM_SLOT_SUITSTORE) suit_store = item_path - if(SLOT_L_STORE) + if(ITEM_SLOT_LPOCKET) l_pocket = item_path - if(SLOT_R_STORE) + if(ITEM_SLOT_RPOCKET) r_pocket = item_path @@ -80,7 +80,7 @@ //Copy equipment var/list/result = list() - var/list/slots_to_check = list(SLOT_W_UNIFORM,SLOT_W_UNDERWEAR,SLOT_W_SHIRT,SLOT_W_SOCKS,SLOT_BACK,SLOT_WEAR_SUIT,SLOT_BELT,SLOT_GLOVES,SLOT_WRISTS,SLOT_SHOES,SLOT_HEAD,SLOT_WEAR_MASK,SLOT_NECK,SLOT_EARS_LEFT,SLOT_EARS_RIGHT,SLOT_GLASSES,SLOT_WEAR_ID,SLOT_S_STORE,SLOT_L_STORE,SLOT_R_STORE) //skyrat edit + var/list/slots_to_check = list(ITEM_SLOT_ICLOTHING,ITEM_SLOT_UNDERWEAR,ITEM_SLOT_SHIRT,ITEM_SLOT_SOCKS,ITEM_SLOT_BACK,ITEM_SLOT_OCLOTHING,ITEM_SLOT_BELT,ITEM_SLOT_GLOVES,ITEM_SLOT_WRISTS,ITEM_SLOT_FEET,ITEM_SLOT_HEAD,ITEM_SLOT_MASK,ITEM_SLOT_NECK,ITEM_SLOT_EARS_LEFT,ITEM_SLOT_EARS_RIGHT,ITEM_SLOT_EYES,ITEM_SLOT_ID,ITEM_SLOT_SUITSTORE,ITEM_SLOT_LPOCKET,ITEM_SLOT_RPOCKET) // Sandstorm edit for(var/s in slots_to_check) var/obj/item/I = get_item_by_slot(s) var/vedits = collect_vv(I) @@ -91,7 +91,7 @@ //Copy access O.stored_access = list() - var/obj/item/id_slot = get_item_by_slot(SLOT_WEAR_ID) + var/obj/item/id_slot = get_item_by_slot(ITEM_SLOT_ID) if(id_slot) O.stored_access |= id_slot.GetAccess() //Copy hands @@ -110,7 +110,7 @@ result["RHAND"] = vedits O.vv_values = result //Copy backpack contents if exist. - var/obj/item/backpack = get_item_by_slot(SLOT_BACK) + var/obj/item/backpack = get_item_by_slot(ITEM_SLOT_BACK) if(istype(backpack) && SEND_SIGNAL(backpack, COMSIG_CONTAINS_STORAGE)) var/list/bp_stuff = list() var/list/typecounts = list() @@ -148,7 +148,7 @@ for(var/vname in edits) I.vv_edit_var(vname,edits[vname]) //Apply access - var/obj/item/id_slot = H.get_item_by_slot(SLOT_WEAR_ID) + var/obj/item/id_slot = H.get_item_by_slot(ITEM_SLOT_ID) if(id_slot) var/obj/item/card/id/card = id_slot.GetID() if(istype(card)) diff --git a/code/modules/clothing/shoes/_shoes.dm b/code/modules/clothing/shoes/_shoes.dm index c98824fa7f..d8ac875df5 100644 --- a/code/modules/clothing/shoes/_shoes.dm +++ b/code/modules/clothing/shoes/_shoes.dm @@ -87,7 +87,7 @@ /obj/item/clothing/shoes/equipped(mob/user, slot) . = ..() - if(offset && slot_flags & slotdefine2slotbit(slot)) + if(offset && (slot_flags & slot)) user.pixel_y += offset worn_y_dimension -= (offset * 2) user.update_inv_shoes() diff --git a/code/modules/clothing/shoes/cluwne.dm b/code/modules/clothing/shoes/cluwne.dm index fbe1ba624b..aec57a2148 100644 --- a/code/modules/clothing/shoes/cluwne.dm +++ b/code/modules/clothing/shoes/cluwne.dm @@ -23,7 +23,7 @@ . = ..() if(!ishuman(user)) return - if(slot == SLOT_SHOES) + if(slot == ITEM_SLOT_FEET) var/mob/living/carbon/human/H = user H.dna.add_mutation(CLUWNEMUT) return diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm index 773b1ac361..cd01d6f099 100644 --- a/code/modules/clothing/shoes/magboots.dm +++ b/code/modules/clothing/shoes/magboots.dm @@ -96,7 +96,7 @@ /obj/item/clothing/shoes/magboots/crushing/equipped(mob/user,slot) . = ..() - if (slot == SLOT_SHOES && magpulse) + if (slot == ITEM_SLOT_FEET && magpulse) RegisterSignal(user, COMSIG_MOVABLE_MOVED,.proc/crush) /obj/item/clothing/shoes/magboots/crushing/dropped(mob/user) diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 669ffa1780..7a67308760 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -28,7 +28,7 @@ /obj/item/clothing/shoes/combat/sneakboots/equipped(mob/user, slot) . = ..() - if(slot == SLOT_SHOES) + if(slot == ITEM_SLOT_FEET) ADD_TRAIT(user, TRAIT_SILENT_STEP, SHOES_TRAIT) /obj/item/clothing/shoes/combat/sneakboots/dropped(mob/user) @@ -112,7 +112,7 @@ /obj/item/clothing/shoes/clown_shoes/equipped(mob/user, slot) . = ..() - if(slot == SLOT_SHOES) + if(slot == ITEM_SLOT_FEET) if(enabled_waddle) waddle = user.AddComponent(/datum/component/waddling) if(user.mind && HAS_TRAIT(user.mind, TRAIT_CLOWN_MENTALITY)) @@ -340,7 +340,7 @@ /obj/item/clothing/shoes/wheelys/ui_action_click(mob/user, action) if(!isliving(user)) return - if(!istype(user.get_item_by_slot(SLOT_SHOES), /obj/item/clothing/shoes/wheelys)) + if(!istype(user.get_item_by_slot(ITEM_SLOT_FEET), /obj/item/clothing/shoes/wheelys)) to_chat(user, "You must be wearing the wheely-heels to use them!") return if(!(W.is_occupant(user))) @@ -460,7 +460,7 @@ /obj/item/clothing/shoes/wallwalkers/equipped(mob/user,slot) . = ..() - if(slot == SLOT_SHOES) + if(slot == ITEM_SLOT_FEET) RegisterSignal(user, COMSIG_MOB_CLIENT_MOVE,.proc/intercept_user_move) /obj/item/clothing/shoes/wallwalkers/dropped(mob/user) diff --git a/code/modules/clothing/shoes/taeclowndo.dm b/code/modules/clothing/shoes/taeclowndo.dm index c0f8a77543..82f467d8b1 100644 --- a/code/modules/clothing/shoes/taeclowndo.dm +++ b/code/modules/clothing/shoes/taeclowndo.dm @@ -15,7 +15,7 @@ var/mob/living/carbon/human/H = user if(!(HAS_TRAIT(H, TRAIT_CLUMSY)) && !(H.mind && HAS_TRAIT(H.mind, TRAIT_CLOWN_MENTALITY))) return - if(slot == SLOT_SHOES) + if(slot == ITEM_SLOT_FEET) spells = new for(var/spell in spelltypes) var/obj/effect/proc_holder/spell/S = new spell @@ -29,7 +29,7 @@ if(!ishuman(user)) return var/mob/living/carbon/human/H = user - if(H.get_item_by_slot(SLOT_SHOES) == src) + if(H.get_item_by_slot(ITEM_SLOT_FEET) == src) for(var/spell in spells) var/obj/effect/proc_holder/spell/S = spell H.mind.spell_list.Remove(S) diff --git a/code/modules/clothing/spacesuits/chronosuit.dm b/code/modules/clothing/spacesuits/chronosuit.dm index 6642731d8b..e30b0953c6 100644 --- a/code/modules/clothing/spacesuits/chronosuit.dm +++ b/code/modules/clothing/spacesuits/chronosuit.dm @@ -107,7 +107,7 @@ teleport_now.UpdateButtonIcon() - var/list/nonsafe_slots = list(SLOT_BELT, SLOT_BACK) + var/list/nonsafe_slots = list(ITEM_SLOT_BELT, ITEM_SLOT_BACK) var/list/exposed = list() for(var/slot in nonsafe_slots) var/obj/item/slot_item = user.get_item_by_slot(slot) diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 18138bf4b6..d8a6426295 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -50,12 +50,12 @@ soundloop.stop(user) /obj/item/clothing/head/helmet/space/hardsuit/item_action_slot_check(slot, mob/user, datum/action/A) - if(slot == SLOT_HEAD) + if(slot == ITEM_SLOT_HEAD) return 1 /obj/item/clothing/head/helmet/space/hardsuit/equipped(mob/user, slot) ..() - if(slot != SLOT_HEAD) + if(slot != ITEM_SLOT_HEAD) if(suit) suit.RemoveHelmet() soundloop.stop(user) @@ -118,7 +118,7 @@ if(jetpack) to_chat(user, "[src] already has a jetpack installed.") return - if(src == user.get_item_by_slot(SLOT_WEAR_SUIT)) //Make sure the player is not wearing the suit before applying the upgrade. + if(src == user.get_item_by_slot(ITEM_SLOT_OCLOTHING)) //Make sure the player is not wearing the suit before applying the upgrade. to_chat(user, "You cannot install the upgrade to [src] while wearing it.") return @@ -130,7 +130,7 @@ if(!jetpack) to_chat(user, "[src] has no jetpack installed.") return - if(src == user.get_item_by_slot(SLOT_WEAR_SUIT)) + if(src == user.get_item_by_slot(ITEM_SLOT_OCLOTHING)) to_chat(user, "You cannot remove the jetpack from [src] while wearing it.") return @@ -145,7 +145,7 @@ /obj/item/clothing/suit/space/hardsuit/equipped(mob/user, slot) ..() if(jetpack) - if(slot == SLOT_WEAR_SUIT) + if(slot == ITEM_SLOT_OCLOTHING) for(var/X in jetpack.actions) var/datum/action/A = X A.Grant(user) @@ -158,7 +158,7 @@ A.Remove(user) /obj/item/clothing/suit/space/hardsuit/item_action_slot_check(slot, mob/user, datum/action/A) - if(slot == SLOT_WEAR_SUIT) //we only give the mob the ability to toggle the helmet if he's wearing the hardsuit. + if(slot == ITEM_SLOT_OCLOTHING) //we only give the mob the ability to toggle the helmet if he's wearing the hardsuit. return 1 //Engineering @@ -488,7 +488,7 @@ /obj/item/clothing/head/helmet/space/hardsuit/medical/equipped(mob/living/carbon/human/user, slot) ..() - if (slot == SLOT_HEAD) + if (slot == ITEM_SLOT_HEAD) var/datum/atom_hud/DHUD = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED] DHUD.add_hud_to(user) @@ -528,7 +528,7 @@ /obj/item/clothing/head/helmet/space/hardsuit/rd/equipped(mob/living/carbon/human/user, slot) ..() - if (slot == SLOT_HEAD) + if (slot == ITEM_SLOT_HEAD) var/datum/atom_hud/DHUD = GLOB.huds[DATA_HUD_DIAGNOSTIC_BASIC] DHUD.add_hud_to(user) @@ -702,7 +702,7 @@ /obj/item/clothing/head/helmet/space/hardsuit/ancient/mason/equipped(mob/living/carbon/human/user, slot) ..() - if (slot == SLOT_HEAD) + if (slot == ITEM_SLOT_HEAD) var/datum/atom_hud/DHUD = GLOB.huds[DATA_HUD_DIAGNOSTIC_BASIC] DHUD.add_hud_to(user) ADD_TRAIT(user, TRAIT_TESLA_SHOCKIMMUNE, "mason_hardsuit") @@ -726,7 +726,7 @@ /obj/item/clothing/suit/space/hardsuit/ancient/equipped(mob/user, slot) . = ..() - if(slot != SLOT_WEAR_SUIT) + if(slot != ITEM_SLOT_OCLOTHING) if(listeningTo) UnregisterSignal(listeningTo, COMSIG_MOVABLE_MOVED) return diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 513ad94365..57d2ae5c69 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -206,7 +206,7 @@ /obj/item/clothing/suit/cardborg/equipped(mob/living/user, slot) ..() - if(slot == SLOT_WEAR_SUIT) + if(slot == ITEM_SLOT_OCLOTHING) disguise(user) /obj/item/clothing/suit/cardborg/dropped(mob/living/user) @@ -279,7 +279,9 @@ item_state = "labcoat" body_parts_covered = CHEST|GROIN|ARMS|LEGS|FEET cold_protection = CHEST|GROIN|ARMS + heat_protection = CHEST|GROIN|ARMS min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT //Space carp like space, so you should too + max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT allowed = list(/obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/gun/ballistic/automatic/speargun, /obj/item/staff/bostaff) hoodtype = /obj/item/clothing/head/hooded/carp_hood @@ -289,7 +291,9 @@ icon_state = "carp_casual" body_parts_covered = HEAD cold_protection = HEAD + heat_protection = HEAD min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT flags_inv = HIDEHAIR|HIDEEARS /obj/item/clothing/suit/hooded/ian_costume //It's Ian, rub his bell- oh god what happened to his inside parts? @@ -362,7 +366,10 @@ item_state = "ran_suit" body_parts_covered = CHEST|GROIN|LEGS flags_inv = HIDEJUMPSUIT|HIDETAUR - heat_protection = CHEST|GROIN|LEGS //fluffy tails! + cold_protection = CHEST|GROIN|LEGS //fluffy tails! + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT //Bleh, same as winter coat + heat_protection = CHEST|GROIN|LEGS + max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON /obj/item/clothing/head/ran @@ -419,7 +426,9 @@ allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/radio) body_parts_covered = CHEST|ARMS cold_protection = CHEST|GROIN|ARMS + heat_protection = CHEST|GROIN|ARMS min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON /obj/item/clothing/suit/jacket/flannel @@ -520,6 +529,7 @@ icon_state = "leathercoat" body_parts_covered = CHEST|GROIN|ARMS|LEGS cold_protection = CHEST|GROIN|ARMS|LEGS + heat_protection = CHEST|GROIN|ARMS|LEGS mutantrace_variation = STYLE_DIGITIGRADE /obj/item/clothing/suit/jacket/puffer @@ -537,6 +547,7 @@ item_state = "armor" body_parts_covered = CHEST|GROIN cold_protection = CHEST|GROIN + heat_protection = CHEST|GROIN armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 30, "rad" = 0, "fire" = 0, "acid" = 0) /obj/item/clothing/suit/jacket/miljacket @@ -655,7 +666,9 @@ item_state = "coatwinter" body_parts_covered = CHEST|GROIN|ARMS cold_protection = CHEST|GROIN|ARMS + heat_protection = CHEST|GROIN|ARMS min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0) allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter) mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON @@ -666,7 +679,9 @@ icon_state = "winterhood" body_parts_covered = HEAD cold_protection = HEAD + heat_protection = HEAD min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT flags_inv = HIDEHAIR|HIDEEARS rad_flags = RAD_NO_CONTAMINATE @@ -1012,7 +1027,7 @@ /obj/item/clothing/suit/hooded/wintercoat/ratvar/equipped(mob/living/user,slot) ..() - if (slot != SLOT_WEAR_SUIT || !real) + if (slot != ITEM_SLOT_OCLOTHING || !real) return if (is_servant_of_ratvar(user)) return @@ -1034,7 +1049,7 @@ /obj/item/clothing/suit/hooded/wintercoat/narsie/equipped(mob/living/user,slot) ..() - if (slot != SLOT_WEAR_SUIT || !real) + if (slot != ITEM_SLOT_OCLOTHING || !real) return if (iscultist(user)) return diff --git a/code/modules/clothing/suits/reactive_armour.dm b/code/modules/clothing/suits/reactive_armour.dm index 98fb836c38..608aca2aad 100644 --- a/code/modules/clothing/suits/reactive_armour.dm +++ b/code/modules/clothing/suits/reactive_armour.dm @@ -51,7 +51,7 @@ icon_state = "reactiveoff" item_state = "reactiveoff" add_fingerprint(user) - if(user.get_item_by_slot(SLOT_WEAR_SUIT) == src) + if(user.get_item_by_slot(ITEM_SLOT_OCLOTHING) == src) user.update_inv_wear_suit() /obj/item/clothing/suit/armor/reactive/emp_act(severity) @@ -177,7 +177,7 @@ /obj/item/clothing/suit/armor/reactive/tesla/equipped(mob/user, slot) ..() - if(slot_flags & slotdefine2slotbit(slot)) //Was equipped to a valid slot for this item? + if(slot_flags & slot) //Was equipped to a valid slot for this item? ADD_TRAIT(user, TRAIT_TESLA_SHOCKIMMUNE, "reactive_tesla_armor") /obj/item/clothing/suit/armor/reactive/tesla/block_action(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) diff --git a/code/modules/clothing/suits/toggles.dm b/code/modules/clothing/suits/toggles.dm index 78708f54bb..5ee247e135 100644 --- a/code/modules/clothing/suits/toggles.dm +++ b/code/modules/clothing/suits/toggles.dm @@ -31,11 +31,11 @@ ToggleHood() /obj/item/clothing/suit/hooded/item_action_slot_check(slot, mob/user, datum/action/A) - if(slot == SLOT_WEAR_SUIT || slot == SLOT_NECK) + if(slot == ITEM_SLOT_OCLOTHING || slot == ITEM_SLOT_NECK) return 1 /obj/item/clothing/suit/hooded/equipped(mob/user, slot) - if(slot != SLOT_WEAR_SUIT && slot != SLOT_NECK) + if(slot != ITEM_SLOT_OCLOTHING && slot != ITEM_SLOT_NECK) RemoveHood() ..() @@ -80,7 +80,7 @@ if(H.head) to_chat(H, "You're already wearing something on your head!") return - else if(H.equip_to_slot_if_possible(hood,SLOT_HEAD,0,0,1)) + else if(H.equip_to_slot_if_possible(hood,ITEM_SLOT_HEAD,0,0,1)) suittoggled = TRUE update_icon() H.update_inv_wear_suit() @@ -102,7 +102,7 @@ /obj/item/clothing/head/hooded/equipped(mob/user, slot) ..() - if(slot != SLOT_HEAD) + if(slot != ITEM_SLOT_HEAD) if(suit) suit.RemoveHood() else @@ -177,7 +177,7 @@ /obj/item/clothing/suit/space/hardsuit/equipped(mob/user, slot) if(!helmettype) return - if(slot != SLOT_WEAR_SUIT) + if(slot != ITEM_SLOT_OCLOTHING) RemoveHelmet() ..() @@ -222,7 +222,7 @@ if(message) to_chat(H, "You're already wearing something on your head!") return - else if(H.equip_to_slot_if_possible(helmet,SLOT_HEAD,0,0,1)) + else if(H.equip_to_slot_if_possible(helmet,ITEM_SLOT_HEAD,0,0,1)) if(message) to_chat(H, "You engage the helmet on the hardsuit.") suittoggled = TRUE diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm index 977e916f87..5b131749b8 100644 --- a/code/modules/clothing/suits/wiz_robe.dm +++ b/code/modules/clothing/suits/wiz_robe.dm @@ -167,7 +167,7 @@ actions_types = list(/datum/action/item_action/stickmen) /obj/item/clothing/suit/wizrobe/paper/item_action_slot_check(slot, mob/user, datum/action/A) - if(A.type == /datum/action/item_action/stickmen && slot != SLOT_WEAR_SUIT) + if(A.type == /datum/action/item_action/stickmen && slot != ITEM_SLOT_OCLOTHING) return FALSE return ..() diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm index 7cd12fddb7..681f474403 100644 --- a/code/modules/clothing/under/_under.dm +++ b/code/modules/clothing/under/_under.dm @@ -117,24 +117,24 @@ if(!alt_covers_chest) body_parts_covered |= CHEST - //SKYRAT EDIT + // Sandstorm edit for(var/obj/item/clothing/accessory/attached_accessory in attached_accessories) - if(attached_accessory && slot != SLOT_HANDS && ishuman(user)) + if(attached_accessory && slot != ITEM_SLOT_HANDS && ishuman(user)) var/mob/living/carbon/human/H = user attached_accessory.on_uniform_equip(src, user) if(attached_accessory.above_suit) H.update_inv_wear_suit() - //SKYRAT EDIT END + // /obj/item/clothing/under/dropped(mob/user) - //SKYRAT EDIT + // Sandstorm edit for(var/obj/item/clothing/accessory/attached_accessory in attached_accessories) attached_accessory.on_uniform_dropped(src, user) if(ishuman(user)) var/mob/living/carbon/human/H = user if(attached_accessory.above_suit) H.update_inv_wear_suit() - //SKYRAT EDIT END + // ..() /obj/item/clothing/under/proc/attach_accessory(obj/item/I, mob/user, notifyAttach = 1) diff --git a/code/modules/clothing/under/cluwne.dm b/code/modules/clothing/under/cluwne.dm index 5a908c5663..e1af4b5171 100644 --- a/code/modules/clothing/under/cluwne.dm +++ b/code/modules/clothing/under/cluwne.dm @@ -16,7 +16,7 @@ /obj/item/clothing/under/cluwne/equipped(mob/living/carbon/user, slot) if(!ishuman(user)) return - if(slot == SLOT_W_UNIFORM) + if(slot == ITEM_SLOT_ICLOTHING) var/mob/living/carbon/human/H = user H.dna.add_mutation(CLUWNEMUT) return ..() diff --git a/code/modules/clothing/under/color.dm b/code/modules/clothing/under/color.dm index 824f026e8c..06d2771d88 100644 --- a/code/modules/clothing/under/color.dm +++ b/code/modules/clothing/under/color.dm @@ -17,7 +17,7 @@ if(ishuman(loc)) var/mob/living/carbon/human/H = loc - H.equip_to_slot_or_del(new C(H), SLOT_W_UNIFORM) //or else you end up with naked assistants running around everywhere... + H.equip_to_slot_or_del(new C(H), ITEM_SLOT_ICLOTHING) //or else you end up with naked assistants running around everywhere... else new C(loc) return INITIALIZE_HINT_QDEL @@ -30,7 +30,7 @@ var/obj/item/clothing/under/color/jumpskirt/C = pick(subtypesof(/obj/item/clothing/under/color/jumpskirt) - /obj/item/clothing/under/color/jumpskirt/random) if(ishuman(loc)) var/mob/living/carbon/human/H = loc - H.equip_to_slot_or_del(new C(H), SLOT_W_UNIFORM) + H.equip_to_slot_or_del(new C(H), ITEM_SLOT_ICLOTHING) else new C(loc) return INITIALIZE_HINT_QDEL diff --git a/code/modules/events/wizard/curseditems.dm b/code/modules/events/wizard/curseditems.dm index 2f0b9c68f8..061de0ea7c 100644 --- a/code/modules/events/wizard/curseditems.dm +++ b/code/modules/events/wizard/curseditems.dm @@ -18,23 +18,23 @@ switch(item_set) if("wizardmimic") - loadout[SLOT_WEAR_SUIT] = /obj/item/clothing/suit/wizrobe - loadout[SLOT_SHOES] = /obj/item/clothing/shoes/sandal/magic - loadout[SLOT_HEAD] = /obj/item/clothing/head/wizard + loadout[ITEM_SLOT_OCLOTHING] = /obj/item/clothing/suit/wizrobe + loadout[ITEM_SLOT_FEET] = /obj/item/clothing/shoes/sandal/magic + loadout[ITEM_SLOT_HEAD] = /obj/item/clothing/head/wizard ruins_spaceworthiness = 1 if("swords") - loadout[SLOT_HANDS] = /obj/item/katana/cursed + loadout[ITEM_SLOT_HANDS] = /obj/item/katana/cursed if("bigfatdoobie") - loadout[SLOT_WEAR_MASK] = /obj/item/clothing/mask/cigarette/rollie/trippy + loadout[ITEM_SLOT_MASK] = /obj/item/clothing/mask/cigarette/rollie/trippy ruins_spaceworthiness = 1 if("boxing") - loadout[SLOT_WEAR_MASK] = /obj/item/clothing/mask/luchador - loadout[SLOT_GLOVES] = /obj/item/clothing/gloves/boxing + loadout[ITEM_SLOT_MASK] = /obj/item/clothing/mask/luchador + loadout[ITEM_SLOT_GLOVES] = /obj/item/clothing/gloves/boxing ruins_spaceworthiness = 1 if("voicemodulators") - loadout[SLOT_WEAR_MASK] = /obj/item/clothing/mask/chameleon + loadout[ITEM_SLOT_MASK] = /obj/item/clothing/mask/chameleon if("catgirls2015") - loadout[SLOT_HEAD] = /obj/item/clothing/head/kitty + loadout[ITEM_SLOT_HEAD] = /obj/item/clothing/head/kitty ruins_spaceworthiness = 1 ruins_wizard_loadout = 1 diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 612df6cbaa..7354eb70d4 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -740,7 +740,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( if(close_other) //increase the odds for(var/i in 1 to 5) message_pool.Add("You feel a tiny prick!") - var/obj/item/storage/equipped_backpack = other.get_item_by_slot(SLOT_BACK) + var/obj/item/storage/equipped_backpack = other.get_item_by_slot(ITEM_SLOT_BACK) if(istype(equipped_backpack)) for(var/i in 1 to 5) //increase the odds message_pool.Add("[other] puts the [pick(\ diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index f650a935ea..1c151511af 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -35,7 +35,7 @@ //If they have a hat/helmet and the user is targeting their head. if(affecting == BODY_ZONE_HEAD) - var/obj/item/I = target.get_item_by_slot(SLOT_HEAD) + var/obj/item/I = target.get_item_by_slot(ITEM_SLOT_HEAD) if(I) headarmor = I.armor.melee diff --git a/code/modules/holiday/dynamic.dm b/code/modules/holiday/dynamic.dm new file mode 100644 index 0000000000..fb50ea72ca --- /dev/null +++ b/code/modules/holiday/dynamic.dm @@ -0,0 +1,10 @@ +/datum/holiday/dynamic + name = "Dynamic Day" + +/datum/holiday/dynamic/shouldCelebrate(dd, mm, yy, ww, ddd) + var/list/days = CONFIG_GET(keyed_list/dynamic_mode_days) + return ddd in days + +/datum/holiday/dynamic/celebrate() + GLOB.dynamic_forced_threat_level = rand(90, 100) + CONFIG_SET(string/force_gamemode, "dynamic") // prevents the round vote, which prevents extended diff --git a/code/modules/holiday/halloween/jacqueen.dm b/code/modules/holiday/halloween/jacqueen.dm index c20b99d684..33503e11a6 100644 --- a/code/modules/holiday/halloween/jacqueen.dm +++ b/code/modules/holiday/halloween/jacqueen.dm @@ -432,7 +432,7 @@ var/obj/item/W = C.head C.dropItemToGround(W, TRUE) var/jaqc_latern = new /obj/item/clothing/head/hardhat/pumpkinhead/jaqc - C.equip_to_slot(jaqc_latern, SLOT_HEAD, 1, 1) + C.equip_to_slot(jaqc_latern, ITEM_SLOT_HEAD, 1, 1) if(4) visible_message("[src] waves their arms around, \"In your body there's something amiss, you'll find it's a chem made by my sis!\"") jacqrunes("In your body there's something amiss, you'll find it's a chem made by my sis!", C) @@ -449,7 +449,7 @@ var/obj/item/W = H.wear_suit H.dropItemToGround(W, TRUE) var/ghost = new /obj/item/clothing/suit/ghost_sheet/sticky - H.equip_to_slot(ghost, SLOT_WEAR_SUIT, 1, 1) + H.equip_to_slot(ghost, ITEM_SLOT_OCLOTHING, 1, 1) poof() //Blame Fel diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm index fb604bbf56..6fc744a497 100644 --- a/code/modules/jobs/job_types/_job.dm +++ b/code/modules/jobs/job_types/_job.dm @@ -241,7 +241,7 @@ var/satchel = /obj/item/storage/backpack/satchel var/duffelbag = /obj/item/storage/backpack/duffelbag - var/pda_slot = SLOT_BELT + var/pda_slot = ITEM_SLOT_BELT /datum/outfit/job/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) var/preference_backpack = preference_source?.prefs.backbag diff --git a/code/modules/jobs/job_types/atmospheric_technician.dm b/code/modules/jobs/job_types/atmospheric_technician.dm index de66c32138..82eae55bde 100644 --- a/code/modules/jobs/job_types/atmospheric_technician.dm +++ b/code/modules/jobs/job_types/atmospheric_technician.dm @@ -40,7 +40,7 @@ satchel = /obj/item/storage/backpack/satchel/eng duffelbag = /obj/item/storage/backpack/duffelbag/engineering box = /obj/item/storage/box/survival/engineer - pda_slot = SLOT_L_STORE + pda_slot = ITEM_SLOT_LPOCKET backpack_contents = list(/obj/item/modular_computer/tablet/preset/advanced=1) /datum/outfit/job/atmos/rig @@ -49,4 +49,4 @@ mask = /obj/item/clothing/mask/gas suit = /obj/item/clothing/suit/space/hardsuit/engine/atmos suit_store = /obj/item/tank/internals/oxygen - internals_slot = SLOT_S_STORE + internals_slot = ITEM_SLOT_SUITSTORE diff --git a/code/modules/jobs/job_types/chaplain.dm b/code/modules/jobs/job_types/chaplain.dm index a9e891a303..7789e3c614 100644 --- a/code/modules/jobs/job_types/chaplain.dm +++ b/code/modules/jobs/job_types/chaplain.dm @@ -34,7 +34,7 @@ B.icon_state = GLOB.bible_icon_state B.item_state = GLOB.bible_item_state to_chat(H, "There is already an established religion onboard the station. You are an acolyte of [GLOB.deity]. Defer to the Chaplain.") - H.equip_to_slot_or_del(B, SLOT_IN_BACKPACK) + H.equip_to_slot_or_del(B, ITEM_SLOT_BACKPACK) var/nrt = GLOB.holy_weapon_type || /obj/item/nullrod var/obj/item/nullrod/N = new nrt(H) H.put_in_hands(N) @@ -108,7 +108,7 @@ GLOB.bible_name = B.name GLOB.deity = B.deity_name - H.equip_to_slot_or_del(B, SLOT_IN_BACKPACK) + H.equip_to_slot_or_del(B, ITEM_SLOT_BACKPACK) SSblackbox.record_feedback("text", "religion_name", 1, "[new_religion]", 1) SSblackbox.record_feedback("text", "religion_deity", 1, "[new_deity]", 1) diff --git a/code/modules/jobs/job_types/chief_engineer.dm b/code/modules/jobs/job_types/chief_engineer.dm index e39bed57ee..38817f597b 100644 --- a/code/modules/jobs/job_types/chief_engineer.dm +++ b/code/modules/jobs/job_types/chief_engineer.dm @@ -55,7 +55,7 @@ satchel = /obj/item/storage/backpack/satchel/eng duffelbag = /obj/item/storage/backpack/duffelbag/engineering box = /obj/item/storage/box/survival/engineer - pda_slot = SLOT_L_STORE + pda_slot = ITEM_SLOT_LPOCKET chameleon_extras = /obj/item/stamp/ce /datum/outfit/job/ce/rig @@ -68,4 +68,4 @@ glasses = /obj/item/clothing/glasses/meson/engine gloves = /obj/item/clothing/gloves/color/yellow head = null - internals_slot = SLOT_S_STORE + internals_slot = ITEM_SLOT_SUITSTORE diff --git a/code/modules/jobs/job_types/paramedic.dm b/code/modules/jobs/job_types/paramedic.dm index 331bad9bfe..b9fc5809e3 100644 --- a/code/modules/jobs/job_types/paramedic.dm +++ b/code/modules/jobs/job_types/paramedic.dm @@ -41,7 +41,7 @@ r_pocket = /obj/item/pinpointer/crew l_pocket = /obj/item/pda/medical backpack_contents = list(/obj/item/roller=1) - pda_slot = SLOT_L_STORE + pda_slot = ITEM_SLOT_LPOCKET backpack = /obj/item/storage/backpack/medic satchel = /obj/item/storage/backpack/satchel/med diff --git a/code/modules/jobs/job_types/research_director.dm b/code/modules/jobs/job_types/research_director.dm index 7bb50e665c..60ee0a1608 100644 --- a/code/modules/jobs/job_types/research_director.dm +++ b/code/modules/jobs/job_types/research_director.dm @@ -63,4 +63,4 @@ mask = /obj/item/clothing/mask/breath suit = /obj/item/clothing/suit/space/hardsuit/rd suit_store = /obj/item/tank/internals/oxygen - internals_slot = SLOT_S_STORE + internals_slot = ITEM_SLOT_SUITSTORE diff --git a/code/modules/jobs/job_types/roboticist.dm b/code/modules/jobs/job_types/roboticist.dm index b44d536cd2..90dacc0482 100644 --- a/code/modules/jobs/job_types/roboticist.dm +++ b/code/modules/jobs/job_types/roboticist.dm @@ -37,4 +37,4 @@ backpack = /obj/item/storage/backpack/science satchel = /obj/item/storage/backpack/satchel/tox - pda_slot = SLOT_L_STORE + pda_slot = ITEM_SLOT_LPOCKET diff --git a/code/modules/jobs/job_types/security_officer.dm b/code/modules/jobs/job_types/security_officer.dm index 8b0d6d7066..e6d568f7ed 100644 --- a/code/modules/jobs/job_types/security_officer.dm +++ b/code/modules/jobs/job_types/security_officer.dm @@ -84,7 +84,7 @@ GLOBAL_LIST_INIT(available_depts, list(SEC_DEPT_ENGINEERING, SEC_DEPT_MEDICAL, S if(ears) if(H.ears) qdel(H.ears) - H.equip_to_slot_or_del(new ears(H),SLOT_EARS_LEFT) //skyrat edit + H.equip_to_slot_or_del(new ears(H),ITEM_SLOT_EARS_LEFT) // Sandstorm edit var/obj/item/card/id/W = H.wear_id W.access |= dep_access diff --git a/code/modules/jobs/job_types/shaft_miner.dm b/code/modules/jobs/job_types/shaft_miner.dm index 0c04380afe..273f74defa 100644 --- a/code/modules/jobs/job_types/shaft_miner.dm +++ b/code/modules/jobs/job_types/shaft_miner.dm @@ -60,7 +60,7 @@ mask = /obj/item/clothing/mask/gas/explorer glasses = /obj/item/clothing/glasses/meson suit_store = /obj/item/tank/internals/oxygen - internals_slot = SLOT_S_STORE + internals_slot = ITEM_SLOT_SUITSTORE backpack_contents = list( /obj/item/flashlight/seclite=1,\ /obj/item/kitchen/knife/combat/survival=1, diff --git a/code/modules/jobs/job_types/station_engineer.dm b/code/modules/jobs/job_types/station_engineer.dm index 25bd2196a0..83b11b22f6 100644 --- a/code/modules/jobs/job_types/station_engineer.dm +++ b/code/modules/jobs/job_types/station_engineer.dm @@ -43,7 +43,7 @@ satchel = /obj/item/storage/backpack/satchel/eng duffelbag = /obj/item/storage/backpack/duffelbag/engineering box = /obj/item/storage/box/survival/engineer - pda_slot = SLOT_L_STORE + pda_slot = ITEM_SLOT_LPOCKET backpack_contents = list(/obj/item/modular_computer/tablet/preset/advanced=1) /datum/outfit/job/engineer/gloved @@ -56,6 +56,6 @@ suit = /obj/item/clothing/suit/space/hardsuit/engine suit_store = /obj/item/tank/internals/oxygen head = null - internals_slot = SLOT_S_STORE + internals_slot = ITEM_SLOT_SUITSTORE diff --git a/code/modules/mining/equipment/wormhole_jaunter.dm b/code/modules/mining/equipment/wormhole_jaunter.dm index 9c503279d4..9eed296851 100644 --- a/code/modules/mining/equipment/wormhole_jaunter.dm +++ b/code/modules/mining/equipment/wormhole_jaunter.dm @@ -20,7 +20,7 @@ /obj/item/wormhole_jaunter/equipped(mob/user, slot) . = ..() - if(slot == SLOT_BELT) + if(slot == ITEM_SLOT_BELT) RegisterSignal(user, COMSIG_MOVABLE_CHASM_DROP, .proc/chasm_react) /obj/item/wormhole_jaunter/dropped(mob/user) @@ -68,7 +68,7 @@ var/mob/M = loc if(istype(M)) - if(M.get_item_by_slot(SLOT_BELT) == src) + if(M.get_item_by_slot(ITEM_SLOT_BELT) == src) if(prob(severity)) M.visible_message("[src] overloads and activates!") SSblackbox.record_feedback("tally", "jaunter", 1, "EMP") // EMP accidental activation diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 0d46912a5a..0b394e0fc5 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -307,7 +307,7 @@ var/mob/living/carbon/human/active_owner /obj/item/clothing/neck/necklace/memento_mori/item_action_slot_check(slot, mob/user, datum/action/A) - return slot == SLOT_NECK + return slot == ITEM_SLOT_NECK /obj/item/clothing/neck/necklace/memento_mori/dropped(mob/user) ..() diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index 206f061e4d..9461847ecc 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -182,7 +182,7 @@ held_items[hand_index] = I I.layer = ABOVE_HUD_LAYER I.plane = ABOVE_HUD_PLANE - I.equipped(src, SLOT_HANDS) + I.equipped(src, ITEM_SLOT_HANDS) if(I.pulledby) I.pulledby.stop_pulling() update_inv_hands() @@ -374,21 +374,20 @@ var/slot_priority = W.slot_equipment_priority if(!slot_priority) - //skyrat edit + // Sandstorm edit slot_priority = list( \ - SLOT_BACK, SLOT_WEAR_ID,\ - SLOT_W_UNDERWEAR,\ - SLOT_W_SOCKS,\ - SLOT_W_SHIRT,\ - SLOT_W_UNIFORM,\ - SLOT_WEAR_SUIT,\ - SLOT_WEAR_MASK, SLOT_HEAD, SLOT_NECK,\ - SLOT_SHOES, SLOT_WRISTS, SLOT_GLOVES,\ - SLOT_EARS_LEFT, SLOT_EARS_RIGHT,\ - SLOT_GLASSES,\ - SLOT_BELT, SLOT_S_STORE,\ - SLOT_L_STORE, SLOT_R_STORE,\ - SLOT_GENERC_DEXTROUS_STORAGE\ + ITEM_SLOT_BACK, ITEM_SLOT_ID,\ + ITEM_SLOT_UNDERWEAR,\ + ITEM_SLOT_SOCKS,\ + ITEM_SLOT_SHIRT,\ + ITEM_SLOT_ICLOTHING, ITEM_SLOT_OCLOTHING,\ + ITEM_SLOT_MASK, ITEM_SLOT_HEAD, ITEM_SLOT_NECK,\ + ITEM_SLOT_FEET, ITEM_SLOT_WRISTS, ITEM_SLOT_GLOVES,\ + ITEM_SLOT_EARS_LEFT, ITEM_SLOT_EARS_RIGHT,\ + ITEM_SLOT_EYES,\ + ITEM_SLOT_BELT, ITEM_SLOT_SUITSTORE,\ + ITEM_SLOT_LPOCKET, ITEM_SLOT_RPOCKET,\ + ITEM_SLOT_DEX_STORAGE\ ) // @@ -431,7 +430,7 @@ if(M.active_storage && M.active_storage.parent && SEND_SIGNAL(M.active_storage.parent, COMSIG_TRY_STORAGE_INSERT, src,M)) return TRUE - var/list/obj/item/possible = list(M.get_inactive_held_item(), M.get_item_by_slot(SLOT_BELT), M.get_item_by_slot(SLOT_GENERC_DEXTROUS_STORAGE), M.get_item_by_slot(SLOT_BACK)) + var/list/obj/item/possible = list(M.get_inactive_held_item(), M.get_item_by_slot(ITEM_SLOT_BELT), M.get_item_by_slot(ITEM_SLOT_DEX_STORAGE), M.get_item_by_slot(ITEM_SLOT_BACK)) for(var/i in possible) if(!i) continue @@ -453,10 +452,10 @@ //used in code for items usable by both carbon and drones, this gives the proper back slot for each mob.(defibrillator, backpack watertank, ...) /mob/proc/getBackSlot() - return SLOT_BACK + return ITEM_SLOT_BACK /mob/proc/getBeltSlot() - return SLOT_BELT + return ITEM_SLOT_BELT diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm index ca2946fd8a..7dedf5a739 100644 --- a/code/modules/mob/living/carbon/alien/special/facehugger.dm +++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm @@ -172,7 +172,7 @@ if(target.dropItemToGround(W)) target.visible_message("[src] tears [W] off of [target]'s face!", \ "[src] tears [W] off of [target]'s face!") - target.equip_to_slot_if_possible(src, SLOT_WEAR_MASK, 0, 1, 1) + target.equip_to_slot_if_possible(src, ITEM_SLOT_MASK, 0, 1, 1) return TRUE // time for a smoke /obj/item/clothing/mask/facehugger/proc/Attach(mob/living/M) @@ -259,7 +259,7 @@ return 1 var/mob/living/carbon/C = M - if(ishuman(C) && !(SLOT_WEAR_MASK in C.dna.species.no_equip)) + if(ishuman(C) && !(ITEM_SLOT_MASK in C.dna.species.no_equip)) var/mob/living/carbon/human/H = C if(H.is_mouth_covered(head_only = 1)) return FALSE diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index b0d1808782..5af2d452f7 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -262,7 +262,7 @@ // too soon. var/buckle_cd = 600 if(handcuffed) - var/obj/item/restraints/O = src.get_item_by_slot(SLOT_HANDCUFFED) + var/obj/item/restraints/O = src.get_item_by_slot(ITEM_SLOT_HANDCUFFED) buckle_cd = O.breakouttime MarkResistTime() visible_message("[src] attempts to unbuckle [p_them()]self!", \ @@ -1123,16 +1123,16 @@ /mob/living/carbon/check_obscured_slots() if(head) if(head.flags_inv & HIDEMASK) - LAZYOR(., SLOT_WEAR_MASK) + LAZYOR(., ITEM_SLOT_MASK) if(head.flags_inv & HIDEEYES) - LAZYOR(., SLOT_GLASSES) + LAZYOR(., ITEM_SLOT_EYES) if(head.flags_inv & HIDEEARS) - LAZYOR(., SLOT_EARS_LEFT) - LAZYOR(., SLOT_EARS_RIGHT) + LAZYOR(., ITEM_SLOT_EARS_LEFT) + LAZYOR(., ITEM_SLOT_EARS_RIGHT) if(wear_mask) if(wear_mask.flags_inv & HIDEEYES) - LAZYOR(., SLOT_GLASSES) + LAZYOR(., ITEM_SLOT_EYES) // if any of our bodyparts are bleeding /mob/living/carbon/proc/is_bleeding() diff --git a/code/modules/mob/living/carbon/carbon_stripping.dm b/code/modules/mob/living/carbon/carbon_stripping.dm index 45ff02f0d5..afbd6edaeb 100644 --- a/code/modules/mob/living/carbon/carbon_stripping.dm +++ b/code/modules/mob/living/carbon/carbon_stripping.dm @@ -1,10 +1,10 @@ /datum/strippable_item/mob_item_slot/head key = STRIPPABLE_ITEM_HEAD - item_slot = SLOT_HEAD + item_slot = ITEM_SLOT_HEAD /datum/strippable_item/mob_item_slot/back key = STRIPPABLE_ITEM_BACK - item_slot = SLOT_BACK + item_slot = ITEM_SLOT_BACK /datum/strippable_item/mob_item_slot/back/get_alternate_action(atom/source, mob/user) if(..() == FALSE) @@ -18,15 +18,15 @@ /datum/strippable_item/mob_item_slot/mask key = STRIPPABLE_ITEM_MASK - item_slot = SLOT_WEAR_MASK + item_slot = ITEM_SLOT_MASK /datum/strippable_item/mob_item_slot/neck key = STRIPPABLE_ITEM_NECK - item_slot = SLOT_NECK + item_slot = ITEM_SLOT_NECK /datum/strippable_item/mob_item_slot/handcuffs key = STRIPPABLE_ITEM_HANDCUFFS - item_slot = SLOT_HANDCUFFED + item_slot = ITEM_SLOT_HANDCUFFED /datum/strippable_item/mob_item_slot/handcuffs/should_show(atom/source, mob/user) if (!iscarbon(source)) @@ -41,7 +41,7 @@ /datum/strippable_item/mob_item_slot/legcuffs key = STRIPPABLE_ITEM_LEGCUFFS - item_slot = SLOT_LEGCUFFED + item_slot = ITEM_SLOT_LEGCUFFED /datum/strippable_item/mob_item_slot/legcuffs/should_show(atom/source, mob/user) if (!iscarbon(source)) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 8fe739dca5..97128b99ca 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -41,12 +41,12 @@ if(w_shirt && !shirt_hidden) . += "[t_He] [t_is] wearing [w_shirt.get_examine_string(user)]." //Wrist slot because you're epic - if(wrists && !(SLOT_WRISTS in obscured)) + if(wrists && !(ITEM_SLOT_WRISTS in obscured)) . += "[t_He] [t_is] wearing [wrists.get_examine_string(user)]." //End of skyrat changes //uniform - if(w_uniform && !(SLOT_W_UNIFORM in obscured)) + if(w_uniform && !(ITEM_SLOT_ICLOTHING in obscured)) //accessory var/accessory_msg if(istype(w_uniform, /obj/item/clothing/under)) @@ -75,7 +75,7 @@ if(wear_suit && !(wear_suit.obj_flags & EXAMINE_SKIP)) . += "[t_He] [t_is] wearing [wear_suit.get_examine_string(user)]." //suit/armor storage - if(s_store && !(SLOT_S_STORE in obscured)) + if(s_store && !(ITEM_SLOT_SUITSTORE in obscured)) . += "[t_He] [t_is] carrying [s_store.get_examine_string(user)] on [t_his] [wear_suit.name]." //back if(back) @@ -87,7 +87,7 @@ . += "[t_He] [t_is] holding [I.get_examine_string(user)] in [t_his] [get_held_index_name(get_held_index_of_item(I))]." //gloves - if(gloves && !(SLOT_GLOVES in obscured)) + if(gloves && !(ITEM_SLOT_GLOVES in obscured)) . += "[t_He] [t_has] [gloves.get_examine_string(user)] on [t_his] hands." else if(length(blood_DNA)) var/hand_number = get_num_arms(FALSE) @@ -106,18 +106,18 @@ . += "[t_He] [t_has] [belt.get_examine_string(user)] about [t_his] waist." //shoes - if(shoes && !(SLOT_SHOES in obscured)) + if(shoes && !(ITEM_SLOT_FEET in obscured)) . += "[t_He] [t_is] wearing [shoes.get_examine_string(user)] on [t_his] feet." //mask - if(wear_mask && !(SLOT_WEAR_MASK in obscured)) + if(wear_mask && !(ITEM_SLOT_MASK in obscured)) . += "[t_He] [t_has] [wear_mask.get_examine_string(user)] on [t_his] face." - if(wear_neck && !(SLOT_NECK in obscured)) + if(wear_neck && !(ITEM_SLOT_NECK in obscured)) . += "[t_He] [t_is] wearing [wear_neck.get_examine_string(user)] around [t_his] neck." //eyes - if(!(SLOT_GLASSES in obscured)) + if(!(ITEM_SLOT_EYES in obscured)) if(glasses) . += "[t_He] [t_has] [glasses.get_examine_string(user)] covering [t_his] eyes." else if((left_eye_color == BLOODCULT_EYE || right_eye_color == BLOODCULT_EYE) && iscultist(src) && HAS_TRAIT(src, TRAIT_CULT_EYES)) @@ -128,15 +128,15 @@ . += "[t_His] eyes are flickering a bright yellow!" //ears - if(ears && !(SLOT_EARS_LEFT in obscured)) //skyrat edit + if(ears && !(ITEM_SLOT_EARS_LEFT in obscured)) // Sandstorm edit . += "[t_He] [t_has] [ears.get_examine_string(user)] on [t_his] left ear." - //skyrat edit - extra ear slot haha - if(ears_extra && !(SLOT_EARS_RIGHT in obscured)) + // Sandstorm edit + if(ears_extra && !(ITEM_SLOT_EARS_RIGHT in obscured)) . += "[t_He] [t_has] [ears_extra.get_examine_string(user)] on [t_his] right ear." //wearing two ear items makes you look like an idiot - if((istype(ears, /obj/item/radio/headset) && !(SLOT_EARS_LEFT in obscured)) && (istype(ears_extra, /obj/item/radio/headset) && !(SLOT_EARS_RIGHT in obscured))) + if((istype(ears, /obj/item/radio/headset) && !(ITEM_SLOT_EARS_LEFT in obscured)) && (istype(ears_extra, /obj/item/radio/headset) && !(ITEM_SLOT_EARS_RIGHT in obscured))) . += "[t_He] looks quite tacky wearing both \an [ears.name] and \an [ears_extra.name] on [t_his] head." // diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index d33541625c..cd55f8d259 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -386,23 +386,23 @@ . = ..() if(wear_suit) if(wear_suit.flags_inv & HIDEGLOVES) - LAZYOR(., SLOT_GLOVES) - LAZYOR(., SLOT_WRISTS) + LAZYOR(., ITEM_SLOT_GLOVES) + LAZYOR(., ITEM_SLOT_WRISTS) if(wear_suit.flags_inv & HIDEJUMPSUIT) - LAZYOR(., SLOT_W_UNIFORM) - LAZYOR(., SLOT_W_SHIRT) - LAZYOR(., SLOT_W_UNDERWEAR) + LAZYOR(., ITEM_SLOT_ICLOTHING) + LAZYOR(., ITEM_SLOT_SHIRT) + LAZYOR(., ITEM_SLOT_UNDERWEAR) if(wear_suit.flags_inv & HIDESHOES) - LAZYOR(., SLOT_SHOES) - LAZYOR(., SLOT_W_SOCKS) + LAZYOR(., ITEM_SLOT_FEET) + LAZYOR(., ITEM_SLOT_SOCKS) if(w_uniform) if(underwear_hidden()) - LAZYOR(., SLOT_W_UNDERWEAR) + LAZYOR(., ITEM_SLOT_UNDERWEAR) if(undershirt_hidden()) - LAZYOR(., SLOT_W_SHIRT) + LAZYOR(., ITEM_SLOT_SHIRT) if(shoes) if(socks_hidden()) - LAZYOR(., SLOT_W_SOCKS) + LAZYOR(., ITEM_SLOT_SOCKS) /mob/living/carbon/human/assess_threat(judgement_criteria, lasercolor = "", datum/callback/weaponcheck=null) if(judgement_criteria & JUDGE_EMAGGED) @@ -951,6 +951,9 @@ . += "[t_He] [t_is] a [spec_trait_examine_font()][dna.custom_species ? dna.custom_species : dna.species.name]" SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE, usr, .) +/mob/living/carbon/human/chestonly + bodyparts = list(/obj/item/bodypart/chest) + /mob/living/carbon/human/species/abductor race = /datum/species/abductor diff --git a/code/modules/mob/living/carbon/human/human_stripping.dm b/code/modules/mob/living/carbon/human/human_stripping.dm index dc952620ca..b028db5cda 100644 --- a/code/modules/mob/living/carbon/human/human_stripping.dm +++ b/code/modules/mob/living/carbon/human/human_stripping.dm @@ -42,15 +42,15 @@ GLOBAL_LIST_INIT(strippable_human_items, create_strippable_list(list( /datum/strippable_item/mob_item_slot/eyes key = STRIPPABLE_ITEM_EYES - item_slot = SLOT_GLASSES + item_slot = ITEM_SLOT_EYES /datum/strippable_item/mob_item_slot/ears key = STRIPPABLE_ITEM_EARS - item_slot = SLOT_EARS_LEFT + item_slot = ITEM_SLOT_EARS_LEFT /datum/strippable_item/mob_item_slot/jumpsuit key = STRIPPABLE_ITEM_JUMPSUIT - item_slot = SLOT_W_UNIFORM + item_slot = ITEM_SLOT_ICLOTHING /datum/strippable_item/mob_item_slot/jumpsuit/get_alternate_action(atom/source, mob/user) if(..() == FALSE) @@ -82,7 +82,7 @@ GLOBAL_LIST_INIT(strippable_human_items, create_strippable_list(list( /datum/strippable_item/mob_item_slot/suit key = STRIPPABLE_ITEM_SUIT - item_slot = SLOT_WEAR_SUIT + item_slot = ITEM_SLOT_OCLOTHING /datum/strippable_item/mob_item_slot/suit/get_alternate_action(atom/source, mob/user) if(..() == FALSE) @@ -115,11 +115,11 @@ GLOBAL_LIST_INIT(strippable_human_items, create_strippable_list(list( /datum/strippable_item/mob_item_slot/gloves key = STRIPPABLE_ITEM_GLOVES - item_slot = SLOT_GLOVES + item_slot = ITEM_SLOT_GLOVES /datum/strippable_item/mob_item_slot/feet key = STRIPPABLE_ITEM_FEET - item_slot = SLOT_SHOES + item_slot = ITEM_SLOT_FEET /datum/strippable_item/mob_item_slot/feet/get_alternate_action(atom/source, mob/user) if(..() == FALSE) @@ -148,7 +148,7 @@ GLOBAL_LIST_INIT(strippable_human_items, create_strippable_list(list( /datum/strippable_item/mob_item_slot/suit_storage key = STRIPPABLE_ITEM_SUIT_STORAGE - item_slot = SLOT_S_STORE + item_slot = ITEM_SLOT_SUITSTORE /datum/strippable_item/mob_item_slot/suit_storage/get_alternate_action(atom/source, mob/user) if(..() == FALSE) @@ -162,11 +162,11 @@ GLOBAL_LIST_INIT(strippable_human_items, create_strippable_list(list( /datum/strippable_item/mob_item_slot/id key = STRIPPABLE_ITEM_ID - item_slot = SLOT_WEAR_ID + item_slot = ITEM_SLOT_ID /datum/strippable_item/mob_item_slot/belt key = STRIPPABLE_ITEM_BELT - item_slot = SLOT_BELT + item_slot = ITEM_SLOT_BELT /datum/strippable_item/mob_item_slot/belt/get_alternate_action(atom/source, mob/user) if(..() == FALSE) @@ -219,12 +219,12 @@ GLOBAL_LIST_INIT(strippable_human_items, create_strippable_list(list( /datum/strippable_item/mob_item_slot/pocket/left key = STRIPPABLE_ITEM_LPOCKET - item_slot = SLOT_L_STORE + item_slot = ITEM_SLOT_LPOCKET pocket_side = "left" /datum/strippable_item/mob_item_slot/pocket/right key = STRIPPABLE_ITEM_RPOCKET - item_slot = SLOT_R_STORE + item_slot = ITEM_SLOT_RPOCKET pocket_side = "right" /proc/get_strippable_alternate_action_internals(obj/item/item, atom/source) diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 1a52097758..ca5f6b135b 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -17,55 +17,55 @@ // Return the item currently in the slot ID /mob/living/carbon/human/get_item_by_slot(slot_id) switch(slot_id) - if(SLOT_BACK) + if(ITEM_SLOT_BACK) return back - if(SLOT_WEAR_MASK) + if(ITEM_SLOT_MASK) return wear_mask - if(SLOT_NECK) + if(ITEM_SLOT_NECK) return wear_neck - if(SLOT_HANDCUFFED) + if(ITEM_SLOT_HANDCUFFED) return handcuffed - if(SLOT_LEGCUFFED) + if(ITEM_SLOT_LEGCUFFED) return legcuffed - if(SLOT_BELT) + if(ITEM_SLOT_BELT) return belt - if(SLOT_WEAR_ID) + if(ITEM_SLOT_ID) return wear_id - if(SLOT_EARS_LEFT) //skyrat edit + if(ITEM_SLOT_EARS_LEFT) // Sandstorm edit return ears - //skyrat edit - if(SLOT_EARS_RIGHT) + // Sandstorm edit + if(ITEM_SLOT_EARS_RIGHT) return ears_extra // - if(SLOT_GLASSES) + if(ITEM_SLOT_EYES) return glasses - if(SLOT_GLOVES) + if(ITEM_SLOT_GLOVES) return gloves - //skyrat edit - if(SLOT_WRISTS) + // Sandstorm edit + if(ITEM_SLOT_WRISTS) return wrists // - if(SLOT_HEAD) + if(ITEM_SLOT_HEAD) return head - if(SLOT_SHOES) + if(ITEM_SLOT_FEET) return shoes - if(SLOT_WEAR_SUIT) + if(ITEM_SLOT_OCLOTHING) return wear_suit - if(SLOT_W_UNIFORM) + if(ITEM_SLOT_ICLOTHING) return w_uniform - //skyrat edit - if(SLOT_W_UNDERWEAR) + // Sandstorm edit + if(ITEM_SLOT_UNDERWEAR) return w_underwear - if(SLOT_W_SOCKS) + if(ITEM_SLOT_SOCKS) return w_socks - if(SLOT_W_SHIRT) + if(ITEM_SLOT_SHIRT) return w_shirt // - if(SLOT_L_STORE) + if(ITEM_SLOT_LPOCKET) return l_store - if(SLOT_R_STORE) + if(ITEM_SLOT_RPOCKET) return r_store - if(SLOT_S_STORE) + if(ITEM_SLOT_SUITSTORE) return s_store return null @@ -119,22 +119,22 @@ var/not_handled = FALSE //Added in case we make this type path deeper one day switch(slot) - if(SLOT_BELT) + if(ITEM_SLOT_BELT) belt = I update_inv_belt() - if(SLOT_WEAR_ID) + if(ITEM_SLOT_ID) wear_id = I sec_hud_set_ID() update_inv_wear_id() - //skyrat edit - if(SLOT_EARS_LEFT) + // Sandstorm edit + if(ITEM_SLOT_EARS_LEFT) ears = I update_inv_ears() - if(SLOT_EARS_RIGHT) + if(ITEM_SLOT_EARS_RIGHT) ears_extra = I update_inv_ears_extra() // - if(SLOT_GLASSES) + if(ITEM_SLOT_EYES) glasses = I var/obj/item/clothing/glasses/G = I if(G.glass_colour_type) @@ -147,18 +147,18 @@ if(G.vision_flags || G.darkness_view || G.invis_override || G.invis_view || !isnull(G.lighting_alpha)) update_sight() update_inv_glasses() - if(SLOT_GLOVES) + if(ITEM_SLOT_GLOVES) gloves = I update_inv_gloves() - //skyrat edit - if(SLOT_WRISTS) + // Sandstorm edit + if(ITEM_SLOT_WRISTS) wrists = I update_inv_wrists() // - if(SLOT_SHOES) + if(ITEM_SLOT_FEET) shoes = I update_inv_shoes() - if(SLOT_WEAR_SUIT) + if(ITEM_SLOT_OCLOTHING) wear_suit = I if(I.flags_inv & HIDEJUMPSUIT) update_inv_w_uniform() @@ -166,28 +166,28 @@ stop_pulling() //can't pull if restrained update_action_buttons_icon() //certain action buttons will no longer be usable. update_inv_wear_suit() - if(SLOT_W_UNIFORM) + if(ITEM_SLOT_ICLOTHING) w_uniform = I update_suit_sensors() update_inv_w_uniform() - //skyrat edit - if(SLOT_W_UNDERWEAR) + // Sandstorm edit + if(ITEM_SLOT_UNDERWEAR) w_underwear = I update_inv_w_underwear() - if(SLOT_W_SOCKS) + if(ITEM_SLOT_SOCKS) w_socks = I update_inv_w_socks() - if(SLOT_W_SHIRT) + if(ITEM_SLOT_SHIRT) w_shirt = I update_inv_w_shirt() // - if(SLOT_L_STORE) + if(ITEM_SLOT_LPOCKET) l_store = I update_inv_pockets() - if(SLOT_R_STORE) + if(ITEM_SLOT_RPOCKET) r_store = I update_inv_pockets() - if(SLOT_S_STORE) + if(ITEM_SLOT_SUITSTORE) s_store = I update_inv_s_store() else @@ -362,7 +362,7 @@ if(incapacitated()) return var/obj/item/thing = get_active_held_item() - var/obj/item/equipped_back = get_item_by_slot(SLOT_BACK) + var/obj/item/equipped_back = get_item_by_slot(ITEM_SLOT_BACK) if(!equipped_back) // We also let you equip a backpack like this if(!thing) to_chat(src, "You have no backpack to take something out of!") @@ -393,7 +393,7 @@ if(incapacitated()) return var/obj/item/thing = get_active_held_item() - var/obj/item/equipped_belt = get_item_by_slot(SLOT_BELT) + var/obj/item/equipped_belt = get_item_by_slot(ITEM_SLOT_BELT) if(!equipped_belt) // We also let you equip a belt like this if(!thing) to_chat(src, "You have no belt to take something out of!") diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 9e44e9f7a8..f0314e3837 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1287,11 +1287,11 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/num_legs = H.get_num_legs(FALSE) switch(slot) - if(SLOT_HANDS) + if(ITEM_SLOT_HANDS) if(H.get_empty_held_indexes()) return TRUE return FALSE - if(SLOT_WEAR_MASK) + if(ITEM_SLOT_MASK) if(H.wear_mask) return FALSE if(!(I.slot_flags & ITEM_SLOT_MASK)) @@ -1299,25 +1299,25 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(!H.get_bodypart(BODY_ZONE_HEAD)) return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) - if(SLOT_NECK) + if(ITEM_SLOT_NECK) if(H.wear_neck) return FALSE if( !(I.slot_flags & ITEM_SLOT_NECK) ) return FALSE return TRUE - if(SLOT_BACK) + if(ITEM_SLOT_BACK) if(H.back) return FALSE if( !(I.slot_flags & ITEM_SLOT_BACK) ) return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) - if(SLOT_WEAR_SUIT) + if(ITEM_SLOT_OCLOTHING) if(H.wear_suit) return FALSE if( !(I.slot_flags & ITEM_SLOT_OCLOTHING) ) return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) - if(SLOT_GLOVES) + if(ITEM_SLOT_GLOVES) if(H.gloves) return FALSE if( !(I.slot_flags & ITEM_SLOT_GLOVES) ) @@ -1325,8 +1325,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(num_arms < 2) return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) - //skyrat edit - if(SLOT_WRISTS) + // Sandstorm edit + if(ITEM_SLOT_WRISTS) if(H.wrists) return FALSE if( !(I.slot_flags & ITEM_SLOT_WRISTS) ) @@ -1335,7 +1335,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) // - if(SLOT_SHOES) + if(ITEM_SLOT_FEET) if(H.shoes) return FALSE if( !(I.slot_flags & ITEM_SLOT_FEET) ) @@ -1348,7 +1348,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) else return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) - if(SLOT_BELT) + if(ITEM_SLOT_BELT) if(H.belt) return FALSE if(!(I.item_flags & NO_UNIFORM_REQUIRED)) @@ -1360,7 +1360,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(!(I.slot_flags & ITEM_SLOT_BELT)) return return equip_delay_self_check(I, H, bypass_equip_delay_self) - if(SLOT_GLASSES) + if(ITEM_SLOT_EYES) if(H.glasses) return FALSE if(!(I.slot_flags & ITEM_SLOT_EYES)) @@ -1368,7 +1368,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(!H.get_bodypart(BODY_ZONE_HEAD)) return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) - if(SLOT_HEAD) + if(ITEM_SLOT_HEAD) if(H.head) return FALSE if(!(I.slot_flags & ITEM_SLOT_HEAD)) @@ -1376,7 +1376,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(!H.get_bodypart(BODY_ZONE_HEAD)) return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) - if(SLOT_EARS_LEFT) //skyrat edit + if(ITEM_SLOT_EARS_LEFT) // Sandstorm edit if(H.ears) return FALSE if(!(I.slot_flags & ITEM_SLOT_EARS)) @@ -1384,8 +1384,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(!H.get_bodypart(BODY_ZONE_HEAD)) return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) - //skyrat edit - if(SLOT_EARS_RIGHT) + // Sandstorm edit + if(ITEM_SLOT_EARS_RIGHT) if(H.ears_extra) return FALSE if(!(I.slot_flags & ITEM_SLOT_EARS)) @@ -1393,32 +1393,32 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(!H.get_bodypart(BODY_ZONE_HEAD)) return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) - if(SLOT_W_UNDERWEAR) + if(ITEM_SLOT_UNDERWEAR) if(H.w_underwear) return FALSE if( !(I.slot_flags & ITEM_SLOT_UNDERWEAR) ) return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) - if(SLOT_W_SOCKS) + if(ITEM_SLOT_SOCKS) if(H.w_socks) return FALSE if( !(I.slot_flags & ITEM_SLOT_SOCKS) ) return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) - if(SLOT_W_SHIRT) + if(ITEM_SLOT_SHIRT) if(H.w_shirt) return FALSE if( !(I.slot_flags & ITEM_SLOT_SHIRT) ) return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) // - if(SLOT_W_UNIFORM) + if(ITEM_SLOT_ICLOTHING) if(H.w_uniform) return FALSE if( !(I.slot_flags & ITEM_SLOT_ICLOTHING) ) return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) - if(SLOT_WEAR_ID) + if(ITEM_SLOT_ID) if(H.wear_id) return FALSE if(!(I.item_flags & NO_UNIFORM_REQUIRED)) @@ -1430,7 +1430,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if( !(I.slot_flags & ITEM_SLOT_ID) ) return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) - if(SLOT_L_STORE) + if(ITEM_SLOT_LPOCKET) if(HAS_TRAIT(I, TRAIT_NODROP)) //Pockets aren't visible, so you can't move TRAIT_NODROP items into them. return FALSE if(H.l_store) @@ -1442,11 +1442,9 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(return_warning) return_warning[1] = "You need a jumpsuit before you can attach this [I.name]!" return FALSE - if(I.slot_flags & ITEM_SLOT_DENYPOCKET) - return FALSE - if( I.w_class <= WEIGHT_CLASS_SMALL || (I.slot_flags & ITEM_SLOT_POCKET) ) + if( I.w_class <= WEIGHT_CLASS_SMALL || (I.slot_flags & ITEM_SLOT_POCKETS) ) return TRUE - if(SLOT_R_STORE) + if(ITEM_SLOT_RPOCKET) if(HAS_TRAIT(I, TRAIT_NODROP)) return FALSE if(H.r_store) @@ -1458,12 +1456,10 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(return_warning) return_warning[1] = "You need a jumpsuit before you can attach this [I.name]!" return FALSE - if(I.slot_flags & ITEM_SLOT_DENYPOCKET) - return FALSE - if( I.w_class <= WEIGHT_CLASS_SMALL || (I.slot_flags & ITEM_SLOT_POCKET) ) + if( I.w_class <= WEIGHT_CLASS_SMALL || (I.slot_flags & ITEM_SLOT_POCKETS) ) return TRUE return FALSE - if(SLOT_S_STORE) + if(ITEM_SLOT_SUITSTORE) if(HAS_TRAIT(I, TRAIT_NODROP)) return FALSE if(H.s_store) @@ -1483,7 +1479,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if( istype(I, /obj/item/pda) || istype(I, /obj/item/pen) || is_type_in_list(I, H.wear_suit.allowed) ) return TRUE return FALSE - if(SLOT_HANDCUFFED) + if(ITEM_SLOT_HANDCUFFED) if(H.handcuffed) return FALSE if(!istype(I, /obj/item/restraints/handcuffs)) @@ -1491,7 +1487,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(num_arms < 2) return FALSE return TRUE - if(SLOT_LEGCUFFED) + if(ITEM_SLOT_LEGCUFFED) if(H.legcuffed) return FALSE if(!istype(I, /obj/item/restraints/legcuffs)) @@ -1499,7 +1495,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(num_legs < 2) return FALSE return TRUE - if(SLOT_IN_BACKPACK) + if(ITEM_SLOT_BACKPACK) if(H.back) if(SEND_SIGNAL(H.back, COMSIG_TRY_STORAGE_CAN_INSERT, I, H, TRUE)) return TRUE diff --git a/code/modules/mob/living/carbon/human/species_types/golems.dm b/code/modules/mob/living/carbon/human/species_types/golems.dm index 9f5e868038..3e24688ac4 100644 --- a/code/modules/mob/living/carbon/human/species_types/golems.dm +++ b/code/modules/mob/living/carbon/human/species_types/golems.dm @@ -12,7 +12,7 @@ punchdamagelow = 5 punchdamagehigh = 14 punchstunthreshold = 10 - no_equip = list(SLOT_WEAR_MASK, SLOT_WEAR_SUIT, SLOT_GLOVES, SLOT_SHOES, SLOT_W_UNIFORM, SLOT_S_STORE) + no_equip = list(ITEM_SLOT_MASK, ITEM_SLOT_OCLOTHING, ITEM_SLOT_GLOVES, ITEM_SLOT_FEET, ITEM_SLOT_ICLOTHING, ITEM_SLOT_SUITSTORE) nojumpsuit = 1 sexes = 1 damage_overlay_type = "" diff --git a/code/modules/mob/living/carbon/human/species_types/mushpeople.dm b/code/modules/mob/living/carbon/human/species_types/mushpeople.dm index 5e20b469ed..85ab2b44cd 100644 --- a/code/modules/mob/living/carbon/human/species_types/mushpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/mushpeople.dm @@ -16,7 +16,7 @@ punchdamagehigh = 12 //still better than humans punchstunthreshold = 10 - no_equip = list(SLOT_WEAR_MASK, SLOT_WEAR_SUIT, SLOT_GLOVES, SLOT_SHOES, SLOT_W_UNIFORM) + no_equip = list(ITEM_SLOT_MASK, ITEM_SLOT_OCLOTHING, ITEM_SLOT_GLOVES, ITEM_SLOT_FEET, ITEM_SLOT_ICLOTHING) burnmod = 1.25 heatmod = 1.5 diff --git a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm index f538a5d5d7..23a0ea310f 100644 --- a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm @@ -38,7 +38,7 @@ limbs_id = SPECIES_SHADOW burnmod = 1.5 blacklisted = TRUE - no_equip = list(SLOT_WEAR_MASK, SLOT_WEAR_SUIT, SLOT_GLOVES, SLOT_SHOES, SLOT_W_UNIFORM, SLOT_S_STORE) + no_equip = list(ITEM_SLOT_MASK, ITEM_SLOT_OCLOTHING, ITEM_SLOT_GLOVES, ITEM_SLOT_FEET, ITEM_SLOT_ICLOTHING, ITEM_SLOT_SUITSTORE) species_traits = list(NOBLOOD,NO_UNDERWEAR,NO_DNA_COPY,NOTRANSSTING,NOEYES,NOGENITALS,NOAROUSAL) inherent_traits = list(TRAIT_RESISTCOLD,TRAIT_NOBREATH,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_CHUNKYFINGERS,TRAIT_RADIMMUNE,TRAIT_VIRUSIMMUNE,TRAIT_PIERCEIMMUNE,TRAIT_NODISMEMBER,TRAIT_NOHUNGER,TRAIT_NOTHIRST) mutanteyes = /obj/item/organ/eyes/night_vision/nightmare diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index b6558ec72a..198e7df83e 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -82,7 +82,7 @@ There are several things that need to be remembered: update_body(TRUE) update_hair() update_inv_w_uniform() - //skyrat edit + // Sandstorm edit update_inv_w_underwear() update_inv_w_socks() update_inv_w_shirt() @@ -135,7 +135,7 @@ There are several things that need to be remembered: remove_overlay(UNIFORM_LAYER) if(client && hud_used) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_W_UNIFORM] + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_ICLOTHING) + 1] inv.update_icon() if(istype(w_uniform, /obj/item/clothing/under)) @@ -182,13 +182,13 @@ There are several things that need to be remembered: apply_overlay(UNIFORM_LAYER) update_mutant_bodyparts() -//skyrat edit +// Sandstorm edit /mob/living/carbon/human/update_inv_w_underwear() if(!HAS_TRAIT(src, TRAIT_HUMAN_NO_RENDER)) remove_overlay(UNDERWEAR_LAYER) if(client && hud_used) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_W_UNDERWEAR] + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_UNDERWEAR) + 1] inv.update_icon() if(istype(w_underwear, /obj/item/clothing/underwear)) @@ -235,7 +235,7 @@ There are several things that need to be remembered: remove_overlay(SOCKS_LAYER) if(client && hud_used) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_W_SOCKS] + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_SOCKS) + 1] inv.update_icon() if(istype(w_socks, /obj/item/clothing/underwear)) @@ -282,7 +282,7 @@ There are several things that need to be remembered: remove_overlay(SHIRT_LAYER) if(client && hud_used) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_W_SHIRT] + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_SHIRT) + 1] inv.update_icon() if(istype(w_shirt, /obj/item/clothing/underwear)) @@ -330,7 +330,7 @@ There are several things that need to be remembered: remove_overlay(ID_LAYER) if(client && hud_used) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_WEAR_ID] + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_ID) + 1] inv.update_icon() var/mutable_appearance/id_overlay = overlays_standing[ID_LAYER] @@ -354,8 +354,8 @@ There are several things that need to be remembered: if(!HAS_TRAIT(src, TRAIT_HUMAN_NO_RENDER)) remove_overlay(GLOVES_LAYER) - if(client && hud_used && hud_used.inv_slots[SLOT_GLOVES]) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_GLOVES] + if(client && hud_used && hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_GLOVES) + 1]) + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_GLOVES) + 1] inv.update_icon() if(!gloves && bloody_hands) @@ -383,13 +383,13 @@ There are several things that need to be remembered: overlays_standing[GLOVES_LAYER] = gloves_overlay apply_overlay(GLOVES_LAYER) -//skyrat edit +// Sandstorm edit /mob/living/carbon/human/update_inv_wrists() if(!HAS_TRAIT(src, TRAIT_HUMAN_NO_RENDER)) remove_overlay(WRISTS_LAYER) - if(client && hud_used && hud_used.inv_slots[SLOT_WRISTS]) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_WRISTS] + if(client && hud_used && hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_WRISTS) + 1]) + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_WRISTS) + 1] inv.update_icon() if(!wrists && bloody_hands) @@ -426,7 +426,7 @@ There are several things that need to be remembered: return if(client && hud_used) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_GLASSES] + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_EYES) + 1] inv.update_icon() if(glasses) @@ -453,7 +453,7 @@ There are several things that need to be remembered: return if(client && hud_used) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_EARS_LEFT] + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_EARS_LEFT) + 1] inv.update_icon() if(ears) @@ -479,7 +479,7 @@ There are several things that need to be remembered: return if(client && hud_used) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_EARS_RIGHT] + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_EARS_RIGHT) + 1] inv.update_icon() if(ears_extra) @@ -505,7 +505,7 @@ There are several things that need to be remembered: return if(client && hud_used) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_SHOES] + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_FEET) + 1] inv.update_icon() if(dna.species.mutant_bodyparts["taur"]) @@ -540,7 +540,7 @@ There are several things that need to be remembered: remove_overlay(SUIT_STORE_LAYER) if(client && hud_used) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_S_STORE] + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_SUITSTORE) + 1] inv.update_icon() if(s_store) @@ -567,7 +567,7 @@ There are several things that need to be remembered: return if(client && hud_used) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_HEAD] + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_HEAD) + 1] inv.update_icon() if(head) @@ -604,7 +604,7 @@ There are several things that need to be remembered: remove_overlay(BELT_LAYER) if(client && hud_used) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_BELT] + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_BELT) + 1] inv.update_icon() if(belt) @@ -626,7 +626,7 @@ There are several things that need to be remembered: remove_overlay(SUIT_LAYER) if(client && hud_used) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_WEAR_SUIT] + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_OCLOTHING) + 1] inv.update_icon() if(wear_suit) @@ -689,10 +689,10 @@ There are several things that need to be remembered: if(client && hud_used) var/atom/movable/screen/inventory/inv - inv = hud_used.inv_slots[SLOT_L_STORE] + inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_LPOCKET) + 1] inv.update_icon() - inv = hud_used.inv_slots[SLOT_R_STORE] + inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_RPOCKET) + 1] inv.update_icon() if(l_store) @@ -716,7 +716,7 @@ There are several things that need to be remembered: return if(client && hud_used) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_WEAR_MASK] + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_MASK) + 1] inv.update_icon() if(wear_mask) diff --git a/code/modules/mob/living/carbon/inventory.dm b/code/modules/mob/living/carbon/inventory.dm index 13f811196e..2422528d21 100644 --- a/code/modules/mob/living/carbon/inventory.dm +++ b/code/modules/mob/living/carbon/inventory.dm @@ -1,16 +1,16 @@ /mob/living/carbon/get_item_by_slot(slot_id) switch(slot_id) - if(SLOT_BACK) + if(ITEM_SLOT_BACK) return back - if(SLOT_WEAR_MASK) + if(ITEM_SLOT_MASK) return wear_mask - if(SLOT_NECK) + if(ITEM_SLOT_NECK) return wear_neck - if(SLOT_HEAD) + if(ITEM_SLOT_HEAD) return head - if(SLOT_HANDCUFFED) + if(ITEM_SLOT_HANDCUFFED) return handcuffed - if(SLOT_LEGCUFFED) + if(ITEM_SLOT_LEGCUFFED) return legcuffed return null @@ -20,17 +20,17 @@ return slot if(critical) //it is CRITICAL they get this item, no matter what //do they have a backpack? - var/obj/item/backpack = get_item_by_slot(SLOT_BACK) + var/obj/item/backpack = get_item_by_slot(ITEM_SLOT_BACK) if(!backpack) //nothing on their back backpack = new /obj/item/storage/backpack(get_turf(src)) - if(equip_to_slot(backpack, SLOT_BACK)) //worst-case-scenario, something that shouldnt wear a backpack gets one + if(equip_to_slot(backpack, ITEM_SLOT_BACK)) //worst-case-scenario, something that shouldnt wear a backpack gets one I.forceMove(backpack) - return SLOT_BACK + return ITEM_SLOT_BACK else if(istype(backpack) && SEND_SIGNAL(backpack, COMSIG_CONTAINS_STORAGE)) //place it in here, regardless of storage capacity I.forceMove(backpack) - return SLOT_BACK + return ITEM_SLOT_BACK else //this should NEVER happen, but if it does, report it with the appropriate information var/conclusion = qdel_on_fail ? "deleted" : "not moved, staying at current position [I.x], [I.y], [I.z]" @@ -69,28 +69,28 @@ I.appearance_flags |= NO_CLIENT_COLOR var/not_handled = FALSE switch(slot) - if(SLOT_BACK) + if(ITEM_SLOT_BACK) back = I update_inv_back() - if(SLOT_WEAR_MASK) + if(ITEM_SLOT_MASK) wear_mask = I wear_mask_update(I, toggle_off = 0) - if(SLOT_HEAD) + if(ITEM_SLOT_HEAD) head = I head_update(I) - if(SLOT_NECK) + if(ITEM_SLOT_NECK) wear_neck = I update_inv_neck(I) - if(SLOT_HANDCUFFED) + if(ITEM_SLOT_HANDCUFFED) handcuffed = I update_handcuffed() - if(SLOT_LEGCUFFED) + if(ITEM_SLOT_LEGCUFFED) legcuffed = I update_inv_legcuffed() - if(SLOT_HANDS) + if(ITEM_SLOT_HANDS) put_in_hands(I) update_inv_hands() - if(SLOT_IN_BACKPACK) + if(ITEM_SLOT_BACKPACK) if(!back || !SEND_SIGNAL(back, COMSIG_TRY_STORAGE_INSERT, I, src, TRUE)) not_handled = TRUE else @@ -170,7 +170,7 @@ if(!offered_item) to_chat(src, "You're not holding anything to give!") return - + if(IS_DEAD_OR_INCAP(src)) to_chat(src, span_warning("You're unable to offer anything in your current state!")) return @@ -184,7 +184,7 @@ visible_message(span_notice("[src] is offering [offered_item]."), \ span_notice("You offer [offered_item]."), null, 2) - + apply_status_effect(STATUS_EFFECT_OFFERING, offered_item) /** diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 82e9112de8..0f08de4385 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -717,8 +717,8 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put return total_environment_efficiency /mob/living/carbon/proc/check_suitlinking() - var/suit_item = get_item_by_slot(SLOT_WEAR_SUIT) - var/head_item = get_item_by_slot(SLOT_HEAD) + var/suit_item = get_item_by_slot(ITEM_SLOT_OCLOTHING) + var/head_item = get_item_by_slot(ITEM_SLOT_HEAD) var/turf/T = get_turf(src) if(istype(head_item, /obj/item/clothing/head/helmet/space) && istype(suit_item, /obj/item/clothing/suit/space)) diff --git a/code/modules/mob/living/carbon/monkey/inventory.dm b/code/modules/mob/living/carbon/monkey/inventory.dm index 34599028f7..156eef9b6b 100644 --- a/code/modules/mob/living/carbon/monkey/inventory.dm +++ b/code/modules/mob/living/carbon/monkey/inventory.dm @@ -5,29 +5,29 @@ return FALSE switch(slot) - if(SLOT_HANDS) + if(ITEM_SLOT_HANDS) if(get_empty_held_indexes()) return TRUE return FALSE - if(SLOT_WEAR_MASK) + if(ITEM_SLOT_MASK) if(wear_mask) return FALSE if( !(I.slot_flags & ITEM_SLOT_MASK) ) return FALSE return TRUE - if(SLOT_NECK) + if(ITEM_SLOT_NECK) if(wear_neck) return FALSE if( !(I.slot_flags & ITEM_SLOT_NECK) ) return FALSE return TRUE - if(SLOT_HEAD) + if(ITEM_SLOT_HEAD) if(head) return FALSE if( !(I.slot_flags & ITEM_SLOT_HEAD) ) return FALSE return TRUE - if(SLOT_BACK) + if(ITEM_SLOT_BACK) if(back) return FALSE if( !(I.slot_flags & ITEM_SLOT_BACK) ) diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index 32119023c2..cefc1e17e0 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -185,5 +185,5 @@ GLOBAL_LIST_INIT(strippable_monkey_items, create_strippable_list(list( . = ..() if(prob(10)) var/obj/item/clothing/head/helmet/justice/escape/helmet = new(src) - equip_to_slot_or_del(helmet,SLOT_HEAD) + equip_to_slot_or_del(helmet,ITEM_SLOT_HEAD) INVOKE_ASYNC(helmet, /obj/item.proc/attack_self, src) // todo encapsulate toggle diff --git a/code/modules/mob/living/carbon/monkey/punpun.dm b/code/modules/mob/living/carbon/monkey/punpun.dm index c59218a8a3..d71a989c1d 100644 --- a/code/modules/mob/living/carbon/monkey/punpun.dm +++ b/code/modules/mob/living/carbon/monkey/punpun.dm @@ -29,9 +29,9 @@ if(ancestor_chain > 1) generate_fake_scars(rand(ancestor_chain, ancestor_chain * 4)) if(relic_hat) - equip_to_slot_or_del(new relic_hat, SLOT_HEAD) + equip_to_slot_or_del(new relic_hat, ITEM_SLOT_HEAD) if(relic_mask) - equip_to_slot_or_del(new relic_mask, SLOT_WEAR_MASK) + equip_to_slot_or_del(new relic_mask, ITEM_SLOT_MASK) /mob/living/carbon/monkey/punpun/BiologicalLife(seconds, times_fired) if(!(. = ..())) diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm index 43e0db1f08..cd9cd5db4c 100644 --- a/code/modules/mob/living/carbon/update_icons.dm +++ b/code/modules/mob/living/carbon/update_icons.dm @@ -91,7 +91,7 @@ return if(client && hud_used) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_WEAR_MASK] + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_MASK) + 1] inv?.update_icon() if(wear_mask) @@ -104,8 +104,8 @@ /mob/living/carbon/update_inv_neck() remove_overlay(NECK_LAYER) - if(client && hud_used && hud_used.inv_slots[SLOT_NECK]) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_NECK] + if(client && hud_used && hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_NECK) + 1]) + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_NECK) + 1] inv.update_icon() if(wear_neck) @@ -119,7 +119,7 @@ remove_overlay(BACK_LAYER) if(client && hud_used) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_BACK] + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_BACK) + 1] inv?.update_icon() if(back) @@ -135,7 +135,7 @@ return if(client && hud_used) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_HEAD] + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_HEAD) + 1] inv?.update_icon() if(head) diff --git a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm index bab02499fb..44386a3e69 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm @@ -88,10 +88,10 @@ if(default_storage) var/obj/item/I = new default_storage(src) - equip_to_slot_or_del(I, SLOT_GENERC_DEXTROUS_STORAGE) + equip_to_slot_or_del(I, ITEM_SLOT_DEX_STORAGE) if(default_hatmask) var/obj/item/I = new default_hatmask(src) - equip_to_slot_or_del(I, SLOT_HEAD) + equip_to_slot_or_del(I, ITEM_SLOT_HEAD) ADD_TRAIT(access_card, TRAIT_NODROP, ABSTRACT_ITEM_TRAIT) diff --git a/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm b/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm index 948be53abc..df4d1e0673 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm @@ -61,7 +61,7 @@ if(!D.default_hatmask && seasonal_hats && possible_seasonal_hats.len) var/hat_type = pick(possible_seasonal_hats) var/obj/item/new_hat = new hat_type(D) - D.equip_to_slot_or_del(new_hat, SLOT_HEAD) + D.equip_to_slot_or_del(new_hat, ITEM_SLOT_HEAD) D.flags_1 |= (flags_1 & ADMIN_SPAWNED_1) user.transfer_ckey(D, FALSE) qdel(src) diff --git a/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm b/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm index 00be08bb1d..4c112858da 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm @@ -21,13 +21,13 @@ /mob/living/simple_animal/drone/can_equip(obj/item/I, slot, disable_warning = FALSE, bypass_equip_delay_self = FALSE, clothing_check = FALSE, list/return_warning) switch(slot) - if(SLOT_HEAD) + if(ITEM_SLOT_HEAD) if(head) return 0 if(!((I.slot_flags & ITEM_SLOT_HEAD) || (I.slot_flags & ITEM_SLOT_MASK))) return 0 return 1 - if(SLOT_GENERC_DEXTROUS_STORAGE) + if(ITEM_SLOT_DEX_STORAGE) if(internal_storage) return 0 return 1 @@ -36,9 +36,9 @@ /mob/living/simple_animal/drone/get_item_by_slot(slot_id) switch(slot_id) - if(SLOT_HEAD) + if(ITEM_SLOT_HEAD) return head - if(SLOT_GENERC_DEXTROUS_STORAGE) + if(ITEM_SLOT_DEX_STORAGE) return internal_storage return ..() @@ -63,10 +63,10 @@ I.plane = ABOVE_HUD_PLANE switch(slot) - if(SLOT_HEAD) + if(ITEM_SLOT_HEAD) head = I update_inv_head() - if(SLOT_GENERC_DEXTROUS_STORAGE) + if(ITEM_SLOT_DEX_STORAGE) internal_storage = I update_inv_internal_storage() else @@ -77,7 +77,7 @@ I.equipped(src, slot) /mob/living/simple_animal/drone/getBackSlot() - return SLOT_GENERC_DEXTROUS_STORAGE + return ITEM_SLOT_DEX_STORAGE /mob/living/simple_animal/drone/getBeltSlot() - return SLOT_GENERC_DEXTROUS_STORAGE + return ITEM_SLOT_DEX_STORAGE diff --git a/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm b/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm index 709e3b1a62..f60cefffd8 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm @@ -52,7 +52,7 @@ /mob/living/simple_animal/hostile/guardian/dextrous/can_equip(obj/item/I, slot, disable_warning = FALSE, bypass_equip_delay_self = FALSE, clothing_check = FALSE, list/return_warning) switch(slot) - if(SLOT_GENERC_DEXTROUS_STORAGE) + if(ITEM_SLOT_DEX_STORAGE) if(internal_storage) return 0 return 1 @@ -63,17 +63,17 @@ return switch(slot) - if(SLOT_GENERC_DEXTROUS_STORAGE) + if(ITEM_SLOT_DEX_STORAGE) internal_storage = I update_inv_internal_storage() else to_chat(src, "You are trying to equip this item to an unsupported inventory slot. Report this to a coder!") /mob/living/simple_animal/hostile/guardian/dextrous/getBackSlot() - return SLOT_GENERC_DEXTROUS_STORAGE + return ITEM_SLOT_DEX_STORAGE /mob/living/simple_animal/hostile/guardian/dextrous/getBeltSlot() - return SLOT_GENERC_DEXTROUS_STORAGE + return ITEM_SLOT_DEX_STORAGE /mob/living/simple_animal/hostile/guardian/dextrous/proc/update_inv_internal_storage() if(internal_storage && client && hud_used && hud_used.hud_shown) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm index fa67fd8e3b..6bd55d06ae 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm @@ -191,7 +191,7 @@ continue visible_message("[src] grabs hold of [L]!") var/mob/living/carbon/C = L - var/obj/item/clothing/S = C.get_item_by_slot(SLOT_WEAR_SUIT) + var/obj/item/clothing/S = C.get_item_by_slot(ITEM_SLOT_OCLOTHING) if(S && S.resistance_flags & GOLIATH_RESISTANCE) L.Stun(25) else if(S && S.resistance_flags & GOLIATH_WEAKNESS) diff --git a/code/modules/ninja/energy_katana.dm b/code/modules/ninja/energy_katana.dm index cf895924b0..f59a06dc69 100644 --- a/code/modules/ninja/energy_katana.dm +++ b/code/modules/ninja/energy_katana.dm @@ -111,7 +111,7 @@ if(user.put_in_hands(src)) msg = "Your Energy Katana teleports into your hand!" - else if(user.equip_to_slot_if_possible(src, SLOT_BELT, 0, 1, 1)) + else if(user.equip_to_slot_if_possible(src, ITEM_SLOT_BELT, 0, 1, 1)) msg = "Your Energy Katana teleports back to you, sheathing itself as it does so!" else msg = "Your Energy Katana teleports to your location!" diff --git a/code/modules/ninja/outfit.dm b/code/modules/ninja/outfit.dm index ca740d9ad7..f9ce438ed9 100644 --- a/code/modules/ninja/outfit.dm +++ b/code/modules/ninja/outfit.dm @@ -11,7 +11,7 @@ l_pocket = /obj/item/grenade/plastic/c4/ninja r_pocket = /obj/item/hypospray/mkii/CMO/combat suit_store = /obj/item/tank/internals/oxygen - internals_slot = SLOT_S_STORE + internals_slot = ITEM_SLOT_SUITSTORE belt = /obj/item/energy_katana implants = list(/obj/item/implant/explosive) diff --git a/code/modules/ninja/suit/shoes.dm b/code/modules/ninja/suit/shoes.dm index 6fba60a6ef..4f46a1bfc6 100644 --- a/code/modules/ninja/suit/shoes.dm +++ b/code/modules/ninja/suit/shoes.dm @@ -22,7 +22,7 @@ /obj/item/clothing/shoes/space_ninja/equipped(mob/user, slot) . = ..() - if(slot == SLOT_SHOES) + if(slot == ITEM_SLOT_FEET) ADD_TRAIT(user, TRAIT_SILENT_STEP, SHOES_TRAIT) /obj/item/clothing/shoes/space_ninja/dropped(mob/user) diff --git a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm index f07ad0bc39..8c26f40d8b 100644 --- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm @@ -163,7 +163,7 @@ icon = 'icons/obj/ammo.dmi' icon_state = "shotgunclip" caliber = "shotgun" // slapped in to allow shell mix n match - slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_POCKET + slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_POCKETS w_class = WEIGHT_CLASS_NORMAL w_volume = ITEM_VOLUME_STRIPPER_CLIP ammo_type = /obj/item/ammo_casing/shotgun diff --git a/code/modules/projectiles/boxes_magazines/external/rechargable.dm b/code/modules/projectiles/boxes_magazines/external/rechargable.dm index 8f8916585b..76d8f217ab 100644 --- a/code/modules/projectiles/boxes_magazines/external/rechargable.dm +++ b/code/modules/projectiles/boxes_magazines/external/rechargable.dm @@ -54,7 +54,7 @@ desc = "A miniature battery for an energy weapon." icon = 'icons/obj/ammo.dmi' icon_state = "mws_batt" - slot_flags = SLOT_BELT | SLOT_EARS_LEFT | SLOT_EARS_RIGHT //skyrat edit + slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_EARS throwforce = 1 caliber = "mws" diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index bbd77ad665..a1c7c312ab 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -619,7 +619,7 @@ . += knife_overlay /obj/item/gun/item_action_slot_check(slot, mob/user, datum/action/A) - if(istype(A, /datum/action/item_action/toggle_scope_zoom) && slot != SLOT_HANDS) + if(istype(A, /datum/action/item_action/toggle_scope_zoom) && slot != ITEM_SLOT_HANDS) return FALSE return ..() diff --git a/code/modules/projectiles/guns/ballistic/toy.dm b/code/modules/projectiles/guns/ballistic/toy.dm index e7f26670d4..1f0601ac77 100644 --- a/code/modules/projectiles/guns/ballistic/toy.dm +++ b/code/modules/projectiles/guns/ballistic/toy.dm @@ -140,6 +140,6 @@ recoil = 0.1 inaccuracy_modifier = 0.25 dualwield_spread_mult = 1.4 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT w_class = WEIGHT_CLASS_NORMAL weapon_weight = WEAPON_MEDIUM diff --git a/code/modules/projectiles/guns/energy/laser_gatling.dm b/code/modules/projectiles/guns/energy/laser_gatling.dm index a0274d76d7..2bb1ece906 100644 --- a/code/modules/projectiles/guns/energy/laser_gatling.dm +++ b/code/modules/projectiles/guns/energy/laser_gatling.dm @@ -32,7 +32,7 @@ /obj/item/minigunpack/on_attack_hand(var/mob/living/carbon/user) if(src.loc == user) if(!armed) - if(user.get_item_by_slot(SLOT_BACK) == src) + if(user.get_item_by_slot(ITEM_SLOT_BACK) == src) armed = 1 if(!user.put_in_hands(gun)) armed = 0 diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index 2899f0ca11..cdad332def 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -14,6 +14,7 @@ GLOB.chemical_reagents_list[path] = D /proc/build_chemical_reactions_list() + message_admins("STARTY START START!") //Chemical Reactions - Initialises all /datum/chemical_reaction into a list // It is filtered into multiple lists within a list. // For example: @@ -26,11 +27,20 @@ //Randomized need to go last since they need to check against conflicts with normal recipes var/paths = subtypesof(/datum/chemical_reaction) - typesof(/datum/chemical_reaction/randomized) + subtypesof(/datum/chemical_reaction/randomized) GLOB.chemical_reactions_list = list() + GLOB.normalized_chemical_reactions_list = list() // chemistry pda + GLOB.drink_reactions_list = list() // bartender pda for(var/path in paths) var/datum/chemical_reaction/D = new path() var/list/reaction_ids = list() + // store recipes separately for bartender/chemistry cartridges + if(D.id && !D.is_secret) // don't show things like secretcatchem or secret sauce + var/datum/reagent/r = D.id + if(ispath(D.id, /datum/reagent/consumable)) + GLOB.drink_reactions_list[initial(r.name)] = D + if(ispath(D.id, /datum/reagent)) + GLOB.normalized_chemical_reactions_list[initial(r.name)] = D if(D.required_reagents && D.required_reagents.len) for(var/reaction in D.required_reagents) @@ -43,6 +53,31 @@ GLOB.chemical_reactions_list[id] += D break // Don't bother adding ourselves to other reagent ids, it is redundant +/proc/recipe_search(mob/M, list/reaction_list) + var/option = input(M, "Enter keyword to return a recipe.") + if(option) + option = lowertext(option) + var/list/reagents_required + var/found_reagent_name + var/required_temp + for(var/reagent_name in reaction_list) + if(findtext(lowertext(reagent_name), option)) + var/datum/chemical_reaction/reaction = reaction_list[reagent_name] + found_reagent_name = reagent_name + reagents_required = reaction.required_reagents + required_temp = reaction.required_temp + break + if(length(reagents_required)) + to_chat(M, "Recipe found: [found_reagent_name][required_temp ? "
    Required Temperature: [required_temp]K" : ""]
    Required Reagents:") + var/reagents_required_string = "" + for(var/r in reagents_required) + var/datum/reagent/reagent = r + reagents_required_string += "
    [initial(reagent.name)]: [reagents_required[r]]" + to_chat(M, reagents_required_string) + return + else + to_chat(M, "Reagent with term: [option] could not be located!") + /////////////////////////////////////////////////////////////////////////////////// /datum/reagents diff --git a/code/modules/reagents/chemistry/recipes.dm b/code/modules/reagents/chemistry/recipes.dm index 41c0ed717e..aab46bc3e4 100644 --- a/code/modules/reagents/chemistry/recipes.dm +++ b/code/modules/reagents/chemistry/recipes.dm @@ -38,6 +38,8 @@ var/clear_conversion //bitflags for clear conversions; REACTION_CLEAR_IMPURE or REACTION_CLEAR_INVERSE var/PurityMin = 0.15 //If purity is below 0.15, it explodes too. Set to 0 to disable this. + var/is_secret = FALSE // If it should show in recipe searchers such as the bartender/chemistry PDA functions + /datum/chemical_reaction/proc/on_reaction(datum/reagents/holder, multiplier, specialreact) set waitfor = FALSE diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm index fddff17a9d..03b0e1b715 100644 --- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm +++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm @@ -581,7 +581,7 @@ if(istype(extract)) if(extract.Uses > 0) var/mob/lastheld = get_mob_by_key(holder.my_atom.fingerprintslast) - if(lastheld && !lastheld.equip_to_slot_if_possible(extract, SLOT_HANDS, disable_warning = TRUE)) + if(lastheld && !lastheld.equip_to_slot_if_possible(extract, ITEM_SLOT_HANDS, disable_warning = TRUE)) extract.forceMove(get_turf(lastheld)) use_slime_core(holder) diff --git a/code/modules/reagents/chemistry/recipes/special.dm b/code/modules/reagents/chemistry/recipes/special.dm index ad277ef4ff..4aab8e4046 100644 --- a/code/modules/reagents/chemistry/recipes/special.dm +++ b/code/modules/reagents/chemistry/recipes/special.dm @@ -54,6 +54,8 @@ GLOBAL_LIST_INIT(food_reagents, build_reagents_to_food()) //reagentid = related var/max_result_reagents = 1 var/list/possible_results = list() + is_secret = TRUE + /datum/chemical_reaction/randomized/proc/GenerateRecipe() created = world.time if(randomize_container) diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index bc91dc1ff5..0310e92a84 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -300,16 +300,19 @@ resistance_flags = NONE armor = list("melee" = 10, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 75, "acid" = 50) //Weak melee protection, because you can wear it on your head slot_equipment_priority = list( \ - SLOT_BACK, SLOT_WEAR_ID,\ - SLOT_W_UNIFORM, SLOT_WEAR_SUIT,\ - SLOT_WEAR_MASK, SLOT_HEAD, SLOT_NECK,\ - SLOT_SHOES, SLOT_GLOVES,\ - SLOT_EARS_LEFT, SLOT_EARS_RIGHT,\ - SLOT_GLASSES,\ - SLOT_BELT, SLOT_S_STORE,\ - SLOT_L_STORE, SLOT_R_STORE,\ - SLOT_GENERC_DEXTROUS_STORAGE - ) //skyrat edit + ITEM_SLOT_BACK, ITEM_SLOT_ID,\ + ITEM_SLOT_UNDERWEAR,\ + ITEM_SLOT_SOCKS,\ + ITEM_SLOT_SHIRT,\ + ITEM_SLOT_ICLOTHING, ITEM_SLOT_OCLOTHING,\ + ITEM_SLOT_MASK, ITEM_SLOT_HEAD, ITEM_SLOT_NECK,\ + ITEM_SLOT_FEET, ITEM_SLOT_WRISTS, ITEM_SLOT_GLOVES,\ + ITEM_SLOT_EARS_LEFT, ITEM_SLOT_EARS_RIGHT,\ + ITEM_SLOT_EYES,\ + ITEM_SLOT_BELT, ITEM_SLOT_SUITSTORE,\ + ITEM_SLOT_LPOCKET, ITEM_SLOT_RPOCKET,\ + ITEM_SLOT_DEX_STORAGE\ + ) container_flags = APTFT_ALTCLICK|APTFT_VERB container_HP = 1 @@ -331,11 +334,11 @@ /obj/item/reagent_containers/glass/bucket/equipped(mob/user, slot) ..() - if (slot == SLOT_HEAD) + if (slot == ITEM_SLOT_HEAD) if(reagents.total_volume) to_chat(user, "[src]'s contents spill all over you!") var/R = reagents.log_list() - log_reagent("SPLASH: [user] splashed [src] on their head via bucket/equipped(self, SLOT_HEAD) - [R]") + log_reagent("SPLASH: [user] splashed [src] on their head via bucket/equipped(self, ITEM_SLOT_HEAD) - [R]") reagents.reaction(user, TOUCH) reagents.clear_reagents() reagent_flags = NONE @@ -346,10 +349,10 @@ /obj/item/reagent_containers/glass/bucket/equip_to_best_slot(var/mob/M) if(reagents.total_volume) //If there is water in a bucket, don't quick equip it to the head - var/index = slot_equipment_priority.Find(SLOT_HEAD) - slot_equipment_priority.Remove(SLOT_HEAD) + var/index = slot_equipment_priority.Find(ITEM_SLOT_HEAD) + slot_equipment_priority.Remove(ITEM_SLOT_HEAD) . = ..() - slot_equipment_priority.Insert(index, SLOT_HEAD) + slot_equipment_priority.Insert(index, ITEM_SLOT_HEAD) return return ..() diff --git a/code/modules/reagents/reagent_containers/rags.dm b/code/modules/reagents/reagent_containers/rags.dm index 34fc72ea6c..8c37ddc79a 100644 --- a/code/modules/reagents/reagent_containers/rags.dm +++ b/code/modules/reagents/reagent_containers/rags.dm @@ -151,11 +151,11 @@ /obj/item/reagent_containers/rag/towel/equipped(mob/living/user, slot) . = ..() switch(slot) - if(SLOT_BELT) + if(ITEM_SLOT_BELT) body_parts_covered = GROIN|LEGS - if(SLOT_WEAR_SUIT) + if(ITEM_SLOT_OCLOTHING) body_parts_covered = CHEST|GROIN|LEGS - if(SLOT_HEAD) + if(ITEM_SLOT_HEAD) body_parts_covered = HEAD flags_inv = HIDEHAIR diff --git a/code/modules/research/designs/limbgrower_designs.dm b/code/modules/research/designs/limbgrower_designs.dm index 80177c29ac..f0e162b24f 100644 --- a/code/modules/research/designs/limbgrower_designs.dm +++ b/code/modules/research/designs/limbgrower_designs.dm @@ -2,6 +2,18 @@ //////////Limb Grower Designs /////// ///////////////////////////////////// + +/datum/design/chestmob + name = "Synthetic Humanoid Framework Chest" + id = "chestmob" + // Mobs don't make very good roundstart icons + research_icon = 'icons/mob/human_parts.dmi' + research_icon_state = "default_human_chest" + build_type = LIMBGROWER + reagents_list = list(/datum/reagent/medicine/synthflesh = 100, /datum/reagent/blood = BLOOD_VOLUME_SURVIVE) + build_path = /mob/living/carbon/human/chestonly + category = list("initial","human","lizard","fly","insect","plasmaman","mammal","xeno") + /datum/design/leftarm name = "Left Arm" id = "leftarm" diff --git a/code/modules/research/xenobiology/crossbreeding/_clothing.dm b/code/modules/research/xenobiology/crossbreeding/_clothing.dm index 1ac09652b5..b30a53c27d 100644 --- a/code/modules/research/xenobiology/crossbreeding/_clothing.dm +++ b/code/modules/research/xenobiology/crossbreeding/_clothing.dm @@ -19,7 +19,7 @@ Slimecrossing Armor /obj/item/clothing/mask/nobreath/equipped(mob/living/carbon/human/user, slot) . = ..() - if(slot == SLOT_WEAR_MASK) + if(slot == ITEM_SLOT_MASK) ADD_TRAIT(user, TRAIT_NOBREATH, "breathmask_[REF(src)]") user.failed_last_breath = FALSE user.clear_alert("not_enough_oxy") @@ -39,7 +39,7 @@ Slimecrossing Armor var/glasses_color = "#FFFFFF" /obj/item/clothing/glasses/prism_glasses/item_action_slot_check(slot) - if(slot == SLOT_GLASSES) + if(slot == ITEM_SLOT_EYES) return TRUE /obj/structure/light_prism @@ -111,7 +111,7 @@ Slimecrossing Armor /obj/item/clothing/head/peaceflower/equipped(mob/living/carbon/human/user, slot) . = ..() - if(slot == SLOT_HEAD) + if(slot == ITEM_SLOT_HEAD) ADD_TRAIT(user, TRAIT_PACIFISM, "peaceflower_[REF(src)]") /obj/item/clothing/head/peaceflower/dropped(mob/living/carbon/human/user) diff --git a/code/modules/research/xenobiology/crossbreeding/regenerative.dm b/code/modules/research/xenobiology/crossbreeding/regenerative.dm index 87b90c7c97..2b5977d384 100644 --- a/code/modules/research/xenobiology/crossbreeding/regenerative.dm +++ b/code/modules/research/xenobiology/crossbreeding/regenerative.dm @@ -127,10 +127,10 @@ Regenerative extracts: /obj/item/slimecross/regenerative/darkpurple/core_effect(mob/living/target, mob/user) var/equipped = 0 - equipped += target.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/purple(null), SLOT_SHOES) - equipped += target.equip_to_slot_or_del(new /obj/item/clothing/under/color/lightpurple(null), SLOT_W_UNIFORM) - equipped += target.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/purple(null), SLOT_GLOVES) - equipped += target.equip_to_slot_or_del(new /obj/item/clothing/head/soft/purple(null), SLOT_HEAD) + equipped += target.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/purple(null), ITEM_SLOT_FEET) + equipped += target.equip_to_slot_or_del(new /obj/item/clothing/under/color/lightpurple(null), ITEM_SLOT_ICLOTHING) + equipped += target.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/purple(null), ITEM_SLOT_GLOVES) + equipped += target.equip_to_slot_or_del(new /obj/item/clothing/head/soft/purple(null), ITEM_SLOT_HEAD) if(equipped > 0) target.visible_message("The milky goo congeals into clothing!") @@ -142,13 +142,13 @@ Regenerative extracts: return var/mob/living/carbon/human/H = target var/fireproofed = FALSE - if(H.get_item_by_slot(SLOT_WEAR_SUIT)) + if(H.get_item_by_slot(ITEM_SLOT_OCLOTHING)) fireproofed = TRUE - var/obj/item/clothing/C = H.get_item_by_slot(SLOT_WEAR_SUIT) + var/obj/item/clothing/C = H.get_item_by_slot(ITEM_SLOT_OCLOTHING) fireproof(C) - if(H.get_item_by_slot(SLOT_HEAD)) + if(H.get_item_by_slot(ITEM_SLOT_HEAD)) fireproofed = TRUE - var/obj/item/clothing/C = H.get_item_by_slot(SLOT_HEAD) + var/obj/item/clothing/C = H.get_item_by_slot(ITEM_SLOT_HEAD) fireproof(C) if(fireproofed) target.visible_message("Some of [target]'s clothing gets coated in the goo, and turns blue!") diff --git a/code/modules/spells/spell_types/lichdom.dm b/code/modules/spells/spell_types/lichdom.dm index fbe7a0ea40..bf6051c87c 100644 --- a/code/modules/spells/spell_types/lichdom.dm +++ b/code/modules/spells/spell_types/lichdom.dm @@ -63,9 +63,9 @@ H.dropItemToGround(H.w_uniform) H.dropItemToGround(H.wear_suit) H.dropItemToGround(H.head) - H.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/black(H), SLOT_WEAR_SUIT) - H.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/black(H), SLOT_HEAD) - H.equip_to_slot_or_del(new /obj/item/clothing/under/color/black(H), SLOT_W_UNIFORM) + H.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/black(H), ITEM_SLOT_OCLOTHING) + H.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/black(H), ITEM_SLOT_HEAD) + H.equip_to_slot_or_del(new /obj/item/clothing/under/color/black(H), ITEM_SLOT_ICLOTHING) // you only get one phylactery. M.mind.RemoveSpell(src) @@ -132,10 +132,10 @@ var/mob/old_body = mind.current var/mob/living/carbon/human/lich = new(item_turf) - lich.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal/magic(lich), SLOT_SHOES) - lich.equip_to_slot_or_del(new /obj/item/clothing/under/color/black(lich), SLOT_W_UNIFORM) - lich.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/black(lich), SLOT_WEAR_SUIT) - lich.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/black(lich), SLOT_HEAD) + lich.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal/magic(lich), ITEM_SLOT_FEET) + lich.equip_to_slot_or_del(new /obj/item/clothing/under/color/black(lich), ITEM_SLOT_ICLOTHING) + lich.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/black(lich), ITEM_SLOT_OCLOTHING) + lich.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/black(lich), ITEM_SLOT_HEAD) lich.real_name = mind.name mind.transfer_to(lich) diff --git a/code/modules/unit_tests/outfit_sanity.dm b/code/modules/unit_tests/outfit_sanity.dm index 57ce22434e..e084069cf7 100644 --- a/code/modules/unit_tests/outfit_sanity.dm +++ b/code/modules/unit_tests/outfit_sanity.dm @@ -26,13 +26,19 @@ CHECK_OUTFIT_SLOT(head, ITEM_SLOT_HEAD) CHECK_OUTFIT_SLOT(mask, ITEM_SLOT_MASK) CHECK_OUTFIT_SLOT(neck, ITEM_SLOT_NECK) - CHECK_OUTFIT_SLOT(ears, ITEM_SLOT_EARS) + CHECK_OUTFIT_SLOT(ears, ITEM_SLOT_EARS_LEFT) CHECK_OUTFIT_SLOT(glasses, ITEM_SLOT_EYES) CHECK_OUTFIT_SLOT(id, ITEM_SLOT_ID) CHECK_OUTFIT_SLOT(suit_store, ITEM_SLOT_SUITSTORE) CHECK_OUTFIT_SLOT(l_pocket, ITEM_SLOT_LPOCKET) CHECK_OUTFIT_SLOT(r_pocket, ITEM_SLOT_RPOCKET) + CHECK_OUTFIT_SLOT(underwear, ITEM_SLOT_UNDERWEAR) + CHECK_OUTFIT_SLOT(shirt, ITEM_SLOT_SHIRT) + CHECK_OUTFIT_SLOT(socks, ITEM_SLOT_SOCKS) + CHECK_OUTFIT_SLOT(wrists, ITEM_SLOT_WRISTS) + CHECK_OUTFIT_SLOT(ears_extra, ITEM_SLOT_EARS_RIGHT) + if (outfit.backpack_contents || outfit.box) var/list/backpack_contents = outfit.backpack_contents?.Copy() if (outfit.box) diff --git a/code/modules/vehicles/scooter.dm b/code/modules/vehicles/scooter.dm index 3e0e71446d..d4a87a0f1e 100644 --- a/code/modules/vehicles/scooter.dm +++ b/code/modules/vehicles/scooter.dm @@ -102,7 +102,7 @@ var/atom/throw_target = get_edge_target_turf(H, pick(GLOB.cardinals)) unbuckle_mob(H) H.throw_at(throw_target, 3, 2) - var/head_slot = H.get_item_by_slot(SLOT_HEAD) + var/head_slot = H.get_item_by_slot(ITEM_SLOT_HEAD) if(!head_slot || !(istype(head_slot,/obj/item/clothing/head/helmet) || istype(head_slot,/obj/item/clothing/head/hardhat))) H.adjustOrganLoss(ORGAN_SLOT_BRAIN, 5) H.updatehealth() @@ -281,7 +281,7 @@ H.throw_at(throw_target, 4, 3) H.DefaultCombatKnockdown(30) H.adjustStaminaLoss(30) - var/head_slot = H.get_item_by_slot(SLOT_HEAD) + var/head_slot = H.get_item_by_slot(ITEM_SLOT_HEAD) if(!head_slot || !(istype(head_slot,/obj/item/clothing/head/helmet) || istype(head_slot,/obj/item/clothing/head/hardhat))) H.adjustOrganLoss(ORGAN_SLOT_BRAIN, 1) H.updatehealth() diff --git a/html/changelogs/AutoChangeLog-pr-15495.yml b/html/changelogs/AutoChangeLog-pr-15495.yml new file mode 100644 index 0000000000..f9a025c584 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-15495.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - rscadd: "Configurable weekly high-chaos days" diff --git a/html/changelogs/AutoChangeLog-pr-15503.yml b/html/changelogs/AutoChangeLog-pr-15503.yml new file mode 100644 index 0000000000..96dc78ff65 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-15503.yml @@ -0,0 +1,4 @@ +author: "Arturlang" +delete-after: True +changes: + - rscadd: "The limbgrower can make human chest parts that you can build onto into a person." diff --git a/html/changelogs/AutoChangeLog-pr-15505.yml b/html/changelogs/AutoChangeLog-pr-15505.yml new file mode 100644 index 0000000000..2c5f1ae47c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-15505.yml @@ -0,0 +1,4 @@ +author: "SandPoot and Crowbar764" +delete-after: True +changes: + - rscadd: "TGUI for the player playtimes menu." diff --git a/html/changelogs/AutoChangeLog-pr-15522.yml b/html/changelogs/AutoChangeLog-pr-15522.yml new file mode 100644 index 0000000000..40705aba5f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-15522.yml @@ -0,0 +1,4 @@ +author: "bunny232" +delete-after: True +changes: + - rscadd: "Cold weather gear can now provide insulation against temperatures of up to 57C (330K)" diff --git a/html/changelogs/AutoChangeLog-pr-15526.yml b/html/changelogs/AutoChangeLog-pr-15526.yml new file mode 100644 index 0000000000..60d49802c0 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-15526.yml @@ -0,0 +1,5 @@ +author: "timothyteakettle" +delete-after: True +changes: + - rscadd: "adds a cartridge for the bartender's PDA that lets them search drink recipes" + - rscadd: "updates chemist cartridge to be able to search all chemical recipes" diff --git a/html/changelogs/AutoChangeLog-pr-15528.yml b/html/changelogs/AutoChangeLog-pr-15528.yml new file mode 100644 index 0000000000..5b22ff00dc --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-15528.yml @@ -0,0 +1,4 @@ +author: "SandPoot" +delete-after: True +changes: + - refactor: "Kills off SLOT_ in favor of ITEM_SLOT_" diff --git a/html/changelogs/AutoChangeLog-pr-213.yml b/html/changelogs/AutoChangeLog-pr-213.yml new file mode 100644 index 0000000000..8c1b71aec3 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-213.yml @@ -0,0 +1,22 @@ +author: radar651 +delete-after: true +changes: + - rscadd: Added several .22 caliber weapons, .22 Revolver, .22 Pistol and Varmint + Rifle + - rscadd: Added a unique 9mm pistol with a skin (MARIA) + - rscadd: Added a hunting rifle that uses 7.62 ammo and stripper clips. This can + be sawn off like the double barrel + - rscadd: a dedicated swan off shotgun + - rscadd: butterfly knife + - rscadd: switchblade to the goodies pack + - rscadd: M2A1 .50 Caliber Heavy Machine gun (ADMIN SPAWNABLE ONLY) + - rscadd: Civilian energy gun, which can be upgraded to shoot lethal with the right + parts + - rscadd: The double barrel shotgun to the goodies pack + - rscadd: M1911s to be ordered from cargo + - rscadd: Enforcer pistols to be ordered from cargo + - rscadd: a lot of weapon recipes as most guns bought through goodies have to be + assembled. + - bugfix: the improvised shotgun sprite disappearing + - imageadd: updated several old sprites including the brush gun and M1911 sprites + with the desert rose variant. The original sprites still exist just remain unused. diff --git a/html/changelogs/archive/2022-02.yml b/html/changelogs/archive/2022-02.yml index b2a8d66ec2..07a15034e0 100644 --- a/html/changelogs/archive/2022-02.yml +++ b/html/changelogs/archive/2022-02.yml @@ -321,3 +321,16 @@ not being able to spawn with aviators due to a spelling mistake - imageadd: A crap ton of icons for the CBRN and MOPP gear, including gloves, suits, boots, mask and tanks. +2022-02-27: + BongaTheProto: + - rscadd: Added new cuminflation mechanics + - rscadd: Added nipfuck and thighfuck verbs + - code_imp: Fixed a couple possible null runtimes and modularizes some stuff + - bugfix: Fixed the (horrible) belly inflation mechanics + - imageadd: added new crayon/spraycan drawings + - tweak: Now your roundstart genital size will affect how much fluids you produce + frontline03: + - rscadd: Added power cables to Tcomms SMES + Putnam3145: + - balance: Now slightly easier to get 50,000 points with toxins (50,000 point baseline + changed from 200 light range to 175) diff --git a/icons/effects/crayondecal.dmi b/icons/effects/crayondecal.dmi index 8c42e6610c..c923eff233 100644 Binary files a/icons/effects/crayondecal.dmi and b/icons/effects/crayondecal.dmi differ diff --git a/icons/obj/pda.dmi b/icons/obj/pda.dmi index 8992f4a4a1..f968d15860 100644 Binary files a/icons/obj/pda.dmi and b/icons/obj/pda.dmi differ diff --git a/modular_citadel/code/datums/components/souldeath.dm b/modular_citadel/code/datums/components/souldeath.dm index ab45210a46..01e6acb795 100644 --- a/modular_citadel/code/datums/components/souldeath.dm +++ b/modular_citadel/code/datums/components/souldeath.dm @@ -32,4 +32,4 @@ playsound(wearer, 'sound/misc/souldeath.ogg', 100, FALSE) /datum/component/souldeath/neck - equip_slot = SLOT_NECK + equip_slot = ITEM_SLOT_NECK diff --git a/modular_citadel/code/modules/client/loadout/__donator.dm b/modular_citadel/code/modules/client/loadout/__donator.dm index f2c7b398cf..fe53574470 100644 --- a/modular_citadel/code/modules/client/loadout/__donator.dm +++ b/modular_citadel/code/modules/client/loadout/__donator.dm @@ -2,289 +2,289 @@ /datum/gear/donator name = "IF YOU SEE THIS, PING A CODER RIGHT NOW!" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/bikehorn/golden category = LOADOUT_CATEGORY_DONATOR ckeywhitelist = list("This entry should never appear with this variable set.") //If it does, then that means somebody fucked up the whitelist system pretty hard /datum/gear/donator/pet name = "Pet Beacon" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/choice_beacon/pet ckeywhitelist = list() donator_group_id = DONATOR_GROUP_TIER_1 // can be accessed by all donators /datum/gear/donator/carpet name = "Carpet Beacon" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/choice_beacon/box/carpet ckeywhitelist = list() donator_group_id = DONATOR_GROUP_TIER_1 /datum/gear/donator/chameleon_bedsheet name = "Chameleon Bedsheet" - slot = SLOT_NECK + slot = ITEM_SLOT_NECK path = /obj/item/bedsheet/chameleon ckeywhitelist = list() donator_group_id = DONATOR_GROUP_TIER_1 /datum/gear/donator/donortestingbikehorn name = "Donor item testing bikehorn" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/bikehorn geargroupID = list("DONORTEST") //This is a list mainly for the sake of testing, but geargroupID works just fine with ordinary strings /datum/gear/donator/kevhorn name = "Airhorn" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/bikehorn/airhorn ckeywhitelist = list("kevinz000") /datum/gear/donator/kiaracloak name = "Kiara's cloak" - slot = SLOT_NECK + slot = ITEM_SLOT_NECK path = /obj/item/clothing/neck/cloak/inferno ckeywhitelist = list("inferno707") /datum/gear/donator/kiaracollar name = "Kiara's collar" - slot = SLOT_NECK + slot = ITEM_SLOT_NECK path = /obj/item/clothing/neck/petcollar/inferno ckeywhitelist = list("inferno707") /datum/gear/donator/kiaramedal name = "Insignia of Steele" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/clothing/accessory/medal/steele ckeywhitelist = list("inferno707") /datum/gear/donator/hheart name = "The Hollow Heart" - slot = SLOT_WEAR_MASK + slot = ITEM_SLOT_MASK path = /obj/item/clothing/mask/hheart ckeywhitelist = list("inferno707") /datum/gear/donator/engravedzippo name = "Engraved zippo" - slot = SLOT_HANDS + slot = ITEM_SLOT_HANDS path = /obj/item/lighter/gold ckeywhitelist = list("dirtyoldharry") /datum/gear/donator/geisha name = "Geisha suit" - slot = SLOT_W_UNIFORM + slot = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/under/costume/geisha ckeywhitelist = list("atiefling") /datum/gear/donator/specialscarf name = "Special scarf" - slot = SLOT_NECK + slot = ITEM_SLOT_NECK path = /obj/item/clothing/neck/scarf/zomb ckeywhitelist = list("zombierobin") /datum/gear/donator/redmadcoat name = "The Mad's labcoat" - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/suit/toggle/labcoat/mad/red ckeywhitelist = list("zombierobin") /datum/gear/donator/santahat name = "Santa hat" - slot = SLOT_HEAD + slot = ITEM_SLOT_HEAD path = /obj/item/clothing/head/santa/fluff ckeywhitelist = list("illotafv") /datum/gear/donator/reindeerhat name = "Reindeer hat" - slot = SLOT_HEAD + slot = ITEM_SLOT_HEAD path = /obj/item/clothing/head/hardhat/reindeer/fluff ckeywhitelist = list("illotafv") /datum/gear/donator/treeplushie name = "Christmas tree plushie" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/toy/plush/tree ckeywhitelist = list("illotafv") /datum/gear/donator/santaoutfit name = "Santa costume" - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/suit/space/santa/fluff ckeywhitelist = list("illotafv") /datum/gear/donator/treecloak name = "Christmas tree cloak" - slot = SLOT_NECK + slot = ITEM_SLOT_NECK path = /obj/item/clothing/neck/cloak/festive ckeywhitelist = list("illotafv") /datum/gear/donator/carrotplush name = "Carrot plushie" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/toy/plush/carrot ckeywhitelist = list("improvedname") /datum/gear/donator/carrotcloak name = "Carrot cloak" - slot = SLOT_NECK + slot = ITEM_SLOT_NECK path = /obj/item/clothing/neck/cloak/carrot ckeywhitelist = list("improvedname") /datum/gear/donator/albortorosamask name = "Alborto Rosa mask" - slot = SLOT_WEAR_MASK + slot = ITEM_SLOT_MASK path = /obj/item/clothing/mask/luchador/zigfie ckeywhitelist = list("zigfie") /datum/gear/donator/mankini name = "Mankini" - slot = SLOT_W_UNIFORM + slot = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/under/misc/stripper/mankini ckeywhitelist = list("zigfie") /datum/gear/donator/pinkshoes name = "Pink shoes" - slot = SLOT_SHOES + slot = ITEM_SLOT_FEET path = /obj/item/clothing/shoes/sneakers/pink ckeywhitelist = list("zigfie") /datum/gear/donator/reecesgreatcoat name = "Reece's Great Coat" - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/suit/trenchcoat/green ckeywhitelist = list("geemiesif") /datum/gear/donator/russianflask name = "Russian flask" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/reagent_containers/food/drinks/flask/russian cost = 2 ckeywhitelist = list("slomka") /datum/gear/donator/stalkermask name = "S.T.A.L.K.E.R. mask" - slot = SLOT_WEAR_MASK + slot = ITEM_SLOT_MASK path = /obj/item/clothing/mask/gas/stalker ckeywhitelist = list("slomka") /datum/gear/donator/stripedcollar name = "Striped collar" - slot = SLOT_NECK + slot = ITEM_SLOT_NECK path = /obj/item/clothing/neck/petcollar/stripe ckeywhitelist = list("jademanique") /datum/gear/donator/performersoutfit name = "Bluish performer's outfit" - slot = SLOT_W_UNIFORM + slot = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/under/costume/singer/yellow/custom ckeywhitelist = list("killer402402") /datum/gear/donator/vermillion name = "Vermillion clothing" - slot = SLOT_W_UNIFORM + slot = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/suit/vermillion ckeywhitelist = list("fractious") /datum/gear/donator/AM4B name = "Foam Force AM4-B" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/gun/ballistic/automatic/AM4B ckeywhitelist = list("zeronetalpha") /datum/gear/donator/carrotsatchel name = "Carrot Satchel" - slot = SLOT_HANDS + slot = ITEM_SLOT_HANDS path = /obj/item/storage/backpack/satchel/carrot ckeywhitelist = list("improvedname") /datum/gear/donator/naomisweater name = "worn black sweater" - slot = SLOT_W_UNIFORM + slot = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/under/sweater/black/naomi ckeywhitelist = list("technicalmagi") /datum/gear/donator/naomicollar name = "worn pet collar" - slot = SLOT_NECK + slot = ITEM_SLOT_NECK path = /obj/item/clothing/neck/petcollar/naomi ckeywhitelist = list("technicalmagi") /datum/gear/donator/gladiator name = "Gladiator Armor" - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/under/costume/gladiator ckeywhitelist = list("aroche") /datum/gear/donator/bloodredtie name = "Blood Red Tie" - slot = SLOT_NECK + slot = ITEM_SLOT_NECK path = /obj/item/clothing/neck/tie/bloodred ckeywhitelist = list("kyutness") /datum/gear/donator/puffydress name = "Puffy Dress" - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/suit/puffydress ckeywhitelist = list("stallingratt") /datum/gear/donator/labredblack name = "Black and Red Coat" - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/suit/toggle/labcoat/labredblack ckeywhitelist = list("blakeryan", "durandalphor") /datum/gear/donator/torisword name = "Rainbow Zweihander" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/dualsaber/hypereutactic/toy/rainbow ckeywhitelist = list("annoymous35") /datum/gear/donator/darksabre name = "Dark Sabre" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/toy/darksabre ckeywhitelist = list("inferno707") /datum/gear/donator/darksabresheath name = "Dark Sabre Sheath" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/storage/belt/sabre/darksabre ckeywhitelist = list("inferno707") /datum/gear/donator/toriball name = "Rainbow Tennis Ball" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/toy/fluff/tennis_poly/tri/squeak/rainbow ckeywhitelist = list("annoymous35") /datum/gear/donator/izzyball name = "Katlin's Ball" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/toy/fluff/tennis_poly/tri/squeak/izzy ckeywhitelist = list("izzyinbox") /datum/gear/donator/cloak name = "Green Cloak" - slot = SLOT_NECK + slot = ITEM_SLOT_NECK path = /obj/item/clothing/neck/cloak/green ckeywhitelist = list("killer402402") /datum/gear/donator/steelflask name = "Steel Flask" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/reagent_containers/food/drinks/flask/steel cost = 2 ckeywhitelist = list("nik707") /datum/gear/donator/paperhat name = "Paper Hat" - slot = SLOT_HEAD + slot = ITEM_SLOT_HEAD path = /obj/item/clothing/head/paperhat ckeywhitelist = list("kered2") /datum/gear/donator/cloakce name = "Polychromic CE Cloak" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/clothing/neck/cloak/polychromic/polyce ckeywhitelist = list("worksbythesea", "blakeryan") loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC @@ -292,290 +292,290 @@ /datum/gear/donator/ssk name = "Stun Sword Kit" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/ssword_kit ckeywhitelist = list("phillip458") /datum/gear/donator/techcoat name = "Techomancers Labcoat" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/clothing/suit/toggle/labcoat/mad/techcoat ckeywhitelist = list("wilchen") /datum/gear/donator/leechjar name = "Jar of Leeches" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/custom/leechjar ckeywhitelist = list("sgtryder") /datum/gear/donator/darkarmor name = "Dark Armor" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/clothing/suit/armor/vest/darkcarapace ckeywhitelist = list("inferno707") /datum/gear/donator/devilwings name = "Strange Wings" - slot = SLOT_NECK + slot = ITEM_SLOT_NECK path = /obj/item/clothing/neck/devilwings ckeywhitelist = list("kitsun") /datum/gear/donator/flagcape name = "US Flag Cape" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/clothing/neck/flagcape ckeywhitelist = list("darnchacha") /datum/gear/donator/luckyjack name = "Lucky Jackboots" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/clothing/shoes/lucky ckeywhitelist = list("donaldtrumpthecommunist") /datum/gear/donator/raiqbawks name = "Miami Boombox" - slot = SLOT_HANDS + slot = ITEM_SLOT_HANDS cost = 2 path = /obj/item/boombox/raiq ckeywhitelist = list("chefferz") /datum/gear/donator/m41 name = "Toy M41" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/toy/gun/m41 ckeywhitelist = list("thalverscholen") /datum/gear/donator/Divine_robes name = "Divine robes" - slot = SLOT_W_UNIFORM + slot = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/under/custom/lunasune ckeywhitelist = list("invader4352") /datum/gear/donator/gothcoat name = "Goth Coat" - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/suit/gothcoat ckeywhitelist = list("norko") /datum/gear/donator/corgisuit name = "Corgi Suit" - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/suit/hooded/ian_costume ckeywhitelist = list("cathodetherobot") /datum/gear/donator/sharkcloth name = "Leon's Skimpy Outfit" - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/under/custom/leoskimpy ckeywhitelist = list("spectrosis") /datum/gear/donator/mimemask name = "Mime Mask" - slot = SLOT_WEAR_MASK + slot = ITEM_SLOT_MASK path = /obj/item/clothing/mask/gas/mime ckeywhitelist = list("pireamaineach") /datum/gear/donator/mimeoveralls name = "Mime's Overalls" - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/under/custom/mimeoveralls ckeywhitelist = list("pireamaineach") /datum/gear/donator/soulneck name = "Soul Necklace" - slot = SLOT_NECK + slot = ITEM_SLOT_NECK path = /obj/item/clothing/neck/undertale ckeywhitelist = list("twilightic") /datum/gear/donator/frenchberet name = "French Beret" - slot = SLOT_HEAD + slot = ITEM_SLOT_HEAD path = /obj/item/clothing/head/frenchberet ckeywhitelist = list("notazoltan") /datum/gear/donator/zuliecloak name = "Project: Zul-E" - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/suit/hooded/cloak/zuliecloak ckeywhitelist = list("asky") /datum/gear/donator/blackredgold name = "Black, Red, and Gold Coat" - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/suit/blackredgold ckeywhitelist = list("ttbnc") /datum/gear/donator/fritzplush name = "Fritz Plushie" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/toy/plush/mammal/dog/fritz ckeywhitelist = list("analwerewolf") /datum/gear/donator/kimono name = "Kimono" - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/suit/kimono ckeywhitelist = list("sfox63") /datum/gear/donator/commjacket name = "Dusty Commisar's Cloak" - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/suit/commjacket ckeywhitelist = list("sadisticbatter") /datum/gear/donator/mw2_russian_para name = "Russian Paratrooper Jumper" - slot = SLOT_W_UNIFORM + slot = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/under/custom/mw2_russian_para ckeywhitelist = list("investigator77") /datum/gear/donator/longblackgloves name = "Luna's Gauntlets" - slot = SLOT_GLOVES + slot = ITEM_SLOT_GLOVES path = /obj/item/clothing/gloves/longblackgloves ckeywhitelist = list("bigmanclancy") /datum/gear/donator/trendy_fit name = "Trendy Fit" - slot = SLOT_W_UNIFORM + slot = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/under/custom/trendy_fit ckeywhitelist = list("midgetdragon") /datum/gear/donator/singery name = "Yellow Performer Outfit" - slot = SLOT_W_UNIFORM + slot = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/under/costume/singer/yellow ckeywhitelist = list("maxlynchy") /datum/gear/donator/csheet name = "NT Bedsheet" - slot = SLOT_NECK + slot = ITEM_SLOT_NECK path = /obj/item/bedsheet/captain ckeywhitelist = list("tikibomb") /datum/gear/donator/borgplush name = "Robot Plush" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/toy/plush/borgplushie ckeywhitelist = list("nicholaiavenicci") /datum/gear/donator/donorberet name = "Atmos Beret" - slot = SLOT_HEAD + slot = ITEM_SLOT_HEAD path = /obj/item/clothing/head/blueberet ckeywhitelist = list("foxystalin") /datum/gear/donator/donorgoggles name = "Flight Goggles" - slot = SLOT_HEAD + slot = ITEM_SLOT_HEAD path = /obj/item/clothing/head/flight ckeywhitelist = list("maxlynchy") /datum/gear/donator/onionneck name = "Onion Necklace" - slot = SLOT_NECK + slot = ITEM_SLOT_NECK path = /obj/item/clothing/neck/necklace/onion ckeywhitelist = list("cdrcross") /datum/gear/donator/mikubikini name = "starlight singer bikini" - slot = SLOT_W_UNIFORM + slot = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/under/custom/mikubikini ckeywhitelist = list("grandvegeta") /datum/gear/donator/mikujacket name = "starlight singer jacket" - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/suit/mikujacket ckeywhitelist = list("grandvegeta") /datum/gear/donator/mikuhair name = "starlight singer hair" - slot = SLOT_W_UNIFORM + slot = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/head/mikuhair ckeywhitelist = list("grandvegeta") /datum/gear/donator/mikugloves name = "starlight singer gloves" - slot = SLOT_GLOVES + slot = ITEM_SLOT_GLOVES path = /obj/item/clothing/gloves/mikugloves ckeywhitelist = list("grandvegeta") /datum/gear/donator/mikuleggings name = "starlight singer leggings" - slot = SLOT_SHOES + slot = ITEM_SLOT_FEET path = /obj/item/clothing/shoes/sneakers/mikuleggings ckeywhitelist = list("grandvegeta") /datum/gear/donator/cosmos name = "cosmic space bedsheet" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/bedsheet/cosmos ckeywhitelist = list("grunnyyy") /datum/gear/donator/customskirt name = "custom atmos skirt" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/clothing/under/custom/customskirt ckeywhitelist = list("thakyz") /datum/gear/donator/hisakaki name = "halo" - slot = SLOT_HEAD + slot = ITEM_SLOT_HEAD path = /obj/item/clothing/head/halo ckeywhitelist = list("hisakaki") /datum/gear/donator/vest name = "vest and shirt" - slot = SLOT_W_UNIFORM + slot = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/under/custom/vest ckeywhitelist = list("maylowfox") /datum/gear/donator/exo name = "exo frame" - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/suit/custom/exo ckeywhitelist = list("jesterz7") /datum/gear/donator/choker name = "NT Choker" - slot = SLOT_NECK + slot = ITEM_SLOT_NECK path = /obj/item/clothing/neck/petcollar/donorchoker ckeywhitelist = list("trigillass") /datum/gear/donator/strangemask name = "Strange Metal Mask" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/clothing/mask/breath/mmask ckeywhitelist = list("sneka") /datum/gear/donator/smaiden name = "shrine maiden outfit" - slot = SLOT_W_UNIFORM + slot = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/under/smaiden ckeywhitelist = list("ultimarifox") /datum/gear/donator/mgasmask name = "Military Gas Mask" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/clothing/mask/gas/military ckeywhitelist = list("unclebourbon") /datum/gear/donator/clownmask name = "Clown Mask" - path = SLOT_WEAR_MASK + path = ITEM_SLOT_MASK path = /obj/item/clothing/mask/gas/clown_hat ckeywhitelist = list("djkouta") /datum/gear/donator/spacehoodie name = "Space Hoodie" - path = SLOT_WEAR_SUIT + path = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/suit/spacehoodie ckeywhitelist = list("bidlink2") /datum/gear/donator/pokerchips name = "pokerchip set" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/storage/box/pockerchips ckeywhitelist = list("greed2323") diff --git a/modular_citadel/code/modules/client/loadout/backpack.dm b/modular_citadel/code/modules/client/loadout/backpack.dm index 466ee50474..3824993009 100644 --- a/modular_citadel/code/modules/client/loadout/backpack.dm +++ b/modular_citadel/code/modules/client/loadout/backpack.dm @@ -1,7 +1,7 @@ /datum/gear/backpack category = LOADOUT_CATEGORY_BACKPACK subcategory = LOADOUT_SUBCATEGORY_BACKPACK_GENERAL - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK /datum/gear/backpack/plushbox name = "Plushie Choice Box" diff --git a/modular_citadel/code/modules/client/loadout/glasses.dm b/modular_citadel/code/modules/client/loadout/glasses.dm index f3b07657f4..fe44abc3de 100644 --- a/modular_citadel/code/modules/client/loadout/glasses.dm +++ b/modular_citadel/code/modules/client/loadout/glasses.dm @@ -1,6 +1,6 @@ /datum/gear/glasses category = LOADOUT_CATEGORY_GLASSES - slot = SLOT_GLASSES + slot = ITEM_SLOT_EYES /datum/gear/glasses/blindfold name = "Blindfold" diff --git a/modular_citadel/code/modules/client/loadout/gloves.dm b/modular_citadel/code/modules/client/loadout/gloves.dm index 529d733e05..0b87ec65e6 100644 --- a/modular_citadel/code/modules/client/loadout/gloves.dm +++ b/modular_citadel/code/modules/client/loadout/gloves.dm @@ -1,6 +1,6 @@ /datum/gear/gloves category = LOADOUT_CATEGORY_GLOVES - slot = SLOT_GLOVES + slot = ITEM_SLOT_GLOVES /datum/gear/gloves/fingerless name = "Fingerless Gloves" diff --git a/modular_citadel/code/modules/client/loadout/hands.dm b/modular_citadel/code/modules/client/loadout/hands.dm index eb496ed78c..5dbe8b33dd 100644 --- a/modular_citadel/code/modules/client/loadout/hands.dm +++ b/modular_citadel/code/modules/client/loadout/hands.dm @@ -1,6 +1,6 @@ /datum/gear/hands category = LOADOUT_CATEGORY_HANDS - slot = SLOT_HANDS + slot = ITEM_SLOT_HANDS /datum/gear/hands/cane name = "Cane" diff --git a/modular_citadel/code/modules/client/loadout/head.dm b/modular_citadel/code/modules/client/loadout/head.dm index 6d6c803ef1..f2a7ead5be 100644 --- a/modular_citadel/code/modules/client/loadout/head.dm +++ b/modular_citadel/code/modules/client/loadout/head.dm @@ -1,7 +1,7 @@ /datum/gear/head category = LOADOUT_CATEGORY_HEAD subcategory = LOADOUT_SUBCATEGORY_HEAD_GENERAL - slot = SLOT_HEAD + slot = ITEM_SLOT_HEAD /datum/gear/head/baseball name = "Ballcap" @@ -156,12 +156,12 @@ /*Commenting out Until next Christmas or made automatic /datum/gear/santahatr name = "Red Santa Hat" - category = SLOT_HEAD + category = ITEM_SLOT_HEAD path = /obj/item/clothing/head/christmashat /datum/gear/santahatg name = "Green Santa Hat" - category = SLOT_HEAD + category = ITEM_SLOT_HEAD path = /obj/item/clothing/head/christmashatg */ diff --git a/modular_citadel/code/modules/client/loadout/mask.dm b/modular_citadel/code/modules/client/loadout/mask.dm index 52e79884c2..16b47e60e7 100644 --- a/modular_citadel/code/modules/client/loadout/mask.dm +++ b/modular_citadel/code/modules/client/loadout/mask.dm @@ -1,6 +1,6 @@ /datum/gear/mask category = LOADOUT_CATEGORY_MASK - slot = SLOT_WEAR_MASK + slot = ITEM_SLOT_MASK /datum/gear/mask/balaclava name = "Balaclava" diff --git a/modular_citadel/code/modules/client/loadout/neck.dm b/modular_citadel/code/modules/client/loadout/neck.dm index 128285628a..b07ddf98db 100644 --- a/modular_citadel/code/modules/client/loadout/neck.dm +++ b/modular_citadel/code/modules/client/loadout/neck.dm @@ -1,7 +1,7 @@ /datum/gear/neck category = LOADOUT_CATEGORY_NECK subcategory = LOADOUT_SUBCATEGORY_NECK_GENERAL - slot = SLOT_NECK + slot = ITEM_SLOT_NECK /datum/gear/neck/bluetie name = "Blue tie" diff --git a/modular_citadel/code/modules/client/loadout/shoes.dm b/modular_citadel/code/modules/client/loadout/shoes.dm index e2b3916ae0..394c957f36 100644 --- a/modular_citadel/code/modules/client/loadout/shoes.dm +++ b/modular_citadel/code/modules/client/loadout/shoes.dm @@ -1,6 +1,6 @@ /datum/gear/shoes category = LOADOUT_CATEGORY_SHOES - slot = SLOT_SHOES + slot = ITEM_SLOT_FEET /datum/gear/shoes/laceup name = "Laceup shoes" diff --git a/modular_citadel/code/modules/client/loadout/suit.dm b/modular_citadel/code/modules/client/loadout/suit.dm index 066bcf14c7..1d4a29ef3e 100644 --- a/modular_citadel/code/modules/client/loadout/suit.dm +++ b/modular_citadel/code/modules/client/loadout/suit.dm @@ -1,7 +1,7 @@ /datum/gear/suit category = LOADOUT_CATEGORY_SUIT subcategory = LOADOUT_SUBCATEGORY_SUIT_GENERAL - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING /datum/gear/suit/poncho name = "Poncho" diff --git a/modular_citadel/code/modules/client/loadout/uniform.dm b/modular_citadel/code/modules/client/loadout/uniform.dm index 3e678d0e8d..4404d70bcd 100644 --- a/modular_citadel/code/modules/client/loadout/uniform.dm +++ b/modular_citadel/code/modules/client/loadout/uniform.dm @@ -1,7 +1,7 @@ /datum/gear/uniform category = LOADOUT_CATEGORY_UNIFORM subcategory = LOADOUT_SUBCATEGORY_UNIFORM_GENERAL - slot = SLOT_W_UNIFORM + slot = ITEM_SLOT_ICLOTHING /datum/gear/uniform/suit name = "Black suit" @@ -636,27 +636,27 @@ /*Commenting out Until next Christmas or made automatic /datum/gear/uniform/christmasmaler name = "Red Masculine Christmas Suit" - category = SLOT_W_UNIFORM + category = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/under/costume/christmas /datum/gear/uniform/christmasmaleg name = "Green Masculine Christmas Suit" - category = SLOT_W_UNIFORM + category = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/under/costume/christmas/green /datum/gear/uniform/christmasfemaler name = "Red Feminine Christmas Suit" - category = SLOT_W_UNIFORM + category = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/under/costume/christmas/croptop /datum/gear/uniform/christmasfemaleg name = "Green Feminine Christmas Suit" - category = SLOT_W_UNIFORM + category = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/under/costume/christmas/croptop/green /datum/gear/uniform/pinkstripper name = "Pink stripper outfit" - category = SLOT_W_UNIFORM + category = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/under/misc/stripper cost = 3 */ diff --git a/modular_citadel/code/modules/client/loadout/unlockable.dm b/modular_citadel/code/modules/client/loadout/unlockable.dm index 67e0c06d8c..9db05a66e9 100644 --- a/modular_citadel/code/modules/client/loadout/unlockable.dm +++ b/modular_citadel/code/modules/client/loadout/unlockable.dm @@ -1,6 +1,6 @@ /datum/gear/unlockable category = LOADOUT_CATEGORY_UNLOCKABLE - slot = SLOT_NECK + slot = ITEM_SLOT_NECK var/progress_required //what does our progress need to be to unlock it var/progress_key //what is the key used to retrieve existing progress for this unlockable diff --git a/modular_citadel/code/modules/custom_loadout/custom_items.dm b/modular_citadel/code/modules/custom_loadout/custom_items.dm index cb1b9728af..b8ee221e73 100644 --- a/modular_citadel/code/modules/custom_loadout/custom_items.dm +++ b/modular_citadel/code/modules/custom_loadout/custom_items.dm @@ -77,7 +77,7 @@ item_state = "gold_zippo" w_class = WEIGHT_CLASS_TINY flags_1 = CONDUCT_1 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT heat = 1500 resistance_flags = FIRE_PROOF light_color = LIGHT_COLOR_FIRE @@ -404,7 +404,7 @@ mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' hoodtype = /obj/item/clothing/head/hooded/cloakhood/zuliecloak body_parts_covered = CHEST|GROIN|ARMS - slot_flags = SLOT_WEAR_SUIT | ITEM_SLOT_NECK //it's a cloak. it's cosmetic. so why the hell not? what could possibly go wrong? + slot_flags = ITEM_SLOT_OCLOTHING | ITEM_SLOT_NECK //it's a cloak. it's cosmetic. so why the hell not? what could possibly go wrong? mutantrace_variation = NONE /obj/item/clothing/head/hooded/cloakhood/zuliecloak diff --git a/modular_citadel/code/modules/custom_loadout/load_to_mob.dm b/modular_citadel/code/modules/custom_loadout/load_to_mob.dm index 79f17afc74..1d28c7320c 100644 --- a/modular_citadel/code/modules/custom_loadout/load_to_mob.dm +++ b/modular_citadel/code/modules/custom_loadout/load_to_mob.dm @@ -52,7 +52,7 @@ loaded_atom.forceMove(T) continue var/obj/item/loaded = loaded_atom - var/obj/item/storage/S = H.get_item_by_slot(SLOT_BACK) + var/obj/item/storage/S = H.get_item_by_slot(ITEM_SLOT_BACK) if(istype(S)) SEND_SIGNAL(S, COMSIG_TRY_STORAGE_INSERT,loaded, TRUE, H) //Force it into their backpack continue diff --git a/modular_citadel/code/modules/eventmaps/Spookystation/JTGSZwork.dm b/modular_citadel/code/modules/eventmaps/Spookystation/JTGSZwork.dm index 918e704b19..6d492d6e62 100644 --- a/modular_citadel/code/modules/eventmaps/Spookystation/JTGSZwork.dm +++ b/modular_citadel/code/modules/eventmaps/Spookystation/JTGSZwork.dm @@ -1024,7 +1024,7 @@ GLOBAL_LIST_EMPTY(rain_sounds) lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' righthand_file = 'icons/mob/inhands/items_righthand.dmi' icon_state = "umbrella_closed" - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT force = 5 throwforce = 5 w_class = WEIGHT_CLASS_SMALL diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm index 537eb76a66..bc598e81e3 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm @@ -48,7 +48,7 @@ var/obj/item/W = M.head M.dropItemToGround(W, TRUE) var/hat = new /obj/item/clothing/head/hattip() - M.equip_to_slot(hat, SLOT_HEAD, 1, 1) + M.equip_to_slot(hat, ITEM_SLOT_HEAD, 1, 1) /datum/reagent/fermi/hatmium/on_mob_life(mob/living/carbon/human/M) diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm index a78092988e..ce27433c07 100644 --- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm +++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm @@ -548,6 +548,8 @@ FermiExplode = FALSE PurityMin = 0.2 + is_secret = TRUE + /datum/chemical_reaction/fermi/secretcatchem/New() //rand doesn't seem to work with n^-e OptimalTempMin += rand(-100, 100) diff --git a/modular_citadel/code/modules/reagents/objects/clothes.dm b/modular_citadel/code/modules/reagents/objects/clothes.dm index ab4d49c56f..b6391ba82d 100644 --- a/modular_citadel/code/modules/reagents/objects/clothes.dm +++ b/modular_citadel/code/modules/reagents/objects/clothes.dm @@ -37,7 +37,7 @@ /obj/item/clothing/head/hattip/equipped(mob/M, slot) . = ..() - if (slot == SLOT_HEAD) + if (slot == ITEM_SLOT_HEAD) RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech) else UnregisterSignal(M, COMSIG_MOB_SAY) diff --git a/modular_sand/code/datums/elements/holder_micro.dm b/modular_sand/code/datums/elements/holder_micro.dm index 1c4690a4e1..ba64cf6bef 100644 --- a/modular_sand/code/datums/elements/holder_micro.dm +++ b/modular_sand/code/datums/elements/holder_micro.dm @@ -27,7 +27,7 @@ var/obj/item/clothing/head/mob_holder/micro/holder = new(get_turf(source), source, worn_state, alt_worn, right_hand, left_hand, inv_slots) if(!holder) return - user.equip_to_slot(holder, SLOT_SHOES) + user.equip_to_slot(holder, ITEM_SLOT_FEET) return /datum/element/mob_holder/micro/proc/mob_try_pickup_micro(mob/living/carbon/source, mob/living/carbon/user) diff --git a/modular_sand/code/datums/interactions/lewd/_lewd.dm b/modular_sand/code/datums/interactions/lewd/_lewd.dm index 8e385cc9b6..dec07bfd5a 100644 --- a/modular_sand/code/datums/interactions/lewd/_lewd.dm +++ b/modular_sand/code/datums/interactions/lewd/_lewd.dm @@ -343,12 +343,12 @@ if(REQUIRE_ANY) return TRUE if(REQUIRE_EXPOSED) - if(C.get_item_by_slot(ITEM_SLOT_EARS)) + if(C.get_item_by_slot(ITEM_SLOT_EARS_LEFT) || C.get_item_by_slot(ITEM_SLOT_EARS_RIGHT)) return FALSE else return TRUE if(REQUIRE_UNEXPOSED) - if(!C.get_item_by_slot(ITEM_SLOT_EARS)) + if(!C.get_item_by_slot(ITEM_SLOT_EARS_LEFT || C.get_item_by_slot(ITEM_SLOT_EARS_RIGHT))) return FALSE else return TRUE @@ -365,12 +365,12 @@ if(REQUIRE_ANY) return TRUE if(REQUIRE_EXPOSED) - if(C.get_item_by_slot(ITEM_SLOT_EARS)) + if(C.get_item_by_slot(ITEM_SLOT_EARS_LEFT) || C.get_item_by_slot(ITEM_SLOT_EARS_RIGHT)) return FALSE else return TRUE if(REQUIRE_UNEXPOSED) - if(!C.get_item_by_slot(ITEM_SLOT_EARS)) + if(!C.get_item_by_slot(ITEM_SLOT_EARS_LEFT) || !C.get_item_by_slot(ITEM_SLOT_EARS_RIGHT)) return FALSE else return TRUE @@ -1460,7 +1460,7 @@ /mob/living/proc/do_lickfeet(mob/living/partner) var/message - if(partner.get_item_by_slot(SLOT_SHOES) != null) + if(partner.get_item_by_slot(ITEM_SLOT_FEET) != null) message = "licks \the [partner]'s [partner.get_shoes()]." else message = "licks \the [partner]'s [partner.has_feet() == 1 ? "foot" : "feet"]." @@ -1477,7 +1477,7 @@ var/t_His = partner.p_their() if(is_fucking(partner, GRINDING_FACE_WITH_FEET)) - if(get_item_by_slot(SLOT_SHOES) != null) + if(get_item_by_slot(ITEM_SLOT_FEET) != null) message = "[pick(list("grinds [u_His] [get_shoes()] into [partner]'s face.", "presses [u_His] footwear down hard on [partner]'s face.", "rubs off the dirt from [u_His] [get_shoes()] onto [partner]'s face."))]
    " @@ -1487,7 +1487,7 @@ "runs the soles of [u_His] bare feet against [partner]'s lips."))]
    " else if(is_fucking(partner, GRINDING_MOUTH_WITH_FEET)) - if(get_item_by_slot(SLOT_SHOES) != null) + if(get_item_by_slot(ITEM_SLOT_FEET) != null) message = "[pick(list("pulls [u_His] [get_shoes()] out of [partner]'s mouth and puts them on [t_His] face.", "slowly retracts [u_His] [get_shoes()] from [partner]'s mouth, putting them on [t_His] face instead."))]
    " else @@ -1497,7 +1497,7 @@ set_is_fucking(partner , GRINDING_FACE_WITH_FEET, null) else - if(get_item_by_slot(SLOT_SHOES) != null) + if(get_item_by_slot(ITEM_SLOT_FEET) != null) message = "[pick(list("plants [u_His] [get_shoes()] ontop of [partner]'s face.", "rests [u_His] [get_shoes()] on [partner]'s face and presses down hard.", "harshly places [u_His] [get_shoes()] atop [partner]'s face."))]
    " @@ -1526,7 +1526,7 @@ var/t_S = partner.p_s() if(is_fucking(partner, GRINDING_MOUTH_WITH_FEET)) - if(get_item_by_slot(SLOT_SHOES) != null) + if(get_item_by_slot(ITEM_SLOT_FEET) != null) message = "[pick(list("roughly shoves [u_His] [get_shoes()] deeper into [partner]'s mouth.", "harshly forces another inch of [u_His] [get_shoes()] into [partner]'s mouth.", "presses [u_His] weight down, [u_His] [get_shoes()] prying deeper into [partner]'s mouth."))]
    " @@ -1536,7 +1536,7 @@ "roughly grinds [u_His] feet on [partner]'s tongue."))]" else if(is_fucking(partner, GRINDING_FACE_WITH_FEET)) - if(get_item_by_slot(SLOT_SHOES) != null) + if(get_item_by_slot(ITEM_SLOT_FEET) != null) message = "[pick(list("decides to force [u_His] [get_shoes()] deep into [partner]'s mouth.", "pressed the tip of [u_His] [get_shoes()] against [partner]'s lips and shoves inwards."))]" else @@ -1546,7 +1546,7 @@ set_is_fucking(partner , GRINDING_MOUTH_WITH_FEET, null) else - if(get_item_by_slot(SLOT_SHOES) != null) + if(get_item_by_slot(ITEM_SLOT_FEET) != null) message = "[pick(list("readies themselves and in one swift motion, shoves [u_His] [get_shoes()] into [partner]'s mouth.", "grinds the tip of [u_His] [get_shoes()] against [partner]'s mouth before pushing themselves in."))]" else @@ -1712,7 +1712,7 @@ //partner.handle_post_sex(NORMAL_LUST, null, src) //don't think we need it fo dis one /mob/living/proc/get_shoes(var/singular = FALSE) - var/obj/A = get_item_by_slot(SLOT_SHOES) + var/obj/A = get_item_by_slot(ITEM_SLOT_FEET) if(A) var/txt = A.name if(findtext (A.name,"the")) @@ -1743,7 +1743,7 @@ moan() return FALSE -/mob/living/proc/get_unconsenting(var/extreme = FALSE, var/list/ignored_mobs, var/unholy = FALSE) +/mob/living/proc/get_unconsenting(var/extreme = FALSE, var/list/ignored_mobs) var/list/nope = list() nope += ignored_mobs for(var/mob/M in range(7, src)) @@ -1751,8 +1751,6 @@ var/client/cli = M.client if(!(cli.prefs.toggles & VERB_CONSENT)) //Note: This probably could do with a specific preference nope += M - else if(unholy && (cli.prefs.unholypref == "No")) - nope += M else if(extreme && (cli.prefs.extremepref == "No")) nope += M else diff --git a/modular_sand/code/datums/interactions/lewd/lewd_interactions.dm b/modular_sand/code/datums/interactions/lewd/lewd_interactions.dm index 6c4b3ef8a0..ec5e85be46 100644 --- a/modular_sand/code/datums/interactions/lewd/lewd_interactions.dm +++ b/modular_sand/code/datums/interactions/lewd/lewd_interactions.dm @@ -291,14 +291,6 @@ to_chat(user, "Your earsockets need to be unexposed.") return FALSE - if(unholy) - var/client/cli = user.client - if(cli) - if(cli.prefs.unholypref == "No") - if(!silent) - to_chat(user, "That's way too much for you.") - return FALSE - if(extreme) var/client/cli = user.client if(cli) @@ -535,14 +527,6 @@ to_chat(user, "Their clothes are in the way.") return FALSE - if(unholy) - var/client/cli = target.client - if(cli) - if(target.client.prefs.unholypref == "No") - if(!silent) - to_chat(user, "For some reason, you don't want to do this to [target].") - return FALSE - if(extreme) var/client/cli = target.client if(cli) @@ -587,7 +571,7 @@ var/client/ucli = LM.client if(cli.prefs.extremepref != "No") if(!ucli || (ucli.prefs.extremepref != "No")) - if(!get_item_by_slot(ITEM_SLOT_EARS)) + if(!get_item_by_slot(ITEM_SLOT_EARS_LEFT) && !get_item_by_slot(ITEM_SLOT_EARS_RIGHT)) if(has_ears()) dat += "...have unprotected ears." else diff --git a/modular_sand/code/game/objects/items/chrono_eraser.dm b/modular_sand/code/game/objects/items/chrono_eraser.dm index 6581f7b702..ccf784bc70 100644 --- a/modular_sand/code/game/objects/items/chrono_eraser.dm +++ b/modular_sand/code/game/objects/items/chrono_eraser.dm @@ -38,7 +38,7 @@ user.put_in_hands(PA) /obj/item/chrono_eraser/item_action_slot_check(slot, mob/user, datum/action/A) - if(slot == SLOT_BACK) + if(slot == ITEM_SLOT_BACK) return 1 /obj/item/gun/energy/chrono_gun diff --git a/modular_sand/code/game/objects/items/devices/radio/headset.dm b/modular_sand/code/game/objects/items/devices/radio/headset.dm index be43380c55..8e537a4037 100644 --- a/modular_sand/code/game/objects/items/devices/radio/headset.dm +++ b/modular_sand/code/game/objects/items/devices/radio/headset.dm @@ -10,6 +10,6 @@ /obj/item/radio/headset/talk_into(mob/living/M, message, channel, list/spans, datum/language/language, list/message_mods, direct = TRUE) if(!listening) return ITALICS | REDUCE_RANGE - if(radiosound) + if(on || (M || message) || !wires.is_cut(WIRE_TX) || M.IsVocal() || (language != /datum/language/signlanguage) || radiosound) playsound(M, radiosound, rand(20, 30), 0, 0, 1) . = ..() diff --git a/modular_sand/code/game/objects/items/devices/radio/radio.dm b/modular_sand/code/game/objects/items/devices/radio/radio.dm deleted file mode 100644 index c9d96d786b..0000000000 --- a/modular_sand/code/game/objects/items/devices/radio/radio.dm +++ /dev/null @@ -1,2 +0,0 @@ -/obj/item/radio/headset - slot_flags = ITEM_SLOT_EARS diff --git a/modular_sand/code/game/objects/items/fleshlight.dm b/modular_sand/code/game/objects/items/fleshlight.dm index 17f806e7e2..61edb301ed 100644 --- a/modular_sand/code/game/objects/items/fleshlight.dm +++ b/modular_sand/code/game/objects/items/fleshlight.dm @@ -144,7 +144,7 @@ if(!useable) to_chat(user, "It seems the device has failed or your partner is not wearing their device.") if(message) - var/mob/living/carbon/human/portal_target = ishuman(portalunderwear.loc) && portalunderwear.current_equipped_slot == SLOT_W_UNDERWEAR ? portalunderwear.loc : null + var/mob/living/carbon/human/portal_target = ishuman(portalunderwear.loc) && portalunderwear.current_equipped_slot == ITEM_SLOT_UNDERWEAR ? portalunderwear.loc : null if(portalunderwear.targetting == "vagina") V = portal_target.getorganslot(ORGAN_SLOT_VAGINA) if(portal_target && (portal_target?.client?.prefs.toggles & VERB_CONSENT || !portal_target.ckey)) @@ -197,7 +197,7 @@ useable = FALSE return if(H) //if the portal panties are on someone. - if(portalunderwear.current_equipped_slot != SLOT_W_UNDERWEAR) + if(portalunderwear.current_equipped_slot != ITEM_SLOT_UNDERWEAR) useable = FALSE return @@ -296,7 +296,7 @@ /obj/item/clothing/underwear/briefs/panties/portalpanties/equipped(mob/user, slot) . = ..() switch(slot) - if(SLOT_W_UNDERWEAR) + if(ITEM_SLOT_UNDERWEAR) if(!portallight) audible_message("[icon2html(src, hearers(src))] *beep* *beep* *beep*") playsound(src, 'sound/machines/triple_beep.ogg', ASSEMBLY_BEEP_VOLUME, TRUE) diff --git a/modular_sand/code/game/objects/items/lewd_items/leash.dm b/modular_sand/code/game/objects/items/lewd_items/leash.dm index 8aa8864b2b..6e788a5593 100644 --- a/modular_sand/code/game/objects/items/lewd_items/leash.dm +++ b/modular_sand/code/game/objects/items/lewd_items/leash.dm @@ -92,7 +92,7 @@ Icons, maybe? if(C.has_status_effect(/datum/status_effect/leash_pet)) //If the pet is already leashed, do not leash them. For the love of god. to_chat(user, "[C] has already been leashed.") return - 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)) + if(istype(C.get_item_by_slot(ITEM_SLOT_NECK), /obj/item/clothing/neck/petcollar) || istype(C.get_item_by_slot(ITEM_SLOT_NECK), /obj/item/electropack/shockcollar)) var/leashtime = 50 if(C.handcuffed) leashtime = 5 @@ -124,7 +124,7 @@ Icons, maybe? sleep(2) //Check every other tick if(leash_pet == "null") //No pet, break loop return - if(!(leash_pet.get_item_by_slot(SLOT_NECK))) //The pet has slipped their collar and is not the pet anymore. + if(!(leash_pet.get_item_by_slot(ITEM_SLOT_NECK))) //The pet has slipped their collar and is not the pet anymore. for(var/mob/viewing in viewers(user, null)) viewing.show_message("[leash_pet] has slipped out of their collar!!", 1) to_chat(leash_pet, "You have slipped out of your collar!") @@ -388,7 +388,7 @@ Icons, maybe? addtimer(CALLBACK(src, .proc/drop_effects, user, silent), 1) /obj/item/leash/proc/drop_effects(mob/user, silent) - if(leash_master.is_holding_item_of_type(/obj/item/leash) || istype(leash_master.get_item_by_slot(SLOT_BELT), /obj/item/leash)) + if(leash_master.is_holding_item_of_type(/obj/item/leash) || istype(leash_master.get_item_by_slot(ITEM_SLOT_BELT), /obj/item/leash)) return //Dom still has the leash as it turns out. Cancel the proc. for(var/mob/viewing in viewers(leash_master, null)) viewing.show_message("[leash_master] has dropped the leash.", 1) diff --git a/modular_sand/code/game/objects/items/lewd_items/vibrator.dm b/modular_sand/code/game/objects/items/lewd_items/vibrator.dm index bd91c5a5e0..9f18b726c6 100644 --- a/modular_sand/code/game/objects/items/lewd_items/vibrator.dm +++ b/modular_sand/code/game/objects/items/lewd_items/vibrator.dm @@ -8,7 +8,7 @@ icon_state = "vibe" item_state = "vibe" w_class = WEIGHT_CLASS_SMALL - slot_flags = ITEM_SLOT_DENYPOCKET //no more pocket shockers + //slot_flags = ITEM_SLOT_DENYPOCKET //no more pocket shockers var/equipment_slot = GENITAL_EQUIPMENT_VIBRATOR var/mode = 1 var/style = "long" diff --git a/modular_sand/code/game/objects/items/milking_machine.dm b/modular_sand/code/game/objects/items/milking_machine.dm index 5f1c8ad865..b485641ddc 100644 --- a/modular_sand/code/game/objects/items/milking_machine.dm +++ b/modular_sand/code/game/objects/items/milking_machine.dm @@ -5,7 +5,7 @@ item_state = "Off" desc = "A pocket sized pump and tubing assembly designed to collect and store products from mammary glands." - slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_POCKET + slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_POCKETS var/on = FALSE var/obj/item/reagent_containers/inserted_item = null diff --git a/modular_sand/code/modules/arousal/arousal.dm b/modular_sand/code/modules/arousal/arousal.dm index b1c12abe89..01de24275c 100644 --- a/modular_sand/code/modules/arousal/arousal.dm +++ b/modular_sand/code/modules/arousal/arousal.dm @@ -23,12 +23,6 @@ if(ishuman(partner)) h_partner = partner - if(istype(source_gen, /obj/item/organ/genital/penis)) - h_self.cumdrip_rate += rand(5,10) - if(h_self.has_belly(REQUIRE_ANY) && (h_self.client?.prefs.cit_toggles & BELLY_INFLATION)) - var/obj/item/organ/genital/belly/midsection = h_self.getorganslot(ORGAN_SLOT_BELLY) - to_chat(h_self, " You can feel your belly bloat outwards as [h_partner] fills you up with [h_partner.p_their()] seed, sagging more distended in front of you") - midsection.modify_size(1) if(receiver) switch(receiver.slot) //Feel free to add more options for other receiving genitals if you desire if(ORGAN_SLOT_VAGINA) diff --git a/modular_sand/code/modules/arousal/organs/belly.dm b/modular_sand/code/modules/arousal/organs/belly.dm index ca7ecb53ab..fdaa0c6bee 100644 --- a/modular_sand/code/modules/arousal/organs/belly.dm +++ b/modular_sand/code/modules/arousal/organs/belly.dm @@ -97,4 +97,43 @@ size = D.features["belly_size"] prev_size = size size_cached = size + original_fluid_id = fluid_id + fluid_max_volume += (size - initial(size))*2.5 + fluid_rate += (size - initial(size))/10 toggle_visibility(D.features["belly_visibility"], FALSE) + +/obj/item/organ/genital/belly/climax_modify_size(mob/living/partner, obj/item/organ/genital/source_gen, cum_hole) + if(!(owner.client?.prefs.cit_toggles & BELLY_INFLATION)) + if(owner.has_anus(REQUIRE_EXPOSED) && (cum_hole == CUM_TARGET_ANUS)) + var/obj/item/organ/genital/butt/ass = owner.getorganslot(ORGAN_SLOT_BUTT) + if(!ass) + ass = new + ass.Insert(owner) + ass.climax_modify_size(partner, source_gen) + return + + var/datum/reagents/fluid_source = source_gen.climaxable() + if(!fluid_source) + return + + if(!climax_fluids) + climax_fluids = new + climax_fluids.maximum_volume = INFINITY + + source_gen.generate_fluid(fluid_source) + fluid_source.trans_to(climax_fluids, fluid_source.total_volume) + + if(climax_fluids.total_volume >= fluid_max_volume * GENITAL_INFLATION_THRESHOLD) + var/previous = size + var/growth_amount = climax_fluids.total_volume / (fluid_max_volume * GENITAL_INFLATION_THRESHOLD) + modify_size(growth_amount) + if(size > round(previous)) + owner.visible_message("\The [owner]'s belly bloats outwards as it gets pumped full of[pick(" sweet", "")] [lowertext(source_gen.get_fluid_name())]!", ignored_mobs = owner.get_unconsenting()) + fluid_id = source_gen.get_fluid_id() + if(growth_amount >= 3 || size >= 3) + var/obj/item/organ/genital/butt/ass = owner.getorganslot(ORGAN_SLOT_BUTT) + if(!ass) + ass = new + ass.Insert(owner) + ass.climax_modify_size(partner, source_gen, TRUE) + climax_fluids.clear_reagents() diff --git a/modular_sand/code/modules/client/loadout/accessories.dm b/modular_sand/code/modules/client/loadout/accessories.dm index ca35c063ad..a317069bf4 100644 --- a/modular_sand/code/modules/client/loadout/accessories.dm +++ b/modular_sand/code/modules/client/loadout/accessories.dm @@ -1,6 +1,6 @@ /datum/gear/accessories/ring category = LOADOUT_CATEGORY_GLOVES - slot = SLOT_GLOVES + slot = ITEM_SLOT_HANDS /datum/gear/accessories/ring/goldring name = "A gold ring" diff --git a/modular_sand/code/modules/client/loadout/boxers.dm b/modular_sand/code/modules/client/loadout/boxers.dm index 02aed40102..c55b799581 100644 --- a/modular_sand/code/modules/client/loadout/boxers.dm +++ b/modular_sand/code/modules/client/loadout/boxers.dm @@ -2,7 +2,7 @@ name = "Briefs" category = LOADOUT_CATEGORY_GENERAL_UNDER subcategory = LOADOUT_SUBCATEGORY_UNDERWEAR - slot = SLOT_W_UNDERWEAR + slot = ITEM_SLOT_UNDERWEAR has_colors = TRUE path = /obj/item/clothing/underwear/briefs cost = 0 diff --git a/modular_sand/code/modules/client/loadout/shirts.dm b/modular_sand/code/modules/client/loadout/shirts.dm index 13b71795d7..8583f71696 100644 --- a/modular_sand/code/modules/client/loadout/shirts.dm +++ b/modular_sand/code/modules/client/loadout/shirts.dm @@ -2,7 +2,7 @@ name = "Shirt" category = LOADOUT_CATEGORY_GENERAL_UNDER subcategory = LOADOUT_SUBCATEGORY_SHIRT - slot = SLOT_W_SHIRT + slot = ITEM_SLOT_SHIRT has_colors = TRUE path = /obj/item/clothing/underwear/shirt cost = 0 diff --git a/modular_sand/code/modules/client/loadout/socks.dm b/modular_sand/code/modules/client/loadout/socks.dm index c53dad5e34..56cbca574d 100644 --- a/modular_sand/code/modules/client/loadout/socks.dm +++ b/modular_sand/code/modules/client/loadout/socks.dm @@ -2,7 +2,7 @@ name = "Socks" category = LOADOUT_CATEGORY_GENERAL_UNDER subcategory = LOADOUT_SUBCATEGORY_SOCKS - slot = SLOT_W_SOCKS + slot = ITEM_SLOT_SOCKS has_colors = TRUE path = /obj/item/clothing/underwear/socks cost = 0 diff --git a/modular_sand/code/modules/client/loadout/wrists.dm b/modular_sand/code/modules/client/loadout/wrists.dm index 866472c6da..1120ef8df3 100644 --- a/modular_sand/code/modules/client/loadout/wrists.dm +++ b/modular_sand/code/modules/client/loadout/wrists.dm @@ -2,6 +2,6 @@ name = "steampunk watch" category = LOADOUT_CATEGORY_WRISTS subcategory = LOADOUT_SUBCATEGORY_WATCHES - slot = SLOT_WRISTS + slot = ITEM_SLOT_WRISTS path = /obj/item/clothing/wrists/clockwork_watch cost = 0 diff --git a/modular_sand/code/modules/clothing/gloves/_gloves.dm b/modular_sand/code/modules/clothing/gloves/_gloves.dm index 51044d77fb..b1984e9770 100644 --- a/modular_sand/code/modules/clothing/gloves/_gloves.dm +++ b/modular_sand/code/modules/clothing/gloves/_gloves.dm @@ -1,9 +1,9 @@ /obj/item/clothing/gloves var/dummy_thick = FALSE // is able to hold accessories on its item - //SKYRAT EDIT - Removed the old attached accessory system. We use a list of accessories instead. + // Sandstorm edit - Removed the old attached accessory system. We use a list of accessories instead. var/list/obj/item/clothing/accessory/ring/attached_accessories = list() var/max_accessories = 1 - //SKYRAT EDIT END + // Sandstorm edit END var/mutable_appearance/accessory_overlay /obj/item/clothing/gloves/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) @@ -20,30 +20,30 @@ . = ..() if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) return - if(length(attached_accessories)) //SKYRAT EDIT + if(length(attached_accessories)) // Sandstorm edit remove_accessory(user) /obj/item/clothing/gloves/equipped(mob/user, slot) ..() - //SKYRAT EDIT + // Sandstorm edit for(var/obj/item/clothing/accessory/ring/attached_accessory in attached_accessories) - if(attached_accessory && slot != SLOT_HANDS && ishuman(user)) + if(attached_accessory && slot != ITEM_SLOT_HANDS && ishuman(user)) var/mob/living/carbon/human/H = user attached_accessory.on_uniform_equip(src, user) if(attached_accessory.above_suit) H.update_inv_wear_suit() - //SKYRAT EDIT END + // Sandstorm edit END /obj/item/clothing/gloves/dropped(mob/user) - //SKYRAT EDIT + // Sandstorm edit for(var/obj/item/clothing/accessory/ring/attached_accessory in attached_accessories) attached_accessory.on_uniform_dropped(src, user) if(ishuman(user)) var/mob/living/carbon/human/H = user if(attached_accessory.above_suit) H.update_inv_wear_suit() - //SKYRAT EDIT END + // Sandstorm edit END ..() /obj/item/clothing/gloves/proc/attach_accessory(obj/item/I, mob/user, notifyAttach = 1) @@ -70,14 +70,14 @@ if((flags_inv & HIDEACCESSORY) || (A.flags_inv & HIDEACCESSORY)) return TRUE - //SKYRAT EDIT + // Sandstorm edit accessory_overlay = mutable_appearance(I.mob_overlay_icon, I.item_state) for(var/obj/item/clothing/accessory/ring/attached_accessory in attached_accessories) var/mutable_appearance/Y = mutable_appearance(attached_accessory.mob_overlay_icon, attached_accessory.icon_state, ABOVE_HUD_LAYER) Y.alpha = attached_accessory.alpha Y.color = attached_accessory.color accessory_overlay.add_overlay(Y) - //SKYRAT EDIT END + // Sandstorm edit END if(ishuman(loc)) var/mob/living/carbon/human/H = loc @@ -91,10 +91,10 @@ if(!can_use(user)) return - //SKYRAT EDIT + // Sandstorm edit if(length(attached_accessories)) var/obj/item/clothing/accessory/ring/A = attached_accessories[length(attached_accessories)] - //SKYRAT EDIT END + // Sandstorm edit END A.detach(src, user) if(user.put_in_hands(A)) to_chat(user, "You detach [A] from [src].") diff --git a/modular_sand/code/modules/clothing/spacesuits/hardsuit.dm b/modular_sand/code/modules/clothing/spacesuits/hardsuit.dm index 2faa39fc7f..921472d05d 100644 --- a/modular_sand/code/modules/clothing/spacesuits/hardsuit.dm +++ b/modular_sand/code/modules/clothing/spacesuits/hardsuit.dm @@ -43,7 +43,7 @@ /obj/item/clothing/head/helmet/space/hardsuit/powerarmor/equipped(mob/living/carbon/human/user, slot) ..() - if (slot == SLOT_HEAD) + if (slot == ITEM_SLOT_HEAD) var/datum/atom_hud/DHUD = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED] DHUD.add_hud_to(user) diff --git a/modular_sand/code/modules/mining/lavaland/necropolis_chests.dm b/modular_sand/code/modules/mining/lavaland/necropolis_chests.dm index c0853ca76c..300142a316 100644 --- a/modular_sand/code/modules/mining/lavaland/necropolis_chests.dm +++ b/modular_sand/code/modules/mining/lavaland/necropolis_chests.dm @@ -964,7 +964,7 @@ var/numUses = 1 /obj/item/clothing/neck/necklace/necklace_of_the_forsaken/item_action_slot_check(slot) - return (..() && (slot == SLOT_NECK)) + return (..() && (slot == ITEM_SLOT_NECK)) /obj/item/clothing/neck/necklace/necklace_of_the_forsaken/dropped(mob/user) ..() diff --git a/modular_sand/code/modules/mob/living/carbon/human/human_stripping.dm b/modular_sand/code/modules/mob/living/carbon/human/human_stripping.dm index 9110c6a432..762e4be58b 100644 --- a/modular_sand/code/modules/mob/living/carbon/human/human_stripping.dm +++ b/modular_sand/code/modules/mob/living/carbon/human/human_stripping.dm @@ -1,19 +1,19 @@ /datum/strippable_item/mob_item_slot/ears_extra key = STRIPPABLE_ITEM_EARS_EXTRA - item_slot = SLOT_EARS_RIGHT + item_slot = ITEM_SLOT_EARS_RIGHT /datum/strippable_item/mob_item_slot/wrists key = STRIPPABLE_ITEM_WRISTS - item_slot = SLOT_WRISTS + item_slot = ITEM_SLOT_WRISTS /datum/strippable_item/mob_item_slot/socks key = STRIPPABLE_ITEM_SOCKS - item_slot = SLOT_W_SOCKS + item_slot = ITEM_SLOT_SOCKS /datum/strippable_item/mob_item_slot/underwear key = STRIPPABLE_ITEM_UNDERWEAR - item_slot = SLOT_W_UNDERWEAR + item_slot = ITEM_SLOT_UNDERWEAR /datum/strippable_item/mob_item_slot/undershirt key = STRIPPABLE_ITEM_UNDERSHIRT - item_slot = SLOT_W_SHIRT + item_slot = ITEM_SLOT_SHIRT diff --git a/modular_splurt/code/__HELPERS/cmp.dm b/modular_splurt/code/__HELPERS/cmp.dm deleted file mode 100644 index b2ce9eb938..0000000000 --- a/modular_splurt/code/__HELPERS/cmp.dm +++ /dev/null @@ -1,2 +0,0 @@ -/proc/cmp_playtime(list/A, list/B) - return A["playtime"] - B["playtime"] diff --git a/modular_splurt/code/_globalvars/lists/global_lewd.dm b/modular_splurt/code/_globalvars/lists/global_lewd.dm index e2c0693332..77b051c103 100644 --- a/modular_splurt/code/_globalvars/lists/global_lewd.dm +++ b/modular_splurt/code/_globalvars/lists/global_lewd.dm @@ -11,3 +11,7 @@ GLOBAL_LIST_INIT(brap_noises, list( )) GLOBAL_LIST_INIT(breast_nouns, list("breasts", "boobs", "honkers", "tatas", "tiddies", "milktanks", "mammaries", "milk bags", "boobers", "boobies")) //Yeah I need help coming up with better names + +GLOBAL_LIST_INIT(balls_nouns, list("balls", "nuts", "ballsack", "testicles", "sack", "cum orbs", "cum spheres", "cum tanks", "cum holders", "cum churners", "spunk orbs", "spunk spheres", "spunk tanks", "spunk holders", "spunk churners", "nut orbs", "nut spheres", "nut tanks", "nut holders", "nut churners", "jizz orbs", "jizz spheres", "jizz tanks", "jizz holders", "jizz churners", "seed orbs", "seed spheres", "seed tanks", "seed holders", "seed churners")) + +GLOBAL_LIST_INIT(butt_nouns, list("ass", "butt", "dumptruck", "tush", "badonk", "booty", "rump", "behind")) diff --git a/modular_splurt/code/datums/interactions/lewd/_lewd.dm b/modular_splurt/code/datums/interactions/lewd/_lewd.dm index 129fa36c72..ea98149f44 100644 --- a/modular_splurt/code/datums/interactions/lewd/_lewd.dm +++ b/modular_splurt/code/datums/interactions/lewd/_lewd.dm @@ -1,3 +1,175 @@ +#define CUM_TARGET_NIPPLE "nipple" +#define CUM_TARGET_URETHRA "urethra" +#define CUM_TARGET_THIGHS "thighs" + +/mob/living/cum(mob/living/partner, target_orifice) + var/message + //var/u_His = p_their() + //var/u_He = p_they() + //var/u_S = p_s() + //var/t_His = partner?.p_their() + var/cumin = FALSE + var/obj/item/organ/genital/target_gen + var/mob/living/carbon/c_partner + var/cum_the_II = FALSE //If the cumming interaction is fully handled here or goes back to ..() + //Carbon checks + if(iscarbon(partner)) + c_partner = partner + + if(src != partner) + if(!last_genital) + if(has_penis()) + if(!istype(partner)) + target_orifice = null + switch(target_orifice) + if(CUM_TARGET_NIPPLE) + cum_the_II = TRUE + cumin = TRUE + if(partner.has_breasts()) + message = "cums iside \the [partner]'s nipple!." + target_gen = partner.getorganslot(ORGAN_SLOT_BREASTS) + else + message = "cums on \the [partner]'s chest and neck." + if((partner.client?.prefs.cit_toggles & BREAST_ENLARGEMENT) && c_partner) + target_gen = new /obj/item/organ/genital/breasts + target_gen.Insert(c_partner) + if(target_gen) + target_gen.climax_modify_size(src, getorganslot(ORGAN_SLOT_PENIS)) + if(CUM_TARGET_URETHRA) + cum_the_II = TRUE + cumin = TRUE + message = "cums down \the [partner]'s [pick(GLOB.dick_nouns + list("[pick("cock", "dick")]hole", "urethra"))]!" + if(c_partner) + target_gen = partner.getorganslot(ORGAN_SLOT_PENIS) + target_gen.climax_modify_size(src, getorganslot(ORGAN_SLOT_PENIS)) + if(CUM_TARGET_THIGHS) + cum_the_II = TRUE + if(partner.has_legs() >= 2) + message = "cums right into \the [partner]'s thighs!" + else + message = "cums... somehow..." + + if(CUM_TARGET_MOUTH, CUM_TARGET_THROAT, CUM_TARGET_VAGINA, CUM_TARGET_BELLY, CUM_TARGET_ANUS) + if(c_partner) + if(partner.client?.prefs.cit_toggles & BELLY_INFLATION) + var/obj/item/organ/genital/belly/gut = partner.getorganslot(ORGAN_SLOT_BELLY) + if(!gut) + gut = new + gut.Insert(partner) + gut.climax_modify_size(src, getorganslot(ORGAN_SLOT_PENIS), target_orifice) + else if((partner.client?.prefs.cit_toggles & BUTT_ENLARGEMENT) && target_orifice == CUM_TARGET_ANUS) + var/obj/item/organ/genital/butt/ass = partner.getorganslot(ORGAN_SLOT_BUTT) + if(!ass) + ass = new + ass.Insert(partner) + ass.climax_modify_size(src, getorganslot(ORGAN_SLOT_PENIS)) + else + switch(last_genital.type) + if(/obj/item/organ/genital/penis) + if(!istype(partner)) + target_orifice = null + switch(target_orifice) + if(CUM_TARGET_NIPPLE) + cumin = TRUE + cum_the_II = TRUE + if(partner.has_breasts()) + message = "cums iside \the [partner]'s nipple!." + target_gen = partner.getorganslot(ORGAN_SLOT_BREASTS) + else + message = "cums on \the [partner]'s chest and neck." + if((partner.client?.prefs.cit_toggles & BREAST_ENLARGEMENT) && c_partner) + target_gen = new /obj/item/organ/genital/breasts + target_gen.Insert(partner) + + if(target_gen) + target_gen.climax_modify_size(src, last_genital) + if(CUM_TARGET_URETHRA) + cum_the_II = TRUE + cumin = TRUE + message = "cums down \the [partner]'s [pick(GLOB.dick_nouns + list("[pick("cock", "dick")]hole", "urethra"))]!" + if(c_partner) + target_gen = partner.getorganslot(ORGAN_SLOT_PENIS) + target_gen.climax_modify_size(src, last_genital) + if(CUM_TARGET_THIGHS) + cum_the_II = TRUE + if(partner.has_legs() >= 2) + message = "cums right into \the [partner]'s thighs!" + else + message = "cums... somehow..." + + if(CUM_TARGET_MOUTH, CUM_TARGET_THROAT, CUM_TARGET_VAGINA, CUM_TARGET_BELLY, CUM_TARGET_ANUS) + if(c_partner) + if(partner.client?.prefs.cit_toggles & BELLY_INFLATION) + var/obj/item/organ/genital/belly/gut = partner.getorganslot(ORGAN_SLOT_BELLY) + if(!gut) + gut = new + gut.Insert(partner) + gut.climax_modify_size(src, last_genital, target_orifice) + else if((partner.client?.prefs.cit_toggles & BUTT_ENLARGEMENT) && target_orifice == CUM_TARGET_ANUS) + var/obj/item/organ/genital/butt/ass = partner.getorganslot(ORGAN_SLOT_BUTT) + if(!ass) + ass = new + ass.Insert(partner) + ass.climax_modify_size(src, last_genital) + if(!cum_the_II) + return ..() + if(gender == MALE) + playlewdinteractionsound(loc, pick('modular_sand/sound/interactions/final_m1.ogg', + 'modular_sand/sound/interactions/final_m2.ogg', + 'modular_sand/sound/interactions/final_m3.ogg', + 'modular_sand/sound/interactions/final_m4.ogg', + 'modular_sand/sound/interactions/final_m5.ogg'), 90, 1, 0) + else if(gender == FEMALE) + playlewdinteractionsound(loc, pick('modular_sand/sound/interactions/final_f1.ogg', + 'modular_sand/sound/interactions/final_f2.ogg', + 'modular_sand/sound/interactions/final_f3.ogg'), 70, 1, 0) + else + playlewdinteractionsound(loc, pick('modular_sand/sound/interactions/final_f1.ogg', + 'modular_sand/sound/interactions/final_f2.ogg', + 'modular_sand/sound/interactions/final_f3.ogg'), 70, 1, 0) + visible_message(message = "\The [src] [message]", ignored_mobs = get_unconsenting()) + multiorgasms += 1 + + if(multiorgasms > (get_sexual_potency() * 0.34)) //AAAAA, WE DONT WANT NEGATIVES HERE, RE + refractory_period = world.time + rand(300, 900) - get_sexual_potency()//sex cooldown + // set_drugginess(rand(20, 30)) + else + refractory_period = world.time + rand(300, 900) - get_sexual_potency() + // set_drugginess(rand(5, 10)) + if(multiorgasms < get_sexual_potency()) + if(ishuman(src)) + var/mob/living/carbon/human/H = src + if(!partner) + H.mob_climax(TRUE, "masturbation", "none") + else + H.mob_climax(TRUE, "sex", partner, !cumin, target_gen) + set_lust(0) + SEND_SIGNAL(src, COMSIG_MOB_CAME, target_orifice, partner) + +/mob/living/get_unconsenting(extreme, list/ignored_mobs, var/unholy) + for(var/mob/M in range(7, src)) + if(M.client) + var/client/cli = M.client + if(unholy && (cli.prefs.unholypref == "No")) + LAZYADD(ignored_mobs, M) + . = ..() + +/mob/living/proc/has_legs(nintendo = REQUIRE_ANY) + var/legs = has_left_leg() + has_right_leg() + if(legs) + switch(nintendo) + if(REQUIRE_EXPOSED) + if(is_bottomless()) + return legs + if(REQUIRE_UNEXPOSED) + if(!is_bottomless()) + return legs + if(REQUIRE_ANY) + return legs + return FALSE + +// Interaction Procs + /mob/living/proc/do_breastsmother(mob/living/target) var/message var/u_His = p_their() @@ -90,7 +262,7 @@ var/u_His = p_their() var/t_His = target.p_their() var/lust_increase = 1 - var/list/balls = list("balls", "nuts", "[pick(list("cum", "spunk", "nut", "jizz", "seed"))] [pick(list("orbs", "spheres", "tanks", "holders"))]") + var/list/balls = list("balls", "nuts", "[pick(list("cum", "spunk", "nut", "jizz", "seed"))] [pick(list("orbs", "spheres", "tanks", "holders", "churners"))]") var/list/lines if(target.is_fucking(src, NUTS_TO_FACE)) @@ -126,7 +298,7 @@ 'modular_sand/sound/interactions/bang6.ogg', ) - if(is_fucking(target, CUM_TARGET_PENIS)) + if(is_fucking(target, CUM_TARGET_URETHRA)) lines = list( "humps right into \the [target]'s [pick(cock)], stretiching it as their balls slam together", "slides [u_His] [pick(cock)] all the way down \the [target]'s own throbbing [pick(cock)], [t_His] urethra is so tight!", @@ -138,13 +310,104 @@ "grinds [u_His] tip against \the [target]'s [pick(cock)], only to slide [u_His] whole [pick(cock)] all the way down to [t_His] base", "makes \the [target]'s fat [pick(cock)] stretch and throb as the size of [u_His] [pick(cock)] makes its way right in" ) - set_is_fucking(target, CUM_TARGET_PENIS, getorganslot(ORGAN_SLOT_PENIS)) + set_is_fucking(target, CUM_TARGET_URETHRA, getorganslot(ORGAN_SLOT_PENIS)) message = "\The [src] [pick(lines)]" visible_message(message, ignored_mobs = get_unconsenting()) playlewdinteractionsound(src, pick(noises), 70, 1, -1) - handle_post_sex(NORMAL_LUST, CUM_TARGET_PENIS, target) - target.handle_post_sex(NORMAL_LUST, CUM_TARGET_PENIS, src) + handle_post_sex(NORMAL_LUST, CUM_TARGET_URETHRA, target) + target.handle_post_sex(NORMAL_LUST, CUM_TARGET_URETHRA, src) + +/mob/living/proc/do_nipfuck(mob/living/target) + var/message + var/list/lines + var/u_His = p_their() + var/t_His = target.p_their() + if(is_fucking(target, CUM_TARGET_NIPPLE) && target.has_breasts(REQUIRE_EXPOSED)) + lines = list( + "slides [u_His] [pick(GLOB.dick_nouns)] back and forth into \the [target]'s nipple", + "thrusts in and out of \the [target]'s leaky and puffy nip, making [t_His] [pick(GLOB.breast_nouns)] slosh and leak", + "'s balls slap loudly against \the [target]'s jostling [pick(GLOB.breast_nouns)] as [t_His] nipple swallows [u_His] [pick(GLOB.dick_nouns)] whole" + ) + else if(target.has_breasts(REQUIRE_EXPOSED)) + lines = list( + "presses [u_His] throbbing tip against \the [target]'s puffy nipple, forcing the whole lenght all the way in with a wet smack", + "stretches \the [target]'s nipple with his fingers, before forcing it open with the whole girth of [u_His] twitching [pick(GLOB.dick_nouns)]" + ) + else + lines = list( + "rubs [u_His] tip gently against \the [target]'s [pick("nipple", "chest")]", + "slaps [u_His] snaky [pick(GLOB.dick_nouns)] into \the [target]'s chest", + "smooches \the [target]'s nipple with [u_His] dickhole" + ) + + if(!is_fucking(target, CUM_TARGET_NIPPLE)) + set_is_fucking(target, CUM_TARGET_NIPPLE, getorganslot(ORGAN_SLOT_PENIS)) + + message = "\The [src] [pick(lines)]!" + visible_message(message, ignored_mobs = get_unconsenting()) + playlewdinteractionsound(src, pick('modular_sand/sound/interactions/bang1.ogg', + 'modular_sand/sound/interactions/bang2.ogg', + 'modular_sand/sound/interactions/bang3.ogg'), 70, 1, -1) + handle_post_sex(NORMAL_LUST, CUM_TARGET_NIPPLE, target) + target.handle_post_sex(NORMAL_LUST, null, src) + +/mob/living/proc/do_thighfuck(mob/living/target) + var/message + var/list/lines + var/u_His = p_their() + var/t_His = target.p_their() + + if(is_fucking(target, CUM_TARGET_THIGHS)) + lines = list( + "thrusts in and out of \the [target]'s [pick("pudgy ", "soft ", "")]thighs, making them jiggle", + "lustfully rolls [u_His] [pick(GLOB.dick_nouns)] back and forth between \the [target]'s thighs", + "vigorously fucks \the [target]'s legs, making [u_His] tip pop in and out of [t_His] supple thighs" + ) + else + lines = list( + "presses [u_His] tip against \the [target]'s [pick("pudgy ", "soft ", "")] thighs, soon shoving [u_His] whole lenght right in between them", + "presents [u_His] [pick(GLOB.dick_nouns)] to \the [target]'s legs, ramming its full size right into [t_His] thigh lock", + "smooches \the [target]'s crotch with [u_His] throbbing tip, right before piercing between [t_His] thighs with [u_His] full [pick(GLOB.dick_nouns)]" + ) + set_is_fucking(target, CUM_TARGET_THIGHS, getorganslot(ORGAN_SLOT_PENIS)) + + message = "\The [src] [pick(lines)]!" + visible_message(message, ignored_mobs = get_unconsenting()) + playlewdinteractionsound(loc, pick('modular_sand/sound/interactions/bang1.ogg', + 'modular_sand/sound/interactions/bang2.ogg', + 'modular_sand/sound/interactions/bang3.ogg'), 70, 1, -1) + handle_post_sex(NORMAL_LUST, CUM_TARGET_THIGHS, target) + target.handle_post_sex(LOW_LUST, CUM_TARGET_PENIS, src) + +/mob/living/proc/do_thighjob(mob/living/target) + var/message + var/list/lines + var/u_His = p_their() + var/t_He = target.p_they() + var/t_His = target.p_their() + + if(target.is_fucking(src, CUM_TARGET_THIGHS)) + lines = list( + "grinds and presses [u_His] thighs [pick("deeply ", "")] against \the [target]'s [pick(GLOB.dick_nouns)], massaging it all over with [u_His] thighs", + "squeezes \the [target]'s [pick(GLOB.dick_nouns)] between [u_His] supple thighs, smothering it deep under [u_His] crotch", + "rides \the [target]'s [pick(GLOB.dick_nouns)] with [u_His] [pick("pudgy ", "soft ", "")]thighs, [t_He] can feel [u_His] flesh smothering it down" + ) + else + lines = list( + "presents [u_His] [pick("pudgy ", "soft ", "")] thighs to \the [target]'s [pick(GLOB.dick_nouns)], slamming them right into it[pick(" with a [pick("wet ", "")]smack", "")]", + "grinds \the [target]'s tip against [u_His] supple thighs, before slamming them right down into [t_His] [pick(GLOB.dick_nouns)]", + "forces \the [target]'s [pick(GLOB.dick_nouns)] right into the tight hold of [u_His] thighs, giving it a deep and lewd squeeze" + ) + target.set_is_fucking(src, CUM_TARGET_THIGHS, target.getorganslot(ORGAN_SLOT_PENIS)) + + message = "\The [src] [pick(lines)]!" + visible_message(message, ignored_mobs = get_unconsenting()) + playlewdinteractionsound(loc, pick('modular_sand/sound/interactions/bang1.ogg', + 'modular_sand/sound/interactions/bang2.ogg', + 'modular_sand/sound/interactions/bang3.ogg'), 70, 1, -1) + handle_post_sex(LOW_LUST, CUM_TARGET_PENIS, target) + target.handle_post_sex(NORMAL_LUST, CUM_TARGET_THIGHS, src) //////////////////////////////////////////////////////////////////////////////////////////////////////// ///////// U N H O L Y ///////// diff --git a/modular_splurt/code/datums/interactions/lewd/lewd_datums.dm b/modular_splurt/code/datums/interactions/lewd/lewd_datums.dm index cd1b04802e..8cbff18d9d 100644 --- a/modular_splurt/code/datums/interactions/lewd/lewd_datums.dm +++ b/modular_splurt/code/datums/interactions/lewd/lewd_datums.dm @@ -459,6 +459,71 @@ playlewdinteractionsound(user, 'sound/items/bikehorn.ogg', 40, 1, -1) +/datum/interaction/lewd/nipple_fuck + command = "nipple_fuck" + description = "Fuck their nipple" + require_target_topless = TRUE + require_user_penis = REQUIRE_EXPOSED + write_log_user = "fucked nipples" + write_log_target = "got their nipples fucked by" + interaction_sound = null + max_distance = 1 + +/datum/interaction/lewd/nipple_fuck/display_interaction(mob/living/user, mob/living/target) + user.do_nipfuck(target) + + if(!isclownjob(target) || isclownjob(user)) + return + + if(prob(50) && isclownjob(target)) + target.visible_message("\The [target]'s [pick(GLOB.breast_nouns)] honk[pick(" loudly", "")]!") + + playlewdinteractionsound(target, 'sound/items/bikehorn.ogg', 40, 1, -1) + +/datum/interaction/lewd/fuck_thighs + command = "fuck_thighs" + description = "Fuck their thighs" + require_user_penis = REQUIRE_EXPOSED + require_target_legs = REQUIRE_ANY + require_target_num_legs = 2 + write_log_user = "fucked thighs" + write_log_target = "got their thighs fucked by" + interaction_sound = null + max_distance = 1 + +/datum/interaction/lewd/fuck_thighs/display_interaction(mob/living/user, mob/living/target) + user.do_thighfuck(target) + + if(!isclownjob(user)) + return + + if(prob(50)) + user.visible_message("\The [user]'s [pick(GLOB.dick_nouns)] honks[pick(" loudly", "")]!") + + playlewdinteractionsound(user, 'sound/items/bikehorn.ogg', 40, 1, -1) + +/datum/interaction/lewd/do_thighjob + command = "do_thighjob" + description = "Give them a thighjob" + require_target_penis = REQUIRE_EXPOSED + require_user_legs = REQUIRE_ANY + require_user_num_legs = 2 + write_log_user = "Gave a thighjob" + write_log_target = "Got a thighjob from" + interaction_sound = null + max_distance = 1 + +/datum/interaction/lewd/do_thighjob/display_interaction(mob/living/user, mob/living/target) + user.do_thighjob(target) + + if(!isclownjob(target)) + return + + if(prob(50)) + target.visible_message("\The [target]'s [pick(GLOB.dick_nouns)] honks[pick(" loudly", "")]!") + + playlewdinteractionsound(target, 'sound/items/bikehorn.ogg', 40, 1, -1) + //////////////////////////////////////////////////////////////////////////////////////////////////////// ///////// U N H O L Y ///////// //////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/modular_splurt/code/datums/interactions/lewd/lewd_interactions.dm b/modular_splurt/code/datums/interactions/lewd/lewd_interactions.dm index f8849e04ee..80ed4a9470 100644 --- a/modular_splurt/code/datums/interactions/lewd/lewd_interactions.dm +++ b/modular_splurt/code/datums/interactions/lewd/lewd_interactions.dm @@ -2,3 +2,77 @@ /datum/interaction/lewd var/unholy = FALSE //Same as extreme but... we don't talk about this one... + + var/require_user_legs + var/require_user_num_legs + + var/require_target_legs + var/require_target_num_legs + +/datum/interaction/lewd/evaluate_user(mob/living/user, silent = TRUE, action_check = TRUE) + if(require_user_legs) + switch(require_user_legs) + if(REQUIRE_EXPOSED) + if(!user.has_legs(REQUIRE_EXPOSED)) + if(!silent) + to_chat(user, "Your legs need to be exposed.") + return FALSE + if(REQUIRE_UNEXPOSED) + if(!user.has_legs(REQUIRE_UNEXPOSED)) + if(!silent) + to_chat(user, "Your legs need to be unexposed.") + return FALSE + if(REQUIRE_ANY) + if(!user.has_legs(REQUIRE_ANY)) + if(!silent) + to_chat(user, "You don't have enough legs.") + return FALSE + + if(require_user_num_legs && (user.has_legs() < require_user_num_legs)) + if(!silent) + to_chat(user, "Your don't have enough legs.") + return FALSE + + + if(unholy) + var/client/cli = user.client + if(cli) + if(cli.prefs.unholypref == "No") + if(!silent) + to_chat(user, "That's way too much for you.") + return FALSE + . = ..() + +/datum/interaction/lewd/evaluate_target(mob/living/user, mob/living/target, silent = TRUE) + if(require_target_legs) + switch(require_target_legs) + if(REQUIRE_EXPOSED) + if(!target.has_legs(REQUIRE_EXPOSED)) + if(!silent) + to_chat(user, "[target.p_their()] legs need to be exposed.") + return FALSE + if(REQUIRE_UNEXPOSED) + if(!target.has_legs(REQUIRE_UNEXPOSED)) + if(!silent) + to_chat(user, "[target.p_their()] legs need to be unexposed.") + return FALSE + if(REQUIRE_ANY) + if(!target.has_legs(REQUIRE_ANY)) + if(!silent) + to_chat(user, "[target.p_they()] [target.p_do()]n't have enough legs.") + return FALSE + + if(require_target_num_legs && (target.has_legs() < require_target_num_legs)) + if(!silent) + to_chat(user, "[target.p_they()] [target.p_do()]n't have enough legs.") + return FALSE + + if(unholy) + var/client/cli = target.client + if(cli) + if(target.client.prefs.unholypref == "No") + if(!silent) + to_chat(user, "For some reason, you don't want to do this to [target].") + return FALSE + . = ..() + diff --git a/modular_splurt/code/datums/traits/neutral.dm b/modular_splurt/code/datums/traits/neutral.dm index 2fcfd931c3..527431021e 100644 --- a/modular_splurt/code/datums/traits/neutral.dm +++ b/modular_splurt/code/datums/traits/neutral.dm @@ -203,6 +203,8 @@ /datum/quirk/cum_plus/remove() var/mob/living/carbon/M = quirk_holder + if(!M) + return if(quirk_holder.getorganslot("testicles")) var/obj/item/organ/genital/testicles/T = M.getorganslot("testicles") T.fluid_mult = 1 //Base is 1 diff --git a/modular_splurt/code/game/machinery/computer/slavery.dm b/modular_splurt/code/game/machinery/computer/slavery.dm index 8276f62302..28c800beba 100644 --- a/modular_splurt/code/game/machinery/computer/slavery.dm +++ b/modular_splurt/code/game/machinery/computer/slavery.dm @@ -87,7 +87,7 @@ var/mob/living/L = C.loc var/turf/pos = get_turf(L) - if(!pos || C != L.get_item_by_slot(SLOT_NECK)) + if(!pos || C != L.get_item_by_slot(ITEM_SLOT_NECK)) continue var/list/slave = list() diff --git a/modular_splurt/code/game/object/items/devices/radio/electropack.dm b/modular_splurt/code/game/object/items/devices/radio/electropack.dm index 85821e5bd3..95b0a4e7b8 100644 --- a/modular_splurt/code/game/object/items/devices/radio/electropack.dm +++ b/modular_splurt/code/game/object/items/devices/radio/electropack.dm @@ -36,7 +36,7 @@ if(isliving(user)) var/mob/living/M = user - if(slot == SLOT_NECK) + if(slot == ITEM_SLOT_NECK) playsound(get_turf(M), 'sound/machines/triple_beep.ogg', 50, 1) ADD_TRAIT(src, TRAIT_NODROP, CLOTHING_TRAIT) diff --git a/modular_splurt/code/modules/admin/playtimes.dm b/modular_splurt/code/modules/admin/playtimes.dm index 126631699c..8dbdf7b22e 100644 --- a/modular_splurt/code/modules/admin/playtimes.dm +++ b/modular_splurt/code/modules/admin/playtimes.dm @@ -12,6 +12,8 @@ var/touched_circuit = FALSE var/uses_vpn = FALSE +//Most of this data is now unused except for the flags +/* /client/proc/cmd_player_playtimes() set category = "Admin" set name = "Player Playtimes" @@ -64,6 +66,7 @@ clients = sortList(clients, /proc/cmp_playtime) data["clients"] = clients return data +*/ /datum/player_playtime/proc/check_flags(client/C) var/list/flags = list() @@ -105,7 +108,7 @@ flags += list(flag) return flags - +/* /datum/player_playtime/ui_act(action, params) if(..()) return @@ -125,3 +128,4 @@ return var/mob/dead/observer/A = C.mob A.ManualFollow(target) +*/ diff --git a/modular_splurt/code/modules/antagonists/wendigo/mob/mob_equip.dm b/modular_splurt/code/modules/antagonists/wendigo/mob/mob_equip.dm index 404f43b70f..88854925f3 100644 --- a/modular_splurt/code/modules/antagonists/wendigo/mob/mob_equip.dm +++ b/modular_splurt/code/modules/antagonists/wendigo/mob/mob_equip.dm @@ -1,57 +1,57 @@ /mob/living/carbon/wendigo/can_equip(obj/item/I, slot, disable_warning, bypass_equip_delay_self, clothing_check, list/return_warning) switch(slot) - if(SLOT_HANDS) + if(ITEM_SLOT_HANDS) if(get_empty_held_indexes()) return TRUE return FALSE - if(SLOT_GLASSES) + if(ITEM_SLOT_EYES) if(glasses) return FALSE if(!(I.slot_flags & ITEM_SLOT_EYES)) return FALSE return TRUE - if(SLOT_NECK) + if(ITEM_SLOT_NECK) if(wear_neck) return FALSE if(!(I.slot_flags & ITEM_SLOT_NECK)) return FALSE return TRUE - if(SLOT_EARS_LEFT) + if(ITEM_SLOT_EARS_LEFT) if(ears) return FALSE if(!(I.slot_flags & ITEM_SLOT_EARS)) return FALSE return TRUE - if(SLOT_EARS_RIGHT) + if(ITEM_SLOT_EARS_RIGHT) if(ears_extra) return FALSE if(!(I.slot_flags & ITEM_SLOT_EARS)) return FALSE return TRUE - if(SLOT_GLOVES) + if(ITEM_SLOT_GLOVES) if(gloves) return FALSE if(!(I.slot_flags & ITEM_SLOT_GLOVES)) return FALSE return TRUE - if(SLOT_BACK) + if(ITEM_SLOT_BACK) if(back) return FALSE if(!(I.slot_flags & ITEM_SLOT_BACK)) return FALSE return TRUE - if(SLOT_IN_BACKPACK) + if(ITEM_SLOT_BACKPACK) if(back) if(SEND_SIGNAL(back, COMSIG_TRY_STORAGE_CAN_INSERT, I, src, TRUE)) return TRUE return FALSE - if(SLOT_HEAD) + if(ITEM_SLOT_HEAD) if(head) return FALSE if(!(I.slot_flags & ITEM_SLOT_HEAD)) return FALSE return TRUE - if(SLOT_BELT) + if(ITEM_SLOT_BELT) if(belt) return FALSE if(!(I.slot_flags & ITEM_SLOT_BELT)) @@ -63,16 +63,16 @@ if(!..()) return switch(slot) - if(SLOT_GLASSES) + if(ITEM_SLOT_EYES) glasses = I update_inv_glasses() - if(SLOT_EARS_LEFT) + if(ITEM_SLOT_EARS_LEFT) ears = I update_inv_ears() - if(SLOT_EARS_RIGHT) + if(ITEM_SLOT_EARS_RIGHT) ears_extra = I update_inv_ears_extra() - if(SLOT_GLOVES) + if(ITEM_SLOT_GLOVES) gloves = I update_inv_gloves() return TRUE diff --git a/modular_splurt/code/modules/antagonists/wendigo/mob/update_icons.dm b/modular_splurt/code/modules/antagonists/wendigo/mob/update_icons.dm index ca27e1a0eb..c390cf0d67 100644 --- a/modular_splurt/code/modules/antagonists/wendigo/mob/update_icons.dm +++ b/modular_splurt/code/modules/antagonists/wendigo/mob/update_icons.dm @@ -107,7 +107,7 @@ remove_overlay(EAR_LEFT_LAYER) if(ears) if(client && hud_used) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_EARS_LEFT] + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[ITEM_SLOT_EARS_LEFT] inv.update_icon() ears.screen_loc = ui_ears //move the item to the appropriate screen loc if(client && hud_used && hud_used.hud_shown) @@ -136,7 +136,7 @@ remove_overlay(EAR_RIGHT_LAYER) if(ears_extra) if(client && hud_used) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_EARS_RIGHT] + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[ITEM_SLOT_EARS_RIGHT] inv.update_icon() ears_extra.screen_loc = ui_ears //move the item to the appropriate screen loc if(client && hud_used && hud_used.hud_shown) @@ -336,7 +336,7 @@ if(WEST) head_icon.pixel_x += HEAD_X_OFFSET_WEST head_icon.pixel_y += HEAD_Y_OFFSET_WEST - overlays_standing[SLOT_HEAD] = head_icon + overlays_standing[ITEM_SLOT_HEAD] = head_icon update_hud_head(head) apply_overlay(HEAD_LAYER) diff --git a/modular_splurt/code/modules/arousal/arousal.dm b/modular_splurt/code/modules/arousal/arousal.dm new file mode 100644 index 0000000000..9b57eb9286 --- /dev/null +++ b/modular_splurt/code/modules/arousal/arousal.dm @@ -0,0 +1,11 @@ +/mob/living/carbon/human/mob_climax_partner(obj/item/organ/genital/G, mob/living/L, spillage, mb_time, obj/item/organ/genital/Lgen, forced = FALSE) + . = ..() + L.receive_climax(src, Lgen, G, spillage, forced = forced) + +/mob/living/receive_climax(mob/living/partner, obj/item/organ/genital/receiver, obj/item/organ/genital/source_gen, spill, forced) + . = ..() + + if(!receiver || spill || forced) + return + + receiver.climax_modify_size(partner, source_gen) diff --git a/modular_splurt/code/modules/arousal/genitals.dm b/modular_splurt/code/modules/arousal/genitals.dm new file mode 100644 index 0000000000..b5508b6215 --- /dev/null +++ b/modular_splurt/code/modules/arousal/genitals.dm @@ -0,0 +1,23 @@ +/obj/item/organ/genital + var/datum/reagents/climax_fluids + var/datum/reagent/original_fluid_id + + +/obj/item/organ/genital/proc/climax_modify_size(mob/living/partner, obj/item/organ/genital/source_gen) + return + +/obj/item/organ/genital/proc/get_fluid_id() + if(fluid_id) + return fluid_id + else if(linked_organ.fluid_id) + return linked_organ.fluid_id + return + +/obj/item/organ/genital/proc/get_fluid_name() + var/milkies = get_fluid_id() + var/message + if(!milkies) //No milkies?? + return + var/datum/reagent/R = GLOB.chemical_reactions_list[milkies] + message = R.name + return message diff --git a/modular_splurt/code/modules/arousal/organs/breasts.dm b/modular_splurt/code/modules/arousal/organs/breasts.dm index 552a1d0493..b997c09026 100644 --- a/modular_splurt/code/modules/arousal/organs/breasts.dm +++ b/modular_splurt/code/modules/arousal/organs/breasts.dm @@ -1,5 +1,33 @@ /obj/item/organ/genital/breasts/get_features(mob/living/carbon/human/H) var/datum/dna/D = H.dna - fluid_id = D.features["breasts_fluid"] + if(D.features["breasts_fluid"]) + fluid_id = D.features["breasts_fluid"] + else + fluid_id = initial(fluid_id) + original_fluid_id = fluid_id . = ..() + fluid_max_volume += (cached_size - breast_values[initial(size)])*2.5 + fluid_rate += (cached_size - breast_values[initial(size)])/10 +/obj/item/organ/genital/breasts/climax_modify_size(mob/living/partner, obj/item/organ/genital/source_gen) + if(!(owner.client?.prefs.cit_toggles & BREAST_ENLARGEMENT)) + return + + var/datum/reagents/fluid_source = source_gen.climaxable(partner) + if(!fluid_source) + return + + if(!climax_fluids) + climax_fluids = new + climax_fluids.maximum_volume = INFINITY //Just in case + + source_gen.generate_fluid(fluid_source) + fluid_source.trans_to(climax_fluids, fluid_source.total_volume) + + if(climax_fluids.total_volume >= fluid_max_volume * GENITAL_INFLATION_THRESHOLD) + var/previous = size + modify_size(climax_fluids.total_volume / (fluid_max_volume * GENITAL_INFLATION_THRESHOLD)) + if(size != previous) + owner.visible_message("\The [owner]'s [pick(GLOB.breast_nouns)] swell up with the surge of [lowertext(source_gen.get_fluid_name())] from \the [partner]'s [source_gen.name]", ignored_mobs = owner.get_unconsenting()) + fluid_id = source_gen.get_fluid_id() + climax_fluids.clear_reagents() diff --git a/modular_splurt/code/modules/arousal/organs/butt.dm b/modular_splurt/code/modules/arousal/organs/butt.dm new file mode 100644 index 0000000000..5163b3efb3 --- /dev/null +++ b/modular_splurt/code/modules/arousal/organs/butt.dm @@ -0,0 +1,30 @@ +/obj/item/organ/genital/butt/get_features(mob/living/carbon/human/H) + . = ..() + original_fluid_id = fluid_id + fluid_max_volume += (size - initial(size))*2.5 + fluid_rate += (size - initial(size))/10 + +/obj/item/organ/genital/butt/climax_modify_size(mob/living/partner, obj/item/organ/genital/source_gen, from_belly = FALSE) + if(!(owner.client?.prefs.cit_toggles & BUTT_ENLARGEMENT)) + return + + var/datum/reagents/fluid_source = source_gen.climaxable() + if(!fluid_source) + return + + if(!climax_fluids) + climax_fluids = new + climax_fluids.maximum_volume = INFINITY + + source_gen.generate_fluid(fluid_source) + fluid_source.trans_to(climax_fluids, fluid_source.total_volume) + + if(climax_fluids.total_volume >= fluid_max_volume * GENITAL_INFLATION_THRESHOLD) + var/previous = size + var/growth_amount = (from_belly ? min(climax_fluids.total_volume, 1) : climax_fluids.total_volume) + var/list/asscheeks = list("asscheeks", "buttcheeks", "ass buns", "booty pillows", "dumptruck spheres", "[pick(list("jiggly", "bouncy", "wobbly"))] buttocks") + modify_size(growth_amount) + if(size != previous) + owner.visible_message("\The [owner]'s [pick(GLOB.butt_nouns + asscheeks)] bounce\s outwards lewdly as [owner.p_they()] get[owner.p_s()] pumped full of [lowertext(source_gen.get_fluid_name())] from behind!", ignored_mobs = owner.get_unconsenting()) + fluid_id = source_gen.get_fluid_id() + climax_fluids.clear_reagents() diff --git a/modular_splurt/code/modules/arousal/organs/penis.dm b/modular_splurt/code/modules/arousal/organs/penis.dm new file mode 100644 index 0000000000..a54758674a --- /dev/null +++ b/modular_splurt/code/modules/arousal/organs/penis.dm @@ -0,0 +1,37 @@ +/obj/item/organ/genital/penis/get_features(mob/living/carbon/human/H) + . = ..() + original_fluid_id = fluid_id + fluid_max_volume += (length - initial(length))*2.5 + fluid_rate += (length - initial(length))/10 + +/obj/item/organ/genital/penis/climax_modify_size(mob/living/partner, obj/item/organ/genital/source_gen) + if(!(owner.client?.prefs.cit_toggles & PENIS_ENLARGEMENT)) + return + + var/datum/reagents/fluid_source = source_gen.climaxable(partner) + if(!fluid_source) + return + + var/datum/reagents/target + if(linked_organ) + if(!linked_organ.climax_fluids) + linked_organ.climax_fluids = new + linked_organ.climax_fluids.maximum_volume = INFINITY + target = linked_organ.climax_fluids + else + if(!climax_fluids) + climax_fluids = new + climax_fluids.maximum_volume = INFINITY + target = climax_fluids + + source_gen.generate_fluid(fluid_source) + fluid_source.trans_to(target, fluid_source.total_volume) + + if(target.total_volume >= fluid_max_volume * GENITAL_INFLATION_THRESHOLD) + var/previous = size + modify_size(target.total_volume / (fluid_max_volume * GENITAL_INFLATION_THRESHOLD)) + if(size != previous) + owner.visible_message("\The [owner]'s [pick(GLOB.dick_nouns)][linked_organ ? " and [pick(list("nuts", "balls", "testicles", "ballsack", "sack"))]" : ""] swell and grow bigger as they get pumped full of \the [partner]'s [lowertext(source_gen.get_fluid_name())]!", ignored_mobs = owner.get_unconsenting()) + if(linked_organ) + linked_organ.fluid_id = source_gen.get_fluid_id() + target.clear_reagents() diff --git a/modular_splurt/code/modules/arousal/organs/testicles.dm b/modular_splurt/code/modules/arousal/organs/testicles.dm index 5388314edf..a29fda337b 100644 --- a/modular_splurt/code/modules/arousal/organs/testicles.dm +++ b/modular_splurt/code/modules/arousal/organs/testicles.dm @@ -1,5 +1,8 @@ /obj/item/organ/genital/testicles/get_features(mob/living/carbon/human/H) var/datum/dna/D = H.dna - fluid_id = D.features["balls_fluid"] + if(D.features["balls_fluid"]) + fluid_id = D.features["balls_fluid"] + else + fluid_id = initial(fluid_id) + original_fluid_id = fluid_id . = ..() - diff --git a/modular_splurt/code/modules/cargo/packs/armory.dm b/modular_splurt/code/modules/cargo/packs/armory.dm index c81d3a8cbb..c7fcf8ed37 100644 --- a/modular_splurt/code/modules/cargo/packs/armory.dm +++ b/modular_splurt/code/modules/cargo/packs/armory.dm @@ -70,19 +70,11 @@ /obj/item/gun/grenadelauncher) crate_name = "riot gun crate" -/datum/supply_pack/misc/cap_e45 // I am mad I even have to do this. -Radar - name = "Captain's Enforcer .45" - desc = "A gold handgun meant for the Captain." - access = ACCESS_CAPTAIN - cost = 6000 - contains = list(/obj/item/gun/ballistic/automatic/pistol/enforcergold, - /obj/item/ammo_box/magazine/e45/lethal, - /obj/item/ammo_box/magazine/e45/lethal, - /obj/item/ammo_box/magazine/e45, - /obj/item/ammo_box/magazine/e45, - /obj/item/ammo_box/magazine/e45, - /obj/item/ammo_box/magazine/e45/taser, - /obj/item/ammo_box/magazine/e45/taser, - /obj/item/ammo_box/magazine/e45/taser) - crate_name = "captain's .45" - crate_type = /obj/structure/closet/crate/secure/weapon +/datum/supply_pack/security/armory/enfrocer + name = "Enforcer pistol crate" + desc = "Contains 3 Enforcer handguns. Requires Armory access to open." + cost = 3500 + contains = list(/obj/item/gun/ballistic/automatic/pistol/enforcer, + /obj/item/gun/ballistic/automatic/pistol/enforcer, + /obj/item/gun/ballistic/automatic/pistol/enforcer) + crate_name = "enfocer pistol crate" diff --git a/modular_splurt/code/modules/cargo/packs/goodies.dm b/modular_splurt/code/modules/cargo/packs/goodies.dm new file mode 100644 index 0000000000..5c5b146164 --- /dev/null +++ b/modular_splurt/code/modules/cargo/packs/goodies.dm @@ -0,0 +1,105 @@ +/obj/item/switchblade/butterfly + name = "butterfly knife" + icon_state = "butterflyknife" + icon = 'modular_splurt/icons/obj/items_and_weapons.dmi' + item_state = "knife" + lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' + desc = "A sharp, concealable, fodling knife. Also known as a Balisong fan knife." + flags_1 = CONDUCT_1 + force = 3 + w_class = WEIGHT_CLASS_SMALL + throwforce = 5 + throw_speed = 3 + throw_range = 6 + custom_materials = list(/datum/material/iron=1200) + hitsound = 'sound/weapons/genhit.ogg' + attack_verb = list("stubbed", "poked") + resistance_flags = FIRE_PROOF + extended = 0 + +/obj/item/switchblade/butterfly/attack_self(mob/user) + extended = !extended + playsound(src.loc, 'sound/weapons/batonextend.ogg', 50, TRUE) + if(extended) + force = 20 + w_class = WEIGHT_CLASS_NORMAL + throwforce = 23 + icon_state = "butterflyknife_open" + attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + hitsound = 'sound/weapons/bladeslice.ogg' + sharpness = SHARP_EDGED + else + force = 3 + w_class = WEIGHT_CLASS_SMALL + throwforce = 5 + icon_state = "butterflyknife" + attack_verb = list("stubbed", "poked") + hitsound = 'sound/weapons/genhit.ogg' + sharpness = SHARP_NONE + +/datum/supply_pack/goody/switchblade_single + name = "Switch balde Single-Pack" + desc = "Contains one sharpened switchblade. Guaranteed to fit snugly inside any Nanotrasen-standard boot." + cost = 600 + contains = list(/obj/item/switchblade) + +/datum/supply_pack/goody/butterfly_single + name = "Butterfly Single-Pack" + desc = "Contains one sharpened butterfly knife. Guaranteed to fit snugly inside any Nanotrasen-standard boot." + cost = 600 + contains = list(/obj/item/switchblade/butterfly) + +/datum/supply_pack/goody/varmint_single + name = "Varmint Rifle Single-Pack" + desc = "Contains a parts kit to assemble a varmint rifle." + cost = 600 + contains = list(/obj/item/gunpart/riflevarmintsotck, /obj/item/gunpart/riflevarmintbarrel, /obj/item/ammo_box/c22lr) + +/datum/supply_pack/goody/huntingrifle_single + name = "Hunting Rifle Single-Pack" + desc = "Contains a parts kit to assemble a hunting rifle." + cost = 800 + contains = list(/obj/item/gunpart/rifle308sotck, /obj/item/gunpart/rifle308barrel, /obj/item/ammo_box/a762 = 3) + +/datum/supply_pack/goody/sawndbshotgun_single + name = "Sawn-off Double Barrel Shotgun Single-Pack" + desc = "Contains a parts kit to assemble a sawn off shotgun." + cost = 700 + contains = list(/obj/item/gunpart/shotgunstock, /obj/item/gunpart/shotgunbarrelsawn, /obj/item/storage/box/rubbershot) + +/datum/supply_pack/goody/dbshotgun_single + name = "Sawn-off Double Barrel Shotgun Single-Pack" + desc = "Contains a parts kit to assemble a double barrel shotgun." + cost = 700 + contains = list(/obj/item/gunpart/shotgunstock, /obj/item/gunpart/shotgunbarrel, /obj/item/storage/box/rubbershot) + +/datum/supply_pack/goody/pistol22_single + name = ".22 Pistol Single-Pack" + desc = "Contains a parts kit to assemble a .22 Pistol." + cost = 500 + contains = list(/obj/item/gunpart/pistol22frame, /obj/item/gunpart/pistol22barrel, /obj/item/gunpart/pistol22bolt, /obj/item/ammo_box/magazine/m22 = 2) + +/datum/supply_pack/goody/revolver22_single + name = ".22 Revolver Single-Pack" + desc = "Contains a parts kit to assemble a hunting rifle." + cost = 500 + contains = list(/obj/item/gunpart/revolver22frame, /obj/item/gunpart/revolver22cylinder, /obj/item/ammo_box/c22lr) + +/datum/supply_pack/goody/pistol9_single + name = "9mm Pistol Single-Pack" + desc = "Contains a parts kit to assemble a 9mm Pistol." + cost = 900 + contains = list(/obj/item/gunpart/pistol9frame, /obj/item/gunpart/pistol9slide, /obj/item/ammo_box/magazine/m9 = 2) + +/datum/supply_pack/goody/pistol45_single + name = ".45 Pistol Single-Pack" + desc = "Contains a pre-assembled .45 caliber M1911. Comes with .45 Rubber." + cost = 900 + contains = list(/obj/item/gun/ballistic/automatic/pistol/m1911/no_mag, /obj/item/ammo_box/magazine/m45/rubber= 3) + +/datum/supply_pack/goody/lasercivlian_single + name = "Civilian Energy Pistol Single-Pack" + desc = "Contains a parts kit to assemble a civlian energy pistol." + cost = 800 + contains = list(/obj/item/gunpart/civilianlaserframe, /obj/item/gunpart/civilianlaserbarrel) diff --git a/modular_splurt/code/modules/cargo/packs/misc.dm b/modular_splurt/code/modules/cargo/packs/misc.dm new file mode 100644 index 0000000000..dce209fb86 --- /dev/null +++ b/modular_splurt/code/modules/cargo/packs/misc.dm @@ -0,0 +1,143 @@ +/datum/supply_pack/misc/cap_e45 // I am mad I even have to do this. -Radar + name = "Captain's Enforcer .45" + desc = "A gold handgun meant for the Captain." + access = ACCESS_CAPTAIN + cost = 6000 + contains = list(/obj/item/gun/ballistic/automatic/pistol/enforcergold, + /obj/item/ammo_box/magazine/e45/lethal, + /obj/item/ammo_box/magazine/e45/lethal, + /obj/item/ammo_box/magazine/e45, + /obj/item/ammo_box/magazine/e45, + /obj/item/ammo_box/magazine/e45, + /obj/item/ammo_box/magazine/e45/taser, + /obj/item/ammo_box/magazine/e45/taser, + /obj/item/ammo_box/magazine/e45/taser) + crate_name = "captain's .45" + crate_type = /obj/structure/closet/crate/secure/weapon + +/datum/supply_pack/misc/m1911s + name = "M1911s" + desc = "A pack of 3 M1911s with 9 mags of rubber." + access = ACCESS_QM + cost = 2800 + contains = list(/obj/item/gun/ballistic/automatic/pistol/m1911/no_mag, + /obj/item/gun/ballistic/automatic/pistol/m1911/no_mag, + /obj/item/gun/ballistic/automatic/pistol/m1911/no_mag, + /obj/item/ammo_box/magazine/m45/rubber, + /obj/item/ammo_box/magazine/m45/rubber, + /obj/item/ammo_box/magazine/m45/rubber, + /obj/item/ammo_box/magazine/m45/rubber, + /obj/item/ammo_box/magazine/m45/rubber, + /obj/item/ammo_box/magazine/m45/rubber, + /obj/item/ammo_box/magazine/m45/rubber, + /obj/item/ammo_box/magazine/m45/rubber, + /obj/item/ammo_box/magazine/m45/rubber) + crate_name = ".45 pistols" + crate_type = /obj/structure/closet/crate/secure/weapon + +/datum/supply_pack/misc/m22pistols + name = ".22 Pistols" + desc = "A pack of .22 Pistols with 6 spare magazines." + access = ACCESS_QM + cost = 1700 + contains = list(/obj/item/gun/ballistic/automatic/pistol/m22pistol, + /obj/item/gun/ballistic/automatic/pistol/m22pistol, + /obj/item/gun/ballistic/automatic/pistol/m22pistol, + /obj/item/ammo_box/magazine/m22, + /obj/item/ammo_box/magazine/m22, + /obj/item/ammo_box/magazine/m22, + /obj/item/ammo_box/magazine/m22, + /obj/item/ammo_box/magazine/m22, + /obj/item/ammo_box/magazine/m22) + crate_name = ".22 pistols" + crate_type = /obj/structure/closet/crate/secure/weapon + +/datum/supply_pack/misc/r22revolvers + name = ".22 Revolvers" + desc = "A pack of .22 Pistols with 3 spare boxes of ammo." + access = ACCESS_QM + cost = 1700 + contains = list(/obj/item/gun/ballistic/revolver/r22lr, + /obj/item/gun/ballistic/revolver/r22lr, + /obj/item/gun/ballistic/revolver/r22lr, + /obj/item/ammo_box/c22lr, + /obj/item/ammo_box/c22lr, + /obj/item/ammo_box/c22lr) + crate_name = ".22 Revolvers" + crate_type = /obj/structure/closet/crate/secure/weapon + +/datum/supply_pack/misc/m22pistols + name = "9mm Pistols" + desc = "A pack of 9mm Pistols with 6 spare magazines." + access = ACCESS_QM + cost = 2800 + contains = list(/obj/item/gun/ballistic/automatic/pistol/m9mmpistol, + /obj/item/gun/ballistic/automatic/pistol/m9mmpistol, + /obj/item/gun/ballistic/automatic/pistol/m9mmpistol, + /obj/item/ammo_box/magazine/m9, + /obj/item/ammo_box/magazine/m9, + /obj/item/ammo_box/magazine/m9, + /obj/item/ammo_box/magazine/m9, + /obj/item/ammo_box/magazine/m9, + /obj/item/ammo_box/magazine/m9) + crate_name = "9mm pistols" + crate_type = /obj/structure/closet/crate/secure/weapon + +/datum/supply_pack/misc/c22lrammo + name = ".22 ammo boxes" + desc = "A pack of 6 boxes of .22 ammo." + access = ACCESS_QM + cost = 900 + contains = list(/obj/item/ammo_box/c22lr, + /obj/item/ammo_box/c22lr, + /obj/item/ammo_box/c22lr, + /obj/item/ammo_box/c22lr, + /obj/item/ammo_box/c22lr, + /obj/item/ammo_box/c22lr) + crate_name = ".22 ammo" + crate_type = /obj/structure/closet/crate/secure/weapon + +/datum/supply_pack/misc/varmintrifles + name = "Varmint Rifles" + desc = "A pack of varmint rifles with 3 spare boxes of ammo." + access = ACCESS_QM + cost = 1700 + contains = list(/obj/item/gun/ballistic/shotgun/varmintrifle, + /obj/item/gun/ballistic/shotgun/varmintrifle, + /obj/item/gun/ballistic/shotgun/varmintrifle, + /obj/item/ammo_box/c22lr, + /obj/item/ammo_box/c22lr, + /obj/item/ammo_box/c22lr) + crate_name = "Varmint Rifles" + crate_type = /obj/structure/closet/crate/secure/weapon + +/datum/supply_pack/misc/huntingrifles + name = "Hunting Rifles" + desc = "A pack of hunting rifles with 9 stripper clips." + access = ACCESS_QM + cost = 2500 + contains = list(/obj/item/gun/ballistic/shotgun/huntingrifle, + /obj/item/gun/ballistic/shotgun/huntingrifle, + /obj/item/gun/ballistic/shotgun/huntingrifle, + /obj/item/ammo_box/a762, + /obj/item/ammo_box/a762, + /obj/item/ammo_box/a762, + /obj/item/ammo_box/a762, + /obj/item/ammo_box/a762, + /obj/item/ammo_box/a762, + /obj/item/ammo_box/a762, + /obj/item/ammo_box/a762, + /obj/item/ammo_box/a762) + crate_name = "Hunting Rifles" + crate_type = /obj/structure/closet/crate/secure/weapon + +/datum/supply_pack/misc/civlianlasers + name = "Civilian Energy Pistols" + desc = "A pack of civlian energy pistols." + access = ACCESS_QM + cost = 1700 + contains = list(/obj/item/gun/energy/civilian, + /obj/item/gun/energy/civilian, + /obj/item/gun/energy/civilian) + crate_name = "Civilian Energy Pistols" + crate_type = /obj/structure/closet/crate/secure/weapon diff --git a/modular_splurt/code/modules/clothing/lewd_clothing/collar/kink_collars.dm b/modular_splurt/code/modules/clothing/lewd_clothing/collar/kink_collars.dm index 390bccf445..d170e12dba 100644 --- a/modular_splurt/code/modules/clothing/lewd_clothing/collar/kink_collars.dm +++ b/modular_splurt/code/modules/clothing/lewd_clothing/collar/kink_collars.dm @@ -55,7 +55,7 @@ return ..() /obj/item/clothing/neck/mind_collar/attack_hand(mob/living/carbon/human/user) var/mob/living/carbon/human/C = user - if(iscarbon(user) && seamless && (user.get_item_by_slot(SLOT_NECK))) + if(iscarbon(user) && seamless && (user.get_item_by_slot(ITEM_SLOT_NECK))) to_chat(C, span_purple(pick("You can't seem to find the release latch for the collar!", "The collar refuses to budge while you tug at it.", "Your hands uselessly roam along the strange device."))) diff --git a/modular_splurt/code/modules/clothing/lewd_clothing/foot/lewd_shoes.dm b/modular_splurt/code/modules/clothing/lewd_clothing/foot/lewd_shoes.dm index 5dbb0afb3c..b03e727554 100644 --- a/modular_splurt/code/modules/clothing/lewd_clothing/foot/lewd_shoes.dm +++ b/modular_splurt/code/modules/clothing/lewd_clothing/foot/lewd_shoes.dm @@ -17,7 +17,7 @@ //it takes time to put them off, do not touch /obj/item/clothing/shoes/latexheels/attack_hand(mob/user) var/mob/living/carbon/C = user - if(iscarbon(user) && (user.get_item_by_slot(SLOT_SHOES) == src)) + if(iscarbon(user) && (user.get_item_by_slot(ITEM_SLOT_FEET) == src)) if(seamless) to_chat(C, span_purple(pick("You slide your heels against eachother in a failed attempt at kicking them off.", "The heels refuse to budge no matter how much you tug.", diff --git a/modular_splurt/code/modules/clothing/lewd_clothing/gloves/lewd_gloves.dm b/modular_splurt/code/modules/clothing/lewd_clothing/gloves/lewd_gloves.dm index b7df45ddee..0f1318d94f 100644 --- a/modular_splurt/code/modules/clothing/lewd_clothing/gloves/lewd_gloves.dm +++ b/modular_splurt/code/modules/clothing/lewd_clothing/gloves/lewd_gloves.dm @@ -12,7 +12,7 @@ /obj/item/clothing/gloves/latex_gloves/attack_hand(mob/living/carbon/human/user) var/mob/living/carbon/human/C = user - if(iscarbon(user) && seamless && (user.get_item_by_slot(SLOT_GLOVES) == src)) + if(iscarbon(user) && seamless && (user.get_item_by_slot(ITEM_SLOT_GLOVES) == src)) to_chat(C, span_purple(pick("You rub your gloved fingers together as you search for some sort of escape.", "You can't find any leverage to remove these gloves!", "Your pointless clawing seems to only make things more skin tight"))) diff --git a/modular_splurt/code/modules/clothing/lewd_clothing/head/deprivation_helmet.dm b/modular_splurt/code/modules/clothing/lewd_clothing/head/deprivation_helmet.dm index 2bf43a7f80..c397bcb6e8 100644 --- a/modular_splurt/code/modules/clothing/lewd_clothing/head/deprivation_helmet.dm +++ b/modular_splurt/code/modules/clothing/lewd_clothing/head/deprivation_helmet.dm @@ -77,14 +77,14 @@ muzzle = FALSE //playsound(usr, 'sound/weapons/magout.ogg', 40, TRUE, ignore_walls = FALSE) to_chat(usr, span_notice("Speech switch off")) - if(usr.get_item_by_slot(SLOT_HEAD) == src) + if(usr.get_item_by_slot(ITEM_SLOT_HEAD) == src) REMOVE_TRAIT(usr, TRAIT_MUTE, CLOTHING_TRAIT) to_chat(usr, span_purple("Your mouth is free. you breathe out with relief.")) else muzzle = TRUE //playsound(usr, 'sound/weapons/magin.ogg', 40, TRUE, ignore_walls = FALSE) to_chat(usr, span_notice("Speech switch on")) - if(usr.get_item_by_slot(SLOT_HEAD) == src) + if(usr.get_item_by_slot(ITEM_SLOT_HEAD) == src) ADD_TRAIT(usr, TRAIT_MUTE, CLOTHING_TRAIT) to_chat(usr, span_purple("Something is gagging your mouth! You can't even make a sound...")) if(C == "hearing") @@ -92,7 +92,7 @@ earmuffs = FALSE //playsound(usr, 'sound/weapons/magout.ogg', 40, TRUE, ignore_walls = FALSE) to_chat(usr, span_notice("Hearing switch off")) - if(usr.get_item_by_slot(SLOT_HEAD) == src) + if(usr.get_item_by_slot(ITEM_SLOT_HEAD) == src) REMOVE_TRAIT(usr, TRAIT_DEAF, CLOTHING_TRAIT) //Toggle_Sounds() to_chat(usr, span_purple("Finally you can hear the world around again.")) @@ -100,7 +100,7 @@ earmuffs = TRUE //playsound(usr, 'sound/weapons/magin.ogg', 40, TRUE, ignore_walls = FALSE) to_chat(usr, span_notice("Hearing switch on")) - if(usr.get_item_by_slot(SLOT_HEAD) == src) + if(usr.get_item_by_slot(ITEM_SLOT_HEAD) == src) ADD_TRAIT(usr, TRAIT_DEAF, CLOTHING_TRAIT) //Toggle_Sounds() //stop_client_sounds() @@ -111,14 +111,14 @@ prevent_vision = FALSE //playsound(usr, 'sound/weapons/magout.ogg', 40, TRUE, ignore_walls = FALSE) to_chat(usr, span_notice("Vision switch off")) - if(usr.get_item_by_slot(SLOT_HEAD) == src) + if(usr.get_item_by_slot(ITEM_SLOT_HEAD) == src) user.become_blind("deprivation_helmet_[REF(src)]") to_chat(usr, span_purple("Helmet no longer restricts your vision.")) else prevent_vision = TRUE //playsound(usr, 'sound/weapons/magin.ogg', 40, TRUE, ignore_walls = FALSE) to_chat(usr, span_notice("Vision switch on")) - if(usr.get_item_by_slot(SLOT_HEAD) == src) + if(usr.get_item_by_slot(ITEM_SLOT_HEAD) == src) user.become_blind("deprivation_helmet_[REF(src)]") to_chat(usr, span_purple("The helmet is blocking your vision! You can't make out anything on the other side...")) @@ -185,7 +185,7 @@ /obj/item/clothing/head/helmet/space/deprivation_helmet/equipped(mob/living/carbon/human/user, slot) . = ..() - if(slot != SLOT_HEAD) + if(slot != ITEM_SLOT_HEAD) return if(muzzle == TRUE) ADD_TRAIT(user, TRAIT_MUTE, CLOTHING_TRAIT) @@ -222,7 +222,7 @@ to_chat(user, span_purple("The helmet no longer restricts your vision.")) /obj/item/clothing/head/helmet/space/deprivation_helmet/attack_hand(mob/living/carbon/human/user) - if(iscarbon(user) && seamless && (user.get_item_by_slot(SLOT_HEAD) == src)) + if(iscarbon(user) && seamless && (user.get_item_by_slot(ITEM_SLOT_HEAD) == src)) to_chat(user, span_purple(pick("You roam your hands around the helmet for some sort of release!", "You find it impossible to leverage your fingers underneath the helmet", "The durable material seems to reflect your pointless force."))) diff --git a/modular_splurt/code/modules/mob/living/carbon/human/simple_animal/hostile/deathclaw/funclaw.dm b/modular_splurt/code/modules/mob/living/carbon/human/simple_animal/hostile/deathclaw/funclaw.dm index 77546c8b9f..3c213c9217 100644 --- a/modular_splurt/code/modules/mob/living/carbon/human/simple_animal/hostile/deathclaw/funclaw.dm +++ b/modular_splurt/code/modules/mob/living/carbon/human/simple_animal/hostile/deathclaw/funclaw.dm @@ -25,7 +25,7 @@ if(get_refraction_dif() > 0) onLewdCooldown = TRUE - if(M.client && M.client.prefs.erppref == "Yes" && CHECK_BITFIELD(M.client.prefs.toggles, VERB_CONSENT) && M.client.prefs.nonconpref == "Yes") + if(M.client && M.client?.prefs.erppref == "Yes" && CHECK_BITFIELD(M.client?.prefs.toggles, VERB_CONSENT) && M.client?.prefs.nonconpref == "Yes") wantsNoncon = TRUE switch(deathclaw_mode) @@ -67,7 +67,7 @@ addtimer(CALLBACK(src, .proc/do_lewd_action, M), rand(8, 12)) // Regular sex has an extra action per tick to seem less slow and robotic - if(deathclaw_mode != "abomination" || M.client.prefs.unholypref != "Yes") + if(deathclaw_mode != "abomination" || M.client?.prefs.unholypref != "Yes") addtimer(CALLBACK(src, .proc/do_lewd_action, M), rand(12, 16)) @@ -92,13 +92,13 @@ switch(chosen_hole) if(CUM_TARGET_ANUS) - if(tearSlot(M, SLOT_WEAR_SUIT)) + if(tearSlot(M, ITEM_SLOT_OCLOTHING)) return - if(tearSlot(M, SLOT_W_UNIFORM)) + if(tearSlot(M, ITEM_SLOT_ICLOTHING)) return // Abomination deathclaws do other stuff instead - if(deathclaw_mode == "abomination" && M.client.prefs.unholypref == "Yes") + if(deathclaw_mode == "abomination" && M.client?.prefs.unholypref == "Yes") if(prob(1)) do_grindmouth(M) else @@ -108,26 +108,26 @@ do_anal(M) if(CUM_TARGET_VAGINA) - if(tearSlot(M, SLOT_WEAR_SUIT)) + if(tearSlot(M, ITEM_SLOT_OCLOTHING)) return - if(tearSlot(M, SLOT_W_UNIFORM)) + if(tearSlot(M, ITEM_SLOT_ICLOTHING)) return // Abomination deathclaws do other stuff instead - if(deathclaw_mode == "abomination" && M.client.prefs.unholypref == "Yes") + if(deathclaw_mode == "abomination" && M.client?.prefs.unholypref == "Yes") do_footjob_v(M) handle_post_sex(10, null, M) else do_vaginal(M) if(CUM_TARGET_THROAT) - if(tearSlot(M, SLOT_HEAD)) + if(tearSlot(M, ITEM_SLOT_HEAD)) return - if(tearSlot(M, SLOT_WEAR_MASK)) + if(tearSlot(M, ITEM_SLOT_MASK)) return // Abomination deathclaws do other stuff instead - if(deathclaw_mode == "abomination" && M.client.prefs.unholypref == "Yes") + if(deathclaw_mode == "abomination" && M.client?.prefs.unholypref == "Yes") if(prob(1)) do_faceshit(M) else @@ -166,7 +166,7 @@ else message = "cums on the floor!" - if(deathclaw_mode == "abomination" && M.client.prefs.unholypref == "Yes") + if(deathclaw_mode == "abomination" && M.client?.prefs.unholypref == "Yes") message = "cums all over [M]'s body" if(istype(M, /mob/living/carbon)) diff --git a/modular_splurt/code/modules/projectiles/ammunition/ballistic/pistol.dm b/modular_splurt/code/modules/projectiles/ammunition/ballistic/pistol.dm new file mode 100644 index 0000000000..2dcbebfcf4 --- /dev/null +++ b/modular_splurt/code/modules/projectiles/ammunition/ballistic/pistol.dm @@ -0,0 +1,9 @@ +/obj/item/projectile/bullet/c22lr + name = ".22 Long Rifle bullet" + damage = 5 + +/obj/item/ammo_casing/c22lr + name = ".22 Long rifle bullet casing" + desc = "A .22LR bullet casing." + caliber = ".22" + projectile_type = /obj/item/projectile/bullet/c22lr diff --git a/modular_splurt/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/modular_splurt/code/modules/projectiles/boxes_magazines/ammo_boxes.dm index f732968487..333f478f11 100644 --- a/modular_splurt/code/modules/projectiles/boxes_magazines/ammo_boxes.dm +++ b/modular_splurt/code/modules/projectiles/boxes_magazines/ammo_boxes.dm @@ -44,6 +44,13 @@ obj/item/ammo_box/c45/trac name = "ammo box (.45 Trac)" ammo_type = /obj/item/ammo_casing/c45/trac +/obj/item/ammo_box/c22lr + name = "ammo box (.22)" + icon_state = "22box" + icon = 'modular_splurt/icons/obj/ammo.dmi' + ammo_type = /obj/item/ammo_casing/c22lr + max_ammo = 24 + /datum/design/c45/c45r name = "Box of ammo (.45 Rubber)" desc = "A box of .45 Rubber" diff --git a/modular_splurt/code/modules/projectiles/boxes_magazines/external/automatic.dm b/modular_splurt/code/modules/projectiles/boxes_magazines/external/automatic.dm new file mode 100644 index 0000000000..20c2b8446e --- /dev/null +++ b/modular_splurt/code/modules/projectiles/boxes_magazines/external/automatic.dm @@ -0,0 +1,12 @@ +/obj/item/ammo_box/magazine/m127x99mmbelt + name = "ammo belt (.50)" + icon_state = "762belt" + icon = 'modular_splurt/icons/obj/ammo.dmi' + ammo_type = /obj/item/ammo_casing/p50 + caliber = ".50" + max_ammo = 100 + + +/obj/item/ammo_box/magazine/m127x99mmbelt/update_icon() + ..() + icon_state = "762belt-[round(ammo_count(),25)]" diff --git a/modular_splurt/code/modules/projectiles/boxes_magazines/external/pistol.dm b/modular_splurt/code/modules/projectiles/boxes_magazines/external/pistol.dm index 0f6d5c5d78..d67732ba46 100644 --- a/modular_splurt/code/modules/projectiles/boxes_magazines/external/pistol.dm +++ b/modular_splurt/code/modules/projectiles/boxes_magazines/external/pistol.dm @@ -5,10 +5,13 @@ desc = "A M1911 magazine." ammo_type = /obj/item/ammo_casing/c45/lethal +/obj/item/ammo_box/magazine/m45/rubber + ammo_type = /obj/item/ammo_casing/c45 + /obj/item/ammo_box/magazine/e45 name = "Enforcer magazine (.45 Rubber)" icon = 'modular_splurt/icons/obj/ammo.dmi' - icon_state = "enforcer-8" + icon_state = "enforcer" ammo_type = /obj/item/ammo_casing/c45 caliber = ".45" desc = "A Mk. 58 magazine. Loaded with rubber rounds." @@ -58,6 +61,33 @@ desc = "A Mk. 58 magazine. Loaded with Stun rounds." ammo_type = /obj/item/ammo_casing/c45/stun +/obj/item/ammo_box/magazine/m9 + name = "Cheap handgun magazine (9mm)" + icon = 'modular_splurt/icons/obj/ammo.dmi' + icon_state = "m9mmds" + ammo_type = /obj/item/ammo_casing/c9mm + caliber = "9mm" + desc = "A cheap handgun magazine." + max_ammo = 10 + +/obj/item/ammo_box/magazine/m9/update_icon() + ..() + icon_state = "m9mmds-[ammo_count() ? "10" : "0"]" + +/obj/item/ammo_box/magazine/m22 + name = "Cheap handgun magazine (.22LR)" + icon = 'modular_splurt/icons/obj/ammo.dmi' + icon_state = "pistol22" + ammo_type = /obj/item/ammo_casing/c22lr + caliber = ".22" + desc = "A cheap handgun magazine." + max_ammo = 12 + +/obj/item/ammo_box/magazine/m22/update_icon() + ..() + icon_state = "pistol22-[ammo_count() ? "12" : "0"]" + + // Pistol Magazines for the Sec Tecfab, yes its just easier to put it here for my own Sanity - Radar diff --git a/modular_splurt/code/modules/projectiles/boxes_magazines/internal/revolver.dm b/modular_splurt/code/modules/projectiles/boxes_magazines/internal/revolver.dm new file mode 100644 index 0000000000..b79c8d1a60 --- /dev/null +++ b/modular_splurt/code/modules/projectiles/boxes_magazines/internal/revolver.dm @@ -0,0 +1,5 @@ +/obj/item/ammo_box/magazine/internal/cylinder/rev22lr + name = ".22 revolver cylinder" + ammo_type = /obj/item/ammo_casing/c22lr + caliber = list(".22") + max_ammo = 6 diff --git a/modular_splurt/code/modules/projectiles/boxes_magazines/internal/shotgun.dm b/modular_splurt/code/modules/projectiles/boxes_magazines/internal/shotgun.dm index 36ad30d86d..7d9767733d 100644 --- a/modular_splurt/code/modules/projectiles/boxes_magazines/internal/shotgun.dm +++ b/modular_splurt/code/modules/projectiles/boxes_magazines/internal/shotgun.dm @@ -2,3 +2,10 @@ name = "super shorty shotgun internal magazine" ammo_type = /obj/item/ammo_casing/shotgun/rubbershot max_ammo = 2 + +/obj/item/ammo_box/magazine/internal/shot/varmitrifle + name = "hunting rifle internal magazine" + ammo_type = /obj/item/ammo_casing/c22lr + max_ammo = 10 + caliber = ".22" + multiload = 1 diff --git a/modular_splurt/code/modules/projectiles/guns/ballistic/automatic.dm b/modular_splurt/code/modules/projectiles/guns/ballistic/automatic.dm index 4c39ad5a58..fbd5f321dc 100644 --- a/modular_splurt/code/modules/projectiles/guns/ballistic/automatic.dm +++ b/modular_splurt/code/modules/projectiles/guns/ballistic/automatic.dm @@ -6,3 +6,75 @@ name = "security semi-auto PDW (rubber)" desc = "An outdated personal defence weapon. Uses 4.6x30mm rounds and is designated the WT-550 Semi-Automatic SMG. This one seems to only fire rubber bullets." mag_type = /obj/item/ammo_box/magazine/wt550m9/wtrubber + +// PLEASE BE CAREFUL WITH THIS!!! -Radar +/obj/item/gun/ballistic/automatic/m2a1 + name = "\improper M2A1 HMG (.50)" + desc = "A favorite by spaceship door gunners. This one has been ripped off it's mount." + icon_state = "m2a1closed100" + icon = 'modular_splurt/icons/obj/guns/projectile.dmi' + item_state = "m2a1closedmag" + lefthand_file = 'modular_splurt/icons/mob/inhands/weapons/guns_lefthand.dmi' + righthand_file = 'modular_splurt/icons/mob/inhands/weapons/guns_righthand.dmi' + fire_sound = "sound/weapons/gunshotshotgunshot.ogg" + w_class = WEIGHT_CLASS_HUGE + slot_flags = 0 + mag_type = /obj/item/ammo_box/magazine/m127x99mmbelt + weapon_weight = WEAPON_HEAVY + var/cover_open = FALSE + can_suppress = FALSE + burst_size = 5 + burst_shot_delay = 5 + spread = 10 //You are firing a .50 cal machine gun from a staning position + pin = /obj/item/firing_pin + automatic_burst_overlay = FALSE + +/obj/item/gun/ballistic/automatic/m2a1/restricted //for if Central command wants to have some fun + pin = /obj/item/firing_pin/implant/mindshield + +/obj/item/gun/ballistic/automatic/m2a1/examine(mob/user) + . = ..() + if(cover_open && magazine) + . += "It seems like you could use an empty hand to remove the magazine." + +/obj/item/gun/ballistic/automatic/m2a1/attack_self(mob/user) + cover_open = !cover_open + to_chat(user, "You [cover_open ? "open" : "close"] [src]'s cover.") + if(cover_open) + playsound(user, 'sound/weapons/sawopen.ogg', 60, 1) + else + playsound(user, 'sound/weapons/sawclose.ogg', 60, 1) + update_icon() + +/obj/item/gun/ballistic/automatic/m2a1/update_icon_state() + icon_state = "m2a1[cover_open ? "open" : "closed"][magazine ? CEILING(get_ammo(0)/25, 1)*25 : "-empty"]" + item_state = "m2a1[cover_open ? "openmag" : "closedmag"]" + +/obj/item/gun/ballistic/automatic/m2a1/afterattack(atom/target as mob|obj|turf, mob/living/user as mob|obj, flag, params) + if(cover_open) + to_chat(user, "[src]'s cover is open! Close it before firing!") + else + . = ..() + update_icon() + +/obj/item/gun/ballistic/automatic/m2a1/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags) + if(loc != user) + ..() + return //let them pick it up + if(!cover_open || (cover_open && !magazine)) + ..() + else if(cover_open && magazine) + //drop the mag + magazine.update_icon() + magazine.forceMove(drop_location()) + user.put_in_hands(magazine) + magazine = null + update_icon() + to_chat(user, "You remove the magazine from [src].") + playsound(user, 'sound/weapons/magout.ogg', 60, 1) + +/obj/item/gun/ballistic/automatic/m2a1/attackby(obj/item/A, mob/user, params) + if(!cover_open && istype(A, mag_type)) + to_chat(user, "[src]'s cover is closed! You can't insert a new mag.") + return + ..() diff --git a/modular_splurt/code/modules/projectiles/guns/ballistic/pistol.dm b/modular_splurt/code/modules/projectiles/guns/ballistic/pistol.dm index 6f6200fba3..b378b6e77b 100644 --- a/modular_splurt/code/modules/projectiles/guns/ballistic/pistol.dm +++ b/modular_splurt/code/modules/projectiles/guns/ballistic/pistol.dm @@ -67,3 +67,98 @@ /obj/item/gun/ballistic/automatic/pistol/enforcergold/update_icon_state() icon_state = "[initial(icon_state)][chambered ? "" : "-e"]" +/obj/item/gun/ballistic/automatic/pistol/m9mmpistol + name = "\improper Cheap 9mm Handgun" + desc = "An extremly cheap 9mm handgun produced by M&A Firearms." + icon = 'modular_splurt/icons/obj/guns/projectile.dmi' + icon_state = "ninemil" + w_class = WEIGHT_CLASS_NORMAL + mag_type = /obj/item/ammo_box/magazine/m9 + can_suppress = FALSE + obj_flags = UNIQUE_RENAME + unique_reskin = list("Default" = "ninemil", + "Maria" = "maria" + ) + +/obj/item/gun/ballistic/automatic/pistol/m9mmpistol/update_icon_state() + if(current_skin) + icon_state = "[unique_reskin[current_skin]][chambered ? "" : "-e"]" + else + icon_state = "[initial(icon_state)][chambered ? "" : "-e"]" + +/obj/item/gun/ballistic/automatic/pistol/m22pistol + name = "\improper Cheap .22 Handgun" + desc = "An extremly cheap .22 handgun produced by a Martain weapons maker. Great for mouse hunting, not much else." + icon = 'modular_splurt/icons/obj/guns/projectile.dmi' + icon_state = "silenced22" + w_class = WEIGHT_CLASS_NORMAL + mag_type = /obj/item/ammo_box/magazine/m22 + can_suppress = FALSE + +/obj/item/gun/ballistic/automatic/pistol/m22pistol/update_icon_state() + icon_state = "[initial(icon_state)][chambered ? "" : "-e"]" + +//gun parts + +/obj/item/gunpart //the parent + name = "generic gun part" + icon_state = "shotstock" + icon = 'modular_splurt/icons/obj/items_and_weapons.dmi' + item_state = "assembly" + lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' + desc = "generic gun part is generic." + force = 3 + w_class = WEIGHT_CLASS_NORMAL + throwforce = 5 + throw_speed = 3 + throw_range = 6 + hitsound = 'sound/weapons/genhit.ogg' + attack_verb = list("stubbed", "poked") + resistance_flags = NONE + +/obj/item/gunpart/pistol22frame + name = ".22 pistol frame" + desc = "a .22 pistol frame" + icon_state = "silenced22frame" + +/obj/item/gunpart/pistol22barrel + name = ".22 pistol barrel" + desc = "a .22 pistol barrel" + icon_state = "silenced22barrel" + +/obj/item/gunpart/pistol22bolt + name = ".22 pistol bolt" + desc = "a .22 pistol bolt" + icon_state = "silenced22bolt" + +/obj/item/gunpart/pistol9frame + name = "9mm pistol frame" + desc = "a 9mm pistol frame" + icon_state = "ninemilframe" + +/obj/item/gunpart/pistol9slide + name = "9mm pistol slide" + desc = "a 9mm pistol slide and barrel" + icon_state = "ninemilslide" + +/datum/crafting_recipe/pistol22assemble + name = "Assemble .22 Pistol" + result = /obj/item/gun/ballistic/automatic/pistol/m22pistol + reqs = list(/obj/item/gunpart/pistol22frame = 1, + /obj/item/gunpart/pistol22barrel = 1, + /obj/item/gunpart/pistol22bolt = 1) + tools = list(TOOL_SCREWDRIVER) + time = 50 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + +/datum/crafting_recipe/pistol9assemble + name = "Assemble 9mm Pistol" + result = /obj/item/gun/ballistic/automatic/pistol/m9mmpistol + reqs = list(/obj/item/gunpart/pistol9frame = 1, + /obj/item/gunpart/pistol9slide = 1) + tools = list(TOOL_SCREWDRIVER) + time = 50 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON diff --git a/modular_splurt/code/modules/projectiles/guns/ballistic/revolver.dm b/modular_splurt/code/modules/projectiles/guns/ballistic/revolver.dm index cfee6657c7..6b212cea5b 100644 --- a/modular_splurt/code/modules/projectiles/guns/ballistic/revolver.dm +++ b/modular_splurt/code/modules/projectiles/guns/ballistic/revolver.dm @@ -9,11 +9,36 @@ "Fitz Special" = "detective_fitz", "Police Positive Special" = "detective_police", "Blued Steel" = "detective_blued", - "Stainless Steel" = "detective_stainless" + "Stainless Steel" = "detective_stainless", + "Deckard Revolver" = "detective_bladerunner" ) LAZYADD(unique_reskin, extra_reskin) . = ..() +/obj/item/gun/ballistic/revolver/r22lr + name = "\improper .22 Revolver" + icon = 'modular_splurt/icons/obj/guns/projectile.dmi' + desc = "A cheap .22LR Revolver. Pray the timing keeps." + icon_state = "22revolver" + mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev22lr + +/obj/item/gunpart/revolver22frame + name = ".22 revolver frame" + desc = "a .22 revolver frame" + icon_state = "22revolverframe" + +/obj/item/gunpart/revolver22cylinder + name = ".22 revolver cylinder" + desc = "a .22 revolver cylinder" + icon_state = "22revolvercylinder" + +/datum/crafting_recipe/revolver22assemble + name = "Assemble .22 revolver" + result = /obj/item/gun/ballistic/revolver/r22lr + reqs = list(/obj/item/gunpart/revolver22frame = 1, + /obj/item/gunpart/revolver22cylinder = 1) + tools = list(TOOL_SCREWDRIVER) + time = 50 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON -/obj/item/gun/ballistic/revolver/doublebarrel/update_icon_state() - icon_state = "[initial(icon_state)][chambered ? "" : "_broke"]" diff --git a/modular_splurt/code/modules/projectiles/guns/ballistic/shotgun.dm b/modular_splurt/code/modules/projectiles/guns/ballistic/shotgun.dm index e49b22da2a..cd4cff2f3a 100644 --- a/modular_splurt/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/modular_splurt/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -11,3 +11,137 @@ w_class = WEIGHT_CLASS_NORMAL slot_flags = ITEM_SLOT_BELT weapon_weight = WEAPON_LIGHT + +/obj/item/gun/ballistic/revolver/doublebarrel/sawn //a dedicated sawn off shotgun for crates and what not + name = "sawn-off double-barreled shotgun" + desc = "Omar's coming!" + icon_state = "sawnshotgun" + item_state = "sawnshotgun" + w_class = WEIGHT_CLASS_NORMAL + weapon_weight = WEAPON_MEDIUM + force = 10 + flags_1 = CONDUCT_1 + slot_flags = ITEM_SLOT_BELT + mag_type = /obj/item/ammo_box/magazine/internal/shot/dual + obj_flags = UNIQUE_RENAME + unique_reskin = list("Default" = "sawnshotgun", + "Dark Red Finish" = "sawnshotgun-d", + "Ash" = "sawnshotgun-f", + "Faded Grey" = "sawnshotgun-g", + "Maple" = "sawnshotgun-l", + "Rosewood" = "sawnshotgun-p" + ) + +// Rifles + +/obj/item/gun/ballistic/shotgun/huntingrifle + name = "cheap hunting rifle (7.62mm)" + desc = "A cheap hunting rifle chambered 7.62mm." + icon = 'modular_splurt/icons/obj/guns/projectile.dmi' + icon_state = "308" + item_state = "308" + lefthand_file = 'modular_splurt/icons/mob/inhands/weapons/guns_lefthand.dmi' + righthand_file = 'modular_splurt/icons/mob/inhands/weapons/guns_righthand.dmi' + fire_sound = "sound/weapons/Gunshot4.ogg" + fire_delay = 5 + mag_type = /obj/item/ammo_box/magazine/internal/boltaction + w_class = WEIGHT_CLASS_BULKY + weapon_weight = WEAPON_MEDIUM + sawn_desc = "A cheap hunting rifle that bubba got ahold of." + +/obj/item/gun/ballistic/shotgun/huntingrifle/attackby(obj/item/A, mob/user, params) + ..() + if(A.tool_behaviour == TOOL_SAW || istype(A, /obj/item/gun/energy/plasmacutter)) + sawoff(user) + if(istype(A, /obj/item/melee/transforming/energy)) + var/obj/item/melee/transforming/energy/W = A + if(W.active) + sawoff(user) + +/obj/item/gun/ballistic/shotgun/varmintrifle + name = "cheap varmint rifle (.22)" + desc = "A cheap varmint rifle chambered in .22 Long rifle. It has a nonremovable magazine" + icon = 'modular_splurt/icons/obj/guns/projectile.dmi' + icon_state = "varmint_rifle" + item_state = "varmintrifle" + lefthand_file = 'modular_splurt/icons/mob/inhands/weapons/guns_lefthand.dmi' + righthand_file = 'modular_splurt/icons/mob/inhands/weapons/guns_righthand.dmi' + fire_sound = "sound/weapons/Gunshot2.ogg" + fire_delay = 5 + mag_type = /obj/item/ammo_box/magazine/internal/shot/varmitrifle + w_class = WEIGHT_CLASS_NORMAL + weapon_weight = WEAPON_MEDIUM + +/obj/item/gunpart/rifle308sotck + name = "hunting rifle stock" + desc = "a hunting rifle stock" + icon_state = "308stock" + +/obj/item/gunpart/rifle308barrel + name = "hunting rifle barrel assmebly" + desc = "a hunting rifle barrel and bolt" + icon_state = "308barrel" + +/obj/item/gunpart/riflevarmintsotck + name = "varmint rifle stock" + desc = "a varmit rifle stock" + icon_state = "varmint_riflestock" + +/obj/item/gunpart/riflevarmintbarrel + name = "varmint rifle barrel assebmly" + desc = "a varmint rifle barrel and bolt" + icon_state = "308barrel" + +/obj/item/gunpart/shotgunstock + name = "shotgun stock" + desc = "a shotgun stock for double barrel shotguns" + +/obj/item/gunpart/shotgunbarrel + name = "double barrel shotgun assembly" + desc = "a double barrel shotgun assembly" + icon_state = "shotbarrel" + +/obj/item/gunpart/shotgunbarrelsawn + name = "sawn double barrel shotgun assembly" + desc = "a pre-sawn double barrel shotgun assembly" + icon_state = "sawnshotbarrel" + +/datum/crafting_recipe/riflehuntingassemble + name = "Assemble hunting rifle" + result = /obj/item/gun/ballistic/shotgun/huntingrifle + reqs = list(/obj/item/gunpart/rifle308sotck = 1, + /obj/item/gunpart/rifle308barrel = 1) + tools = list(TOOL_SCREWDRIVER) + time = 50 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + +/datum/crafting_recipe/riflevarmintassemble + name = "Assemble varmint rifle" + result = /obj/item/gun/ballistic/shotgun/varmintrifle + reqs = list(/obj/item/gunpart/riflevarmintsotck = 1, + /obj/item/gunpart/riflevarmintbarrel = 1) + tools = list(TOOL_SCREWDRIVER) + time = 50 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + +/datum/crafting_recipe/doublebarrelsawnassemble + name = "Assemble sawn off double barrel shotgun" + result = /obj/item/gun/ballistic/revolver/doublebarrel/sawn + reqs = list(/obj/item/gunpart/shotgunstock = 1, + /obj/item/gunpart/shotgunbarrelsawn = 1) + tools = list(TOOL_SCREWDRIVER) + time = 50 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + +/datum/crafting_recipe/doublebarrelassemble + name = "Assemble double barrel shotgun" + result = /obj/item/gun/ballistic/revolver/doublebarrel + reqs = list(/obj/item/gunpart/shotgunstock = 1, + /obj/item/gunpart/shotgunbarrel = 1) + tools = list(TOOL_SCREWDRIVER) + time = 50 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON diff --git a/modular_splurt/code/modules/projectiles/guns/energy/lasers.dm b/modular_splurt/code/modules/projectiles/guns/energy/lasers.dm new file mode 100644 index 0000000000..8a7ff167e4 --- /dev/null +++ b/modular_splurt/code/modules/projectiles/guns/energy/lasers.dm @@ -0,0 +1,50 @@ +/obj/item/gun/energy/civilian + name = "civlian energy pistol" + desc = "A cheap energy pistol produced by Wattz and Hertz. Has no external ammo indicator. It looks easily modfiable" + icon = 'modular_splurt/icons/obj/guns/energy.dmi' + icon_state = "wattz1000" + item_state = "caplaser" + w_class = WEIGHT_CLASS_SMALL + cell_type = /obj/item/stock_parts/cell{charge = 700; maxcharge = 700} + ammo_type = list(/obj/item/ammo_casing/energy/disabler) + weapon_weight = WEAPON_LIGHT + inaccuracy_modifier = 0.25 + can_flashlight = 0 + +/obj/item/gun/energy/civilian/lethal + name = "moddfied civlian energy pistol" + desc = "A cheap energy pistol produced by Wattz and Hertz. Has no external ammo indicator. It has been modded to shoot lethal lasers, somehow." + icon_state = "magnetowattz" + ammo_type = list(/obj/item/ammo_casing/energy/laser) + +/obj/item/gunpart/civilianlaserframe + name = "civlian energy pistol frame" + desc = "a civilian energy pistol frame" + icon_state = "wattz1000frame" + +/obj/item/gunpart/civilianlaserbarrel + name = "civilian energy pistol barrel" + desc = "a civilian energy pistol barrel" + icon_state = "wattz1000barrel" + +/datum/crafting_recipe/civilianlaserassemble + name = "Assemble civilian energy pistol" + result = /obj/item/gun/energy/civilian + reqs = list(/obj/item/gunpart/civilianlaserframe = 1, + /obj/item/gunpart/civilianlaserbarrel = 1) + tools = list(TOOL_SCREWDRIVER) + time = 50 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + +/datum/crafting_recipe/civilianlaserupgrade + name = "Moddify civilian energy pistol" + result = /obj/item/gun/energy/civilian/lethal + reqs = list(/obj/item/gun/energy/civilian = 1, + /obj/item/stack/cable_coil = 5, + /obj/item/stock_parts/capacitor = 4, + /obj/item/stock_parts/micro_laser = 1) + tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + time = 50 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON diff --git a/modular_splurt/code/modules/reagents/chemistry/reagents/enlargement.dm b/modular_splurt/code/modules/reagents/chemistry/reagents/enlargement.dm new file mode 100644 index 0000000000..acba6fce9c --- /dev/null +++ b/modular_splurt/code/modules/reagents/chemistry/reagents/enlargement.dm @@ -0,0 +1,25 @@ +/datum/reagent/fermi/breast_enlarger/overdose_process(mob/living/carbon/M) + if(M.client?.prefs.cit_toggles & BREAST_ENLARGEMENT) + var/obj/item/organ/genital/breasts/tity = M.getorganslot(ORGAN_SLOT_BREASTS) + tity?.fluid_id = tity?.original_fluid_id + . = ..() + +/datum/reagent/fermi/penis_enlarger/overdose_process(mob/living/carbon/human/M) + if(M.client?.prefs.cit_toggles & PENIS_ENLARGEMENT) + var/obj/item/organ/genital/penis/pp = M.getorganslot(ORGAN_SLOT_PENIS) + var/obj/item/organ/genital/testicles/balls = M.getorganslot(ORGAN_SLOT_TESTICLES) + pp?.fluid_id = pp?.original_fluid_id + balls?.fluid_id = balls?.original_fluid_id + . = ..() + +/datum/reagent/fermi/butt_enlarger/overdose_process(mob/living/M) + if(M.client?.prefs.cit_toggles & BUTT_ENLARGEMENT) + var/obj/item/organ/genital/butt/ass = M.getorganslot(ORGAN_SLOT_BUTT) + ass?.fluid_id = ass?.original_fluid_id + . = ..() + +/datum/reagent/fermi/butt_enlarger/overdose_process(mob/living/M) + if(M.client?.prefs.cit_toggles & BELLY_INFLATION) + var/obj/item/organ/genital/belly/gut = M.getorganslot(ORGAN_SLOT_BELLY) + gut?.fluid_id = gut?.original_fluid_id + . = ..() diff --git a/modular_splurt/icons/mob/inhands/weapons/guns_lefthand.dmi b/modular_splurt/icons/mob/inhands/weapons/guns_lefthand.dmi new file mode 100644 index 0000000000..878c8db9ec Binary files /dev/null and b/modular_splurt/icons/mob/inhands/weapons/guns_lefthand.dmi differ diff --git a/modular_splurt/icons/mob/inhands/weapons/guns_righthand.dmi b/modular_splurt/icons/mob/inhands/weapons/guns_righthand.dmi new file mode 100644 index 0000000000..3630e7bce2 Binary files /dev/null and b/modular_splurt/icons/mob/inhands/weapons/guns_righthand.dmi differ diff --git a/modular_splurt/icons/obj/ammo.dmi b/modular_splurt/icons/obj/ammo.dmi index 83994c105c..18e00352c9 100644 Binary files a/modular_splurt/icons/obj/ammo.dmi and b/modular_splurt/icons/obj/ammo.dmi differ diff --git a/modular_splurt/icons/obj/guns/energy.dmi b/modular_splurt/icons/obj/guns/energy.dmi new file mode 100644 index 0000000000..fe10fad467 Binary files /dev/null and b/modular_splurt/icons/obj/guns/energy.dmi differ diff --git a/modular_splurt/icons/obj/guns/projectile.dmi b/modular_splurt/icons/obj/guns/projectile.dmi index 4cec2902ac..ec43093504 100644 Binary files a/modular_splurt/icons/obj/guns/projectile.dmi and b/modular_splurt/icons/obj/guns/projectile.dmi differ diff --git a/modular_splurt/icons/obj/items_and_weapons.dmi b/modular_splurt/icons/obj/items_and_weapons.dmi index 17872b4711..150649e50b 100644 Binary files a/modular_splurt/icons/obj/items_and_weapons.dmi and b/modular_splurt/icons/obj/items_and_weapons.dmi differ diff --git a/tgstation.dme b/tgstation.dme index 678b38b29d..50a5945ed0 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -186,6 +186,7 @@ #include "code\__DEFINES\splurtcode\sound.dm" #include "code\__DEFINES\splurtcode\subsystems.dm" #include "code\__DEFINES\splurtcode\traits.dm" +#include "code\__DEFINES\splurtcode\arousal\genitals.dm" #include "code\__DEFINES\storage\_storage.dm" #include "code\__DEFINES\storage\volumetrics.dm" #include "code\__DEFINES\zeros\species.dm" @@ -1498,6 +1499,7 @@ #include "code\modules\admin\permissionedit.dm" #include "code\modules\admin\player_panel.dm" #include "code\modules\admin\player_panel2.dm" +#include "code\modules\admin\playtimes.dm" #include "code\modules\admin\sound_emitter.dm" #include "code\modules\admin\sql_message_system.dm" #include "code\modules\admin\stickyban.dm" @@ -2288,6 +2290,7 @@ #include "code\modules\food_and_drinks\recipes\tablecraft\recipes_spaghetti.dm" #include "code\modules\games\cas.dm" #include "code\modules\games\unum.dm" +#include "code\modules\holiday\dynamic.dm" #include "code\modules\holiday\easter.dm" #include "code\modules\holiday\holidays.dm" #include "code\modules\holiday\halloween\bartholomew.dm" @@ -3935,7 +3938,6 @@ #include "modular_sand\code\game\objects\items\devices\PDA\PDA.dm" #include "modular_sand\code\game\objects\items\devices\radio\electropack.dm" #include "modular_sand\code\game\objects\items\devices\radio\headset.dm" -#include "modular_sand\code\game\objects\items\devices\radio\radio.dm" #include "modular_sand\code\game\objects\items\lewd_items\leash.dm" #include "modular_sand\code\game\objects\items\lewd_items\vibrator.dm" #include "modular_sand\code\game\objects\items\lewd_items\genital_equipment\condom.dm" @@ -4193,7 +4195,6 @@ #include "modular_sand\code\modules\vending\kinkmate.dm" #include "modular_sand\code\modules\vending\wardrobes.dm" #include "modular_splurt\code\__HELPERS\_cit_helpers.dm" -#include "modular_splurt\code\__HELPERS\cmp.dm" #include "modular_splurt\code\__HELPERS\icons.dm" #include "modular_splurt\code\__HELPERS\matrices.dm" #include "modular_splurt\code\_globalvars\lists\global_lewd.dm" @@ -4271,8 +4272,6 @@ #include "modular_splurt\code\game\object\structures\dresser.dm" #include "modular_splurt\code\modules\mob\living\living.dm" #include "modular_splurt\code\modules\mob\living\living_defines.dm" -#include "modular_splurt\code\modules\clothing\gloves.dm" -#include "modular_splurt\code\modules\clothing\suits\heavy.dm" #include "modular_splurt\code\game\object\structures\false_walls.dm" #include "modular_splurt\code\game\object\structures\flora.dm" #include "modular_splurt\code\game\object\structures\ghost_role_spawners.dm" @@ -4313,8 +4312,12 @@ #include "modular_splurt\code\modules\antagonists\wendigo\mob\mob_equip.dm" #include "modular_splurt\code\modules\antagonists\wendigo\mob\organs_bodyparts.dm" #include "modular_splurt\code\modules\antagonists\wendigo\mob\update_icons.dm" +#include "modular_splurt\code\modules\arousal\arousal.dm" +#include "modular_splurt\code\modules\arousal\genitals.dm" #include "modular_splurt\code\modules\arousal\genitals_sprite_accessories.dm" #include "modular_splurt\code\modules\arousal\organs\breasts.dm" +#include "modular_splurt\code\modules\arousal\organs\butt.dm" +#include "modular_splurt\code\modules\arousal\organs\penis.dm" #include "modular_splurt\code\modules\arousal\organs\testicles.dm" #include "modular_splurt\code\modules\atmospherics\auxgm\gas_types.dm" #include "modular_splurt\code\modules\atmospherics\machinery\components\unary_devices\outlet_injector.dm" @@ -4323,6 +4326,8 @@ #include "modular_splurt\code\modules\cargo\exports\engineering.dm" #include "modular_splurt\code\modules\cargo\packs\armory.dm" #include "modular_splurt\code\modules\cargo\packs\engine.dm" +#include "modular_splurt\code\modules\cargo\packs\goodies.dm" +#include "modular_splurt\code\modules\cargo\packs\misc.dm" #include "modular_splurt\code\modules\client\client_procs.dm" #include "modular_splurt\code\modules\client\preferences.dm" #include "modular_splurt\code\modules\client\preferences_savefile.dm" @@ -4334,6 +4339,7 @@ #include "modular_splurt\code\modules\client\loadout\shoes.dm" #include "modular_splurt\code\modules\client\loadout\suit.dm" #include "modular_splurt\code\modules\client\loadout\uniform.dm" +#include "modular_splurt\code\modules\clothing\gloves.dm" #include "modular_splurt\code\modules\clothing\kinkyclothes.dm" #include "modular_splurt\code\modules\clothing\head\misc.dm" #include "modular_splurt\code\modules\clothing\lewd_clothing\collar\kink_collars.dm" @@ -4347,6 +4353,7 @@ #include "modular_splurt\code\modules\clothing\neck\_neck.dm" #include "modular_splurt\code\modules\clothing\shoes\miscellaneous.dm" #include "modular_splurt\code\modules\clothing\suits\cloaks.dm" +#include "modular_splurt\code\modules\clothing\suits\heavy.dm" #include "modular_splurt\code\modules\clothing\suits\jobs.dm" #include "modular_splurt\code\modules\clothing\suits\vest.dm" #include "modular_splurt\code\modules\clothing\under\miscellaneous.dm" @@ -4397,14 +4404,18 @@ #include "modular_splurt\code\modules\power\reactor\fuel_rods.dm" #include "modular_splurt\code\modules\power\reactor\rbmk.dm" #include "modular_splurt\code\modules\power\reactor\reactor_cargo.dm" +#include "modular_splurt\code\modules\projectiles\ammunition\ballistic\pistol.dm" #include "modular_splurt\code\modules\projectiles\ammunition\ballistic\smg.dm" #include "modular_splurt\code\modules\projectiles\boxes_magazines\ammo_boxes.dm" +#include "modular_splurt\code\modules\projectiles\boxes_magazines\external\automatic.dm" #include "modular_splurt\code\modules\projectiles\boxes_magazines\external\pistol.dm" +#include "modular_splurt\code\modules\projectiles\boxes_magazines\internal\revolver.dm" #include "modular_splurt\code\modules\projectiles\boxes_magazines\internal\shotgun.dm" #include "modular_splurt\code\modules\projectiles\guns\ballistic\automatic.dm" #include "modular_splurt\code\modules\projectiles\guns\ballistic\pistol.dm" #include "modular_splurt\code\modules\projectiles\guns\ballistic\revolver.dm" #include "modular_splurt\code\modules\projectiles\guns\ballistic\shotgun.dm" +#include "modular_splurt\code\modules\projectiles\guns\energy\lasers.dm" #include "modular_splurt\code\modules\projectiles\guns\energy\special.dm" #include "modular_splurt\code\modules\projectiles\guns\misc\grenade_launcher.dm" #include "modular_splurt\code\modules\projectiles\projectile\bullets\cannonball.dm" @@ -4412,6 +4423,7 @@ #include "modular_splurt\code\modules\reagents\chemistry\reagents\alcohol_reagents.dm" #include "modular_splurt\code\modules\reagents\chemistry\reagents\cit_reagents.dm" #include "modular_splurt\code\modules\reagents\chemistry\reagents\drug_reagents.dm" +#include "modular_splurt\code\modules\reagents\chemistry\reagents\enlargement.dm" #include "modular_splurt\code\modules\reagents\chemistry\reagents\food_reagents.dm" #include "modular_splurt\code\modules\reagents\chemistry\recipes\drugs.dm" #include "modular_splurt\code\modules\reagents\chemistry\recipes\lewd.dm" diff --git a/tgui/packages/tgui/interfaces/Limbgrower.js b/tgui/packages/tgui/interfaces/Limbgrower.js index b91c7e4b45..e7e04d4f51 100644 --- a/tgui/packages/tgui/interfaces/Limbgrower.js +++ b/tgui/packages/tgui/interfaces/Limbgrower.js @@ -1,5 +1,5 @@ import { useBackend, useSharedState } from '../backend'; -import { Box, Button, Dimmer, Icon, LabeledList, Section, Tabs } from '../components'; +import { Box, Button, Dimmer, Icon, LabeledList, Section, Tabs, ProgressBar } from '../components'; import { Window } from '../layouts'; export const Limbgrower = (props, context) => { @@ -22,7 +22,7 @@ export const Limbgrower = (props, context) => { + height={760}> {!!busy && ( @@ -42,12 +42,19 @@ export const Limbgrower = (props, context) => {
    Containing data for {disk['name']},
    Attempting to create genitalia will use the disk's data. + Any Synthetic Frameworks created will + overwrite the race category selected.
    ) : disk['disk'] ? "No data." : "No disk."}
    - {total_reagents} / {max_reagents} reagent capacity used. + {/* Total_reagents could be null or undefined, so let's be safe */ + `Total Reagents/Maximum Reagents: + ${total_reagents ? total_reagents : 0}/${max_reagents}` + } + {reagents.map(reagent => ( @@ -56,13 +63,15 @@ export const Limbgrower = (props, context) => { label={reagent.reagent_name} buttons={( act('empty_reagent', { - reagent_type: reagent.reagent_type, - })} /> + onClick={() => { + act('empty_reagent', { reagent_type: reagent.reagent_type }); + + }} /> )}> {reagent.reagent_amount}u diff --git a/tgui/packages/tgui/interfaces/PlayerPlaytimes.js b/tgui/packages/tgui/interfaces/PlayerPlaytimes.js index d1fca6ea7f..fa162f185f 100644 --- a/tgui/packages/tgui/interfaces/PlayerPlaytimes.js +++ b/tgui/packages/tgui/interfaces/PlayerPlaytimes.js @@ -1,5 +1,5 @@ import { useBackend } from '../backend'; -import { Button, LabeledList, Section } from '../components'; +import { Button, Icon, Section, Table, Tooltip } from '../components'; import { Window } from '../layouts'; export const PlayerPlaytimes = (props, context) => { @@ -10,38 +10,126 @@ export const PlayerPlaytimes = (props, context) => { return ( -
    - + + + +
    + +
    +
    + +
    + Ckey +
    +
    + +
    + Real Name +
    +
    + +
    + Flags +
    +
    + +
    + Actions +
    +
    +
    {clients.map(client => ( - -
    -
    );