Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

STEEL DIVISON (Re-introduces 200 pop locked tank) [CODE BOUNTY] #6304

Merged
merged 30 commits into from
Jun 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
5a7bb5d
gg
May 7, 2024
36f470b
delete
May 7, 2024
e8f32bc
yeah
May 7, 2024
eb5c117
Merge branch 'master' of https://github.com/cmss13-devs/cmss13 into tank
May 15, 2024
286fdac
introduces the job, makes the tank available again
May 17, 2024
6eb375d
removes john crew_guy
May 17, 2024
9ae1d8c
makes the job work
May 17, 2024
92e3e4f
removes the wiki link and it from the description
May 17, 2024
aeafa63
name consistency, removes the spawnmark
May 17, 2024
4db1f64
TANKCREWMAN
May 17, 2024
be0052f
job_changes
May 17, 2024
38d8f42
migrates to tank_crew
May 17, 2024
0f6af00
further job stuff
May 22, 2024
ecec8d8
slot scaling
May 23, 2024
842e412
Merge branch 'master' into tank
Red-byte3D May 23, 2024
d7a4c00
Adds threads to the /plain/ because it bugged out without threads if …
May 23, 2024
499154b
unreachable code in question
May 23, 2024
1409149
Apply suggestions from code review
Red-byte3D May 26, 2024
a96bb5d
indentation
May 26, 2024
2118d38
extra space removal
May 27, 2024
0d54301
roles now work
May 27, 2024
abe86e5
Apply suggestions from code review
Red-byte3D May 28, 2024
b952d7a
preferences
May 30, 2024
0885c7f
Merge branch 'tank' of https://github.com/InsaneRed/cmss13 into tank
May 30, 2024
c22026d
health changes, removes threads on spam so people now need to put it on.
Jun 1, 2024
d73e5d7
adds treads back, removes it from the tank, and remvoes spares
Jun 1, 2024
b51bd40
removes armor, makes snowplow available on everything and lowers its …
Jun 1, 2024
f1680e1
locks it so you can only have arc or the tank, not both. Removes it f…
Jun 19, 2024
696e150
return type
Jun 19, 2024
c5690e3
Update code/modules/cm_tech/techtree.dm
harryob Jun 19, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Red-byte3D marked this conversation as resolved.
Show resolved Hide resolved
#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 @@ -97,6 +97,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 @@ -1318,9 +1318,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 @@ -1379,9 +1379,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 @@ -1472,7 +1470,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 @@ -663,7 +663,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 @@ -781,7 +781,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 @@ -904,6 +904,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 @@ -259,6 +259,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
Loading