mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 18:53:06 +00:00
[MIRROR] Improved/Buildable Fighter Exosuits (#9801)
Co-authored-by: Aroliacue <96730930+Aroliacue@users.noreply.github.com> Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
ed79946ade
commit
61b1ac947a
@@ -35,10 +35,16 @@
|
||||
#define EXOSUIT_MODULE_DURAND (1<<3)
|
||||
/// Module is compatible with Phazon Exosuit models
|
||||
#define EXOSUIT_MODULE_PHAZON (1<<4)
|
||||
/// Module is compatible with Pinnace Fighter models
|
||||
#define EXOSUIT_MODULE_PINNACE (1<<5)
|
||||
/// Module is compatible with Baron Fighter models
|
||||
#define EXOSUIT_MODULE_BARON (1<<6)
|
||||
|
||||
/// Module is compatible with "Working" Exosuit models - Ripley
|
||||
#define EXOSUIT_MODULE_WORKING EXOSUIT_MODULE_RIPLEY
|
||||
/// Module is compatible with "Combat" Exosuit models - Gygax, Durand and Phazon
|
||||
#define EXOSUIT_MODULE_COMBAT EXOSUIT_MODULE_GYGAX | EXOSUIT_MODULE_DURAND | EXOSUIT_MODULE_PHAZON
|
||||
/// Module is compatible with "Medical" Exosuit modelsm - Odysseus
|
||||
/// Module is compatible with "Medical" Exosuit models - Odysseus
|
||||
#define EXOSUIT_MODULE_MEDICAL EXOSUIT_MODULE_ODYSSEUS
|
||||
/// Module is compatible with "Fighter" Exosuit models - Pinnace, Baron
|
||||
#define EXOSUIT_MODULE_FIGHTER EXOSUIT_MODULE_PINNACE | EXOSUIT_MODULE_BARON
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
desc = "The base type of fightercraft. Don't spawn this one!"
|
||||
|
||||
var/datum/effect/effect/system/ion_trail_follow/ion_trail
|
||||
var/stabilization_enabled = TRUE //If our anti-space-drift is on
|
||||
var/landing_gear_raised = FALSE //If our landing gear for safely crossing ground turfs is on.
|
||||
var/ground_capable = FALSE //If we can fly over normal turfs and not just space
|
||||
|
||||
icon = 'icons/mecha/fighters64x64.dmi' //See ATTRIBUTIONS.md for details on license
|
||||
@@ -27,8 +27,8 @@
|
||||
|
||||
wreckage = /obj/effect/decal/mecha_wreckage/gunpod
|
||||
|
||||
stomp_sound = 'sound/machines/generator/generator_end.ogg'
|
||||
swivel_sound = 'sound/machines/hiss.ogg'
|
||||
stomp_sound = 'sound/mecha/fighter/engine_mid_fighter_move.ogg'
|
||||
swivel_sound = 'sound/mecha/fighter/engine_mid_boost_01.ogg'
|
||||
|
||||
bound_height = 64
|
||||
bound_width = 64
|
||||
@@ -135,17 +135,17 @@
|
||||
//Modified phazon code
|
||||
/obj/mecha/combat/fighter/Topic(href, href_list)
|
||||
..()
|
||||
if (href_list["toggle_stabilization"])
|
||||
stabilization_enabled = !stabilization_enabled
|
||||
send_byjax(src.occupant,"exosuit.browser","stabilization_command","[stabilization_enabled?"Dis":"En"]able thruster stabilization")
|
||||
src.occupant_message(span_notice("Thruster stabilization [stabilization_enabled? "enabled" : "disabled"]."))
|
||||
if (href_list["toggle_landing_gear"])
|
||||
landing_gear_raised = !landing_gear_raised
|
||||
send_byjax(src.occupant,"exosuit.browser","landing_gear_command","[landing_gear_raised?"Lower":"Raise"] landing gear")
|
||||
src.occupant_message(span_notice("Landing gear [landing_gear_raised? "raised" : "lowered"]."))
|
||||
return
|
||||
|
||||
/obj/mecha/combat/fighter/get_commands()
|
||||
var/output = {"<div class='wr'>
|
||||
<div class='header'>Special</div>
|
||||
<div class='links'>
|
||||
<a href='byond://?src=\ref[src];toggle_stabilization=1'><span id="stabilization_command">[stabilization_enabled?"Dis":"En"]able thruster stabilization</span></a><br>
|
||||
<a href='byond://?src=\ref[src];toggle_landing_gear=1'><span id="landing_gear_command">[landing_gear_raised?"Raise":"Lower"] landing gear</span></a><br>
|
||||
</div>
|
||||
</div>
|
||||
"}
|
||||
@@ -153,22 +153,28 @@
|
||||
return output
|
||||
|
||||
/obj/mecha/combat/fighter/can_ztravel()
|
||||
return (stabilization_enabled && has_charge(step_energy_drain))
|
||||
return (landing_gear_raised && has_charge(step_energy_drain))
|
||||
|
||||
// No space drifting
|
||||
// This doesnt work but I actually dont want it to anyways, so I'm not touching it at all. Space drifting is cool.
|
||||
/obj/mecha/combat/fighter/check_for_support()
|
||||
if (stabilization_enabled)
|
||||
if (landing_gear_raised)
|
||||
return 1
|
||||
|
||||
return ..()
|
||||
|
||||
// No falling if we've got our boosters on
|
||||
/obj/mecha/combat/fighter/can_fall()
|
||||
return (stabilization_enabled && has_charge(step_energy_drain))
|
||||
if(landing_gear_raised && has_charge(step_energy_drain))
|
||||
return FALSE
|
||||
else
|
||||
return TRUE
|
||||
|
||||
/obj/mecha/combat/fighter/proc/consider_gravity(var/moved = FALSE)
|
||||
var/gravity = get_gravity()
|
||||
if(gravity && ground_capable && occupant)
|
||||
if (gravity && !landing_gear_raised)
|
||||
playsound(src, 'sound/effects/roll.ogg', 50, 1)
|
||||
else if(gravity && ground_capable && occupant)
|
||||
start_hover()
|
||||
else if((!gravity && ground_capable) || !occupant)
|
||||
stop_hover()
|
||||
@@ -177,6 +183,11 @@
|
||||
take_damage(NOGRAV_FIGHTER_DAMAGE, "brute")
|
||||
playsound(src, 'sound/effects/grillehit.ogg', 50, 1)
|
||||
|
||||
/obj/mecha/combat/fighter/get_step_delay()
|
||||
. = ..()
|
||||
if(get_gravity() && !landing_gear_raised)
|
||||
. += 4
|
||||
|
||||
/obj/mecha/combat/fighter/handle_equipment_movement()
|
||||
. = ..()
|
||||
consider_gravity(TRUE)
|
||||
@@ -202,7 +213,7 @@
|
||||
animate(src, pixel_y = old_y, time = 5, easing = SINE_EASING | EASE_IN) //halt animation
|
||||
|
||||
/obj/mecha/combat/fighter/check_for_support()
|
||||
if (has_charge(step_energy_drain) && stabilization_enabled)
|
||||
if (has_charge(step_energy_drain) && landing_gear_raised)
|
||||
return 1
|
||||
|
||||
var/list/things = orange(1, src)
|
||||
@@ -241,7 +252,7 @@
|
||||
var/image/stripe1_overlay
|
||||
var/image/stripe2_overlay
|
||||
|
||||
/obj/mecha/combat/fighter/gunpod/loaded/Initialize() //Loaded version with gans
|
||||
/obj/mecha/combat/fighter/gunpod/loaded/Initialize() //Loaded version with guns
|
||||
. = ..()
|
||||
var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser
|
||||
ME.attach(src)
|
||||
@@ -313,7 +324,7 @@
|
||||
|
||||
ground_capable = FALSE
|
||||
|
||||
/obj/mecha/combat/fighter/baron/loaded/Initialize() //Loaded version with gans
|
||||
/obj/mecha/combat/fighter/baron/loaded/Initialize() //Loaded version with guns
|
||||
. = ..()
|
||||
var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser
|
||||
ME.attach(src)
|
||||
@@ -350,7 +361,7 @@
|
||||
|
||||
ground_capable = FALSE
|
||||
|
||||
/obj/mecha/combat/fighter/scoralis/loaded/Initialize() //Loaded version with gans
|
||||
/obj/mecha/combat/fighter/scoralis/loaded/Initialize() //Loaded version with guns
|
||||
. = ..()
|
||||
var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg
|
||||
ME.attach(src)
|
||||
@@ -389,7 +400,7 @@
|
||||
health = 500
|
||||
maxhealth = 500
|
||||
|
||||
/obj/mecha/combat/fighter/allure/loaded/Initialize() //Loaded version with gans
|
||||
/obj/mecha/combat/fighter/allure/loaded/Initialize() //Loaded version with guns
|
||||
. = ..()
|
||||
var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/cloak
|
||||
ME.attach(src)
|
||||
@@ -429,7 +440,7 @@
|
||||
|
||||
ground_capable = TRUE
|
||||
|
||||
/obj/mecha/combat/fighter/pinnace/loaded/Initialize() //Loaded version with gans
|
||||
/obj/mecha/combat/fighter/pinnace/loaded/Initialize() //Loaded version with guns
|
||||
. = ..()
|
||||
var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/tool/passenger
|
||||
ME.attach(src)
|
||||
|
||||
@@ -68,6 +68,8 @@
|
||||
"Vehicle",
|
||||
"Rigsuit",
|
||||
"Phazon",
|
||||
"Pinnace",
|
||||
"Baron",
|
||||
//"Gopher", // VOREStation Add //CHOMPedit commented micromech stuff, because fuck this trash
|
||||
//"Polecat", // VOREStation Add //CHOMPedit commented micromech stuff, because fuck this trash
|
||||
//"Weasel", // VOREStation Add //CHOMPedit commented micromech stuff, because fuck this trash
|
||||
@@ -184,6 +186,10 @@
|
||||
category_override += "Durand"
|
||||
if(mech_types & EXOSUIT_MODULE_PHAZON)
|
||||
category_override += "Phazon"
|
||||
if(mech_types & EXOSUIT_MODULE_PINNACE)
|
||||
category_override += "Pinnace"
|
||||
if(mech_types & EXOSUIT_MODULE_BARON)
|
||||
category_override += "Baron"
|
||||
|
||||
var/list/part = list(
|
||||
"name" = D.name,
|
||||
|
||||
@@ -49,6 +49,8 @@
|
||||
"Vehicle",
|
||||
"Rigsuit",
|
||||
"Phazon",
|
||||
"Pinnace",
|
||||
"Baron",
|
||||
//"Gopher", // VOREStation Add //CHOMPedit commented micromech stuff, because fuck this trash
|
||||
//"Polecat", // VOREStation Add //CHOMPedit commented micromech stuff, because fuck this trash
|
||||
//"Weasel", // VOREStation Add //CHOMPedit commented micromech stuff, because fuck this trash
|
||||
|
||||
@@ -2132,3 +2132,571 @@
|
||||
..()
|
||||
feedback_inc("mecha_janus_created",1)
|
||||
return
|
||||
|
||||
//Fighters
|
||||
|
||||
//////////////////////
|
||||
// Pinnace
|
||||
//////////////////////
|
||||
/datum/construction/mecha/fighter/pinnace_chassis
|
||||
result = "/obj/mecha/combat/fighter/pinnace"
|
||||
steps = list(list("key"=/obj/item/mecha_parts/fighter/part/pinnace_core),//1
|
||||
list("key"=/obj/item/mecha_parts/fighter/part/pinnace_cockpit),//2
|
||||
list("key"=/obj/item/mecha_parts/fighter/part/pinnace_main_engine),//3
|
||||
list("key"=/obj/item/mecha_parts/fighter/part/pinnace_left_engine),//4
|
||||
list("key"=/obj/item/mecha_parts/fighter/part/pinnace_right_engine),//5
|
||||
list("key"=/obj/item/mecha_parts/fighter/part/pinnace_left_wing),//6
|
||||
list("key"=/obj/item/mecha_parts/fighter/part/pinnace_right_wing)//final
|
||||
)
|
||||
|
||||
/datum/construction/mecha/fighter/pinnace_chassis/custom_action(step, obj/item/I, mob/user)
|
||||
user.visible_message("[user] has connected [I] to [holder].", "You connect [I] to [holder]")
|
||||
holder.add_overlay("[I.icon_state]+o")
|
||||
qdel(I)
|
||||
return 1
|
||||
|
||||
/datum/construction/mecha/fighter/pinnace_chassis/action(obj/item/I,mob/user as mob)
|
||||
return check_all_steps(I,user)
|
||||
|
||||
/datum/construction/mecha/fighter/pinnace_chassis/spawn_result()
|
||||
var/obj/item/mecha_parts/chassis/const_holder = holder
|
||||
const_holder.construct = new /datum/construction/reversible/mecha/fighter/pinnace(const_holder)
|
||||
const_holder.icon = 'icons/mecha/fighters_construction64x64.dmi'
|
||||
const_holder.icon_state = "pinnace0"
|
||||
const_holder.density = 1
|
||||
spawn()
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/datum/construction/reversible/mecha/fighter/pinnace
|
||||
result = "/obj/mecha/combat/fighter/pinnace"
|
||||
steps = list(
|
||||
//1
|
||||
list("key"=/obj/item/weldingtool,
|
||||
"backkey"=IS_WRENCH,
|
||||
"desc"="External armor is bolted into place."),
|
||||
//2
|
||||
list("key"=IS_WRENCH,
|
||||
"backkey"=IS_CROWBAR,
|
||||
"desc"="External armor is installed."),
|
||||
//3
|
||||
list("key"=/obj/item/stack/material/plasteel,
|
||||
"backkey"=/obj/item/weldingtool,
|
||||
"desc"="The internal armor is welded into place."),
|
||||
//4
|
||||
list("key"=/obj/item/weldingtool,
|
||||
"backkey"=IS_WRENCH,
|
||||
"desc"="The internal armor is bolted into place."),
|
||||
//5
|
||||
list("key"=IS_WRENCH,
|
||||
"backkey"=IS_CROWBAR,
|
||||
"desc"="The internal armor is installed."),
|
||||
//6
|
||||
list("key"=/obj/item/stack/material/steel,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="The manual flight control instruments are secured."),
|
||||
//7
|
||||
list("key"=IS_SCREWDRIVER,
|
||||
"backkey"=IS_CROWBAR,
|
||||
"desc"="The manual flight control instruments are installed."),
|
||||
//8
|
||||
list("key"=/obj/item/circuitboard/mecha/fighter/pinnace/cockpitboard,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="The advanced capacitor is secured."),
|
||||
//9
|
||||
list("key"=IS_SCREWDRIVER,
|
||||
"backkey"=IS_CROWBAR,
|
||||
"desc"="The advanced capacitor is installed."),
|
||||
//10
|
||||
list("key"=/obj/item/stock_parts/capacitor/adv,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="The targeting module is secured."),
|
||||
//11
|
||||
list("key"=IS_SCREWDRIVER,
|
||||
"backkey"=IS_CROWBAR,
|
||||
"desc"="The targeting module is installed."),
|
||||
//12
|
||||
list("key"=/obj/item/circuitboard/mecha/fighter/pinnace/targeting,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="The flight control module is secured."),
|
||||
//13
|
||||
list("key"=IS_SCREWDRIVER,
|
||||
"backkey"=IS_CROWBAR,
|
||||
"desc"="The flight control module is installed."),
|
||||
//14
|
||||
list("key"=/obj/item/circuitboard/mecha/fighter/pinnace/flight,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="The central control module is secured."),
|
||||
//15
|
||||
list("key"=IS_SCREWDRIVER,
|
||||
"backkey"=IS_CROWBAR,
|
||||
"desc"="The central control module is installed."),
|
||||
//16
|
||||
list("key"=/obj/item/circuitboard/mecha/fighter/pinnace/main,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="The internal wiring is adjusted."),
|
||||
//17
|
||||
list("key"=/obj/item/tool/wirecutters,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="The internal wiring is added."),
|
||||
//18
|
||||
list("key"=/obj/item/stack/cable_coil,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="The hydraulic landing gear are deployed."),
|
||||
//19
|
||||
list("key"=IS_SCREWDRIVER,
|
||||
"backkey"=IS_WRENCH,
|
||||
"desc"="The hydraulic landing gear are attached."),
|
||||
//20
|
||||
list("key"=IS_WRENCH,
|
||||
"desc"="The hydraulic landing gear are detached.")
|
||||
)
|
||||
|
||||
/datum/construction/reversible/mecha/fighter/pinnace/action(obj/item/I,mob/user as mob)
|
||||
return check_step(I,user)
|
||||
|
||||
/datum/construction/reversible/mecha/fighter/pinnace/custom_action(index, diff, obj/item/I, mob/user)
|
||||
if(!..())
|
||||
return 0
|
||||
|
||||
switch(index)
|
||||
if(20)
|
||||
user.visible_message("[user] attaches [holder]'s hydraulic landing gear.", "You attach [holder]'s hydraulic landing gear.")
|
||||
holder.icon_state = "pinnace1"
|
||||
if(19)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] deploys [holder]'s hydraulic landing gear.", "You deploy [holder]'s hydraulic landing gear.")
|
||||
holder.icon_state = "pinnace2"
|
||||
else
|
||||
user.visible_message("[user] removes [holder]'s hydraulic landing gear.", "You remove [holder]'s hydraulic landing gear.")
|
||||
holder.icon_state = "pinnace0"
|
||||
if(18)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] adds the internal wiring to [holder].", "You add the internal wiring to [holder].")
|
||||
holder.icon_state = "pinnace3"
|
||||
else
|
||||
user.visible_message("[user] retracts [holder]'s hydraulic landing gear.", "You retract [holder]'s hydraulic landing gear.")
|
||||
holder.icon_state = "pinnace1"
|
||||
if(17)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] adjusts the internal wiring of [holder].", "You adjust the internal wiring of [holder].")
|
||||
holder.icon_state = "pinnace4"
|
||||
else
|
||||
user.visible_message("[user] removes the internal wiring from [holder].", "You remove the internal wiring from [holder].")
|
||||
var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder))
|
||||
coil.amount = 4
|
||||
holder.icon_state = "pinnace2"
|
||||
if(16)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the central control module into [holder].", "You install the central control module into [holder].")
|
||||
qdel(I)
|
||||
holder.icon_state = "pinnace5"
|
||||
else
|
||||
user.visible_message("[user] disconnects the wiring of [holder].", "You disconnect the wiring of [holder].")
|
||||
holder.icon_state = "pinnace3"
|
||||
if(15)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the central control module.", "You secure the central control module.")
|
||||
holder.icon_state = "pinnace6"
|
||||
else
|
||||
user.visible_message("[user] removes the central control module from [holder].", "You remove the central control module from [holder].")
|
||||
new /obj/item/circuitboard/mecha/fighter/pinnace/main(get_turf(holder))
|
||||
holder.icon_state = "pinnace4"
|
||||
if(14)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the flight control module into [holder].", "You install the flight control module into [holder].")
|
||||
qdel(I)
|
||||
holder.icon_state = "pinnace7"
|
||||
else
|
||||
user.visible_message("[user] unfastens the central control module.", "You unfasten the central control module.")
|
||||
holder.icon_state = "pinnace5"
|
||||
if(13)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the flight control module.", "You secure the flight control module.")
|
||||
holder.icon_state = "pinnace8"
|
||||
else
|
||||
user.visible_message("[user] removes the flight control module from [holder].", "You remove the flight control module from [holder].")
|
||||
new /obj/item/circuitboard/mecha/fighter/pinnace/flight(get_turf(holder))
|
||||
holder.icon_state = "pinnace6"
|
||||
if(12)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the targeting control module into [holder].", "You install the targeting control module into [holder].")
|
||||
qdel(I)
|
||||
holder.icon_state = "pinnace9"
|
||||
else
|
||||
user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.")
|
||||
holder.icon_state = "pinnace7"
|
||||
if(11)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the targeting control module.", "You secure the targeting control module.")
|
||||
holder.icon_state = "pinnace10"
|
||||
else
|
||||
user.visible_message("[user] removes the targeting control module from [holder].", "You remove the targeting control module from [holder].")
|
||||
new /obj/item/circuitboard/mecha/fighter/pinnace/targeting(get_turf(holder))
|
||||
holder.icon_state = "pinnace8"
|
||||
if(10)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the advanced capacitor into [holder].", "You install the advanced capacitor into [holder].")
|
||||
qdel(I)
|
||||
holder.icon_state = "pinnace11"
|
||||
else
|
||||
user.visible_message("[user] unfastens the targeting control module.", "You unfasten the targeting control module.")
|
||||
holder.icon_state = "pinnace9"
|
||||
if(9)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the advanced capacitor.", "You secure the advanced capacitor.")
|
||||
holder.icon_state = "pinnace12"
|
||||
else
|
||||
user.visible_message("[user] removes the advanced capacitor from [holder].", "You remove the advanced capacitor from [holder].")
|
||||
new /obj/item/stock_parts/capacitor/adv(get_turf(holder))
|
||||
holder.icon_state = "pinnace10"
|
||||
if(8)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the manual flight controls to [holder].", "You install the manual flight controls to [holder].")
|
||||
qdel(I)
|
||||
holder.icon_state = "pinnace13"
|
||||
else
|
||||
user.visible_message("[user] unfastens the advanced capacitor.", "You unfasten the advanced capacitor.")
|
||||
holder.icon_state = "pinnace11"
|
||||
if(7)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the manual flight controls.", "You secure the manual flight controls.")
|
||||
holder.icon_state = "pinnace14"
|
||||
else
|
||||
user.visible_message("[user] removes the manual flight controls from [holder].", "You remove the manual flight controls from [holder].")
|
||||
new /obj/item/circuitboard/mecha/fighter/pinnace/cockpitboard(get_turf(holder))
|
||||
holder.icon_state = "pinnace12"
|
||||
if(6)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the internal armor layer to [holder].", "You install the internal armor layer to [holder].")
|
||||
holder.icon_state = "pinnace19"
|
||||
else
|
||||
user.visible_message("[user] unfastens the manual flight controls.", "You unfasten the manual flight controls.")
|
||||
holder.icon_state = "pinnace13"
|
||||
if(5)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] bolts the internal armor layer.", "You bolt the internal armor layer.")
|
||||
holder.icon_state = "pinnace20"
|
||||
else
|
||||
user.visible_message("[user] pries the internal armor layer from [holder].", "You pry the internal armor layer from [holder].")
|
||||
var/obj/item/stack/material/steel/MS = new /obj/item/stack/material/steel(get_turf(holder))
|
||||
MS.amount = 5
|
||||
holder.icon_state = "pinnace14"
|
||||
if(4)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] welds the internal armor layer into place on [holder].", "You weld the internal armor layer into place on [holder].")
|
||||
holder.icon_state = "pinnace21"
|
||||
else
|
||||
user.visible_message("[user] unbolt the internal armor layer.", "You unbolt the internal armor layer.")
|
||||
holder.icon_state = "pinnace19"
|
||||
if(3)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the external reinforced armor layer to [holder].", "You install the external reinforced armor layer to [holder].")
|
||||
holder.icon_state = "pinnace22"
|
||||
else
|
||||
user.visible_message("[user] cuts internal armor layer from [holder].", "You cut the internal armor layer from [holder].")
|
||||
holder.icon_state = "pinnace20"
|
||||
if(2)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] bolts external armor layer.", "You bolt external reinforced armor layer.")
|
||||
holder.icon_state = "pinnace23"
|
||||
else
|
||||
user.visible_message("[user] pries the external armor layer from [holder].", "You pry external armor layer from [holder].")
|
||||
var/obj/item/stack/material/plasteel/MS = new /obj/item/stack/material/plasteel(get_turf(holder))
|
||||
MS.amount = 5
|
||||
holder.icon_state = "pinnace21"
|
||||
if(1)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] welds the external armor layer to [holder].", "You weld the external armor layer to [holder].")
|
||||
else
|
||||
user.visible_message("[user] unbolts the external armor layer.", "You unbolt the external armor layer.")
|
||||
holder.icon_state = "pinnace22"
|
||||
return 1
|
||||
|
||||
/datum/construction/reversible/mecha/fighter/pinnace/spawn_result()
|
||||
..()
|
||||
feedback_inc("mecha_fighter_pinnace_created",1)
|
||||
return
|
||||
|
||||
//////////////////////
|
||||
// Baron
|
||||
//////////////////////
|
||||
/datum/construction/mecha/fighter/baron_chassis
|
||||
result = "/obj/mecha/combat/fighter/baron"
|
||||
steps = list(list("key"=/obj/item/mecha_parts/fighter/part/baron_core),//1
|
||||
list("key"=/obj/item/mecha_parts/fighter/part/baron_cockpit),//2
|
||||
list("key"=/obj/item/mecha_parts/fighter/part/baron_main_engine),//3
|
||||
list("key"=/obj/item/mecha_parts/fighter/part/baron_left_engine),//4
|
||||
list("key"=/obj/item/mecha_parts/fighter/part/baron_right_engine),//5
|
||||
list("key"=/obj/item/mecha_parts/fighter/part/baron_left_wing),//6
|
||||
list("key"=/obj/item/mecha_parts/fighter/part/baron_right_wing)//final
|
||||
)
|
||||
|
||||
/datum/construction/mecha/fighter/baron_chassis/custom_action(step, obj/item/I, mob/user)
|
||||
user.visible_message("[user] has connected [I] to [holder].", "You connect [I] to [holder]")
|
||||
holder.add_overlay("[I.icon_state]+o")
|
||||
qdel(I)
|
||||
return 1
|
||||
|
||||
/datum/construction/mecha/fighter/baron_chassis/action(obj/item/I,mob/user as mob)
|
||||
return check_all_steps(I,user)
|
||||
|
||||
/datum/construction/mecha/fighter/baron_chassis/spawn_result()
|
||||
var/obj/item/mecha_parts/chassis/const_holder = holder
|
||||
const_holder.construct = new /datum/construction/reversible/mecha/fighter/baron(const_holder)
|
||||
const_holder.icon = 'icons/mecha/fighters_construction64x64.dmi'
|
||||
const_holder.icon_state = "baron0"
|
||||
const_holder.density = 1
|
||||
spawn()
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/datum/construction/reversible/mecha/fighter/baron
|
||||
result = "/obj/mecha/combat/fighter/baron"
|
||||
steps = list(
|
||||
//1
|
||||
list("key"=/obj/item/weldingtool,
|
||||
"backkey"=IS_WRENCH,
|
||||
"desc"="External armor is bolted into place."),
|
||||
//2
|
||||
list("key"=IS_WRENCH,
|
||||
"backkey"=IS_CROWBAR,
|
||||
"desc"="External armor is installed."),
|
||||
//3
|
||||
list("key"=/obj/item/stack/material/plasteel,
|
||||
"backkey"=/obj/item/weldingtool,
|
||||
"desc"="The internal armor is welded into place."),
|
||||
//4
|
||||
list("key"=/obj/item/weldingtool,
|
||||
"backkey"=IS_WRENCH,
|
||||
"desc"="The internal armor is bolted into place."),
|
||||
//5
|
||||
list("key"=IS_WRENCH,
|
||||
"backkey"=IS_CROWBAR,
|
||||
"desc"="The internal armor is installed."),
|
||||
//6
|
||||
list("key"=/obj/item/stack/material/steel,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="The manual flight control instruments are secured."),
|
||||
//7
|
||||
list("key"=IS_SCREWDRIVER,
|
||||
"backkey"=IS_CROWBAR,
|
||||
"desc"="The manual flight control instruments are installed."),
|
||||
//8
|
||||
list("key"=/obj/item/circuitboard/mecha/fighter/baron/cockpitboard,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="The advanced capacitor is secured."),
|
||||
//9
|
||||
list("key"=IS_SCREWDRIVER,
|
||||
"backkey"=IS_CROWBAR,
|
||||
"desc"="The advanced capacitor is installed."),
|
||||
//10
|
||||
list("key"=/obj/item/stock_parts/capacitor/adv,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="The targeting module is secured."),
|
||||
//11
|
||||
list("key"=IS_SCREWDRIVER,
|
||||
"backkey"=IS_CROWBAR,
|
||||
"desc"="The targeting module is installed."),
|
||||
//12
|
||||
list("key"=/obj/item/circuitboard/mecha/fighter/baron/targeting,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="The flight control module is secured."),
|
||||
//13
|
||||
list("key"=IS_SCREWDRIVER,
|
||||
"backkey"=IS_CROWBAR,
|
||||
"desc"="The flight control module is installed."),
|
||||
//14
|
||||
list("key"=/obj/item/circuitboard/mecha/fighter/baron/flight,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="The central control module is secured."),
|
||||
//15
|
||||
list("key"=IS_SCREWDRIVER,
|
||||
"backkey"=IS_CROWBAR,
|
||||
"desc"="The central control module is installed."),
|
||||
//16
|
||||
list("key"=/obj/item/circuitboard/mecha/fighter/baron/main,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="The internal wiring is adjusted."),
|
||||
//17
|
||||
list("key"=/obj/item/tool/wirecutters,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="The internal wiring is added."),
|
||||
//18
|
||||
list("key"=/obj/item/stack/cable_coil,
|
||||
"backkey"=IS_SCREWDRIVER,
|
||||
"desc"="The hydraulic landing gear are deployed."),
|
||||
//19
|
||||
list("key"=IS_SCREWDRIVER,
|
||||
"backkey"=IS_WRENCH,
|
||||
"desc"="The hydraulic landing gear are attached."),
|
||||
//20
|
||||
list("key"=IS_WRENCH,
|
||||
"desc"="The hydraulic landing gear are detached.")
|
||||
)
|
||||
|
||||
/datum/construction/reversible/mecha/fighter/baron/action(obj/item/I,mob/user as mob)
|
||||
return check_step(I,user)
|
||||
|
||||
/datum/construction/reversible/mecha/fighter/baron/custom_action(index, diff, obj/item/I, mob/user)
|
||||
if(!..())
|
||||
return 0
|
||||
|
||||
switch(index)
|
||||
if(20)
|
||||
user.visible_message("[user] attaches [holder]'s hydraulic landing gear.", "You attach [holder]'s hydraulic landing gear.")
|
||||
holder.icon_state = "baron1"
|
||||
if(19)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] deploys [holder]'s hydraulic landing gear.", "You deploy [holder]'s hydraulic landing gear.")
|
||||
holder.icon_state = "baron2"
|
||||
else
|
||||
user.visible_message("[user] removes [holder]'s hydraulic landing gear.", "You remove [holder]'s hydraulic landing gear.")
|
||||
holder.icon_state = "baron0"
|
||||
if(18)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] adds the internal wiring to [holder].", "You add the internal wiring to [holder].")
|
||||
holder.icon_state = "baron3"
|
||||
else
|
||||
user.visible_message("[user] retracts [holder]'s hydraulic landing gear.", "You retract [holder]'s hydraulic landing gear.")
|
||||
holder.icon_state = "baron1"
|
||||
if(17)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] adjusts the internal wiring of [holder].", "You adjust the internal wiring of [holder].")
|
||||
holder.icon_state = "baron4"
|
||||
else
|
||||
user.visible_message("[user] removes the internal wiring from [holder].", "You remove the internal wiring from [holder].")
|
||||
var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder))
|
||||
coil.amount = 4
|
||||
holder.icon_state = "baron2"
|
||||
if(16)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the central control module into [holder].", "You install the central control module into [holder].")
|
||||
qdel(I)
|
||||
holder.icon_state = "baron5"
|
||||
else
|
||||
user.visible_message("[user] disconnects the wiring of [holder].", "You disconnect the wiring of [holder].")
|
||||
holder.icon_state = "baron3"
|
||||
if(15)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the central control module.", "You secure the central control module.")
|
||||
holder.icon_state = "baron6"
|
||||
else
|
||||
user.visible_message("[user] removes the central control module from [holder].", "You remove the central control module from [holder].")
|
||||
new /obj/item/circuitboard/mecha/fighter/baron/main(get_turf(holder))
|
||||
holder.icon_state = "baron4"
|
||||
if(14)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the flight control module into [holder].", "You install the flight control module into [holder].")
|
||||
qdel(I)
|
||||
holder.icon_state = "baron7"
|
||||
else
|
||||
user.visible_message("[user] unfastens the central control module.", "You unfasten the central control module.")
|
||||
holder.icon_state = "baron5"
|
||||
if(13)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the flight control module.", "You secure the flight control module.")
|
||||
holder.icon_state = "baron8"
|
||||
else
|
||||
user.visible_message("[user] removes the flight control module from [holder].", "You remove the flight control module from [holder].")
|
||||
new /obj/item/circuitboard/mecha/fighter/baron/flight(get_turf(holder))
|
||||
holder.icon_state = "baron6"
|
||||
if(12)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the targeting control module into [holder].", "You install the targeting control module into [holder].")
|
||||
qdel(I)
|
||||
holder.icon_state = "baron9"
|
||||
else
|
||||
user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.")
|
||||
holder.icon_state = "baron7"
|
||||
if(11)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the targeting control module.", "You secure the targeting control module.")
|
||||
holder.icon_state = "baron10"
|
||||
else
|
||||
user.visible_message("[user] removes the targeting control module from [holder].", "You remove the targeting control module from [holder].")
|
||||
new /obj/item/circuitboard/mecha/fighter/baron/targeting(get_turf(holder))
|
||||
holder.icon_state = "baron8"
|
||||
if(10)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the advanced capacitor into [holder].", "You install the advanced capacitor into [holder].")
|
||||
qdel(I)
|
||||
holder.icon_state = "baron11"
|
||||
else
|
||||
user.visible_message("[user] unfastens the targeting control module.", "You unfasten the targeting control module.")
|
||||
holder.icon_state = "baron9"
|
||||
if(9)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the advanced capacitor.", "You secure the advanced capacitor.")
|
||||
holder.icon_state = "baron12"
|
||||
else
|
||||
user.visible_message("[user] removes the advanced capacitor from [holder].", "You remove the advanced capacitor from [holder].")
|
||||
new /obj/item/stock_parts/capacitor/adv(get_turf(holder))
|
||||
holder.icon_state = "baron10"
|
||||
if(8)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the manual flight controls to [holder].", "You install the manual flight controls to [holder].")
|
||||
qdel(I)
|
||||
holder.icon_state = "baron13"
|
||||
else
|
||||
user.visible_message("[user] unfastens the advanced capacitor.", "You unfasten the advanced capacitor.")
|
||||
holder.icon_state = "baron11"
|
||||
if(7)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the manual flight controls.", "You secure the manual flight controls.")
|
||||
holder.icon_state = "baron14"
|
||||
else
|
||||
user.visible_message("[user] removes the manual flight controls from [holder].", "You remove the manual flight controls from [holder].")
|
||||
new /obj/item/circuitboard/mecha/fighter/baron/cockpitboard(get_turf(holder))
|
||||
holder.icon_state = "baron12"
|
||||
if(6)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the internal armor layer to [holder].", "You install the internal armor layer to [holder].")
|
||||
holder.icon_state = "baron19"
|
||||
else
|
||||
user.visible_message("[user] unfastens the manual flight controls.", "You unfasten the manual flight controls.")
|
||||
holder.icon_state = "baron13"
|
||||
if(5)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] bolts the internal armor layer.", "You bolt the internal armor layer.")
|
||||
holder.icon_state = "baron20"
|
||||
else
|
||||
user.visible_message("[user] pries the internal armor layer from [holder].", "You pry the internal armor layer from [holder].")
|
||||
var/obj/item/stack/material/steel/MS = new /obj/item/stack/material/steel(get_turf(holder))
|
||||
MS.amount = 5
|
||||
holder.icon_state = "baron14"
|
||||
if(4)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] welds the internal armor layer into place on [holder].", "You weld the internal armor layer into place on [holder].")
|
||||
holder.icon_state = "baron21"
|
||||
else
|
||||
user.visible_message("[user] unbolt the internal armor layer.", "You unbolt the internal armor layer.")
|
||||
holder.icon_state = "baron19"
|
||||
if(3)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the external reinforced armor layer to [holder].", "You install the external reinforced armor layer to [holder].")
|
||||
holder.icon_state = "baron22"
|
||||
else
|
||||
user.visible_message("[user] cuts internal armor layer from [holder].", "You cut the internal armor layer from [holder].")
|
||||
holder.icon_state = "baron20"
|
||||
if(2)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] bolts external armor layer.", "You bolt external reinforced armor layer.")
|
||||
holder.icon_state = "baron23"
|
||||
else
|
||||
user.visible_message("[user] pries the external armor layer from [holder].", "You pry external armor layer from [holder].")
|
||||
var/obj/item/stack/material/plasteel/MS = new /obj/item/stack/material/plasteel(get_turf(holder))
|
||||
MS.amount = 5
|
||||
holder.icon_state = "baron21"
|
||||
if(1)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] welds the external armor layer to [holder].", "You weld the external armor layer to [holder].")
|
||||
else
|
||||
user.visible_message("[user] unbolts the external armor layer.", "You unbolt the external armor layer.")
|
||||
holder.icon_state = "baron22"
|
||||
return 1
|
||||
|
||||
/datum/construction/reversible/mecha/fighter/baron/spawn_result()
|
||||
..()
|
||||
feedback_inc("mecha_fighter_baron_created",1)
|
||||
return
|
||||
|
||||
@@ -340,3 +340,120 @@
|
||||
name="Prototype Durand Right Leg"
|
||||
icon_state = "janus_r_leg"
|
||||
origin_tech = list(TECH_MATERIAL = 5, TECH_BLUESPACE = 3, TECH_MAGNET = 3, TECH_ARCANE = 1)
|
||||
|
||||
|
||||
///Fighters///
|
||||
|
||||
|
||||
/obj/item/mecha_parts/fighter
|
||||
icon = 'icons/mecha/fighters_construct64x64.dmi'
|
||||
|
||||
/obj/item/mecha_parts/fighter/chassis
|
||||
name="Fighter Chassis"
|
||||
icon_state = "backbone"
|
||||
var/datum/construction/construct
|
||||
|
||||
/obj/item/mecha_parts/fighter/chassis/attackby(obj/item/W, mob/user)
|
||||
if(!construct || !construct.action(W, user))
|
||||
..()
|
||||
return
|
||||
|
||||
/obj/item/mecha_parts/fighter/chassis/attack_hand(mob/user, list/params)
|
||||
return
|
||||
|
||||
|
||||
//! Pinnace
|
||||
|
||||
/obj/item/mecha_parts/fighter/chassis/pinnace
|
||||
name = "\improper Pinnace Chassis"
|
||||
icon_state = "pinnace_chassis"
|
||||
|
||||
origin_tech = list(TECH_MATERIAL = 2)
|
||||
|
||||
/obj/item/mecha_parts/fighter/chassis/pinnace/New()
|
||||
..()
|
||||
construct = new /datum/construction/mecha/fighter/pinnace_chassis(src)
|
||||
|
||||
|
||||
/obj/item/mecha_parts/fighter/part/pinnace_core
|
||||
name="\improper Pinnace Core"
|
||||
icon_state = "pinnace_core"
|
||||
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 2, TECH_ENGINEERING = 2)
|
||||
|
||||
/obj/item/mecha_parts/fighter/part/pinnace_cockpit
|
||||
name="\improper Pinnace Cockpit"
|
||||
icon_state = "pinnace_cockpit"
|
||||
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 2, TECH_ENGINEERING = 2)
|
||||
|
||||
/obj/item/mecha_parts/fighter/part/pinnace_left_wing
|
||||
name="\improper Pinnace Left Wing"
|
||||
icon_state = "pinnace_l_wing"
|
||||
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 2, TECH_ENGINEERING = 2)
|
||||
|
||||
/obj/item/mecha_parts/fighter/part/pinnace_right_wing
|
||||
name="\improper Pinnace Right Wing"
|
||||
icon_state = "pinnace_r_wing"
|
||||
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 2, TECH_ENGINEERING = 2)
|
||||
|
||||
/obj/item/mecha_parts/fighter/part/pinnace_main_engine
|
||||
name="\improper Pinnace Main Engine"
|
||||
icon_state = "pinnace_m_engine"
|
||||
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 2, TECH_ENGINEERING = 2)
|
||||
|
||||
/obj/item/mecha_parts/fighter/part/pinnace_left_engine
|
||||
name="\improper Pinnace Left Engine"
|
||||
icon_state = "pinnace_l_engine"
|
||||
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 2, TECH_ENGINEERING = 2)
|
||||
|
||||
/obj/item/mecha_parts/fighter/part/pinnace_right_engine
|
||||
name="\improper Pinnace Right Engine"
|
||||
icon_state = "pinnace_r_engine"
|
||||
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 2, TECH_ENGINEERING = 2)
|
||||
|
||||
//! Baron
|
||||
|
||||
/obj/item/mecha_parts/fighter/chassis/baron
|
||||
name = "\improper Baron Chassis"
|
||||
icon_state = "baron_chassis"
|
||||
|
||||
origin_tech = list(TECH_MATERIAL = 2)
|
||||
|
||||
/obj/item/mecha_parts/fighter/chassis/baron/New()
|
||||
..()
|
||||
construct = new /datum/construction/mecha/fighter/baron_chassis(src)
|
||||
|
||||
|
||||
/obj/item/mecha_parts/fighter/part/baron_core
|
||||
name="\improper Baron Core"
|
||||
icon_state = "baron_core"
|
||||
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 5, TECH_BIO = 2, TECH_ENGINEERING = 4)
|
||||
|
||||
/obj/item/mecha_parts/fighter/part/baron_cockpit
|
||||
name="\improper Baron Cockpit"
|
||||
icon_state = "baron_cockpit"
|
||||
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 5, TECH_BIO = 2, TECH_ENGINEERING = 4)
|
||||
|
||||
/obj/item/mecha_parts/fighter/part/baron_left_wing
|
||||
name="\improper Baron Left Wing"
|
||||
icon_state = "baron_l_wing"
|
||||
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 5, TECH_ENGINEERING = 4)
|
||||
|
||||
/obj/item/mecha_parts/fighter/part/baron_right_wing
|
||||
name="\improper Baron Right Wing"
|
||||
icon_state = "baron_r_wing"
|
||||
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 5, TECH_ENGINEERING = 4)
|
||||
|
||||
/obj/item/mecha_parts/fighter/part/baron_main_engine
|
||||
name="\improper Baron Main Engine"
|
||||
icon_state = "baron_m_engine"
|
||||
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 5, TECH_ENGINEERING = 4)
|
||||
|
||||
/obj/item/mecha_parts/fighter/part/baron_left_engine
|
||||
name="\improper Baron Left Engine"
|
||||
icon_state = "baron_l_engine"
|
||||
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 5, TECH_ENGINEERING = 4)
|
||||
|
||||
/obj/item/mecha_parts/fighter/part/baron_right_engine
|
||||
name="\improper Baron Right Engine"
|
||||
icon_state = "baron_r_engine"
|
||||
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 5, TECH_ENGINEERING = 4)
|
||||
|
||||
@@ -2,6 +2,10 @@
|
||||
#error T_BOARD_MECHA already defined elsewhere, we can't use it.
|
||||
#endif
|
||||
#define T_BOARD_MECHA(name) "exosuit module circuit board (" + (name) + ")"
|
||||
#ifdef T_BOARD_FIGHTER
|
||||
#error T_BOARD_FIGHTER already defined elsewhere, we can't use it.
|
||||
#endif
|
||||
#define T_BOARD_FIGHTER(name) "fightercraft circuit board (" + (name) + ")"
|
||||
|
||||
/obj/item/circuitboard/mecha
|
||||
name = "exosuit circuit board"
|
||||
@@ -124,5 +128,56 @@
|
||||
desc = "It is marked with a " + span_alien("constantly shifting glyph") + "."
|
||||
origin_tech = list(TECH_DATA = 3, TECH_BLUESPACE = 1, TECH_PRECURSOR = 2)
|
||||
|
||||
//Undef the macro, shouldn't be needed anywhere else
|
||||
///Fighters///
|
||||
|
||||
//Pinnace//
|
||||
|
||||
/obj/item/circuitboard/mecha/fighter/pinnace
|
||||
|
||||
/obj/item/circuitboard/mecha/fighter/pinnace/main
|
||||
name = T_BOARD_FIGHTER("Pinnace central control")
|
||||
origin_tech = list(TECH_DATA = 4, TECH_BIO = 2, TECH_BLUESPACE = 2)
|
||||
icon_state = "mainboard"
|
||||
|
||||
/obj/item/circuitboard/mecha/fighter/pinnace/flight
|
||||
name = T_BOARD_FIGHTER("Pinnace flight control")
|
||||
icon_state = "mcontroller"
|
||||
origin_tech = list(TECH_DATA = 4, TECH_BLUESPACE = 2)
|
||||
|
||||
/obj/item/circuitboard/mecha/fighter/pinnace/targeting
|
||||
name = T_BOARD_FIGHTER("Pinnace weapon control and targeting")
|
||||
icon_state = "mcontroller"
|
||||
origin_tech = list(TECH_DATA = 4, TECH_COMBAT = 1)
|
||||
|
||||
/obj/item/circuitboard/mecha/fighter/pinnace/cockpitboard
|
||||
name = T_BOARD_FIGHTER("Pinnace manual flight control instruments")
|
||||
origin_tech = list(TECH_DATA = 4, TECH_BLUESPACE = 2)
|
||||
icon_state = "card_mod"
|
||||
|
||||
//Baron//
|
||||
|
||||
/obj/item/circuitboard/mecha/fighter/baron
|
||||
|
||||
/obj/item/circuitboard/mecha/fighter/baron/main
|
||||
name = T_BOARD_FIGHTER("Baron central control")
|
||||
icon_state = "mainboard"
|
||||
origin_tech = list(TECH_DATA = 6, TECH_BIO = 4, TECH_BLUESPACE = 5)
|
||||
|
||||
/obj/item/circuitboard/mecha/fighter/baron/flight
|
||||
name = T_BOARD_FIGHTER("Baron flight control")
|
||||
icon_state = "mcontroller"
|
||||
origin_tech = list(TECH_DATA = 6, TECH_BLUESPACE = 5)
|
||||
|
||||
/obj/item/circuitboard/mecha/fighter/baron/targeting
|
||||
name = T_BOARD_FIGHTER("Baron weapon control and targeting")
|
||||
icon_state = "mcontroller"
|
||||
origin_tech = list(TECH_DATA = 6, TECH_BIO = 4, TECH_COMBAT = 5)
|
||||
|
||||
/obj/item/circuitboard/mecha/fighter/baron/cockpitboard
|
||||
name = T_BOARD_FIGHTER("Baron manual flight control instruments")
|
||||
icon_state = "card_mod"
|
||||
origin_tech = list(TECH_DATA = 6, TECH_BLUESPACE = 5)
|
||||
|
||||
//Undef the macros, shouldn't be needed anywhere else
|
||||
#undef T_BOARD_MECHA
|
||||
#undef T_BOARD_FIGHTER
|
||||
|
||||
@@ -864,3 +864,65 @@ CIRCUITS BELOW
|
||||
build_path = /obj/item/circuitboard/recycler_stamper
|
||||
sort_string = "OAABE"
|
||||
department = LATHE_ALL | LATHE_ENGINEERING // CHOMPAdd
|
||||
|
||||
///Fighters///
|
||||
|
||||
//Pinnace//
|
||||
|
||||
/datum/design/circuit/mecha/fighter/pinnace_main
|
||||
name = "Pinnace central control board"
|
||||
id = "pinnace_main"
|
||||
req_tech = list(TECH_DATA = 3, TECH_POWER = 4)
|
||||
build_path = /obj/item/circuitboard/mecha/fighter/pinnace/main
|
||||
sort_string = "NAAGA"
|
||||
|
||||
/datum/design/circuit/mecha/fighter/pinnace_flight
|
||||
name = "Pinnace flight control board"
|
||||
id = "pinnace_flight"
|
||||
req_tech = list(TECH_DATA = 3, TECH_POWER = 4)
|
||||
build_path = /obj/item/circuitboard/mecha/fighter/pinnace/flight
|
||||
sort_string = "NAAGB"
|
||||
|
||||
/datum/design/circuit/mecha/fighter/pinnace_targeting
|
||||
name = "Pinnace weapon control and targeting board"
|
||||
id = "pinnace_targeting"
|
||||
req_tech = list(TECH_DATA = 3, TECH_POWER = 4)
|
||||
build_path = /obj/item/circuitboard/mecha/fighter/pinnace/targeting
|
||||
sort_string = "NAAGC"
|
||||
|
||||
/datum/design/circuit/mecha/fighter/pinnace_cockpit_control
|
||||
name = "Pinnace manual flight control instruments"
|
||||
id = "pinnace_cockpit_control"
|
||||
req_tech = list(TECH_DATA = 3, TECH_POWER = 4)
|
||||
build_path = /obj/item/circuitboard/mecha/fighter/pinnace/cockpitboard
|
||||
sort_string = "NAAGD"
|
||||
|
||||
//Baron//
|
||||
|
||||
/datum/design/circuit/mecha/fighter/baron_main
|
||||
name = "Baron central control board"
|
||||
id = "baron_main"
|
||||
req_tech = list(TECH_DATA = 5, TECH_POWER = 4)
|
||||
build_path = /obj/item/circuitboard/mecha/fighter/baron/main
|
||||
sort_string = "NAAHA"
|
||||
|
||||
/datum/design/circuit/mecha/fighter/baron_flight
|
||||
name = "Baron flight control board"
|
||||
id = "baron_flight"
|
||||
req_tech = list(TECH_DATA = 5, TECH_POWER = 4)
|
||||
build_path = /obj/item/circuitboard/mecha/fighter/baron/flight
|
||||
sort_string = "NAAHB"
|
||||
|
||||
/datum/design/circuit/mecha/fighter/baron_targeting
|
||||
name = "Baron weapon control and targeting board"
|
||||
id = "baron_targeting"
|
||||
req_tech = list(TECH_DATA = 5, TECH_POWER = 4, TECH_COMBAT = 3)
|
||||
build_path = /obj/item/circuitboard/mecha/fighter/baron/targeting
|
||||
sort_string = "NAAHC"
|
||||
|
||||
/datum/design/circuit/mecha/fighter/baron_cockpit_control
|
||||
name = "Baron manual flight control instruments"
|
||||
id = "baron_cockpit_control"
|
||||
req_tech = list(TECH_DATA = 5, TECH_POWER = 4, TECH_COMBAT = 3)
|
||||
build_path = /obj/item/circuitboard/mecha/fighter/baron/cockpitboard
|
||||
sort_string = "NAAHD"
|
||||
|
||||
@@ -1253,3 +1253,129 @@
|
||||
req_tech = list(TECH_MATERIAL = 5, TECH_ENGINEERING = 4, TECH_POWER = 4)
|
||||
materials = list(MAT_PLASTEEL = 10000, MAT_OSMIUM = 3000, MAT_GOLD = 5000)
|
||||
build_path = /obj/item/mecha_parts/component/actuator/hispeed
|
||||
|
||||
///--------///
|
||||
///Fighters///
|
||||
///--------///
|
||||
|
||||
///Pinnace///
|
||||
|
||||
/datum/design/item/mechfab/fighter/pinnace
|
||||
category = list("Pinnace")
|
||||
|
||||
/datum/design/item/mechfab/fighter/pinnace/chassis
|
||||
name = "Pinnace Chassis"
|
||||
id = "pinnace_chassis"
|
||||
build_path = /obj/item/mecha_parts/fighter/chassis/pinnace
|
||||
time = 30
|
||||
materials = list(MAT_STEEL = 25000, MAT_GLASS = 10000, MAT_PLASTEEL = 10000)
|
||||
|
||||
/datum/design/item/mechfab/fighter/pinnace/core
|
||||
name = "Pinnace Core"
|
||||
id = "pinnace_core"
|
||||
build_path = /obj/item/mecha_parts/fighter/part/pinnace_core
|
||||
time = 60
|
||||
materials = list(MAT_STEEL = 25000, MAT_GLASS = 7000, MAT_PLASTEEL = 7000)
|
||||
|
||||
/datum/design/item/mechfab/fighter/pinnace/cockpit
|
||||
name = "Pinnace Cockpit"
|
||||
id = "pinnace_cockpit"
|
||||
build_path = /obj/item/mecha_parts/fighter/part/pinnace_cockpit
|
||||
time = 15
|
||||
materials = list(MAT_STEEL = 2500, MAT_PLASTEEL = 2500, MAT_GLASS = 7500, MAT_PLASTIC = 2500)
|
||||
|
||||
/datum/design/item/mechfab/fighter/pinnace/main_engine
|
||||
name = "Pinnace Main Engine"
|
||||
id = "pinnace_main_engine"
|
||||
build_path = /obj/item/mecha_parts/fighter/part/pinnace_main_engine
|
||||
time = 25
|
||||
materials = list(MAT_STEEL = 15000, MAT_PLASTEEL = 5000)
|
||||
|
||||
/datum/design/item/mechfab/fighter/pinnace/left_engine
|
||||
name = "Pinnace Left Engine"
|
||||
id = "pinnace_left_engine"
|
||||
build_path = /obj/item/mecha_parts/fighter/part/pinnace_left_engine
|
||||
time = 25
|
||||
materials = list(MAT_STEEL = 10000, MAT_PLASTEEL = 2500)
|
||||
|
||||
/datum/design/item/mechfab/fighter/pinnace/right_engine
|
||||
name = "Pinnace Right Engine"
|
||||
id = "pinnace_right_engine"
|
||||
build_path = /obj/item/mecha_parts/fighter/part/pinnace_right_engine
|
||||
time = 25
|
||||
materials = list(MAT_STEEL = 10000, MAT_PLASTEEL = 2500)
|
||||
|
||||
/datum/design/item/mechfab/fighter/pinnace/left_wing
|
||||
name = "Pinnace Left Wing"
|
||||
id = "pinnace_left_wing"
|
||||
build_path = /obj/item/mecha_parts/fighter/part/pinnace_left_wing
|
||||
time = 20
|
||||
materials = list(MAT_STEEL = 7000, MAT_PLASTIC = 3000, MAT_PLASTEEL = 5000)
|
||||
|
||||
/datum/design/item/mechfab/fighter/pinnace/right_wing
|
||||
name = "Pinnace Right Wing"
|
||||
id = "pinnace_right_wing"
|
||||
build_path = /obj/item/mecha_parts/fighter/part/pinnace_right_wing
|
||||
time = 20
|
||||
materials = list(MAT_STEEL = 7000, MAT_PLASTIC = 3000, MAT_PLASTEEL = 5000)
|
||||
|
||||
///Baron///
|
||||
|
||||
/datum/design/item/mechfab/fighter/baron
|
||||
category = list("Baron")
|
||||
|
||||
/datum/design/item/mechfab/fighter/baron/chassis
|
||||
name = "Baron Chassis"
|
||||
id = "baron_chassis"
|
||||
build_path = /obj/item/mecha_parts/fighter/chassis/baron
|
||||
time = 30
|
||||
materials = list(MAT_STEEL = 37500, MAT_GLASS = 15000, MAT_PLASTEEL = 15000)
|
||||
|
||||
/datum/design/item/mechfab/fighter/baron/core
|
||||
name = "Baron Core"
|
||||
id = "baron_core"
|
||||
build_path = /obj/item/mecha_parts/fighter/part/baron_core
|
||||
time = 60
|
||||
materials = list(MAT_STEEL = 37500, MAT_GLASS = 15000, MAT_PLASTEEL = 15000)
|
||||
|
||||
/datum/design/item/mechfab/fighter/baron/cockpit
|
||||
name = "Baron Cockpit"
|
||||
id = "baron_cockpit"
|
||||
build_path = /obj/item/mecha_parts/fighter/part/baron_cockpit
|
||||
time = 15
|
||||
materials = list(MAT_STEEL = 5000, MAT_PLASTEEL = 5000, MAT_GLASS = 10000, MAT_PLASTIC = 5000)
|
||||
|
||||
/datum/design/item/mechfab/fighter/baron/main_engine
|
||||
name = "Baron Main Engine"
|
||||
id = "baron_main_engine"
|
||||
build_path = /obj/item/mecha_parts/fighter/part/baron_main_engine
|
||||
time = 25
|
||||
materials = list(MAT_STEEL = 25000, MAT_PLASTEEL = 10000)
|
||||
|
||||
/datum/design/item/mechfab/fighter/baron/left_engine
|
||||
name = "Baron Left Engine"
|
||||
id = "baron_left_engine"
|
||||
build_path = /obj/item/mecha_parts/fighter/part/baron_left_engine
|
||||
time = 25
|
||||
materials = list(MAT_STEEL = 20000, MAT_PLASTEEL = 5000)
|
||||
|
||||
/datum/design/item/mechfab/fighter/baron/right_engine
|
||||
name = "Baron Right Engine"
|
||||
id = "baron_right_engine"
|
||||
build_path = /obj/item/mecha_parts/fighter/part/baron_right_engine
|
||||
time = 25
|
||||
materials = list(MAT_STEEL = 20000, MAT_PLASTEEL = 5000)
|
||||
|
||||
/datum/design/item/mechfab/fighter/baron/left_wing
|
||||
name = "Baron Left Wing"
|
||||
id = "baron_left_wing"
|
||||
build_path = /obj/item/mecha_parts/fighter/part/baron_left_wing
|
||||
time = 20
|
||||
materials = list(MAT_STEEL = 15000, MAT_PLASTIC = 6000, MAT_PLASTEEL = 10000)
|
||||
|
||||
/datum/design/item/mechfab/fighter/baron/right_wing
|
||||
name = "Baron Right Wing"
|
||||
id = "baron_right_wing"
|
||||
build_path = /obj/item/mecha_parts/fighter/part/baron_right_wing
|
||||
time = 20
|
||||
materials = list(MAT_STEEL = 15000, MAT_PLASTIC = 6000, MAT_PLASTEEL = 10000)
|
||||
|
||||
BIN
icons/mecha/fighters_construct64x64.dmi
Normal file
BIN
icons/mecha/fighters_construct64x64.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 30 KiB |
BIN
icons/mecha/fighters_construction64x64.dmi
Normal file
BIN
icons/mecha/fighters_construction64x64.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 45 KiB |
BIN
sound/mecha/fighter/engine_mid_boost_01.ogg
Normal file
BIN
sound/mecha/fighter/engine_mid_boost_01.ogg
Normal file
Binary file not shown.
BIN
sound/mecha/fighter/engine_mid_fighter_move.ogg
Normal file
BIN
sound/mecha/fighter/engine_mid_fighter_move.ogg
Normal file
Binary file not shown.
Reference in New Issue
Block a user