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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Combat Robots Race #8301

Merged
merged 19 commits into from
Sep 26, 2021
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions code/__DEFINES/is_helpers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@
#define isvox(H) (is_species(H, /datum/species/vox))
#define isvoxarmalis(H) (is_species(H, /datum/species/vox/armalis))
#define isIPC(H) (is_species(H, /datum/species/machine))
#define isrobot(H) (is_species(H, /datum/species/robot))
#define issynth(H) (is_species(H, /datum/species/synthetic) || is_species(H, /datum/species/early_synthetic))
#define isspeciessynthetic(H) (H.species.species_flags & IS_SYNTHETIC)
#define ismoth(H) (is_species(H, /datum/species/moth))
Expand Down
3 changes: 3 additions & 0 deletions code/__DEFINES/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -322,6 +322,9 @@ GLOBAL_LIST_INIT(xenoupgradetiers, list(XENO_UPGRADE_BASETYPE, XENO_UPGRADE_INVA
#define USES_ALIEN_WEAPONS (1<<17)
#define NO_DAMAGE_OVERLAY (1<<18)
#define CAN_VENTCRAWL (1<<19)
#define ROBOTIC_LIMBS (1<<20)
#define GREYSCALE_BLOOD (1<<21)

//=================================================

//Some on_mob_life() procs check for alien races.
Expand Down
4 changes: 3 additions & 1 deletion code/_globalvars/bitfields.dm
Original file line number Diff line number Diff line change
Expand Up @@ -359,7 +359,9 @@ GLOBAL_LIST_INIT(bitfields, list(
"NO_STAMINA" = NO_STAMINA,
"USES_ALIEN_WEAPONS" = USES_ALIEN_WEAPONS,
"NO_DAMAGE_OVERLAY" = NO_DAMAGE_OVERLAY,
"CAN_VENTCRAWL" = CAN_VENTCRAWL
"CAN_VENTCRAWL" = CAN_VENTCRAWL,
"ROBOTIC_LIMBS" = ROBOTIC_LIMBS,
"GREYSCALE_BLOOD" = GREYSCALE_BLOOD,
),
"damagetype" = list(
"BRUTELOSS" = BRUTELOSS,
Expand Down
5 changes: 3 additions & 2 deletions code/datums/jobs/job/job.dm
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,9 @@ GLOBAL_PROTECT(exp_specialmap)
/datum/job/proc/after_spawn(mob/living/L, mob/M, latejoin = FALSE) //do actions on L but send messages to M as the key may not have been transferred_yet
if(!ishuman(L))
return

var/mob/living/carbon/human/H = L
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because ishuman check?

if(isnewplayer(M))
H.set_species(M.get_species())
if(job_flags & JOB_FLAG_PROVIDES_BANK_ACCOUNT)
var/datum/money_account/bank_account = create_account(L.real_name, rand(50, 500) * 10)
var/list/remembered_info = list()
Expand All @@ -84,7 +86,6 @@ GLOBAL_PROTECT(exp_specialmap)
M.mind.store_memory(remembered_info.Join("<br>"))
M.mind.initial_account = bank_account

var/mob/living/carbon/human/H = L
var/obj/item/card/id/id = H.wear_id
if(istype(id))
id.associated_account_number = bank_account.account_number
Expand Down
11 changes: 10 additions & 1 deletion code/datums/namepool.dm
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,12 @@ GLOBAL_LIST_EMPTY_TYPED(namepool, /datum/namepool)
/datum/namepool/sectoid/get_random_name()
return "Sectoid [rand(1,9)]X[ascii2text(rand(65, 87))]" //65 to 87 is (uppercase) A to W

/datum/namepool/vatborn/get_random_name(gender = MALE)
/datum/namepool/vatborn/
firstname_male_pool = "names/first_male"
firstname_female_pool = "names/first_female"

/datum/namepool/vatborn/get_random_name(gender = MALE)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

randome empty line

if(gender == MALE)
. = pick(SSstrings.get_list_from_file(firstname_male_pool))
else
Expand All @@ -56,3 +58,10 @@ GLOBAL_LIST_EMPTY_TYPED(namepool, /datum/namepool)
firstname_male_pool = "names/skeleton"
firstname_female_pool = "names/skeleton"
lastname_pool = "names/skeleton"

/datum/namepool/robotic
firstname_female_pool = "names/robotic"

/datum/namepool/robotic/get_random_name(gender = MALE)
. = pick(SSstrings.get_list_from_file(firstname_female_pool))
. += "-[rand(1,999)]" //pathfinder-738 or such
3 changes: 3 additions & 0 deletions code/game/objects/items.dm
Original file line number Diff line number Diff line change
Expand Up @@ -414,6 +414,9 @@
mob_equip = H.species.hud.equip_slots

if(H.species && !(slot in mob_equip))
return FALSE

if(slot in H.species?.no_equip)
if(!is_type_in_list(H.species, species_exception))
return FALSE

Expand Down
4 changes: 2 additions & 2 deletions code/game/objects/items/reagent_containers/food/condiment.dm
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
if(iscarbon(M))
var/mob/living/carbon/H = M
if(M == user)
if(ishuman(H) && (H.species.species_flags & IS_SYNTHETIC))
if(ishuman(H) && (H.species.species_flags & ROBOTIC_LIMBS))
to_chat(H, span_warning("You have a monitor for a head, where do you think you're going to put that?"))
return
to_chat(H, span_notice("You swallow some of contents of the [src]."))
Expand All @@ -40,7 +40,7 @@
playsound(H.loc,'sound/items/drink.ogg', 15, 1)
return 1
else
if(ishuman(H) && (H.species.species_flags & IS_SYNTHETIC))
if(ishuman(H) && (H.species.species_flags & ROBOTIC_LIMBS))
to_chat(user, span_warning("They have a monitor for a head, where do you think you're going to put that?"))
return
M.visible_message(span_warning("[user] attempts to feed [M] [src]."))
Expand Down
4 changes: 2 additions & 2 deletions code/game/objects/items/reagent_containers/food/drinks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
if(iscarbon(M))
if(M == user)
var/mob/living/carbon/H = M
if(ishuman(H) && (H.species.species_flags & IS_SYNTHETIC))
if(ishuman(H) && (H.species.species_flags & ROBOTIC_LIMBS))
to_chat(M, span_warning("You have a monitor for a head, where do you think you're going to put that?"))
return
to_chat(M,span_notice("You swallow a gulp from \the [src]."))
Expand All @@ -36,7 +36,7 @@
return TRUE
else
var/mob/living/carbon/H = M
if(ishuman(H) && (H.species.species_flags & IS_SYNTHETIC))
if(ishuman(H) && (H.species.species_flags & ROBOTIC_LIMBS))
to_chat(user, span_warning("They have a monitor for a head, where do you think you're going to put that?"))
return
M.visible_message(span_warning("[user] attempts to feed [M] \the [src]."))
Expand Down
4 changes: 2 additions & 2 deletions code/game/objects/items/reagent_containers/food/snacks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@
var/fullness = C.nutrition + (C.reagents.get_reagent_amount(/datum/reagent/consumable/nutriment) * 25)
if(M == user) //If you're eating it yourself
var/mob/living/carbon/H = M
if(ishuman(H) && (H.species.species_flags & IS_SYNTHETIC))
if(ishuman(H) && (H.species.species_flags & ROBOTIC_LIMBS))
to_chat(H, span_warning("You have a monitor for a head, where do you think you're going to put that?"))
return
if (fullness <= 50)
Expand All @@ -82,7 +82,7 @@
return FALSE
else
var/mob/living/carbon/H = M
if(ishuman(H) && (H.species.species_flags & IS_SYNTHETIC))
if(ishuman(H) && (H.species.species_flags & ROBOTIC_LIMBS))
to_chat(user, span_warning("They have a monitor for a head, where do you think you're going to put that?"))
return
if (fullness <= (550 * (1 + C.overeatduration / 1000)))
Expand Down
4 changes: 2 additions & 2 deletions code/game/objects/items/reagent_containers/pill.dm
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@

if(ishuman(M))
var/mob/living/carbon/human/H = M
if(H.species.species_flags & IS_SYNTHETIC)
if(H.species.species_flags & ROBOTIC_LIMBS)
to_chat(H, span_warning("You can't eat pills."))
return

Expand All @@ -43,7 +43,7 @@
else if(ishuman(M) )

var/mob/living/carbon/human/H = M
if(H.species.species_flags & IS_SYNTHETIC)
if(H.species.species_flags & ROBOTIC_LIMBS)
to_chat(user, span_warning("They have a monitor for a head, where do you think you're going to put that?"))
return

Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/items/shards.dm
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@
if(ishuman(M))
var/mob/living/carbon/human/H = M

if(H.species.species_flags & IS_SYNTHETIC || H.species.insulated)
if(H.species.species_flags & ROBOTIC_LIMBS || H.species.insulated)
return

if(!H.shoes && !(H.wear_suit?.flags_armor_protection & FEET))
Expand Down
1 change: 1 addition & 0 deletions code/game/objects/items/storage/backpack.dm
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
name = "backpack"
desc = "You wear this on your back and put items into it."
icon_state = "backpack"
sprite_sheets = list("Combat Robot" = 'icons/mob/species/robot/backpack.dmi')
w_class = WEIGHT_CLASS_BULKY
flags_equip_slot = ITEM_SLOT_BACK //ERROOOOO
max_w_class = 3
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/items/tools/flame_tools.dm
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
if(iscarbon(loc) && (src == loc:wear_mask)) // if it's in the human/monkey mouth, transfer reagents to the mob //TODO WHAT BAYCODER USED A : UNIRONICALLY
if(ishuman(loc))
var/mob/living/carbon/human/H = loc
if(H.species.species_flags & IS_SYNTHETIC)
if(H.species.species_flags & ROBOTIC_LIMBS)
return
var/mob/living/carbon/C = loc

Expand Down
7 changes: 7 additions & 0 deletions code/game/objects/machinery/vending/marine_vending.dm
Original file line number Diff line number Diff line change
Expand Up @@ -804,6 +804,9 @@
/obj/item/clothing/suit/storage/marine/harness = -1,
/obj/item/clothing/suit/armor/vest/pilot = -1,
/obj/item/facepaint/green = -1,
/obj/item/clothing/suit/storage/marine/robot/light = -1,
/obj/item/clothing/suit/storage/marine/robot = -1,
/obj/item/clothing/suit/storage/marine/robot/heavy = -1,
),
"Helmets" = list(
/obj/item/clothing/head/modular/marine/m10x = -1,
Expand All @@ -816,6 +819,9 @@
/obj/item/clothing/head/modular/marine/eod = -1,
/obj/item/clothing/head/modular/marine/scout = -1,
/obj/item/clothing/head/modular/marine/infantry = -1,
/obj/item/clothing/head/helmet/marine/robot/light = -1,
/obj/item/clothing/head/helmet/marine/robot = -1,
/obj/item/clothing/head/helmet/marine/robot/heavy = -1,
),
"Jaeger chestpieces" = list(
/obj/item/armor_module/armor/chest/marine/skirmisher = -1,
Expand Down Expand Up @@ -891,6 +897,7 @@
/obj/item/clothing/head/white_dress = -1,
/obj/item/clothing/shoes/white = -1,
/obj/item/clothing/gloves/white = -1,
/obj/item/clothing/under/marine/robotic = -1,
),
"Webbings" = list(
/obj/item/clothing/tie/storage/black_vest = -1,
Expand Down
9 changes: 9 additions & 0 deletions code/game/sound.dm
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,7 @@ A good representation is: 'byond applies a volume reduction to the sound every X
S = pick('sound/voice/alien_queen_command.ogg','sound/voice/alien_queen_command2.ogg','sound/voice/alien_queen_command3.ogg')
if("alien_ventpass")
S = pick('sound/effects/alien_ventpass1.ogg', 'sound/effects/alien_ventpass2.ogg')

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

random line

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

on purpose, this switch is hard to read at times

// Human
if("male_scream")
S = pick('sound/voice/human_male_scream_1.ogg','sound/voice/human_male_scream_2.ogg','sound/voice/human_male_scream_3.ogg','sound/voice/human_male_scream_4.ogg','sound/voice/human_male_scream_5.ogg','sound/voice/human_male_scream_6.ogg')
Expand Down Expand Up @@ -323,4 +324,12 @@ A good representation is: 'byond applies a volume reduction to the sound every X
S = pick("sound/voice/human_male_preburst1.ogg", 'sound/voice/human_male_preburst2.ogg', 'sound/voice/human_male_preburst3.ogg')
if("female_preburst")
S = pick("sound/voice/human_female_preburst1.ogg", 'sound/voice/human_female_preburst2.ogg', 'sound/voice/human_female_preburst3.ogg')

//robot race
if("robot_scream")
S = pick('sound/voice/robot/robot_scream1.ogg', 'sound/voice/robot/robot_scream2.ogg', 'sound/voice/robot/robot_scream2.ogg')
if("robot_pain")
S = pick('sound/voice/robot/robot_pain1.ogg', 'sound/voice/robot/robot_pain2.ogg', 'sound/voice/robot/robot_pain3.ogg')
if("robot_warcry")
S = pick('sound/voice/robot/robot_warcry1.ogg', 'sound/voice/robot/robot_warcry2.ogg', 'sound/voice/robot/robot_warcry3.ogg')
return S
14 changes: 14 additions & 0 deletions code/modules/clothing/glasses/hud.dm
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,8 @@
toggleable = TRUE
hud_type = DATA_HUD_MEDICAL_ADVANCED
actions_types = list(/datum/action/item_action/toggle)
species_exception = list(/datum/species/robot)
sprite_sheets = list("Combat Robot" = 'icons/mob/species/robot/glasses.dmi', "Vox" = 'icons/mob/species/vox/eyes.dmi')
prescription = TRUE

/obj/item/clothing/glasses/hud/medgoggles
Expand All @@ -78,6 +80,8 @@
toggleable = TRUE
hud_type = DATA_HUD_MEDICAL_ADVANCED
actions_types = list(/datum/action/item_action/toggle)
species_exception = list(/datum/species/robot)
sprite_sheets = list("Combat Robot" = 'icons/mob/species/robot/glasses.dmi', "Vox" = 'icons/mob/species/vox/eyes.dmi')
soft_armor = list("melee" = 40, "bullet" = 40, "laser" = 0, "energy" = 15, "bomb" = 35, "bio" = 10, "rad" = 10, "fire" = 30, "acid" = 30)
flags_equip_slot = ITEM_SLOT_EYES
goggles = TRUE
Expand All @@ -92,6 +96,8 @@
desc = "A heads-up display that scans the humans in view and provides accurate data about their health status. For the disabled and/or edgy Corpsman."
icon_state = "medpatchhud"
deactive_state = "degoggles_medpatch"
species_exception = list(/datum/species/robot)
sprite_sheets = list("Combat Robot" = 'icons/mob/species/robot/glasses.dmi', "Vox" = 'icons/mob/species/vox/eyes.dmi')
toggleable = TRUE
hud_type = DATA_HUD_MEDICAL_ADVANCED
actions_types = list(/datum/action/item_action/toggle)
Expand All @@ -102,6 +108,8 @@
icon_state = "medglasses"
item_state = "medglasses"
deactive_state = "degoggles_medglasses"
species_exception = list(/datum/species/robot)
sprite_sheets = list("Combat Robot" = 'icons/mob/species/robot/glasses.dmi', "Vox" = 'icons/mob/species/vox/eyes.dmi')
prescription = TRUE
toggleable = TRUE
hud_type = DATA_HUD_MEDICAL_ADVANCED
Expand All @@ -110,6 +118,8 @@
/obj/item/clothing/glasses/hud/security
name = "\improper PatrolMate HUD"
desc = "A heads-up display that scans the humans in view and provides accurate data about their ID status and security records."
species_exception = list(/datum/species/robot)
sprite_sheets = list("Combat Robot" = 'icons/mob/species/robot/glasses.dmi', "Vox" = 'icons/mob/species/vox/eyes.dmi')
icon_state = "securityhud"
deactive_state = "degoggles_sec"
toggleable = 1
Expand All @@ -132,6 +142,8 @@
desc = "A heads-up display that scans any nearby xenomorph's data."
icon_state = "securityhud"
deactive_state = "degoggles_sec"
species_exception = list(/datum/species/robot)
sprite_sheets = list("Combat Robot" = 'icons/mob/species/robot/glasses.dmi', "Vox" = 'icons/mob/species/vox/eyes.dmi')
flags_armor_protection = NONE
toggleable = TRUE
hud_type = DATA_HUD_XENO_STATUS
Expand All @@ -142,6 +154,8 @@
desc = "A heads-up display that scans human pain and perceived health."
icon_state = "securityhud"
deactive_state = "degoggles_sec"
species_exception = list(/datum/species/robot)
sprite_sheets = list("Combat Robot" = 'icons/mob/species/robot/glasses.dmi', "Vox" = 'icons/mob/species/vox/eyes.dmi')
toggleable = TRUE
hud_type = DATA_HUD_MEDICAL_PAIN
actions_types = list(/datum/action/item_action/toggle)
2 changes: 2 additions & 0 deletions code/modules/clothing/glasses/meson.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
icon_state = "meson"
item_state = "meson"
deactive_state = "degoggles_meson"
species_exception = list(/datum/species/robot)
sprite_sheets = list("Combat Robot" = 'icons/mob/species/robot/glasses.dmi', "Vox" = 'icons/mob/species/vox/eyes.dmi')
actions_types = list(/datum/action/item_action/toggle)
toggleable = 1
darkness_view = 2
Expand Down
2 changes: 2 additions & 0 deletions code/modules/clothing/glasses/night.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
/obj/item/clothing/glasses/night
name = "night vision goggles"
desc = "You can totally see in the dark now!"
species_exception = list(/datum/species/robot)
sprite_sheets = list("Combat Robot" = 'icons/mob/species/robot/glasses.dmi', "Vox" = 'icons/mob/species/vox/eyes.dmi')
icon_state = "night"
item_state = "glasses"
darkness_view = 7
Expand Down
28 changes: 28 additions & 0 deletions code/modules/clothing/head/helmet.dm
Original file line number Diff line number Diff line change
Expand Up @@ -665,3 +665,31 @@ obj/item/clothing/head/helmet/marine/pilot/green
flags_item = NODROP|DELONDROP
soft_armor = list("melee" = 65, "bullet" = 60, "laser" = 30, "energy" = 20, "bomb" = 25, "bio" = 40, "rad" = 0, "fire" = 20, "acid" = 20)
anti_hug = 5


/obj/item/clothing/head/helmet/marine/robot
name = "XN-1 upper armor plating"
desc = "Medium armor plating designed for self mounting on the upper half of TerraGov combat robotics. It has self-sealing bolts for mounting on robotic owners inside."
icon_state = "robot_helmet_medium"
item_state = "robot_helmet_medium"
species_exception = list(/datum/species/robot)
flags_item_map_variant = (ITEM_JUNGLE_VARIANT|ITEM_ICE_VARIANT|ITEM_PRISON_VARIANT)
soft_armor = list("melee" = 15, "bullet" = 15, "laser" = 15, "energy" = 15, "bomb" = 15, "bio" = 15, "rad" = 15, "fire" = 15, "acid" = 15)

/obj/item/clothing/head/helmet/marine/robot/mob_can_equip(mob/M, slot, warning, override_nodrop)
. = ..()
if(!isrobot(M))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is it worth making this another var on the item, like species_requirement = list(/datum/species/robot) ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe in future but for now its only 6 items and i dont want to bloat this pr

return FALSE

/obj/item/clothing/head/helmet/marine/robot/light
name = "XN-1-L upper armor plating"
desc = "Light armor plating designed for self mounting on the upper half of TerraGov combat robotics. It has self-sealing bolts for mounting on robotic owners inside."
icon_state = "robot_helmet_light"
item_state = "robot_helmet_light"

/obj/item/clothing/head/helmet/marine/robot/heavy
name = "XN-1-H upper armor plating"
desc = "Heavy armor plating designed for self mounting on the upper half of TerraGov combat robotics. It has self-sealing bolts for mounting on robotic owners inside."
icon_state = "robot_helmet_heavy"
item_state = "robot_helmet_heavy"

28 changes: 28 additions & 0 deletions code/modules/clothing/suits/marine_armor.dm
Original file line number Diff line number Diff line change
Expand Up @@ -802,3 +802,31 @@
/// Modified version of the armor for HvH combat. Stats are based on medium armor with mark 2 tyr.
/obj/item/clothing/suit/storage/marine/som/leader/hvh
soft_armor = list("melee" = 55, "bullet" = 75, "laser" = 75, "energy" = 60, "bomb" = 60, "bio" = 60, "rad" = 60, "fire" = 60, "acid" = 65)

/obj/item/clothing/suit/storage/marine/robot
name = "XR-1 armor plating"
desc = "Medium armor plating designed for self mounting on TerraGov combat robotics. It has self-sealing bolts for mounting on robotic owners inside."
icon_state = "robot_armor_medium"
item_state = "robot_armor_medium"
species_exception = list(/datum/species/robot)
flags_item_map_variant = (ITEM_JUNGLE_VARIANT|ITEM_ICE_VARIANT|ITEM_PRISON_VARIANT)
soft_armor = list("melee" = 40, "bullet" = 60, "laser" = 60, "energy" = 45, "bomb" = 45, "bio" = 45, "rad" = 45, "fire" = 45,"acid" = 50)

/obj/item/clothing/suit/storage/marine/robot/mob_can_equip(mob/M, slot, warning, override_nodrop)
. = ..()
if(!isrobot(M))
return FALSE

/obj/item/clothing/suit/storage/marine/robot/light
name = "XR-1-L armor plating"
desc = "Light armor plating designed for self mounting on TerraGov combat robotics. It has self-sealing bolts for mounting on robotic owners inside."
icon_state = "robot_armor_light"
item_state = "robot_armor_light"
soft_armor = list("melee" = 35, "bullet" = 55, "laser" = 50, "energy" = 45, "bomb" = 45, "bio" = 45, "rad" = 45, "fire" = 45,"acid" = 45)

/obj/item/clothing/suit/storage/marine/robot/heavy
name = "XR-1-H armor plating"
desc = "Heavy armor plating designed for self mounting on TerraGov combat robotics. It has self-sealing bolts for mounting on robotic owners inside."
icon_state = "robot_armor_heavy"
item_state = "robot_armor_heavy"
soft_armor = list("melee" = 45, "bullet" = 65, "laser" = 60, "energy" = 45, "bomb" = 45, "bio" = 45, "rad" = 45, "fire" = 45,"acid" = 55)
13 changes: 13 additions & 0 deletions code/modules/clothing/under/marine_uniform.dm
Original file line number Diff line number Diff line change
Expand Up @@ -378,3 +378,16 @@
icon = 'icons/effects/effects.dmi'
icon_state = "shield-blue"
flags_item = NODROP|DELONDROP

/obj/item/clothing/under/marine/robotic
name = "robotic armor suit mount"
desc = "Additional structural armor plate used for mounting equipment on a combat robot."
item_state = "chest_rig"
icon_state = "chest_rig"
rollable_sleeves = FALSE
species_exception = list(/datum/species/robot)

/obj/item/clothing/under/marine/robotic/mob_can_equip(mob/M, slot, warning, override_nodrop)
. = ..()
if(!isrobot(M))
return FALSE
1 change: 1 addition & 0 deletions code/modules/mob/living/carbon/human/human.dm
Original file line number Diff line number Diff line change
Expand Up @@ -952,6 +952,7 @@

INVOKE_ASYNC(src, .proc/regenerate_icons)
INVOKE_ASYNC(src, .proc/update_body)
INVOKE_ASYNC(src, .proc/update_hair)
INVOKE_ASYNC(src, .proc/restore_blood)

if(!(species.species_flags & NO_STAMINA))
Expand Down