Skip to content

Commit

Permalink
Merge branch 'ci-improvments' of https://github.com/FalloutFalcon/Shi…
Browse files Browse the repository at this point in the history
…ptest into ci-improvments
  • Loading branch information
FalloutFalcon committed Oct 10, 2024
2 parents 6e444f1 + 140eaa7 commit 251d899
Show file tree
Hide file tree
Showing 58 changed files with 199 additions and 103 deletions.
2 changes: 2 additions & 0 deletions code/__DEFINES/traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -259,6 +259,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_DWARF "dwarf"
#define TRAIT_FASTMED "fast_med_use"
#define TRAIT_SILENT_FOOTSTEPS "silent_footsteps" //makes your footsteps completely silent
#define TRAIT_PAIN_RESIST "pain_resistance" //you resist pain
#define TRAIT_NICE_SHOT "nice_shot" //hnnnnnnnggggg..... you're pretty good....
/// The holder of this trait has antennae or whatever that hurt a ton when noogied
#define TRAIT_ANTENNAE "antennae"
Expand Down Expand Up @@ -329,6 +330,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_BALD "bald"
#define TRAIT_BADTOUCH "bad_touch"
#define TRAIT_ANXIOUS "anxious"
#define TRAIT_ANALGESIA "congenital_analgesia"

/// Trait granted by lipstick
#define LIPSTICK_TRAIT "lipstick_trait"
Expand Down
2 changes: 2 additions & 0 deletions code/datums/brain_damage/mild.dm
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@

/datum/brain_trauma/mild/healthy/on_gain()
owner.set_screwyhud(SCREWYHUD_HEALTHY)
ADD_TRAIT(owner, TRAIT_ANALGESIA, type)
..()

/datum/brain_trauma/mild/healthy/on_life()
Expand All @@ -119,6 +120,7 @@

/datum/brain_trauma/mild/healthy/on_lose()
owner.set_screwyhud(SCREWYHUD_NONE)
REMOVE_TRAIT(owner, TRAIT_ANALGESIA, type)
..()

/datum/brain_trauma/mild/muscle_weakness
Expand Down
2 changes: 1 addition & 1 deletion code/datums/components/embedded.dm
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@
if(harmful)
var/damage = weapon.w_class * remove_pain_mult
limb.receive_damage(brute=(1-pain_stam_pct) * damage, stamina=pain_stam_pct * damage) //It hurts to rip it out, get surgery you dingus.
victim.emote("scream")
victim.force_scream()
victim.visible_message("<span class='notice'>[victim] successfully rips [weapon] out of [victim.p_their()] [limb.name]!</span>", "<span class='notice'>You successfully remove [weapon] from your [limb.name].</span>")
else
victim.visible_message("<span class='notice'>[victim] successfully rips [weapon] off of [victim.p_their()] [limb.name]!</span>", "<span class='notice'>You successfully remove [weapon] from your [limb.name].</span>")
Expand Down
2 changes: 1 addition & 1 deletion code/datums/components/tackle.dm
Original file line number Diff line number Diff line change
Expand Up @@ -376,7 +376,7 @@
user.apply_damage(30, BRUTE, BODY_ZONE_HEAD)
playsound(user, 'sound/effects/blobattack.ogg', 60, TRUE)
playsound(user, 'sound/effects/splat.ogg', 70, TRUE)
user.emote("scream")
user.force_scream()
user.gain_trauma(/datum/brain_trauma/severe/paralysis/paraplegic) // oopsie indeed!
shake_camera(user, 7, 7)
user.overlay_fullscreen("flash", /atom/movable/screen/fullscreen/flash)
Expand Down
2 changes: 1 addition & 1 deletion code/datums/diseases/advance/symptoms/deafness.dm
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ Bonus
if(istype(ears) && ears.damage < ears.maxHealth)
to_chat(M, "<span class='userdanger'>Your ears pop painfully and start bleeding!</span>")
ears.damage = max(ears.damage, ears.maxHealth)
M.emote("scream")
M.force_scream()
else
to_chat(M, "<span class='userdanger'>Your ears pop and begin ringing loudly!</span>")
M.minimumDeafTicks(20)
8 changes: 4 additions & 4 deletions code/datums/diseases/advance/symptoms/fire.dm
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,12 @@ Bonus
Firestacks_stage_4(M, A)
M.IgniteMob()
to_chat(M, "<span class='userdanger'>Your skin bursts into flames!</span>")
M.emote("scream")
M.force_scream()
if(5)
Firestacks_stage_5(M, A)
M.IgniteMob()
to_chat(M, "<span class='userdanger'>Your skin erupts into an inferno!</span>")
M.emote("scream")
M.force_scream()

/datum/symptom/fire/proc/Firestacks_stage_4(mob/living/M, datum/disease/advance/A)
M.adjust_fire_stacks(1 * power)
Expand Down Expand Up @@ -147,15 +147,15 @@ Bonus
Alkali_fire_stage_4(M, A)
M.IgniteMob()
to_chat(M, "<span class='userdanger'>Your sweat bursts into flames!</span>")
M.emote("scream")
M.force_scream()
if(5)
if(M.fire_stacks < 0)
M.visible_message("<span class='warning'>[M]'s sweat sizzles and pops on contact with water!</span>")
explosion(get_turf(M),-1,(-1 + explosion_power),(2 * explosion_power))
Alkali_fire_stage_5(M, A)
M.IgniteMob()
to_chat(M, "<span class='userdanger'>Your skin erupts into an inferno!</span>")
M.emote("scream")
M.force_scream()

/datum/symptom/alkali/proc/Alkali_fire_stage_4(mob/living/M, datum/disease/advance/A)
var/get_stacks = 6 * power
Expand Down
2 changes: 1 addition & 1 deletion code/datums/diseases/gastrolisis.dm
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
new_eyes.Insert(affected_mob, drop_if_replaced = TRUE)
affected_mob.visible_message("<span class='warning'>[affected_mob]'s eyes fall out, with snail eyes taking its place!</span>", \
"<span class='userdanger'>You scream in pain as your eyes are pushed out by your new snail eyes!</span>")
affected_mob.emote("scream")
affected_mob.force_scream()
return
var/obj/item/organ/tongue/tongue = locate(/obj/item/organ/tongue/snail) in affected_mob.internal_organs
if(!tongue && prob(5))
Expand Down
2 changes: 1 addition & 1 deletion code/datums/elements/world_icon.dm
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@
SIGNAL_HANDLER

if(!world_icon_state)
source.icon_state = source.icon_state
source.icon_state = source.item_state
return

INVOKE_ASYNC(src, PROC_REF(check_world_icon_state), source)
Expand Down
19 changes: 19 additions & 0 deletions code/datums/traits/negative.dm
Original file line number Diff line number Diff line change
Expand Up @@ -642,6 +642,25 @@
return
SEND_SIGNAL(quirk_holder, COMSIG_ADD_MOOD_EVENT, "wrong_cigs", /datum/mood_event/wrong_brand)

/datum/quirk/congenital_analgesia
name = "Congenital Analgesia"
desc = "Due to a rare condition, you have never felt pain. Physical pain, at least. That breakup still hurt."
value = -1
mob_traits = list(TRAIT_ANALGESIA)
gain_text = "<span class='danger'>You've never really felt pain.</span>"
lose_text = "<span class='notice'>...Oh god, you're sore.</span>"
medical_record_text = "Patient is unable to process pain"

/datum/quirk/congenital_analgesia/on_spawn()
var/mob/living/carbon/human/H = quirk_holder
H.set_screwyhud(SCREWYHUD_HEALTHY)

/datum/quirk/congenital_analgesia/remove()
if(quirk_holder)
var/mob/living/carbon/human/H = quirk_holder
H.set_screwyhud(SCREWYHUD_NONE)


/datum/quirk/unstable
name = "Unstable"
desc = "Due to past troubles, you are unable to recover your sanity if you lose it. Be very careful managing your mood!"
Expand Down
24 changes: 14 additions & 10 deletions code/game/machinery/doors/airlock.dm
Original file line number Diff line number Diff line change
Expand Up @@ -167,16 +167,7 @@
if(abandoned)
var/outcome = rand(1,100)
switch(outcome)
if(1 to 9)
var/turf/here = get_turf(src)
for(var/turf/closed/T in range(2, src))
here.PlaceOnTop(T.type)
qdel(src)
return
here.PlaceOnTop(/turf/closed/wall)
qdel(src)
return
if(9 to 11)
if(1 to 11)
lights = FALSE
locked = TRUE
if(12 to 15)
Expand All @@ -185,6 +176,19 @@
welded = TRUE
if(24 to 30)
panel_open = TRUE
if(31 to 40)
panel_open = TRUE
set_electrified(MACHINE_ELECTRIFIED_PERMANENT)
if(41 to 50)
seal = new /obj/item/door_seal(src)
modify_max_integrity(max_integrity * AIRLOCK_SEAL_MULTIPLIER)
if(51 to 60)
new previous_airlock(loc)
qdel(src)
if(69)
new /obj/effect/decal/cleanable/oil/slippery(loc)


update_appearance()

/obj/machinery/door/airlock/ComponentInitialize()
Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/doors/door.dm
Original file line number Diff line number Diff line change
Expand Up @@ -395,7 +395,7 @@
L.manual_emote("roar")
else if(ishuman(L)) //For humans
L.adjustBruteLoss(DOOR_CRUSH_DAMAGE)
L.manual_emote("scream")
L.force_manual_scream()
L.Paralyze(100)
else if(ismonkey(L)) //For monkeys
L.adjustBruteLoss(DOOR_CRUSH_DAMAGE)
Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/harvester.dm
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@
target = get_turf(src)
for(var/obj/item/bodypart/BP in operation_order) //first we do non-essential limbs
BP.drop_limb()
C.emote("scream")
C.force_scream()
if(BP.body_zone != "chest")
BP.forceMove(target) //Move the limbs right next to it, except chest, that's a weird one
BP.drop_organs()
Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/outpost_electrolyzer.dm
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@
playsound(src, 'sound/effects/splat.ogg', 50, TRUE)

if(iscarbon(L) && L.stat == CONSCIOUS)
L.emote("scream")
L.force_scream()

// Instantly lie down, also go unconscious from the pain, before you die.
L.Unconscious(100)
Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/suit_storage_unit.dm
Original file line number Diff line number Diff line change
Expand Up @@ -450,7 +450,7 @@
mob_occupant.adjustFireLoss(rand(20, 36))
else
mob_occupant.adjustFireLoss(rand(10, 16))
mob_occupant.emote("scream")
mob_occupant.force_scream()
addtimer(CALLBACK(src, PROC_REF(cook)), 50)
else
uv_cycles = (BASE_UV_CYCLES - lasers_bonus)
Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/transformer.dm
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@
update_appearance()

playsound(src.loc, 'sound/items/welder.ogg', 50, TRUE)
H.emote("scream") // It is painful
H.force_scream() // It is painful
H.adjustBruteLoss(max(0, 80 - H.getBruteLoss())) // Hurt the human, don't try to kill them though.

// Sleep for a couple of ticks to allow the human to see the pain
Expand Down
17 changes: 12 additions & 5 deletions code/game/objects/items.dm
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,14 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
///Icon file for right inhand overlays
var/righthand_file = 'icons/mob/inhands/items_righthand.dmi'

///If set it will add a world icon using item_state
var/world_file

///Handled by world_icon element
var/world_state
///Handled by world_icon element
var/inventory_state

///This is a bitfield that defines what variations exist for bodyparts like Digi legs.
var/supports_variations = null

Expand Down Expand Up @@ -207,10 +215,6 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb

var/canMouseDown = FALSE

//for setting world icons on the go
var/inventory_state
var/world_state

/obj/item/Initialize()

if(attack_verb)
Expand Down Expand Up @@ -309,6 +313,9 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb

updateEmbedding()

if(world_file)
AddElement(/datum/element/world_icon, null, world_file, icon)

if(GLOB.rpg_loot_items)
AddComponent(/datum/component/fantasy)

Expand Down Expand Up @@ -1219,7 +1226,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
*/
/obj/item/proc/on_accidental_consumption(mob/living/carbon/victim, mob/living/carbon/user, obj/item/source_item, discover_after = TRUE)
if(get_sharpness() && force >= 5) //if we've got something sharp with a decent force (ie, not plastic)
INVOKE_ASYNC(victim, TYPE_PROC_REF(/mob, emote), "scream")
INVOKE_ASYNC(victim, TYPE_PROC_REF(/mob, force_scream))
victim.visible_message("<span class='warning'>[victim] looks like [victim.p_theyve()] just bit something they shouldn't have!</span>", \
"<span class='boldwarning'>OH GOD! Was that a crunch? That didn't feel good at all!!</span>")

Expand Down
4 changes: 2 additions & 2 deletions code/game/objects/items/defib.dm
Original file line number Diff line number Diff line change
Expand Up @@ -441,7 +441,7 @@
var/mob/living/M = H.pulledby
if(M.electrocute_act(30, H))
M.visible_message("<span class='danger'>[M] is electrocuted by [M.p_their()] contact with [H]!</span>")
M.emote("scream")
M.force_scream()

/obj/item/shockpaddles/proc/do_disarm(mob/living/M, mob/living/user)
if(req_defib && defib.safety)
Expand Down Expand Up @@ -501,7 +501,7 @@
user.visible_message("<span class='boldannounce'><i>[user] shocks [H] with \the [src]!</span>", "<span class='warning'>You shock [H] with \the [src]!</span>")
playsound(src, 'sound/machines/defib_zap.ogg', 100, TRUE, -1)
playsound(src, 'sound/weapons/egloves.ogg', 100, TRUE, -1)
H.emote("scream")
H.force_scream()
shock_touching(45, H)
if(H.can_heartattack() && !H.undergoing_cardiac_arrest())
if(!H.stat)
Expand Down
3 changes: 3 additions & 0 deletions code/game/objects/items/melee/knife.dm
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@
force = 20
throwforce = 20
attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "cut")
world_file = 'icons/obj/world/melee.dmi'

/obj/item/melee/knife/survival
name = "survival knife"
Expand All @@ -115,6 +116,7 @@
force = 15
throwforce = 15
attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "cut")
world_file = 'icons/obj/world/melee.dmi'

/obj/item/melee/knife/bone
name = "bone dagger"
Expand All @@ -127,6 +129,7 @@
force = 15
throwforce = 15
custom_materials = null
world_file = 'icons/obj/world/melee.dmi'

/obj/item/melee/knife/combat/cyborg
name = "cyborg knife"
Expand Down
1 change: 0 additions & 1 deletion code/game/objects/items/storage/backpack.dm
Original file line number Diff line number Diff line change
Expand Up @@ -483,7 +483,6 @@
desc = "A large duffel bag for holding extra tactical supplies."
icon_state = "duffel-syndie"
item_state = "duffel-syndieammo"
slowdown = 0
resistance_flags = FIRE_PROOF

/obj/item/storage/backpack/duffelbag/syndie/ComponentInitialize()
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/structures/guillotine.dm
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@
else
H.apply_damage(15 * blade_sharpness, BRUTE, head)
log_combat(user, H, "dropped the blade on", src, " non-fatally")
H.emote("scream")
H.force_scream()

if (blade_sharpness > 1)
blade_sharpness -= 1
Expand Down
4 changes: 2 additions & 2 deletions code/game/objects/structures/kitchen_spike.dm
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@
playsound(src.loc, 'sound/effects/splat.ogg', 25, TRUE)
L.visible_message("<span class='danger'>[user] slams [L] onto the meat spike!</span>", "<span class='userdanger'>[user] slams you onto the meat spike!</span>", "<span class='hear'>You hear a squishy wet noise.</span>")
L.forceMove(drop_location())
L.emote("scream")
L.force_scream()
L.add_splatter_floor()
L.adjustBruteLoss(30)
L.setDir(2)
Expand Down Expand Up @@ -128,7 +128,7 @@
M.adjustBruteLoss(30)
src.visible_message(text("<span class='danger'>[M] falls free of [src]!</span>"))
unbuckle_mob(M,force=1)
M.emote("scream")
M.force_scream()
M.AdjustParalyzed(20)

/obj/structure/kitchenspike/Destroy()
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/structures/morgue.dm
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@ GLOBAL_LIST_EMPTY(crematoriums)

for(var/mob/living/M in conts)
if (M.stat != DEAD)
M.emote("scream")
M.force_scream()
if(user)
log_combat(user, M, "cremated")
else
Expand Down
13 changes: 9 additions & 4 deletions code/modules/awaymissions/mission_code/snowdin.dm
Original file line number Diff line number Diff line change
Expand Up @@ -218,14 +218,19 @@
PP.adjustFireLoss(25)
if(plasma_parts.len)
var/obj/item/bodypart/NB = pick(plasma_parts) //using the above-mentioned list to get a choice of limbs for dismember() to use
PP.emote("scream")
NB.limb_id = "plasmaman" //change the species_id of the limb to that of a plasmaman
NB.static_icon = 'icons/mob/species/plasmaman/bodyparts.dmi'
NB.no_update = TRUE
NB.change_bodypart_status()
PP.visible_message(
"<span class='warning'>[L] screams in pain as [L.p_their()] [NB] melts down to the bone!</span>",
"<span class='userdanger'>You scream out in pain as your [NB] melts down to the bone, leaving an eerie plasma-like glow where flesh used to be!</span>")
PP.force_scream()
if(!HAS_TRAIT(PP, TRAIT_ANALGESIA))
PP.visible_message(
"<span class='warning'>[L] screams in pain as [L.p_their()] [NB] melts down to the bone!</span>",
"<span class='userdanger'>You scream out in pain as your [NB] melts down to the bone, leaving an eerie plasma-like glow where flesh used to be!</span>")
else
PP.visible_message(
"<span class='warning'>[L] lets out panicked gasps as [L.p_their()] [NB] melts down to the bone!</span>",
"<span class='userdanger'>You gasp in shock as your [NB] melts down to the bone, leaving an eerie plasma-like glow where flesh used to be!</span>")
if(!plasma_parts.len && !robo_parts.len) //a person with no potential organic limbs left AND no robotic limbs, time to turn them into a plasmaman
PP.IgniteMob()
PP.set_species(/datum/species/plasmaman)
Expand Down
2 changes: 1 addition & 1 deletion code/modules/clothing/shoes/_shoes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@
else // if one of us moved
user.visible_message("<span class='danger'>[our_guy] stamps on [user]'s hand, mid-shoelace [tied ? "knotting" : "untying"]!</span>", "<span class='userdanger'>Ow! [our_guy] stamps on your hand!</span>", list(our_guy))
to_chat(our_guy, "<span class='userdanger'>You stamp on [user]'s hand! What the- [user.p_they()] [user.p_were()] [tied ? "knotting" : "untying"] your shoelaces!</span>")
user.emote("scream")
user.force_scream()
if(istype(L))
var/obj/item/bodypart/ouchie = L.get_bodypart(pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM))
if(ouchie)
Expand Down
2 changes: 2 additions & 0 deletions code/modules/flufftext/Hallucination.dm
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ GLOBAL_LIST_INIT(hallucination_list, list(
next_hallucination = world.time + rand(100, 600)

/mob/living/carbon/proc/set_screwyhud(hud_type)
if(HAS_TRAIT(src, TRAIT_ANALGESIA))
hud_type = SCREWYHUD_HEALTHY
hal_screwyhud = hud_type
update_health_hud()

Expand Down
Loading

0 comments on commit 251d899

Please sign in to comment.