Skip to content

Commit

Permalink
combat robot
Browse files Browse the repository at this point in the history
  • Loading branch information
homexp13 committed Jul 27, 2024
1 parent 6450008 commit d4b7e3f
Show file tree
Hide file tree
Showing 18 changed files with 277 additions and 102 deletions.
1 change: 1 addition & 0 deletions code/__DEFINES/access.dm
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ GLOBAL_LIST_EMPTY(all_req_one_access)
#define ACCESS_MARINE_RESEARCH 13
#define ACCESS_MARINE_SMARTPREP 14
#define ACCESS_MARINE_COMMANDER 15
#define ACCESS_MARINE_ROBO 16

#define ACCESS_MARINE_BRIDGE 40
#define ACCESS_MARINE_CHEMISTRY 41
Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/jobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
#define JOB_DISPLAY_ORDER_SUQAD_ENGINEER 22
#define JOB_DISPLAY_ORDER_SQUAD_MARINE 23
#define JOB_DISPLAY_ORDER_SURVIVOR 24
#define JOB_DISPLAY_ORDER_SQUAD_ROBO 25

#define JOB_FLAG_SPECIALNAME (1<<0)
#define JOB_FLAG_LATEJOINABLE (1<<1) //Can this job be selected for prefs to join as?
Expand Down
160 changes: 99 additions & 61 deletions code/__DEFINES/loadout.dm

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions code/datums/gamemodes/distress.dm
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
/datum/job/terragov/squad/smartgunner = 1,
/datum/job/terragov/squad/leader = 1,
/datum/job/terragov/squad/standard = -1,
/datum/job/terragov/squad/combat_robot = -1,
/datum/job/xenomorph = FREE_XENO_AT_START,
/datum/job/xenomorph/queen = 1
)
Expand Down
3 changes: 2 additions & 1 deletion code/datums/gamemodes/extended.dm
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@
/datum/job/terragov/squad/corpsman = 8,
/datum/job/terragov/squad/smartgunner = 4,
/datum/job/terragov/squad/leader = 4,
/datum/job/terragov/squad/standard = -1
/datum/job/terragov/squad/standard = -1,
/datum/job/terragov/squad/combat_robot = -1,
)
enable_fun_tads = TRUE
xenorespawn_time = 1 MINUTES
Expand Down
21 changes: 21 additions & 0 deletions code/datums/jobs/job/fallen.dm
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,27 @@

/datum/job/fallen/marine/standard

/datum/job/fallen/marine/combat_robot
title = SQUAD_ROBOT
access = list(ACCESS_MARINE_ROBO)
minimal_access = list(ACCESS_MARINE_PREP, ACCESS_MARINE_DROPSHIP)
outfit = /datum/outfit/job/marine/robo

/datum/job/fallen/marine/combat_robot/get_special_name(client/preference_source)
return preference_source.prefs.synthetic_name

/datum/job/fallen/marine/combat_robot/return_spawn_type(datum/preferences/prefs)
switch(prefs?.robot_type)
if("Hammerhead")
return /mob/living/carbon/human/species/robot/alpharii
if("Chilvaris")
return /mob/living/carbon/human/species/robot/charlit
if("Ratcher")
return /mob/living/carbon/human/species/robot/deltad
if("Sterling")
return /mob/living/carbon/human/species/robot/bravada
return /mob/living/carbon/human/species/robot

/datum/job/fallen/marine/engineer
title = ROLE_FALLEN(SQUAD_ENGINEER)
skills_type = /datum/skills/combat_engineer
Expand Down
77 changes: 77 additions & 0 deletions code/datums/jobs/job/marines.dm
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,83 @@ What you lack alone, you gain standing shoulder to shoulder with the men and wom

id = /obj/item/card/id/dogtag

//Squad Combat Robot
/datum/job/terragov/squad/combat_robot
title = SQUAD_ROBOT
paygrade = "E1"
comm_title = "Rob"
access = list(ACCESS_MARINE_ROBO)
minimal_access = list(ACCESS_MARINE_PREP, ACCESS_MARINE_DROPSHIP)
display_order = JOB_DISPLAY_ORDER_SQUAD_ROBO
outfit = /datum/outfit/job/marine/robo
total_positions = -1
job_flags = JOB_FLAG_SPECIALNAME|JOB_FLAG_LATEJOINABLE|JOB_FLAG_ROUNDSTARTJOINABLE|JOB_FLAG_ALLOWS_PREFS_GEAR|JOB_FLAG_PROVIDES_BANK_ACCOUNT|JOB_FLAG_ADDTOMANIFEST|JOB_FLAG_PROVIDES_SQUAD_HUD|JOB_FLAG_CAN_SEE_ORDERS
jobworth = list(
/datum/job/xenomorph = LARVA_POINTS_REGULAR,
/datum/job/terragov/squad/smartgunner = SMARTIE_POINTS_REGULAR,
/datum/job/terragov/squad/corpsman = SMARTIE_POINTS_REGULAR,
/datum/job/terragov/squad/engineer = SMARTIE_POINTS_REGULAR,
/datum/job/terragov/silicon/synthetic = SYNTH_POINTS_REGULAR,
/datum/job/terragov/command/mech_pilot = MECH_POINTS_REGULAR,
/datum/job/terragov/command/assault_crewman = ARMORED_VEHICLE_POINTS_REGULAR,
)
html_description = {"
<b>Difficulty</b>: Easy<br /><br />
<b>You answer to the</b> acting Squad Leader<br /><br />
<b>Unlock Requirement</b>: Starting Role<br /><br />
<b>Gamemode Availability</b>: Crash, Nuclear War<br /><br /><br />
TerraGov’s Squad Marines make up the bread and butter of Terra's fighting forces. They are fitted with the standard arsenal that the TGMC offers, and they can take up a variety of roles, being a sniper, a pyrotechnician, a machinegunner, rifleman and more. They’re often high in numbers and divided into squads, but they’re the lowest ranking individuals, with a low degree of skill, not adapt to engineering or medical roles. Still, they are not limited to the arsenal they can take on the field to deal whatever threat that lurks against Terra.
<br /><br />
<b>Duty</b>: Carry out orders made by your acting Squad Leader, deal with any threats that oppose the TGMC.
"}
minimap_icon = "robo"

/datum/job/terragov/squad/combat_robot/after_spawn(mob/living/carbon/new_mob, mob/user, latejoin = FALSE)
. = ..()
if(!ishuman(new_mob))
return
var/mob/living/carbon/human/new_human = new_mob
var/playtime_mins = user?.client?.get_exp(title)
if(!playtime_mins || playtime_mins < 1 )
return
switch(playtime_mins)
if(0 to 600) // starting
new_human.wear_id.paygrade = "E1"
if(601 to 6000) // 10hrs
new_human.wear_id.paygrade = "E2"
if(6001 to 18000) // 100 hrs
new_human.wear_id.paygrade = "E3"
if(18001 to 60000) // 300 hrs
new_human.wear_id.paygrade = "E3E"
if(60001 to INFINITY) // 1000 hrs
new_human.wear_id.paygrade = "E8" //If you play way too much TGMC. 1000 hours.

/datum/job/terragov/squad/combat_robot/get_special_name(client/preference_source)
return preference_source.prefs.synthetic_name

/datum/job/terragov/squad/combat_robot/return_spawn_type(datum/preferences/prefs)
switch(prefs?.robot_type)
if("Hammerhead")
return /mob/living/carbon/human/species/robot/alpharii
if("Chilvaris")
return /mob/living/carbon/human/species/robot/charlit
if("Ratcher")
return /mob/living/carbon/human/species/robot/deltad
if("Sterling")
return /mob/living/carbon/human/species/robot/bravada
return /mob/living/carbon/human/species/robot

/datum/job/terragov/squad/combat_robot/radio_help_message(mob/M)
. = ..()
to_chat(M, {"\nYou are a rank-and-file marine of the TGMC, and that is your strength.
What you lack alone, you gain standing shoulder to shoulder with the men and women of the TerraGov Marine Corps. Ooh-rah!"})

/datum/outfit/job/marine/robo
name = SQUAD_ENGINEER
jobtype = /datum/job/terragov/squad/combat_robot

id = /obj/item/card/id/dogtag/robo

//Squad Engineer
/datum/job/terragov/squad/engineer
title = SQUAD_ENGINEER
Expand Down
5 changes: 0 additions & 5 deletions code/datums/outfit.dm
Original file line number Diff line number Diff line change
Expand Up @@ -96,11 +96,6 @@
for(var/i in 1 to number)
H.equip_to_slot_or_del(new path(H),SLOT_IN_BACKPACK, override_nodrop = TRUE)

//RUTGMC EDIT ADDITION BEGIN - SOLDERING_TOOL
if(isrobot(H))
H.equip_to_slot_or_del(new /obj/item/tool/surgery/solderingtool, SLOT_IN_BACKPACK)
//RUTGMC EDIT ADDITION END

post_equip(H, visualsOnly)

if(!visualsOnly)
Expand Down
8 changes: 7 additions & 1 deletion code/game/objects/items/cards_ids.dm
Original file line number Diff line number Diff line change
Expand Up @@ -300,6 +300,11 @@
CAT_SGSUP = DEFAULT_TOTAL_BUY_POINTS,
)

/obj/item/card/id/dogtag/robo
marine_points = list(
CAT_ROBO = DEFAULT_TOTAL_BUY_POINTS,
)

/obj/item/card/id/dogtag/engineer
marine_points = list(
CAT_ENGSUP = ENGINEER_TOTAL_BUY_POINTS,
Expand Down Expand Up @@ -328,7 +333,8 @@
CAT_LEDSUP = DEFAULT_TOTAL_BUY_POINTS,
CAT_MEDSUP = MEDIC_TOTAL_BUY_POINTS,
CAT_FCSUP = COMMANDER_TOTAL_BUY_POINTS,
CAT_SYNTH = SYNTH_TOTAL_BUY_POINTS, //necessary to correctly show max points
CAT_SYNTH = SYNTH_TOTAL_BUY_POINTS,
CAT_ROBO = DEFAULT_TOTAL_BUY_POINTS, //necessary to correctly show max points
)

/obj/item/card/id/dogtag/som
Expand Down
11 changes: 1 addition & 10 deletions code/game/objects/machinery/vending/marine_vending.dm
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,6 @@
/obj/item/weapon/gun/shotgun/pump/lever/repeater = -1,
/obj/item/ammo_magazine/packet/p4570 = -1,
),
"Energy Weapons" = list(
/obj/item/cell/lasgun/lasrifle = -1,
/obj/item/weapon/gun/energy/lasgun/lasrifle/standard_marine_rifle = -1,
/obj/item/weapon/gun/energy/lasgun/lasrifle/standard_marine_sniper = -1,
/obj/item/weapon/gun/energy/lasgun/lasrifle/standard_marine_carbine = -1,
/obj/item/weapon/gun/energy/lasgun/lasrifle/standard_marine_mlaser = -1,
/obj/item/weapon/gun/energy/lasgun/lasrifle/standard_marine_pistol = -1,
/obj/item/weapon/gun/energy/lasgun/lasrifle/tesla = 2,
),
"SMGs" = list(
/obj/item/weapon/gun/smg/standard_smg = -1,
/obj/item/ammo_magazine/smg/standard_smg = -1,
Expand Down Expand Up @@ -83,7 +74,6 @@
/obj/item/weapon/twohanded/spear/tactical = -1,
/obj/item/weapon/twohanded/spear/tactical/harvester = -1,
/obj/item/weapon/twohanded/glaive/harvester = -1,
/obj/item/weapon/powerfist = -1,
/obj/item/weapon/shield/riot/marine = 6,
/obj/item/weapon/shield/riot/marine/deployable = 6,
/obj/item/weapon/combat_knife/harvester = 12,
Expand Down Expand Up @@ -182,6 +172,7 @@
/obj/item/attachable/flamer_nozzle/long = -1,
),
"Boxes" = list(
/obj/item/cell/lasgun/lasrifle = -1,
/obj/item/ammo_magazine/packet/p9mm = -1,
/obj/item/ammo_magazine/packet/p9mmap = -1,
/obj/item/ammo_magazine/packet/acp = -1,
Expand Down
53 changes: 51 additions & 2 deletions code/game/objects/machinery/vending/new_marine_vendors.dm
Original file line number Diff line number Diff line change
Expand Up @@ -277,6 +277,38 @@
resistance_flags = INDESTRUCTIBLE
lock_flags = JOB_LOCK


/obj/machinery/marine_selector/clothes/robo
name = "GHMME Automated Combat Robot Closet"
req_access = list(ACCESS_MARINE_ROBO)
vendor_role = /datum/job/terragov/squad/combat_robot
gives_webbing = FALSE

/obj/machinery/marine_selector/clothes/robo/Initialize(mapload)
. = ..()
listed_products = GLOB.robot_clothes_listed_products

/obj/machinery/marine_selector/clothes/robo/alpha
squad_tag = "Alpha"
req_access = list(ACCESS_MARINE_ROBO, ACCESS_MARINE_ALPHA)

/obj/machinery/marine_selector/clothes/robo/bravo
squad_tag = "Bravo"
req_access = list(ACCESS_MARINE_ROBO, ACCESS_MARINE_BRAVO)

/obj/machinery/marine_selector/clothes/robo/charlie
squad_tag = "Charlie"
req_access = list(ACCESS_MARINE_ROBO, ACCESS_MARINE_CHARLIE)

/obj/machinery/marine_selector/clothes/robo/delta
squad_tag = "Delta"
req_access = list(ACCESS_MARINE_ROBO, ACCESS_MARINE_DELTA)

/obj/machinery/marine_selector/clothes/robo/valhalla
vendor_role = /datum/job/fallen/marine/combat_robot
resistance_flags = INDESTRUCTIBLE
lock_flags = JOB_LOCK

/obj/machinery/marine_selector/clothes/medic
name = "GHMME Automated Corpsman Closet"
req_access = list(ACCESS_MARINE_MEDPREP)
Expand Down Expand Up @@ -451,6 +483,24 @@
resistance_flags = INDESTRUCTIBLE
lock_flags = JOB_LOCK

/obj/machinery/marine_selector/gear/robo
name = "NEXUS Automated Combat Robot Gear Rack"
desc = "An automated combat robot rack hooked up to a colossal storage unit."
icon_state = "robo"
icon_vend = "robo-vend"
icon_deny = "robo-deny"
vendor_role = /datum/job/terragov/squad/combat_robot
req_access = list(ACCESS_MARINE_ROBO)

/obj/machinery/marine_selector/gear/robo/Initialize(mapload)
. = ..()
listed_products = GLOB.robot_gear_listed_products

/obj/machinery/marine_selector/gear/robo/valhalla
vendor_role = /datum/job/fallen/marine/combat_robot
resistance_flags = INDESTRUCTIBLE
lock_flags = JOB_LOCK

/obj/machinery/marine_selector/gear/engi
name = "NEXUS Automated Engineer Equipment Rack"
desc = "An automated engineer equipment rack hooked up to a colossal storage unit."
Expand Down Expand Up @@ -740,9 +790,7 @@
/obj/item/bodybag/cryobag,
/obj/item/reagent_containers/hypospray/advanced/oxycodone,
/obj/item/tweezers,
//RUTGMC EDIT ADDITION BEGIN - SOLDERING_TOOL
/obj/item/tool/surgery/solderingtool,
//RUTGMC EDIT ADDITION END
)

/obj/effect/vendor_bundle/white_dress
Expand Down Expand Up @@ -897,6 +945,7 @@
/obj/item/clothing/under/marine/robotic,
/obj/item/tool/weldingtool,
/obj/item/stack/cable_coil,
/obj/item/tool/surgery/solderingtool,
)

/obj/effect/vendor_bundle/robot/light_armor
Expand Down
4 changes: 0 additions & 4 deletions code/modules/clothing/modular_armor/attachments/storage.dm
Original file line number Diff line number Diff line change
Expand Up @@ -281,9 +281,7 @@
/obj/item/detpack,
/obj/item/circuitboard,
/obj/item/lightreplacer,
//RUTGMC EDIT ADDITION BEGIN - SOLDERING_TOOL
/obj/item/tool/surgery/solderingtool,
//RUTGMC EDIT ADDITION END
)
cant_hold = list()

Expand Down Expand Up @@ -331,9 +329,7 @@
/obj/item/tweezers,
/obj/item/tweezers_advanced,
/obj/item/whistle,
//RUTGMC EDIT ADDITION BEGIN - SOLDERING_TOOL
/obj/item/tool/surgery/solderingtool,
//RUTGMC EDIT ADDITION END
)

/obj/item/armor_module/storage/medical/som
Expand Down
2 changes: 0 additions & 2 deletions code/modules/clothing/modular_armor/attachments/uniform.dm
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,7 @@
/obj/item/ammo_magazine/smg,
/obj/item/ammo_magazine/sniper,
/obj/item/cell/lasgun,
//RUTGMC EDIT ADDITION BEGIN - SOLDERING_TOOL
/obj/item/tool/surgery/solderingtool,
//RUTGMC EDIT ADDITION END
)
cant_hold = list(
/obj/item/stack/razorwire,
Expand Down
2 changes: 1 addition & 1 deletion code/modules/mob/living/carbon/human/species.dm
Original file line number Diff line number Diff line change
Expand Up @@ -447,7 +447,7 @@
warcries = list(MALE = "robot_warcry", FEMALE = "robot_warcry", PLURAL = "robot_warcry", NEUTER = "robot_warcry")
death_message = "shudders violently whilst spitting out error text before collapsing, their visual sensor darkening..."
special_death_message = "You have been shut down.<br><small>But it is not the end of you yet... if you still have your body, wait until somebody can resurrect you...</small>"
joinable_roundstart = TRUE
joinable_roundstart = FALSE

inherent_actions = list(/datum/action/repair_self)

Expand Down
Binary file modified icons/UI_Icons/map_blips.dmi
Binary file not shown.
Binary file modified icons/mob/hud.dmi
Binary file not shown.
Binary file modified icons/obj/machines/vending.dmi
Binary file not shown.
30 changes: 15 additions & 15 deletions tgmc.dme
Original file line number Diff line number Diff line change
Expand Up @@ -1863,6 +1863,13 @@
#include "code\modules\predator\yautja\weapons\one_handed.dm"
#include "code\modules\predator\yautja\weapons\ranged.dm"
#include "code\modules\predator\yautja\weapons\two_handed.dm"
#include "code\modules\projectiles\ammunition.dm"
#include "code\modules\projectiles\gun_helpers.dm"
#include "code\modules\projectiles\gun_system.dm"
#include "code\modules\projectiles\mounted.dm"
#include "code\modules\projectiles\projectile.dm"
#include "code\modules\projectiles\sentries.dm"
#include "code\modules\projectiles\tracer.dm"
#include "code\modules\projectiles\ammo_datums\_ammo_datums.dm"
#include "code\modules\projectiles\ammo_datums\artillery.dm"
#include "code\modules\projectiles\ammo_datums\energy.dm"
Expand All @@ -1873,21 +1880,14 @@
#include "code\modules\projectiles\ammo_datums\shrapnel.dm"
#include "code\modules\projectiles\ammo_datums\xeno.dm"
#include "code\modules\projectiles\ammo_datums\yautja.dm"
#include "code\modules\projectiles\ammo_datums\bullet/_bullet.dm"
#include "code\modules\projectiles\ammo_datums\bullet/machinegun.dm"
#include "code\modules\projectiles\ammo_datums\bullet/pistol.dm"
#include "code\modules\projectiles\ammo_datums\bullet/revolver.dm"
#include "code\modules\projectiles\ammo_datums\bullet/rifle.dm"
#include "code\modules\projectiles\ammo_datums\bullet/shotgun.dm"
#include "code\modules\projectiles\ammo_datums\bullet/sniper.dm"
#include "code\modules\projectiles\ammo_datums\bullet/submachinegun.dm"
#include "code\modules\projectiles\ammunition.dm"
#include "code\modules\projectiles\gun_helpers.dm"
#include "code\modules\projectiles\gun_system.dm"
#include "code\modules\projectiles\mounted.dm"
#include "code\modules\projectiles\projectile.dm"
#include "code\modules\projectiles\sentries.dm"
#include "code\modules\projectiles\tracer.dm"
#include "code\modules\projectiles\ammo_datums\bullet\_bullet.dm"
#include "code\modules\projectiles\ammo_datums\bullet\machinegun.dm"
#include "code\modules\projectiles\ammo_datums\bullet\pistol.dm"
#include "code\modules\projectiles\ammo_datums\bullet\revolver.dm"
#include "code\modules\projectiles\ammo_datums\bullet\rifle.dm"
#include "code\modules\projectiles\ammo_datums\bullet\shotgun.dm"
#include "code\modules\projectiles\ammo_datums\bullet\sniper.dm"
#include "code\modules\projectiles\ammo_datums\bullet\submachinegun.dm"
#include "code\modules\projectiles\attachables\_attachable.dm"
#include "code\modules\projectiles\attachables\flamer.dm"
#include "code\modules\projectiles\attachables\foldable.dm"
Expand Down

0 comments on commit d4b7e3f

Please sign in to comment.