-
Notifications
You must be signed in to change notification settings - Fork 566
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'tg-effects-part2-poc' into tg-effects-part3a-daze
- Loading branch information
Showing
122 changed files
with
1,348 additions
and
336 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
/datum/component/crate_tag | ||
dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS | ||
/// The crate tag used for notifications and as label | ||
var/name | ||
|
||
/datum/component/crate_tag/Initialize(name, obj/structure/closet/crate/masquarade_type) | ||
var/obj/structure/closet/crate/crate = parent | ||
if(!istype(crate)) | ||
return COMPONENT_INCOMPATIBLE | ||
setup(name, masquarade_type) | ||
RegisterSignal(parent, COMSIG_STRUCTURE_CRATE_SQUAD_LAUNCHED, PROC_REF(notify_squad)) | ||
|
||
/datum/component/crate_tag/InheritComponent(datum/component/C, i_am_original, name, obj/structure/closet/crate/masquarade_type) | ||
. = ..() | ||
setup(name, masquarade_type) | ||
|
||
/datum/component/crate_tag/proc/setup(name, obj/structure/closet/crate/masquarade_type) | ||
var/obj/structure/closet/crate/crate = parent | ||
if(masquarade_type) | ||
crate.name = initial(masquarade_type.name) | ||
crate.desc = initial(masquarade_type.desc) | ||
crate.icon_opened = initial(masquarade_type.icon_opened) | ||
crate.icon_closed = initial(masquarade_type.icon_closed) | ||
if(crate.opened) | ||
crate.icon_state = crate.icon_opened | ||
else | ||
crate.icon_state = crate.icon_closed | ||
if(name) | ||
parent.AddComponent(/datum/component/label, name) | ||
src.name = name // Keep it around additionally for notifications | ||
|
||
/// Handler to notify an overwatched squad that this crate has been dropped for them | ||
/datum/component/crate_tag/proc/notify_squad(datum/source, datum/squad/squad) | ||
SIGNAL_HANDLER | ||
squad.send_message("'[name]' supply drop incoming. Heads up!") | ||
squad.send_maptext(name, "Incoming Supply Drop:") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
/datum/emergency_call/cbrn | ||
name = "CBRN (Squad)" | ||
arrival_message = "A CBRN squad has been dispatched to your ship. Stand by." | ||
objectives = "Handle the chemical, biological, radiological, or nuclear threat. Further orders may be provided." | ||
mob_min = 3 | ||
mob_max = 5 | ||
max_heavies = 0 | ||
max_smartgunners = 0 | ||
|
||
/datum/emergency_call/cbrn/create_member(datum/mind/new_mind, turf/override_spawn_loc) | ||
var/turf/spawn_loc = override_spawn_loc ? override_spawn_loc : get_spawn_point() | ||
|
||
if(!istype(spawn_loc)) | ||
return //Didn't find a useable spawn point. | ||
|
||
var/mob/living/carbon/human/mob = new(spawn_loc) | ||
new_mind.transfer_to(mob, TRUE) | ||
|
||
if(!leader && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(mob.client, JOB_SQUAD_LEADER, time_required_for_job)) | ||
leader = mob | ||
arm_equipment(mob, /datum/equipment_preset/uscm/cbrn/leader, TRUE, TRUE) | ||
to_chat(mob, SPAN_ROLE_HEADER("You are the CBRN Fireteam Leader!")) | ||
|
||
else if(medics < max_medics && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_MEDIC) && check_timelock(mob.client, JOB_SQUAD_MEDIC, time_required_for_job)) | ||
medics++ | ||
arm_equipment(mob, /datum/equipment_preset/uscm/cbrn/medic, TRUE, TRUE) | ||
to_chat(mob, SPAN_ROLE_HEADER("You are the CBRN Squad Medic!")) | ||
|
||
else if(engineers < max_engineers && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_ENGINEER) && check_timelock(mob.client, JOB_SQUAD_ENGI, time_required_for_job)) | ||
engineers++ | ||
arm_equipment(mob, /datum/equipment_preset/uscm/cbrn/engineer, TRUE, TRUE) | ||
to_chat(mob, SPAN_ROLE_HEADER("You are the CBRN Squad Engineer!")) | ||
|
||
else | ||
arm_equipment(mob, /datum/equipment_preset/uscm/cbrn/standard, TRUE, TRUE) | ||
to_chat(mob, SPAN_ROLE_HEADER("You are a CBRN Squad Rifleman!")) | ||
|
||
to_chat(mob, SPAN_ROLE_BODY("You are a member of the USCM's CBRN. The CBRN is a force that specializes in handling chemical, biological, radiological, and nuclear threats.")) | ||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), mob, SPAN_BOLD("Objectives:</b> [objectives]")), 1 SECONDS) | ||
|
||
/datum/emergency_call/cbrn/ert | ||
name = "CBRN (Distress)" | ||
arrival_message = "Your distress signal has been received and we are dispatching the nearest CBRN squad to board with you now. Stand by." | ||
probability = 10 | ||
|
||
/datum/emergency_call/cbrn/ert/New() | ||
..() | ||
objectives = "Investigate the distress signal aboard the [MAIN_SHIP_NAME]." | ||
|
||
/datum/emergency_call/cbrn/specialists | ||
name = "CBRN (Specialists)" | ||
mob_min = 2 | ||
mob_max = 5 | ||
max_engineers = 0 | ||
max_medics = 0 | ||
|
||
/datum/emergency_call/cbrn/specialists/New() | ||
var/cbrn_ship_name = "Unit [pick(nato_phonetic_alphabet)]-[rand(1, 99)]" | ||
arrival_message = "[MAIN_SHIP_NAME], CBRN [cbrn_ship_name] has been dispatched. Follow all orders provided by [cbrn_ship_name]." | ||
objectives = "You are a specialist team in [cbrn_ship_name] dispatched to quell a threat to [MAIN_SHIP_NAME]. Further orders may be provided." | ||
|
||
/datum/emergency_call/cbrn/specialists/create_member(datum/mind/new_mind, turf/override_spawn_loc) | ||
var/turf/spawn_loc = override_spawn_loc ? override_spawn_loc : get_spawn_point() | ||
|
||
if(!istype(spawn_loc)) | ||
return //Didn't find a useable spawn point. | ||
|
||
var/mob/living/carbon/human/mob = new(spawn_loc) | ||
new_mind.transfer_to(mob, TRUE) | ||
|
||
if(!leader && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(mob.client, JOB_SQUAD_LEADER, time_required_for_job)) | ||
leader = mob | ||
arm_equipment(mob, /datum/equipment_preset/uscm/cbrn/specialist/lead, TRUE, TRUE) | ||
to_chat(mob, SPAN_ROLE_HEADER("You are the CBRN Specialist Squad Leader!")) | ||
else | ||
arm_equipment(mob, /datum/equipment_preset/uscm/cbrn/specialist, TRUE, TRUE) | ||
to_chat(mob, SPAN_ROLE_HEADER("You are a CBRN Specialist!")) | ||
|
||
to_chat(mob, SPAN_ROLE_BODY("You are a member of the USCM's CBRN. The CBRN is a force that specializes in handling chemical, biological, radiological, and nuclear threats.")) | ||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), mob, SPAN_BOLD("Objectives:</b> [objectives]")), 1 SECONDS) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.