mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-20 19:44:09 +01:00
- Mech Recharge Bay. Note to the map-makers: recharge port should be situated to the west of recharge floor, console - anywhere close to it.
- H.O.N.K exosuit. - Mechs can push mobs and objects. - Mecha clickspam bug should be fixed. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@794 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -43,7 +43,7 @@
|
||||
/obj/mecha/combat/melee_action(target)
|
||||
if(internal_damage&MECHA_INT_CONTROL_LOST)
|
||||
target = pick(oview(1,src))
|
||||
if(!melee_can_hit || (!istype(target, /obj) && !istype(target, /mob) && !istype(target, /turf))) return
|
||||
if(!melee_can_hit || !istype(target, /atom)) return
|
||||
if(istype(target, /mob))
|
||||
var/mob/M = target
|
||||
if(src.occupant.a_intent == "hurt")
|
||||
@@ -213,6 +213,17 @@
|
||||
src.log_append_to_last("[destr_weapon] is destoyed.",1)
|
||||
return
|
||||
|
||||
/obj/mecha/combat/get_stats_part()
|
||||
var/output = ..()
|
||||
output += "<b>Weapon systems:</b><div style=\"margin-left: 15px;\">"
|
||||
if(weapons.len)
|
||||
for(var/datum/mecha_weapon/W in weapons)
|
||||
output += "[selected_weapon==W?"<b>":"<a href='?src=\ref[src];select_weapon=\ref[W]'>"][W.get_weapon_info()][selected_weapon==W?"</b>":"</a>"]<br>"
|
||||
else
|
||||
output += "None"
|
||||
output += "</div>"
|
||||
return output
|
||||
|
||||
|
||||
/* //the garbage collector should handle this
|
||||
/obj/mecha/combat/Del()
|
||||
|
||||
@@ -26,11 +26,11 @@
|
||||
if(overload)
|
||||
overload = 0
|
||||
step_in = initial(step_in)
|
||||
src.occupant << "\blue You disable leg actuators overload."
|
||||
src.occupant_message("<font color='blue'>You disable leg actuators overload.</font>")
|
||||
else
|
||||
overload = 1
|
||||
step_in = min(1, round(step_in/2))
|
||||
src.occupant << "\red You enable leg actuators overload."
|
||||
src.occupant_message("<font color='red'> You enable leg actuators overload.</font>")
|
||||
return
|
||||
|
||||
|
||||
@@ -43,19 +43,12 @@
|
||||
if(health < initial(health) - initial(health)/3)
|
||||
overload = 0
|
||||
step_in = initial(step_in)
|
||||
src.occupant << "\red Leg actuators damage threshold exceded. Disabling overload."
|
||||
src.occupant_message("<font color='red'>Leg actuators damage threshold exceded. Disabling overload.</font>")
|
||||
return
|
||||
|
||||
|
||||
/obj/mecha/combat/gygax/get_stats_part()
|
||||
var/output = ..()
|
||||
output += "<b>Weapon systems:</b><div style=\"margin-left: 15px;\">"
|
||||
if(weapons.len)
|
||||
for(var/datum/mecha_weapon/W in weapons)
|
||||
output += "[selected_weapon==W?"<b>":"<a href='?src=\ref[src];select_weapon=\ref[W]'>"][W.get_weapon_info()][selected_weapon==W?"</b>":"</a>"]<br>"
|
||||
else
|
||||
output += "None"
|
||||
output += "</div>"
|
||||
output += "<b>Leg actuators overload: [overload?"on":"off"]</b>"
|
||||
return output
|
||||
|
||||
@@ -69,5 +62,4 @@
|
||||
..()
|
||||
if (href_list["toggle_leg_overload"])
|
||||
src.overload()
|
||||
return
|
||||
return
|
||||
@@ -28,7 +28,7 @@
|
||||
if(!can_move)
|
||||
return 0
|
||||
if(connected_port)
|
||||
src.occupant << "Unable to move while connected to the air system port"
|
||||
src.occupant_message("Unable to move while connected to the air system port")
|
||||
return 0
|
||||
if(!thrusters && src.pr_inertial_movement.active())
|
||||
return 0
|
||||
@@ -83,13 +83,6 @@
|
||||
|
||||
/obj/mecha/combat/marauder/get_stats_part()
|
||||
var/output = ..()
|
||||
output += "<b>Weapon systems:</b><div style=\"margin-left: 15px;\">"
|
||||
if(weapons.len)
|
||||
for(var/datum/mecha_weapon/W in weapons)
|
||||
output += "[selected_weapon==W?"<b>":"<a href='?src=\ref[src];select_weapon=\ref[W]'>"][W.get_weapon_info()][selected_weapon==W?"</b>":"</a>"]<br>"
|
||||
else
|
||||
output += "None"
|
||||
output += "</div>"
|
||||
output += {"<b>Smoke:</b> [smoke]
|
||||
<br>
|
||||
<b>Thrusters:</b> [thrusters?"on":"off"]
|
||||
@@ -108,11 +101,6 @@
|
||||
..()
|
||||
if (href_list["toggle_thrusters"])
|
||||
src.toggle_thrusters()
|
||||
return
|
||||
if (href_list["smoke"])
|
||||
src.smoke()
|
||||
return
|
||||
if (href_list["rearm_srm"])
|
||||
var/datum/mecha_weapon/missile_rack/MR = weapons[2]
|
||||
MR.rearm()
|
||||
return
|
||||
@@ -49,14 +49,14 @@
|
||||
|
||||
fire(target)
|
||||
if(!fire_checks(target) || missiles <=0) return
|
||||
weapon_ready = 0
|
||||
var/obj/item/missile/M = new /obj/item/missile(chassis.loc)
|
||||
M.primed = 1
|
||||
M.throw_at(target, missile_range, missile_speed)
|
||||
weapon_ready = 0
|
||||
missiles--
|
||||
spawn(weapon_cooldown)
|
||||
weapon_ready = 1
|
||||
chassis.log_message("Fired from [src.name], targeting [target].",1)
|
||||
chassis.log_message("Fired from [src.name], targeting [target].")
|
||||
return
|
||||
|
||||
proc/rearm()
|
||||
@@ -103,9 +103,9 @@
|
||||
|
||||
fire(target)
|
||||
if(!fire_checks(target) || missiles <=0) return
|
||||
weapon_ready = 0
|
||||
var/obj/item/weapon/flashbang/F = new /obj/item/weapon/flashbang(chassis.loc)
|
||||
F.throw_at(target, missile_range, missile_speed)
|
||||
weapon_ready = 0
|
||||
missiles--
|
||||
spawn(det_time)
|
||||
F.prime()
|
||||
@@ -128,13 +128,12 @@
|
||||
return
|
||||
if (targloc == curloc)
|
||||
return
|
||||
|
||||
weapon_ready = 0
|
||||
playsound(chassis, 'Laser.ogg', 50, 1)
|
||||
var/obj/beam/a_laser/A = new /obj/beam/a_laser(curloc)
|
||||
A.current = curloc
|
||||
A.yo = targloc.y - curloc.y
|
||||
A.xo = targloc.x - curloc.x
|
||||
weapon_ready = 0
|
||||
chassis.cell.use(energy_drain)
|
||||
spawn()
|
||||
A.process()
|
||||
@@ -148,7 +147,6 @@
|
||||
weapon_cooldown = 50
|
||||
name = "eZ-13 mk2 Heavy pulse rifle"
|
||||
energy_drain = 60
|
||||
var/num_penetrations = 2
|
||||
|
||||
fire(target)
|
||||
if(!fire_checks(target)) return
|
||||
@@ -162,7 +160,6 @@
|
||||
|
||||
playsound(chassis, 'marauder.ogg', 50, 1)
|
||||
var/obj/beam/a_laser/A = new /obj/beam/a_laser/pulse_laser(curloc)
|
||||
A.life = num_penetrations
|
||||
A.current = curloc
|
||||
A.yo = targloc.y - curloc.y
|
||||
A.xo = targloc.x - curloc.x
|
||||
@@ -206,7 +203,92 @@
|
||||
chassis.log_message("Fired from [src.name], targeting [target].")
|
||||
return
|
||||
|
||||
/datum/mecha_weapon/missile_rack/banana_mortar
|
||||
name = "Banana Mortar"
|
||||
missiles = 15
|
||||
missile_speed = 1.5
|
||||
missile_energy_cost = 100
|
||||
weapon_cooldown = 20
|
||||
|
||||
fire(target)
|
||||
if(!fire_checks(target) || missiles <=0) return
|
||||
weapon_ready = 0
|
||||
var/obj/item/weapon/bananapeel/B = new /obj/item/weapon/bananapeel(chassis.loc)
|
||||
playsound(chassis, 'bikehorn.ogg', 60, 1)
|
||||
B.throw_at(target, missile_range, missile_speed)
|
||||
missiles--
|
||||
spawn(weapon_cooldown)
|
||||
weapon_ready = 1
|
||||
chassis.log_message("Bananed from [src.name], targeting [target]. HONK!")
|
||||
return
|
||||
|
||||
|
||||
/datum/mecha_weapon/missile_rack/mousetrap_mortar
|
||||
name = "Mousetrap Mortar"
|
||||
missiles = 15
|
||||
missile_speed = 1.5
|
||||
missile_energy_cost = 100
|
||||
weapon_cooldown = 10
|
||||
|
||||
fire(target)
|
||||
if(!fire_checks(target) || missiles <=0) return
|
||||
weapon_ready = 0
|
||||
var/obj/item/weapon/mousetrap/M = new /obj/item/weapon/mousetrap(chassis.loc)
|
||||
M.armed = 1
|
||||
playsound(chassis, 'bikehorn.ogg', 60, 1)
|
||||
M.throw_at(target, missile_range, missile_speed)
|
||||
missiles--
|
||||
spawn(weapon_cooldown)
|
||||
weapon_ready = 1
|
||||
chassis.log_message("Launched a mouse-trap from [src.name], targeting [target]. HONK!")
|
||||
return
|
||||
|
||||
|
||||
/datum/mecha_weapon/honker
|
||||
weapon_cooldown = 10
|
||||
name = "HoNkER BlAsT 5000"
|
||||
energy_drain = 200
|
||||
weapon_cooldown = 150
|
||||
|
||||
fire(target)
|
||||
if(!chassis)
|
||||
return 0
|
||||
if(energy_drain && chassis.cell.charge < energy_drain)
|
||||
return 0
|
||||
if(!weapon_ready)
|
||||
return 0
|
||||
weapon_ready = 0
|
||||
playsound(chassis, 'AirHorn.ogg', 100, 1)
|
||||
chassis.occupant_message("<font color='red' size='5'>HONK</font>")
|
||||
for(var/mob/living/carbon/M in orange(10, chassis))
|
||||
M << "<font color='red' size='7'>HONK</font>"
|
||||
M.sleeping = 0
|
||||
if(M.stuttering)
|
||||
M.stuttering = 1
|
||||
M.stuttering += 10
|
||||
M.ear_deaf += 60
|
||||
M.weakened = 3
|
||||
if(prob(70))
|
||||
M.stunned = 10
|
||||
M.paralysis += 4
|
||||
else
|
||||
M.make_jittery(10)
|
||||
/* //else the mousetraps are useless
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(isobj(H.shoes))
|
||||
var/thingy = H.shoes
|
||||
H.drop_from_slot(H.shoes)
|
||||
walk_away(thingy,chassis,15,2)
|
||||
spawn(20)
|
||||
if(thingy)
|
||||
walk(thingy,0)
|
||||
*/
|
||||
chassis.cell.use(energy_drain)
|
||||
spawn(weapon_cooldown)
|
||||
weapon_ready = 1
|
||||
chassis.log_message("Honked from [src.name]. HONK!")
|
||||
return
|
||||
|
||||
|
||||
/*
|
||||
|
||||
@@ -0,0 +1,214 @@
|
||||
/turf/simulated/floor/mech_bay_recharge_floor
|
||||
name = "Mech Bay Recharge Station"
|
||||
icon = 'mech_bay.dmi'
|
||||
icon_state = "recharge_floor"
|
||||
var/obj/machinery/mech_bay_recharge_port/recharge_port
|
||||
var/obj/machinery/computer/mech_bay_power_console/recharge_console
|
||||
var/obj/mecha/recharging_mecha = null
|
||||
|
||||
Entered(atom as obj)
|
||||
. = ..()
|
||||
if(istype(atom, /obj/mecha))
|
||||
var/obj/mecha/mecha = atom
|
||||
mecha.occupant_message("<b>Initializing power control devices.</b>")
|
||||
init_devices()
|
||||
if(recharge_console && recharge_port)
|
||||
recharging_mecha = mecha
|
||||
recharge_console.mecha_in(mecha)
|
||||
return
|
||||
else if(!recharge_console)
|
||||
mecha.occupant_message("<font color='red'>Control console not found. Terminating.</font>")
|
||||
else if(!recharge_port)
|
||||
mecha.occupant_message("<font color='red'>Power port not found. Terminating.</font>")
|
||||
return
|
||||
|
||||
Exited(atom as obj)
|
||||
. = ..()
|
||||
if(atom == recharging_mecha)
|
||||
recharging_mecha = null
|
||||
if(recharge_console)
|
||||
recharge_console.mecha_out()
|
||||
return
|
||||
|
||||
proc/init_devices()
|
||||
recharge_console = locate() in range(1,src)
|
||||
recharge_port = locate(/obj/machinery/mech_bay_recharge_port, get_step(src, WEST))
|
||||
if(recharge_console)
|
||||
recharge_console.recharge_floor = src
|
||||
if(recharge_port)
|
||||
recharge_console.recharge_port = recharge_port
|
||||
if(recharge_port)
|
||||
recharge_port.recharge_floor = src
|
||||
if(recharge_console)
|
||||
recharge_port.recharge_console = recharge_console
|
||||
return
|
||||
|
||||
|
||||
|
||||
|
||||
/obj/machinery/mech_bay_recharge_port
|
||||
name = "Mech Bay Power Port"
|
||||
density = 1
|
||||
anchored = 1
|
||||
icon = 'mech_bay.dmi'
|
||||
icon_state = "recharge_port"
|
||||
var/turf/simulated/floor/mech_bay_recharge_floor/recharge_floor
|
||||
var/obj/machinery/computer/mech_bay_power_console/recharge_console
|
||||
var/datum/global_iterator/mech_bay_recharger/pr_recharger
|
||||
|
||||
New()
|
||||
..()
|
||||
pr_recharger = new /datum/global_iterator/mech_bay_recharger(null,0)
|
||||
return
|
||||
|
||||
proc/start_charge(var/obj/mecha/recharging_mecha)
|
||||
if(stat&(NOPOWER|BROKEN))
|
||||
recharging_mecha.occupant_message("<font color='red'>Power port not responding. Terminating.</font>")
|
||||
return 0
|
||||
else
|
||||
if(recharging_mecha.cell)
|
||||
recharging_mecha.occupant_message("Now charging...")
|
||||
pr_recharger.start(list(src,recharging_mecha))
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
|
||||
proc/stop_charge()
|
||||
if(recharge_console && !recharge_console.stat)
|
||||
recharge_console.icon_state = initial(recharge_console.icon_state)
|
||||
pr_recharger.stop()
|
||||
return
|
||||
|
||||
proc/active()
|
||||
if(pr_recharger.active())
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
|
||||
power_change()
|
||||
if(powered())
|
||||
stat &= ~NOPOWER
|
||||
else
|
||||
spawn(rand(0, 15))
|
||||
stat |= NOPOWER
|
||||
pr_recharger.stop()
|
||||
return
|
||||
|
||||
proc/set_voltage(new_voltage)
|
||||
if(new_voltage && isnum(new_voltage))
|
||||
pr_recharger.max_charge = new_voltage
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
|
||||
|
||||
/datum/global_iterator/mech_bay_recharger
|
||||
delay = 20
|
||||
var/max_charge = 30
|
||||
|
||||
process(var/obj/machinery/mech_bay_recharge_port/port, var/obj/mecha/mecha)
|
||||
if(mecha in port.recharge_floor)
|
||||
var/delta = min(max_charge, mecha.cell.maxcharge - mecha.cell.charge)
|
||||
if(delta>0)
|
||||
mecha.cell.charge += delta
|
||||
port.use_power(delta*150)
|
||||
else
|
||||
mecha.occupant_message("<font color='blue'><b>Fully charged.</b></font>")
|
||||
port.stop_charge()
|
||||
else
|
||||
port.stop_charge()
|
||||
return
|
||||
|
||||
|
||||
|
||||
|
||||
/obj/machinery/computer/mech_bay_power_console
|
||||
name = "Mech Bay Power Control Console"
|
||||
density = 1
|
||||
anchored = 1
|
||||
icon = 'mech_bay.dmi'
|
||||
icon_state = "recharge_comp"
|
||||
var/autostart = 1
|
||||
var/voltage = 30
|
||||
var/turf/simulated/floor/mech_bay_recharge_floor/recharge_floor
|
||||
var/obj/machinery/mech_bay_recharge_port/recharge_port
|
||||
|
||||
proc/mecha_in(var/obj/mecha/mecha)
|
||||
if(stat&(NOPOWER|BROKEN))
|
||||
mecha.occupant_message("<font color='red'>Control console not responding. Terminating...</font>")
|
||||
return
|
||||
if(recharge_port && autostart)
|
||||
var/answer = recharge_port.start_charge(mecha)
|
||||
if(answer)
|
||||
recharge_port.set_voltage(voltage)
|
||||
src.icon_state = initial(src.icon_state)+"_on"
|
||||
return
|
||||
|
||||
proc/mecha_out()
|
||||
if(recharge_port)
|
||||
recharge_port.stop_charge()
|
||||
return
|
||||
|
||||
|
||||
power_change()
|
||||
if(stat & BROKEN)
|
||||
icon_state = initial(icon_state)+"_broken"
|
||||
if(recharge_port)
|
||||
recharge_port.stop_charge()
|
||||
else if(powered())
|
||||
icon_state = initial(icon_state)
|
||||
stat &= ~NOPOWER
|
||||
else
|
||||
spawn(rand(0, 15))
|
||||
icon_state = initial(icon_state)+"_nopower"
|
||||
stat |= NOPOWER
|
||||
if(recharge_port)
|
||||
recharge_port.stop_charge()
|
||||
|
||||
set_broken()
|
||||
icon_state = initial(icon_state)+"_broken"
|
||||
stat |= BROKEN
|
||||
if(recharge_port)
|
||||
recharge_port.stop_charge()
|
||||
|
||||
|
||||
attack_hand(mob/user as mob)
|
||||
if(..()) return
|
||||
var/output = "<html><head><title>[src.name]</title></head><body>"
|
||||
if(!recharge_floor)
|
||||
output += "<font color='red'>Mech Bay Recharge Station not initialized.</font><br>"
|
||||
else
|
||||
output += {"<b>Mech Bay Recharge Station Data:</b><div style='margin-left: 15px;'>
|
||||
<b>Mecha: </b>[recharge_floor.recharging_mecha||"None"]<br>"}
|
||||
if(recharge_floor.recharging_mecha)
|
||||
output += "<b>Cell charge: </b>[recharge_floor.recharging_mecha.cell?"[recharge_floor.recharging_mecha.cell.charge]/[recharge_floor.recharging_mecha.cell.maxcharge]":"No powercell found"]<br>"
|
||||
output += "</div>"
|
||||
if(!recharge_port)
|
||||
output += "<font color='red'>Mech Bay Power Port not initialized.</font><br>"
|
||||
else
|
||||
output += "<b>Mech Bay Power Port Status: </b>[recharge_port.active()?"Now charging":"On hold"]<br>"
|
||||
|
||||
/*
|
||||
output += {"<hr>
|
||||
<b>Settings:</b>
|
||||
<div style='margin-left: 15px;'>
|
||||
<b>Start sequence on succesful init: </b><a href='?src=\ref[src];autostart=1'>[autostart?"On":"Off"]</a><br>
|
||||
<b>Recharge Port Voltage: </b><a href='?src=\ref[src];voltage=30'>Low</a> - <a href='?src=\ref[src];voltage=45'>Medium</a> - <a href='?src=\ref[src];voltage=60'>High</a><br>
|
||||
</div>"}
|
||||
*/
|
||||
|
||||
output += "</ body></html>"
|
||||
user << browse(output, "window=mech_bay_console")
|
||||
onclose(user, "mech_bay_console")
|
||||
return
|
||||
|
||||
|
||||
Topic(href, href_list)
|
||||
if(href_list["autostart"])
|
||||
autostart = !autostart
|
||||
if(href_list["voltage"])
|
||||
voltage = text2num(href_list["voltage"])
|
||||
if(recharge_port)
|
||||
recharge_port.set_voltage(voltage)
|
||||
updateUsrDialog()
|
||||
return
|
||||
@@ -39,7 +39,6 @@
|
||||
var/internal_damage_threshold = 50 //health percentage below which internal damage is possible
|
||||
var/internal_damage = 0 //contains bitflags
|
||||
|
||||
|
||||
var/list/operation_req_access = list(access_engine)//required access level for mecha operation
|
||||
var/list/internals_req_access = list(access_engine)//required access level to open cell compartment
|
||||
|
||||
@@ -77,15 +76,24 @@
|
||||
..()
|
||||
return
|
||||
|
||||
///client/var/mech_click
|
||||
|
||||
/client/Click(object,location,control,params)
|
||||
..()
|
||||
var/mob/M = src.mob
|
||||
if(M && istype(M.loc, /obj/mecha))
|
||||
/*
|
||||
if(mech_click == world.time) return
|
||||
mech_click = world.time
|
||||
*/
|
||||
if(!location) return
|
||||
if(M.stat>0) return
|
||||
if(!istype(object,/atom)) return
|
||||
var/obj/mecha/Mech = M.loc
|
||||
Mech.click_action(object)
|
||||
// sleep(-1)
|
||||
spawn()
|
||||
Mech.click_action(object)
|
||||
|
||||
|
||||
|
||||
/obj/mecha/proc/click_action(atom/target)
|
||||
@@ -176,13 +184,17 @@
|
||||
|
||||
/obj/mecha/Bump(var/atom/obstacle)
|
||||
// src.inertia_dir = null
|
||||
if(src.occupant)
|
||||
if(istype(obstacle, /obj))
|
||||
var/obj/O = obstacle
|
||||
if(istype(obstacle , /obj/machinery/door))
|
||||
var/obj/machinery/door/D = obstacle
|
||||
D.Bumped(src.occupant)
|
||||
return
|
||||
if(src.occupant)
|
||||
O.Bumped(src.occupant)
|
||||
else if(!O.anchored)
|
||||
step(obstacle,src.dir)
|
||||
// else
|
||||
// obstacle.Bumped(src)
|
||||
else if(istype(obstacle, /mob))
|
||||
step(obstacle,src.dir)
|
||||
return
|
||||
|
||||
|
||||
@@ -424,6 +436,7 @@
|
||||
//////// Verbs ////////
|
||||
/////////////////////////
|
||||
|
||||
|
||||
/obj/mecha/verb/connect_to_port()
|
||||
set name = "Connect to port"
|
||||
set category = "Exosuit Interface"
|
||||
@@ -678,7 +691,7 @@
|
||||
return
|
||||
if (src.internal_damage & MECHA_INT_TANK_BREACH)
|
||||
src.internal_damage &= ~MECHA_INT_TANK_BREACH
|
||||
user << "\blue You seal the breached gas tank."
|
||||
user << "\blue You repair the damaged gas tank."
|
||||
W:use_fuel(1)
|
||||
if(src.health<initial(src.health))
|
||||
user << "\blue You repair some damage to [src.name]."
|
||||
@@ -705,7 +718,7 @@
|
||||
|
||||
/obj/mecha/proc/get_stats_html()
|
||||
var/output = {"<html>
|
||||
<head><title>[src.name] data</title><meta HTTP-EQUIV='Refresh' content='10'></head>
|
||||
<head><title>[src.name] data</title></head>
|
||||
<body style="color: #00ff00; background: #000000; font: 13px 'Courier', monospace;">
|
||||
[src.get_stats_part()]
|
||||
<hr>
|
||||
@@ -722,7 +735,7 @@
|
||||
[internal_damage&MECHA_INT_CONTROL_LOST?"<font color='red'><b>COORDINATION SYSTEM CALIBRATION FAILURE</b></font> - <a href='?src=\ref[src];repair_int_control_lost=1'>Recalibrate</a><br>":null]
|
||||
<b>Integrity: </b> [health/initial(health)*100]%<br>
|
||||
<b>Powercell charge: </b>[cell.charge/cell.maxcharge*100]%<br>
|
||||
<b>Airtank pressure: </b>[src.return_pressure()]<br>
|
||||
<b>Airtank pressure: </b>[src.return_pressure()]kPa<br>
|
||||
<b>Internal temperature: </b> [src.air_contents.temperature]°K|[src.air_contents.temperature - T0C]°C<br>
|
||||
<b>Lights: </b>[lights?"on":"off"]<br>
|
||||
"}
|
||||
|
||||
@@ -123,7 +123,7 @@
|
||||
if(chassis)
|
||||
if(T == chassis.loc && src == chassis.selected_tool)
|
||||
if(istype(target, /turf/simulated/wall/r_wall))
|
||||
chassis.occupant_message("\red The [target] is too durable to drill through.")
|
||||
chassis.occupant_message("<font color='red'>[target] is too durable to drill through.</font>")
|
||||
else
|
||||
chassis.log_message("Drilled through [target]")
|
||||
target.ex_act(2)
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.3 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 6.8 KiB |
Binary file not shown.
@@ -428,9 +428,11 @@
|
||||
#include "code\game\magic\cultist\rune9.dm"
|
||||
#include "code\game\magic\cultist\specialtalisman.dm"
|
||||
#include "code\game\mecha\global_iterator.dm"
|
||||
#include "code\game\mecha\mech_bay.dm"
|
||||
#include "code\game\mecha\mecha.dm"
|
||||
#include "code\game\mecha\combat\combat.dm"
|
||||
#include "code\game\mecha\combat\gygax.dm"
|
||||
#include "code\game\mecha\combat\honker.dm"
|
||||
#include "code\game\mecha\combat\marauder.dm"
|
||||
#include "code\game\mecha\combat\weapons\weapons.dm"
|
||||
#include "code\game\mecha\working\ripley.dm"
|
||||
|
||||
Reference in New Issue
Block a user