Skip to content

Commit 94cc278

Browse files
Merge pull request #105 from MistakeNot4892/fork/pyrelight
Updating from Neb dev
2 parents a70904a + 5ce7d9b commit 94cc278

File tree

100 files changed

+1003
-470
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

100 files changed

+1003
-470
lines changed

code/__defines/mobs.dm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,7 @@
233233
#define DATA_INGREDIENT_FLAGS /decl/reagent_data_field/ingredient_flags
234234
#define DATA_MASK_COLOR /decl/reagent_data_field/mask_color
235235
#define DATA_MASK_NAME /decl/reagent_data_field/mask_name
236+
#define DATA_EXTRA_COLOR /decl/reagent_data_field/extra_color
236237

237238
// Milk and chees data flags
238239
#define DATA_MILK_DONOR /decl/reagent_data_field/milk_donor

code/__defines/reagent_data_fields.dm

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@
1717
/decl/reagent_data_field/mask_color
1818
uid = "rdf_mask_color"
1919

20+
/// An extra colour used for things like additional reagent overlays on soups, so that you can have noodle soup with veggie bits a different colour than the main soup.
21+
/decl/reagent_data_field/extra_color
22+
uid = "rdf_extra_color"
23+
2024
/decl/reagent_data_field/mask_name
2125
uid = "rdf_mask_name"
2226

code/_helpers/animations.dm

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -81,22 +81,11 @@
8181
var/segment = 360/segments
8282
if(!clockwise)
8383
segment = -segment
84-
var/list/matrices = list()
85-
for(var/i in 1 to segments-1)
86-
var/matrix/M = matrix(transform)
87-
M.Turn(segment*i)
88-
matrices += M
89-
var/matrix/last = matrix(transform)
90-
matrices += last
91-
9284
speed /= segments
9385

94-
if(parallel)
95-
animate(src, transform = matrices[1], time = speed, loops , flags = ANIMATION_PARALLEL)
96-
else
97-
animate(src, transform = matrices[1], time = speed, loops)
86+
animate(src, transform = matrix().Turn(segment), time = speed, loops, flags = parallel ? (ANIMATION_PARALLEL | ANIMATION_RELATIVE) : ANIMATION_RELATIVE)
9887
for(var/i in 2 to segments) //2 because 1 is covered above
99-
animate(transform = matrices[i], time = speed)
88+
animate(transform = matrix().Turn(segment), time = speed, loops, flags = ANIMATION_RELATIVE)
10089
//doesn't have an object argument because this is "Stacking" with the animate call above
10190
//3 billion% intentional
10291

code/_helpers/game.dm

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,11 @@
288288
src.dest_y = dest_y
289289

290290
/proc/MixColors(const/list/colors)
291+
switch(length(colors))
292+
if(1)
293+
return colors[1]
294+
if(2)
295+
return BlendRGBasHSV(colors[1], colors[2], 0.5)
291296
var/list/reds = list()
292297
var/list/blues = list()
293298
var/list/greens = list()

code/_helpers/medical_scans.dm

Lines changed: 56 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,66 @@
1-
/mob/living/human/proc/get_raw_medical_data(var/tag = FALSE)
2-
var/mob/living/human/H = src
3-
var/list/scan = list()
4-
5-
scan["name"] = H.name
6-
scan["time"] = stationtime2text()
1+
/mob/living/proc/get_raw_medical_data(var/tag = FALSE)
2+
. = list()
3+
.["name"] = name
4+
.["time"] = stationtime2text()
75
var/brain_result
8-
if(H.should_have_organ(BP_BRAIN))
9-
var/obj/item/organ/internal/brain = GET_INTERNAL_ORGAN(H, BP_BRAIN)
10-
if(!brain || H.stat == DEAD || (H.status_flags & FAKEDEATH))
6+
if(should_have_organ(BP_BRAIN))
7+
var/obj/item/organ/internal/brain = GET_INTERNAL_ORGAN(src, BP_BRAIN)
8+
if(!brain || stat == DEAD || (status_flags & FAKEDEATH))
119
brain_result = 0
12-
else if(H.stat != DEAD)
10+
else if(stat != DEAD)
1311
brain_result = round(max(0,(1 - brain.damage/brain.max_damage)*100))
1412
else
1513
brain_result = -1
16-
scan["brain_activity"] = brain_result
14+
.["brain_activity"] = brain_result
1715

1816
var/pulse_result
19-
if(H.should_have_organ(BP_HEART))
20-
var/obj/item/organ/internal/heart/heart = H.get_organ(BP_HEART, /obj/item/organ/internal/heart)
17+
if(should_have_organ(BP_HEART))
18+
var/obj/item/organ/internal/heart/heart = get_organ(BP_HEART, /obj/item/organ/internal/heart)
2119
if(!heart)
2220
pulse_result = 0
2321
else if(BP_IS_PROSTHETIC(heart))
2422
pulse_result = -2
25-
else if(H.status_flags & FAKEDEATH)
23+
else if(status_flags & FAKEDEATH)
2624
pulse_result = 0
2725
else
28-
pulse_result = H.get_pulse_as_string(GETPULSE_TOOL)
26+
pulse_result = get_pulse_as_string(GETPULSE_TOOL)
2927
else
3028
pulse_result = -1
3129

3230
if(pulse_result == ">250")
3331
pulse_result = -3
34-
scan["pulse"] = text2num(pulse_result)
35-
36-
scan["blood_pressure"] = H.get_blood_pressure()
37-
scan["blood_o2"] = H.get_blood_oxygenation()
38-
scan["blood_volume"] = H.vessel.total_volume
39-
scan["blood_volume_max"] = H.vessel.maximum_volume
40-
scan["temperature"] = H.bodytemperature
41-
scan["trauma"] = H.get_damage(BRUTE)
42-
scan["burn"] = H.get_damage(BURN)
43-
scan["toxin"] = H.get_damage(TOX)
44-
scan["oxygen"] = H.get_damage(OXY)
45-
scan["radiation"] = H.radiation
46-
scan["genetic"] = H.get_damage(CLONE)
47-
scan["paralysis"] = GET_STATUS(H, STAT_PARA)
48-
scan["immune_system"] = H.get_immunity()
49-
scan["reagents"] = list()
50-
51-
if(H.reagents?.total_volume)
52-
for(var/liquid_type in H.reagents.liquid_volumes)
32+
.["pulse"] = text2num(pulse_result)
33+
34+
.["temperature"] = bodytemperature
35+
.["trauma"] = get_damage(BRUTE)
36+
.["burn"] = get_damage(BURN)
37+
.["toxin"] = get_damage(TOX)
38+
.["oxygen"] = get_damage(OXY)
39+
.["radiation"] = radiation
40+
.["genetic"] = get_damage(CLONE)
41+
.["paralysis"] = GET_STATUS(src, STAT_PARA)
42+
.["immune_system"] = get_immunity()
43+
.["reagents"] = list()
44+
45+
if(reagents?.total_volume)
46+
for(var/liquid_type in reagents.liquid_volumes)
5347
var/decl/material/R = GET_DECL(liquid_type)
5448
var/list/reagent = list()
55-
reagent["name"]= R.get_reagent_name(H.reagents, MAT_PHASE_LIQUID)
56-
reagent["quantity"] = round(REAGENT_VOLUME(H.reagents, R.type),1)
49+
reagent["name"]= R.get_reagent_name(reagents, MAT_PHASE_LIQUID)
50+
reagent["quantity"] = round(REAGENT_VOLUME(reagents, R.type),1)
5751
reagent["scannable"] = R.scannable
58-
scan["reagents"] += list(reagent)
52+
.["reagents"] += list(reagent)
5953

60-
for(var/solid_type in H.reagents.solid_volumes)
54+
for(var/solid_type in reagents.solid_volumes)
6155
var/decl/material/R = GET_DECL(solid_type)
6256
var/list/reagent = list()
63-
reagent["name"]= R.get_reagent_name(H.reagents, MAT_PHASE_SOLID)
64-
reagent["quantity"] = round(REAGENT_VOLUME(H.reagents, R.type),1)
57+
reagent["name"]= R.get_reagent_name(reagents, MAT_PHASE_SOLID)
58+
reagent["quantity"] = round(REAGENT_VOLUME(reagents, R.type),1)
6559
reagent["scannable"] = R.scannable
66-
scan["reagents"] += list(reagent)
60+
.["reagents"] += list(reagent)
6761

68-
scan["external_organs"] = list()
69-
for(var/obj/item/organ/external/E in H.get_external_organs())
62+
.["external_organs"] = list()
63+
for(var/obj/item/organ/external/E in get_external_organs())
7064
var/list/O = list()
7165
O["name"] = E.name
7266
O["brute_ratio"] = E.brute_ratio
@@ -77,10 +71,10 @@
7771
O["scan_results"] = E.get_scan_results(tag)
7872
O["tumors"] = E.has_growths()
7973
O["ailments"] = E.has_diagnosable_ailments(scanner = TRUE)
80-
scan["external_organs"] += list(O)
74+
.["external_organs"] += list(O)
8175

82-
scan["internal_organs"] = list()
83-
var/list/internal_organs = H.get_internal_organs()
76+
.["internal_organs"] = list()
77+
var/list/internal_organs = get_internal_organs()
8478
for(var/obj/item/organ/internal/I in internal_organs)
8579
var/list/O = list()
8680
O["name"] = I.name
@@ -89,18 +83,25 @@
8983
O["is_damaged"] = I.damage > 0
9084
O["scan_results"] = I.get_scan_results(tag)
9185
O["ailments"] = I.has_diagnosable_ailments(scanner = TRUE)
92-
scan["internal_organs"] += list(O)
86+
.["internal_organs"] += list(O)
9387

94-
scan["missing_organs"] = list()
88+
.["missing_organs"] = list()
9589
var/decl/bodytype/root_bodytype = get_bodytype()
9690
for(var/organ_name in root_bodytype.has_organ)
97-
if(!GET_INTERNAL_ORGAN(H, organ_name))
98-
scan["missing_organs"] += organ_name
99-
if(H.has_genetic_condition(GENE_COND_BLINDED))
100-
scan["blind"] = TRUE
101-
if(H.has_genetic_condition(GENE_COND_NEARSIGHTED))
102-
scan["nearsight"] = TRUE
103-
return scan
91+
if(!GET_INTERNAL_ORGAN(src, organ_name))
92+
.["missing_organs"] += organ_name
93+
if(has_genetic_condition(GENE_COND_BLINDED))
94+
.["blind"] = TRUE
95+
if(has_genetic_condition(GENE_COND_NEARSIGHTED))
96+
.["nearsight"] = TRUE
97+
98+
/mob/living/human/get_raw_medical_data(var/tag = FALSE)
99+
. = ..()
100+
.["blood_pressure"] = get_blood_pressure()
101+
.["blood_o2"] = get_blood_oxygenation()
102+
if(vessel)
103+
.["blood_volume"] = vessel.total_volume
104+
.["blood_volume_max"] = vessel.maximum_volume
104105

105106
/proc/display_medical_data_header(var/list/scan, skill_level = SKILL_DEFAULT)
106107
//In case of problems, abort.

code/datums/ai/_ai.dm

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -111,13 +111,15 @@
111111
// This is the place to actually do work in the AI.
112112
/datum/mob_controller/proc/do_process()
113113
SHOULD_CALL_PARENT(TRUE)
114-
if(!body || QDELETED(body))
115-
return FALSE
116-
if(!body.stat)
117-
try_unbuckle()
118-
try_wander()
119-
try_bark()
120-
return TRUE
114+
if(!QDELETED(body) && !QDELETED(src))
115+
if(!body.stat)
116+
try_unbuckle()
117+
try_wander()
118+
try_bark()
119+
// Recheck in case we walked into lava or something during wandering.
120+
return !QDELETED(body) && !QDELETED(src)
121+
return TRUE
122+
return FALSE
121123

122124
// The mob will try to unbuckle itself from nets, beds, chairs, etc.
123125
/datum/mob_controller/proc/try_unbuckle()

code/datums/outfits/horror_killers.dm

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@
2929
r_pocket = /obj/item/scalpel
3030
hands = list(/obj/item/bladed/axe/fire)
3131

32-
/decl/outfit/masked_killer/post_equip(var/mob/living/human/H)
32+
/decl/outfit/masked_killer/post_equip(var/mob/living/wearer)
3333
..()
34-
var/victim = get_mannequin(H.ckey)
34+
var/victim = get_mannequin(wearer.ckey)
3535
if(victim)
36-
for(var/obj/item/carried_item in H.get_equipped_items(TRUE))
36+
for(var/obj/item/carried_item in wearer.get_equipped_items(TRUE))
3737
carried_item.add_blood(victim) //Oh yes, there will be blood... just not blood from the killer because that's odd
3838

3939
/decl/outfit/reaper
@@ -50,9 +50,9 @@
5050
pda_slot = slot_belt_str
5151
pda_type = /obj/item/modular_computer/pda/heads
5252

53-
/decl/outfit/reaper/post_equip(var/mob/living/human/H)
53+
/decl/outfit/reaper/post_equip(var/mob/living/wearer)
5454
..()
55-
var/obj/item/secure_storage/briefcase/sec_briefcase = new(H)
55+
var/obj/item/secure_storage/briefcase/sec_briefcase = new(wearer)
5656
for(var/obj/item/briefcase_item in sec_briefcase)
5757
qdel(briefcase_item)
5858
for(var/i=3, i>0, i--)
@@ -61,4 +61,4 @@
6161
new /obj/item/gun/projectile/revolver(sec_briefcase)
6262
new /obj/item/ammo_magazine/speedloader(sec_briefcase)
6363
new /obj/item/plastique(sec_briefcase)
64-
H.put_in_hands_or_del(sec_briefcase)
64+
wearer.put_in_hands_or_del(sec_briefcase)

0 commit comments

Comments
 (0)