mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-28 22:48:38 +01:00
+1
-1
@@ -433,9 +433,9 @@
|
||||
#include "code\game\mecha\equipment\tools\medical_tools.dm"
|
||||
#include "code\game\mecha\equipment\tools\tools.dm"
|
||||
#include "code\game\mecha\equipment\weapons\weapons.dm"
|
||||
#include "code\game\mecha\hoverpod\hoverpod.dm"
|
||||
#include "code\game\mecha\medical\medical.dm"
|
||||
#include "code\game\mecha\medical\odysseus.dm"
|
||||
#include "code\game\mecha\working\hoverpod.dm"
|
||||
#include "code\game\mecha\working\ripley.dm"
|
||||
#include "code\game\mecha\working\working.dm"
|
||||
#include "code\game\objects\empulse.dm"
|
||||
|
||||
@@ -95,6 +95,9 @@
|
||||
return
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/proc/can_attach(obj/mecha/M as obj)
|
||||
if(M.equipment.len >= M.max_equip)
|
||||
return 0
|
||||
|
||||
if (ispath(required_type))
|
||||
return istype(M, required_type)
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
energy_drain = 10
|
||||
var/dam_force = 20
|
||||
var/obj/mecha/working/ripley/cargo_holder
|
||||
required_type = /obj/mecha/working
|
||||
required_type = list(/obj/mecha/working, /obj/mecha/hoverpod) //so that hoverpods are a bit more useful as space transportation
|
||||
|
||||
attach(obj/mecha/M as obj)
|
||||
..()
|
||||
@@ -1163,6 +1163,10 @@
|
||||
if (!usr.Adjacent(src))
|
||||
return
|
||||
|
||||
if (!isturf(usr.loc))
|
||||
usr << "\red You can't reach the passenger compartment from here."
|
||||
return
|
||||
|
||||
if(iscarbon(usr))
|
||||
var/mob/living/carbon/C = usr
|
||||
if(C.handcuffed)
|
||||
|
||||
@@ -1,96 +1,69 @@
|
||||
/obj/mecha/working/hoverpod
|
||||
/obj/mecha/hoverpod
|
||||
desc = "Stubby and round, this space-capable craft is an ancient favorite."
|
||||
name = "Hover Pod"
|
||||
icon_state = "engineering_pod"
|
||||
initial_icon = "engineering_pod"
|
||||
internal_damage_threshold = 80
|
||||
step_in = 4
|
||||
step_energy_drain = 5
|
||||
step_energy_drain = 10
|
||||
max_temperature = 20000
|
||||
health = 150
|
||||
infra_luminosity = 6
|
||||
wreckage = /obj/effect/decal/mecha_wreckage/hoverpod
|
||||
var/list/cargo = new
|
||||
var/cargo_capacity = 3
|
||||
max_equip = 3
|
||||
max_equip = 2
|
||||
var/datum/effect/effect/system/ion_trail_follow/ion_trail
|
||||
|
||||
//duplicate of parent proc, but without space drifting
|
||||
/obj/mecha/working/hoverpod/dyndomove(direction)
|
||||
if(!can_move)
|
||||
return 0
|
||||
if(src.pr_inertial_movement.active())
|
||||
return 0
|
||||
if(!has_charge(step_energy_drain))
|
||||
return 0
|
||||
var/move_result = 0
|
||||
if(hasInternalDamage(MECHA_INT_CONTROL_LOST))
|
||||
move_result = mechsteprand()
|
||||
else if(src.dir!=direction)
|
||||
move_result = mechturn(direction)
|
||||
else
|
||||
move_result = mechstep(direction)
|
||||
if(move_result)
|
||||
can_move = 0
|
||||
use_power(step_energy_drain)
|
||||
/*if(istype(src.loc, /turf/space))
|
||||
if(!src.check_for_support())
|
||||
src.pr_inertial_movement.start(list(src,direction))
|
||||
src.log_message("Movement control lost. Inertial movement started.")*/
|
||||
if(do_after(step_in))
|
||||
can_move = 1
|
||||
/obj/mecha/hoverpod/New()
|
||||
..()
|
||||
var/turf/T = get_turf(src)
|
||||
if(T.z != 2)
|
||||
new /obj/item/mecha_parts/mecha_tracking(src)
|
||||
|
||||
ion_trail = new /datum/effect/effect/system/ion_trail_follow()
|
||||
ion_trail.set_up(src)
|
||||
ion_trail.start()
|
||||
|
||||
/obj/mecha/hoverpod/range_action(atom/target as obj|mob|turf)
|
||||
return
|
||||
|
||||
//No space drifting
|
||||
/obj/mecha/hoverpod/check_for_support()
|
||||
//does the hoverpod have enough charge left to stabilize itself?
|
||||
if (has_charge(step_energy_drain))
|
||||
if (!ion_trail.on)
|
||||
ion_trail.start()
|
||||
return 1
|
||||
return 0
|
||||
|
||||
ion_trail.stop()
|
||||
return ..()
|
||||
|
||||
//these three procs overriden to play different sounds
|
||||
/obj/mecha/working/hoverpod/mechturn(direction)
|
||||
/obj/mecha/hoverpod/mechturn(direction)
|
||||
dir = direction
|
||||
//playsound(src,'sound/machines/hiss.ogg',40,1)
|
||||
return 1
|
||||
|
||||
/obj/mecha/working/hoverpod/mechstep(direction)
|
||||
/obj/mecha/hoverpod/mechstep(direction)
|
||||
var/result = step(src,direction)
|
||||
if(result)
|
||||
playsound(src,'sound/machines/hiss.ogg',40,1)
|
||||
return result
|
||||
|
||||
|
||||
/obj/mecha/working/hoverpod/mechsteprand()
|
||||
/obj/mecha/hoverpod/mechsteprand()
|
||||
var/result = step_rand(src)
|
||||
if(result)
|
||||
playsound(src,'sound/machines/hiss.ogg',40,1)
|
||||
return result
|
||||
|
||||
/*
|
||||
/obj/mecha/working/hoverpod/New()
|
||||
..()
|
||||
return
|
||||
*/
|
||||
|
||||
/obj/mecha/working/hoverpod/combatpod
|
||||
desc = "An ancient, ghetto fighter." // Ideally would have a seperate icon.
|
||||
name = "Combat Hoverpod"
|
||||
|
||||
/obj/mecha/working/hoverpod/combatpod/New()
|
||||
..()
|
||||
var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser
|
||||
ME.attach(src)
|
||||
ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/explosive
|
||||
ME.attach(src)
|
||||
|
||||
/obj/mecha/working/hoverpod/shuttlepod
|
||||
desc = "Who knew a tiny ball could fit three people?"
|
||||
/obj/mecha/working/hoverpod/shuttlepod/New()
|
||||
..()
|
||||
var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/tool/passenger
|
||||
ME.attach(src)
|
||||
ME = new /obj/item/mecha_parts/mecha_equipment/tool/passenger
|
||||
ME.attach(src)
|
||||
|
||||
/obj/mecha/working/hoverpod/Exit(atom/movable/O)
|
||||
/obj/mecha/hoverpod/Exit(atom/movable/O)
|
||||
if(O in cargo)
|
||||
return 0
|
||||
return ..()
|
||||
|
||||
/obj/mecha/working/hoverpod/Topic(href, href_list)
|
||||
/obj/mecha/hoverpod/Topic(href, href_list)
|
||||
..()
|
||||
if(href_list["drop_from_cargo"])
|
||||
var/obj/O = locate(href_list["drop_from_cargo"])
|
||||
@@ -105,7 +78,7 @@
|
||||
return
|
||||
|
||||
|
||||
/obj/mecha/working/hoverpod/get_stats_part()
|
||||
/obj/mecha/hoverpod/get_stats_part()
|
||||
var/output = ..()
|
||||
output += "<b>Cargo Compartment Contents:</b><div style=\"margin-left: 15px;\">"
|
||||
if(src.cargo.len)
|
||||
@@ -116,7 +89,7 @@
|
||||
output += "</div>"
|
||||
return output
|
||||
|
||||
/obj/mecha/working/hoverpod/Del()
|
||||
/obj/mecha/hoverpod/Del()
|
||||
for(var/mob/M in src)
|
||||
if(M==src.occupant)
|
||||
continue
|
||||
@@ -130,4 +103,32 @@
|
||||
T.Entered(A)
|
||||
step_rand(A)
|
||||
..()
|
||||
return
|
||||
return
|
||||
|
||||
//Hoverpod variants
|
||||
|
||||
/* Commented out the combatpod as they can't reattach their equipment if it ever gets dropped,
|
||||
* and making a special exception for them seems lame.
|
||||
/obj/mecha/hoverpod/combatpod
|
||||
desc = "An ancient, run-down combat spacecraft." // Ideally would have a seperate icon.
|
||||
name = "Combat Hoverpod"
|
||||
health = 200
|
||||
internal_damage_threshold = 35
|
||||
|
||||
/obj/mecha/hoverpod/combatpod/New()
|
||||
..()
|
||||
var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser
|
||||
ME.attach(src)
|
||||
ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/explosive
|
||||
ME.attach(src)
|
||||
*/
|
||||
|
||||
/obj/mecha/hoverpod/shuttlepod
|
||||
desc = "Who knew a tiny ball could fit three people?"
|
||||
|
||||
/obj/mecha/hoverpod/shuttlepod/New()
|
||||
..()
|
||||
var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/tool/passenger
|
||||
ME.attach(src)
|
||||
ME = new /obj/item/mecha_parts/mecha_equipment/tool/passenger
|
||||
ME.attach(src)
|
||||
@@ -70,5 +70,5 @@
|
||||
|
||||
/obj/structure/largecrate/hoverpod/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(istype(W, /obj/item/weapon/crowbar))
|
||||
new /obj/mecha/working/hoverpod(loc)
|
||||
new /obj/mecha/hoverpod(loc)
|
||||
..()
|
||||
@@ -95,4 +95,12 @@
|
||||
O.loc = src.loc
|
||||
usr << "\blue You empty the ore box"
|
||||
|
||||
return
|
||||
return
|
||||
|
||||
/obj/structure/ore_box/ex_act(severity)
|
||||
if(severity == 1.0 || (severity < 3.0 && prob(50)))
|
||||
for (var/obj/item/weapon/ore/O in contents)
|
||||
O.loc = src.loc
|
||||
O.ex_act(severity++)
|
||||
del(src)
|
||||
return
|
||||
@@ -30,7 +30,7 @@
|
||||
name = "Gas turbine control computer"
|
||||
desc = "A computer to remotely control a gas turbine"
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "airtunnel0e"
|
||||
icon_state = "turbinecomp"
|
||||
circuit = /obj/item/weapon/circuitboard/turbine_control
|
||||
anchored = 1
|
||||
density = 1
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 72 KiB |
Reference in New Issue
Block a user