mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 03:57:13 +01:00
- Slight speed up for combat mechs.
- Added H.O.N.K construction. - Removed unnecessary mecha parts. - Fixed bug with switching intent while in mecha - Tweaked mecha access permissions (maintenance hatch can be opened if player has any of the mecha internals_req_access permissions, piloting allowed only if player has all of operation_req_access permissions) git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1042 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -115,7 +115,7 @@
|
||||
V.show_message("[src.name] hits [target].", 1)
|
||||
if(!istype(target, /turf/simulated/wall))
|
||||
target:attackby(src,src.occupant)
|
||||
else if(prob(2))
|
||||
else if(prob(5))
|
||||
target:dismantle_wall(1)
|
||||
src.occupant_message("\blue You smash through the wall.")
|
||||
src.visible_message("<b>[src.name] smashes through the wall</b>")
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
desc = "Combat exosuit."
|
||||
name = "Durand"
|
||||
icon_state = "durand"
|
||||
step_in = 8
|
||||
step_in = 6
|
||||
health = 350
|
||||
deflect_chance = 12
|
||||
max_temperature = 3000
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
desc = "Security exosuit."
|
||||
name = "Gygax"
|
||||
icon_state = "gygax"
|
||||
step_in = 6
|
||||
step_in = 5
|
||||
health = 300
|
||||
deflect_chance = 10
|
||||
max_temperature = 3500
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
desc = "Heavy duty combat exosuit."
|
||||
name = "Marauder"
|
||||
icon_state = "marauder"
|
||||
step_in = 10
|
||||
step_in = 7
|
||||
health = 400
|
||||
deflect_chance = 25
|
||||
max_temperature = 5000
|
||||
@@ -112,6 +112,7 @@
|
||||
/obj/mecha/combat/marauder/go_out()
|
||||
if(src.occupant && src.occupant.client)
|
||||
src.occupant.client.view = world.view
|
||||
src.zoom = 0
|
||||
..()
|
||||
return
|
||||
|
||||
|
||||
@@ -343,7 +343,6 @@
|
||||
var/target_y = targloc.y
|
||||
var/target_z = targloc.z
|
||||
targloc = null
|
||||
target = null
|
||||
for(var/i=1 to min(projectiles, projectiles_per_shot))
|
||||
targloc = locate(target_x+GaussRandRound(deviation,1),target_y+GaussRandRound(deviation,1),target_z)
|
||||
if(!targloc || targloc == curloc)
|
||||
@@ -378,7 +377,6 @@
|
||||
var/target_y = targloc.y
|
||||
var/target_z = targloc.z
|
||||
targloc = null
|
||||
target = null
|
||||
spawn for(var/i=1 to min(projectiles, projectiles_per_shot))
|
||||
if(!chassis) break
|
||||
var/turf/curloc = get_turf(chassis)
|
||||
|
||||
@@ -17,6 +17,9 @@
|
||||
spawn_result()
|
||||
return
|
||||
|
||||
proc/action(atom/used_atom,mob/user as mob)
|
||||
return
|
||||
|
||||
proc/check_step(atom/used_atom,mob/user as mob) //check last step only
|
||||
var/valid_step = is_right_key(used_atom)
|
||||
if(valid_step)
|
||||
|
||||
@@ -19,7 +19,8 @@
|
||||
"gold"=0,
|
||||
"silver"=0,
|
||||
"diamond"=0,
|
||||
"plasma"=0
|
||||
"plasma"=0,
|
||||
"bananium"=0
|
||||
)
|
||||
var/res_max_amount = 200000
|
||||
var/part_set
|
||||
@@ -53,6 +54,16 @@
|
||||
list("result"="/obj/item/mecha_parts/part/gygax_left_leg","time"=200,"metal"=35000),
|
||||
list("result"="/obj/item/mecha_parts/part/gygax_right_leg","time"=200,"metal"=35000),
|
||||
list("result"="/obj/item/mecha_parts/part/gygax_armour","time"=600,"metal"=75000,"diamond"=10000)
|
||||
),
|
||||
|
||||
"H.O.N.K"=list(
|
||||
list("result"="/obj/mecha_chassis/honker","time"=100,"metal"=20000),
|
||||
list("result"="/obj/item/mecha_parts/part/honker_torso","time"=300,"metal"=35000,"glass"=10000,"bananium"=10000),
|
||||
list("result"="/obj/item/mecha_parts/part/honker_head","time"=200,"metal"=15000,"glass"=5000,"bananium"=5000),
|
||||
list("result"="/obj/item/mecha_parts/part/honker_left_arm","time"=200,"metal"=20000,"bananium"=5000),
|
||||
list("result"="/obj/item/mecha_parts/part/honker_right_arm","time"=200,"metal"=20000,"bananium"=5000),
|
||||
list("result"="/obj/item/mecha_parts/part/honker_left_leg","time"=200,"metal"=20000,"bananium"=5000),
|
||||
list("result"="/obj/item/mecha_parts/part/honker_right_leg","time"=200,"metal"=20000,"bananium"=5000),
|
||||
)
|
||||
)
|
||||
|
||||
@@ -192,13 +203,14 @@
|
||||
var/time = part["time"]
|
||||
src.being_built = new path(src)
|
||||
src.remove_resources(part)
|
||||
flick("mechfab3", src)
|
||||
src.icon_state = "mechfab3" //looks better than 'flick'
|
||||
src.use_power = 2
|
||||
spawn(time)
|
||||
src.use_power = 1
|
||||
src.being_built.Move(get_step(src,EAST))
|
||||
src.icon_state = initial(src.icon_state)
|
||||
src.visible_message("[src] beeps, \"The [src.being_built] is complete\".")
|
||||
src.icon_state = initial(src.icon_state)
|
||||
src.being_built = null
|
||||
src.updateUsrDialog()
|
||||
src.updateUsrDialog()
|
||||
@@ -229,6 +241,9 @@
|
||||
else if(istype(W, /obj/item/stack/sheet/glass))
|
||||
material = "glass"
|
||||
amnt = "g_amt"
|
||||
else if(istype(W, /obj/item/stack/sheet/clown))
|
||||
material = "bananium"
|
||||
amnt = "g_amt"
|
||||
else
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -90,7 +90,13 @@
|
||||
if(mech_click == world.time) return
|
||||
mech_click = world.time
|
||||
*/
|
||||
if(!location) return //probably GUI
|
||||
if(istype(object, /obj/screen))
|
||||
var/obj/screen/using = object
|
||||
if(using.screen_loc == ui_acti || using.screen_loc == ui_iarrowleft || using.screen_loc == ui_iarrowright)//ignore all HUD objects save 'intent' and its arrows
|
||||
return ..()
|
||||
else
|
||||
return
|
||||
// if(!location) return //probably GUI
|
||||
if(M.stat>0) return
|
||||
if(!istype(object,/atom)) return
|
||||
var/obj/mecha/Mech = M.loc
|
||||
@@ -101,11 +107,12 @@
|
||||
return ..()
|
||||
|
||||
/obj/mecha/proc/click_action(atom/target)
|
||||
if(!istype(target,/turf) && !istype(target.loc,/turf)) return
|
||||
// if(!istype(target,/turf) && !istype(target.loc,/turf)) return
|
||||
if(!src.occupant) return
|
||||
if(state || !cell || cell.charge<=0) return
|
||||
if(src == target) return
|
||||
if(!(get_dir(src,target) & src.dir))//wrong direction
|
||||
var/dir_to_target = get_dir(src,target)
|
||||
if(dir_to_target && !(get_dir(src,target) & src.dir))//wrong direction
|
||||
return
|
||||
if(get_dist(src,target)<=1)
|
||||
src.melee_action(target)
|
||||
@@ -684,13 +691,16 @@
|
||||
if(!I || !istype(I, /obj/item/weapon/card/id) || !I.access) //not ID or no access
|
||||
return 0
|
||||
for(var/req in src.internals_req_access)
|
||||
if(!(req in I.access)) //doesn't have this access
|
||||
return 0
|
||||
return 1
|
||||
if(req in I.access)
|
||||
return 1
|
||||
return 0
|
||||
|
||||
|
||||
/obj/mecha/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
|
||||
if(src.occupant)
|
||||
user << "Unable to initiate maintenance protocol."
|
||||
return
|
||||
if(src.internals_access_allowed(usr))
|
||||
if(state==0)
|
||||
state = 1
|
||||
|
||||
@@ -9,95 +9,44 @@
|
||||
var/datum/construction/construct
|
||||
flags = FPRINT | CONDUCT
|
||||
|
||||
attackby(obj/item/W as obj, mob/user as mob)
|
||||
if(!construct || !construct.action(W, user))
|
||||
..()
|
||||
return
|
||||
|
||||
|
||||
|
||||
//////// Ripley chassis
|
||||
/obj/mecha_chassis/ripley
|
||||
name = "Ripley Chassis Frame"
|
||||
name = "Ripley Chassis"
|
||||
|
||||
New()
|
||||
..()
|
||||
construct = new /datum/construction/mecha/ripley_chassis(src)
|
||||
|
||||
attackby(obj/item/W as obj, mob/user as mob)
|
||||
if(istype(W, /obj/item/mecha_parts))
|
||||
if(construct)
|
||||
construct.check_all_steps(W, user)
|
||||
else
|
||||
..()
|
||||
return
|
||||
|
||||
/obj/mecha_chassis/ripley_full
|
||||
name = "Ripley Chassis"
|
||||
icon_state = "ripley_chassis"
|
||||
|
||||
New()
|
||||
..()
|
||||
construct = new /datum/construction/mecha/ripley(src)
|
||||
|
||||
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(!construct || !construct.check_step(W, user))
|
||||
..()
|
||||
return
|
||||
|
||||
/////// Gygax chasis
|
||||
/obj/mecha_chassis/gygax
|
||||
name = "Gygax Chassis Frame"
|
||||
name = "Gygax Chassis"
|
||||
|
||||
New()
|
||||
..()
|
||||
construct = new /datum/construction/mecha/gygax_chassis(src)
|
||||
|
||||
attackby(obj/item/W as obj, mob/user as mob)
|
||||
if(istype(W, /obj/item/mecha_parts))
|
||||
if(construct)
|
||||
construct.check_all_steps(W, user)
|
||||
else
|
||||
..()
|
||||
return
|
||||
|
||||
/obj/mecha_chassis/gygax_full
|
||||
name = "Gygax Chassis"
|
||||
icon_state = "gygax_chassis"
|
||||
|
||||
New()
|
||||
..()
|
||||
construct = new /datum/construction/mecha/gygax(src)
|
||||
|
||||
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(!construct || !construct.check_step(W, user))
|
||||
..()
|
||||
return
|
||||
|
||||
/////// Firefighter chassis
|
||||
/obj/mecha_chassis/firefighter
|
||||
name = "Ripley-on-Fire Chassis Frame"
|
||||
name = "Ripley-on-Fire Chassis"
|
||||
|
||||
New()
|
||||
..()
|
||||
construct = new /datum/construction/mecha/firefighter_chassis(src)
|
||||
|
||||
attackby(obj/item/W as obj, mob/user as mob)
|
||||
if(istype(W, /obj/item/mecha_parts))
|
||||
if(construct)
|
||||
construct.check_all_steps(W, user)
|
||||
else
|
||||
..()
|
||||
return
|
||||
|
||||
/obj/mecha_chassis/firefighter_full
|
||||
name = "Ripley-on-Fire Chassis"
|
||||
icon_state = "ripley_chassis"
|
||||
/////// HONK chassis
|
||||
/obj/mecha_chassis/honker
|
||||
name = "H.O.N.K Chassis"
|
||||
|
||||
New()
|
||||
..()
|
||||
construct = new /datum/construction/mecha/firefighter(src)
|
||||
|
||||
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(!construct || !construct.check_step(W, user))
|
||||
..()
|
||||
return
|
||||
|
||||
construct = new /datum/construction/mecha/honker_chassis(src)
|
||||
|
||||
/////////////////////////
|
||||
////// Mecha Parts //////
|
||||
@@ -186,6 +135,30 @@
|
||||
icon_state = "ripley_r_leg"
|
||||
|
||||
|
||||
////////// HONK
|
||||
/obj/item/mecha_parts/part/honker_torso
|
||||
name="H.O.N.K Torso"
|
||||
icon_state = "honker_harness"
|
||||
|
||||
/obj/item/mecha_parts/part/honker_head
|
||||
name="H.O.N.K Head"
|
||||
icon_state = "honker_head"
|
||||
|
||||
/obj/item/mecha_parts/part/honker_left_arm
|
||||
name="H.O.N.K Left Arm"
|
||||
icon_state = "honker_l_arm"
|
||||
|
||||
/obj/item/mecha_parts/part/honker_right_arm
|
||||
name="H.O.N.K Right Arm"
|
||||
icon_state = "honker_r_arm"
|
||||
|
||||
/obj/item/mecha_parts/part/honker_left_leg
|
||||
name="H.O.N.K Left Leg"
|
||||
icon_state = "honker_l_leg"
|
||||
|
||||
/obj/item/mecha_parts/part/honker_right_leg
|
||||
name="H.O.N.K Right Leg"
|
||||
icon_state = "honker_r_leg"
|
||||
|
||||
|
||||
/obj/item/mecha_parts/circuitboard
|
||||
@@ -213,7 +186,7 @@
|
||||
icon_state = "mcontroller"
|
||||
|
||||
gygax/targeting
|
||||
name = "Circuit board (Weapon Control and Targeting module)"
|
||||
name = "Circuit board (Gygax Weapon Control and Targeting module)"
|
||||
icon_state = "mcontroller"
|
||||
|
||||
gygax/main
|
||||
@@ -224,6 +197,19 @@
|
||||
name = "Circuit board (Ripley-on-Fire Peripherals Control module)"
|
||||
icon_state = "mcontroller"
|
||||
|
||||
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 //////
|
||||
////////////////////////////////
|
||||
@@ -268,19 +254,22 @@
|
||||
)
|
||||
|
||||
custom_action(step, atom/used_atom, mob/user)
|
||||
/*
|
||||
switch(step)
|
||||
if(5)
|
||||
if(4)
|
||||
if(3)
|
||||
if(2)
|
||||
if(1)
|
||||
*/
|
||||
user.visible_message("[user] has connected [used_atom] to [holder].", "You connect [used_atom] to [holder]")
|
||||
holder.overlays += used_atom.icon_state+"+o"
|
||||
del used_atom
|
||||
return 1
|
||||
|
||||
action(atom/used_atom,mob/user as mob)
|
||||
return check_all_steps(used_atom,user)
|
||||
|
||||
spawn_result()
|
||||
var/obj/mecha_chassis/const_holder = holder
|
||||
const_holder.construct = new /datum/construction/mecha/ripley(const_holder)
|
||||
const_holder.density = 1
|
||||
spawn()
|
||||
del src
|
||||
return
|
||||
|
||||
|
||||
/datum/construction/mecha/ripley
|
||||
result = "/obj/mecha/working/ripley"
|
||||
@@ -300,6 +289,9 @@
|
||||
list("key"="/obj/item/weapon/wrench")//14
|
||||
)
|
||||
|
||||
action(atom/used_atom,mob/user as mob)
|
||||
return check_step(used_atom,user)
|
||||
|
||||
custom_action(step, atom/used_atom, mob/user)
|
||||
if(!..())
|
||||
return 0
|
||||
@@ -356,6 +348,18 @@
|
||||
del used_atom
|
||||
return 1
|
||||
|
||||
action(atom/used_atom,mob/user as mob)
|
||||
return check_all_steps(used_atom,user)
|
||||
|
||||
spawn_result()
|
||||
var/obj/mecha_chassis/const_holder = holder
|
||||
const_holder.construct = new /datum/construction/mecha/gygax(const_holder)
|
||||
const_holder.density = 1
|
||||
spawn()
|
||||
del src
|
||||
return
|
||||
|
||||
|
||||
|
||||
/datum/construction/mecha/gygax
|
||||
result = "/obj/mecha/combat/gygax"
|
||||
@@ -381,6 +385,9 @@
|
||||
list("key"="/obj/item/weapon/wrench")//20
|
||||
)
|
||||
|
||||
action(atom/used_atom,mob/user as mob)
|
||||
return check_step(used_atom,user)
|
||||
|
||||
custom_action(step, atom/used_atom, mob/user)
|
||||
if(!..())
|
||||
return 0
|
||||
@@ -452,6 +459,17 @@
|
||||
del used_atom
|
||||
return 1
|
||||
|
||||
action(atom/used_atom,mob/user as mob)
|
||||
return check_all_steps(used_atom,user)
|
||||
|
||||
spawn_result()
|
||||
var/obj/mecha_chassis/const_holder = holder
|
||||
const_holder.construct = new /datum/construction/mecha/firefighter(const_holder)
|
||||
const_holder.density = 1
|
||||
spawn()
|
||||
del src
|
||||
return
|
||||
|
||||
|
||||
/datum/construction/mecha/firefighter
|
||||
result = "/obj/mecha/working/firefighter"
|
||||
@@ -471,6 +489,10 @@
|
||||
list("key"="/obj/item/weapon/wrench")//14
|
||||
)
|
||||
|
||||
action(atom/used_atom,mob/user as mob)
|
||||
return check_step(used_atom,user)
|
||||
|
||||
|
||||
custom_action(step, atom/used_atom, mob/user)
|
||||
if(!..())
|
||||
return 0
|
||||
@@ -511,6 +533,92 @@
|
||||
|
||||
|
||||
|
||||
/datum/construction/mecha/honker_chassis
|
||||
result = "/obj/mecha_chassis/honker_full"
|
||||
steps = list(list("key"="/obj/item/mecha_parts/part/honker_torso"),//1
|
||||
list("key"="/obj/item/mecha_parts/part/honker_left_arm"),//2
|
||||
list("key"="/obj/item/mecha_parts/part/honker_right_arm"),//3
|
||||
list("key"="/obj/item/mecha_parts/part/honker_left_leg"),//4
|
||||
list("key"="/obj/item/mecha_parts/part/honker_right_leg"),//5
|
||||
list("key"="/obj/item/mecha_parts/part/honker_head")
|
||||
)
|
||||
|
||||
action(atom/used_atom,mob/user as mob)
|
||||
return check_all_steps(used_atom,user)
|
||||
|
||||
custom_action(step, atom/used_atom, mob/user)
|
||||
user.visible_message("[user] has connected [used_atom] to [holder].", "You connect [used_atom] to [holder]")
|
||||
holder.overlays += used_atom.icon_state+"+o"
|
||||
del used_atom
|
||||
return 1
|
||||
|
||||
spawn_result()
|
||||
var/obj/mecha_chassis/const_holder = holder
|
||||
const_holder.construct = new /datum/construction/mecha/honker(const_holder)
|
||||
const_holder.density = 1
|
||||
spawn()
|
||||
del src
|
||||
return
|
||||
|
||||
|
||||
/datum/construction/mecha/honker
|
||||
result = "/obj/mecha/combat/honker"
|
||||
steps = list(list("key"="/obj/item/weapon/bikehorn"),//1
|
||||
list("key"="/obj/item/clothing/shoes/clown_shoes"),//2
|
||||
list("key"="/obj/item/weapon/bikehorn"),//3
|
||||
list("key"="/obj/item/clothing/mask/gas/clown_hat"),//4
|
||||
list("key"="/obj/item/weapon/bikehorn"),//5
|
||||
list("key"="/obj/item/weapon/mousetrap"),//6
|
||||
list("key"="/obj/item/weapon/bikehorn"),//7
|
||||
list("key"="/obj/item/weapon/bananapeel"),//8
|
||||
list("key"="/obj/item/weapon/bikehorn"),//9
|
||||
list("key"="/obj/item/mecha_parts/circuitboard/honker/targeting"),//10
|
||||
list("key"="/obj/item/weapon/bikehorn"),//11
|
||||
list("key"="/obj/item/mecha_parts/circuitboard/honker/peripherals"),//12
|
||||
list("key"="/obj/item/weapon/bikehorn"),//13
|
||||
list("key"="/obj/item/mecha_parts/circuitboard/honker/main"),//14
|
||||
list("key"="/obj/item/weapon/bikehorn"),//15
|
||||
)
|
||||
|
||||
action(atom/used_atom,mob/user as mob)
|
||||
return check_step(used_atom,user)
|
||||
|
||||
custom_action(step, atom/used_atom, mob/user)
|
||||
if(!..())
|
||||
return 0
|
||||
|
||||
if(istype(used_atom, /obj/item/weapon/bikehorn))
|
||||
playsound(holder, 'bikehorn.ogg', 50, 1)
|
||||
user.visible_message("HONK!")
|
||||
|
||||
//TODO: better messages.
|
||||
switch(step)
|
||||
if(14)
|
||||
user.visible_message("[user] installs the central control module into [holder].", "You install the central control module into [holder].")
|
||||
del used_atom
|
||||
if(12)
|
||||
user.visible_message("[user] installs the peripherals control module into [holder].", "You install the peripherals control module into [holder].")
|
||||
del used_atom
|
||||
if(10)
|
||||
user.visible_message("[user] installs the weapon control module into [holder].", "You install the weapon control module into [holder].")
|
||||
del used_atom
|
||||
if(8)
|
||||
user.visible_message("[user] installs the banana peel into hONK1 socket.", "You install the banana peel into the hONK1 socket.")
|
||||
del used_atom
|
||||
if(6)
|
||||
user.visible_message("[user] installs the mousetrap into hONK2 socket.", "You install the mousetrap into hONK2 socket.")
|
||||
del used_atom
|
||||
if(4)
|
||||
user.visible_message("[user] puts clown wig and mask on [holder].", "You put clown wig and mask on [holder].")
|
||||
del used_atom
|
||||
if(2)
|
||||
user.visible_message("[user] puts clown boots on [holder].", "You put clown boots on [holder].")
|
||||
del used_atom
|
||||
return 1
|
||||
|
||||
|
||||
|
||||
|
||||
////////////////// misc ////////////////
|
||||
|
||||
|
||||
|
||||
@@ -26,6 +26,8 @@
|
||||
var/tool = locate(href_list["select_tool"])
|
||||
if(tool)
|
||||
src.selected_tool = tool
|
||||
if (href_list["unlock_id_upload"])
|
||||
add_req_access = 1
|
||||
if (href_list["add_req_access"])
|
||||
if(!add_req_access) return
|
||||
var/access = text2num(href_list["add_req_access"])
|
||||
@@ -78,6 +80,12 @@
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/mecha/working/get_commands()
|
||||
var/output = {"<a href='?src=\ref[src];unlock_id_upload=1'>Unlock ID upload panel</a><br>
|
||||
"}
|
||||
output += ..()
|
||||
return output
|
||||
|
||||
|
||||
/obj/mecha/working/proc/output_access_dialog(obj/item/weapon/card/id/id_card, mob/user)
|
||||
if(!id_card || !user) return
|
||||
@@ -88,9 +96,9 @@
|
||||
for(var/a in id_card.access)
|
||||
if(a in operation_req_access) continue
|
||||
var/a_name = get_access_desc(a)
|
||||
if(!a_name) continue
|
||||
if(!a_name) continue //there's some strange access without a name
|
||||
output += "[a_name] - <a href='?src=\ref[src];add_req_access=[a];user=\ref[user];id_card=\ref[id_card]'>Add</a><br>"
|
||||
output += "<hr><a href='?src=\ref[src];finish_req_access=1;user=\ref[user]'>Finish</a>"
|
||||
output += "<hr><a href='?src=\ref[src];finish_req_access=1;user=\ref[user]'>Finish</a> <font color='red'>(Warning! The ID upload panel will be locked. It can be unlocked only through Exosuit Interface.)</font>"
|
||||
output += "</body></html>"
|
||||
user << browse(output, "window=exosuit_add_access")
|
||||
onclose(user, "exosuit_add_access")
|
||||
|
||||
@@ -378,6 +378,33 @@ datum
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/mecha_parts/circuitboard/gygax/targeting"
|
||||
|
||||
honker_main
|
||||
name = "Circuit Design (\"H.O.N.K\" Central Control module)"
|
||||
desc = "Allows for the construction of a \"H.O.N.K\" Central Control module."
|
||||
id = "honker_main"
|
||||
req_tech = list("programming" = 2, "robotics" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/mecha_parts/circuitboard/honker/main"
|
||||
|
||||
honker_peri
|
||||
name = "Circuit Design (\"H.O.N.K\" Peripherals Control module)"
|
||||
desc = "Allows for the construction of a \"H.O.N.K\" Peripheral Control module."
|
||||
id = "honker_peri"
|
||||
req_tech = list("programming" = 2, "robotics" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/mecha_parts/circuitboard/honker/peripherals"
|
||||
|
||||
honker_targ
|
||||
name = "Circuit Design (\"H.O.N.K\" Weapons & Targeting Control module)"
|
||||
desc = "Allows for the construction of a \"H.O.N.K\" Weapons & Targeting Control module."
|
||||
id = "honker_targ"
|
||||
req_tech = list("programming" = 2, "robotics" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/mecha_parts/circuitboard/honker/targeting"
|
||||
|
||||
////////////////////////////////////////
|
||||
//////////Disk Construction Disks///////
|
||||
////////////////////////////////////////
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 7.1 KiB |
Reference in New Issue
Block a user