mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-22 08:01:06 +00:00
Misc Mech Fixes (#9344)
Spiderbots now appear on the radio with the name of the one controlling them.
Mechs can now operate windoors.
Remote mechs can now use mounted health analyzers.
Mech rechargers will now charge the mech on top of them if there is a power change and the power is back.
Fixes #9050
This commit is contained in:
@@ -115,6 +115,7 @@
|
|||||||
/mob/living/simple_animal/spiderbot/get_vr_name(mob/user)
|
/mob/living/simple_animal/spiderbot/get_vr_name(mob/user)
|
||||||
real_name = "Remote-Bot ([user.real_name])"
|
real_name = "Remote-Bot ([user.real_name])"
|
||||||
name = real_name
|
name = real_name
|
||||||
|
voice_name = user.real_name // name that'll display on radios
|
||||||
|
|
||||||
/mob/proc/ckey_transfer(var/mob/target, var/null_vr_mob = TRUE)
|
/mob/proc/ckey_transfer(var/mob/target, var/null_vr_mob = TRUE)
|
||||||
target.ckey = src.ckey
|
target.ckey = src.ckey
|
||||||
|
|||||||
@@ -58,6 +58,11 @@
|
|||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
/obj/machinery/door/window/CollidedWith(atom/movable/AM as mob|obj)
|
/obj/machinery/door/window/CollidedWith(atom/movable/AM as mob|obj)
|
||||||
|
if(istype(AM, /mob/living/heavy_vehicle))
|
||||||
|
var/mob/living/heavy_vehicle/HV = AM
|
||||||
|
for(var/user in HV.pilots)
|
||||||
|
AM = user
|
||||||
|
break
|
||||||
if (istype(AM, /mob/living/bot))
|
if (istype(AM, /mob/living/bot))
|
||||||
var/mob/living/bot/bot = AM
|
var/mob/living/bot/bot = AM
|
||||||
if(istype(bot))
|
if(istype(bot))
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
/obj/machinery/mech_recharger
|
/obj/machinery/mech_recharger
|
||||||
name = "exosuit dock"
|
name = "exosuit dock"
|
||||||
desc = "A exosuit recharger, built into the floor."
|
desc = "A exosuit recharger, built into the floor."
|
||||||
@@ -83,6 +82,13 @@
|
|||||||
if(cell && remaining_energy > 0)
|
if(cell && remaining_energy > 0)
|
||||||
cell.give(remaining_energy * CELLRATE)
|
cell.give(remaining_energy * CELLRATE)
|
||||||
|
|
||||||
|
/obj/machinery/mech_recharger/power_change()
|
||||||
|
..()
|
||||||
|
if(!(stat & NOPOWER) && !(stat & BROKEN) && !charging)
|
||||||
|
var/mob/living/heavy_vehicle/HV = locate() in get_turf(src)
|
||||||
|
if(HV)
|
||||||
|
start_charging(HV)
|
||||||
|
|
||||||
// An ugly proc, but apparently mechs don't have maxhealth var of any kind.
|
// An ugly proc, but apparently mechs don't have maxhealth var of any kind.
|
||||||
/obj/machinery/mech_recharger/proc/fully_repaired()
|
/obj/machinery/mech_recharger/proc/fully_repaired()
|
||||||
return charging && (charging.health == charging.maxHealth)
|
return charging && (charging.health == charging.maxHealth)
|
||||||
|
|||||||
@@ -271,5 +271,4 @@
|
|||||||
|
|
||||||
/obj/item/device/healthanalyzer/mech/attack(mob/living/M, var/mob/living/heavy_vehicle/user)
|
/obj/item/device/healthanalyzer/mech/attack(mob/living/M, var/mob/living/heavy_vehicle/user)
|
||||||
for(var/mob/pilot in user.pilots)
|
for(var/mob/pilot in user.pilots)
|
||||||
health_scan_mob(M, pilot, FALSE)
|
health_scan_mob(M, pilot, TRUE, TRUE)
|
||||||
return
|
|
||||||
@@ -53,6 +53,7 @@
|
|||||||
verbs |= /mob/living/proc/ventcrawl
|
verbs |= /mob/living/proc/ventcrawl
|
||||||
verbs |= /mob/living/proc/hide
|
verbs |= /mob/living/proc/hide
|
||||||
verbs |= /mob/living/simple_animal/spiderbot/proc/control_integrated_radio
|
verbs |= /mob/living/simple_animal/spiderbot/proc/control_integrated_radio
|
||||||
|
voice_name = name
|
||||||
|
|
||||||
/mob/living/simple_animal/spiderbot/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
/mob/living/simple_animal/spiderbot/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||||
|
|
||||||
@@ -148,11 +149,11 @@
|
|||||||
spawn(300) src.explode()
|
spawn(300) src.explode()
|
||||||
|
|
||||||
/mob/living/simple_animal/spiderbot/proc/transfer_personality(var/obj/item/device/mmi/M as obj)
|
/mob/living/simple_animal/spiderbot/proc/transfer_personality(var/obj/item/device/mmi/M as obj)
|
||||||
|
|
||||||
src.mind = M.brainmob.mind
|
src.mind = M.brainmob.mind
|
||||||
src.mind.key = M.brainmob.key
|
src.mind.key = M.brainmob.key
|
||||||
src.ckey = M.brainmob.ckey
|
src.ckey = M.brainmob.ckey
|
||||||
src.name = "spider-bot ([M.brainmob.name])"
|
src.name = "spider-bot ([M.brainmob.name])"
|
||||||
|
src.voice_name = src.name
|
||||||
|
|
||||||
/mob/living/simple_animal/spiderbot/proc/explode() //When emagged.
|
/mob/living/simple_animal/spiderbot/proc/explode() //When emagged.
|
||||||
src.visible_message("<span class='danger'>\The [src] makes an odd warbling noise, fizzles, and explodes!</span>")
|
src.visible_message("<span class='danger'>\The [src] makes an odd warbling noise, fizzles, and explodes!</span>")
|
||||||
@@ -181,6 +182,7 @@
|
|||||||
mmi = null
|
mmi = null
|
||||||
real_name = initial(real_name)
|
real_name = initial(real_name)
|
||||||
name = real_name
|
name = real_name
|
||||||
|
voice_name = name
|
||||||
update_icon()
|
update_icon()
|
||||||
remove_language("Robot Talk")
|
remove_language("Robot Talk")
|
||||||
positronic = null
|
positronic = null
|
||||||
|
|||||||
9
html/changelogs/geeves-mech_misc_fixes.yml
Normal file
9
html/changelogs/geeves-mech_misc_fixes.yml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
author: Geeves
|
||||||
|
|
||||||
|
delete-after: True
|
||||||
|
|
||||||
|
changes:
|
||||||
|
- bugfix: "Spiderbots now appear on the radio with the name of the one controlling them."
|
||||||
|
- bugfix: "Mechs can now operate windoors."
|
||||||
|
- bugfix: "Remote mechs can now use mounted health analyzers."
|
||||||
|
- bugfix: "Mech rechargers will now charge the mech on top of them if there is a power change and the power is back."
|
||||||
Reference in New Issue
Block a user