mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-28 15:39:57 +01:00
The Tau Ceti Foreign Legion (#5779)
This pr adds the Tau Ceti Foreign Legion, at the request of the lore team, to replace/be an alternative to the ert.
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
var/datum/antagonist/legion/legion
|
||||
|
||||
/datum/antagonist/legion
|
||||
id = MODE_LEGION
|
||||
bantype = "Tau Ceti Foreign Legion"
|
||||
role_text = "Tau Ceti Foreign Legion Volunteer"
|
||||
role_text_plural = "Tau Ceti Foreign Legion Volunteers"
|
||||
welcome_text = "As member of the Tau Ceti Foreign Legion, you answer to your leader and NanoTrasen officials."
|
||||
leader_welcome_text = "As leader of the Tau Ceti Foreign Legion Team, you answer only to the Tau Ceti goverment and NanoTrasen officials. It is recommended that you attempt to cooperate with the captain and the crew when possible."
|
||||
landmark_id = "Tau Ceti Legion"
|
||||
|
||||
id_type = /obj/item/weapon/card/id/legion
|
||||
|
||||
flags = ANTAG_OVERRIDE_JOB | ANTAG_SET_APPEARANCE | ANTAG_HAS_LEADER | ANTAG_CHOOSE_NAME | ANTAG_RANDOM_EXCEPTED
|
||||
antaghud_indicator = "hudloyalist"
|
||||
|
||||
hard_cap = 5
|
||||
hard_cap_round = 7
|
||||
initial_spawn_req = 5
|
||||
initial_spawn_target = 7
|
||||
|
||||
/datum/antagonist/legion/create_default(var/mob/source)
|
||||
var/mob/living/carbon/human/M = ..()
|
||||
if(istype(M)) M.age = rand(25,45)
|
||||
|
||||
/datum/antagonist/legion/New()
|
||||
..()
|
||||
legion = src
|
||||
|
||||
/datum/antagonist/legion/greet(var/datum/mind/player)
|
||||
if(!..())
|
||||
return
|
||||
to_chat(player.current, "The Tau Ceti Foreign Legion works for the Republic of Biesel; your job is to protect [current_map.company_name]. There is a code red alert on [station_name()], you are tasked to go and fix the problem.")
|
||||
to_chat(player.current, "You should first gear up and discuss a plan with your team. More members may be joining, don't move out before you're ready.")
|
||||
|
||||
/datum/antagonist/legion/equip(var/mob/living/carbon/human/player)
|
||||
|
||||
player.equip_to_slot_or_del(new /obj/item/device/radio/headset/legion(src), slot_l_ear)
|
||||
player.equip_to_slot_or_del(new /obj/item/clothing/under/legion(src), slot_w_uniform)
|
||||
player.equip_to_slot_or_del(new /obj/item/clothing/shoes/swat(src), slot_shoes)
|
||||
player.equip_to_slot_or_del(new /obj/item/clothing/gloves/swat(src), slot_gloves)
|
||||
player.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(src), slot_glasses)
|
||||
player.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/legion(src), slot_back)
|
||||
|
||||
create_id(role_text, player)
|
||||
return 1
|
||||
@@ -476,6 +476,12 @@ var/const/access_journalist = 70//journalist's office access
|
||||
desc = "Merchant Access"
|
||||
access_type = ACCESS_TYPE_CENTCOM
|
||||
|
||||
/var/const/access_legion = 111//tau ceti foreign legion access
|
||||
/datum/access/legion
|
||||
id = access_legion
|
||||
desc = "Tau Ceti Foreign Legion Access"
|
||||
access_type = ACCESS_TYPE_CENTCOM
|
||||
|
||||
/***************
|
||||
* Antag access *
|
||||
***************/
|
||||
|
||||
@@ -672,7 +672,7 @@
|
||||
desc = "Spare tool vending. What? Did you expect some witty description?"
|
||||
icon_state = "engivend"
|
||||
icon_deny = "engivend-deny"
|
||||
req_access = list(access_engine_equip)
|
||||
req_access = list(access_engine)
|
||||
vend_id = "tools"
|
||||
products = list(
|
||||
/obj/item/clothing/glasses/meson = 2,
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
/obj/mecha/combat/tank
|
||||
name = "light adhomian tank"
|
||||
desc = "The Ha'rron MK.IV light tank is an armored vehicle commonly used by tajaran military forces."
|
||||
icon = 'icons/mecha/mecha_large.dmi'
|
||||
icon = 'icons/mecha/mecha_64x64.dmi'
|
||||
icon_state = "tank"
|
||||
initial_icon = "tank"
|
||||
pixel_x = -16
|
||||
@@ -127,6 +127,35 @@
|
||||
playsound(src.loc, file, 100, 0, -6.6, environment=1)
|
||||
|
||||
|
||||
/obj/mecha/combat/tank/jotun
|
||||
name = "Jotun"
|
||||
desc = "A heavy armored vehicle. Commonly produced by the Sol Alliance and fielded by the forces of the Tau Ceti Foreign Legion."
|
||||
icon = 'icons/mecha/mecha_114x59.dmi'
|
||||
icon_state = "jotun"
|
||||
initial_icon = "jotun"
|
||||
pixel_x = -41
|
||||
health = 950
|
||||
w_class = 45
|
||||
|
||||
/obj/mecha/combat/tank/jotun/Initialize()
|
||||
.= ..()
|
||||
|
||||
var/obj/item/mecha_parts/mecha_equipment/ME
|
||||
if(equipment.len)//Now to remove it and equip anew.
|
||||
for(ME in equipment)
|
||||
ME.detach(src)
|
||||
qdel(ME)
|
||||
|
||||
ME = new /obj/item/mecha_parts/mecha_equipment/weapon/energy/pulse
|
||||
ME.attach(src)
|
||||
ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/cannon
|
||||
ME.attach(src)
|
||||
ME = new /obj/item/mecha_parts/mecha_equipment/tool/passenger
|
||||
ME.attach(src)
|
||||
ME = new /obj/item/mecha_parts/mecha_equipment/armor_booster/antiproj_armor_booster
|
||||
ME.attach(src)
|
||||
return
|
||||
|
||||
#undef NOMINAL
|
||||
#undef FIRSTRUN
|
||||
#undef POWER
|
||||
|
||||
@@ -205,7 +205,7 @@
|
||||
/obj/effect/decal/mecha_wreckage/tank
|
||||
name = "adhomian light tank wreckage"
|
||||
desc = "Remains of some unfortunate armored vehicle. Completely unrepairable."
|
||||
icon = 'icons/mecha/mecha_large.dmi'
|
||||
icon = 'icons/mecha/mecha_64x64.dmi'
|
||||
icon_state = "tank-broken"
|
||||
anchored = TRUE
|
||||
pixel_x = -16
|
||||
|
||||
@@ -71,3 +71,24 @@
|
||||
qdel (B)
|
||||
|
||||
|
||||
/obj/mecha/working/ripley/combat
|
||||
desc = "A large APLU unit fitted with specialized composite armor and fancy, though old targeting systems."
|
||||
name = "combat APLU \"Ripley\""
|
||||
icon_state = "combatripley"
|
||||
initial_icon = "combatripley"
|
||||
health = 300
|
||||
wreckage = /obj/effect/decal/mecha_wreckage/ripley
|
||||
deflect_chance = 10
|
||||
damage_absorption = list("brute"=0.75,"fire"=1,"bullet"=0.8,"laser"=0.7,"energy"=0.85,"bomb"=1)
|
||||
|
||||
/obj/mecha/working/ripley/combat/Initialize()
|
||||
.= ..()
|
||||
var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/weapon/energy/riggedlaser
|
||||
ME.attach(src)
|
||||
ME = new /obj/item/mecha_parts/mecha_equipment/tool/drill
|
||||
ME.attach(src)
|
||||
ME = new /obj/item/mecha_parts/mecha_equipment/tool/passenger
|
||||
ME.attach(src)
|
||||
ME = new /obj/item/mecha_parts/mecha_equipment/tool/passenger
|
||||
ME.attach(src)
|
||||
return
|
||||
@@ -63,4 +63,11 @@
|
||||
|
||||
/obj/effect/projectile/muzzle/tachyon
|
||||
icon_state = "muzzle_pulse"
|
||||
light_color = LIGHT_COLOR_CYAN
|
||||
light_color = LIGHT_COLOR_CYAN
|
||||
|
||||
/obj/effect/projectile/muzzle/bolt
|
||||
icon_state = "muzzle_bolt"
|
||||
light_color = LIGHT_COLOR_FIRE
|
||||
|
||||
/obj/effect/projectile/muzzle/gauss
|
||||
icon_state = "muzzle_gauss"
|
||||
@@ -136,6 +136,10 @@
|
||||
name = "\improper ERT radio encryption key"
|
||||
channels = list("Response Team" = 1, "Science" = 1, "Command" = 1, "Medical" = 1, "Engineering" = 1, "Security" = 1, "Supply" = 1, "Service" = 1)
|
||||
|
||||
/obj/item/device/encryptionkey/onlyert
|
||||
name = "\improper ERT radio encryption key"
|
||||
channels = list("Response Team" = 1)
|
||||
|
||||
/obj/item/device/encryptionkey/entertainment
|
||||
name = "entertainment radio key"
|
||||
channels = list("Entertainment" = 1)
|
||||
|
||||
@@ -219,6 +219,13 @@
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/ert
|
||||
|
||||
/obj/item/device/radio/headset/legion
|
||||
name = "Tau Ceti Foreign Legion radio headset"
|
||||
desc = "The headset used by NanoTrasen sanctioned response forces."
|
||||
icon_state = "com_headset"
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/onlyert
|
||||
|
||||
/obj/item/device/radio/headset/ia
|
||||
name = "internal affairs headset"
|
||||
desc = "The headset of your worst enemy."
|
||||
|
||||
@@ -363,6 +363,12 @@ obj/item/weapon/card/id/ert/New()
|
||||
access = get_all_station_access() + get_centcom_access("Emergency Response Team")
|
||||
..()
|
||||
|
||||
/obj/item/weapon/card/id/legion
|
||||
name = "\improper Tau Ceti Foreign Legion ID"
|
||||
icon_state = "centcom"
|
||||
assignment = "Tau Ceti Foreign Legion Volunteer"
|
||||
access = list(access_legion, access_maint_tunnels, access_external_airlocks, access_security, access_engine, access_medical, access_research)
|
||||
|
||||
/obj/item/weapon/card/id/all_access
|
||||
name = "\improper Administrator's spare ID"
|
||||
desc = "The spare ID of the Lord of Lords himself."
|
||||
@@ -370,6 +376,7 @@ obj/item/weapon/card/id/ert/New()
|
||||
item_state = "tdgreen"
|
||||
registered_name = "Administrator"
|
||||
assignment = "Administrator"
|
||||
|
||||
/obj/item/weapon/card/id/all_access/New()
|
||||
access = get_access_ids()
|
||||
..()
|
||||
|
||||
@@ -258,12 +258,28 @@
|
||||
name = "energy cutlass"
|
||||
desc = "Arrrr matey."
|
||||
icon_state = "cutlass0"
|
||||
|
||||
base_reflectchance = 60
|
||||
base_block_chance = 60
|
||||
|
||||
/obj/item/weapon/melee/energy/sword/pirate/activate(mob/living/user)
|
||||
..()
|
||||
icon_state = "cutlass1"
|
||||
|
||||
/obj/item/weapon/melee/energy/sword/knife
|
||||
name = "energy utility knife"
|
||||
desc = "Some cheap energy blade, branded at the hilt with the logo of the Tau Ceti Foreign Legion."
|
||||
icon_state = "edagger0"
|
||||
base_reflectchance = 10
|
||||
base_block_chance = 10
|
||||
active_force = 20
|
||||
force = 10
|
||||
origin_tech = list(TECH_MAGNET = 3)
|
||||
|
||||
/obj/item/weapon/melee/energy/sword/knife/activate(mob/living/user)
|
||||
..()
|
||||
icon_state = "edagger1"
|
||||
|
||||
/*
|
||||
*Power Sword
|
||||
*/
|
||||
|
||||
@@ -227,6 +227,18 @@
|
||||
else
|
||||
set_light(0)
|
||||
|
||||
/obj/item/weapon/shield/energy/legion
|
||||
name = "energy barrier"
|
||||
desc = "A large deployable energy shield meant to provide excellent protection against ranged attacks."
|
||||
icon_state = "ebarrier0"
|
||||
|
||||
/obj/item/weapon/shield/energy/legion/update_icon()
|
||||
icon_state = "ebarrier[active]"
|
||||
if(active)
|
||||
set_light(1.5, 1.5, "#33FFFF")
|
||||
else
|
||||
set_light(0)
|
||||
|
||||
// tact
|
||||
/obj/item/weapon/shield/riot/tact
|
||||
name = "tactical shield"
|
||||
|
||||
@@ -465,5 +465,10 @@
|
||||
|
||||
/obj/item/weapon/storage/backpack/messenger/wizard
|
||||
name = "wizardly messenger bag"
|
||||
desc = "A wizardly backpack worn over one shoulder. This one is in blue and purple colors. "
|
||||
desc = "A wizardly backpack worn over one shoulder. This one is in blue and purple colors."
|
||||
icon_state = "courierbagwizard"
|
||||
|
||||
/obj/item/weapon/storage/backpack/legion
|
||||
name = "military rucksack"
|
||||
desc = "A sturdy backpack with the emblems and markings of the Tau Ceti Foreign Legion."
|
||||
icon_state = "legion_bag"
|
||||
@@ -5,6 +5,7 @@ var/global/send_emergency_team = 0 // Used for automagic response teams
|
||||
// 'admin_emergency_team' for admin-spawned response teams
|
||||
var/ert_base_chance = 10 // Default base chance. Will be incremented by increment ERT chance.
|
||||
var/can_call_ert
|
||||
var/ert_type = "NanoTrasen Response Team" //what ert type will be deployed
|
||||
|
||||
/client/proc/response_team()
|
||||
set name = "Dispatch Emergency Response Team"
|
||||
@@ -26,13 +27,19 @@ var/can_call_ert
|
||||
switch(alert("The station is not in red alert. Do you still want to dispatch a response team?",,"Yes","No"))
|
||||
if("No")
|
||||
return
|
||||
|
||||
var/choice = input("Select the response team type","Response team selection") as null|anything in list("NanoTrasen Response Team", "Tau Ceti Foreign Legion")
|
||||
|
||||
if(choice)
|
||||
ert_type = choice
|
||||
|
||||
if(send_emergency_team)
|
||||
usr << "<span class='danger'>Looks like somebody beat you to it!</span>"
|
||||
return
|
||||
|
||||
message_admins("[key_name_admin(usr)] is dispatching an Emergency Response Team.", 1)
|
||||
log_admin("[key_name(usr)] used Dispatch Response Team.",admin_key=key_name(usr))
|
||||
trigger_armed_response_team(1)
|
||||
trigger_armed_response_team(1, TRUE)
|
||||
|
||||
client/verb/JoinResponseTeam()
|
||||
|
||||
@@ -44,16 +51,30 @@ client/verb/JoinResponseTeam()
|
||||
return
|
||||
|
||||
if(istype(usr,/mob/abstract/observer) || istype(usr,/mob/abstract/new_player))
|
||||
|
||||
if(!send_emergency_team)
|
||||
usr << "No emergency response team is currently being sent."
|
||||
return
|
||||
|
||||
if(jobban_isbanned(usr, "Antagonist") || jobban_isbanned(usr, "Emergency Response Team") || jobban_isbanned(usr, "Security Officer"))
|
||||
usr << "<span class='danger'>You are jobbanned from the emergency reponse team!</span>"
|
||||
return
|
||||
if(ert.current_antagonists.len >= ert.hard_cap)
|
||||
usr << "The emergency response team is already full!"
|
||||
return
|
||||
ert.create_default(usr)
|
||||
|
||||
switch(ert_type)
|
||||
|
||||
if("Tau Ceti Foreign Legion")
|
||||
if(ert.current_antagonists.len >= ert.hard_cap)
|
||||
usr << "The emergency response team is already full!"
|
||||
return
|
||||
|
||||
legion.create_default(usr)
|
||||
|
||||
else
|
||||
if(ert.current_antagonists.len >= ert.hard_cap)
|
||||
usr << "The emergency response team is already full!"
|
||||
return
|
||||
|
||||
ert.create_default(usr)
|
||||
else
|
||||
usr << "You need to be an observer or new player to use this."
|
||||
|
||||
@@ -96,7 +117,7 @@ proc/increment_ert_chance()
|
||||
sleep(600 * 3) // Minute * Number of Minutes
|
||||
|
||||
|
||||
proc/trigger_armed_response_team(var/force = 0)
|
||||
proc/trigger_armed_response_team(var/force = 0, forced_choice = FALSE)
|
||||
if(!can_call_ert && !force)
|
||||
return
|
||||
if(send_emergency_team)
|
||||
@@ -117,8 +138,13 @@ proc/trigger_armed_response_team(var/force = 0)
|
||||
|
||||
command_announcement.Announce("It would appear that an emergency response team was requested for [station_name()]. We will prepare and send one as soon as possible.", "[current_map.boss_name]")
|
||||
|
||||
if(!forced_choice)
|
||||
var/random_team = pick("NanoTrasen Response Team", "Tau Ceti Foreign Legion")
|
||||
ert_type = random_team
|
||||
|
||||
can_call_ert = 0 // Only one call per round, gentleman.
|
||||
send_emergency_team = 1
|
||||
|
||||
sleep(600 * 5)
|
||||
send_emergency_team = 0 // Can no longer join the ERT.
|
||||
ert_type = "NanoTrasen Response Team"
|
||||
Reference in New Issue
Block a user