mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 18:32:03 +00:00
- Mech Fabricator can be built. Contruction path is almost the same as for lathes, but you'll require 2 Matter Bins, 1 Manipulator, 1 Micro-Laser and 1 Console Screen.
- Added design for mech fabricator circuitboard. - Added origin_tech for some mech equipment. - Examining mecha chassis will show what construction step you're currently on. - Made Gygax construction reversible. - Moved global_iterator.dm and construction_datum.dm to code/datums/helper_datums - Split mecha_construction.dm into mecha_parts.dm and mecha_construction_paths.dm - Fixed wrong logic for mecha dna-checks. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1402 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
var/list/steps
|
||||
var/atom/holder
|
||||
var/result
|
||||
var/list/steps_desc
|
||||
|
||||
New(atom)
|
||||
..()
|
||||
@@ -12,12 +13,15 @@
|
||||
if(!holder) //don't want this without a holder
|
||||
spawn
|
||||
del src
|
||||
set_desc(steps.len)
|
||||
return
|
||||
|
||||
proc/next_step()
|
||||
steps.len--
|
||||
if(!steps.len)
|
||||
spawn_result()
|
||||
else
|
||||
set_desc(steps.len)
|
||||
return
|
||||
|
||||
proc/action(atom/used_atom,mob/user as mob)
|
||||
@@ -65,6 +69,11 @@
|
||||
L -= null
|
||||
return
|
||||
|
||||
proc/set_desc(index as num)
|
||||
var/list/step = steps[index]
|
||||
holder.desc = step["desc"]
|
||||
return
|
||||
|
||||
/datum/construction/reversible
|
||||
var/index
|
||||
|
||||
@@ -77,6 +86,8 @@
|
||||
index+=diff
|
||||
if(index==0)
|
||||
spawn_result()
|
||||
else
|
||||
set_desc(index)
|
||||
return
|
||||
|
||||
is_right_key(atom/used_atom) // returns index step
|
||||
@@ -7,7 +7,7 @@ Generally, the only thing you want to play with (meaning, redefine) is the proce
|
||||
It must contain all the things you want done.
|
||||
|
||||
Control functions:
|
||||
new - used to create datum. First argument (optional) - var list(to use in process() proc),
|
||||
new - used to create datum. First argument (optional) - var list(to use in process() proc) as list,
|
||||
second (optional) - autostart control.
|
||||
If autostart == TRUE, the loop will be started immediately after datum creation.
|
||||
|
||||
@@ -24,7 +24,7 @@ Control functions:
|
||||
|
||||
active() - Returns 1 if datum is active, 0 otherwise.
|
||||
|
||||
toggle() - toggles datum state. Returns 1 if datum activated, 0 otherwise
|
||||
toggle() - toggles datum state. Returns new datum state (see active()).
|
||||
|
||||
Misc functions:
|
||||
|
||||
@@ -38,14 +38,13 @@ Control vars:
|
||||
delay - delay between iterations
|
||||
|
||||
check_for_null - if equals TRUE, on each iteration the supplied arguments will be checked for nulls.
|
||||
If some varible equals null, the loop is stopped.
|
||||
If some varible equals null (and null only), the loop is stopped.
|
||||
Usefull, if some var unexpectedly becomes null - due to object deletion, for example.
|
||||
Of course, you can check the variables inside process() proc to prevent runtime errors.
|
||||
Of course, you can also check the variables inside process() proc to prevent runtime errors.
|
||||
|
||||
Data storage vars:
|
||||
|
||||
result - stores the value returned by process() proc
|
||||
|
||||
*/
|
||||
|
||||
/datum/global_iterator
|
||||
@@ -131,7 +130,7 @@ Data storage vars:
|
||||
|
||||
proc/toggle_null_checks()
|
||||
src.check_for_null = !src.check_for_null
|
||||
return
|
||||
return src.check_for_null
|
||||
|
||||
proc/toggle()
|
||||
if(!src.stop())
|
||||
@@ -197,3 +197,15 @@ obj/item/weapon/circuitboard/rdserver
|
||||
req_components = list(
|
||||
"/obj/item/weapon/cable_coil" = 2,
|
||||
"/obj/item/weapon/stock_parts/scanning_module" = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/mechfab
|
||||
name = "Circuit board (Exosuit Fabricator)"
|
||||
build_path = "/obj/machinery/mecha_part_fabricator"
|
||||
board_type = "machine"
|
||||
origin_tech = "programming=2;materials=3"
|
||||
frame_desc = "Requires 2 Matter Bins, 1 Manipulator, 1 Micro-Laser and 1 Console Screen."
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/matter_bin" = 2,
|
||||
"/obj/item/weapon/stock_parts/manipulator" = 1,
|
||||
"/obj/item/weapon/stock_parts/micro_laser" = 1,
|
||||
"/obj/item/weapon/stock_parts/console_screen" = 1)
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
icon = 'mech_construct.dmi'
|
||||
icon_state = "mecha_equip"
|
||||
force = 5
|
||||
origin_tech = "materials=2"
|
||||
construction_time = 100
|
||||
construction_cost = list("metal"=10000)
|
||||
var/equip_cooldown = 0
|
||||
|
||||
@@ -166,6 +166,7 @@
|
||||
name = "Mounted RCD"
|
||||
desc = "An exosuit-mounted Rapid Construction Device."
|
||||
icon_state = "mecha_rcd"
|
||||
origin_tech = "materials=4;bluespace=3;magnets=4;powerstorage=4"
|
||||
equip_cooldown = 20
|
||||
energy_drain = 250
|
||||
range = MELEE|RANGED
|
||||
@@ -270,6 +271,7 @@
|
||||
name = "Teleporter"
|
||||
desc = "An exosuit module that allows exosuits to teleport to any position in view."
|
||||
icon_state = "mecha_teleport"
|
||||
origin_tech = "bluespace=10"
|
||||
equip_cooldown = 300
|
||||
energy_drain = 1000
|
||||
range = RANGED
|
||||
@@ -290,6 +292,7 @@
|
||||
name = "Wormhole Generator"
|
||||
desc = "An exosuit module that allows generating of small quasi-stable wormholes."
|
||||
icon_state = "mecha_wholegen"
|
||||
origin_tech = "bluespace=3"
|
||||
equip_cooldown = 50
|
||||
energy_drain = 300
|
||||
range = RANGED
|
||||
@@ -339,6 +342,7 @@
|
||||
name = "Gravitational Catapult"
|
||||
desc = "An exosuit mounted Gravitational Catapult."
|
||||
icon_state = "mecha_teleport"
|
||||
origin_tech = "bluespace=2;magnets=3"
|
||||
equip_cooldown = 10
|
||||
energy_drain = 200
|
||||
range = MELEE|RANGED
|
||||
@@ -401,10 +405,11 @@
|
||||
name = "Armor Booster Module (Close Combat Weaponry)"
|
||||
desc = "Boosts exosuit armor against armed melee attacks."
|
||||
icon_state = "mecha_abooster_ccw"
|
||||
origin_tech = "materials=3"
|
||||
equip_cooldown = 10
|
||||
energy_drain = 50
|
||||
range = RANGED
|
||||
construction_cost = list("metal"=20000,"silver"=20000)
|
||||
construction_cost = list("metal"=20000,"silver"=5000)
|
||||
var/deflect_coeff = 1.15
|
||||
var/damage_coeff = 0.8
|
||||
|
||||
@@ -443,10 +448,11 @@
|
||||
name = "Armor Booster Module (Ranged Weaponry)"
|
||||
desc = "Boosts exosuit armor against ranged attacks. Completely blocks taser shots."
|
||||
icon_state = "mecha_abooster_proj"
|
||||
origin_tech = "materials=4"
|
||||
equip_cooldown = 10
|
||||
energy_drain = 50
|
||||
range = RANGED
|
||||
construction_cost = list("metal"=20000,"gold"=20000)
|
||||
construction_cost = list("metal"=20000,"gold"=5000)
|
||||
var/damage_coeff = 0.8
|
||||
|
||||
can_attach(obj/mecha/M as obj)
|
||||
@@ -516,6 +522,7 @@
|
||||
name = "Exosuit Repair Droid"
|
||||
desc = "Automated repair droid. Scans exosuit for damage and repairs it. Can fix almost all types of external or internal damage."
|
||||
icon_state = "repair_droid"
|
||||
origin_tech = "magnets=3;programming=3"
|
||||
equip_cooldown = 20
|
||||
energy_drain = 20
|
||||
range = RANGED
|
||||
|
||||
@@ -222,7 +222,7 @@
|
||||
src.icon_state = "mechfab3" //looks better than 'flick'
|
||||
src.use_power = 2
|
||||
src.updateUsrDialog()
|
||||
sleep(round(part.construction_time*time_coeff,0.1))
|
||||
sleep(get_construction_time_w_coeff(part,0.1))
|
||||
if(!src) return
|
||||
src.use_power = 1
|
||||
src.being_built.Move(get_step(src,EAST))
|
||||
@@ -300,12 +300,12 @@
|
||||
if("materials")
|
||||
diff = round(initial(resource_coeff) - (initial(resource_coeff)*T.level)/25,0.01)
|
||||
if(resource_coeff!=diff)
|
||||
resource_coeff = round(initial(resource_coeff) - (initial(resource_coeff)*T.level)/25,0.01)
|
||||
resource_coeff = diff
|
||||
output+="Production efficiency increased.<br>"
|
||||
if("programming")
|
||||
diff = round(initial(time_coeff) - (initial(time_coeff)*T.level)/25,0.01)
|
||||
diff = round(initial(time_coeff) - (initial(time_coeff)*T.level)/25,0.1)
|
||||
if(time_coeff!=diff)
|
||||
time_coeff = round(initial(time_coeff) - (initial(time_coeff)*T.level)/25,0.1)
|
||||
time_coeff = diff
|
||||
output+="Production routines updated.<br>"
|
||||
return output
|
||||
|
||||
@@ -346,6 +346,10 @@
|
||||
if (..())
|
||||
return
|
||||
user.machine = src
|
||||
var/turf/exit = get_step(src,EAST)
|
||||
if(exit.density)
|
||||
src.visible_message("<b>[src]</b> beeps, \"Error! Part outlet is obstructed\".")
|
||||
return
|
||||
if(temp)
|
||||
left_part = temp
|
||||
else if(src.being_built)
|
||||
|
||||
@@ -408,7 +408,7 @@
|
||||
spawn()
|
||||
var/obj/mecha/mecha = src
|
||||
// var/mob/M = src.occupant
|
||||
var/turf/T = src.loc
|
||||
var/turf/T = get_turf(src)
|
||||
var/wreckage = src.wreckage
|
||||
var/list/r_equipment = src.equipment
|
||||
src = null
|
||||
@@ -421,6 +421,8 @@
|
||||
for(var/obj/item/mecha_parts/mecha_equipment/E in r_equipment)
|
||||
if(prob(30))
|
||||
WR.equipment += E
|
||||
E.loc = WR
|
||||
E.equip_ready = 1
|
||||
E.reliability = rand(30,100)
|
||||
else
|
||||
E.loc = T
|
||||
@@ -611,7 +613,7 @@
|
||||
|
||||
/obj/mecha/verb/move_inside()
|
||||
set category = "Object"
|
||||
set name = "Enter Mecha"
|
||||
set name = "Enter Exosuit"
|
||||
set src in oview(1)
|
||||
|
||||
if (usr.stat || !ishuman(usr))
|
||||
@@ -627,9 +629,12 @@
|
||||
return
|
||||
*/
|
||||
var/passed
|
||||
if((src.dna && usr.dna.unique_enzymes==src.dna))
|
||||
if(src.dna)
|
||||
if(usr.dna.unique_enzymes==src.dna)
|
||||
passed = 1
|
||||
if(!passed && !src.operation_allowed(usr))
|
||||
else if(src.operation_allowed(usr))
|
||||
passed = 1
|
||||
if(!passed)
|
||||
usr << "\red Access denied"
|
||||
src.log_append_to_last("Permission denied.")
|
||||
return
|
||||
@@ -953,7 +958,7 @@
|
||||
user << "There's already a powercell installed."
|
||||
return
|
||||
|
||||
else if(istype(W, /obj/item/weapon/weldingtool) && W:welding)
|
||||
else if(istype(W, /obj/item/weapon/weldingtool) && W:welding && user.a_intent != "hurt")
|
||||
if (W:remove_fuel(0,user))
|
||||
if (src.internal_damage & MECHA_INT_TANK_BREACH)
|
||||
src.internal_damage &= ~MECHA_INT_TANK_BREACH
|
||||
|
||||
@@ -1,349 +1,3 @@
|
||||
/////////////////////////
|
||||
////// Mecha Parts //////
|
||||
/////////////////////////
|
||||
|
||||
/obj/item/mecha_parts
|
||||
name = "mecha part"
|
||||
icon = 'mech_construct.dmi'
|
||||
icon_state = "blank"
|
||||
w_class = 20
|
||||
flags = FPRINT | TABLEPASS | CONDUCT
|
||||
origin_tech = "programming=2;materials=2"
|
||||
var/construction_time = 100
|
||||
var/list/construction_cost = list("metal"=20000,"glass"=5000)
|
||||
|
||||
|
||||
/obj/item/mecha_parts/chassis
|
||||
name="Mecha Chassis"
|
||||
icon_state = "backbone"
|
||||
var/datum/construction/construct
|
||||
construction_cost = list("metal"=20000)
|
||||
flags = FPRINT | CONDUCT
|
||||
|
||||
attackby(obj/item/W as obj, mob/user as mob)
|
||||
if(!construct || !construct.action(W, user))
|
||||
..()
|
||||
return
|
||||
|
||||
attack_hand()
|
||||
return
|
||||
|
||||
/////////// Ripley
|
||||
|
||||
/obj/item/mecha_parts/chassis/ripley
|
||||
name = "Ripley Chassis"
|
||||
|
||||
New()
|
||||
..()
|
||||
construct = new /datum/construction/mecha/ripley_chassis(src)
|
||||
|
||||
/obj/item/mecha_parts/part/ripley_torso
|
||||
name="Ripley Torso"
|
||||
icon_state = "ripley_harness"
|
||||
origin_tech = "programming=2;materials=3;biotech=1"
|
||||
construction_time = 300
|
||||
construction_cost = list("metal"=40000,"glass"=15000)
|
||||
|
||||
/obj/item/mecha_parts/part/ripley_left_arm
|
||||
name="Ripley Left Arm"
|
||||
icon_state = "ripley_l_arm"
|
||||
origin_tech = "programming=2;materials=3"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=25000)
|
||||
|
||||
/obj/item/mecha_parts/part/ripley_right_arm
|
||||
name="Ripley Right Arm"
|
||||
icon_state = "ripley_r_arm"
|
||||
origin_tech = "programming=2;materials=3"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=25000)
|
||||
|
||||
/obj/item/mecha_parts/part/ripley_left_leg
|
||||
name="Ripley Left Leg"
|
||||
icon_state = "ripley_l_leg"
|
||||
origin_tech = "programming=2;materials=3"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=30000)
|
||||
|
||||
/obj/item/mecha_parts/part/ripley_right_leg
|
||||
name="Ripley Right Leg"
|
||||
icon_state = "ripley_r_leg"
|
||||
origin_tech = "programming=2;materials=3"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=30000)
|
||||
|
||||
///////// Gygax
|
||||
|
||||
/obj/item/mecha_parts/chassis/gygax
|
||||
name = "Gygax Chassis"
|
||||
construction_cost = list("metal"=25000)
|
||||
|
||||
New()
|
||||
..()
|
||||
construct = new /datum/construction/mecha/gygax_chassis(src)
|
||||
|
||||
/obj/item/mecha_parts/part/gygax_torso
|
||||
name="Gygax Torso"
|
||||
icon_state = "gygax_harness"
|
||||
origin_tech = "programming=2;materials=4;biotech=2"
|
||||
construction_time = 300
|
||||
construction_cost = list("metal"=50000,"glass"=20000)
|
||||
|
||||
/obj/item/mecha_parts/part/gygax_head
|
||||
name="Gygax Head"
|
||||
icon_state = "gygax_head"
|
||||
origin_tech = "programming=2;materials=4;magnets=3"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=20000,"glass"=10000)
|
||||
|
||||
/obj/item/mecha_parts/part/gygax_left_arm
|
||||
name="Gygax Left Arm"
|
||||
icon_state = "gygax_l_arm"
|
||||
origin_tech = "programming=2;materials=4"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=30000)
|
||||
|
||||
/obj/item/mecha_parts/part/gygax_right_arm
|
||||
name="Gygax Right Arm"
|
||||
icon_state = "gygax_r_arm"
|
||||
origin_tech = "programming=2;materials=4"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=30000)
|
||||
|
||||
/obj/item/mecha_parts/part/gygax_left_leg
|
||||
name="Gygax Left Leg"
|
||||
icon_state = "gygax_l_leg"
|
||||
origin_tech = "programming=2;materials=4"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=35000)
|
||||
|
||||
/obj/item/mecha_parts/part/gygax_right_leg
|
||||
name="Gygax Right Leg"
|
||||
icon_state = "gygax_r_leg"
|
||||
origin_tech = "programming=2;materials=4"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=35000)
|
||||
|
||||
/obj/item/mecha_parts/part/gygax_armour
|
||||
name="Gygax Armour Plates"
|
||||
icon_state = "gygax_armour"
|
||||
origin_tech = "materials=5;combat=4"
|
||||
construction_time = 600
|
||||
construction_cost = list("metal"=50000,"diamond"=10000)
|
||||
|
||||
|
||||
//////////// Durand
|
||||
|
||||
/obj/item/mecha_parts/chassis/durand
|
||||
name = "Durand Chassis"
|
||||
construction_cost = list("metal"=25000)
|
||||
|
||||
New()
|
||||
..()
|
||||
construct = new /datum/construction/mecha/durand_chassis(src)
|
||||
|
||||
/obj/item/mecha_parts/part/durand_torso
|
||||
name="Durand Torso"
|
||||
icon_state = "gygax_harness"
|
||||
origin_tech = "programming=2;materials=4;biotech=2"
|
||||
construction_time = 300
|
||||
construction_cost = list("metal"=55000,"glass"=20000,"silver"=10000)
|
||||
|
||||
/obj/item/mecha_parts/part/durand_head
|
||||
name="Durand Head"
|
||||
icon_state = "gygax_head"
|
||||
origin_tech = "programming=2;materials=4;magnets=3"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=25000,"glass"=10000,"silver"=5000)
|
||||
|
||||
/obj/item/mecha_parts/part/durand_left_arm
|
||||
name="Durand Left Arm"
|
||||
icon_state = "gygax_l_arm"
|
||||
origin_tech = "programming=2;materials=4"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=35000,"silver"=5000)
|
||||
|
||||
/obj/item/mecha_parts/part/durand_right_arm
|
||||
name="Durand Right Arm"
|
||||
icon_state = "gygax_r_arm"
|
||||
origin_tech = "programming=2;materials=4"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=35000,"silver"=5000)
|
||||
|
||||
/obj/item/mecha_parts/part/durand_left_leg
|
||||
name="Durand Left Leg"
|
||||
icon_state = "gygax_l_leg"
|
||||
origin_tech = "programming=2;materials=4"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=40000,"silver"=5000)
|
||||
|
||||
/obj/item/mecha_parts/part/durand_right_leg
|
||||
name="Durand Right Leg"
|
||||
icon_state = "gygax_r_leg"
|
||||
origin_tech = "programming=2;materials=4"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=40000,"silver"=5000)
|
||||
|
||||
/obj/item/mecha_parts/part/durand_armour
|
||||
name="Durand Armour Plates"
|
||||
icon_state = "gygax_armour"
|
||||
origin_tech = "materials=5;combat=4"
|
||||
construction_time = 600
|
||||
construction_cost = list("metal"=50000,"uranium"=10000)
|
||||
|
||||
|
||||
|
||||
////////// Firefighter
|
||||
|
||||
/obj/item/mecha_parts/chassis/firefighter
|
||||
name = "Ripley-on-Fire Chassis"
|
||||
|
||||
New()
|
||||
..()
|
||||
construct = new /datum/construction/mecha/firefighter_chassis(src)
|
||||
|
||||
/obj/item/mecha_parts/part/firefighter_torso
|
||||
name="Ripley-on-Fire Torso"
|
||||
icon_state = "ripley_harness"
|
||||
|
||||
/obj/item/mecha_parts/part/firefighter_left_arm
|
||||
name="Ripley-on-Fire Left Arm"
|
||||
icon_state = "ripley_l_arm"
|
||||
|
||||
/obj/item/mecha_parts/part/firefighter_right_arm
|
||||
name="Ripley-on-Fire Right Arm"
|
||||
icon_state = "ripley_r_arm"
|
||||
|
||||
/obj/item/mecha_parts/part/firefighter_left_leg
|
||||
name="Ripley-on-Fire Left Leg"
|
||||
icon_state = "ripley_l_leg"
|
||||
|
||||
/obj/item/mecha_parts/part/firefighter_right_leg
|
||||
name="Ripley-on-Fire Right Leg"
|
||||
icon_state = "ripley_r_leg"
|
||||
|
||||
|
||||
////////// HONK
|
||||
|
||||
/obj/item/mecha_parts/chassis/honker
|
||||
name = "H.O.N.K Chassis"
|
||||
|
||||
New()
|
||||
..()
|
||||
construct = new /datum/construction/mecha/honker_chassis(src)
|
||||
|
||||
/obj/item/mecha_parts/part/honker_torso
|
||||
name="H.O.N.K Torso"
|
||||
icon_state = "honker_harness"
|
||||
construction_time = 300
|
||||
construction_cost = list("metal"=35000,"glass"=10000,"bananium"=10000)
|
||||
|
||||
/obj/item/mecha_parts/part/honker_head
|
||||
name="H.O.N.K Head"
|
||||
icon_state = "honker_head"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=15000,"glass"=5000,"bananium"=5000)
|
||||
|
||||
/obj/item/mecha_parts/part/honker_left_arm
|
||||
name="H.O.N.K Left Arm"
|
||||
icon_state = "honker_l_arm"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=20000,"bananium"=5000)
|
||||
|
||||
/obj/item/mecha_parts/part/honker_right_arm
|
||||
name="H.O.N.K Right Arm"
|
||||
icon_state = "honker_r_arm"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=20000,"bananium"=5000)
|
||||
|
||||
/obj/item/mecha_parts/part/honker_left_leg
|
||||
name="H.O.N.K Left Leg"
|
||||
icon_state = "honker_l_leg"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=20000,"bananium"=5000)
|
||||
|
||||
/obj/item/mecha_parts/part/honker_right_leg
|
||||
name="H.O.N.K Right Leg"
|
||||
icon_state = "honker_r_leg"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=20000,"bananium"=5000)
|
||||
|
||||
|
||||
/obj/item/mecha_parts/circuitboard
|
||||
name = "Exosuit Circuit board"
|
||||
icon = 'module.dmi'
|
||||
icon_state = "std_mod"
|
||||
item_state = "electronic"
|
||||
flags = FPRINT | TABLEPASS| CONDUCT
|
||||
force = 5.0
|
||||
w_class = 2.0
|
||||
throwforce = 5.0
|
||||
throw_speed = 3
|
||||
throw_range = 15
|
||||
|
||||
ripley
|
||||
origin_tech = "programming=3"
|
||||
|
||||
ripley/peripherals
|
||||
name = "Circuit board (Ripley Peripherals Control module)"
|
||||
icon_state = "mcontroller"
|
||||
|
||||
ripley/main
|
||||
name = "Circuit board (Ripley Central Control module)"
|
||||
icon_state = "mainboard"
|
||||
|
||||
gygax
|
||||
origin_tech = "programming=4"
|
||||
|
||||
gygax/peripherals
|
||||
name = "Circuit board (Gygax Peripherals Control module)"
|
||||
icon_state = "mcontroller"
|
||||
|
||||
gygax/targeting
|
||||
name = "Circuit board (Gygax Weapon Control and Targeting module)"
|
||||
icon_state = "mcontroller"
|
||||
origin_tech = "programming=3;combat=3"
|
||||
|
||||
gygax/main
|
||||
name = "Circuit board (Gygax Central Control module)"
|
||||
icon_state = "mainboard"
|
||||
|
||||
durand
|
||||
origin_tech = "programming=4"
|
||||
|
||||
durand/peripherals
|
||||
name = "Circuit board (Durand Peripherals Control module)"
|
||||
icon_state = "mcontroller"
|
||||
|
||||
durand/targeting
|
||||
name = "Circuit board (Durand Weapon Control and Targeting module)"
|
||||
icon_state = "mcontroller"
|
||||
origin_tech = "programming=3;combat=3"
|
||||
|
||||
durand/main
|
||||
name = "Circuit board (Durand Central Control module)"
|
||||
icon_state = "mainboard"
|
||||
|
||||
firefighter/peripherals
|
||||
name = "Circuit board (Ripley-on-Fire Peripherals Control module)"
|
||||
icon_state = "mcontroller"
|
||||
|
||||
honker
|
||||
origin_tech = "programming=4"
|
||||
|
||||
honker/peripherals
|
||||
name = "Circuit board (H.O.N.K Peripherals Control module)"
|
||||
icon_state = "mcontroller"
|
||||
|
||||
honker/targeting
|
||||
name = "Circuit board (H.O.N.K Weapon Control and Targeting module)"
|
||||
icon_state = "mcontroller"
|
||||
|
||||
honker/main
|
||||
name = "Circuit board (H.O.N.K Central Control module)"
|
||||
icon_state = "mainboard"
|
||||
|
||||
|
||||
////////////////////////////////
|
||||
///// Construction datums //////
|
||||
////////////////////////////////
|
||||
@@ -435,20 +89,62 @@
|
||||
|
||||
/datum/construction/reversible/mecha/ripley
|
||||
result = "/obj/mecha/working/ripley"
|
||||
steps = list(list("key"=/obj/item/weapon/weldingtool,"backkey"=/obj/item/weapon/wrench),//1
|
||||
list("key"=/obj/item/weapon/wrench,"backkey"=/obj/item/weapon/crowbar),//2
|
||||
list("key"=/obj/item/stack/sheet/r_metal,"backkey"=/obj/item/weapon/weldingtool),//3
|
||||
list("key"=/obj/item/weapon/weldingtool,"backkey"=/obj/item/weapon/wrench),//4
|
||||
list("key"=/obj/item/weapon/wrench,"backkey"=/obj/item/weapon/crowbar),//5
|
||||
list("key"=/obj/item/stack/sheet/metal,"backkey"=/obj/item/weapon/screwdriver),//6
|
||||
list("key"=/obj/item/weapon/screwdriver,"backkey"=/obj/item/weapon/crowbar),//7
|
||||
list("key"=/obj/item/mecha_parts/circuitboard/ripley/peripherals,"backkey"=/obj/item/weapon/screwdriver),//8
|
||||
list("key"=/obj/item/weapon/screwdriver,"backkey"=/obj/item/weapon/crowbar),//9
|
||||
list("key"=/obj/item/mecha_parts/circuitboard/ripley/main,"backkey"=/obj/item/weapon/screwdriver),//10
|
||||
list("key"=/obj/item/weapon/wirecutters,"backkey"=/obj/item/weapon/screwdriver),//11
|
||||
list("key"=/obj/item/weapon/cable_coil,"backkey"=/obj/item/weapon/screwdriver),//12
|
||||
list("key"=/obj/item/weapon/screwdriver,"backkey"=/obj/item/weapon/wrench),//13
|
||||
list("key"=/obj/item/weapon/wrench)//14
|
||||
steps = list(
|
||||
//1
|
||||
list("key"=/obj/item/weapon/weldingtool,
|
||||
"backkey"=/obj/item/weapon/wrench,
|
||||
"desc"="External armor is wrenched."),
|
||||
//2
|
||||
list("key"=/obj/item/weapon/wrench,
|
||||
"backkey"=/obj/item/weapon/crowbar,
|
||||
"desc"="External armor is installed."),
|
||||
//3
|
||||
list("key"=/obj/item/stack/sheet/r_metal,
|
||||
"backkey"=/obj/item/weapon/weldingtool,
|
||||
"desc"="Internal armor is welded."),
|
||||
//4
|
||||
list("key"=/obj/item/weapon/weldingtool,
|
||||
"backkey"=/obj/item/weapon/wrench,
|
||||
"desc"="Internal armor is wrenched"),
|
||||
//5
|
||||
list("key"=/obj/item/weapon/wrench,
|
||||
"backkey"=/obj/item/weapon/crowbar,
|
||||
"desc"="Internal armor is installed"),
|
||||
//6
|
||||
list("key"=/obj/item/stack/sheet/metal,
|
||||
"backkey"=/obj/item/weapon/screwdriver,
|
||||
"desc"="Peripherals control module is secured"),
|
||||
//7
|
||||
list("key"=/obj/item/weapon/screwdriver,
|
||||
"backkey"=/obj/item/weapon/crowbar,
|
||||
"desc"="Peripherals control module is installed"),
|
||||
//8
|
||||
list("key"=/obj/item/mecha_parts/circuitboard/ripley/peripherals,
|
||||
"backkey"=/obj/item/weapon/screwdriver,
|
||||
"desc"="Central control module is secured"),
|
||||
//9
|
||||
list("key"=/obj/item/weapon/screwdriver,
|
||||
"backkey"=/obj/item/weapon/crowbar,
|
||||
"desc"="Central control module is installed"),
|
||||
//10
|
||||
list("key"=/obj/item/mecha_parts/circuitboard/ripley/main,
|
||||
"backkey"=/obj/item/weapon/screwdriver,
|
||||
"desc"="The wiring is adjusted"),
|
||||
//11
|
||||
list("key"=/obj/item/weapon/wirecutters,
|
||||
"backkey"=/obj/item/weapon/screwdriver,
|
||||
"desc"="The wiring is added"),
|
||||
//12
|
||||
list("key"=/obj/item/weapon/cable_coil,
|
||||
"backkey"=/obj/item/weapon/screwdriver,
|
||||
"desc"="The hydraulic systems are active."),
|
||||
//13
|
||||
list("key"=/obj/item/weapon/screwdriver,
|
||||
"backkey"=/obj/item/weapon/wrench,
|
||||
"desc"="The hydraulic systems are connected."),
|
||||
//14
|
||||
list("key"=/obj/item/weapon/wrench,
|
||||
"desc"="The hydraulic systems are disconnected.")
|
||||
)
|
||||
|
||||
action(atom/used_atom,mob/user as mob)
|
||||
@@ -561,94 +257,220 @@
|
||||
|
||||
spawn_result()
|
||||
var/obj/item/mecha_parts/chassis/const_holder = holder
|
||||
const_holder.construct = new /datum/construction/mecha/gygax(const_holder)
|
||||
const_holder.construct = new /datum/construction/reversible/mecha/gygax(const_holder)
|
||||
const_holder.density = 1
|
||||
spawn()
|
||||
del src
|
||||
return
|
||||
|
||||
|
||||
|
||||
/datum/construction/mecha/gygax
|
||||
/datum/construction/reversible/mecha/gygax
|
||||
result = "/obj/mecha/combat/gygax"
|
||||
steps = list(list("key"="/obj/item/weapon/weldingtool"),//1
|
||||
list("key"="/obj/item/weapon/wrench"),//2
|
||||
list("key"="/obj/item/mecha_parts/part/gygax_armour"),//3
|
||||
list("key"="/obj/item/weapon/weldingtool"),//4
|
||||
list("key"="/obj/item/weapon/wrench"),//5
|
||||
list("key"="/obj/item/stack/sheet/metal"),//6
|
||||
list("key"="/obj/item/weapon/screwdriver"),//7
|
||||
list("key"="/obj/item/weapon/stock_parts/capacitor/adv"),//8
|
||||
list("key"="/obj/item/weapon/screwdriver"),//9
|
||||
list("key"="/obj/item/weapon/stock_parts/scanning_module/adv"),//10
|
||||
list("key"="/obj/item/weapon/screwdriver"),//11
|
||||
list("key"="/obj/item/mecha_parts/circuitboard/gygax/targeting"),//12
|
||||
list("key"="/obj/item/weapon/screwdriver"),//13
|
||||
list("key"="/obj/item/mecha_parts/circuitboard/gygax/peripherals"),//14
|
||||
list("key"="/obj/item/weapon/screwdriver"),//15
|
||||
list("key"="/obj/item/mecha_parts/circuitboard/gygax/main"),//16
|
||||
list("key"="/obj/item/weapon/wirecutters"),//17
|
||||
list("key"="/obj/item/weapon/cable_coil"),//18
|
||||
list("key"="/obj/item/weapon/screwdriver"),//19
|
||||
list("key"="/obj/item/weapon/wrench")//20
|
||||
steps = list(
|
||||
//1
|
||||
list("key"=/obj/item/weapon/weldingtool,
|
||||
"backkey"=/obj/item/weapon/wrench,
|
||||
"desc"="External armor is wrenched."),
|
||||
//2
|
||||
list("key"=/obj/item/weapon/wrench,
|
||||
"backkey"=/obj/item/weapon/crowbar,
|
||||
"desc"="External armor is installed."),
|
||||
//3
|
||||
list("key"=/obj/item/mecha_parts/part/gygax_armour,
|
||||
"backkey"=/obj/item/weapon/weldingtool,
|
||||
"desc"="Internal armor is welded."),
|
||||
//4
|
||||
list("key"=/obj/item/weapon/weldingtool,
|
||||
"backkey"=/obj/item/weapon/wrench,
|
||||
"desc"="Internal armor is wrenched"),
|
||||
//5
|
||||
list("key"=/obj/item/weapon/wrench,
|
||||
"backkey"=/obj/item/weapon/crowbar,
|
||||
"desc"="Internal armor is installed"),
|
||||
//6
|
||||
list("key"=/obj/item/stack/sheet/metal,
|
||||
"backkey"=/obj/item/weapon/screwdriver,
|
||||
"desc"="Advanced capacitor is secured"),
|
||||
//7
|
||||
list("key"=/obj/item/weapon/screwdriver,
|
||||
"backkey"=/obj/item/weapon/crowbar,
|
||||
"desc"="Advanced capacitor is installed"),
|
||||
//8
|
||||
list("key"=/obj/item/weapon/stock_parts/capacitor/adv,
|
||||
"backkey"=/obj/item/weapon/screwdriver,
|
||||
"desc"="Advanced scanner module is secured"),
|
||||
//9
|
||||
list("key"=/obj/item/weapon/screwdriver,
|
||||
"backkey"=/obj/item/weapon/crowbar,
|
||||
"desc"="Advanced scanner module is installed"),
|
||||
//10
|
||||
list("key"=/obj/item/weapon/stock_parts/scanning_module/adv,
|
||||
"backkey"=/obj/item/weapon/screwdriver,
|
||||
"desc"="Targeting module is secured"),
|
||||
//11
|
||||
list("key"=/obj/item/weapon/screwdriver,
|
||||
"backkey"=/obj/item/weapon/crowbar,
|
||||
"desc"="Targeting module is installed"),
|
||||
//12
|
||||
list("key"=/obj/item/mecha_parts/circuitboard/gygax/targeting,
|
||||
"backkey"=/obj/item/weapon/screwdriver,
|
||||
"desc"="Peripherals control module is secured"),
|
||||
//13
|
||||
list("key"=/obj/item/weapon/screwdriver,
|
||||
"backkey"=/obj/item/weapon/crowbar,
|
||||
"desc"="Peripherals control module is installed"),
|
||||
//14
|
||||
list("key"=/obj/item/mecha_parts/circuitboard/gygax/peripherals,
|
||||
"backkey"=/obj/item/weapon/screwdriver,
|
||||
"desc"="Central control module is secured"),
|
||||
//15
|
||||
list("key"=/obj/item/weapon/screwdriver,
|
||||
"backkey"=/obj/item/weapon/crowbar,
|
||||
"desc"="Central control module is installed"),
|
||||
//16
|
||||
list("key"=/obj/item/mecha_parts/circuitboard/gygax/main,
|
||||
"backkey"=/obj/item/weapon/screwdriver,
|
||||
"desc"="The wiring is adjusted"),
|
||||
//17
|
||||
list("key"=/obj/item/weapon/wirecutters,
|
||||
"backkey"=/obj/item/weapon/screwdriver,
|
||||
"desc"="The wiring is added"),
|
||||
//18
|
||||
list("key"=/obj/item/weapon/cable_coil,
|
||||
"backkey"=/obj/item/weapon/screwdriver,
|
||||
"desc"="The hydraulic systems are active."),
|
||||
//19
|
||||
list("key"=/obj/item/weapon/screwdriver,
|
||||
"backkey"=/obj/item/weapon/wrench,
|
||||
"desc"="The hydraulic systems are connected."),
|
||||
//20
|
||||
list("key"=/obj/item/weapon/wrench,
|
||||
"desc"="The hydraulic systems are disconnected.")
|
||||
)
|
||||
|
||||
action(atom/used_atom,mob/user as mob)
|
||||
return check_step(used_atom,user)
|
||||
|
||||
custom_action(step, atom/used_atom, mob/user)
|
||||
custom_action(index, diff, atom/used_atom, mob/user)
|
||||
if(!..())
|
||||
return 0
|
||||
|
||||
//TODO: better messages.
|
||||
switch(step)
|
||||
switch(index)
|
||||
if(20)
|
||||
user.visible_message("[user] connects [holder] hydraulic systems", "You connect [holder] hydraulic systems.")
|
||||
if(19)
|
||||
user.visible_message("[user] adjusts [holder] hydraulic systems.", "You adjust [holder] hydraulic systems.")
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] activates [holder] hydraulic systems.", "You activate [holder] hydraulic systems.")
|
||||
else
|
||||
user.visible_message("[user] disconnects [holder] hydraulic systems", "You disconnect [holder] hydraulic systems.")
|
||||
if(18)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] adds the wiring to [holder].", "You add the wiring to [holder].")
|
||||
else
|
||||
user.visible_message("[user] deactivates [holder] hydraulic systems.", "You deactivate [holder] hydraulic systems.")
|
||||
if(17)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] adjusts the wiring of [holder].", "You adjust the wiring of [holder].")
|
||||
else
|
||||
user.visible_message("[user] removes the wiring from [holder].", "You remove the wiring from [holder].")
|
||||
var/obj/item/weapon/cable_coil/coil = new /obj/item/weapon/cable_coil(get_turf(holder))
|
||||
coil.amount = 4
|
||||
if(16)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the central control module into [holder].", "You install the central computer mainboard into [holder].")
|
||||
del used_atom
|
||||
else
|
||||
user.visible_message("[user] disconnects the wiring of [holder].", "You disconnect the wiring of [holder].")
|
||||
if(15)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the mainboard.", "You secure the mainboard.")
|
||||
else
|
||||
user.visible_message("[user] removes the central control module from [holder].", "You remove the central computer mainboard from [holder].")
|
||||
new /obj/item/mecha_parts/circuitboard/gygax/main(get_turf(holder))
|
||||
if(14)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the peripherals control module into [holder].", "You install the peripherals control module into [holder].")
|
||||
del used_atom
|
||||
else
|
||||
user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.")
|
||||
if(13)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.")
|
||||
else
|
||||
user.visible_message("[user] removes the peripherals control module from [holder].", "You remove the peripherals control module from [holder].")
|
||||
new /obj/item/mecha_parts/circuitboard/gygax/peripherals(get_turf(holder))
|
||||
if(12)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the weapon control module into [holder].", "You install the weapon control module into [holder].")
|
||||
del used_atom
|
||||
else
|
||||
user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.")
|
||||
if(11)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the weapon control module.", "You secure the weapon control module.")
|
||||
else
|
||||
user.visible_message("[user] removes the weapon control module from [holder].", "You remove the weapon control module from [holder].")
|
||||
new /obj/item/mecha_parts/circuitboard/gygax/targeting(get_turf(holder))
|
||||
if(10)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs advanced scanner module to [holder].", "You install advanced scanner module to [holder].")
|
||||
del used_atom
|
||||
else
|
||||
user.visible_message("[user] unfastens the weapon control module.", "You unfasten the weapon control module.")
|
||||
if(9)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the advanced scanner module.", "You secure the advanced scanner module.")
|
||||
else
|
||||
user.visible_message("[user] removes the advanced scanner module from [holder].", "You remove the advanced scanner module from [holder].")
|
||||
new /obj/item/weapon/stock_parts/scanning_module/adv(get_turf(holder))
|
||||
if(8)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs advanced capacitor to [holder].", "You install advanced capacitor to [holder].")
|
||||
del used_atom
|
||||
else
|
||||
user.visible_message("[user] unfastens the advanced scanner module.", "You unfasten the advanced scanner module.")
|
||||
if(7)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the advanced capacitor.", "You secure the advanced capacitor.")
|
||||
else
|
||||
user.visible_message("[user] removes the advanced capacitor from [holder].", "You remove the advanced capacitor from [holder].")
|
||||
new /obj/item/weapon/stock_parts/capacitor/adv(get_turf(holder))
|
||||
if(6)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs internal armor layer to [holder].", "You install internal armor layer to [holder].")
|
||||
else
|
||||
user.visible_message("[user] unfastens the advanced capacitor.", "You unfasten the advanced capacitor.")
|
||||
if(5)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures internal armor layer.", "You secure internal armor layer.")
|
||||
else
|
||||
user.visible_message("[user] pries internal armor layer from [holder].", "You prie internal armor layer from [holder].")
|
||||
var/obj/item/stack/sheet/metal/MS = new /obj/item/stack/sheet/metal(get_turf(holder))
|
||||
MS.amount = 5
|
||||
if(4)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] welds internal armor layer to [holder].", "You weld the internal armor layer to [holder].")
|
||||
else
|
||||
user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.")
|
||||
if(3)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs Gygax Armour Plates to [holder].", "You install Gygax Armour Plates to [holder].")
|
||||
holder.overlays += used_atom.icon_state
|
||||
del used_atom
|
||||
else
|
||||
user.visible_message("[user] cuts internal armor layer from [holder].", "You cut the internal armor layer from [holder].")
|
||||
if(2)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures Gygax Armour Plates.", "You secure Gygax Armour Plates.")
|
||||
else
|
||||
user.visible_message("[user] pries Gygax Armour Plates from [holder].", "You prie Gygax Armour Plates from [holder].")
|
||||
new /obj/item/mecha_parts/part/gygax_armour(get_turf(holder))
|
||||
if(1)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] welds Gygax Armour Plates to [holder].", "You weld Gygax Armour Plates to [holder].")
|
||||
else
|
||||
user.visible_message("[user] unfastens Gygax Armour Plates.", "You unfasten Gygax Armour Plates.")
|
||||
return 1
|
||||
|
||||
|
||||
@@ -922,10 +744,3 @@
|
||||
if(1)
|
||||
user.visible_message("[user] welds Durand Armour Plates to [holder].", "You weld Durand Armour Plates to [holder].")
|
||||
return 1
|
||||
|
||||
|
||||
|
||||
////////////////// misc ////////////////
|
||||
|
||||
|
||||
|
||||
346
code/game/mecha/mecha_parts.dm
Normal file
346
code/game/mecha/mecha_parts.dm
Normal file
@@ -0,0 +1,346 @@
|
||||
/////////////////////////
|
||||
////// Mecha Parts //////
|
||||
/////////////////////////
|
||||
|
||||
/obj/item/mecha_parts
|
||||
name = "mecha part"
|
||||
icon = 'mech_construct.dmi'
|
||||
icon_state = "blank"
|
||||
w_class = 20
|
||||
flags = FPRINT | TABLEPASS | CONDUCT
|
||||
origin_tech = "programming=2;materials=2"
|
||||
var/construction_time = 100
|
||||
var/list/construction_cost = list("metal"=20000,"glass"=5000)
|
||||
|
||||
|
||||
/obj/item/mecha_parts/chassis
|
||||
name="Mecha Chassis"
|
||||
icon_state = "backbone"
|
||||
var/datum/construction/construct
|
||||
construction_cost = list("metal"=20000)
|
||||
flags = FPRINT | CONDUCT
|
||||
|
||||
attackby(obj/item/W as obj, mob/user as mob)
|
||||
if(!construct || !construct.action(W, user))
|
||||
..()
|
||||
return
|
||||
|
||||
attack_hand()
|
||||
return
|
||||
|
||||
/////////// Ripley
|
||||
|
||||
/obj/item/mecha_parts/chassis/ripley
|
||||
name = "Ripley Chassis"
|
||||
|
||||
New()
|
||||
..()
|
||||
construct = new /datum/construction/mecha/ripley_chassis(src)
|
||||
|
||||
/obj/item/mecha_parts/part/ripley_torso
|
||||
name="Ripley Torso"
|
||||
icon_state = "ripley_harness"
|
||||
origin_tech = "programming=2;materials=3;biotech=2"
|
||||
construction_time = 300
|
||||
construction_cost = list("metal"=40000,"glass"=15000)
|
||||
|
||||
/obj/item/mecha_parts/part/ripley_left_arm
|
||||
name="Ripley Left Arm"
|
||||
icon_state = "ripley_l_arm"
|
||||
origin_tech = "programming=2;materials=3"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=25000)
|
||||
|
||||
/obj/item/mecha_parts/part/ripley_right_arm
|
||||
name="Ripley Right Arm"
|
||||
icon_state = "ripley_r_arm"
|
||||
origin_tech = "programming=2;materials=3"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=25000)
|
||||
|
||||
/obj/item/mecha_parts/part/ripley_left_leg
|
||||
name="Ripley Left Leg"
|
||||
icon_state = "ripley_l_leg"
|
||||
origin_tech = "programming=2;materials=3"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=30000)
|
||||
|
||||
/obj/item/mecha_parts/part/ripley_right_leg
|
||||
name="Ripley Right Leg"
|
||||
icon_state = "ripley_r_leg"
|
||||
origin_tech = "programming=2;materials=3"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=30000)
|
||||
|
||||
///////// Gygax
|
||||
|
||||
/obj/item/mecha_parts/chassis/gygax
|
||||
name = "Gygax Chassis"
|
||||
construction_cost = list("metal"=25000)
|
||||
|
||||
New()
|
||||
..()
|
||||
construct = new /datum/construction/mecha/gygax_chassis(src)
|
||||
|
||||
/obj/item/mecha_parts/part/gygax_torso
|
||||
name="Gygax Torso"
|
||||
icon_state = "gygax_harness"
|
||||
origin_tech = "programming=2;materials=5;biotech=3"
|
||||
construction_time = 300
|
||||
construction_cost = list("metal"=50000,"glass"=20000)
|
||||
|
||||
/obj/item/mecha_parts/part/gygax_head
|
||||
name="Gygax Head"
|
||||
icon_state = "gygax_head"
|
||||
origin_tech = "programming=2;materials=5;magnets=3"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=20000,"glass"=10000)
|
||||
|
||||
/obj/item/mecha_parts/part/gygax_left_arm
|
||||
name="Gygax Left Arm"
|
||||
icon_state = "gygax_l_arm"
|
||||
origin_tech = "programming=2;materials=5"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=30000)
|
||||
|
||||
/obj/item/mecha_parts/part/gygax_right_arm
|
||||
name="Gygax Right Arm"
|
||||
icon_state = "gygax_r_arm"
|
||||
origin_tech = "programming=2;materials=5"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=30000)
|
||||
|
||||
/obj/item/mecha_parts/part/gygax_left_leg
|
||||
name="Gygax Left Leg"
|
||||
icon_state = "gygax_l_leg"
|
||||
origin_tech = "programming=2;materials=5"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=35000)
|
||||
|
||||
/obj/item/mecha_parts/part/gygax_right_leg
|
||||
name="Gygax Right Leg"
|
||||
icon_state = "gygax_r_leg"
|
||||
origin_tech = "programming=2;materials=5"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=35000)
|
||||
|
||||
/obj/item/mecha_parts/part/gygax_armour
|
||||
name="Gygax Armour Plates"
|
||||
icon_state = "gygax_armour"
|
||||
origin_tech = "materials=5;combat=4"
|
||||
construction_time = 600
|
||||
construction_cost = list("metal"=50000,"diamond"=10000)
|
||||
|
||||
|
||||
//////////// Durand
|
||||
|
||||
/obj/item/mecha_parts/chassis/durand
|
||||
name = "Durand Chassis"
|
||||
construction_cost = list("metal"=25000)
|
||||
|
||||
New()
|
||||
..()
|
||||
construct = new /datum/construction/mecha/durand_chassis(src)
|
||||
|
||||
/obj/item/mecha_parts/part/durand_torso
|
||||
name="Durand Torso"
|
||||
icon_state = "gygax_harness"
|
||||
origin_tech = "programming=2;materials=5;biotech=3"
|
||||
construction_time = 300
|
||||
construction_cost = list("metal"=55000,"glass"=20000,"silver"=10000)
|
||||
|
||||
/obj/item/mecha_parts/part/durand_head
|
||||
name="Durand Head"
|
||||
icon_state = "gygax_head"
|
||||
origin_tech = "programming=2;materials=5;magnets=3"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=25000,"glass"=10000,"silver"=5000)
|
||||
|
||||
/obj/item/mecha_parts/part/durand_left_arm
|
||||
name="Durand Left Arm"
|
||||
icon_state = "gygax_l_arm"
|
||||
origin_tech = "programming=2;materials=5"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=35000,"silver"=5000)
|
||||
|
||||
/obj/item/mecha_parts/part/durand_right_arm
|
||||
name="Durand Right Arm"
|
||||
icon_state = "gygax_r_arm"
|
||||
origin_tech = "programming=2;materials=5"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=35000,"silver"=5000)
|
||||
|
||||
/obj/item/mecha_parts/part/durand_left_leg
|
||||
name="Durand Left Leg"
|
||||
icon_state = "gygax_l_leg"
|
||||
origin_tech = "programming=2;materials=5"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=40000,"silver"=5000)
|
||||
|
||||
/obj/item/mecha_parts/part/durand_right_leg
|
||||
name="Durand Right Leg"
|
||||
icon_state = "gygax_r_leg"
|
||||
origin_tech = "programming=2;materials=5"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=40000,"silver"=5000)
|
||||
|
||||
/obj/item/mecha_parts/part/durand_armour
|
||||
name="Durand Armour Plates"
|
||||
icon_state = "gygax_armour"
|
||||
origin_tech = "materials=5;combat=4"
|
||||
construction_time = 600
|
||||
construction_cost = list("metal"=50000,"uranium"=10000)
|
||||
|
||||
|
||||
|
||||
////////// Firefighter
|
||||
|
||||
/obj/item/mecha_parts/chassis/firefighter
|
||||
name = "Ripley-on-Fire Chassis"
|
||||
|
||||
New()
|
||||
..()
|
||||
construct = new /datum/construction/mecha/firefighter_chassis(src)
|
||||
|
||||
/obj/item/mecha_parts/part/firefighter_torso
|
||||
name="Ripley-on-Fire Torso"
|
||||
icon_state = "ripley_harness"
|
||||
|
||||
/obj/item/mecha_parts/part/firefighter_left_arm
|
||||
name="Ripley-on-Fire Left Arm"
|
||||
icon_state = "ripley_l_arm"
|
||||
|
||||
/obj/item/mecha_parts/part/firefighter_right_arm
|
||||
name="Ripley-on-Fire Right Arm"
|
||||
icon_state = "ripley_r_arm"
|
||||
|
||||
/obj/item/mecha_parts/part/firefighter_left_leg
|
||||
name="Ripley-on-Fire Left Leg"
|
||||
icon_state = "ripley_l_leg"
|
||||
|
||||
/obj/item/mecha_parts/part/firefighter_right_leg
|
||||
name="Ripley-on-Fire Right Leg"
|
||||
icon_state = "ripley_r_leg"
|
||||
|
||||
|
||||
////////// HONK
|
||||
|
||||
/obj/item/mecha_parts/chassis/honker
|
||||
name = "H.O.N.K Chassis"
|
||||
|
||||
New()
|
||||
..()
|
||||
construct = new /datum/construction/mecha/honker_chassis(src)
|
||||
|
||||
/obj/item/mecha_parts/part/honker_torso
|
||||
name="H.O.N.K Torso"
|
||||
icon_state = "honker_harness"
|
||||
construction_time = 300
|
||||
construction_cost = list("metal"=35000,"glass"=10000,"bananium"=10000)
|
||||
|
||||
/obj/item/mecha_parts/part/honker_head
|
||||
name="H.O.N.K Head"
|
||||
icon_state = "honker_head"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=15000,"glass"=5000,"bananium"=5000)
|
||||
|
||||
/obj/item/mecha_parts/part/honker_left_arm
|
||||
name="H.O.N.K Left Arm"
|
||||
icon_state = "honker_l_arm"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=20000,"bananium"=5000)
|
||||
|
||||
/obj/item/mecha_parts/part/honker_right_arm
|
||||
name="H.O.N.K Right Arm"
|
||||
icon_state = "honker_r_arm"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=20000,"bananium"=5000)
|
||||
|
||||
/obj/item/mecha_parts/part/honker_left_leg
|
||||
name="H.O.N.K Left Leg"
|
||||
icon_state = "honker_l_leg"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=20000,"bananium"=5000)
|
||||
|
||||
/obj/item/mecha_parts/part/honker_right_leg
|
||||
name="H.O.N.K Right Leg"
|
||||
icon_state = "honker_r_leg"
|
||||
construction_time = 200
|
||||
construction_cost = list("metal"=20000,"bananium"=5000)
|
||||
|
||||
|
||||
/obj/item/mecha_parts/circuitboard
|
||||
name = "Exosuit Circuit board"
|
||||
icon = 'module.dmi'
|
||||
icon_state = "std_mod"
|
||||
item_state = "electronic"
|
||||
flags = FPRINT | TABLEPASS| CONDUCT
|
||||
force = 5.0
|
||||
w_class = 2.0
|
||||
throwforce = 5.0
|
||||
throw_speed = 3
|
||||
throw_range = 15
|
||||
|
||||
ripley
|
||||
origin_tech = "programming=3"
|
||||
|
||||
ripley/peripherals
|
||||
name = "Circuit board (Ripley Peripherals Control module)"
|
||||
icon_state = "mcontroller"
|
||||
|
||||
ripley/main
|
||||
name = "Circuit board (Ripley Central Control module)"
|
||||
icon_state = "mainboard"
|
||||
|
||||
gygax
|
||||
origin_tech = "programming=4"
|
||||
|
||||
gygax/peripherals
|
||||
name = "Circuit board (Gygax Peripherals Control module)"
|
||||
icon_state = "mcontroller"
|
||||
|
||||
gygax/targeting
|
||||
name = "Circuit board (Gygax Weapon Control and Targeting module)"
|
||||
icon_state = "mcontroller"
|
||||
origin_tech = "programming=4;combat=4"
|
||||
|
||||
gygax/main
|
||||
name = "Circuit board (Gygax Central Control module)"
|
||||
icon_state = "mainboard"
|
||||
|
||||
durand
|
||||
origin_tech = "programming=4"
|
||||
|
||||
durand/peripherals
|
||||
name = "Circuit board (Durand Peripherals Control module)"
|
||||
icon_state = "mcontroller"
|
||||
|
||||
durand/targeting
|
||||
name = "Circuit board (Durand Weapon Control and Targeting module)"
|
||||
icon_state = "mcontroller"
|
||||
origin_tech = "programming=4;combat=4"
|
||||
|
||||
durand/main
|
||||
name = "Circuit board (Durand Central Control module)"
|
||||
icon_state = "mainboard"
|
||||
|
||||
firefighter/peripherals
|
||||
name = "Circuit board (Ripley-on-Fire Peripherals Control module)"
|
||||
icon_state = "mcontroller"
|
||||
|
||||
honker
|
||||
origin_tech = "programming=4"
|
||||
|
||||
honker/peripherals
|
||||
name = "Circuit board (H.O.N.K Peripherals Control module)"
|
||||
icon_state = "mcontroller"
|
||||
|
||||
honker/targeting
|
||||
name = "Circuit board (H.O.N.K Weapon Control and Targeting module)"
|
||||
icon_state = "mcontroller"
|
||||
|
||||
honker/main
|
||||
name = "Circuit board (H.O.N.K Central Control module)"
|
||||
icon_state = "mainboard"
|
||||
|
||||
|
||||
@@ -509,7 +509,7 @@ datum
|
||||
desc = "An exosuit module that allows generating of small quasi-stable wormholes."
|
||||
id = "mech_wormhole_gen"
|
||||
build_type = MECHFAB
|
||||
req_tech = list("bluepace" = 4)
|
||||
req_tech = list("bluepace" = 3)
|
||||
build_path = "/obj/item/mecha_parts/mecha_equipment/wormhole_generator"
|
||||
|
||||
mech_teleporter
|
||||
@@ -525,7 +525,7 @@ datum
|
||||
desc = "An exosuit-mounted Rapid Construction Device."
|
||||
id = "mech_rcd"
|
||||
build_type = MECHFAB
|
||||
req_tech = list("materials" = 4, "bluespace" = 4, "magnets" = 4, "powerstorage"=4)
|
||||
req_tech = list("materials" = 4, "bluespace" = 3, "magnets" = 4, "powerstorage"=4)
|
||||
build_path = "/obj/item/mecha_parts/mecha_equipment/tool/rcd"
|
||||
|
||||
mech_gravcatapult
|
||||
@@ -800,6 +800,16 @@ datum
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/circuitboard/rdserver"
|
||||
|
||||
mechfab
|
||||
name = "Exosuit Fabricator Board"
|
||||
desc = "The circuit board for an Exosuit Fabricator"
|
||||
id = "mechfab"
|
||||
req_tech = list("programming" = 2,"materials"=3)
|
||||
build_type = IMPRINTER
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/circuitboard/mechfab"
|
||||
|
||||
|
||||
/////////////////////////////////////////
|
||||
////////////Power Stuff//////////////////
|
||||
/////////////////////////////////////////
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
@@ -12,6 +12,7 @@
|
||||
#define FILE_DIR "code/ATMOSPHERICS/components/unary"
|
||||
#define FILE_DIR "code/datums"
|
||||
#define FILE_DIR "code/datums/diseases"
|
||||
#define FILE_DIR "code/datums/helper_datums"
|
||||
#define FILE_DIR "code/datums/spells"
|
||||
#define FILE_DIR "code/defines"
|
||||
#define FILE_DIR "code/defines/area"
|
||||
@@ -195,6 +196,8 @@
|
||||
#include "code\datums\diseases\robotic_transformation.dm"
|
||||
#include "code\datums\diseases\wizarditis.dm"
|
||||
#include "code\datums\diseases\xeno_transformation.dm"
|
||||
#include "code\datums\helper_datums\construction_datum.dm"
|
||||
#include "code\datums\helper_datums\global_iterator.dm"
|
||||
#include "code\datums\spells\blind.dm"
|
||||
#include "code\datums\spells\blink.dm"
|
||||
#include "code\datums\spells\conjure.dm"
|
||||
@@ -423,13 +426,12 @@
|
||||
#include "code\game\magic\cultist\ritual.dm"
|
||||
#include "code\game\magic\cultist\runes.dm"
|
||||
#include "code\game\magic\cultist\specialtalisman.dm"
|
||||
#include "code\game\mecha\construction_datum.dm"
|
||||
#include "code\game\mecha\global_iterator.dm"
|
||||
#include "code\game\mecha\mech_bay.dm"
|
||||
#include "code\game\mecha\mech_fabricator.dm"
|
||||
#include "code\game\mecha\mecha.dm"
|
||||
#include "code\game\mecha\mecha_construction.dm"
|
||||
#include "code\game\mecha\mecha_construction_paths.dm"
|
||||
#include "code\game\mecha\mecha_control_console.dm"
|
||||
#include "code\game\mecha\mecha_parts.dm"
|
||||
#include "code\game\mecha\mecha_wreckage.dm"
|
||||
#include "code\game\mecha\combat\combat.dm"
|
||||
#include "code\game\mecha\combat\durand.dm"
|
||||
|
||||
Reference in New Issue
Block a user