diff --git a/code/WorkInProgress/Hydrothings.dm b/code/WorkInProgress/Hydrothings.dm index d133c3bbc8a7c..3547fe249431e 100644 --- a/code/WorkInProgress/Hydrothings.dm +++ b/code/WorkInProgress/Hydrothings.dm @@ -540,7 +540,7 @@ /obj/machinery/power/apc/owlery noalerts = 1 start_charge = 0 - req_access = access_owlerymaint + req_access = list(access_owlerymaint) /obj/owlerysign/owlplaque diff --git a/code/datums/sims.dm b/code/datums/sims.dm index f8c01eb4f1db4..f13c6fe26aeaa 100644 --- a/code/datums/sims.dm +++ b/code/datums/sims.dm @@ -442,12 +442,7 @@ var/list/motives = list() var/list/datum/simsHolder/simsHolders = list() var/list/datum/simsMotive/simsMotives = list() - -#ifdef RP_MODE var/provide_plumbobs = 0 -#else - var/provide_plumbobs = 1 -#endif New() ..() @@ -585,16 +580,11 @@ var/global/datum/simsControl/simsController = new() make_motives() addMotive(/datum/simsMotive/hunger) addMotive(/datum/simsMotive/hunger/thirst) - //addMotive(/datum/simsMotive/hygiene) - //addMotive(/datum/simsMotive/bladder) - //addMotive(/datum/simsMotive/energy) - //addMotive(/datum/simsMotive/sanity) wolf make_motives() addMotive(/datum/simsMotive/hunger/wolfy) addMotive(/datum/simsMotive/hunger/thirst) - //addMotive(/datum/simsMotive/hygiene) New(var/mob/living/L) ..() @@ -665,6 +655,12 @@ var/global/datum/simsControl/simsController = new() motives[initial(M.name)] = M M.holder = src + proc/removeMotive(var/name) + if((name in src.motives)) + var/datum/simsMotive/S = src.motives[name] + src.motives.Remove(name) + qdel(S) + proc/getValue(var/name) if (name in motives) var/datum/simsMotive/M = motives[name] diff --git a/code/datums/traits.dm b/code/datums/traits.dm index 85c9d22e8d1e4..ee5600d3489ee 100644 --- a/code/datums/traits.dm +++ b/code/datums/traits.dm @@ -296,7 +296,6 @@ onRemove(mob/owner) owner.bioHolder?.RemoveEffect("deaf") - /datum/trait/nolegs name = "Stumped" desc = "Because of a freak accident involving a piano, a forklift, and lots of vodka, both of your legs had to be amputated. Fortunately, NT has kindly supplied you with a wheelchair out of the goodness of their heart. (due to regulations)" @@ -363,6 +362,28 @@ created_organ.donor = owner owner.organHolder.receive_organ(created_organ, created_organ.organ_holder_name) +/datum/trait/stinky + name = "Stinky" + desc = "Your body has exceedingly sensitive sweat glands that overproduce, causing you to become stinky unless frequently showered." + id = "stinky" + icon_state = "stinky" + category = list("body") + points = 1 + + onAdd(var/mob/owner) + if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + if (!H.sims) + H.sims = new /datum/simsHolder(H) + H.sims.addMotive(/datum/simsMotive/hygiene) + + onRemove(var/mob/owner) + if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + if (!H.sims) + H.sims = new /datum/simsHolder(H) + H.sims.removeMotive("Hygiene") + // LANGUAGE - Yellow Border /datum/trait/swedish name = "Swedish" diff --git a/code/mob/new_player.dm b/code/mob/new_player.dm index e086fb8a16740..5afd665a48cef 100644 --- a/code/mob/new_player.dm +++ b/code/mob/new_player.dm @@ -259,6 +259,7 @@ var/global/datum/mutex/limited/latespawning = new(5 SECONDS) S.mind?.add_antagonist(ROLE_SYNDICATE_ROBOT, respect_mutual_exclusives = FALSE, source = ANTAGONIST_SOURCE_LATE_JOIN) S.Equip_Bank_Purchase(S.mind?.purchased_bank_item) S.apply_roundstart_events() + S.show_laws() SPAWN(1 DECI SECOND) S.bioHolder?.mobAppearance?.pronouns = S.client.preferences.AH.pronouns S.choose_name() diff --git a/code/modules/admin/toggles.dm b/code/modules/admin/toggles.dm index a2a3410e0d253..236ee14f89bdd 100644 --- a/code/modules/admin/toggles.dm +++ b/code/modules/admin/toggles.dm @@ -996,6 +996,7 @@ client/proc/toggle_ghost_respawns() SHOW_VERB_DESC NOT_IF_TOGGLES_ARE_OFF global_sims_mode = !global_sims_mode + simsController.provide_plumbobs = !simsController.provide_plumbobs message_admins(SPAN_INTERNAL("[key_name(usr)] toggled sims mode. [global_sims_mode ? "Oh, the humanity!" : "Phew, it's over."]")) for (var/mob/M in mobs) LAGCHECK(LAG_LOW) diff --git a/code/modules/status_system/statusEffects.dm b/code/modules/status_system/statusEffects.dm index 2768c5662a0d3..99f2ef2cb6cd3 100644 --- a/code/modules/status_system/statusEffects.dm +++ b/code/modules/status_system/statusEffects.dm @@ -2229,6 +2229,7 @@ . = ..() if(ishuman(owner)) H = owner + H.add_stam_mod_max("stam_filthy", -5) onUpdate(timePassed) . = ..() @@ -2239,6 +2240,7 @@ . = ..() if (H.sims?.getValue("Hygiene") < SIMS_HYGIENE_THRESHOLD_FILTHY) H.setStatus("rancid", null) + H.remove_stam_mod_max("stam_filthy") /datum/statusEffect/rancid id = "rancid" @@ -2252,6 +2254,7 @@ if(ismob(owner)) var/mob/M = owner M.bioHolder?.AddEffect("sims_stinky") + M.add_stam_mod_max("stam_rancid", -35) OTHER_START_TRACKING_CAT(owner, TR_CAT_RANCID_STUFF) onRemove() @@ -2259,6 +2262,7 @@ if(ismob(owner)) var/mob/M = owner M.bioHolder?.RemoveEffect("sims_stinky") + M.remove_stam_mod_max("stam_rancid") OTHER_STOP_TRACKING_CAT(owner, TR_CAT_RANCID_STUFF) /datum/statusEffect/fragrant diff --git a/code/obj.dm b/code/obj.dm index 81416e7c082a6..d3723d8de8928 100644 --- a/code/obj.dm +++ b/code/obj.dm @@ -30,6 +30,10 @@ var/turf/T = get_turf(src) T?.UpdateDirBlocks() src.update_access_from_txt() +#ifdef CHECK_MORE_RUNTIMES + if (src.req_access && !islist(src.req_access)) + stack_trace("[src] ([src.type]) initialized at \[[src.x], [src.y], [src.z]\] with non-list req_access >:(") +#endif Move(NewLoc, direct) if(usr==0) usr = null diff --git a/code/obj/item/ai_modules.dm b/code/obj/item/ai_modules.dm index c07a77e3019b6..7cea87f5c72d7 100644 --- a/code/obj/item/ai_modules.dm +++ b/code/obj/item/ai_modules.dm @@ -230,7 +230,7 @@ ABSTRACT_TYPE(/obj/item/aiModule/syndicate) src.job = initial(src.job) update_law_text(user, lawTarget) - src.lawText = "[lawTarget ? lawTarget : "__________"] holds the rank of [src.job], regardless of current rank or station." + src.lawText = "[lawTarget ? lawTarget : "__________"] hold(s) the rank of [src.job], regardless of current rank or station." return ..() attack_self(mob/user) diff --git a/code/obj/item/clothing/shoes.dm b/code/obj/item/clothing/shoes.dm index 6ff78b61fbedf..8d946a390b037 100644 --- a/code/obj/item/clothing/shoes.dm +++ b/code/obj/item/clothing/shoes.dm @@ -393,6 +393,24 @@ TYPEINFO(/obj/item/clothing/shoes/moon) step_priority = 999 is_syndicate = 1 + equipped(mob/user, slot) + . = ..() + RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(on_step)) + + unequipped(mob/user) + UnregisterSignal(user, COMSIG_MOVABLE_MOVED) + . = ..() + + proc/on_step(mob/user, atom/previous_loc, dir) + var/turf/T = get_turf(user) + if (user.lying || !(T.turf_flags & MOB_STEP)) + return + if (prob(10)) + if (ON_COOLDOWN(src, "EXPLOSION", 1 SECOND)) + return + var/turf/explosion_target = get_turf(pick(view(8, user))) + new /obj/effects/explosion/dangerous(explosion_target) + /obj/item/clothing/shoes/ziggy name = "familiar boots" desc = "A pair of striking red boots. Though they look clean, the soles are absolutely coated in a really fine, white powder." diff --git a/icons/ui/traits.dmi b/icons/ui/traits.dmi index 47754c8b0a863..2fc6a199570b8 100644 Binary files a/icons/ui/traits.dmi and b/icons/ui/traits.dmi differ diff --git a/maps/kondaru.dmm b/maps/kondaru.dmm index 6c6096bb62645..ed8f799e228a0 100644 --- a/maps/kondaru.dmm +++ b/maps/kondaru.dmm @@ -33711,7 +33711,6 @@ pixel_x = 5; pixel_y = -4 }, -/obj/rack, /turf/simulated/floor/engine{ allows_vehicles = 0 }, diff --git a/strings/changelog.txt b/strings/changelog.txt index 5961da8c7a88c..61bd96828e512 100644 --- a/strings/changelog.txt +++ b/strings/changelog.txt @@ -1,5 +1,11 @@ (t)mon oct 28 24 +(u)LeahTheTech +(+)Boom boots now occasionally cause explosions around them when walking. +(u)Glamurio (Ryou) +(p)20763 +(e)🆕🎨💪|C-Feature, C-Sprites, A-Traits +(*)Hygiene makes a comeback with the new "Stinky" trait. (u)Facsimile (p)21186 (e)🪲📦|C-Bug, A-Game-Objects