This commit is contained in:
Guti
2026-06-27 10:30:43 +02:00
committed by GitHub
parent 204ef00db9
commit 9cd4644f6a
12 changed files with 139 additions and 2 deletions
@@ -158,3 +158,14 @@
// base /obj/item/autopsy_scanner/do_surgery() : (mob/user, mob/target)
#define COMSIG_GLOB_AUTOPSY_PERFORMED "!performed_autopsy"
// base /datum/disease/proc/cure() : (id)
#define COMSIG_GLOB_ADV_DISEASE_CURED "!adv_disease_cured"
// base /obj/machinery/anomaly_harvester/proc/add_points() : (add_points)
#define COMSIG_GLOB_ANOMALY_HARVESTED "!anomaly_harvested"
// base /obj/item/mail_scanner/afterattack()
#define COMSIG_GLOB_MAIL_DELIVERED "!mail_delivered"
// base /obj/machinery/computer/arcade/proc/pricevend()
#define COMSIG_GLOB_ARCADE_PRIZEVEND "!arcade_win"
#define COMSIG_GLOB_DONATE_BLOOD "!donate_blood"
@@ -80,7 +80,7 @@ SUBSYSTEM_DEF(departmentgoals)
if(!length(all_goals))
GLOB.command_announcement.Announce("There are no department goals for this shift.", "Station Resource Department")
return
GLOB.command_announcement.Announce("Department goals have been updated for this shift. (Check your IC tab's \"Check Round Goals\" for details!)", "Station Resource Department")
GLOB.command_announcement.Announce("Department goals have been updated for this shift. Check your PDA for details!", "Station Resource Department")
/datum/controller/subsystem/departmentgoals/proc/handle_round_end()
SIGNAL_HANDLER
+37
View File
@@ -116,3 +116,40 @@
/datum/goal/cargo/mine_rock/check_completion()
current_count = GLOB.rocks_drilled_roundstat
. = ..()
// Deliver Mail
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/datum/goal/cargo/deliver_mail
name = "Deliver Mail"
/datum/goal/cargo/deliver_mail/New()
. = ..()
goal_count = rand(40, 70)
goal_text = "Nothing stops the mail. Deliver [goal_count] envelopes to their corresponding employer."
RegisterSignal(SSdcs, COMSIG_GLOB_MAIL_DELIVERED, PROC_REF(handle_mail_delivery))
/datum/goal/cargo/deliver_mail/Destroy(force)
UnregisterSignal(SSdcs, COMSIG_GLOB_MAIL_DELIVERED)
. = ..()
/datum/goal/cargo/deliver_mail/proc/handle_mail_delivery(atom/source)
SIGNAL_HANDLER
current_count++
// Sell Research Samples
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/datum/goal/cargo/sell_research_samples
name = "Sell Research Samples"
/datum/goal/cargo/sell_research_samples/New()
. = ..()
goal_count = rand(40, 60)
goal_text = "Help provide insight into the unknown, ship [goal_count] research samples."
/datum/goal/cargo/sell_research_samples/handle_cargo_sale(datum/source, atom/movable/sold_item, sold_successfully, datum/exported_crate/export_data, area/shuttle_subarea)
if(!sold_successfully)
return
if(!istype(sold_item,/obj/structure/closet/crate))
return
for(var/obj/item/research_sample/sample in sold_item)
current_count++
@@ -89,3 +89,22 @@
/datum/goal/common/trashpiles/proc/handle_trash_searched(datum/source, mob/living/user, list/searched_by)
SIGNAL_HANDLER
current_count++
// Win arcade
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/datum/goal/common/arcade
name = "Win Arcade Machine Games"
/datum/goal/common/arcade/New()
. = ..()
goal_count = rand(15, 30)
goal_text = "Enjoy some leisure time and less pocket change, and get some prizes out of [goal_count] arcade machines."
RegisterSignal(SSdcs, COMSIG_GLOB_ARCADE_PRIZEVEND, PROC_REF(handle_arcade_win))
/datum/goal/common/arcade/Destroy(force)
UnregisterSignal(SSdcs, COMSIG_GLOB_ARCADE_PRIZEVEND)
. = ..()
/datum/goal/common/arcade/proc/handle_arcade_win(datum/source)
SIGNAL_HANDLER
current_count++
@@ -29,3 +29,48 @@
if(target.dna.real_name in scanned_mobs)
return
scanned_mobs += target.dna.real_name
// Cure Advanced Diseases
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/datum/goal/medical/virology
name = "Cure Diseases"
var/list/cured_diseases = list()
/datum/goal/medical/virology/New()
. = ..()
goal_count = rand(10, 20)
goal_text = "Ensure the galaxy doesn't suffer from a variety of advanced diseases, obtain the cure for [goal_count] of them."
RegisterSignal(SSdcs, COMSIG_GLOB_ADV_DISEASE_CURED, PROC_REF(handle_disease_cure))
/datum/goal/medical/virology/Destroy(force)
UnregisterSignal(SSdcs, COMSIG_GLOB_ADV_DISEASE_CURED)
. = ..()
/datum/goal/medical/virology/check_completion()
current_count = cured_diseases.len
. = ..()
/datum/goal/medical/virology/proc/handle_disease_cure(atom/source, id)
SIGNAL_HANDLER
if(id in cured_diseases)
return
cured_diseases += id
// Donate Blood
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/datum/goal/medical/blood
name = "Donate Blood"
/datum/goal/medical/blood/New()
. = ..()
goal_count = rand(700, 1200)
goal_text = "Make sure Medical stays well stocked, donate [goal_count] units of blood."
RegisterSignal(SSdcs, COMSIG_GLOB_DONATE_BLOOD, PROC_REF(handle_donate_blood))
/datum/goal/medical/blood/Destroy(force)
UnregisterSignal(SSdcs, COMSIG_GLOB_DONATE_BLOOD)
. = ..()
/datum/goal/medical/blood/proc/handle_donate_blood(atom/source, blood_count)
SIGNAL_HANDLER
current_count += blood_count
@@ -60,3 +60,22 @@
/datum/goal/research/build_mechs/proc/handle_mech_construction(atom/source)
SIGNAL_HANDLER
current_count++
// Harvest Anomalies
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/datum/goal/research/harvest_anomalies
name = "Harvest Anomalies"
/datum/goal/research/harvest_anomalies/New()
. = ..()
goal_count = rand(1500, 3000)
goal_text = "Harvest points from anomalies, produce [goal_count] from any kind of anomaly."
RegisterSignal(SSdcs, COMSIG_GLOB_ANOMALY_HARVESTED, PROC_REF(handle_anomaly_harvest))
/datum/goal/research/harvest_anomalies/Destroy(force)
UnregisterSignal(SSdcs, COMSIG_GLOB_ANOMALY_HARVESTED)
. = ..()
/datum/goal/research/harvest_anomalies/proc/handle_anomaly_harvest(atom/source, add_points)
SIGNAL_HANDLER
current_count += add_points
+1
View File
@@ -88,6 +88,7 @@ GLOBAL_LIST_INIT(advance_cures, list(
if(resistance && !(id in affected_mob.GetResistances()))
affected_mob.GetResistances()[id] = id
remove_virus()
SEND_GLOBAL_SIGNAL(COMSIG_GLOB_ADV_DISEASE_CURED, id)
qdel(src)
/datum/disease/advance/Copy()
+1
View File
@@ -37,6 +37,7 @@
/obj/machinery/computer/arcade/proc/prizevend(mob/user)
SEND_SIGNAL(src, COMSIG_ARCADE_PRIZEVEND, user)
SEND_GLOBAL_SIGNAL(COMSIG_GLOB_ARCADE_PRIZEVEND)
if(LAZYLEN(special_prizes)) // Downstream wanted the 'win things inside contents sans circuitboard' feature kept.
var/atom/movable/AM = pick_n_take(special_prizes)
+1
View File
@@ -131,6 +131,7 @@
visible_message("\The [src] beeps loudly.")
var/datum/reagent/B = T.take_blood(beaker,amount)
SEND_GLOBAL_SIGNAL(COMSIG_GLOB_DONATE_BLOOD, amount)
if(B)
beaker.reagents.reagent_list |= B
+1
View File
@@ -452,6 +452,7 @@ ADMIN_VERB(spawn_mail, R_SPAWN, "Spawn Mail", "Spawn mail for a specific player,
to_chat(user, span_notice("Succesful delivery acknowledged! [cargo_points] points added to Supply."))
playsound(loc, 'sound/items/mail/mailapproved.ogg', 50, TRUE)
SSsupply.points += cargo_points
SEND_GLOBAL_SIGNAL(COMSIG_GLOB_MAIL_DELIVERED)
// JUNK MAIL STUFF
@@ -47,6 +47,7 @@
update_icon()
/obj/machinery/anomaly_harvester/proc/add_points(add_points)
SEND_GLOBAL_SIGNAL(COMSIG_GLOB_ANOMALY_HARVESTED, add_points)
add_points *= efficiency
points += add_points
return
+2 -1
View File
@@ -10,7 +10,8 @@
new/datum/data/pda/app/notekeeper,
new/datum/data/pda/app/news,
new/datum/data/pda/app/messenger,
new/datum/data/pda/app/game_launcher)
new/datum/data/pda/app/game_launcher,
new/datum/data/pda/app/goals)
special_handling = TRUE
/obj/item/pda/ai/proc/set_name_and_job(newname as text, newjob as text, newrank as null|text)