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
+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()