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:
Alberyk
2018-12-30 09:06:21 -02:00
committed by Werner
parent 03b689bd5f
commit ed0297a697
84 changed files with 69634 additions and 67896 deletions
+2
View File
@@ -383,6 +383,7 @@
#include "code\game\antagonist\outsider\commando.dm"
#include "code\game\antagonist\outsider\deathsquad.dm"
#include "code\game\antagonist\outsider\ert.dm"
#include "code\game\antagonist\outsider\legion.dm"
#include "code\game\antagonist\outsider\mercenary.dm"
#include "code\game\antagonist\outsider\ninja.dm"
#include "code\game\antagonist\outsider\raider.dm"
@@ -2049,6 +2050,7 @@
#include "code\modules\projectiles\guns\projectile.dm"
#include "code\modules\projectiles\guns\bang\pistol.dm"
#include "code\modules\projectiles\guns\bang\revolver.dm"
#include "code\modules\projectiles\guns\energy\blaster.dm"
#include "code\modules\projectiles\guns\energy\crank.dm"
#include "code\modules\projectiles\guns\energy\laser.dm"
#include "code\modules\projectiles\guns\energy\lawgiver.dm"
+1
View File
@@ -55,6 +55,7 @@
#define MODE_TRAITOR "traitor"
#define MODE_VAMPIRE "vampire"
#define MODE_THRALL "thrall"
#define MODE_LEGION "tau ceti foreign legion"
#define DEFAULT_TELECRYSTAL_AMOUNT 25
+1
View File
@@ -38,6 +38,7 @@
possible_trading_items = list(
/obj/mecha/combat = TRADER_SUBTYPES_ONLY,
/obj/mecha/combat/phazon = TRADER_BLACKLIST_ALL,
/obj/mecha/combat/tank = TRADER_BLACKLIST_ALL,
/obj/item/weapon/gun/projectile/automatic/rifle = TRADER_SUBTYPES_ONLY,
/obj/item/weapon/gun/energy/pulse = TRADER_ALL,
/obj/item/weapon/gun/energy/rifle/pulse = TRADER_THIS_TYPE
+46
View File
@@ -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
+6
View File
@@ -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 *
***************/
+1 -1
View File
@@ -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,
+30 -1
View File
@@ -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
+1 -1
View File
@@ -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
+21
View File
@@ -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"
+32 -6
View File
@@ -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"
+8
View File
@@ -240,3 +240,11 @@
name = "emergency response team medical helmet"
desc = "A set of armor worn by medical members of the NanoTrasen Emergency Response Team. Has red and white highlights."
icon_state = "erthelmet_med"
/obj/item/clothing/head/helmet/legion
name = "foreign legion helmet"
desc = "A large helmet meant to fit some pretty big heads. It has a ballistic faceplate on the front of it."
icon_state = "legion_helmet"
body_parts_covered = HEAD|FACE|EYES
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE
armor = list(melee = 50, bullet = 30, laser = 30, energy = 15, bomb = 40, bio = 0, rad = 0)
@@ -15,8 +15,9 @@
"Tajara" = 'icons/mob/species/tajaran/helmet.dmi',
"Skrell" = 'icons/mob/species/skrell/helmet.dmi',
"Unathi" = 'icons/mob/species/unathi/helmet.dmi',
"Vaurca" = 'icons/mob/species/vaurca/helmet.dmi',
"Machine" = 'icons/mob/species/machine/helmet.dmi'
)
)
species_restricted = list("exclude","Diona","Xenomorph","Vaurca","Golem", "Vox")
/obj/item/clothing/gloves/rig
@@ -54,6 +55,7 @@
sprite_sheets = list(
"Tajara" = 'icons/mob/species/tajaran/suit.dmi',
"Unathi" = 'icons/mob/species/unathi/suit.dmi',
"Vaurca" = 'icons/mob/species/vaurca/suit.dmi',
"Machine" = 'icons/mob/species/machine/suit.dmi'
)
species_restricted = list("exclude","Diona","Xenomorph","Golem","Vaurca","Vox")
@@ -71,3 +71,43 @@
/obj/item/rig_module/device/drill,
/obj/item/rig_module/actuators/combat
)
/obj/item/weapon/rig/retro
name = "retrofitted military hardsuit control module"
desc = "An old repurposed construction exoskeleton redesigned for combat. Its colors and insignias match those of the Tau Ceti Foreign Legion."
icon_state = "legion_rig"
suit_type = "retrofitted military hardsuit"
armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 40, bio = 100, rad = 30)
slowdown = 2
offline_slowdown = 4
offline_vision_restriction = TINT_HEAVY
allowed = list(
/obj/item/device/flashlight,
/obj/item/weapon/tank,
/obj/item/device/suit_cooling_unit,
/obj/item/weapon/gun,
/obj/item/ammo_magazine,
/obj/item/ammo_casing,
/obj/item/weapon/melee/baton,
/obj/item/weapon/melee/energy/sword,
/obj/item/weapon/handcuffs
)
chest_type = /obj/item/clothing/suit/space/rig/retro
helm_type = /obj/item/clothing/head/helmet/space/rig/retro
/obj/item/weapon/rig/retro/equipped
req_access = list(access_legion)
initial_modules = list(
/obj/item/rig_module/actuators,
/obj/item/rig_module/device/drill,
/obj/item/rig_module/cooling_unit,
/obj/item/rig_module/fabricator/energy_net
)
/obj/item/clothing/head/helmet/space/rig/retro
species_restricted = list("exclude","Diona","Xenomorph", "Golem")
/obj/item/clothing/suit/space/rig/retro
species_restricted = list("exclude","Diona","Xenomorph", "Golem")
@@ -123,23 +123,10 @@
/obj/item/clothing/suit/space/rig/light/ninja
species_restricted = list("exclude","Diona","Xenomorph", "Golem")
sprite_sheets = list(
"Tajara" = 'icons/mob/species/tajaran/suit.dmi',
"Unathi" = 'icons/mob/species/unathi/suit.dmi',
"Vaurca" = "icons/mob/species/vaurca/suit.dmi",
"Machine" = 'icons/mob/species/machine/suit.dmi'
)
breach_threshold = 38 //comparable to regular hardsuits
/obj/item/clothing/head/helmet/space/rig/light/ninja
species_restricted = list("exclude","Diona","Xenomorph", "Golem")
sprite_sheets = list(
"Tajara" = 'icons/mob/species/tajaran/helmet.dmi',
"Skrell" = 'icons/mob/species/skrell/helmet.dmi',
"Unathi" = 'icons/mob/species/unathi/helmet.dmi',
"Vaurca" = "icons/mob/species/vaurca/helmet.dmi",
"Machine" = 'icons/mob/species/machine/helmet.dmi'
)
/obj/item/weapon/rig/light/stealth
name = "stealth suit control module"
+10
View File
@@ -502,6 +502,16 @@
species_restricted = list("Unathi")
armor = list(melee = 65, bullet = 30, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0)
//tau ceti foreign legion armor
/obj/item/clothing/suit/storage/vest/legion
name = "foreign legion armored suit"
desc = "A set of cheap composite armor with elbow guards, shoulder and knee pads."
icon_state = "legion_armor"
item_state = "legion_armor"
body_parts_covered = UPPER_TORSO | LOWER_TORSO | LEGS | ARMS
armor = list(melee = 50, bullet = 30, laser = 30, energy = 15, bomb = 40, bio = 0, rad = 0)
//All of the armor below is mostly unused
/obj/item/clothing/suit/armor/centcomm
@@ -500,4 +500,18 @@
name = "dark blue cloak"
desc = "A simple dark blue cloak awarded by NanoTrasen for failing the introductory literacy test."
icon_state = "seccloak"
item_state = "seccloak"
item_state = "seccloak"
//tau ceti legion ribbons
/obj/item/clothing/accessory/legion
name = "seniority ribbons"
desc = "A ribbon meant to attach to the chest and sling around the shoulder accompanied by two medallions, marking seniority in a Tau Ceti Foreign Legion."
icon_state = "senior_ribbon"
item_state = "senior_ribbon"
/obj/item/clothing/accessory/legion/specialist
name = "specialist medallion"
desc = "Two small medallions, one worn on the shoulder and the other worn on the chest. Meant to display the rank of specialist troops in a Tau Ceti Foreign Legion."
icon_state = "specialist_medallion"
item_state = "specialist_medallion"
+9 -1
View File
@@ -696,4 +696,12 @@
/obj/item/clothing/under/medical_gown/white
icon_state = "whitemedicalgown"
worn_state = "whitemedicalgown"
worn_state = "whitemedicalgown"
/obj/item/clothing/under/legion
name = "Tau Ceti Foreign Legion uniform"
desc = "A blue field uniform used by the force of the Tau Ceti Foreign Legion forces."
icon_state = "taucetilegion"
item_state = "bl_suit"
worn_state = "taucetilegion"
siemens_coefficient = 0.7
+12
View File
@@ -402,6 +402,18 @@ datum/ghosttrap/pai/transfer_personality(var/mob/candidate, var/mob/living/silic
/datum/ghosttrap/vampire/welcome_candidate(var/mob/target)
return 0
/datum/ghosttrap/legion
object = "Tau Ceti Foreign Legion"
pref_check = MODE_LEGION
ghost_trap_message = "They are occupying a Tau Ceti Foreign Legion volunteer."
ghost_trap_role = "Tau Ceti Foreign Legion"
ban_checks = list(MODE_LEGION)
can_set_own_name = FALSE
list_as_special_role = FALSE
/datum/ghosttrap/legion/welcome_candidate(var/mob/target)
return 0
/datum/ghosttrap/special
object = "Special"
pref_check = null
+15 -1
View File
@@ -420,4 +420,18 @@
mag_type = MAGAZINE
caliber = "a762"
ammo_type = /obj/item/ammo_casing/a762
max_ammo = 1000
max_ammo = 1000
/obj/item/ammo_magazine/gauss
name = "tungsten slug box"
icon_state = "slugbox"
mag_type = MAGAZINE
caliber = "gauss"
ammo_type = /obj/item/ammo_casing/gauss
max_ammo = 7
multiple_sprites = 1
/obj/item/ammo_magazine/gauss/emp
name = "ion slug box"
icon_state = "empslugbox"
ammo_type = /obj/item/ammo_casing/gauss/emp
+14 -1
View File
@@ -260,4 +260,17 @@
desc = "Some vintage shell casing. It looks old, and you can't understand the writing stamped on it."
caliber = "vintage"
icon_state = "lcasing"
spent_icon = "lcasing-spent"
spent_icon = "lcasing-spent"
/obj/item/ammo_casing/gauss
name = "tungsten slug"
desc = "A heavy tungsten gauss slug."
caliber = "gaus"
icon_state = "tungstenslug"
projectile_type = /obj/item/projectile/bullet/gauss
/obj/item/ammo_casing/gauss/emp
name = "ion slug"
desc = "A heavy ion gauss slug."
icon_state = "empslug"
projectile_type = /obj/item/projectile/ion/gauss
@@ -0,0 +1,77 @@
/obj/item/weapon/gun/energy/blaster
name = "blaster pistol"
desc = "A tiny energy pistol converted to fire off energy bolts rather than lasers beams. It's covered in the colors of the Tau Ceti Foreign Legion."
icon_state = "blaster_pistol"
item_state = "blaster_pistol"
fire_sound = 'sound/weapons/Laser.ogg'
slot_flags = SLOT_BELT
w_class = 3
force = 5
origin_tech = list(TECH_COMBAT = 2, TECH_MAGNET = 2)
matter = list(DEFAULT_WALL_MATERIAL = 2000)
projectile_type = /obj/item/projectile/energy/blaster
max_shots = 6
burst_delay = 2
sel_mode = 1
firemodes = list(
list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, burst_accuracy=null, dispersion=null),
list(mode_name="2-round bursts", burst=2, fire_delay=null, move_delay=2, burst_accuracy=list(1,0,0), dispersion=list(0, 10, 15))
)
/obj/item/weapon/gun/energy/blaster/carbine
name = "blaster carbine"
desc = "A short-barreled blaster carbine meant for easy handling and comfort when in combat. It's covered in the colors of the Tau Ceti Foreign Legion."
icon_state = "blaster_carbine"
item_state = "blaster_carbine"
max_shots = 12
origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 2)
projectile_type = /obj/item/projectile/energy/blaster
/obj/item/weapon/gun/energy/blaster/rifle
name = "bolt slinger"
desc = "A blaster rifle which seems to work by accelerating particles and flinging them out in destructive bolts. It's covered in the colors of the Tau Ceti Foreign Legion."
icon_state = "blaster_rifle"
item_state = "blaster_rifle"
max_shots = 20
origin_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 3)
projectile_type = /obj/item/projectile/energy/blaster/heavy
slot_flags = SLOT_BACK
w_class = 4
fire_delay = 25
w_class = 4
accuracy = -3
scoped_accuracy = 4
fire_delay_wielded = 10
accuracy_wielded = 0
action_button_name = "Wield rifle"
/obj/item/weapon/gun/energy/blaster/rifle/update_icon()
..()
if(wielded)
item_state = "blaster_rifle-wielded"
else
item_state = initial(item_state)
update_held_icon()
/obj/item/weapon/gun/energy/blaster/rifle/can_wield()
return 1
/obj/item/weapon/gun/energy/blaster/rifle/ui_action_click()
if(src in usr)
toggle_wield(usr)
/obj/item/weapon/gun/energy/blaster/rifle/verb/scope()
set category = "Object"
set name = "Use Scope"
set popup_menu = 1
if(wielded)
toggle_scope(2.0, usr)
else
usr << "<span class='warning'>You can't look through the scope without stabilizing the rifle!</span>"
@@ -304,7 +304,7 @@
w_class = 3
accuracy = 1
force = 10
projectile_type = /obj/item/projectile/energy/blaster
projectile_type = /obj/item/projectile/energy/blaster/incendiary
max_shots = 6
sel_mode = 1
burst = 1
@@ -1,6 +1,7 @@
#define HOLD_CASINGS 0 //do not do anything after firing. Manual action, like pump shotguns, or guns that want to define custom behaviour
#define EJECT_CASINGS 1 //drop spent casings on the ground after firing
#define CYCLE_CASINGS 2 //experimental: cycle casings, like a revolver. Also works for multibarrelled guns
#define DELETE_CASINGS 3 //deletes the casing, used in caseless ammunition guns or something
/obj/item/weapon/gun/projectile
name = "gun"
@@ -95,6 +96,8 @@
G.gunshot_residue = chambered.caliber
switch(handle_casings)
if(DELETE_CASINGS)
qdel(chambered)
if(EJECT_CASINGS) //eject casing onto ground.
chambered.forceMove(get_turf(src))
if(CYCLE_CASINGS) //cycle the casing back to the end.
@@ -207,3 +207,53 @@
user << "<span class='warning'>The bolt is open on \the [src]!</span>"
return
..()
/obj/item/weapon/gun/projectile/gauss
name = "gauss thumper"
desc = "An outdated gauss weapon which sees sparing use in modern times. It's covered in the colors of the Tau Ceti Foreign Legion."
w_class = 3
slot_flags = 0
magazine_type = /obj/item/ammo_magazine/gauss
allowed_magazines = list(/obj/item/ammo_magazine/gauss)
icon_state = "gauss_thumper"
caliber = "gauss"
accuracy = 1
origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 2)
fire_sound = 'sound/weapons/railgun.ogg'
load_method = MAGAZINE
handle_casings = DELETE_CASINGS
fire_delay = 25
accuracy = -1
fire_delay_wielded = 10
accuracy_wielded = 2
action_button_name = "Wield rifle"
/obj/item/weapon/gun/projectile/gauss/update_icon()
..()
icon_state = (ammo_magazine)? "gauss_thumper" : "gauss_thumper-e"
if(wielded)
item_state = "gauss_thumper-wielded"
else
item_state = "gauss_thumper"
update_held_icon()
return
/obj/item/weapon/gun/projectile/gauss/can_wield()
return 1
/obj/item/weapon/gun/projectile/gauss/ui_action_click()
if(src in usr)
toggle_wield(usr)
/obj/item/weapon/gun/projectile/gauss/verb/wield_rifle()
set name = "Wield rifle"
set category = "Object"
set src in usr
toggle_wield(usr)
usr.update_icon()
@@ -395,7 +395,7 @@
/obj/item/laser_components/modulator/blaster
name = "blaster-bolt modulator"
desc = "Modulates the beam into firing disparate energy bolts."
projectile = /obj/item/projectile/energy/blaster
projectile = /obj/item/projectile/energy/blaster/incendiary
icon_state = "lensatic"
/obj/item/laser_components/modulator/bfg
@@ -316,4 +316,9 @@
penetrating = 0
damage = 10
/obj/item/projectile/bullet/gauss
name = "slug"
icon_state = "heavygauss"
damage = 30
muzzle_type = /obj/effect/projectile/muzzle/gauss
embed = 0
+10 -16
View File
@@ -210,23 +210,17 @@
/obj/item/projectile/energy/blaster
name = "blaster bolt"
icon_state = "laser"
icon_state = "heavybolt"
damage = 30
check_armour = "laser"
damage = 15
damage_type = BURN
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
embed = 0
incinerate = 2
muzzle_type = /obj/effect/projectile/muzzle/bolt
/*/obj/item/projectile/energy/flamer
name = "promethium"
icon_state = "fire"
check_armour = "energy"
kill_count = 25
damage = 10
damage_type = BURN
pass_flags = PASSTABLE
step_delay = 2
kill_count = 75
embed = 0
incinerate = 10*/
/obj/item/projectile/energy/blaster/heavy
damage = 35
/obj/item/projectile/energy/blaster/incendiary
icon_state = "laser"
damage = 15
incinerate = 2
@@ -61,6 +61,10 @@
name = "heavy ion pulse"
pulse_range = 5
/obj/item/projectile/ion/gauss
name = "ion slug"
icon_state = "heavygauss"
/obj/item/projectile/bullet/gyro
name ="explosive bolt"
icon_state= "bolter"
@@ -47,7 +47,6 @@
/obj/item/weapon/reagent_containers/chem_disp_cartridge/peridaxon,
/obj/item/weapon/reagent_containers/chem_disp_cartridge/bicaridine,
/obj/item/weapon/reagent_containers/chem_disp_cartridge/hyperzine,
/obj/item/weapon/reagent_containers/chem_disp_cartridge/rezadone,
/obj/item/weapon/reagent_containers/chem_disp_cartridge/spaceacillin,
/obj/item/weapon/reagent_containers/chem_disp_cartridge/ethylredox,
/obj/item/weapon/reagent_containers/chem_disp_cartridge/sleeptox,
+7 -2
View File
@@ -88,7 +88,7 @@
/datum/shuttle/ferry/multidock/specops/move(var/area/origin,var/area/destination)
..(origin, destination)
spawn(20)
if (!location) //just arrived home
for(var/turf/T in get_area_turfs(destination))
@@ -99,7 +99,7 @@
for(var/turf/T in get_area_turfs(destination))
var/mob/M = locate(/mob) in T
M << "<span class='danger'>You have arrived at [current_map.station_name]. Commence operation!</span>"
var/obj/machinery/light/small/readylight/light = locate() in T
if(light) light.set_state(1)
@@ -240,3 +240,8 @@
else
brightness_color = initial(brightness_color)
update()
/obj/machinery/computer/shuttle_control/legion
name = "deployment shuttle control console"
req_access = list(access_legion)
shuttle_tag = "Tau Ceti Foreign Legion"
+13
View File
@@ -150,3 +150,16 @@
QDEL_NULL(ion)
return ..()
/obj/vehicle/bike/speeder
name = "retrofitted speeder"
desc = "A short bike that seems to consist mostly of an engine, a hover repulsor, vents and a steering shaft."
icon_state = "speeder_on"
health = 150
maxhealth = 150
fire_dam_coeff = 0.5
brute_dam_coeff = 0.4
bike_icon = "speeder"
+7
View File
@@ -0,0 +1,7 @@
author: Alberyk, Kyres1
delete-after: True
changes:
- rscadd: "Added the Tau Ceti Foreign Legion as an alternative to the Emergency Response team."
Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 178 KiB

After

Width:  |  Height:  |  Size: 183 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 KiB

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 KiB

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 349 KiB

After

Width:  |  Height:  |  Size: 352 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 313 KiB

After

Width:  |  Height:  |  Size: 314 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 69 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 38 KiB

+13
View File
@@ -210,3 +210,16 @@
/area/shuttle/research/outpost
icon_state = "shuttle"
station_area = 1
/area/shuttle/legion/centcom
name = "\improper Foreign Legion Shuttle"
flags = RAD_SHIELDED | SPAWN_ROOF
base_turf = /turf/simulated/floor/tiled/dark
icon_state = "shuttlegrn"
centcomm_area = 1
/area/shuttle/legion/station
name = "\improper Foreign Legion Landing"
icon_state = "shuttlegrn2"
base_turf = /turf/simulated/floor/asteroid/ash
station_area = 1
+3
View File
@@ -47,6 +47,9 @@
/area/centcom/holding
name = "\improper Holding Facility"
/area/centcom/legion
name = "\improper Tau Ceti Foreign Legion Base"
//SYNDICATES
/area/syndicate_mothership
File diff suppressed because it is too large Load Diff
+81 -78
View File
@@ -15533,7 +15533,7 @@
/obj/effect/floor_decal/industrial/outline/yellow,
/obj/item/modular_computer/console/preset/engineering,
/turf/simulated/floor/plating,
/area/space)
/area/storage/shields)
"CK" = (
/obj/effect/floor_decal/industrial/outline/yellow,
/obj/machinery/power/smes/buildable{
@@ -18275,6 +18275,9 @@
},
/turf/simulated/floor/tiled,
/area/quartermaster/loading)
"IJ" = (
/turf/simulated/floor/asteroid/ash,
/area/shuttle/legion/station)
"IU" = (
/obj/effect/decal/warning_stripes,
/obj/structure/ladder{
@@ -59820,17 +59823,17 @@ aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
IJ
IJ
IJ
IJ
IJ
IJ
IJ
IJ
IJ
IJ
IJ
aa
aa
aa
@@ -60077,17 +60080,17 @@ aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
IJ
IJ
IJ
IJ
IJ
IJ
IJ
IJ
IJ
IJ
IJ
aa
aa
aa
@@ -60334,17 +60337,17 @@ aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
IJ
IJ
IJ
IJ
IJ
IJ
IJ
IJ
IJ
IJ
IJ
aa
aa
aa
@@ -60591,17 +60594,17 @@ aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
IJ
IJ
IJ
IJ
IJ
IJ
IJ
IJ
IJ
IJ
IJ
aa
aa
aa
@@ -60848,17 +60851,17 @@ aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
IJ
IJ
IJ
IJ
IJ
IJ
IJ
IJ
IJ
IJ
IJ
aa
aa
aa
@@ -61105,17 +61108,17 @@ aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
IJ
IJ
IJ
IJ
IJ
IJ
IJ
IJ
IJ
IJ
IJ
aa
aa
aa
@@ -61362,17 +61365,17 @@ aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
IJ
IJ
IJ
IJ
IJ
IJ
IJ
IJ
IJ
IJ
IJ
aa
aa
aa
+10
View File
@@ -146,3 +146,13 @@
MS.warmup_time = 0
shuttles["Mercenary"] = MS
// Tau Ceti Foreign Legion
shuttle = new()
shuttle.location = 1
shuttle.warmup_time = 10
shuttle.area_offsite = locate(/area/shuttle/legion/centcom)
shuttle.area_station = locate(/area/shuttle/legion/station)
shuttles["Tau Ceti Foreign Legion"] = shuttle
START_PROCESSING(shuttle_controller, shuttle)
Binary file not shown.