Skip to content

Commit

Permalink
STEEL DIVISON (Re-introduces 200 pop locked tank) [CODE BOUNTY] (#6304)
Browse files Browse the repository at this point in the history
# About the pull request
Re-introduces the tank and tank crew back into the game, unlocking at
200 pop.

# Explain why it's good for the game

to do list
re-introduce VC ✅
re-introduce Tank ✅
re-introduce tank attachements ✅
Make crewmen start with gear preset ✅
add pop lock ✅
fix bugs ✅
crew man / tank crew consistency ✅
crawl / ledge ✅




<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
balance: Re-adds Vehicle Crewmen
balance: Tank now unlocks at 200 pop.
balance: Re-adds tank and its attachements back to the tank-bay.
balance: You can no longer have the ARC & TANK in the same round. if the
arc is bought the tank is unavailable and vice versa.
/:cl:

---------

Co-authored-by: InsaneRed <[email protected]>
Co-authored-by: InsaneRed <[email protected]>
Co-authored-by: Git-Nivrak <[email protected]>
Co-authored-by: harryob <[email protected]>
  • Loading branch information
5 people authored Jun 19, 2024
1 parent eaa3802 commit b77b297
Show file tree
Hide file tree
Showing 27 changed files with 120 additions and 98 deletions.
4 changes: 2 additions & 2 deletions code/__DEFINES/job.dm
Original file line number Diff line number Diff line change
Expand Up @@ -77,13 +77,13 @@ GLOBAL_LIST_INIT(job_command_roles, JOB_COMMAND_ROLES_LIST)
#define JOB_AUXILIARY_OFFICER "Auxiliary Support Officer"
#define JOB_CAS_PILOT "Gunship Pilot"
#define JOB_DROPSHIP_PILOT "Dropship Pilot"
#define JOB_TANK_CREW "Tank Crew"
#define JOB_DROPSHIP_CREW_CHIEF "Dropship Crew Chief"
#define JOB_CREWMAN "Vehicle Crewman"
#define JOB_INTEL "Intelligence Officer"
#define JOB_DROPSHIP_ROLES /datum/timelock/dropship
#define JOB_DROPSHIP_ROLES_LIST list(JOB_DROPSHIP_CREW_CHIEF, JOB_CAS_PILOT, JOB_DROPSHIP_PILOT)
#define JOB_AUXILIARY_ROLES /datum/timelock/auxiliary
#define JOB_AUXILIARY_ROLES_LIST list(JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_CREWMAN, JOB_INTEL)
#define JOB_AUXILIARY_ROLES_LIST list(JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_INTEL, JOB_TANK_CREW)

#define JOB_POLICE "Military Police"
#define JOB_WARDEN "Military Warden"
Expand Down
8 changes: 4 additions & 4 deletions code/__DEFINES/mode.dm
Original file line number Diff line number Diff line change
Expand Up @@ -120,12 +120,12 @@
//=================================================

//Role defines, specifically lists of roles for job bans, crew manifests and the like.
GLOBAL_LIST_INIT(ROLES_COMMAND, list(JOB_CO, JOB_XO, JOB_SO, JOB_AUXILIARY_OFFICER, JOB_INTEL, JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_CREWMAN, JOB_POLICE, JOB_CORPORATE_LIAISON, JOB_COMBAT_REPORTER, JOB_CHIEF_REQUISITION, JOB_CHIEF_ENGINEER, JOB_CMO, JOB_CHIEF_POLICE, JOB_SEA, JOB_SYNTH, JOB_WARDEN))
GLOBAL_LIST_INIT(ROLES_COMMAND, list(JOB_CO, JOB_XO, JOB_SO, JOB_AUXILIARY_OFFICER, JOB_INTEL, JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_TANK_CREW, JOB_DROPSHIP_CREW_CHIEF, JOB_POLICE, JOB_CORPORATE_LIAISON, JOB_COMBAT_REPORTER, JOB_CHIEF_REQUISITION, JOB_CHIEF_ENGINEER, JOB_CMO, JOB_CHIEF_POLICE, JOB_SEA, JOB_SYNTH, JOB_WARDEN))

//Marine roles
#define ROLES_OFFICERS list(JOB_CO, JOB_XO, JOB_SO, JOB_AUXILIARY_OFFICER, JOB_INTEL, JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_SEA, JOB_CORPORATE_LIAISON, JOB_COMBAT_REPORTER, JOB_SYNTH, JOB_CHIEF_POLICE, JOB_WARDEN, JOB_POLICE)
#define ROLES_OFFICERS list(JOB_CO, JOB_XO, JOB_SO, JOB_AUXILIARY_OFFICER, JOB_INTEL, JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_TANK_CREW, JOB_DROPSHIP_CREW_CHIEF, JOB_SEA, JOB_CORPORATE_LIAISON, JOB_COMBAT_REPORTER, JOB_SYNTH, JOB_CHIEF_POLICE, JOB_WARDEN, JOB_POLICE)
GLOBAL_LIST_INIT(ROLES_CIC, list(JOB_CO, JOB_XO, JOB_SO, JOB_WO_CO, JOB_WO_XO))
GLOBAL_LIST_INIT(ROLES_AUXIL_SUPPORT, list(JOB_AUXILIARY_OFFICER, JOB_INTEL, JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_WO_CHIEF_POLICE, JOB_WO_SO, JOB_WO_CREWMAN, JOB_WO_POLICE, JOB_WO_PILOT))
GLOBAL_LIST_INIT(ROLES_AUXIL_SUPPORT, list(JOB_AUXILIARY_OFFICER, JOB_INTEL, JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_TANK_CREW, JOB_WO_CHIEF_POLICE, JOB_WO_SO, JOB_WO_CREWMAN, JOB_WO_POLICE, JOB_WO_PILOT))
GLOBAL_LIST_INIT(ROLES_MISC, list(JOB_SYNTH, JOB_WORKING_JOE, JOB_SEA, JOB_CORPORATE_LIAISON, JOB_COMBAT_REPORTER, JOB_MESS_SERGEANT, JOB_WO_CORPORATE_LIAISON, JOB_WO_SYNTH))
GLOBAL_LIST_INIT(ROLES_POLICE, list(JOB_CHIEF_POLICE, JOB_WARDEN, JOB_POLICE))
GLOBAL_LIST_INIT(ROLES_ENGINEERING, list(JOB_CHIEF_ENGINEER, JOB_ORDNANCE_TECH, JOB_MAINT_TECH, JOB_WO_CHIEF_ENGINEER, JOB_WO_ORDNANCE_TECH))
Expand Down Expand Up @@ -153,7 +153,7 @@ GLOBAL_LIST_INIT(ROLES_UNASSIGNED, list(JOB_SQUAD_MARINE))
JOB_SQUAD_LEADER, JOB_SQUAD_TEAM_LEADER, JOB_SQUAD_SPECIALIST, JOB_SQUAD_SMARTGUN, JOB_SQUAD_MEDIC, JOB_SQUAD_ENGI, JOB_SQUAD_MARINE
#define BLURB_USCM_FLIGHT JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF
#define BLURB_USCM_MP JOB_CHIEF_POLICE, JOB_WARDEN, JOB_POLICE
#define BLURB_USCM_ENGI JOB_CHIEF_ENGINEER, JOB_ORDNANCE_TECH, JOB_MAINT_TECH, JOB_WO_CHIEF_ENGINEER, JOB_WO_ORDNANCE_TECH, JOB_WO_PILOT
#define BLURB_USCM_ENGI JOB_CHIEF_ENGINEER, JOB_ORDNANCE_TECH, JOB_MAINT_TECH, JOB_WO_CHIEF_ENGINEER, JOB_WO_ORDNANCE_TECH, JOB_TANK_CREW, JOB_WO_PILOT
#define BLURB_USCM_MEDICAL JOB_CMO, JOB_RESEARCHER, JOB_DOCTOR, JOB_NURSE, JOB_WO_CMO, JOB_WO_RESEARCHER, JOB_WO_DOCTOR
#define BLURB_USCM_REQ JOB_CHIEF_REQUISITION, JOB_CARGO_TECH, JOB_WO_CHIEF_REQUISITION, JOB_WO_REQUISITION
#define BLURB_USCM_WY JOB_CORPORATE_LIAISON
Expand Down
1 change: 1 addition & 0 deletions code/__HELPERS/job.dm
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
JOB_CAS_PILOT,
JOB_DROPSHIP_PILOT,
JOB_DROPSHIP_CREW_CHIEF,
JOB_TANK_CREW,
JOB_CORPORATE_LIAISON,
JOB_COMBAT_REPORTER,
JOB_CHIEF_ENGINEER,
Expand Down
4 changes: 3 additions & 1 deletion code/datums/factions/uscm.dm
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@
if(JOB_GENERAL) marine_rk = "general"
if(JOB_CAS_PILOT) marine_rk = "gp"
if(JOB_DROPSHIP_PILOT) marine_rk = "dp"
if(JOB_TANK_CREW) marine_rk = "tc"
if(JOB_INTEL) marine_rk = "io"
if(JOB_DROPSHIP_CREW_CHIEF) marine_rk = "dcc"
if(JOB_CREWMAN) marine_rk = "tc"
if(JOB_MARINE_RAIDER) marine_rk = "soc"
if(JOB_MARINE_RAIDER_SL) marine_rk = "soctl"
if(JOB_MARINE_RAIDER_CMD) marine_rk = "soccmd"
Expand Down Expand Up @@ -100,6 +100,8 @@
border_rk = "command"
if(JOB_POLICE)
marine_rk = "mp"
if(JOB_TANK_CREW)
marine_rk = "tc"
if(JOB_WARDEN)
marine_rk = "warden"
border_rk = "command"
Expand Down
2 changes: 1 addition & 1 deletion code/game/gamemodes/colonialmarines/whiskey_outpost.dm
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
/datum/job/civilian/synthetic/whiskey = JOB_SYNTH,
/datum/job/command/warrant/whiskey = JOB_CHIEF_POLICE,
/datum/job/command/bridge/whiskey = JOB_SO,
/datum/job/command/tank_crew/whiskey = JOB_CREWMAN,
/datum/job/command/tank_crew/whiskey = JOB_TANK_CREW,
/datum/job/command/police/whiskey = JOB_POLICE,
/datum/job/command/pilot/whiskey = JOB_CAS_PILOT,
/datum/job/logistics/requisition/whiskey = JOB_CHIEF_REQUISITION,
Expand Down
28 changes: 28 additions & 0 deletions code/game/jobs/job/command/auxiliary/tank_crew.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/datum/job/command/tank_crew
title = JOB_TANK_CREW
total_positions = 2
spawn_positions = 2
allow_additional = TRUE
scaled = TRUE
supervisors = "the acting commanding officer"
flags_startup_parameters = ROLE_ADD_TO_DEFAULT
gear_preset = /datum/equipment_preset/uscm/tank
entry_message_body = "Your job is to operate and maintain the ship's armored vehicles. You are in charge of representing the armored presence amongst the marines during the operation, as well as maintaining and repairing your own vehicles."

/datum/job/command/tank_crew/set_spawn_positions(count)
if (length(GLOB.clients) >= 200)
spawn_positions = 2
else
spawn_positions = 0

/datum/job/command/tank_crew/get_total_positions(latejoin = FALSE)
if(SStechtree.trees[TREE_MARINE].get_node(/datum/tech/arc).unlocked)
return 0
if(length(GLOB.clients) >= 200 || total_positions_so_far > 0)
return 2

return 0

/obj/effect/landmark/start/tank_crew
name = JOB_TANK_CREW
job = /datum/job/command/tank_crew
1 change: 0 additions & 1 deletion code/game/jobs/role_authority.dm
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@ GLOBAL_VAR_INIT(players_preassigned, 0)
/datum/job/special/uaac,
/datum/job/special/uaac/tis,
/datum/job/special/uscm,
/datum/job/command/tank_crew //Rip VC
)
var/squads_all[] = typesof(/datum/squad) - /datum/squad
var/castes_all[] = subtypesof(/datum/caste_datum)
Expand Down
74 changes: 9 additions & 65 deletions code/game/machinery/vending/vendor_types/crew/vehicle_crew.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
icon_state = "vehicle_gear"

req_access = list(ACCESS_MARINE_CREWMAN)
vendor_role = list(JOB_CREWMAN)
vendor_role = list(JOB_TANK_CREW)
bound_width = 64

unslashable = TRUE
Expand Down Expand Up @@ -56,30 +56,27 @@
UnregisterSignal(SSdcs, COMSIG_GLOB_VEHICLE_ORDERED)

if(!selected_vehicle)
selected_vehicle = "APC" // The whole thing seems to be based upon the assumption you unlock tank as an override, defaulting to APC
if(selected_vehicle == "APC")
available_categories &= ~(VEHICLE_ARMOR_AVAILABLE|VEHICLE_INTEGRAL_AVAILABLE) //APC lacks these, so we need to remove these flags to be able to access spare parts section
selected_vehicle = "TANK" // The whole thing seems to be based upon the assumption you unlock tank as an override, defaulting to APC
if(selected_vehicle == "TANK")
available_categories &= ~(VEHICLE_INTEGRAL_AVAILABLE) //APC lacks these, so we need to remove these flags to be able to access spare parts section
marine_announcement("A tank is being sent up to reinforce this operation.")

/obj/structure/machinery/cm_vending/gear/vehicle_crew/get_listed_products(mob/user)
var/list/display_list = list()

if(!user)
display_list += GLOB.cm_vending_vehicle_crew_tank
display_list += GLOB.cm_vending_vehicle_crew_tank_spare
display_list += GLOB.cm_vending_vehicle_crew_apc
display_list += GLOB.cm_vending_vehicle_crew_apc_spare
return display_list

if(selected_vehicle == "TANK")
if(available_categories)
display_list = GLOB.cm_vending_vehicle_crew_tank
else
display_list = GLOB.cm_vending_vehicle_crew_tank_spare

else if(selected_vehicle == "ARC")
display_list = GLOB.cm_vending_vehicle_crew_arc

else if(selected_vehicle == "APC")
else if(selected_vehicle == "TANK")
if(available_categories)
display_list = GLOB.cm_vending_vehicle_crew_apc
else //APC stuff costs more to prevent 4000 points spent on shitton of ammunition
Expand Down Expand Up @@ -150,64 +147,11 @@ GLOBAL_LIST_INIT(cm_vending_vehicle_crew_tank, list(
list("Overdrive Enhancer", 0, /obj/item/hardpoint/support/overdrive_enhancer, VEHICLE_SUPPORT_AVAILABLE, VENDOR_ITEM_RECOMMENDED),

list("ARMOR", 0, null, null, null),
list("Ballistic Armor", 0, /obj/item/hardpoint/armor/ballistic, VEHICLE_ARMOR_AVAILABLE, VENDOR_ITEM_RECOMMENDED),
list("Caustic Armor", 0, /obj/item/hardpoint/armor/caustic, VEHICLE_ARMOR_AVAILABLE, VENDOR_ITEM_REGULAR),
list("Concussive Armor", 0, /obj/item/hardpoint/armor/concussive, VEHICLE_ARMOR_AVAILABLE, VENDOR_ITEM_REGULAR),
list("Paladin Armor", 0, /obj/item/hardpoint/armor/paladin, VEHICLE_ARMOR_AVAILABLE, VENDOR_ITEM_REGULAR),
list("Snowplow", 0, /obj/item/hardpoint/armor/snowplow, VEHICLE_ARMOR_AVAILABLE, VENDOR_ITEM_REGULAR),

list("TREADS", 0, null, null, null),
list("Reinforced Treads", 0, /obj/item/hardpoint/locomotion/treads/robust, VEHICLE_TREADS_AVAILABLE, VENDOR_ITEM_REGULAR),
list("Treads", 0, /obj/item/hardpoint/locomotion/treads, VEHICLE_TREADS_AVAILABLE, VENDOR_ITEM_RECOMMENDED)))

GLOBAL_LIST_INIT(cm_vending_vehicle_crew_tank_spare, list(
list("SPARE PARTS SELECTION:", 0, null, null, null),

list("INTEGRAL PARTS", 0, null, null, null),
list("M34A2-A Multipurpose Turret", 500, /obj/item/hardpoint/holder/tank_turret, null, VENDOR_ITEM_REGULAR),

list("SUPPORT AMMUNITION", 0, null, null, null),
list("Turret Smoke Screen Magazine", 50, /obj/item/ammo_magazine/hardpoint/turret_smoke, null, VENDOR_ITEM_REGULAR),

list("PRIMARY WEAPON", 0, null, null, null),
list("AC3-E Autocannon", 200, /obj/item/hardpoint/primary/autocannon, null, VENDOR_ITEM_REGULAR),
list("DRG-N Offensive Flamer Unit", 200, /obj/item/hardpoint/primary/flamer, null, VENDOR_ITEM_REGULAR),
list("LTAA-AP Minigun", 200, /obj/item/hardpoint/primary/minigun, null, VENDOR_ITEM_REGULAR),
list("LTB Cannon", 400, /obj/item/hardpoint/primary/cannon, null, VENDOR_ITEM_RECOMMENDED),

list("PRIMARY AMMUNITION", 0, null, null, null),
list("AC3-E Autocannon Magazine", 100, /obj/item/ammo_magazine/hardpoint/ace_autocannon, null, VENDOR_ITEM_REGULAR),
list("DRG-N Offensive Flamer Unit Fuel Tank", 100, /obj/item/ammo_magazine/hardpoint/primary_flamer, null, VENDOR_ITEM_REGULAR),
list("LTAA-AP Minigun Magazine", 100, /obj/item/ammo_magazine/hardpoint/ltaaap_minigun, null, VENDOR_ITEM_REGULAR),
list("LTB Cannon Magazine", 100, /obj/item/ammo_magazine/hardpoint/ltb_cannon, null, VENDOR_ITEM_REGULAR),

list("SECONDARY WEAPON", 0, null, null, null),
list("M92T Grenade Launcher", 200, /obj/item/hardpoint/secondary/grenade_launcher, null, VENDOR_ITEM_REGULAR),
list("M56 Cupola", 200, /obj/item/hardpoint/secondary/m56cupola, null, VENDOR_ITEM_REGULAR),
list("LZR-N Flamer Unit", 200, /obj/item/hardpoint/secondary/small_flamer, null, VENDOR_ITEM_REGULAR),
list("TOW Launcher", 300, /obj/item/hardpoint/secondary/towlauncher, null, VENDOR_ITEM_REGULAR),

list("SECONDARY AMMUNITION", 0, null, null, null),
list("M92T Grenade Launcher Magazine", 50, /obj/item/ammo_magazine/hardpoint/tank_glauncher, null, VENDOR_ITEM_REGULAR),
list("M56 Cupola Magazine", 50, /obj/item/ammo_magazine/hardpoint/m56_cupola, null, VENDOR_ITEM_REGULAR),
list("LZR-N Flamer Unit Fuel Tank", 50, /obj/item/ammo_magazine/hardpoint/secondary_flamer, null, VENDOR_ITEM_REGULAR),
list("TOW Launcher Magazine", 50, /obj/item/ammo_magazine/hardpoint/towlauncher, null, VENDOR_ITEM_REGULAR),

list("SUPPORT MODULE", 0, null, null, null),
list("Artillery Module", 300, /obj/item/hardpoint/support/artillery_module, null, VENDOR_ITEM_REGULAR),
list("Integrated Weapons Sensor Array", 200, /obj/item/hardpoint/support/weapons_sensor, null, VENDOR_ITEM_REGULAR),
list("Overdrive Enhancer", 200, /obj/item/hardpoint/support/overdrive_enhancer, null, VENDOR_ITEM_REGULAR),

list("ARMOR", 0, null, null, null),
list("Ballistic Armor", 300, /obj/item/hardpoint/armor/ballistic, null, VENDOR_ITEM_REGULAR),
list("Caustic Armor", 300, /obj/item/hardpoint/armor/caustic, null, VENDOR_ITEM_REGULAR),
list("Concussive Armor", 300, /obj/item/hardpoint/armor/concussive, null, VENDOR_ITEM_REGULAR),
list("Paladin Armor", 300, /obj/item/hardpoint/armor/paladin, null, VENDOR_ITEM_REGULAR),
list("Snowplow", 200, /obj/item/hardpoint/armor/snowplow, null, VENDOR_ITEM_REGULAR),

list("TREADS", 0, null, null, null),
list("Reinforced Treads", 200, /obj/item/hardpoint/locomotion/treads/robust, null, VENDOR_ITEM_REGULAR),
list("Treads", 200, /obj/item/hardpoint/locomotion/treads, null, VENDOR_ITEM_REGULAR)))
list("Treads", 0, /obj/item/hardpoint/locomotion/treads, VEHICLE_TREADS_AVAILABLE, VENDOR_ITEM_REGULAR)))

GLOBAL_LIST_INIT(cm_vending_vehicle_crew_apc, list(
list("STARTING KIT SELECTION:", 0, null, null, null),
Expand Down Expand Up @@ -261,7 +205,7 @@ GLOBAL_LIST_INIT(cm_vending_vehicle_crew_arc, list(
desc = "An automated weapon rack hooked up to a small storage of standard-issue weapons. Can be accessed only by the Vehicle Crewmen."
icon_state = "guns"
req_access = list(ACCESS_MARINE_CREWMAN)
vendor_role = list(JOB_CREWMAN)
vendor_role = list(JOB_TANK_CREW)
vend_flags = VEND_CLUTTER_PROTECTION | VEND_LIMITED_INVENTORY | VEND_TO_HAND

listed_products = list(
Expand Down Expand Up @@ -400,7 +344,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_vehicle_crew, list(
name = "\improper ColMarTech Vehicle Crewman Equipment Rack"
desc = "An automated rack hooked up to a colossal storage of Vehicle Crewmen standard-issue equipment."
req_access = list(ACCESS_MARINE_CREWMAN)
vendor_role = list(JOB_CREWMAN)
vendor_role = list(JOB_TANK_CREW)

/obj/structure/machinery/cm_vending/clothing/vehicle_crew/get_listed_products(mob/user)
return GLOB.cm_vending_clothing_vehicle_crew
Expand Down
11 changes: 4 additions & 7 deletions code/game/supplyshuttle.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1323,9 +1323,9 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new())
req_access = list(ACCESS_MARINE_CREWMAN)
circuit = /obj/item/circuitboard/computer/supplycomp/vehicle
// Can only retrieve one vehicle per round
var/spent = TRUE
var/tank_unlocked = FALSE
var/list/allowed_roles = list(JOB_CREWMAN)
var/spent = FALSE
var/tank_unlocked = TRUE
var/list/allowed_roles = list(JOB_TANK_CREW)

var/list/vehicles

Expand Down Expand Up @@ -1384,9 +1384,7 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new())
. = ..()

vehicles = list(
new /datum/vehicle_order/apc(),
new /datum/vehicle_order/apc/med(),
new /datum/vehicle_order/apc/cmd(),
new /datum/vehicle_order/tank/plain
)

if(!GLOB.VehicleElevatorConsole)
Expand Down Expand Up @@ -1477,7 +1475,6 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new())

if(VO?.has_vehicle_lock())
return

spent = TRUE
ordered_vehicle = new VO.ordered_vehicle(middle_turf)
SSshuttle.vehicle_elevator.request(SSshuttle.getDock("almayer vehicle"))
Expand Down
2 changes: 1 addition & 1 deletion code/modules/character_traits/biology_traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@
/datum/character_trait/biology/bad_leg/New()
. = ..()
// Not on definition as several lists are added
inapplicable_roles = list(JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_CREWMAN, JOB_INTEL, JOB_ORDNANCE_TECH, JOB_MARINE) + JOB_SQUAD_ROLES_LIST + JOB_MARINE_RAIDER_ROLES_LIST + JOB_ERT_GRUNT_LIST
inapplicable_roles = list(JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_TANK_CREW, JOB_INTEL, JOB_ORDNANCE_TECH, JOB_MARINE) + JOB_SQUAD_ROLES_LIST + JOB_MARINE_RAIDER_ROLES_LIST + JOB_ERT_GRUNT_LIST
bad_cane_roles = list(JOB_SURVIVOR, JOB_STOWAWAY)
fancy_cane_roles = list(JOB_CO_SURVIVOR, CORPORATE_SURVIVOR, JOB_CMO, JOB_CORPORATE_LIAISON, JOB_SEA, JOB_CHIEF_ENGINEER) + JOB_COMMAND_ROLES_LIST
inapplicable_species = list(SPECIES_SYNTHETIC, SPECIES_YAUTJA)
Expand Down
4 changes: 2 additions & 2 deletions code/modules/client/preferences.dm
Original file line number Diff line number Diff line change
Expand Up @@ -667,7 +667,7 @@ GLOBAL_LIST_INIT(bgstate_options, list(
* * width - Screen' width.
* * height - Screen's height.
*/
/datum/preferences/proc/SetChoices(mob/user, limit = 20, list/splitJobs = list(JOB_CHIEF_REQUISITION, JOB_WO_CMO), width = 950, height = 750)
/datum/preferences/proc/SetChoices(mob/user, limit = 21, list/splitJobs = list(JOB_CHIEF_REQUISITION, JOB_WO_CMO), width = 950, height = 750)
if(!GLOB.RoleAuthority)
return

Expand Down Expand Up @@ -785,7 +785,7 @@ GLOBAL_LIST_INIT(bgstate_options, list(
* * width - Screen' width.
* * height - Screen's height.
*/
/datum/preferences/proc/set_job_slots(mob/user, limit = 20, list/splitJobs = list(JOB_CHIEF_REQUISITION, JOB_WO_CMO), width = 950, height = 750)
/datum/preferences/proc/set_job_slots(mob/user, limit = 21, list/splitJobs = list(JOB_CHIEF_REQUISITION, JOB_WO_CMO), width = 950, height = 750)
if(!GLOB.RoleAuthority)
return

Expand Down
1 change: 1 addition & 0 deletions code/modules/cm_marines/marines_consoles.dm
Original file line number Diff line number Diff line change
Expand Up @@ -942,6 +942,7 @@ GLOBAL_LIST_EMPTY_TYPED(crewmonitor, /datum/crewmonitor)
JOB_DROPSHIP_PILOT = 23,
JOB_DROPSHIP_CREW_CHIEF = 24,
JOB_INTEL = 25,
JOB_TANK_CREW = 26,
// 30-39: Security
JOB_CHIEF_POLICE = 30,
JOB_PROVOST_TML = 30,
Expand Down
2 changes: 1 addition & 1 deletion code/modules/cm_tech/implements/tank.dm
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
name = "tank coupon"
desc = "We're done playing! This coupon allows the ship crew to retrieve a complete Longstreet tank from Vehicle ASRS. Make sure to send the ASRS lift down so it can be retrieved. One use only. LTB not included. Comes with free friendly fire."
vehicle_type = /datum/vehicle_order/tank/broken
vehicle_category = "TANK"
vehicle_category = "LONGSTREET"

/obj/item/vehicle_coupon/attack_self(mob/user)
if(QDELETED(src))
Expand Down
13 changes: 13 additions & 0 deletions code/modules/cm_tech/techs/marine/tier1/arc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,19 @@

flags = TREE_FLAG_MARINE


/datum/tech/arc/can_unlock(mob/unlocking_mob)
. = ..()

var/obj/structure/machinery/cm_vending/gear/vehicle_crew/gearcomp = GLOB.VehicleGearConsole

if(gearcomp.selected_vehicle == "TANK")
to_chat(unlocking_mob, SPAN_WARNING ("A vehicle has already been selected for this operation."))
return FALSE

return TRUE


/datum/tech/arc/on_unlock()
. = ..()

Expand Down
1 change: 1 addition & 0 deletions code/modules/cm_tech/techtree.dm
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,7 @@

/// `tech`: a typepath to a tech
/datum/techtree/proc/get_node(tech)
RETURN_TYPE(/datum/tech)
return techs_by_type[tech]

/datum/techtree/proc/on_node_gained(obj/structure/resource_node/RN)
Expand Down
4 changes: 2 additions & 2 deletions code/modules/gear_presets/other.dm
Original file line number Diff line number Diff line change
Expand Up @@ -881,8 +881,8 @@
flags = EQUIPMENT_PRESET_EXTRA

idtype = /obj/item/card/id/dogtag
assignment = JOB_CREWMAN
rank = JOB_CREWMAN
assignment = JOB_TANK_CREW
rank = JOB_TANK_CREW
paygrade = PAY_SHORT_ME4
role_comm_title = "CRMN"
minimum_age = 30
Expand Down
4 changes: 2 additions & 2 deletions code/modules/gear_presets/uscm.dm
Original file line number Diff line number Diff line change
Expand Up @@ -161,8 +161,8 @@
ACCESS_MARINE_CHARLIE,
ACCESS_MARINE_DELTA,
)
assignment = JOB_CREWMAN
rank = JOB_CREWMAN
assignment = JOB_TANK_CREW
rank = JOB_TANK_CREW
paygrade = PAY_SHORT_ME4
role_comm_title = "CRMN"
minimum_age = 30
Expand Down
2 changes: 2 additions & 0 deletions code/modules/mob/new_player/preferences_setup.dm
Original file line number Diff line number Diff line change
Expand Up @@ -260,6 +260,8 @@
return /datum/equipment_preset/uscm/intel/full
if(JOB_CAS_PILOT)
return /datum/equipment_preset/uscm_ship/gp/full
if(JOB_TANK_CREW)
return /datum/equipment_preset/uscm/tank/full
if(JOB_DROPSHIP_PILOT)
return /datum/equipment_preset/uscm_ship/dp/full
if(JOB_DROPSHIP_CREW_CHIEF)
Expand Down
2 changes: 1 addition & 1 deletion code/modules/vehicles/apc/apc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ GLOBAL_LIST_EMPTY(command_apc_list)
/obj/vehicle/multitile/apc/load_role_reserved_slots()
var/datum/role_reserved_slots/RRS = new
RRS.category_name = "Crewmen"
RRS.roles = list(JOB_CREWMAN, JOB_WO_CREWMAN, JOB_UPP_CREWMAN, JOB_PMC_CREWMAN)
RRS.roles = list(JOB_TANK_CREW, JOB_WO_CREWMAN, JOB_UPP_CREWMAN, JOB_PMC_CREWMAN)
RRS.total = 2
role_reserved_slots += RRS

Expand Down
2 changes: 1 addition & 1 deletion code/modules/vehicles/apc/apc_command.dm
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@
/obj/vehicle/multitile/apc/command/load_role_reserved_slots()
var/datum/role_reserved_slots/RRS = new
RRS.category_name = "Crewmen"
RRS.roles = list(JOB_CREWMAN, JOB_WO_CREWMAN, JOB_UPP_CREWMAN, JOB_PMC_CREWMAN)
RRS.roles = list(JOB_TANK_CREW, JOB_WO_CREWMAN, JOB_UPP_CREWMAN, JOB_PMC_CREWMAN)
RRS.total = 2
role_reserved_slots += RRS

Expand Down
Loading

0 comments on commit b77b297

Please sign in to comment.