Skip to content

Commit

Permalink
Merge pull request #299 from MisterGrimm/fixes
Browse files Browse the repository at this point in the history
Lots of fixes and some addons
  • Loading branch information
MisterGrimm authored Jan 29, 2025
2 parents 783acab + 32887c5 commit 32b2685
Show file tree
Hide file tree
Showing 39 changed files with 496 additions and 354 deletions.
463 changes: 240 additions & 223 deletions _maps/map_files/AegisVII/AegisVII.dmm

Large diffs are not rendered by default.

77 changes: 77 additions & 0 deletions code/_onclick/hud/alert.dm
Original file line number Diff line number Diff line change
Expand Up @@ -567,6 +567,83 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
final.Turn(difference)
animate(src, transform = final, time = 5, loop = 0)

/atom/movable/screen/alert/necrosense
name = "Necro Sense"
desc = "Allows you to find those who are not whole."
icon_state = "cult_sense" //TODO : get our own sprites
alerttooltipstyle = "cult"
var/angle = 0
var/mob/living/carbon/human/necromorph/Cviewer = null

/atom/movable/screen/alert/necrosense/Initialize(mapload)
. = ..()
START_PROCESSING(SSprocessing, src)

/atom/movable/screen/alert/necrosense/Destroy()
Cviewer = null
STOP_PROCESSING(SSprocessing, src)
return ..()

/atom/movable/screen/alert/necrosense/process()
var/mob/living/carbon/human/necromorph/sensor = owner
var/mob/target = sensor.sense_target

if(!sensor.mind)
return
if(!sensor.sense_target)
return
if(target.stat == DEAD)
to_chat(sensor, "<span class='cult italic'>Your target has died.</span>")
sensor.searching = FALSE
sensor.sense_target = null
sensor.clear_alert("necrosense")

var/turf/P = get_turf(target)
var/turf/Q = get_turf(sensor)
if(!P || !Q || (P.z != Q.z)) //The target is on a different Z level, we cannot sense that far.
icon_state = "runed_sense2"
desc = "You can no longer sense your target's presence."
sensor.searching = FALSE
sensor.sense_target = null
return
if(isliving(target))
var/mob/living/real_target = target
desc = "You are currently tracking [real_target.real_name] in [get_area_name(target)]."
else
desc = "You are currently tracking [target] in [get_area_name(target)]."
var/target_angle = get_angle(Q, P)
var/target_dist = get_dist(P, Q)
cut_overlays()
switch(target_dist)
if(0 to 1)
icon_state = "runed_sense2"
if(2 to 8)
icon_state = "arrow8"
if(9 to 15)
icon_state = "arrow7"
if(16 to 22)
icon_state = "arrow6"
if(23 to 29)
icon_state = "arrow5"
if(30 to 36)
icon_state = "arrow4"
if(37 to 43)
icon_state = "arrow3"
if(44 to 50)
icon_state = "arrow2"
if(51 to 57)
icon_state = "arrow1"
if(58 to 64)
icon_state = "arrow0"
if(65 to 400)
icon_state = "arrow"
var/difference = target_angle - angle
angle = target_angle
if(!difference)
return
var/matrix/final = matrix(transform)
final.Turn(difference)
animate(src, transform = final, time = 5, loop = 0)

//GUARDIANS

Expand Down
2 changes: 1 addition & 1 deletion code/datums/components/caltrop.dm
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@
if(!istype(O))
return

if(O.bodypart_flags & BP_NO_PAIN)
if(O.bodytype & BODYTYPE_ROBOTIC)
return

if (!(flags & CALTROP_BYPASS_SHOES))
Expand Down
3 changes: 3 additions & 0 deletions code/datums/storage/storage.dm
Original file line number Diff line number Diff line change
Expand Up @@ -723,6 +723,9 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches)
if(ismob(over_object))
if(over_object != user)
return
//If we don't check for necros they can get guns through backpack inventories
if(isnecromorph(over_object))
return

INVOKE_ASYNC(src, PROC_REF(open_storage), user)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,14 @@
new /obj/item/clothing/mask/muzzle/breath(src)

/obj/structure/closet/secure_closet/medical3
name = "'s locker"
name = "medical locker"
req_access = list(ACCESS_SURGERY)
icon_state = "med_secure"

/obj/structure/closet/secure_closet/medical3/PopulateContents()
..()
new /obj/item/radio/headset/headset_med(src)
new /obj/item/healthanalyzer(src)
new /obj/item/defibrillator/loaded(src)
new /obj/item/clothing/gloves/color/latex/nitrile(src)
new /obj/item/storage/belt/medical(src)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
var/volume = 0
///Used to track if anything of note has happen while running process_atmos()
var/excited = TRUE
biomass_produce = BIOMASS_HARVEST_SMALL

/obj/machinery/portable_atmospherics/Initialize(mapload)
. = ..()
Expand Down
1 change: 0 additions & 1 deletion code/modules/atmospherics/machinery/portable/scrubber.dm
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,6 @@

var/movable = FALSE
use_overlays = FALSE
biomass_produce = BIOMASS_HARVEST_MEDIUM

/obj/machinery/portable_atmospherics/scrubber/huge/movable
movable = TRUE
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,4 +80,4 @@
path = /obj/item/clothing/neck/tie/horrible

/datum/loadout_item/neck/link_scryer
path = /obj/item/clothing/neck/link_scryer
path = /obj/item/clothing/neck/link_scryer/loaded
3 changes: 3 additions & 0 deletions code/modules/mob/dead/observer/observer.dm
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,9 @@ Works together with spawning an observer, noted above.
if(!ghost.client?.prefs || ghost.client.prefs.read_preference(/datum/preference/toggle/monochrome_ghost))
ghost.add_client_colour(/datum/client_colour/ghostmono)

if(ismarkereye(usr)) //So signals don't float around if someone ghosts insteads of leaving horde
qdel(src)

return ghost

/mob/living/ghostize(can_reenter_corpse = TRUE, admin_ghost)
Expand Down
4 changes: 0 additions & 4 deletions code/modules/mob/living/simple_animal/hostile/regalrat.dm
Original file line number Diff line number Diff line change
Expand Up @@ -309,10 +309,6 @@
/mob/living/simple_animal/hostile/rat/death(gibbed, cause_of_death = "Unknown")
if(!ckey)
..(TRUE)
if(!gibbed)
var/obj/item/food/deadmouse/mouse = new(loc)
mouse.icon_state = icon_dead
mouse.name = name
SSmobs.cheeserats -= src // remove rats on death
return ..()

Expand Down
9 changes: 5 additions & 4 deletions code/modules/reagents/chemistry/reagents/medicine_reagents.dm
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@
taste_description = "bitterness"
reagent_state = LIQUID
color = "#00bfff"
overdose_threshold = 60
overdose_threshold = 45
metabolization_rate = 0.1
value = 3.5

Expand All @@ -107,7 +107,8 @@

/datum/reagent/medicine/inaprovaline/affect_blood(mob/living/carbon/C, removed)
APPLY_CHEM_EFFECT(C, CE_STABLE, 1)
APPLY_CHEM_EFFECT(C, CE_PAINKILLER, 30)
APPLY_CHEM_EFFECT(C, CE_PAINKILLER, 40)
C.adjustBruteLoss(-2 * removed, updating_health = FALSE) //This is effectively 0.2 heal due to metab

/datum/reagent/medicine/inaprovaline/overdose_start(mob/living/carbon/C)
C.add_movespeed_modifier(/datum/movespeed_modifier/inaprovaline)
Expand All @@ -119,8 +120,8 @@
. = ..()
if(prob(5))
C.set_slurring_if_lower(10 SECONDS)
if(prob(2))
C.drowsyness = max(C.drowsyness, 5)
C.adjustOrganLoss(ORGAN_SLOT_EYES, 0.2, updating_health = FALSE)
APPLY_CHEM_EFFECT(C, CE_PAINKILLER, 80) //Im invincible! ...Why do I feel funny?

/datum/reagent/medicine/bicaridine
name = "Bicaridine"
Expand Down
4 changes: 0 additions & 4 deletions code/modules/reagents/chemistry/recipes/gateway.dm
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
// Reagents whose primary purpose is to be upgraded to another reagent.
/datum/chemical_reaction/acetone
results = list(/datum/reagent/acetone = 3)
required_reagents = list(/datum/reagent/fuel/oil = 1, /datum/reagent/fuel = 1, /datum/reagent/oxygen = 1)

/datum/chemical_reaction/oil
results = list(/datum/reagent/fuel/oil = 3)
required_reagents = list(/datum/reagent/fuel = 1, /datum/reagent/hydrogen = 1, /datum/reagent/carbon = 1)
Expand Down
4 changes: 2 additions & 2 deletions code/modules/reagents/chemistry/recipes/medicine.dm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

/datum/chemical_reaction/inaprovaline
results = list(/datum/reagent/medicine/inaprovaline = 3)
required_reagents = list(/datum/reagent/acetone = 1, /datum/reagent/carbon = 1, /datum/reagent/consumable/sugar = 1, /datum/reagent/phenol = 1)
required_reagents = list(/datum/reagent/acetone = 1, /datum/reagent/carbon = 1, /datum/reagent/medicine/morphine = 1)

/datum/chemical_reaction/dylovene
results = list(/datum/reagent/medicine/dylovene = 3)
Expand Down Expand Up @@ -100,7 +100,7 @@

/datum/chemical_reaction/morphine
results = list(/datum/reagent/medicine/morphine = 2)
required_reagents = list(/datum/reagent/carbon = 2, /datum/reagent/hydrogen = 2, /datum/reagent/consumable/ethanol = 1, /datum/reagent/oxygen = 1)
required_reagents = list(/datum/reagent/carbon = 2, /datum/reagent/nitrogen = 2, /datum/reagent/consumable/ethanol = 1, /datum/reagent/oxygen = 1)
required_temp = 480

/datum/chemical_reaction/imidazoline
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@


/datum/slapcraft_recipe/metal_ball
name = "metal pipe"
name = "metal ball"
examine_hint = "You could form this into a ball, starting by heating it with a welder..."
category = SLAP_CAT_COMPONENTS
can_disassemble = FALSE
Expand Down
4 changes: 2 additions & 2 deletions code/modules/surgery/bodyparts/_bodyparts.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1100,10 +1100,10 @@
/obj/item/bodypart/proc/get_modified_bleed_rate()
var/bleed_rate = cached_bleed_rate
if(owner.body_position == LYING_DOWN)
bleed_rate *= 0.60
bleed_rate *= 0.5 //laying cuts bloodloss by half

if(HAS_TRAIT(src, TRAIT_BODYPART_GRABBED))
bleed_rate *= 0.3
bleed_rate *= 0.3 //Apply the pressure!

if(bandage)
bleed_rate *= bandage.absorption_rate_modifier
Expand Down
3 changes: 0 additions & 3 deletions deadspace/code/__DEFINES/colors.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,6 @@
#define COLOR_BLOOD_HUMAN "#a10808"
#define COLOR_BLOOD_NECRO "#583001"

#define COLOR_NECRO_YELLOW "#ffff00"
#define COLOR_NECRO_DARK_YELLOW "#aaaa00"
#define COLOR_MARKER_RED "#ff4444"
#define COLOR_HARVESTER_RED rgb(255, 68, 68, 128)
#define COLOR_BIOMASS_GREEN "#82bf26"
#define COLOR_BIOLUMINESCENT_ORANGE "#ffb347"
Expand Down
6 changes: 3 additions & 3 deletions deadspace/code/__DEFINES/layers.dm
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#define MARKER_SIGNAL_PLANE 250
#define MARKER_SIGNAL_PLANE 505

#define OBSCURITY_PLANE 210
#define OBSCURITY_PLANE 503

#define OBSCURITY_MASKING_PLANE 215
#define OBSCURITY_MASKING_PLANE 504
#define OBSCURITY_MASKING_RENDER_TARGET "*OBSCURITY_MASKING_RENDER_TARGET"
2 changes: 1 addition & 1 deletion deadspace/code/biomass/source_types.dm
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/datum/biomass_source/baseline
remaining_mass = INFINITY //Never runs out
mass_per_tick = 0.5
mass_per_tick = 0.3

/// It's not supposed to ever deplet
/datum/biomass_source/baseline/absorb_biomass(delta_time)
Expand Down
8 changes: 6 additions & 2 deletions deadspace/code/corruption/corruption.dm
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,7 @@

/obj/structure/corruption/proc/on_nearby_turf_change(turf/source, path, list/new_baseturfs, flags, list/post_change_callbacks)
if(isopenspaceturf(source))
if(ispath(/turf/open/openspace))
if(ispath(path, /turf/open/openspace) || ispath(path, /turf/open/space/openspace))
return
UnregisterSignal(GetBelow(source), list(COMSIG_TURF_CHANGE, COMSIG_TURF_NECRO_CORRUPTED, COMSIG_TURF_NECRO_UNCORRUPTED))

Expand All @@ -220,18 +220,22 @@
else
dirs_to_spread &= ~get_dir(loc, source)
UnregisterSignal(source, list(COMSIG_TURF_NECRO_CORRUPTED, COMSIG_TURF_NECRO_UNCORRUPTED))
if(ispath(/turf/open/openspace))
if(ispath(path, /turf/open/openspace) || ispath(path, /turf/open/space/openspace))
register_turf(GetBelow(source), get_dir(loc, source))

update_spread_state()

/obj/structure/corruption/proc/on_nearby_turf_corrupted(turf/source)
dirs_to_spread &= ~get_dir(loc, source)
update_spread_state()
UnregisterSignal(source, COMSIG_TURF_NECRO_CORRUPTED)
RegisterSignal(source, COMSIG_TURF_NECRO_UNCORRUPTED, PROC_REF(on_nearby_turf_uncorrupted))

/obj/structure/corruption/proc/on_nearby_turf_uncorrupted(turf/source)
dirs_to_spread |= get_dir(loc, source)
update_spread_state()
UnregisterSignal(source, COMSIG_TURF_NECRO_UNCORRUPTED)
RegisterSignal(source, COMSIG_TURF_NECRO_CORRUPTED, PROC_REF(on_nearby_turf_corrupted))

/obj/structure/corruption/proc/on_master_delete()
master.corruption -= src
Expand Down
2 changes: 1 addition & 1 deletion deadspace/code/corruption/structures/cyst.dm
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
return ..()

/obj/structure/necromorph/cyst/proc/on_entered(atom/source, mob/living/carbon/human/arrived)
if(!ready || isnecromorph(arrived) || isprojectile(arrived))
if(!ready || isnecromorph(arrived) || isprojectile(arrived) || !arrived.stat == CONSCIOUS)
return
var/angle = SIMPLIFY_DEGREES(get_angle(src, arrived) - dir2angle(src.dir))
if(angle > CYST_SHOOT_ANGLE*0.5)
Expand Down
Loading

0 comments on commit 32b2685

Please sign in to comment.