Adds running over people with mechs (#7791)

Walking over someone lying on the floor with mechs will now hurt them. Damage is based on the legs.
Also, removed some baylore references to the mech parts, and made so that mechs can push mobs around.
This commit is contained in:
Alberyk
2019-12-29 18:02:06 -03:00
committed by Matt Atlas
parent 408dc1861a
commit 04aeeab4fc
10 changed files with 53 additions and 7 deletions
@@ -8,6 +8,7 @@
var/obj/item/robot_parts/robot_component/actuator/motivator
var/mech_turn_sound = 'sound/mecha/mechturn.ogg'
var/mech_step_sound = 'sound/mecha/mechstep.ogg'
var/trample_damage = 5
/obj/item/mech_component/propulsion/Destroy()
QDEL_NULL(motivator)
+28 -1
View File
@@ -462,4 +462,31 @@
if(!new_name || new_name == name || (user != src && !(user in pilots)))
return
name = new_name
to_chat(user, "<span class='notice'>You have redesignated this exosuit as \the [name].</span>")
to_chat(user, "<span class='notice'>You have redesignated this exosuit as \the [name].</span>")
/mob/living/heavy_vehicle/proc/trample(var/mob/living/H)
if(!LAZYLEN(pilots))
return
if(!isliving(H))
return
if(legs)
if(ishuman(H))
var/mob/living/carbon/human/D = H
if(D.lying)
D.attack_log += "\[[time_stamp()]\]<font color='orange'> Was trampled by [src]</font>"
attack_log += text("\[[time_stamp()]\] <font color='red'>trampled [D.name] ([D.ckey]) with \the [src].</font>")
msg_admin_attack("[src] trampled [key_name(D)] at (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[D.x];Y=[D.y];Z=[D.z]'>JMP</a>)" )
src.visible_message("<span class='danger'>\The [src] runs over \the [D]!</span>")
D.apply_damage(legs.trample_damage, BRUTE)
return TRUE
else
var/mob/living/L = H
src.visible_message("<span class='danger'>\The [src] runs over \the [L]!</span>")
if(isanimal(L))
if(issmall(L) && (L.stat == DEAD))
L.gib()
return TRUE
L.apply_damage(legs.trample_damage, BRUTE)
return TRUE
+1
View File
@@ -7,6 +7,7 @@
status_flags = PASSEMOTES
a_intent = I_HURT
mob_size = MOB_LARGE
mob_push_flags = ALLMOBS
var/decal
var/emp_damage = 0
@@ -39,6 +39,7 @@
move_delay = 3
turn_delay = 3
power_use = 5000
trample_damage = 35
/obj/item/mech_component/sensors/combat
name = "combat sensors"
+2 -1
View File
@@ -36,11 +36,12 @@
/obj/item/mech_component/propulsion/heavy
name = "heavy legs"
exosuit_desc_string = "heavy hydraulic legs"
desc = "Oversized actuators struggle to move these armoured legs. "
desc = "Oversized actuators struggle to move these armoured legs."
icon_state = "heavy_legs"
move_delay = 5
max_damage = 90
power_use = 5000
trample_damage = 45
/obj/item/mech_component/sensors/heavy
name = "heavy sensors"
+1 -1
View File
@@ -33,7 +33,7 @@
action_delay = 15
max_damage = 40
power_use = 3000
desc = "As flexible as they are fragile, these Vey-Med manipulators can follow a pilot's movements in close to real time."
desc = "As flexible as they are fragile, these Bishop Cybernetics manipulators can follow a pilot's movements in close to real time."
punch_sound = 'sound/mecha/mech_punch_fast.ogg'
/obj/item/mech_component/propulsion/light
+3 -1
View File
@@ -1,12 +1,13 @@
/obj/item/mech_component/propulsion/spider
name = "quadlegs"
exosuit_desc_string = "hydraulic quadlegs"
desc = "Xion Industrial's arachnid series boasts more leg per leg than the leading competitor."
desc = "Xion Manufacturing Group's arachnid series boasts more leg per leg than the leading competitor."
icon_state = "spiderlegs"
max_damage = 80
move_delay = 4
turn_delay = 1
power_use = 2500
trample_damage = 10
/obj/item/mech_component/propulsion/tracks
name = "tracks"
@@ -19,6 +20,7 @@
power_use = 7500
color = COLOR_WHITE
mech_step_sound = 'sound/mecha/tanktread.ogg'
trample_damage = 25
/obj/item/mech_component/chassis/pod
name = "spherical exosuit chassis"
@@ -31,7 +31,7 @@
max_damage = 70
power_use = 2000
melee_damage = 40
desc = "The Xion Industrial Digital Interaction Manifolds allow you poke untold dangers from the relative safety of your cockpit."
desc = "The Xion Manufacturing Group Digital Interaction Manifolds allow you poke untold dangers from the relative safety of your cockpit."
punch_sound = 'sound/mecha/mech_punch_slow.ogg'
/obj/item/mech_component/propulsion/ripley
@@ -42,6 +42,7 @@
move_delay = 4
turn_delay = 4
power_use = 2000
trample_damage = 10
/obj/item/mech_component/sensors/ripley
name = "exosuit sensors"
+7 -2
View File
@@ -864,12 +864,17 @@ default behaviour is:
/mob/living/proc/get_digestion_product()
return null
/proc/is_valid_for_devour(var/mob/living/test, var/eat_types)
//eat_types must contain all types that the mob has. For example we need both humanoid and synthetic to eat an IPC.
var/test_types = test.find_type()
. = (eat_types & test_types) == test_types
/mob/living/Crossed(var/atom/movable/AM)
if(istype(AM, /mob/living/heavy_vehicle))
var/mob/living/heavy_vehicle/MB = AM
MB.trample(src)
..()
#define PPM 9 //Protein per meat, used for calculating the quantity of protein in an animal
/mob/living/proc/calculate_composition()
if (!composition_reagent)//if no reagent has been set, then we'll set one
+7
View File
@@ -0,0 +1,7 @@
author: Alberyk
delete-after: True
changes:
- rscadd: "Mechs will now trample, dealing brute damaged based on their leg types, mobs that they run over."
- rscadd: "Mechs can now push most mobs."