mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 18:53:06 +00:00
Make Talon engines BEEFIER
This commit is contained in:
71
code/modules/overmap/ships/engines/gas_thruster_vr.dm
Normal file
71
code/modules/overmap/ships/engines/gas_thruster_vr.dm
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
//These connect at the corner 2 steps and 3 steps in the dir from their loc
|
||||||
|
/obj/machinery/atmospherics/unary/engine/bigger
|
||||||
|
name = "large rocket nozzle"
|
||||||
|
desc = "Advanced rocket nozzle, expelling gas at hypersonic velocities to propel the ship."
|
||||||
|
icon = 'icons/turf/shuttle_parts64.dmi'
|
||||||
|
icon_state = "engine_off"
|
||||||
|
|
||||||
|
volume_per_burn = 30
|
||||||
|
charge_per_burn = 6000
|
||||||
|
boot_time = 70
|
||||||
|
|
||||||
|
bound_width = 64
|
||||||
|
bound_height = 64
|
||||||
|
|
||||||
|
/obj/machinery/atmospherics/unary/engine/bigger/atmos_init()
|
||||||
|
if(node)
|
||||||
|
return
|
||||||
|
|
||||||
|
var/node_connect = dir
|
||||||
|
var/turf/one_step = get_step(src,node_connect)
|
||||||
|
|
||||||
|
for(var/obj/machinery/atmospherics/target in get_step(one_step,node_connect))
|
||||||
|
if(can_be_node(target, 1))
|
||||||
|
node = target
|
||||||
|
break
|
||||||
|
|
||||||
|
update_icon()
|
||||||
|
update_underlays()
|
||||||
|
|
||||||
|
/obj/machinery/atmospherics/unary/engine/bigger/burn()
|
||||||
|
. = ..()
|
||||||
|
if(.)
|
||||||
|
icon_state = "engine_on"
|
||||||
|
spawn(2 SECONDS)
|
||||||
|
icon_state = initial(icon_state)
|
||||||
|
|
||||||
|
/obj/machinery/atmospherics/unary/engine/biggest
|
||||||
|
name = "huge rocket nozzle"
|
||||||
|
desc = "Enormous rocket nozzle, expelling gas at hypersonic velocities to propel the ship."
|
||||||
|
icon = 'icons/turf/shuttle_parts96.dmi'
|
||||||
|
icon_state = "engine_off"
|
||||||
|
|
||||||
|
volume_per_burn = 50
|
||||||
|
charge_per_burn = 10000
|
||||||
|
boot_time = 100
|
||||||
|
|
||||||
|
bound_width = 96
|
||||||
|
bound_height = 96
|
||||||
|
|
||||||
|
/obj/machinery/atmospherics/unary/engine/biggest/burn()
|
||||||
|
. = ..()
|
||||||
|
if(.)
|
||||||
|
icon_state = "engine_on"
|
||||||
|
spawn(2 SECONDS)
|
||||||
|
icon_state = initial(icon_state)
|
||||||
|
|
||||||
|
/obj/machinery/atmospherics/unary/engine/biggest/atmos_init()
|
||||||
|
if(node)
|
||||||
|
return
|
||||||
|
|
||||||
|
var/node_connect = dir
|
||||||
|
var/turf/one_step = get_step(src,node_connect)
|
||||||
|
var/turf/two_step = get_step(one_step,node_connect)
|
||||||
|
|
||||||
|
for(var/obj/machinery/atmospherics/target in get_step(two_step,node_connect))
|
||||||
|
if(can_be_node(target, 1))
|
||||||
|
node = target
|
||||||
|
break
|
||||||
|
|
||||||
|
update_icon()
|
||||||
|
update_underlays()
|
||||||
@@ -1,99 +0,0 @@
|
|||||||
//Thermal nozzle engine
|
|
||||||
/datum/ship_engine/thermal
|
|
||||||
name = "thermal engine"
|
|
||||||
|
|
||||||
/datum/ship_engine/thermal/get_status()
|
|
||||||
..()
|
|
||||||
var/obj/machinery/atmospherics/unary/engine/E = engine
|
|
||||||
return "Fuel pressure: [E.air_contents.return_pressure()]"
|
|
||||||
|
|
||||||
/datum/ship_engine/thermal/get_thrust()
|
|
||||||
..()
|
|
||||||
var/obj/machinery/atmospherics/unary/engine/E = engine
|
|
||||||
if(!is_on())
|
|
||||||
return 0
|
|
||||||
var/pressurized_coef = E.air_contents.return_pressure()/E.effective_pressure
|
|
||||||
return round(E.thrust_limit * E.nominal_thrust * pressurized_coef)
|
|
||||||
|
|
||||||
/datum/ship_engine/thermal/burn()
|
|
||||||
..()
|
|
||||||
var/obj/machinery/atmospherics/unary/engine/E = engine
|
|
||||||
return E.burn()
|
|
||||||
|
|
||||||
/datum/ship_engine/thermal/set_thrust_limit(var/new_limit)
|
|
||||||
..()
|
|
||||||
var/obj/machinery/atmospherics/unary/engine/E = engine
|
|
||||||
E.thrust_limit = new_limit
|
|
||||||
|
|
||||||
/datum/ship_engine/thermal/get_thrust_limit()
|
|
||||||
..()
|
|
||||||
var/obj/machinery/atmospherics/unary/engine/E = engine
|
|
||||||
return E.thrust_limit
|
|
||||||
|
|
||||||
/datum/ship_engine/thermal/is_on()
|
|
||||||
..()
|
|
||||||
var/obj/machinery/atmospherics/unary/engine/E = engine
|
|
||||||
return E.on
|
|
||||||
|
|
||||||
/datum/ship_engine/thermal/toggle()
|
|
||||||
..()
|
|
||||||
var/obj/machinery/atmospherics/unary/engine/E = engine
|
|
||||||
E.on = !E.on
|
|
||||||
|
|
||||||
//Actual thermal nozzle engine object
|
|
||||||
|
|
||||||
/obj/machinery/atmospherics/unary/engine
|
|
||||||
name = "engine nozzle"
|
|
||||||
desc = "Simple thermal nozzle, uses heated gast to propell the ship."
|
|
||||||
icon = 'icons/obj/ship_engine.dmi'
|
|
||||||
icon_state = "nozzle"
|
|
||||||
var/on = 1
|
|
||||||
var/thrust_limit = 1 //Value between 1 and 0 to limit the resulting thrust
|
|
||||||
var/nominal_thrust = 3000
|
|
||||||
var/effective_pressure = 3000
|
|
||||||
var/datum/ship_engine/thermal/controller
|
|
||||||
|
|
||||||
/obj/machinery/atmospherics/unary/engine/Initialize()
|
|
||||||
. = ..()
|
|
||||||
controller = new(src)
|
|
||||||
|
|
||||||
/obj/machinery/atmospherics/unary/engine/Destroy()
|
|
||||||
..()
|
|
||||||
controller.die()
|
|
||||||
|
|
||||||
/obj/machinery/atmospherics/unary/engine/proc/burn()
|
|
||||||
if (!on)
|
|
||||||
return
|
|
||||||
if(air_contents.temperature > 0)
|
|
||||||
var/transfer_moles = 100 * air_contents.volume/max(air_contents.temperature * R_IDEAL_GAS_EQUATION, 0,01)
|
|
||||||
transfer_moles = round(thrust_limit * transfer_moles, 0.01)
|
|
||||||
if(transfer_moles > air_contents.total_moles)
|
|
||||||
on = !on
|
|
||||||
return 0
|
|
||||||
|
|
||||||
var/datum/gas_mixture/removed = air_contents.remove(transfer_moles)
|
|
||||||
|
|
||||||
loc.assume_air(removed)
|
|
||||||
if(air_contents.temperature > PHORON_MINIMUM_BURN_TEMPERATURE)
|
|
||||||
var/exhaust_dir = reverse_direction(dir)
|
|
||||||
var/turf/T = get_step(src,exhaust_dir)
|
|
||||||
if(T)
|
|
||||||
new/obj/effect/engine_exhaust(T,exhaust_dir,air_contents.temperature)
|
|
||||||
return 1
|
|
||||||
|
|
||||||
//Exhaust effect
|
|
||||||
/obj/effect/engine_exhaust
|
|
||||||
name = "engine exhaust"
|
|
||||||
icon = 'icons/effects/effects.dmi'
|
|
||||||
icon_state = "exhaust"
|
|
||||||
anchored = 1
|
|
||||||
|
|
||||||
New(var/turf/nloc, var/ndir, var/temp)
|
|
||||||
set_dir(ndir)
|
|
||||||
..(nloc)
|
|
||||||
|
|
||||||
if(nloc)
|
|
||||||
nloc.hotspot_expose(temp,125)
|
|
||||||
|
|
||||||
spawn(20)
|
|
||||||
loc = null
|
|
||||||
BIN
icons/turf/shuttle_parts64.dmi
Normal file
BIN
icons/turf/shuttle_parts64.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
BIN
icons/turf/shuttle_parts96.dmi
Normal file
BIN
icons/turf/shuttle_parts96.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 23 KiB |
@@ -5559,13 +5559,6 @@
|
|||||||
},
|
},
|
||||||
/turf/simulated/wall/rshull,
|
/turf/simulated/wall/rshull,
|
||||||
/area/talon/deckone/port_eng)
|
/area/talon/deckone/port_eng)
|
||||||
"ka" = (
|
|
||||||
/obj/machinery/atmospherics/pipe/manifold/hidden/fuel{
|
|
||||||
icon_state = "map-fuel";
|
|
||||||
dir = 1
|
|
||||||
},
|
|
||||||
/turf/simulated/wall/rshull,
|
|
||||||
/area/talon/deckone/port_eng)
|
|
||||||
"kb" = (
|
"kb" = (
|
||||||
/obj/machinery/atmospherics/pipe/simple/hidden/fuel{
|
/obj/machinery/atmospherics/pipe/simple/hidden/fuel{
|
||||||
icon_state = "intact-fuel";
|
icon_state = "intact-fuel";
|
||||||
@@ -5602,17 +5595,17 @@
|
|||||||
/turf/simulated/wall/rshull,
|
/turf/simulated/wall/rshull,
|
||||||
/area/talon/deckone/starboard_eng)
|
/area/talon/deckone/starboard_eng)
|
||||||
"kg" = (
|
"kg" = (
|
||||||
/obj/machinery/atmospherics/pipe/manifold/hidden/fuel{
|
/obj/machinery/atmospherics/pipe/simple/hidden/fuel{
|
||||||
icon_state = "map-fuel";
|
icon_state = "intact-fuel";
|
||||||
dir = 4
|
dir = 9
|
||||||
},
|
},
|
||||||
/turf/simulated/wall/rshull,
|
/turf/simulated/wall/rshull,
|
||||||
/area/talon/deckone/starboard_eng)
|
/area/talon/deckone/starboard_eng)
|
||||||
"kh" = (
|
"kh" = (
|
||||||
/obj/machinery/atmospherics/unary/engine{
|
/obj/effect/floor_decal/industrial/warning/dust{
|
||||||
dir = 1
|
dir = 9
|
||||||
},
|
},
|
||||||
/turf/space,
|
/turf/simulated/floor/reinforced/airless,
|
||||||
/area/talon/deckone/port_eng)
|
/area/talon/deckone/port_eng)
|
||||||
"ki" = (
|
"ki" = (
|
||||||
/obj/machinery/door/blast/regular{
|
/obj/machinery/door/blast/regular{
|
||||||
@@ -5623,10 +5616,10 @@
|
|||||||
/turf/simulated/floor/plating,
|
/turf/simulated/floor/plating,
|
||||||
/area/talon/deckone/central_hallway)
|
/area/talon/deckone/central_hallway)
|
||||||
"kj" = (
|
"kj" = (
|
||||||
/obj/machinery/atmospherics/unary/engine{
|
/obj/effect/floor_decal/industrial/warning/dust{
|
||||||
dir = 1
|
dir = 9
|
||||||
},
|
},
|
||||||
/turf/space,
|
/turf/simulated/floor/reinforced/airless,
|
||||||
/area/talon/deckone/starboard_eng)
|
/area/talon/deckone/starboard_eng)
|
||||||
"kk" = (
|
"kk" = (
|
||||||
/obj/structure/catwalk,
|
/obj/structure/catwalk,
|
||||||
@@ -6619,6 +6612,9 @@
|
|||||||
/obj/item/clothing/accessory/holster/waist,
|
/obj/item/clothing/accessory/holster/waist,
|
||||||
/turf/simulated/floor/tiled/dark,
|
/turf/simulated/floor/tiled/dark,
|
||||||
/area/talon/deckone/armory)
|
/area/talon/deckone/armory)
|
||||||
|
"yg" = (
|
||||||
|
/turf/space,
|
||||||
|
/area/talon/deckone/starboard_eng)
|
||||||
"ym" = (
|
"ym" = (
|
||||||
/obj/structure/grille,
|
/obj/structure/grille,
|
||||||
/obj/structure/window/reinforced/full,
|
/obj/structure/window/reinforced/full,
|
||||||
@@ -6910,6 +6906,12 @@
|
|||||||
},
|
},
|
||||||
/turf/simulated/floor/tiled/steel,
|
/turf/simulated/floor/tiled/steel,
|
||||||
/area/talon/deckone/secure_storage)
|
/area/talon/deckone/secure_storage)
|
||||||
|
"GP" = (
|
||||||
|
/obj/effect/floor_decal/industrial/warning/dust{
|
||||||
|
dir = 5
|
||||||
|
},
|
||||||
|
/turf/simulated/floor/reinforced/airless,
|
||||||
|
/area/talon/deckone/starboard_eng)
|
||||||
"Hb" = (
|
"Hb" = (
|
||||||
/obj/structure/catwalk,
|
/obj/structure/catwalk,
|
||||||
/turf/space,
|
/turf/space,
|
||||||
@@ -6955,6 +6957,12 @@
|
|||||||
},
|
},
|
||||||
/turf/simulated/floor/reinforced/airless,
|
/turf/simulated/floor/reinforced/airless,
|
||||||
/area/talon/maintenance/deckone_starboard_aft_wing)
|
/area/talon/maintenance/deckone_starboard_aft_wing)
|
||||||
|
"JI" = (
|
||||||
|
/obj/effect/floor_decal/industrial/warning/dust{
|
||||||
|
dir = 5
|
||||||
|
},
|
||||||
|
/turf/simulated/floor/reinforced/airless,
|
||||||
|
/area/talon/deckone/port_eng)
|
||||||
"JJ" = (
|
"JJ" = (
|
||||||
/obj/effect/floor_decal/industrial/warning/dust/corner{
|
/obj/effect/floor_decal/industrial/warning/dust/corner{
|
||||||
dir = 8
|
dir = 8
|
||||||
@@ -7200,6 +7208,12 @@
|
|||||||
},
|
},
|
||||||
/turf/simulated/floor/reinforced/airless,
|
/turf/simulated/floor/reinforced/airless,
|
||||||
/area/talon/maintenance/deckone_starboard_fore_wing)
|
/area/talon/maintenance/deckone_starboard_fore_wing)
|
||||||
|
"OS" = (
|
||||||
|
/obj/machinery/atmospherics/unary/engine/bigger{
|
||||||
|
dir = 1
|
||||||
|
},
|
||||||
|
/turf/space,
|
||||||
|
/area/talon/deckone/port_eng)
|
||||||
"Pi" = (
|
"Pi" = (
|
||||||
/obj/structure/catwalk,
|
/obj/structure/catwalk,
|
||||||
/turf/space,
|
/turf/space,
|
||||||
@@ -7216,6 +7230,12 @@
|
|||||||
},
|
},
|
||||||
/turf/simulated/floor/tiled/techmaint,
|
/turf/simulated/floor/tiled/techmaint,
|
||||||
/area/talon/deckone/workroom)
|
/area/talon/deckone/workroom)
|
||||||
|
"QJ" = (
|
||||||
|
/obj/machinery/atmospherics/unary/engine/bigger{
|
||||||
|
dir = 1
|
||||||
|
},
|
||||||
|
/turf/space,
|
||||||
|
/area/talon/deckone/starboard_eng)
|
||||||
"Rc" = (
|
"Rc" = (
|
||||||
/obj/effect/floor_decal/industrial/warning/dust{
|
/obj/effect/floor_decal/industrial/warning/dust{
|
||||||
dir = 4
|
dir = 4
|
||||||
@@ -7249,6 +7269,9 @@
|
|||||||
},
|
},
|
||||||
/turf/simulated/floor/reinforced/airless,
|
/turf/simulated/floor/reinforced/airless,
|
||||||
/area/talon/maintenance/deckone_starboard_aft_wing)
|
/area/talon/maintenance/deckone_starboard_aft_wing)
|
||||||
|
"SX" = (
|
||||||
|
/turf/space,
|
||||||
|
/area/talon/deckone/port_eng)
|
||||||
"TP" = (
|
"TP" = (
|
||||||
/obj/structure/cable/green{
|
/obj/structure/cable/green{
|
||||||
d1 = 1;
|
d1 = 1;
|
||||||
@@ -15811,7 +15834,7 @@ jL
|
|||||||
jS
|
jS
|
||||||
jZ
|
jZ
|
||||||
kh
|
kh
|
||||||
aa
|
OS
|
||||||
aa
|
aa
|
||||||
aa
|
aa
|
||||||
aa
|
aa
|
||||||
@@ -15951,9 +15974,9 @@ js
|
|||||||
jB
|
jB
|
||||||
jM
|
jM
|
||||||
jT
|
jT
|
||||||
ka
|
kb
|
||||||
kh
|
JI
|
||||||
aa
|
SX
|
||||||
aa
|
aa
|
||||||
aa
|
aa
|
||||||
aa
|
aa
|
||||||
@@ -16235,9 +16258,9 @@ ju
|
|||||||
jC
|
jC
|
||||||
jM
|
jM
|
||||||
jT
|
jT
|
||||||
ka
|
kc
|
||||||
kh
|
kh
|
||||||
aa
|
OS
|
||||||
aa
|
aa
|
||||||
aa
|
aa
|
||||||
aa
|
aa
|
||||||
@@ -16377,9 +16400,9 @@ iL
|
|||||||
jD
|
jD
|
||||||
jN
|
jN
|
||||||
Xi
|
Xi
|
||||||
kc
|
ji
|
||||||
kh
|
JI
|
||||||
aa
|
SX
|
||||||
aa
|
aa
|
||||||
aa
|
aa
|
||||||
aa
|
aa
|
||||||
@@ -18367,7 +18390,7 @@ jO
|
|||||||
Im
|
Im
|
||||||
kd
|
kd
|
||||||
kj
|
kj
|
||||||
aa
|
QJ
|
||||||
aa
|
aa
|
||||||
aa
|
aa
|
||||||
aa
|
aa
|
||||||
@@ -18507,9 +18530,9 @@ jv
|
|||||||
jG
|
jG
|
||||||
jP
|
jP
|
||||||
jW
|
jW
|
||||||
ke
|
kf
|
||||||
kj
|
GP
|
||||||
aa
|
yg
|
||||||
aa
|
aa
|
||||||
aa
|
aa
|
||||||
aa
|
aa
|
||||||
@@ -18793,7 +18816,7 @@ jP
|
|||||||
jW
|
jW
|
||||||
ke
|
ke
|
||||||
kj
|
kj
|
||||||
aa
|
QJ
|
||||||
aa
|
aa
|
||||||
aa
|
aa
|
||||||
aa
|
aa
|
||||||
@@ -18934,8 +18957,8 @@ jI
|
|||||||
jQ
|
jQ
|
||||||
jX
|
jX
|
||||||
kg
|
kg
|
||||||
kj
|
GP
|
||||||
aa
|
yg
|
||||||
aa
|
aa
|
||||||
aa
|
aa
|
||||||
aa
|
aa
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
assignable = FALSE
|
assignable = FALSE
|
||||||
visible = FALSE
|
visible = FALSE
|
||||||
|
|
||||||
/datum/job/talon/captain
|
/datum/job/talon_captain
|
||||||
title = "Talon Captain"
|
title = "Talon Captain"
|
||||||
flag = TALCAP
|
flag = TALCAP
|
||||||
department_flag = TALON
|
department_flag = TALON
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
access = list(access_talon)
|
access = list(access_talon)
|
||||||
minimal_access = list(access_talon)
|
minimal_access = list(access_talon)
|
||||||
|
|
||||||
/datum/job/talon/doctor
|
/datum/job/talon_doctor
|
||||||
title = "Talon Doctor"
|
title = "Talon Doctor"
|
||||||
flag = TALDOC
|
flag = TALDOC
|
||||||
department_flag = TALON
|
department_flag = TALON
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
access = list(access_talon)
|
access = list(access_talon)
|
||||||
minimal_access = list(access_talon)
|
minimal_access = list(access_talon)
|
||||||
|
|
||||||
/datum/job/talon/engineer
|
/datum/job/talon_engineer
|
||||||
title = "Talon Engineer"
|
title = "Talon Engineer"
|
||||||
flag = TALENG
|
flag = TALENG
|
||||||
department_flag = TALON
|
department_flag = TALON
|
||||||
@@ -69,7 +69,7 @@
|
|||||||
access = list(access_talon)
|
access = list(access_talon)
|
||||||
minimal_access = list(access_talon)
|
minimal_access = list(access_talon)
|
||||||
|
|
||||||
/datum/job/talon/pilot
|
/datum/job/talon_pilot
|
||||||
title = "Talon Pilot"
|
title = "Talon Pilot"
|
||||||
flag = TALPIL
|
flag = TALPIL
|
||||||
department_flag = TALON
|
department_flag = TALON
|
||||||
@@ -89,7 +89,7 @@
|
|||||||
access = list(access_talon)
|
access = list(access_talon)
|
||||||
minimal_access = list(access_talon)
|
minimal_access = list(access_talon)
|
||||||
|
|
||||||
/datum/job/talon/guard
|
/datum/job/talon_guard
|
||||||
title = "Talon Guard"
|
title = "Talon Guard"
|
||||||
flag = TALSEC
|
flag = TALSEC
|
||||||
department_flag = TALON
|
department_flag = TALON
|
||||||
|
|||||||
@@ -2931,6 +2931,7 @@
|
|||||||
#include "code\modules\overmap\ships\computers\shuttle.dm"
|
#include "code\modules\overmap\ships\computers\shuttle.dm"
|
||||||
#include "code\modules\overmap\ships\engines\engine.dm"
|
#include "code\modules\overmap\ships\engines\engine.dm"
|
||||||
#include "code\modules\overmap\ships\engines\gas_thruster.dm"
|
#include "code\modules\overmap\ships\engines\gas_thruster.dm"
|
||||||
|
#include "code\modules\overmap\ships\engines\gas_thruster_vr.dm"
|
||||||
#include "code\modules\overmap\ships\engines\ion_thruster.dm"
|
#include "code\modules\overmap\ships\engines\ion_thruster.dm"
|
||||||
#include "code\modules\paperwork\adminpaper.dm"
|
#include "code\modules\paperwork\adminpaper.dm"
|
||||||
#include "code\modules\paperwork\carbonpaper.dm"
|
#include "code\modules\paperwork\carbonpaper.dm"
|
||||||
|
|||||||
Reference in New Issue
Block a user