Fix Mulebot Crossed() Code, allows simplemobs to be crushed if laying

Fixes Mulebots (and really any vehicles) ruthlessly murdering macros/micros without care, will actually run over mobs properly now. 

Pathing fixes will be in a second PR.
This commit is contained in:
Rykka
2020-08-05 20:23:43 -04:00
parent eaa0717550
commit d07746d84e
8 changed files with 82 additions and 57 deletions
+11 -11
View File
@@ -166,28 +166,28 @@
else
verbs += /obj/vehicle/train/security/engine/verb/stop_engine
/obj/vehicle/train/security/RunOver(var/mob/living/carbon/human/H)
/obj/vehicle/train/security/RunOver(var/mob/living/M)
var/list/parts = list(BP_HEAD, BP_TORSO, BP_L_LEG, BP_R_LEG, BP_L_ARM, BP_R_ARM)
H.apply_effects(5, 5)
M.apply_effects(5, 5)
for(var/i = 0, i < rand(1,3), i++)
H.apply_damage(rand(1,5), BRUTE, pick(parts))
M.apply_damage(rand(1,5), BRUTE, pick(parts))
/obj/vehicle/train/security/trolley/RunOver(var/mob/living/carbon/human/H)
/obj/vehicle/train/security/trolley/RunOver(var/mob/living/M)
..()
attack_log += text("\[[time_stamp()]\] <font color='red'>ran over [H.name] ([H.ckey])</font>")
attack_log += text("\[[time_stamp()]\] <font color='red'>ran over [M.name] ([M.ckey])</font>")
/obj/vehicle/train/security/engine/RunOver(var/mob/living/carbon/human/H)
/obj/vehicle/train/security/engine/RunOver(var/mob/living/M)
..()
if(is_train_head() && istype(load, /mob/living/carbon/human))
var/mob/living/carbon/human/D = load
to_chat(D, "<span class='danger'>You ran over \the [H]!</span>"
visible_message("<span class='danger'>\The [src] ran over \the [H]!</span>")
add_attack_logs(D,H,"Ran over with [src.name]")
attack_log += text("\[[time_stamp()]\] <font color='red'>ran over [H.name] ([H.ckey]), driven by [D.name] ([D.ckey])</font>")
to_chat(D, "<span class='danger'>You ran over \the [M]!</span>"
visible_message("<span class='danger'>\The [src] ran over \the [M]!</span>")
add_attack_logs(D,M,"Ran over with [src.name]")
attack_log += text("\[[time_stamp()]\] <font color='red'>ran over [M.name] ([M.ckey]), driven by [D.name] ([D.ckey])</font>")
else
attack_log += text("\[[time_stamp()]\] <font color='red'>ran over [H.name] ([H.ckey])</font>")
attack_log += text("\[[time_stamp()]\] <font color='red'>ran over [M.name] ([M.ckey])</font>")
//-------------------------------------------
+11 -11
View File
@@ -152,28 +152,28 @@
else
verbs += /obj/vehicle/train/engine/verb/stop_engine
/obj/vehicle/train/RunOver(var/mob/living/carbon/human/H)
/obj/vehicle/train/RunOver(var/mob/living/M)
var/list/parts = list(BP_HEAD, BP_TORSO, BP_L_LEG, BP_R_LEG, BP_L_ARM, BP_R_ARM)
H.apply_effects(5, 5)
M.apply_effects(5, 5)
for(var/i = 0, i < rand(1,3), i++)
H.apply_damage(rand(1,5), BRUTE, pick(parts))
M.apply_damage(rand(1,5), BRUTE, pick(parts))
/obj/vehicle/train/trolley/RunOver(var/mob/living/carbon/human/H)
/obj/vehicle/train/trolley/RunOver(var/mob/living/M)
..()
attack_log += text("\[[time_stamp()]\] <font color='red'>ran over [H.name] ([H.ckey])</font>")
attack_log += text("\[[time_stamp()]\] <font color='red'>ran over [M.name] ([M.ckey])</font>")
/obj/vehicle/train/engine/RunOver(var/mob/living/carbon/human/H)
/obj/vehicle/train/engine/RunOver(var/mob/living/M)
..()
if(is_train_head() && istype(load, /mob/living/carbon/human))
var/mob/living/carbon/human/D = load
to_chat(D, "<font color='red'><B>You ran over [H]!</B></font>")
visible_message("<B><font color='red'>\The [src] ran over [H]!</B></font>")
add_attack_logs(D,H,"Ran over with [src.name]")
attack_log += text("\[[time_stamp()]\] <font color='red'>ran over [H.name] ([H.ckey]), driven by [D.name] ([D.ckey])</font>")
to_chat(D, "<font color='red'><B>You ran over [M]!</B></font>")
visible_message("<B><font color='red'>\The [src] ran over [M]!</B></font>")
add_attack_logs(D,M,"Ran over with [src.name]")
attack_log += text("\[[time_stamp()]\] <font color='red'>ran over [M.name] ([M.ckey]), driven by [D.name] ([D.ckey])</font>")
else
attack_log += text("\[[time_stamp()]\] <font color='red'>ran over [H.name] ([H.ckey])</font>")
attack_log += text("\[[time_stamp()]\] <font color='red'>ran over [M.name] ([M.ckey])</font>")
//-------------------------------------------
+4 -4
View File
@@ -142,15 +142,15 @@
add_attack_logs(D,M,"Ran over with [src.name]")
/obj/vehicle/train/engine/quadbike/RunOver(var/mob/living/carbon/human/H)
/obj/vehicle/train/engine/quadbike/RunOver(var/mob/living/M)
..()
var/list/throw_dirs = list(1, 2, 4, 8, 5, 6, 9, 10)
if(!emagged)
throw_dirs -= dir
if(tow)
throw_dirs -= get_dir(H, tow) //Don't throw it at the trailer either.
var/turf/T = get_step(H, pick(throw_dirs))
H.throw_at(T, 1, 1, src)
throw_dirs -= get_dir(M, tow) //Don't throw it at the trailer either.
var/turf/T = get_step(M, pick(throw_dirs))
M.throw_at(T, 1, 1, src)
/*
* Trailer bits and bobs.
+11 -11
View File
@@ -164,28 +164,28 @@
else
verbs += /obj/vehicle/train/rover/engine/verb/stop_engine
/obj/vehicle/train/rover/RunOver(var/mob/living/carbon/human/H)
/obj/vehicle/train/rover/RunOver(var/mob/living/M)
var/list/parts = list(BP_HEAD, BP_TORSO, BP_L_LEG, BP_R_LEG, BP_L_ARM, BP_R_ARM)
H.apply_effects(5, 5)
M.apply_effects(5, 5)
for(var/i = 0, i < rand(1,3), i++)
H.apply_damage(rand(1,5), BRUTE, pick(parts))
M.apply_damage(rand(1,5), BRUTE, pick(parts))
/obj/vehicle/train/rover/trolley/RunOver(var/mob/living/carbon/human/H)
/obj/vehicle/train/rover/trolley/RunOver(var/mob/living/M)
..()
attack_log += text("\[[time_stamp()]\] <font color='red'>ran over [H.name] ([H.ckey])</font>")
attack_log += text("\[[time_stamp()]\] <font color='red'>ran over [M.name] ([M.ckey])</font>")
/obj/vehicle/train/rover/engine/RunOver(var/mob/living/carbon/human/H)
/obj/vehicle/train/rover/engine/RunOver(var/mob/living/M)
..()
if(is_train_head() && istype(load, /mob/living/carbon/human))
var/mob/living/carbon/human/D = load
to_chat(D, "<span class='danger'>You ran over \the [H]!</span>")
visible_message("<span class='danger'>\The [src] ran over \the [H]!</span>")
add_attack_logs(D,H,"Ran over with [src.name]")
attack_log += text("\[[time_stamp()]\] <font color='red'>ran over [H.name] ([H.ckey]), driven by [D.name] ([D.ckey])</font>")
to_chat(D, "<span class='danger'>You ran over \the [M]!</span>")
visible_message("<span class='danger'>\The [src] ran over \the [M]!</span>")
add_attack_logs(D,M,"Ran over with [src.name]")
attack_log += text("\[[time_stamp()]\] <font color='red'>ran over [M.name] ([M.ckey]), driven by [D.name] ([D.ckey])</font>")
else
attack_log += text("\[[time_stamp()]\] <font color='red'>ran over [H.name] ([H.ckey])</font>")
attack_log += text("\[[time_stamp()]\] <font color='red'>ran over [M.name] ([M.ckey])</font>")
//-------------------------------------------
+1 -1
View File
@@ -292,7 +292,7 @@
cell = null
powercheck()
/obj/vehicle/proc/RunOver(var/mob/living/carbon/human/H)
/obj/vehicle/proc/RunOver(var/mob/living/M)
return //write specifics for different vehicles
//-------------------------------------------