Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master' into phone-overhaul
Browse files Browse the repository at this point in the history
  • Loading branch information
morrowwolf committed Oct 26, 2023
2 parents 80388c9 + 0350592 commit 4451121
Show file tree
Hide file tree
Showing 21 changed files with 2,644 additions and 2,332 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

[![Build Status](https://github.com/PvE-CMSS13/PvE-CMSS13/workflows/CI%20Suite/badge.svg)](https://github.com/PvE-CMSS13/PvE-CMSS13/actions?query=workflow%3A%22CI+Suite%22)
* **Code:** https://github.com/PvE-CMSS13/PvE-CMSS13
* **Discord:** https://discord.gg/v6P6wns5dN
* **Discord:** https://discord.gg/pve-cmss13

This is the codebase for the PvE CM-SS13 fork of CM-SS13 flavoured fork of SpaceStation 13

Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/chemistry.dm
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,7 @@
#define PROPERTY_ANTICARCINOGENIC "anti-carcinogenic"
#define PROPERTY_UNKNOWN "unknown" //just has an OD effect
#define PROPERTY_HEMOSITIC "hemositic"
#define PROPERTY_REVITALIZING "revitalizing"


//Property rarity
Expand Down
2 changes: 1 addition & 1 deletion code/__DEFINES/client_prefs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@

#define AGE_MIN 19 //youngest a character can be
#define AGE_MAX 90 //oldest a character can be //no. you are not allowed to be 160.
#define MAX_GEAR_COST 7 //Used in chargen for loadout limit.
#define MAX_GEAR_COST 10 //Used in chargen for loadout limit.

///dual_wield_pref from /datum/preferences
///Fire both weapons when dual wielding
Expand Down
3 changes: 0 additions & 3 deletions code/game/machinery/vending/vendor_types/crew/synthetic.dm
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@

list("Injector (Bicaridine)", 1, /obj/item/reagent_container/hypospray/autoinjector/bicaridine, null, VENDOR_ITEM_REGULAR),
list("Injector (Dexalin+)", 1, /obj/item/reagent_container/hypospray/autoinjector/dexalinp, null, VENDOR_ITEM_REGULAR),
list("Injector (Epinephrine)", 2, /obj/item/reagent_container/hypospray/autoinjector/adrenaline, null, VENDOR_ITEM_REGULAR),
list("Injector (Inaprovaline)", 1, /obj/item/reagent_container/hypospray/autoinjector/inaprovaline, null, VENDOR_ITEM_REGULAR),
list("Injector (Kelotane)", 1, /obj/item/reagent_container/hypospray/autoinjector/kelotane, null, VENDOR_ITEM_REGULAR),
list("Injector (Oxycodone)", 2, /obj/item/reagent_container/hypospray/autoinjector/oxycodone, null, VENDOR_ITEM_REGULAR),
Expand All @@ -60,7 +59,6 @@
list("Autoinjector (C-M) (EMPTY)", 2, /obj/item/reagent_container/hypospray/autoinjector/empty/medium, null, VENDOR_ITEM_REGULAR),
list("Autoinjector (C-L) (EMPTY)", 4, /obj/item/reagent_container/hypospray/autoinjector/empty/large, null, VENDOR_ITEM_REGULAR),

list("Emergency Defibrillator", 4, /obj/item/device/defibrillator, null, VENDOR_ITEM_MANDATORY),
list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR),
list("Surgical Line", 4, /obj/item/tool/surgery/surgical_line, null, VENDOR_ITEM_REGULAR),
list("Synth-Graft", 4, /obj/item/tool/surgery/synthgraft, null, VENDOR_ITEM_REGULAR),
Expand Down Expand Up @@ -348,7 +346,6 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list(
list("Autocompressor", 15, /obj/item/clothing/suit/auto_cpr, null, VENDOR_ITEM_REGULAR),
list("Backpack Firefighting Watertank", 15, /obj/item/reagent_container/glass/watertank/atmos, null, VENDOR_ITEM_REGULAR),
list("Breaching Hammer", 15, /obj/item/weapon/twohanded/breacher/synth, null, VENDOR_ITEM_REGULAR),
list("Compact Defibrillator", 15, /obj/item/device/defibrillator/compact, null, VENDOR_ITEM_REGULAR),
list("Compact Nailgun kit", 15, /obj/effect/essentials_set/cnailgun, null, VENDOR_ITEM_REGULAR),
list("Crew Monitor", 15, /obj/item/tool/crew_monitor, null, VENDOR_ITEM_REGULAR),
list("Experimental Meson Goggles", 15, /obj/item/clothing/glasses/night/experimental_mesons, null, VENDOR_ITEM_REGULAR),
Expand Down
1 change: 0 additions & 1 deletion code/game/machinery/vending/vendor_types/medical.dm
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,6 @@
list("AUTOINJECTORS", -1, null, null),
list("Autoinjector (Bicaridine)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/bicaridine, VENDOR_ITEM_REGULAR),
list("Autoinjector (Dexalin+)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/dexalinp, VENDOR_ITEM_REGULAR),
list("Autoinjector (Epinephrine)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/adrenaline, VENDOR_ITEM_REGULAR),
list("Autoinjector (Inaprovaline)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/inaprovaline, VENDOR_ITEM_REGULAR),
list("Autoinjector (Kelotane)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/kelotane, VENDOR_ITEM_REGULAR),
list("Autoinjector (Oxycodone)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/oxycodone, VENDOR_ITEM_REGULAR),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ GLOBAL_LIST_INIT(cm_vending_gear_medic, list(
list("AUTOINJECTORS", 0, null, null, null),
list("Autoinjector (Bicaridine)", 1, /obj/item/reagent_container/hypospray/autoinjector/bicaridine, null, VENDOR_ITEM_REGULAR),
list("Autoinjector (Dexalin+)", 1, /obj/item/reagent_container/hypospray/autoinjector/dexalinp, null, VENDOR_ITEM_REGULAR),
list("Autoinjector (Epinephrine)", 2, /obj/item/reagent_container/hypospray/autoinjector/adrenaline, null, VENDOR_ITEM_REGULAR),
list("Autoinjector (Inaprovaline)", 1, /obj/item/reagent_container/hypospray/autoinjector/inaprovaline, null, VENDOR_ITEM_REGULAR),
list("Autoinjector (Kelotane)", 1, /obj/item/reagent_container/hypospray/autoinjector/kelotane, null, VENDOR_ITEM_REGULAR),
list("Autoinjector (Oxycodone)", 2, /obj/item/reagent_container/hypospray/autoinjector/oxycodone, null, VENDOR_ITEM_REGULAR),
Expand Down Expand Up @@ -214,4 +213,6 @@ GLOBAL_LIST_INIT(cm_vending_clothing_medic, list(
/obj/item/storage/surgical_case/regular,
/obj/item/reagent_container/blood/OMinus,
/obj/item/reagent_container/blood/OMinus,
/obj/item/reagent_container/hypospray/autoinjector/adrenaline_concentrated,
/obj/item/reagent_container/hypospray/autoinjector/adrenaline_concentrated,
)
2 changes: 1 addition & 1 deletion code/game/objects/items/devices/radio/headset.dm
Original file line number Diff line number Diff line change
Expand Up @@ -493,6 +493,7 @@
initial_keys = list(/obj/item/device/encryptionkey/mcom)
volume = RADIO_VOLUME_CRITICAL
multibroadcast_cooldown = LOW_MULTIBROADCAST_COOLDOWN
frequency = ALPHA_FREQ

/obj/item/device/radio/headset/almayer/mcom/alt
initial_keys = list(/obj/item/device/encryptionkey/mcom/alt)
Expand Down Expand Up @@ -569,7 +570,6 @@
name = "marine radio headset"
desc = "A standard marine radio headset. When worn, grants access to Squad Leader tracker. Click tracker with empty hand to open Squad Info window."
frequency = ALPHA_FREQ
initial_keys = list(/obj/item/device/encryptionkey/public)

//############################## ALPHA ###############################
/obj/item/device/radio/headset/almayer/marine/alpha
Expand Down
9 changes: 9 additions & 0 deletions code/game/objects/items/reagent_containers/autoinjectors.dm
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,15 @@
display_maptext = TRUE
maptext_label = "Ep"

/obj/item/reagent_container/hypospray/autoinjector/adrenaline_concentrated
name = "epinephrine (concentrated) autoinjector"
chemname = "adrenaline_concentrated"
desc = "An autoinjector loaded with 3 uses of Epinephrine, better known as Adrenaline, a nerve stimulant useful in restarting the heart. In this concentrated form, it will prevent unconciousness but will cause minor suffocation."
amount_per_transfer_from_this = LOWM_REAGENTS_OVERDOSE * INJECTOR_PERCENTAGE_OF_OD
volume = (LOWM_REAGENTS_OVERDOSE * INJECTOR_PERCENTAGE_OF_OD) * INJECTOR_USES
display_maptext = TRUE
maptext_label = "Ep"

/obj/item/reagent_container/hypospray/autoinjector/dexalinp
name = "dexalin plus autoinjector"
chemname = "dexalinp"
Expand Down
1 change: 0 additions & 1 deletion code/game/objects/items/storage/belt.dm
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,6 @@
new /obj/item/stack/medical/advanced/bruise_pack(src)
new /obj/item/stack/medical/advanced/ointment(src)
new /obj/item/stack/medical/advanced/ointment(src)
new /obj/item/reagent_container/hypospray/autoinjector/adrenaline(src)
new /obj/item/reagent_container/hypospray/autoinjector/dexalinp(src)
new /obj/item/reagent_container/hypospray/autoinjector/oxycodone(src)
new /obj/item/storage/pill_bottle/bicaridine(src)
Expand Down
13 changes: 13 additions & 0 deletions code/modules/admin/game_master/game_master.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
/// Assoc list that holds our custom game master objectives, formatted as atom = objective_string
GLOBAL_LIST_EMPTY(game_master_objectives)

/// Percentage of characters end up clear when sent via radio message
GLOBAL_VAR_INIT(radio_communication_clarity, 100)

/proc/open_game_master_panel(client/using_client)
set name = "Game Master Panel"
set category = "Game Master"
Expand Down Expand Up @@ -114,6 +117,8 @@ GLOBAL_LIST_EMPTY(game_master_objectives)
// Objective stuff
data["objective_click_intercept"] = objective_click_intercept

// Communication stuff
data["communication_clarity"] = GLOB.radio_communication_clarity

return data

Expand Down Expand Up @@ -170,6 +175,14 @@ GLOBAL_LIST_EMPTY(game_master_objectives)
current_click_intercept_action = OBJECTIVE_CLICK_INTERCEPT_ACTION
return

//Communication Section
if("set_communication_clarity")
var/new_clarity = text2num(params["clarity"])
if(!isnum(new_clarity))
return

GLOB.radio_communication_clarity = clamp(new_clarity, 0, 100)

/datum/game_master/ui_close(mob/user)
. = ..()

Expand Down
3 changes: 3 additions & 0 deletions code/modules/mob/hear_say.dm
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,9 @@
else
message = stars(message)

if(GLOB.radio_communication_clarity < 100)
message = stars(message, GLOB.radio_communication_clarity)

if(language)
style = language.color

Expand Down
86 changes: 44 additions & 42 deletions code/modules/mob/living/carbon/xenomorph/ai/movement/drone.dm
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@
if(idle_xeno.throwing)
return

if(idle_xeno.resting)
return

if(home_turf)
if(get_dist(home_turf, idle_xeno) > max_distance_from_home)
home_turf = null
Expand All @@ -38,52 +35,16 @@
if(next_home_search > world.time)
return

var/turf/current_turf = get_turf(idle_xeno.loc)
var/turf/current_turf = get_turf(idle_xeno)
next_home_search = world.time + home_search_delay
if(!current_turf.weeds && current_turf.is_weedable() >= FULLY_WEEDABLE)
if(!current_turf.weeds && check_turf(current_turf))
home_turf = current_turf
else
var/shortest_distance
for(var/turf/potential_home as anything in RANGE_TURFS(home_locate_range, current_turf))

var/area/found_area = get_area(potential_home)
if(found_area.flags_area & AREA_NOTUNNEL)
continue

if(found_area.flags_area & AREA_UNWEEDABLE)
continue

if(!found_area.can_build_special)
continue

if(potential_home in blacklisted_turfs)
continue

if(potential_home.weeds)
continue

if(potential_home.is_weedable() < FULLY_WEEDABLE)
continue

if(locate(/obj/effect/alien/weeds/node) in range(3, potential_home))
continue

if(potential_home.density)
if(!check_turf(potential_home))
continue

var/blocked = FALSE
for(var/atom/potential_blocker as anything in potential_home)
if(potential_blocker.can_block_movement)
blocked = TRUE
break

if(blocked)
continue

for(var/obj/structure/struct in potential_home)
if(struct.density && !(struct.flags_atom & ON_BORDER))
continue

if(shortest_distance && get_dist(idle_xeno, potential_home) > shortest_distance)
continue

Expand All @@ -103,3 +64,44 @@

/datum/xeno_ai_movement/drone/proc/unblacklist_turf(turf/unblacklisting_turf)
blacklisted_turfs -= unblacklisting_turf

/datum/xeno_ai_movement/drone/proc/check_turf(turf/checked_turf)
var/area/found_area = get_area(checked_turf)
if(found_area.flags_area & AREA_NOTUNNEL)
return FALSE

if(found_area.flags_area & AREA_UNWEEDABLE)
return FALSE

if(!found_area.can_build_special)
return FALSE

if(checked_turf in blacklisted_turfs)
return FALSE

if(checked_turf.weeds)
return FALSE

if(checked_turf.is_weedable() < FULLY_WEEDABLE)
return FALSE

if(locate(/obj/effect/alien/weeds/node) in range(3, checked_turf))
return FALSE

if(checked_turf.density)
return FALSE

var/blocked = FALSE
for(var/atom/potential_blocker as anything in checked_turf)
if(potential_blocker.can_block_movement)
blocked = TRUE
break

if(blocked)
return FALSE

for(var/obj/structure/struct in checked_turf)
if(struct.density && !(struct.flags_atom & ON_BORDER))
return FALSE

return TRUE
17 changes: 17 additions & 0 deletions code/modules/reagents/chemistry_properties/prop_special.dm
Original file line number Diff line number Diff line change
Expand Up @@ -369,3 +369,20 @@
/datum/chem_property/special/firepenetrating/update_reagent()
holder.fire_penetrating = TRUE
..()

/datum/chem_property/special/revitalizing
name = PROPERTY_REVITALIZING
code = "REV"
description = "For a period of time, revitalizes the main systems of the body and prevents unconciousness."
rarity = PROPERTY_ADMIN
category = PROPERTY_TYPE_STIMULANT
value = 666

/datum/chem_property/special/revitalizing/reagent_added(mob/living/M)
if(!ishuman(M))
return
M.status_flags &= ~CANKNOCKOUT
M.knocked_out = 0

/datum/chem_property/special/revitalizing/on_delete(mob/living/M)
M.status_flags |= CANKNOCKOUT
7 changes: 7 additions & 0 deletions code/modules/reagents/chemistry_reactions/medical.dm
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,13 @@
required_reagents = list("carbon" = 1, "nitrogen" = 1, "oxygen" = 1)
result_amount = 2

/datum/chemical_reaction/adrenaline_concentrated
name = "Epinephrine (concentrated)"
id = "adrenaline_concentrated"
result = "adrenaline_concentrated"
required_reagents = list("carbon" = 1, "nitrogen" = 1, "oxygen" = 1, "phoron" = 3)
result_amount = 1

/datum/chemical_reaction/alkysine
name = "Alkysine"
id = "alkysine"
Expand Down
15 changes: 14 additions & 1 deletion code/modules/reagents/chemistry_reagents/medical.dm
Original file line number Diff line number Diff line change
Expand Up @@ -275,14 +275,27 @@
id = "adrenaline"
description = "A natural muscle and heart stimulant. Useful for restarting the heart. Overdosing may stress the heart and cause tissue damage."
reagent_state = LIQUID
color = "FFE703" // Yellow-ish
color = "#FFE703" // Yellow-ish
overdose = LOWM_REAGENTS_OVERDOSE
overdose_critical = LOWM_REAGENTS_OVERDOSE_CRITICAL
custom_metabolism = AMOUNT_PER_TIME(1, 5 SECONDS)
chemclass = CHEM_CLASS_COMMON
properties = list(PROPERTY_PAINKILLING = 1.5, PROPERTY_ELECTROGENETIC = 4, PROPERTY_INTRAVENOUS = 1)
flags = REAGENT_TYPE_MEDICAL | REAGENT_SCANNABLE

/datum/reagent/medical/adrenaline_concentrated
name = "Epinephrine (concentrated)"
id = "adrenaline_concentrated"
description = "A natural muscle and heart stimulant that is in a high concerntration. Useful for restarting the heart and preventing unconciousness but in this concentrated form it will cause minor suffocation. Overdosing may stress the heart and cause tissue damage."
reagent_state = LIQUID
color = "#FFE702" // Yellow-ish
overdose = LOWM_REAGENTS_OVERDOSE
overdose_critical = LOWM_REAGENTS_OVERDOSE_CRITICAL
custom_metabolism = AMOUNT_PER_TIME(1, 10 SECONDS)
chemclass = CHEM_CLASS_COMMON
properties = list(PROPERTY_PAINKILLING = 1.5, PROPERTY_ELECTROGENETIC = 4, PROPERTY_REVITALIZING = 1, PROPERTY_HYPOXEMIC = 5, PROPERTY_INTRAVENOUS = 1)
flags = REAGENT_TYPE_MEDICAL | REAGENT_SCANNABLE

/datum/reagent/medical/ultrazine
name = "Ultrazine"
id = "ultrazine"
Expand Down
2 changes: 1 addition & 1 deletion code/modules/vehicles/apc/apc_command.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

interior_map = /datum/map_template/interior/apc_command

passengers_slots = 8
passengers_slots = 15

var/sensor_radius = 45 //45 tiles radius

Expand Down
2 changes: 1 addition & 1 deletion code/modules/vehicles/apc/apc_medical.dm
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
interior_map = /datum/map_template/interior/apc_med


passengers_slots = 8
passengers_slots = 15
//MED APC can store additional 6 dead revivable bodies for the triage
//but interior won't allow more revivable dead if passengers_taken_slots >= passengers_slots + revivable_dead_slots
//to prevent infinitely growing the marine force inside of the vehicle
Expand Down
1 change: 0 additions & 1 deletion code/modules/vehicles/interior/interactable/vendors.dm
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,6 @@
list("AUTOINJECTORS", -1, null, null),
list("Autoinjector (Bicaridine)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/bicaridine, VENDOR_ITEM_REGULAR),
list("Autoinjector (Dexalin+)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/dexalinp, VENDOR_ITEM_REGULAR),
list("Autoinjector (Epinephrine)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/adrenaline, VENDOR_ITEM_REGULAR),
list("Autoinjector (Inaprovaline)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/inaprovaline, VENDOR_ITEM_REGULAR),
list("Autoinjector (Kelotane)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/kelotane, VENDOR_ITEM_REGULAR),
list("Autoinjector (Oxycodone)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/oxycodone, VENDOR_ITEM_REGULAR),
Expand Down
Binary file modified icons/obj/items/syringe.dmi
Binary file not shown.
Loading

0 comments on commit 4451121

Please sign in to comment.