Merge pull request #49563 from Fikou/clarke
[READY] Adds Clarke, your new mech buddy!
@@ -89,7 +89,7 @@
|
||||
/turf/open/floor/mineral/titanium/yellow/airless,
|
||||
/area/ruin/space/has_grav/powered/mechtransport)
|
||||
"x" = (
|
||||
/obj/structure/mecha_wreckage/ripley/firefighter,
|
||||
/obj/structure/mecha_wreckage/clarke,
|
||||
/turf/open/floor/mineral/titanium/yellow/airless,
|
||||
/area/ruin/space/has_grav/powered/mechtransport)
|
||||
"y" = (
|
||||
|
||||
@@ -819,7 +819,7 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/awaymission/spacebattle/cruiser)
|
||||
"dL" = (
|
||||
/obj/mecha/working/ripley/firefighter{
|
||||
/obj/mecha/working/clarke{
|
||||
ruin_mecha = 1
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
|
||||
@@ -21,6 +21,7 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list(
|
||||
/obj/item/toy/prize/odysseus = 1,
|
||||
/obj/item/toy/prize/phazon = 1,
|
||||
/obj/item/toy/prize/reticence = 1,
|
||||
/obj/item/toy/prize/clarke = 1,
|
||||
/obj/item/toy/cards/deck = 2,
|
||||
/obj/item/toy/nuke = 2,
|
||||
/obj/item/toy/minimeteor = 2,
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
var/list/part_sets = list(
|
||||
"Cyborg",
|
||||
"Ripley",
|
||||
"Firefighter",
|
||||
"Odysseus",
|
||||
"Clarke",
|
||||
"Gygax",
|
||||
"Durand",
|
||||
"H.O.N.K",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
desc = "Exosuit"
|
||||
icon = 'icons/mecha/mecha.dmi'
|
||||
density = TRUE //Dense. To raise the heat.
|
||||
opacity = 1 ///opaque. Menacing.
|
||||
opacity = TRUE //opaque. Menacing.
|
||||
move_force = MOVE_FORCE_VERY_STRONG
|
||||
move_resist = MOVE_FORCE_EXTREMELY_STRONG
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
@@ -25,9 +25,12 @@
|
||||
armor = list("melee" = 20, "bullet" = 10, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100)
|
||||
var/list/facing_modifiers = list(MECHA_FRONT_ARMOUR = 1.5, MECHA_SIDE_ARMOUR = 1, MECHA_BACK_ARMOUR = 0.5)
|
||||
var/equipment_disabled = 0 //disabled due to EMP
|
||||
var/obj/item/stock_parts/cell/cell ///Keeps track of the mech's cell
|
||||
var/obj/item/stock_parts/scanning_module/scanmod ///Keeps track of the mech's scanning module
|
||||
var/obj/item/stock_parts/capacitor/capacitor ///Keeps track of the mech's capacitor
|
||||
/// Keeps track of the mech's cell
|
||||
var/obj/item/stock_parts/cell/cell
|
||||
/// Keeps track of the mech's scanning module
|
||||
var/obj/item/stock_parts/scanning_module/scanmod
|
||||
/// Keeps track of the mech's capacitor
|
||||
var/obj/item/stock_parts/capacitor/capacitor
|
||||
var/construction_state = MECHA_LOCKED
|
||||
var/last_message = 0
|
||||
var/add_req_access = 1
|
||||
@@ -108,6 +111,8 @@
|
||||
var/phasing_energy_drain = 200
|
||||
var/phase_state = "" //icon_state when phasing
|
||||
var/strafe = FALSE //If we are strafing
|
||||
var/canstrafe = TRUE //if we can turn on strafing
|
||||
var/haslights = TRUE //if we can turn on lights
|
||||
|
||||
var/nextsmash = 0
|
||||
var/smashcooldown = 3 //deciseconds
|
||||
|
||||
@@ -6,9 +6,11 @@
|
||||
if(enclosed)
|
||||
internals_action.Grant(user, src)
|
||||
cycle_action.Grant(user, src)
|
||||
lights_action.Grant(user, src)
|
||||
if(haslights)
|
||||
lights_action.Grant(user, src)
|
||||
stats_action.Grant(user, src)
|
||||
strafing_action.Grant(user, src)
|
||||
if(canstrafe)
|
||||
strafing_action.Grant(user, src)
|
||||
|
||||
|
||||
/obj/mecha/proc/RemoveActions(mob/living/user, human_occupant = 0)
|
||||
@@ -16,9 +18,11 @@
|
||||
eject_action.Remove(user)
|
||||
internals_action.Remove(user)
|
||||
cycle_action.Remove(user)
|
||||
lights_action.Remove(user)
|
||||
if(haslights)
|
||||
lights_action.Remove(user)
|
||||
stats_action.Remove(user)
|
||||
strafing_action.Remove(user)
|
||||
if(canstrafe)
|
||||
strafing_action.Remove(user)
|
||||
|
||||
|
||||
/datum/action/innate/mecha
|
||||
|
||||
@@ -537,156 +537,164 @@
|
||||
user.visible_message("<span class='notice'>[user] unfastens Gygax Armor Plates.</span>", "<span class='notice'>You unfasten Gygax Armor Plates.</span>")
|
||||
return TRUE
|
||||
|
||||
/datum/component/construction/unordered/mecha_chassis/firefighter
|
||||
result = /datum/component/construction/mecha/firefighter
|
||||
/datum/component/construction/unordered/mecha_chassis/clarke
|
||||
result = /datum/component/construction/mecha/clarke
|
||||
steps = list(
|
||||
/obj/item/mecha_parts/part/ripley_torso,
|
||||
/obj/item/mecha_parts/part/ripley_left_arm,
|
||||
/obj/item/mecha_parts/part/ripley_right_arm,
|
||||
/obj/item/mecha_parts/part/ripley_left_leg,
|
||||
/obj/item/mecha_parts/part/ripley_right_leg,
|
||||
/obj/item/clothing/suit/fire
|
||||
/obj/item/mecha_parts/part/clarke_torso,
|
||||
/obj/item/mecha_parts/part/clarke_left_arm,
|
||||
/obj/item/mecha_parts/part/clarke_right_arm,
|
||||
/obj/item/mecha_parts/part/clarke_head
|
||||
)
|
||||
|
||||
/datum/component/construction/mecha/firefighter
|
||||
result = /obj/mecha/working/ripley/firefighter
|
||||
base_icon = "fireripley"
|
||||
/datum/component/construction/mecha/clarke
|
||||
result = /obj/mecha/working/clarke
|
||||
base_icon = "clarke"
|
||||
|
||||
circuit_control = /obj/item/circuitboard/mecha/ripley/main
|
||||
circuit_periph = /obj/item/circuitboard/mecha/ripley/peripherals
|
||||
circuit_control = /obj/item/circuitboard/mecha/clarke/main
|
||||
circuit_periph = /obj/item/circuitboard/mecha/clarke/peripherals
|
||||
|
||||
inner_plating = /obj/item/stack/sheet/plasteel
|
||||
inner_plating_amount = 5
|
||||
|
||||
/datum/component/construction/mecha/firefighter/get_outer_plating_steps()
|
||||
outer_plating = /obj/item/stack/sheet/mineral/gold
|
||||
outer_plating_amount = 5
|
||||
|
||||
/datum/component/construction/mecha/clarke/get_frame_steps()
|
||||
return list(
|
||||
list(
|
||||
"key" = /obj/item/stack/sheet/plasteel,
|
||||
"amount" = 5,
|
||||
"back_key" = TOOL_WELDER,
|
||||
"desc" = "Internal armor is welded."
|
||||
),
|
||||
list(
|
||||
"key" = /obj/item/stack/sheet/plasteel,
|
||||
"amount" = 5,
|
||||
"back_key" = TOOL_CROWBAR,
|
||||
"desc" = "External armor is being installed."
|
||||
"key" = /obj/item/stack/conveyor,
|
||||
"amount" = 4,
|
||||
"desc" = "The treads are added."
|
||||
),
|
||||
list(
|
||||
"key" = TOOL_WRENCH,
|
||||
"back_key" = TOOL_CROWBAR,
|
||||
"desc" = "External armor is installed."
|
||||
"desc" = "The hydraulic systems are disconnected."
|
||||
),
|
||||
list(
|
||||
"key" = TOOL_WELDER,
|
||||
"key" = TOOL_SCREWDRIVER,
|
||||
"back_key" = TOOL_WRENCH,
|
||||
"desc" = "External armor is wrenched."
|
||||
"desc" = "The hydraulic systems are connected."
|
||||
),
|
||||
list(
|
||||
"key" = /obj/item/stack/cable_coil,
|
||||
"amount" = 5,
|
||||
"back_key" = TOOL_SCREWDRIVER,
|
||||
"desc" = "The hydraulic systems are active."
|
||||
),
|
||||
list(
|
||||
"key" = TOOL_WIRECUTTER,
|
||||
"back_key" = TOOL_SCREWDRIVER,
|
||||
"desc" = "The wiring is added."
|
||||
)
|
||||
)
|
||||
|
||||
/datum/component/construction/mecha/firefighter/custom_action(obj/item/I, mob/living/user, diff)
|
||||
|
||||
|
||||
/datum/component/construction/mecha/clarke/custom_action(obj/item/I, mob/living/user, diff)
|
||||
if(!..())
|
||||
return FALSE
|
||||
|
||||
//TODO: better messages.
|
||||
switch(index)
|
||||
if(1)
|
||||
user.visible_message("<span class='notice'>[user] connects [parent] hydraulic systems.</span>", "<span class='notice'>You connect [parent] hydraulic systems.</span>")
|
||||
user.visible_message("<span class='notice'>[user] adds the tread systems.</span>", "<span class='notice'>You add the tread systems.</span>")
|
||||
if(2)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("<span class='notice'>[user] connects [parent] hydraulic systems.</span>", "<span class='notice'>You connect [parent] hydraulic systems.</span>")
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] removes the tread systems.</span>", "<span class='notice'>You remove the tread systems.</span>")
|
||||
|
||||
if(3)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("<span class='notice'>[user] activates [parent] hydraulic systems.</span>", "<span class='notice'>You activate [parent] hydraulic systems.</span>")
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] disconnects [parent] hydraulic systems.</span>", "<span class='notice'>You disconnect [parent] hydraulic systems.</span>")
|
||||
if(3)
|
||||
if(4)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("<span class='notice'>[user] adds the wiring to [parent].</span>", "<span class='notice'>You add the wiring to [parent].</span>")
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] deactivates [parent] hydraulic systems.</span>", "<span class='notice'>You deactivate [parent] hydraulic systems.</span>")
|
||||
if(4)
|
||||
if(5)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("<span class='notice'>[user] adjusts the wiring of [parent].</span>", "<span class='notice'>You adjust the wiring of [parent].</span>")
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] removes the wiring from [parent].</span>", "<span class='notice'>You remove the wiring from [parent].</span>")
|
||||
if(5)
|
||||
if(6)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("<span class='notice'>[user] installs [I] into [parent].</span>", "<span class='notice'>You install [I] into [parent].</span>")
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] disconnects the wiring of [parent].</span>", "<span class='notice'>You disconnect the wiring of [parent].</span>")
|
||||
if(6)
|
||||
if(7)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("<span class='notice'>[user] secures the mainboard.</span>", "<span class='notice'>You secure the mainboard.</span>")
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] removes the central control module from [parent].</span>", "<span class='notice'>You remove the central computer mainboard from [parent].</span>")
|
||||
if(7)
|
||||
if(8)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("<span class='notice'>[user] installs [I]into [parent].</span>", "<span class='notice'>You install [I]into [parent].</span>")
|
||||
user.visible_message("<span class='notice'>[user] installs [I] into [parent].</span>", "<span class='notice'>You install [I] into [parent].</span>")
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] unfastens the mainboard.</span>", "<span class='notice'>You unfasten the mainboard.</span>")
|
||||
if(8)
|
||||
if(9)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("<span class='notice'>[user] secures the peripherals control module.</span>", "<span class='notice'>You secure the peripherals control module.</span>")
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] removes the peripherals control module from [parent].</span>", "<span class='notice'>You remove the peripherals control module from [parent].</span>")
|
||||
if(9)
|
||||
if(10)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("<span class='notice'>[user] installs [I] into [parent].</span>", "<span class='notice'>You install [I] into [parent].</span>")
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] unfastens the peripherals control module.</span>", "<span class='notice'>You unfasten the peripherals control module.</span>")
|
||||
if(10)
|
||||
if(11)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("<span class='notice'>[user] secures the scanner module.</span>", "<span class='notice'>You secure the scanner module.</span>")
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] removes the scanner module from [parent].</span>", "<span class='notice'>You remove the scanner module from [parent].</span>")
|
||||
if(11)
|
||||
if(12)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("<span class='notice'>[user] installs [I] to [parent].</span>", "<span class='notice'>You install [I] to [parent].</span>")
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] unfastens the scanner module.</span>", "<span class='notice'>You unfasten the scanner module.</span>")
|
||||
if(12)
|
||||
if(13)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("<span class='notice'>[user] secures the capacitor.</span>", "<span class='notice'>You secure the capacitor.</span>")
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] removes the capacitor from [parent].</span>", "<span class='notice'>You remove the capacitor from [parent].</span>")
|
||||
if(13)
|
||||
if(14)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("<span class='notice'>[user] installs [I] into [parent].</span>", "<span class='notice'>You install [I] into [parent].</span>")
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] unfastens the capacitor.</span>", "<span class='notice'>You unfasten the capacitor.</span>")
|
||||
if(14)
|
||||
if(15)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("<span class='notice'>[user] secures the power cell.</span>", "<span class='notice'>You secure the power cell.</span>")
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] pries the power cell from [parent].</span>", "<span class='notice'>You pry the power cell from [parent].</span>")
|
||||
if(15)
|
||||
if(16)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("<span class='notice'>[user] installs the internal armor layer to [parent].</span>", "<span class='notice'>You install the internal armor layer to [parent].</span>")
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] unfastens the power cell.</span>", "<span class='notice'>You unfasten the power cell.</span>")
|
||||
if(16)
|
||||
if(17)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("<span class='notice'>[user] secures the internal armor layer.</span>", "<span class='notice'>You secure the internal armor layer.</span>")
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] pries internal armor layer from [parent].</span>", "<span class='notice'>You pry internal armor layer from [parent].</span>")
|
||||
if(17)
|
||||
if(18)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("<span class='notice'>[user] welds the internal armor layer to [parent].</span>", "<span class='notice'>You weld the internal armor layer to [parent].</span>")
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] unfastens the internal armor layer.</span>", "<span class='notice'>You unfasten the internal armor layer.</span>")
|
||||
if(18)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("<span class='notice'>[user] starts to install the external armor layer to [parent].</span>", "<span class='notice'>You install the external armor layer to [parent].</span>")
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] cuts the internal armor layer from [parent].</span>", "<span class='notice'>You cut the internal armor layer from [parent].</span>")
|
||||
if(19)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("<span class='notice'>[user] installs the external reinforced armor layer to [parent].</span>", "<span class='notice'>You install the external reinforced armor layer to [parent].</span>")
|
||||
user.visible_message("<span class='notice'>[user] installs the external armor layer to [parent].</span>", "<span class='notice'>You install the external reinforced armor layer to [parent].</span>")
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] removes the external armor from [parent].</span>", "<span class='notice'>You remove the external armor from [parent].</span>")
|
||||
user.visible_message("<span class='notice'>[user] cuts the internal armor layer from [parent].</span>", "<span class='notice'>You cut the internal armor layer from [parent].</span>")
|
||||
if(20)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("<span class='notice'>[user] secures the external armor layer.</span>", "<span class='notice'>You secure the external reinforced armor layer.</span>")
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] pries external armor layer from [parent].</span>", "<span class='notice'>You pry external armor layer from [parent].</span>")
|
||||
user.visible_message("<span class='notice'>[user] pries the external armor layer from [parent].</span>", "<span class='notice'>You pry the external armor layer from [parent].</span>")
|
||||
if(21)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("<span class='notice'>[user] welds the external armor layer to [parent].</span>", "<span class='notice'>You weld the external armor layer to [parent].</span>")
|
||||
@@ -694,6 +702,7 @@
|
||||
user.visible_message("<span class='notice'>[user] unfastens the external armor layer.</span>", "<span class='notice'>You unfasten the external armor layer.</span>")
|
||||
return TRUE
|
||||
|
||||
|
||||
/datum/component/construction/unordered/mecha_chassis/honker
|
||||
result = /datum/component/construction/mecha/honker
|
||||
steps = list(
|
||||
|
||||
@@ -182,12 +182,31 @@
|
||||
desc = "A set of armor plates for the Durand. Built heavy to resist an incredible amount of brute force."
|
||||
icon_state = "durand_armor"
|
||||
|
||||
////////// Firefighter
|
||||
////////// Clarke
|
||||
|
||||
/obj/item/mecha_parts/chassis/firefighter
|
||||
name = "\improper Firefighter chassis"
|
||||
construct_type = /datum/component/construction/unordered/mecha_chassis/firefighter
|
||||
/obj/item/mecha_parts/chassis/clarke
|
||||
name = "\improper Clarke chassis"
|
||||
construct_type = /datum/component/construction/unordered/mecha_chassis/clarke
|
||||
|
||||
/obj/item/mecha_parts/part/clarke_torso
|
||||
name = "\improper Clarke torso"
|
||||
desc = "A torso part of Clarke. Contains power unit, processing core and life support systems."
|
||||
icon_state = "clarke_harness"
|
||||
|
||||
/obj/item/mecha_parts/part/clarke_head
|
||||
name = "\improper Clarke head"
|
||||
desc = "A Clarke head. Contains an integrated diagnostic HUD scanner."
|
||||
icon_state = "clarke_head"
|
||||
|
||||
/obj/item/mecha_parts/part/clarke_left_arm
|
||||
name = "\improper Clarke left arm"
|
||||
desc = "A Clarke left arm. Data and power sockets are compatible with most exosuit tools."
|
||||
icon_state = "clarke_l_arm"
|
||||
|
||||
/obj/item/mecha_parts/part/clarke_right_arm
|
||||
name = "\improper Clarke right arm"
|
||||
desc = "A Clarke right arm. Data and power sockets are compatible with most exosuit tools."
|
||||
icon_state = "clarke_r_arm"
|
||||
|
||||
////////// HONK
|
||||
|
||||
@@ -352,3 +371,11 @@
|
||||
|
||||
/obj/item/circuitboard/mecha/phazon/main
|
||||
name = "Phazon Central Control module (Exosuit Board)"
|
||||
|
||||
/obj/item/circuitboard/mecha/clarke/peripherals
|
||||
name = "Clarke Peripherals Control module (Exosuit Board)"
|
||||
icon_state = "mcontroller"
|
||||
|
||||
/obj/item/circuitboard/mecha/clarke/main
|
||||
name = "Clarke Central Control module (Exosuit Board)"
|
||||
icon_state = "mainboard"
|
||||
|
||||
@@ -147,7 +147,8 @@
|
||||
/obj/structure/mecha_wreckage/ripley
|
||||
name = "\improper Ripley wreckage"
|
||||
icon_state = "ripley-broken"
|
||||
parts = list(/obj/item/mecha_parts/part/ripley_torso,
|
||||
parts = list(
|
||||
/obj/item/mecha_parts/part/ripley_torso,
|
||||
/obj/item/mecha_parts/part/ripley_left_arm,
|
||||
/obj/item/mecha_parts/part/ripley_right_arm,
|
||||
/obj/item/mecha_parts/part/ripley_left_leg,
|
||||
@@ -157,15 +158,15 @@
|
||||
name = "\improper Ripley MK-II wreckage"
|
||||
icon_state = "ripleymkii-broken"
|
||||
|
||||
/obj/structure/mecha_wreckage/ripley/firefighter
|
||||
name = "\improper Firefighter wreckage"
|
||||
icon_state = "firefighter-broken"
|
||||
parts = list(/obj/item/mecha_parts/part/ripley_torso,
|
||||
/obj/item/mecha_parts/part/ripley_left_arm,
|
||||
/obj/item/mecha_parts/part/ripley_right_arm,
|
||||
/obj/item/mecha_parts/part/ripley_left_leg,
|
||||
/obj/item/mecha_parts/part/ripley_right_leg,
|
||||
/obj/item/clothing/suit/fire)
|
||||
/obj/structure/mecha_wreckage/clarke
|
||||
name = "\improper Clarke wreckage"
|
||||
icon_state = "clarke-broken"
|
||||
parts = list(
|
||||
/obj/item/mecha_parts/part/clarke_torso,
|
||||
/obj/item/mecha_parts/part/clarke_head,
|
||||
/obj/item/mecha_parts/part/clarke_left_arm,
|
||||
/obj/item/mecha_parts/part/clarke_right_arm,
|
||||
/obj/item/stack/conveyor)
|
||||
|
||||
/obj/structure/mecha_wreckage/ripley/deathripley
|
||||
name = "\improper Death-Ripley wreckage"
|
||||
@@ -177,7 +178,6 @@
|
||||
icon_state = "honker-broken"
|
||||
desc = "All is right in the universe."
|
||||
parts = list(
|
||||
/obj/item/mecha_parts/chassis/honker,
|
||||
/obj/item/mecha_parts/part/honker_torso,
|
||||
/obj/item/mecha_parts/part/honker_head,
|
||||
/obj/item/mecha_parts/part/honker_left_arm,
|
||||
@@ -199,6 +199,14 @@
|
||||
/obj/structure/mecha_wreckage/phazon
|
||||
name = "\improper Phazon wreckage"
|
||||
icon_state = "phazon-broken"
|
||||
parts = list(
|
||||
/obj/item/mecha_parts/part/phazon_torso,
|
||||
/obj/item/mecha_parts/part/phazon_head,
|
||||
/obj/item/mecha_parts/part/phazon_left_arm,
|
||||
/obj/item/mecha_parts/part/phazon_right_arm,
|
||||
/obj/item/mecha_parts/part/phazon_left_leg,
|
||||
/obj/item/mecha_parts/part/phazon_right_leg)
|
||||
|
||||
|
||||
|
||||
/obj/structure/mecha_wreckage/odysseus
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
///Lavaproof, fireproof, fast mech with low armor and higher energy consumption, cannot strafe and has an internal ore box.
|
||||
/obj/mecha/working/clarke
|
||||
desc = "Combining man and machine for a better, stronger engineer. Can even resist lava!"
|
||||
name = "\improper Clarke"
|
||||
icon_state = "clarke"
|
||||
max_temperature = 65000
|
||||
max_integrity = 200
|
||||
step_in = 1.25
|
||||
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
|
||||
lights_power = 7
|
||||
deflect_chance = 10
|
||||
step_energy_drain = 15 //slightly higher energy drain since you movin those wheels FAST
|
||||
armor = list("melee" = 20, "bullet" = 10, "laser" = 20, "energy" = 10, "bomb" = 60, "bio" = 0, "rad" = 70, "fire" = 100, "acid" = 100) //low armor to compensate for fire protection and speed
|
||||
max_equip = 7
|
||||
wreckage = /obj/structure/mecha_wreckage/clarke
|
||||
enter_delay = 40
|
||||
canstrafe = FALSE
|
||||
/// Handles an internal ore box for Clarke
|
||||
var/obj/structure/ore_box/box
|
||||
|
||||
/obj/mecha/working/clarke/Initialize()
|
||||
. = ..()
|
||||
box = new /obj/structure/ore_box(src)
|
||||
var/obj/item/mecha_parts/mecha_equipment/orebox_manager/ME = new(src)
|
||||
ME.attach(src)
|
||||
|
||||
/obj/mecha/working/clarke/Destroy()
|
||||
box.dump_box_contents()
|
||||
return ..()
|
||||
|
||||
/obj/mecha/working/clarke/moved_inside(mob/living/carbon/human/H)
|
||||
. = ..()
|
||||
if(.)
|
||||
var/datum/atom_hud/hud = GLOB.huds[DATA_HUD_DIAGNOSTIC_ADVANCED]
|
||||
hud.add_hud_to(H)
|
||||
|
||||
/obj/mecha/working/clarke/go_out()
|
||||
if(isliving(occupant))
|
||||
var/mob/living/L = occupant
|
||||
var/datum/atom_hud/hud = GLOB.huds[DATA_HUD_DIAGNOSTIC_ADVANCED]
|
||||
hud.remove_hud_from(L)
|
||||
return ..()
|
||||
|
||||
/obj/mecha/working/clarke/mmi_moved_inside(obj/item/mmi/M, mob/user)
|
||||
. = ..()
|
||||
if(.)
|
||||
var/datum/atom_hud/hud = GLOB.huds[DATA_HUD_DIAGNOSTIC_ADVANCED]
|
||||
var/mob/living/brain/B = M.brainmob
|
||||
hud.add_hud_to(B)
|
||||
|
||||
//Ore Box Controls
|
||||
|
||||
///Special equipment for the Clarke mech, handles moving ore without giving the mech a hydraulic clamp and cargo compartment.
|
||||
/obj/item/mecha_parts/mecha_equipment/orebox_manager
|
||||
name = "ore storage module"
|
||||
desc = "An automated ore box management device."
|
||||
icon_state = "mecha_clamp" //None of this should matter, this shouldn't ever exist outside a mech anyway.
|
||||
selectable = FALSE
|
||||
detachable = FALSE
|
||||
salvageable = FALSE
|
||||
/// Var to avoid istype checking every time the topic button is pressed. This will only work inside Clarke mechs.
|
||||
var/obj/mecha/working/clarke/hostmech
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/orebox_manager/attach(obj/mecha/M)
|
||||
. = ..()
|
||||
if(istype(M, /obj/mecha/working/clarke))
|
||||
hostmech = M
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/orebox_manager/detach()
|
||||
hostmech = null //just in case
|
||||
return ..()
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/orebox_manager/Topic(href,href_list)
|
||||
. = ..()
|
||||
if(!hostmech || !hostmech.box)
|
||||
return
|
||||
hostmech.box.dump_box_contents()
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/orebox_manager/get_equip_info()
|
||||
return "[..()] [hostmech?.box ? "<a href='?src=[REF(src)];mode=0'>Unload Cargo</a>" : "Error"]"
|
||||
@@ -4,8 +4,10 @@
|
||||
icon_state = "ripley"
|
||||
silicon_icon_state = "ripley-empty"
|
||||
step_in = 1.5 //Move speed, lower is faster.
|
||||
var/fast_pressure_step_in = 1.5 //step_in while in low pressure conditions
|
||||
var/slow_pressure_step_in = 2.0 //step_in while in normal pressure conditions
|
||||
/// How fast the mech is in low pressure
|
||||
var/fast_pressure_step_in = 1.5
|
||||
/// How fast the mech is in normal pressure
|
||||
var/slow_pressure_step_in = 2
|
||||
max_temperature = 20000
|
||||
max_integrity = 200
|
||||
lights_power = 7
|
||||
@@ -14,35 +16,21 @@
|
||||
max_equip = 6
|
||||
wreckage = /obj/structure/mecha_wreckage/ripley
|
||||
internals_req_access = list(ACCESS_MECH_ENGINE, ACCESS_MECH_SCIENCE, ACCESS_MECH_MINING)
|
||||
var/list/cargo = new
|
||||
var/cargo_capacity = 15
|
||||
var/hides = 0
|
||||
enclosed = FALSE //Normal ripley has an open cockpit design
|
||||
enter_delay = 10 //can enter in a quarter of the time of other mechs
|
||||
exit_delay = 10
|
||||
opacity = FALSE //Ripley has a window
|
||||
/// Amount of Goliath hides attached to the mech
|
||||
var/hides = 0
|
||||
/// List of all things in Ripley's Cargo Compartment
|
||||
var/list/cargo = new
|
||||
/// How much things Ripley can carry in their Cargo Compartment
|
||||
var/cargo_capacity = 15
|
||||
|
||||
/obj/mecha/working/ripley/Move()
|
||||
. = ..()
|
||||
if(.)
|
||||
collect_ore()
|
||||
update_pressure()
|
||||
|
||||
/obj/mecha/working/ripley/proc/collect_ore()
|
||||
if(locate(/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp) in equipment)
|
||||
var/obj/structure/ore_box/ore_box = locate(/obj/structure/ore_box) in cargo
|
||||
if(ore_box)
|
||||
for(var/obj/item/stack/ore/ore in range(1, src))
|
||||
if(ore.Adjacent(src) && ((get_dir(src, ore) & dir) || ore.loc == loc)) //we can reach it and it's in front of us? grab it!
|
||||
ore.forceMove(ore_box)
|
||||
|
||||
/obj/mecha/working/ripley/Destroy()
|
||||
for(var/atom/movable/A in cargo)
|
||||
A.forceMove(drop_location())
|
||||
step_rand(A)
|
||||
cargo.Cut()
|
||||
return ..()
|
||||
|
||||
/obj/mecha/working/ripley/go_out()
|
||||
..()
|
||||
update_icon()
|
||||
@@ -56,40 +44,29 @@
|
||||
possible_int_damage -= (MECHA_INT_TEMP_CONTROL + MECHA_INT_TANK_BREACH) //if we don't even have an air tank, these two doesn't make a ton of sense.
|
||||
. = ..()
|
||||
|
||||
|
||||
/obj/mecha/working/ripley/Initialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/armor_plate,3,/obj/item/stack/sheet/animalhide/goliath_hide,list("melee" = 10, "bullet" = 5, "laser" = 5))
|
||||
|
||||
|
||||
/obj/mecha/working/ripley/Destroy()
|
||||
for(var/atom/movable/A in cargo)
|
||||
A.forceMove(drop_location())
|
||||
step_rand(A)
|
||||
cargo.Cut()
|
||||
return ..()
|
||||
|
||||
/obj/mecha/working/ripley/mkii
|
||||
desc = "Autonomous Power Loader Unit MK-II. This prototype Ripley is refitted with a pressurized cabin, trading its prior speed for atmospheric protection"
|
||||
desc = "Autonomous Power Loader Unit MK-II. This prototype Ripley is refitted with a pressurized cabin, trading its prior speed for atmospheric protection and armor."
|
||||
name = "\improper APLU MK-II \"Ripley\""
|
||||
icon_state = "ripleymkii"
|
||||
fast_pressure_step_in = 2 //step_in while in low pressure conditions
|
||||
slow_pressure_step_in = 4 //step_in while in normal pressure conditions
|
||||
step_in = 4
|
||||
armor = list("melee" = 40, "bullet" = 20, "laser" = 10, "energy" = 20, "bomb" = 40, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100)
|
||||
wreckage = /obj/structure/mecha_wreckage/ripley/mkii
|
||||
enclosed = TRUE
|
||||
enter_delay = 40
|
||||
silicon_icon_state = null
|
||||
opacity = TRUE
|
||||
|
||||
/obj/mecha/working/ripley/firefighter
|
||||
desc = "Autonomous Power Loader Unit MK-III. This model is refitted with a pressurized cabin and additional thermal protection."
|
||||
name = "\improper APLU MK-III \"Firefighter\""
|
||||
icon_state = "firefighter"
|
||||
max_temperature = 65000
|
||||
max_temperature = 30000
|
||||
max_integrity = 250
|
||||
fast_pressure_step_in = 2 //step_in while in low pressure conditions
|
||||
slow_pressure_step_in = 4 //step_in while in normal pressure conditions
|
||||
step_in = 4
|
||||
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
|
||||
lights_power = 7
|
||||
armor = list("melee" = 40, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 60, "bio" = 0, "rad" = 70, "fire" = 100, "acid" = 100)
|
||||
max_equip = 5 // More armor, less tools
|
||||
wreckage = /obj/structure/mecha_wreckage/ripley/firefighter
|
||||
wreckage = /obj/structure/mecha_wreckage/ripley/mkii
|
||||
enclosed = TRUE
|
||||
enter_delay = 40
|
||||
silicon_icon_state = null
|
||||
@@ -197,18 +174,6 @@
|
||||
output += "</div>"
|
||||
return output
|
||||
|
||||
/obj/mecha/working/ripley/proc/update_pressure()
|
||||
var/turf/T = get_turf(loc)
|
||||
|
||||
if(lavaland_equipment_pressure_check(T))
|
||||
step_in = fast_pressure_step_in
|
||||
for(var/obj/item/mecha_parts/mecha_equipment/drill/drill in equipment)
|
||||
drill.equip_cooldown = initial(drill.equip_cooldown)/2
|
||||
else
|
||||
step_in = slow_pressure_step_in
|
||||
for(var/obj/item/mecha_parts/mecha_equipment/drill/drill in equipment)
|
||||
drill.equip_cooldown = initial(drill.equip_cooldown)
|
||||
|
||||
/obj/mecha/working/ripley/relay_container_resist(mob/living/user, obj/O)
|
||||
to_chat(user, "<span class='notice'>You lean on the back of [O] and start pushing so it falls out of [src].</span>")
|
||||
if(do_after(user, 300, target = O))
|
||||
@@ -220,3 +185,20 @@
|
||||
else
|
||||
if(user.loc == src) //so we don't get the message if we resisted multiple times and succeeded.
|
||||
to_chat(user, "<span class='warning'>You fail to push [O] out of [src]!</span>")
|
||||
/**
|
||||
* Makes the mecha go faster and halves the mecha drill cooldown if in Lavaland pressure.
|
||||
*
|
||||
* Checks for Lavaland pressure, if that works out the mech's speed is equal to fast_pressure_step_in and the cooldown for the mecha drill is halved. If not it uses slow_pressure_step_in and drill cooldown is normal.
|
||||
*/
|
||||
/obj/mecha/working/ripley/proc/update_pressure()
|
||||
var/turf/T = get_turf(loc)
|
||||
|
||||
if(lavaland_equipment_pressure_check(T))
|
||||
step_in = fast_pressure_step_in
|
||||
for(var/obj/item/mecha_parts/mecha_equipment/drill/drill in equipment)
|
||||
drill.equip_cooldown = initial(drill.equip_cooldown) * 0.5
|
||||
|
||||
else
|
||||
step_in = slow_pressure_step_in
|
||||
for(var/obj/item/mecha_parts/mecha_equipment/drill/drill in equipment)
|
||||
drill.equip_cooldown = initial(drill.equip_cooldown)
|
||||
|
||||
@@ -1,2 +1,20 @@
|
||||
/obj/mecha/working
|
||||
internal_damage_threshold = 60
|
||||
|
||||
/obj/mecha/working/Move()
|
||||
. = ..()
|
||||
if(.)
|
||||
collect_ore()
|
||||
|
||||
/**
|
||||
* Handles collecting ore.
|
||||
*
|
||||
* Checks for a hydraulic clamp or ore box manager and if it finds an ore box inside them puts ore in the ore box.
|
||||
*/
|
||||
/obj/mecha/working/proc/collect_ore()
|
||||
if((locate(/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp) in equipment) || (locate(/obj/item/mecha_parts/mecha_equipment/orebox_manager) in equipment))
|
||||
var/obj/structure/ore_box/ore_box = locate(/obj/structure/ore_box) in contents
|
||||
if(ore_box)
|
||||
for(var/obj/item/stack/ore/ore in range(1, src))
|
||||
if(ore.Adjacent(src) && ((get_dir(src, ore) & dir) || ore.loc == loc)) //we can reach it and it's in front of us? grab it!
|
||||
ore.forceMove(ore_box)
|
||||
|
||||
@@ -101,14 +101,6 @@
|
||||
<li>Install the external reinforced armor plating (Not included due to Nanotrasen regulations. Can be made using 5 reinforced metal sheets.)</li>
|
||||
<li>Secure the external reinforced armor plating with a wrench</li>
|
||||
<li>Weld the external reinforced armor plating to the chassis</li>
|
||||
<li></li>
|
||||
<li>Additional Information:</li>
|
||||
<li>The firefighting variation is made in a similar fashion.</li>
|
||||
<li>A firesuit must be connected to the Firefighter chassis for heat shielding.</li>
|
||||
<li>Internal armor is plasteel for additional strength.</li>
|
||||
<li>External armor must be installed in 2 parts, totaling 10 sheets.</li>
|
||||
<li>Completed mech is more resiliant against fire, and is a bit more durable overall</li>
|
||||
<li>Nanotrasen is determined to the safety of its <s>investments</s> employees.</li>
|
||||
</ol>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -503,64 +503,68 @@
|
||||
|
||||
/obj/item/toy/prize/ripley
|
||||
name = "toy Ripley"
|
||||
desc = "Mini-Mecha action figure! Collect them all! 1/12."
|
||||
desc = "Mini-Mecha action figure! Collect them all! 1/13."
|
||||
|
||||
/obj/item/toy/prize/fireripley
|
||||
name = "toy firefighting Ripley"
|
||||
desc = "Mini-Mecha action figure! Collect them all! 2/12."
|
||||
desc = "Mini-Mecha action figure! Collect them all! 2/13."
|
||||
icon_state = "fireripleytoy"
|
||||
|
||||
/obj/item/toy/prize/deathripley
|
||||
name = "toy deathsquad Ripley"
|
||||
desc = "Mini-Mecha action figure! Collect them all! 3/12."
|
||||
desc = "Mini-Mecha action figure! Collect them all! 3/13."
|
||||
icon_state = "deathripleytoy"
|
||||
|
||||
/obj/item/toy/prize/gygax
|
||||
name = "toy Gygax"
|
||||
desc = "Mini-Mecha action figure! Collect them all! 4/12."
|
||||
desc = "Mini-Mecha action figure! Collect them all! 4/13."
|
||||
icon_state = "gygaxtoy"
|
||||
|
||||
/obj/item/toy/prize/durand
|
||||
name = "toy Durand"
|
||||
desc = "Mini-Mecha action figure! Collect them all! 5/12."
|
||||
icon_state = "durandprize"
|
||||
desc = "Mini-Mecha action figure! Collect them all! 5/13."
|
||||
icon_state = "durandtoy"
|
||||
|
||||
/obj/item/toy/prize/honk
|
||||
name = "toy H.O.N.K."
|
||||
desc = "Mini-Mecha action figure! Collect them all! 6/12."
|
||||
icon_state = "honkprize"
|
||||
desc = "Mini-Mecha action figure! Collect them all! 6/13."
|
||||
icon_state = "honktoy"
|
||||
|
||||
/obj/item/toy/prize/marauder
|
||||
name = "toy Marauder"
|
||||
desc = "Mini-Mecha action figure! Collect them all! 7/12."
|
||||
icon_state = "marauderprize"
|
||||
desc = "Mini-Mecha action figure! Collect them all! 7/13."
|
||||
icon_state = "maraudertoy"
|
||||
|
||||
/obj/item/toy/prize/seraph
|
||||
name = "toy Seraph"
|
||||
desc = "Mini-Mecha action figure! Collect them all! 8/12."
|
||||
icon_state = "seraphprize"
|
||||
desc = "Mini-Mecha action figure! Collect them all! 8/13."
|
||||
icon_state = "seraphtoy"
|
||||
|
||||
/obj/item/toy/prize/mauler
|
||||
name = "toy Mauler"
|
||||
desc = "Mini-Mecha action figure! Collect them all! 9/12."
|
||||
icon_state = "maulerprize"
|
||||
desc = "Mini-Mecha action figure! Collect them all! 9/13."
|
||||
icon_state = "maulertoy"
|
||||
|
||||
/obj/item/toy/prize/odysseus
|
||||
name = "toy Odysseus"
|
||||
desc = "Mini-Mecha action figure! Collect them all! 10/12."
|
||||
icon_state = "odysseusprize"
|
||||
desc = "Mini-Mecha action figure! Collect them all! 10/13."
|
||||
icon_state = "odysseustoy"
|
||||
|
||||
/obj/item/toy/prize/phazon
|
||||
name = "toy Phazon"
|
||||
desc = "Mini-Mecha action figure! Collect them all! 11/12."
|
||||
icon_state = "phazonprize"
|
||||
desc = "Mini-Mecha action figure! Collect them all! 11/13."
|
||||
icon_state = "phazontoy"
|
||||
|
||||
/obj/item/toy/prize/reticence
|
||||
name = "toy Reticence"
|
||||
desc = "Mini-Mecha action figure! Collect them all! 12/12."
|
||||
icon_state = "reticenceprize"
|
||||
desc = "Mini-Mecha action figure! Collect them all! 12/13."
|
||||
icon_state = "reticencetoy"
|
||||
quiet = 1
|
||||
|
||||
/obj/item/toy/prize/clarke
|
||||
name = "toy Clarke"
|
||||
desc = "Mini-Mecha action figure! Collect them all! 13/13."
|
||||
icon_state = "clarketoy"
|
||||
|
||||
/obj/item/toy/talking
|
||||
name = "talking action figure"
|
||||
|
||||
@@ -18,10 +18,10 @@
|
||||
reward = 13000
|
||||
wanted_types = list(/obj/mecha/working/ripley/mkii)
|
||||
|
||||
/datum/bounty/item/mech/firefighter
|
||||
name = "APLU \"Firefighter\""
|
||||
reward = 18000
|
||||
wanted_types = list(/obj/mecha/working/ripley/firefighter)
|
||||
/datum/bounty/item/mech/clarke
|
||||
name = "Clarke"
|
||||
reward = 16000
|
||||
wanted_types = list(/obj/mecha/working/clarke)
|
||||
|
||||
/datum/bounty/item/mech/odysseus
|
||||
name = "Odysseus"
|
||||
|
||||
@@ -148,6 +148,7 @@
|
||||
/obj/item/toy/prize/phazon,
|
||||
/obj/item/toy/prize/reticence,
|
||||
/obj/item/toy/prize/honk,
|
||||
/obj/item/toy/prize/clarke,
|
||||
/obj/item/toy/plush/carpplushie,
|
||||
/obj/item/toy/redbutton,
|
||||
/obj/item/toy/windupToolbox,
|
||||
|
||||
@@ -917,19 +917,21 @@
|
||||
/datum/design/conveyor_belt
|
||||
name = "Conveyor Belt"
|
||||
id = "conveyor_belt"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
materials = list(/datum/material/iron = 3000)
|
||||
build_path = /obj/item/stack/conveyor
|
||||
category = list("initial", "Construction")
|
||||
category = list("initial", "Construction", "Electronics")
|
||||
maxstack = 30
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/conveyor_switch
|
||||
name = "Conveyor Belt Switch"
|
||||
id = "conveyor_switch"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
materials = list(/datum/material/iron = 450, /datum/material/glass = 190)
|
||||
build_path = /obj/item/conveyor_switch_construct
|
||||
category = list("initial", "Construction")
|
||||
category = list("initial", "Construction", "Electronics")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/laptop
|
||||
name = "Laptop Frame"
|
||||
|
||||
@@ -133,6 +133,22 @@
|
||||
category = list("Exosuit Modules")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/board/clarke_main
|
||||
name = "\"Clarke\" Central Control module"
|
||||
desc = "Allows for the construction of a \"Clarke\" Central Control module."
|
||||
id = "clarke_main"
|
||||
build_path = /obj/item/circuitboard/mecha/clarke/main
|
||||
category = list("Exosuit Modules")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/board/clarke_peri
|
||||
name = "\"Clarke\" Peripherals Control module"
|
||||
desc = "Allows for the construction of a \"Clarke\" Peripheral Control module."
|
||||
id = "clarke_peri"
|
||||
build_path = /obj/item/circuitboard/mecha/clarke/peripherals
|
||||
category = list("Exosuit Modules")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
////////////////////////////////////////
|
||||
/////////// Mecha Equpment /////////////
|
||||
////////////////////////////////////////
|
||||
|
||||
@@ -72,16 +72,6 @@
|
||||
construction_time = 100
|
||||
category = list("Ripley")
|
||||
|
||||
//firefighter subtype
|
||||
/datum/design/firefighter_chassis
|
||||
name = "Exosuit Chassis (APLU \"Firefighter\")"
|
||||
id = "firefighter_chassis"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/chassis/firefighter
|
||||
materials = list(/datum/material/iron=20000)
|
||||
construction_time = 100
|
||||
category = list("Firefighter")
|
||||
|
||||
/datum/design/ripley_torso
|
||||
name = "Exosuit Torso (APLU \"Ripley\")"
|
||||
id = "ripley_torso"
|
||||
@@ -475,6 +465,52 @@
|
||||
construction_time = 300
|
||||
category = list("Phazon")
|
||||
|
||||
//Clarke
|
||||
/datum/design/clarke_chassis
|
||||
name = "Exosuit Chassis (\"Clarke\")"
|
||||
id = "clarke_chassis"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/chassis/clarke
|
||||
materials = list(/datum/material/iron=20000)
|
||||
construction_time = 100
|
||||
category = list("Clarke")
|
||||
|
||||
/datum/design/clarke_torso
|
||||
name = "Exosuit Torso (\"Clarke\")"
|
||||
id = "clarke_torso"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/part/clarke_torso
|
||||
materials = list(/datum/material/iron=20000,/datum/material/glass = 7500)
|
||||
construction_time = 200
|
||||
category = list("Clarke")
|
||||
|
||||
/datum/design/clarke_head
|
||||
name = "Exosuit Head (\"Clarke\")"
|
||||
id = "clarke_head"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/part/clarke_head
|
||||
materials = list(/datum/material/iron=6000,/datum/material/glass = 10000)
|
||||
construction_time = 100
|
||||
category = list("Clarke")
|
||||
|
||||
/datum/design/clarke_left_arm
|
||||
name = "Exosuit Left Arm (\"Clarke\")"
|
||||
id = "clarke_left_arm"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/part/clarke_left_arm
|
||||
materials = list(/datum/material/iron=15000)
|
||||
construction_time = 150
|
||||
category = list("Clarke")
|
||||
|
||||
/datum/design/clarke_right_arm
|
||||
name = "Exosuit Right Arm (\"Clarke\")"
|
||||
id = "clarke_right_arm"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/part/clarke_right_arm
|
||||
materials = list(/datum/material/iron=15000)
|
||||
construction_time = 150
|
||||
category = list("Clarke")
|
||||
|
||||
//Exosuit Equipment
|
||||
/datum/design/ripleyupgrade
|
||||
name = "Ripley MK-1 to MK-II conversion kit"
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
design_ids = list("basic_matter_bin", "basic_cell", "basic_scanning", "basic_capacitor", "basic_micro_laser", "micro_mani", "c-reader", "desttagger", "salestagger", "handlabel", "packagewrap",
|
||||
"destructive_analyzer", "circuit_imprinter", "experimentor", "rdconsole", "bepis", "design_disk", "tech_disk", "rdserver", "rdservercontrol", "mechfab",
|
||||
"paystand", "space_heater", "bucket", "sec_rshot", "sec_beanbag_slug", "sec_bshot", "sec_slug", "sec_Islug", "sec_dart", "sec_38", "rglass", "plasteel",
|
||||
"plastitanium", "plasmaglass", "plasmareinforcedglass", "titaniumglass", "plastitaniumglass", "plastic_knife", "plastic_fork", "plastic_spoon")
|
||||
"plastitanium", "plasmaglass", "plasmareinforcedglass", "titaniumglass", "plastitaniumglass", "plastic_knife", "plastic_fork", "plastic_spoon", "conveyor_belt", "conveyor_switch")
|
||||
|
||||
/datum/techweb_node/mmi
|
||||
id = "mmi"
|
||||
@@ -33,7 +33,7 @@
|
||||
starting_node = TRUE
|
||||
display_name = "Mechanical Exosuits"
|
||||
description = "Mechanized exosuits that are several magnitudes stronger and more powerful than the average human."
|
||||
design_ids = list("mecha_tracking", "mechacontrol", "mechapower", "mech_recharger", "ripley_chassis", "firefighter_chassis", "ripley_torso", "ripley_left_arm",
|
||||
design_ids = list("mecha_tracking", "mechacontrol", "mechapower", "mech_recharger", "ripley_chassis", "ripley_torso", "ripley_left_arm",
|
||||
"ripley_right_arm", "ripley_left_leg", "ripley_right_leg", "ripley_main", "ripley_peri", "ripleyupgrade", "mech_hydraulic_clamp")
|
||||
|
||||
/datum/techweb_node/mech_tools
|
||||
@@ -733,6 +733,15 @@
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
|
||||
export_price = 5000
|
||||
|
||||
/datum/techweb_node/clarke
|
||||
id = "mecha_clarke"
|
||||
display_name = "EXOSUIT: Clarke"
|
||||
description = "Clarke exosuit designs"
|
||||
prereq_ids = list("engineering")
|
||||
design_ids = list("clarke_chassis", "clarke_torso", "clarke_head", "clarke_left_arm", "clarke_right_arm", "clarke_main", "clarke_peri")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
|
||||
export_price = 5000
|
||||
|
||||
/datum/techweb_node/gygax
|
||||
id = "mech_gygax"
|
||||
display_name = "EXOSUIT: Gygax"
|
||||
|
||||
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 152 KiB After Width: | Height: | Size: 162 KiB |
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 34 KiB |
@@ -74,7 +74,7 @@ As a Scientist, getting drunk just enough will speed up research. Skol!
|
||||
As a Roboticist, keep an ear out for anomaly announcements. If you get your hands on an anomaly core, you can build a Phazon mech!
|
||||
As a Roboticist, you can repair your cyborgs with a welding tool. If they have taken burn damage, you can remove their battery, expose the wiring with a screwdriver and replace their wires with a cable coil.
|
||||
As a Roboticist, you can reset a cyborg's module by cutting and mending the reset wire with a wire cutter.
|
||||
As a Roboticist, you can greatly help out Shaft Miners by building a Firefighter APLU equipped with a hydraulic clamp and plasma cutter. The mech is ash storm proof and can even walk across lava!
|
||||
As a Roboticist, you can greatly help out Shaft Miners by building a Clarke equipped with a hydraulic clamp and plasma cutter. The mech is ash storm proof and can even walk across lava!
|
||||
As a Roboticist, you can augment people with cyborg limbs. Augmented limbs can easily be repaired with cables and welders.
|
||||
As the AI, you can click on people's names to look at them. This only works if there are cameras that can see them, they aren't wearing agent IDs and aren't using digital camouflage as changelings.
|
||||
As the AI, you can quickly open and close doors by holding shift while clicking them, bolt them when holding ctrl, and even shock them while holding alt.
|
||||
|
||||
@@ -844,6 +844,7 @@
|
||||
#include "code\game\mecha\equipment\weapons\weapons.dm"
|
||||
#include "code\game\mecha\medical\medical.dm"
|
||||
#include "code\game\mecha\medical\odysseus.dm"
|
||||
#include "code\game\mecha\working\clarke.dm"
|
||||
#include "code\game\mecha\working\ripley.dm"
|
||||
#include "code\game\mecha\working\working.dm"
|
||||
#include "code\game\objects\buckling.dm"
|
||||
|
||||