From 67fc32da6eefddf61580d84b117d45d287cfbe3f Mon Sep 17 00:00:00 2001 From: skull132 Date: Tue, 17 Jun 2014 22:17:44 +0300 Subject: [PATCH] Exoskeletons Out with the old! In with the partially finished new. --- aurora.dme | 7 -- code/game/mecha/mech_fabricator.dm | 38 +++++------ code/game/mecha/mecha_construction_paths.dm | 8 +-- code/game/mecha/mecha_parts.dm | 4 +- code/modules/aurora/exoskeleton.dm | 70 ++++++++++++++++++++ code/modules/aurora/exoskeleton/equipment.dm | 2 + code/modules/clothing/suits/armor.dm | 13 +--- code/modules/research/designs.dm | 4 +- 8 files changed, 100 insertions(+), 46 deletions(-) create mode 100644 code/modules/aurora/exoskeleton.dm create mode 100644 code/modules/aurora/exoskeleton/equipment.dm diff --git a/aurora.dme b/aurora.dme index ebb938c7..b0c9d37a 100644 --- a/aurora.dme +++ b/aurora.dme @@ -40,13 +40,6 @@ #define FILE_DIR "icons/vending_icons" #define FILE_DIR "nano" #define FILE_DIR "nano/images" -#define FILE_DIR "navy_project" -#define FILE_DIR "navy_project/icons" -#define FILE_DIR "navy_project/icons/clothing" -#define FILE_DIR "navy_project/icons/clothing/uniforms" -#define FILE_DIR "navy_project/icons/Machines" -#define FILE_DIR "navy_project/icons/structures" -#define FILE_DIR "navy_project/icons/Weapons" #define FILE_DIR "Sammacs Folder" #define FILE_DIR "Sammacs Folder/Aurora Map" #define FILE_DIR "Sammacs Folder/Aurora Map/flora" diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index 8c87a0d8..d64ce6f5 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -91,7 +91,7 @@ /obj/item/mecha_parts/part/durand_armour ), - "Exoskeleton"=list( +/* "Exoskeleton"=list( /obj/item/mecha_parts/chassis/exoskeleton, /obj/item/mecha_parts/part/exoskeletonarmor, /obj/item/mecha_parts/part/hydraulicspack, @@ -100,7 +100,7 @@ - ), + ),*/ /* "H.O.N.K"=list( /obj/item/mecha_parts/chassis/honker, @@ -376,11 +376,11 @@ /obj/machinery/mecha_part_fabricator/proc/build_part(var/obj/item/part) if(!part) return - + // critical exploit prevention, do not remove unless you replace it -walter0o if( !(locate(part, src.contents)) || !(part.vars.Find("construction_time")) || !(part.vars.Find("construction_cost")) ) // these 3 are the current requirements for an object being buildable by the mech_fabricator return - + src.being_built = new part.type(src) src.desc = "It's building [src.being_built]." src.remove_resources(part) @@ -517,7 +517,7 @@ src.updateUsrDialog() return */ - if(!silent) + if(!silent) temp = "Updating local R&D database..." src.updateUsrDialog() sleep(30) //only sleep if called by user @@ -624,24 +624,24 @@ /obj/machinery/mecha_part_fabricator/proc/exploit_prevention(var/obj/Part, mob/user as mob, var/desc_exploit) // critical exploit prevention, feel free to improve or replace this, but do not remove it -walter0o - + if(!Part || !user || !istype(Part) || !istype(user)) // sanity return 1 - + if( !(locate(Part, src.contents)) || !(Part.vars.Find("construction_time")) || !(Part.vars.Find("construction_cost")) ) // these 3 are the current requirements for an object being buildable by the mech_fabricator - + var/turf/LOC = get_turf(user) message_admins("[key_name_admin(user)] tried to exploit an Exosuit Fabricator to [desc_exploit ? "get the desc of" : "duplicate"] [Part] ! ([LOC ? "JMP" : "null"])", 0) - log_admin("EXPLOIT : [key_name(user)] tried to exploit an Exosuit Fabricator to [desc_exploit ? "get the desc of" : "duplicate"] [Part] !") + log_admin("EXPLOIT : [key_name(user)] tried to exploit an Exosuit Fabricator to [desc_exploit ? "get the desc of" : "duplicate"] [Part] !") return 1 - + return null /obj/machinery/mecha_part_fabricator/Topic(href, href_list) if(..()) // critical exploit prevention, do not remove unless you replace it -walter0o return - + var/datum/topic_input/filter = new /datum/topic_input(href,href_list) if(href_list["part_set"]) var/tpart_set = filter.getStr("part_set") @@ -653,24 +653,24 @@ screen = "parts" if(href_list["part"]) var/obj/part = filter.getObj("part") - + // critical exploit prevention, do not remove unless you replace it -walter0o if(src.exploit_prevention(part, usr)) return - + if(!processing_queue) build_part(part) else add_to_queue(part) if(href_list["add_to_queue"]) var/obj/part = filter.getObj("add_to_queue") - + // critical exploit prevention, do not remove unless you replace it -walter0o if(src.exploit_prevention(part, usr)) return - + add_to_queue(part) - + return update_queue_on_page() if(href_list["remove_from_queue"]) remove_from_queue(filter.getNum("remove_from_queue")) @@ -709,12 +709,12 @@ return update_queue_on_page() if(href_list["part_desc"]) var/obj/part = filter.getObj("part_desc") - + // critical exploit prevention, do not remove unless you replace it -walter0o if(src.exploit_prevention(part, usr, 1)) return - - if(part) + + if(part) temp = {"

[part] description:

[part.desc]
Return diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm index ed460aff..69c4e263 100644 --- a/code/game/mecha/mecha_construction_paths.dm +++ b/code/game/mecha/mecha_construction_paths.dm @@ -1373,7 +1373,7 @@ ..() feedback_inc("mecha_odysseus_created",1) return - +/* /datum/construction/mecha/exoskeleton_chasis steps = list(list("key"=/obj/item/mecha_parts/part/exoskeletonarmor),//1 list("key"=/obj/item/mecha_parts/part/electricalpack),//2 @@ -1398,8 +1398,8 @@ spawn() del src return - - +*/ +/* /datum/construction/reversible/mecha/exoskeleton result = "/obj/mecha/combat/exoskeleton" steps = list( @@ -1550,5 +1550,5 @@ spawn_result() ..() feedback_inc("mecha_exoskeleton_created",1) - return + return*/ diff --git a/code/game/mecha/mecha_parts.dm b/code/game/mecha/mecha_parts.dm index e3eb1a5a..1f28823a 100644 --- a/code/game/mecha/mecha_parts.dm +++ b/code/game/mecha/mecha_parts.dm @@ -395,7 +395,7 @@ construction_cost = list("metal"=15000)*/ ///////// Exoskeleton - +/* /obj/item/mecha_parts/chassis/exoskeleton name = "Exoskeleton Chassis" @@ -430,7 +430,7 @@ origin_tech = "programming=3;materials=2;engineering=2" construction_time = 90 construction_cost = list("metal"=25000) - +*/ ///////// Circuitboards diff --git a/code/modules/aurora/exoskeleton.dm b/code/modules/aurora/exoskeleton.dm new file mode 100644 index 00000000..1c1d07a4 --- /dev/null +++ b/code/modules/aurora/exoskeleton.dm @@ -0,0 +1,70 @@ +/obj/item/clothing/suit/exoskeletonvest + name = "Exoskeleton MK. IV" + desc = "A patchwork of hydraulic piping, wires and plates of metal." + icon_state = "" + item_state = "" + blood_overlay_type = "armor" + w_class = 4 + armor = list(melee = 70, bullet = 10, laser = 10, energy = 10, bomb = 50, bio = 0, rad = 0) + slowdown = 2 + body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS + +///obj/item/clothing/suit/exoskeletonvest/pickup(mob/living/user as mob) +// if( + +/obj/item/exo_parts/part/light_hydraulics + name = "light hydraulics pack" + desc = "A small, self-propelled pack with piping running out of it." + icon_state = "" + w_class = 3 + flags = FPRINT | CONDUCT + origin_tech = "engineering=1;power=2" + +/obj/item/exo_parts/chassis/light + name = "light exoskeleton frame" + desc = "A metallic skeletal structure mimmicking that of the human body." + icon_state = "" + w_class = 4 + var/state = 0 + var/created_name = "Exoskeleton Mk IV" + flags = FPRINT | TABLEPASS | CONDUCT + origin_tech = "engineering=2;biotech=2" + +/obj/item/exo_parts/chassis/light/attackby(obj/item/weapon/W as obj, mob/user as mob) + ..() + if(istype(W, /obj/item/weapon/pen)) + var/t = copytext(stripped_input(user, "Enter new robot name", src.name, src.created_name),1,MAX_NAME_LEN) + if (!t) + return + if (!in_range(src, usr) && src.loc != usr) + return + src.created_name = t + else + switch(state) + if(0) + if(istype(W, /obj/item/exo_parts/part/light_hydraulics)) + user.drop_item() + del.W + src.state++ + user << "You attach the [W] to the [src]." + src.name = "skeleton/hydraulics assembly" + src.icon_state = "" + if(1) + if(istype(W, /obj/item/weapon/screwdriver)) + src.state++ + user << "You tighten the screws holding the hydraulic pack to the frame." + src.icon_state = "" + if(2) + if(istype(W, /obj/item/weapon/wrench)) + src.state++ + user << "You tighten the hydraulic connections to the various ports." + src.icon_state = "" + if(3) + if(istype(W, /obj/item/weapon/weldingtool)) + src.state++ + user << "You finalize the construction by welding the various seems together." + var/turf/T = get_turf(src) + var/obj/item/clothing/suit/exoskeletonvest/S = new /obj/item/clothing/suit/exoskeletonvest(T) + S.name = src.created_name + user.drop_from_inventory(src) + del(src) \ No newline at end of file diff --git a/code/modules/aurora/exoskeleton/equipment.dm b/code/modules/aurora/exoskeleton/equipment.dm new file mode 100644 index 00000000..aafb3502 --- /dev/null +++ b/code/modules/aurora/exoskeleton/equipment.dm @@ -0,0 +1,2 @@ +//notes +//use the pickup verb: pickup(mob/living/user as mob) \ No newline at end of file diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index f68b0dfd..d0d91efb 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -263,15 +263,4 @@ item_state = "ert_cdr" blood_overlay_type = "armor" flags = FPRINT | TABLEPASS | ONESIZEFITSALL - armor = list(melee = 65, bullet = 25, laser = 65, energy = 25, bomb = 35, bio = 0, rad = 0) - -/obj/item/clothing/suit/exoskeletonvest - name = "Exoskeleton MK. IV" - desc = "A patchwork of hydraulic piping, wires and plates of metal." - icon_state = "" - item_state = "" - blood_overlay_type = "armor" - w_class = 4 - armor = list(melee = 80, bullet = 10, laser = 10, energy = 10, bomb = 70, bio = 0, rad = 0) - slowdown = -1 - body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS \ No newline at end of file + armor = list(melee = 65, bullet = 25, laser = 65, energy = 25, bomb = 35, bio = 0, rad = 0) \ No newline at end of file diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index cbe1cfc6..6c67e8eb 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -726,7 +726,7 @@ datum/design/honker_targ build_type = IMPRINTER materials = list("$glass" = 2000, "sacid" = 20) build_path = "/obj/item/weapon/circuitboard/mecha/honker/targeting" - +/* datum/design/exoskeleton name = "Circuit Design (\"Exoskeleton\" Control Module)" desc = "Allows for the construction of a \"Exoskeleton\" Control Module." @@ -735,7 +735,7 @@ datum/design/exoskeleton build_type = IMPRINTER materials = list("$glass" = 2000, "sacid" = 20) build_path = "/obj/item/weapon/circuitboard/mecha/exoskeleton/main" - +*/ //////////////////////////////////////// /////////// Mecha Equpment ///////////// ////////////////////////////////////////