diff --git a/code/datums/supplypacks/robotics_vr.dm b/code/datums/supplypacks/robotics_vr.dm index 24dc073874..9ee67ebb9d 100644 --- a/code/datums/supplypacks/robotics_vr.dm +++ b/code/datums/supplypacks/robotics_vr.dm @@ -1,3 +1,38 @@ +/datum/supply_packs/robotics/mecha_gopher + name = "Circuit Crate (\"Gopher\" APLU)" + contains = list( + /obj/item/weapon/circuitboard/mecha/gopher/main, + /obj/item/weapon/circuitboard/mecha/gopher/peripherals + ) + cost = 25 + containertype = /obj/structure/closet/crate/secure/science + containername = "APLU \"Gopher\" Circuit Crate" + access = access_robotics + +/datum/supply_packs/robotics/mecha_polecat + name = "Circuit Crate (\"Polecat\" APLU)" + contains = list( + /obj/item/weapon/circuitboard/mecha/polecat/main, + /obj/item/weapon/circuitboard/mecha/polecat/peripherals, + /obj/item/weapon/circuitboard/mecha/polecat/targeting + ) + cost = 25 + containertype = /obj/structure/closet/crate/secure/science + containername = "APLU \"Polecat\" Circuit Crate" + access = access_robotics + +/datum/supply_packs/robotics/mecha_weasel + name = "Circuit Crate (\"Weasel\" APLU)" + contains = list( + /obj/item/weapon/circuitboard/mecha/weasel/main, + /obj/item/weapon/circuitboard/mecha/weasel/peripherals, + /obj/item/weapon/circuitboard/mecha/weasel/targeting + ) + cost = 25 + containertype = /obj/structure/closet/crate/secure/science + containername = "APLU \"Weasel\" Circuit Crate" + access = access_robotics + /datum/supply_packs/robotics/some_robolimbs name = "Basic Robolimb Blueprints" contains = list( @@ -35,4 +70,4 @@ cost = 40 containertype = /obj/structure/closet/crate/secure containername = "Advanced Robolimb Blueprint Crate" - access = access_robotics \ No newline at end of file + access = access_robotics diff --git a/code/game/mecha/micro/mecha_construction_paths_vr.dm b/code/game/mecha/micro/mecha_construction_paths_vr.dm new file mode 100644 index 0000000000..305cdfcf92 --- /dev/null +++ b/code/game/mecha/micro/mecha_construction_paths_vr.dm @@ -0,0 +1,768 @@ + +/datum/construction/mecha/polecat_chassis + steps = list(list("key"=/obj/item/mecha_parts/micro/part/polecat_torso),//1 + list("key"=/obj/item/mecha_parts/micro/part/polecat_left_arm),//2 + list("key"=/obj/item/mecha_parts/micro/part/polecat_right_arm),//3 + list("key"=/obj/item/mecha_parts/micro/part/polecat_left_leg),//4 + list("key"=/obj/item/mecha_parts/micro/part/polecat_right_leg)//5 + ) + + 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" + qdel(used_atom) + return 1 + + action(atom/used_atom,mob/user as mob) + return check_all_steps(used_atom,user) + + spawn_result() + var/obj/item/mecha_parts/chassis/const_holder = holder + const_holder.construct = new /datum/construction/reversible/mecha/polecat(const_holder) + const_holder.icon = 'icons/mecha/mech_construction_vr.dmi' + const_holder.icon_state = "polecat0" + const_holder.density = 1 + const_holder.overlays.len = 0 + spawn() + qdel(src) + return + + +/datum/construction/reversible/mecha/polecat + result = "/obj/mecha/micro/sec/polecat" + 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/micro/part/polecat_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/material/steel, + "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/weapon/circuitboard/mecha/polecat/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/weapon/circuitboard/mecha/polecat/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/weapon/circuitboard/mecha/polecat/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/stack/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(index, diff, atom/used_atom, mob/user) + if(!..()) + return 0 + //TODO: better messages. + switch(index) + if(20) + user.visible_message("[user] connects [holder] hydraulic systems", "You connect [holder] hydraulic systems.") + holder.icon_state = "polecat1" + if(19) + if(diff==FORWARD) + user.visible_message("[user] activates [holder] hydraulic systems.", "You activate [holder] hydraulic systems.") + holder.icon_state = "polecat2" + else + user.visible_message("[user] disconnects [holder] hydraulic systems", "You disconnect [holder] hydraulic systems.") + holder.icon_state = "polecat0" + if(18) + if(diff==FORWARD) + user.visible_message("[user] adds the wiring to [holder].", "You add the wiring to [holder].") + holder.icon_state = "polecat3" + else + user.visible_message("[user] deactivates [holder] hydraulic systems.", "You deactivate [holder] hydraulic systems.") + holder.icon_state = "polecat1" + if(17) + if(diff==FORWARD) + user.visible_message("[user] adjusts the wiring of [holder].", "You adjust the wiring of [holder].") + holder.icon_state = "polecat4" + else + user.visible_message("[user] removes the wiring from [holder].", "You remove the wiring from [holder].") + var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder)) + coil.amount = 4 + holder.icon_state = "polecat2" + if(16) + if(diff==FORWARD) + user.visible_message("[user] installs the central control module into [holder].", "You install the central computer mainboard into [holder].") + qdel(used_atom) + holder.icon_state = "polecat5" + else + user.visible_message("[user] disconnects the wiring of [holder].", "You disconnect the wiring of [holder].") + holder.icon_state = "polecat3" + if(15) + if(diff==FORWARD) + user.visible_message("[user] secures the mainboard.", "You secure the mainboard.") + holder.icon_state = "polecat6" + else + user.visible_message("[user] removes the central control module from [holder].", "You remove the central computer mainboard from [holder].") + new /obj/item/weapon/circuitboard/mecha/polecat/main(get_turf(holder)) + holder.icon_state = "polecat4" + if(14) + if(diff==FORWARD) + user.visible_message("[user] installs the peripherals control module into [holder].", "You install the peripherals control module into [holder].") + qdel(used_atom) + holder.icon_state = "polecat7" + else + user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.") + holder.icon_state = "polecat5" + if(13) + if(diff==FORWARD) + user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.") + holder.icon_state = "polecat8" + else + user.visible_message("[user] removes the peripherals control module from [holder].", "You remove the peripherals control module from [holder].") + new /obj/item/weapon/circuitboard/mecha/polecat/peripherals(get_turf(holder)) + holder.icon_state = "polecat6" + if(12) + if(diff==FORWARD) + user.visible_message("[user] installs the weapon control module into [holder].", "You install the weapon control module into [holder].") + qdel(used_atom) + holder.icon_state = "polecat9" + else + user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") + holder.icon_state = "polecat7" + if(11) + if(diff==FORWARD) + user.visible_message("[user] secures the weapon control module.", "You secure the weapon control module.") + holder.icon_state = "polecat10" + else + user.visible_message("[user] removes the weapon control module from [holder].", "You remove the weapon control module from [holder].") + new /obj/item/weapon/circuitboard/mecha/polecat/targeting(get_turf(holder)) + holder.icon_state = "polecat8" + if(10) + if(diff==FORWARD) + user.visible_message("[user] installs advanced scanner module to [holder].", "You install advanced scanner module to [holder].") + qdel(used_atom) + holder.icon_state = "polecat11" + else + user.visible_message("[user] unfastens the weapon control module.", "You unfasten the weapon control module.") + holder.icon_state = "polecat9" + if(9) + if(diff==FORWARD) + user.visible_message("[user] secures the advanced scanner module.", "You secure the advanced scanner module.") + holder.icon_state = "polecat12" + 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)) + holder.icon_state = "polecat10" + if(8) + if(diff==FORWARD) + user.visible_message("[user] installs advanced capacitor to [holder].", "You install advanced capacitor to [holder].") + qdel(used_atom) + holder.icon_state = "polecat13" + else + user.visible_message("[user] unfastens the advanced scanner module.", "You unfasten the advanced scanner module.") + holder.icon_state = "polecat11" + if(7) + if(diff==FORWARD) + user.visible_message("[user] secures the advanced capacitor.", "You secure the advanced capacitor.") + holder.icon_state = "polecat14" + 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)) + holder.icon_state = "polecat12" + if(6) + if(diff==FORWARD) + user.visible_message("[user] installs internal armor layer to [holder].", "You install internal armor layer to [holder].") + holder.icon_state = "polecat15" + else + user.visible_message("[user] unfastens the advanced capacitor.", "You unfasten the advanced capacitor.") + holder.icon_state = "polecat13" + if(5) + if(diff==FORWARD) + user.visible_message("[user] secures internal armor layer.", "You secure internal armor layer.") + holder.icon_state = "polecat16" + else + user.visible_message("[user] pries internal armor layer from [holder].", "You prie internal armor layer from [holder].") + var/obj/item/stack/material/steel/MS = new /obj/item/stack/material/steel(get_turf(holder)) + MS.amount = 3 + holder.icon_state = "polecat14" + if(4) + if(diff==FORWARD) + user.visible_message("[user] welds internal armor layer to [holder].", "You weld the internal armor layer to [holder].") + holder.icon_state = "polecat17" + else + user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.") + holder.icon_state = "polecat15" + if(3) + if(diff==FORWARD) + user.visible_message("[user] installs external reinforced armor layer to [holder].", "You install external reinforced armor layer to [holder].") + holder.icon_state = "polecat18" + else + user.visible_message("[user] cuts internal armor layer from [holder].", "You cut the internal armor layer from [holder].") + holder.icon_state = "polecat16" + if(2) + if(diff==FORWARD) + user.visible_message("[user] secures external armor layer.", "You secure external reinforced armor layer.") + holder.icon_state = "polecat19" + else + user.visible_message("[user] pries external armor layer from [holder].", "You prie external armor layer from [holder].") + var/obj/item/stack/material/plasteel/MS = new /obj/item/stack/material/plasteel(get_turf(holder)) + MS.amount = 5 + holder.icon_state = "polecat17" + if(1) + if(diff==FORWARD) + user.visible_message("[user] welds external armor layer to [holder].", "You weld external armor layer to [holder].") + else + user.visible_message("[user] unfastens the external armor layer.", "You unfasten the external armor layer.") + holder.icon_state = "polecat18" + return 1 + + spawn_result() + ..() + feedback_inc("mecha_polecat_created",1) + return + +/datum/construction/mecha/gopher_chassis + steps = list(list("key"=/obj/item/mecha_parts/micro/part/gopher_torso),//1 + list("key"=/obj/item/mecha_parts/micro/part/gopher_left_arm),//2 + list("key"=/obj/item/mecha_parts/micro/part/gopher_right_arm),//3 + list("key"=/obj/item/mecha_parts/micro/part/gopher_left_leg),//4 + list("key"=/obj/item/mecha_parts/micro/part/gopher_right_leg)//5 + ) + + 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" + qdel(used_atom) + return 1 + + action(atom/used_atom,mob/user as mob) + return check_all_steps(used_atom,user) + + spawn_result() + var/obj/item/mecha_parts/chassis/const_holder = holder + const_holder.construct = new /datum/construction/reversible/mecha/gopher(const_holder) + const_holder.icon = 'icons/mecha/mech_construction_vr.dmi' + const_holder.icon_state = "gopher0" + const_holder.density = 1 + const_holder.overlays.len = 0 + spawn() + qdel(src) + return + + +/datum/construction/reversible/mecha/gopher + result = "/obj/mecha/micro/utility/gopher" + 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/material/plasteel, + "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/material/steel, + "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/weapon/circuitboard/mecha/gopher/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/weapon/circuitboard/mecha/gopher/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/stack/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) + return check_step(used_atom,user) + + custom_action(index, diff, atom/used_atom, mob/user) + if(!..()) + return 0 + + //TODO: better messages. + switch(index) + if(14) + user.visible_message("[user] connects [holder] hydraulic systems", "You connect [holder] hydraulic systems.") + holder.icon_state = "gopher1" + if(13) + if(diff==FORWARD) + user.visible_message("[user] activates [holder] hydraulic systems.", "You activate [holder] hydraulic systems.") + holder.icon_state = "gopher2" + else + user.visible_message("[user] disconnects [holder] hydraulic systems", "You disconnect [holder] hydraulic systems.") + holder.icon_state = "gopher0" + if(12) + if(diff==FORWARD) + user.visible_message("[user] adds the wiring to [holder].", "You add the wiring to [holder].") + holder.icon_state = "gopher3" + else + user.visible_message("[user] deactivates [holder] hydraulic systems.", "You deactivate [holder] hydraulic systems.") + holder.icon_state = "gopher1" + if(11) + if(diff==FORWARD) + user.visible_message("[user] adjusts the wiring of [holder].", "You adjust the wiring of [holder].") + holder.icon_state = "gopher4" + else + user.visible_message("[user] removes the wiring from [holder].", "You remove the wiring from [holder].") + var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder)) + coil.amount = 4 + holder.icon_state = "gopher2" + if(10) + if(diff==FORWARD) + user.visible_message("[user] installs the central control module into [holder].", "You install the central computer mainboard into [holder].") + qdel(used_atom) + holder.icon_state = "gopher5" + else + user.visible_message("[user] disconnects the wiring of [holder].", "You disconnect the wiring of [holder].") + holder.icon_state = "gopher3" + if(9) + if(diff==FORWARD) + user.visible_message("[user] secures the mainboard.", "You secure the mainboard.") + holder.icon_state = "gopher6" + else + user.visible_message("[user] removes the central control module from [holder].", "You remove the central computer mainboard from [holder].") + new /obj/item/weapon/circuitboard/mecha/gopher/main(get_turf(holder)) + holder.icon_state = "gopher4" + if(8) + if(diff==FORWARD) + user.visible_message("[user] installs the peripherals control module into [holder].", "You install the peripherals control module into [holder].") + qdel(used_atom) + holder.icon_state = "gopher7" + else + user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.") + holder.icon_state = "gopher5" + if(7) + if(diff==FORWARD) + user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.") + holder.icon_state = "gopher8" + else + user.visible_message("[user] removes the peripherals control module from [holder].", "You remove the peripherals control module from [holder].") + new /obj/item/weapon/circuitboard/mecha/gopher/peripherals(get_turf(holder)) + holder.icon_state = "gopher6" + if(6) + if(diff==FORWARD) + user.visible_message("[user] installs internal armor layer to [holder].", "You install internal armor layer to [holder].") + holder.icon_state = "gopher9" + else + user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") + holder.icon_state = "gopher7" + if(5) + if(diff==FORWARD) + user.visible_message("[user] secures internal armor layer.", "You secure internal armor layer.") + holder.icon_state = "gopher10" + else + user.visible_message("[user] pries internal armor layer from [holder].", "You prie internal armor layer from [holder].") + var/obj/item/stack/material/steel/MS = new /obj/item/stack/material/steel(get_turf(holder)) + MS.amount = 3 + holder.icon_state = "gopher8" + if(4) + if(diff==FORWARD) + user.visible_message("[user] welds internal armor layer to [holder].", "You weld the internal armor layer to [holder].") + holder.icon_state = "gopher11" + else + user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.") + holder.icon_state = "gopher9" + if(3) + if(diff==FORWARD) + user.visible_message("[user] installs external reinforced armor layer to [holder].", "You install external reinforced armor layer to [holder].") + holder.icon_state = "gopher12" + else + user.visible_message("[user] cuts internal armor layer from [holder].", "You cut the internal armor layer from [holder].") + holder.icon_state = "gopher10" + if(2) + if(diff==FORWARD) + user.visible_message("[user] secures external armor layer.", "You secure external reinforced armor layer.") + holder.icon_state = "gopher13" + else + user.visible_message("[user] pries external armor layer from [holder].", "You prie external armor layer from [holder].") + var/obj/item/stack/material/plasteel/MS = new /obj/item/stack/material/plasteel(get_turf(holder)) + MS.amount = 2 + holder.icon_state = "gopher11" + if(1) + if(diff==FORWARD) + user.visible_message("[user] welds external armor layer to [holder].", "You weld external armor layer to [holder].") + else + user.visible_message("[user] unfastens the external armor layer.", "You unfasten the external armor layer.") + holder.icon_state = "gopher12" + return 1 + + spawn_result() + ..() + feedback_inc("mecha_gopher_created",1) + return + +/datum/construction/mecha/weasel_chassis + steps = list(list("key"=/obj/item/mecha_parts/micro/part/weasel_torso),//1 + list("key"=/obj/item/mecha_parts/micro/part/weasel_head),//2 + list("key"=/obj/item/mecha_parts/micro/part/weasel_left_arm),//3 + list("key"=/obj/item/mecha_parts/micro/part/weasel_right_arm),//4 + list("key"=/obj/item/mecha_parts/micro/part/weasel_tri_leg),//5 + ) + + 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" + qdel(used_atom) + return 1 + + action(atom/used_atom,mob/user as mob) + return check_all_steps(used_atom,user) + + spawn_result() + var/obj/item/mecha_parts/chassis/const_holder = holder + const_holder.construct = new /datum/construction/reversible/mecha/weasel(const_holder) + const_holder.icon = 'icons/mecha/mech_construction_vr.dmi' + const_holder.icon_state = "weasel0" + const_holder.density = 1 + const_holder.overlays.len = 0 + spawn() + qdel(src) + return + + +/datum/construction/reversible/mecha/weasel + result = "/obj/mecha/micro/sec/weasel" + 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/material/plasteel, + "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/material/steel, + "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/weapon/circuitboard/mecha/weasel/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/weapon/circuitboard/mecha/weasel/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/weapon/circuitboard/mecha/weasel/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/stack/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(index, diff, atom/used_atom, mob/user) + if(!..()) + return 0 + //TODO: better messages. + switch(index) + if(20) + user.visible_message("[user] connects [holder] hydraulic systems", "You connect [holder] hydraulic systems.") + holder.icon_state = "weasel1" + if(19) + if(diff==FORWARD) + user.visible_message("[user] activates [holder] hydraulic systems.", "You activate [holder] hydraulic systems.") + holder.icon_state = "weasel2" + else + user.visible_message("[user] disconnects [holder] hydraulic systems", "You disconnect [holder] hydraulic systems.") + holder.icon_state = "weasel0" + if(18) + if(diff==FORWARD) + user.visible_message("[user] adds the wiring to [holder].", "You add the wiring to [holder].") + holder.icon_state = "weasel3" + else + user.visible_message("[user] deactivates [holder] hydraulic systems.", "You deactivate [holder] hydraulic systems.") + holder.icon_state = "weasel1" + if(17) + if(diff==FORWARD) + user.visible_message("[user] adjusts the wiring of [holder].", "You adjust the wiring of [holder].") + holder.icon_state = "weasel4" + else + user.visible_message("[user] removes the wiring from [holder].", "You remove the wiring from [holder].") + var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder)) + coil.amount = 4 + holder.icon_state = "weasel2" + if(16) + if(diff==FORWARD) + user.visible_message("[user] installs the central control module into [holder].", "You install the central computer mainboard into [holder].") + qdel(used_atom) + holder.icon_state = "weasel5" + else + user.visible_message("[user] disconnects the wiring of [holder].", "You disconnect the wiring of [holder].") + holder.icon_state = "weasel3" + if(15) + if(diff==FORWARD) + user.visible_message("[user] secures the mainboard.", "You secure the mainboard.") + holder.icon_state = "weasel6" + else + user.visible_message("[user] removes the central control module from [holder].", "You remove the central computer mainboard from [holder].") + new /obj/item/weapon/circuitboard/mecha/weasel/main(get_turf(holder)) + holder.icon_state = "weasel4" + if(14) + if(diff==FORWARD) + user.visible_message("[user] installs the peripherals control module into [holder].", "You install the peripherals control module into [holder].") + qdel(used_atom) + holder.icon_state = "weasel7" + else + user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.") + holder.icon_state = "weasel5" + if(13) + if(diff==FORWARD) + user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.") + holder.icon_state = "weasel8" + else + user.visible_message("[user] removes the peripherals control module from [holder].", "You remove the peripherals control module from [holder].") + new /obj/item/weapon/circuitboard/mecha/weasel/peripherals(get_turf(holder)) + holder.icon_state = "weasel6" + if(12) + if(diff==FORWARD) + user.visible_message("[user] installs the weapon control module into [holder].", "You install the weapon control module into [holder].") + qdel(used_atom) + holder.icon_state = "weasel9" + else + user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") + holder.icon_state = "weasel7" + if(11) + if(diff==FORWARD) + user.visible_message("[user] secures the weapon control module.", "You secure the weapon control module.") + holder.icon_state = "weasel10" + else + user.visible_message("[user] removes the weapon control module from [holder].", "You remove the weapon control module from [holder].") + new /obj/item/weapon/circuitboard/mecha/weasel/targeting(get_turf(holder)) + holder.icon_state = "weasel8" + if(10) + if(diff==FORWARD) + user.visible_message("[user] installs advanced scanner module to [holder].", "You install advanced scanner module to [holder].") + qdel(used_atom) + holder.icon_state = "weasel11" + else + user.visible_message("[user] unfastens the weapon control module.", "You unfasten the weapon control module.") + holder.icon_state = "weasel9" + if(9) + if(diff==FORWARD) + user.visible_message("[user] secures the advanced scanner module.", "You secure the advanced scanner module.") + holder.icon_state = "weasel12" + 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)) + holder.icon_state = "weasel10" + if(8) + if(diff==FORWARD) + user.visible_message("[user] installs advanced capacitor to [holder].", "You install advanced capacitor to [holder].") + qdel(used_atom) + holder.icon_state = "weasel13" + else + user.visible_message("[user] unfastens the advanced scanner module.", "You unfasten the advanced scanner module.") + holder.icon_state = "weasel11" + if(7) + if(diff==FORWARD) + user.visible_message("[user] secures the advanced capacitor.", "You secure the advanced capacitor.") + holder.icon_state = "weasel14" + 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)) + holder.icon_state = "weasel12" + if(6) + if(diff==FORWARD) + user.visible_message("[user] installs internal armor layer to [holder].", "You install internal armor layer to [holder].") + holder.icon_state = "weasel15" + else + user.visible_message("[user] unfastens the advanced capacitor.", "You unfasten the advanced capacitor.") + holder.icon_state = "weasel13" + if(5) + if(diff==FORWARD) + user.visible_message("[user] secures internal armor layer.", "You secure internal armor layer.") + holder.icon_state = "weasel16" + else + user.visible_message("[user] pries internal armor layer from [holder].", "You prie internal armor layer from [holder].") + var/obj/item/stack/material/steel/MS = new /obj/item/stack/material/steel(get_turf(holder)) + MS.amount = 3 + holder.icon_state = "weasel14" + if(4) + if(diff==FORWARD) + user.visible_message("[user] welds internal armor layer to [holder].", "You weld the internal armor layer to [holder].") + holder.icon_state = "weasel17" + else + user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.") + holder.icon_state = "weasel15" + if(3) + if(diff==FORWARD) + user.visible_message("[user] installs external reinforced armor layer to [holder].", "You install external reinforced armor layer to [holder].") + holder.icon_state = "weasel18" + else + user.visible_message("[user] cuts internal armor layer from [holder].", "You cut the internal armor layer from [holder].") + holder.icon_state = "weasel16" + if(2) + if(diff==FORWARD) + user.visible_message("[user] secures external armor layer.", "You secure external reinforced armor layer.") + holder.icon_state = "weasel19" + else + user.visible_message("[user] pries external armor layer from [holder].", "You prie external armor layer from [holder].") + var/obj/item/stack/material/plasteel/MS = new /obj/item/stack/material/plasteel(get_turf(holder)) + MS.amount = 3 + holder.icon_state = "weasel17" + if(1) + if(diff==FORWARD) + user.visible_message("[user] welds external armor layer to [holder].", "You weld external armor layer to [holder].") + else + user.visible_message("[user] unfastens the external armor layer.", "You unfasten the external armor layer.") + holder.icon_state = "weasel18" + return 1 + + spawn_result() + ..() + feedback_inc("mecha_weasel_created",1) + return diff --git a/code/game/mecha/micro/mecha_parts_vr.dm b/code/game/mecha/micro/mecha_parts_vr.dm new file mode 100644 index 0000000000..f16442abf7 --- /dev/null +++ b/code/game/mecha/micro/mecha_parts_vr.dm @@ -0,0 +1,141 @@ +//new micro parts define + +/obj/item/mecha_parts/micro + name = "mecha part" + icon = 'icons/mecha/mech_construct_vr.dmi' + icon_state = "blank" + w_class = ITEMSIZE_NORMAL + + +/obj/item/mecha_parts/micro/chassis/ + name="Mecha Chassis" + icon_state = "backbone" + var/datum/construction/construct + flags = CONDUCT + + attackby(obj/item/W as obj, mob/user as mob) + if(!construct || !construct.action(W, user)) + ..() + return + + attack_hand() + return +//Gopher +/obj/item/mecha_parts/micro/chassis/gopher + name = "Gopher Chassis" + icon_state = "gopher-chassis" + + New() + ..() + construct = new /datum/construction/mecha/gopher_chassis(src) + +/obj/item/mecha_parts/micro/part/gopher_torso + name="Gopher Torso" + desc="A torso part of Gopher. Contains power unit, processing core and life support systems." + icon_state = "gopher-torso" + origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 2, TECH_BIO = 2, TECH_ENGINEERING = 2) + +/obj/item/mecha_parts/micro/part/gopher_left_arm + name="Gopher Left Arm" + desc="A Gopher left arm. Data and power sockets are compatible with most exosuit tools." + icon_state = "gopher-arm-left" + origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 2, TECH_ENGINEERING = 2) + +/obj/item/mecha_parts/micro/part/gopher_right_arm + name="Gopher Right Arm" + desc="A Gopher right arm. Data and power sockets are compatible with most exosuit tools." + icon_state = "gopher-arm-right" + origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 2, TECH_ENGINEERING = 2) + +/obj/item/mecha_parts/micro/part/gopher_left_leg + name="Gopher Left Leg" + desc="A Gopher left leg. Contains somewhat complex servodrives and balance maintaining systems." + icon_state = "gopher-leg-left" + origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 2, TECH_ENGINEERING = 2) + +/obj/item/mecha_parts/micro/part/gopher_right_leg + name="Gopher Right Leg" + desc="A Gopher right leg. Contains somewhat complex servodrives and balance maintaining systems." + icon_state = "gopher-leg-right" + origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 2, TECH_ENGINEERING = 2) + +//polecat +/obj/item/mecha_parts/micro/chassis/polecat + name = "Polecat Chassis" + icon_state = "polecat-chassis" + New() + ..() + construct = new /datum/construction/mecha/polecat_chassis(src) + +/obj/item/mecha_parts/micro/part/polecat_torso + name="Polecat Torso" + icon_state = "polecat-torso" + origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 3, TECH_BIO = 3, TECH_ENGINEERING = 3) + +/obj/item/mecha_parts/micro/part/polecat_left_arm + name="Polecat Left Arm" + icon_state = "polecat-arm-left" + origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 3, TECH_ENGINEERING = 3) + +/obj/item/mecha_parts/micro/part/polecat_right_arm + name="Polecat Right Arm" + icon_state = "polecat-arm-right" + origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 3, TECH_ENGINEERING = 3) + +/obj/item/mecha_parts/micro/part/polecat_left_leg + name="Polecat Left Leg" + icon_state = "polecat-leg-left" + origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 3, TECH_ENGINEERING = 3) + +/obj/item/mecha_parts/micro/part/polecat_right_leg + name="Polecat Right Leg" + icon_state = "polecat-leg-right" + origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 3, TECH_ENGINEERING = 3) + +/obj/item/mecha_parts/micro/part/polecat_armour + name="Polecat Armour Plates" + icon_state = "polecat-armor" + origin_tech = list(TECH_MATERIAL = 5, TECH_COMBAT = 4, TECH_ENGINEERING = 5) + +//weasel +/obj/item/mecha_parts/micro/chassis/weasel + name = "Weasel Chassis" + icon_state = "weasel-chassis" + New() + ..() + construct = new /datum/construction/mecha/weasel_chassis(src) + +/obj/item/mecha_parts/micro/part/weasel_torso + name="Weasel Torso" + icon_state = "weasel-torso" + origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 3, TECH_BIO = 3, TECH_ENGINEERING = 3) + +/obj/item/mecha_parts/micro/part/weasel_head + name="Weasel Head" + icon_state = "weasel-head" + origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 3, TECH_MAGNET = 3, TECH_ENGINEERING = 3) + +/obj/item/mecha_parts/micro/part/weasel_left_arm + name="Weasel Left Arm" + icon_state = "weasel-arm-left" + origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 3, TECH_ENGINEERING = 3) + +/obj/item/mecha_parts/micro/part/weasel_right_arm + name="Weasel Right Arm" + icon_state = "weasel-arm-right" + origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 3, TECH_ENGINEERING = 3) + +/*/obj/item/mecha_parts/micro/part/weasel_left_leg + name="Weasel Left Leg" + icon_state = "weasel-leg-left" + origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 3, TECH_ENGINEERING = 3) + +/obj/item/mecha_parts/micro/part/weasel_right_leg + name="Weasel Right Leg" + icon_state = "weasel-leg-right" + origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 3, TECH_ENGINEERING = 3)*/ + +/obj/item/mecha_parts/micro/part/weasel_tri_leg + name="Weasel Legs" + icon_state = "weasel-leg-all" + origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 3, TECH_ENGINEERING = 3) \ No newline at end of file diff --git a/code/game/mecha/micro/mecha_vr.dm b/code/game/mecha/micro/mecha_vr.dm new file mode 100644 index 0000000000..fee3afb2a6 --- /dev/null +++ b/code/game/mecha/micro/mecha_vr.dm @@ -0,0 +1,47 @@ +#ifdef T_BOARD_MICRO_MECHA +#error T_BOARD_MICRO_MECHA already defined elsewhere, we can't use it. +#endif +#define T_BOARD_MICRO_MECHA(name) "exosuit module circuit board (" + (name) + ")" + +/obj/item/weapon/circuitboard/mecha/gopher + origin_tech = list(TECH_DATA = 3) + +/obj/item/weapon/circuitboard/mecha/gopher/peripherals + name = T_BOARD_MICRO_MECHA("Gopher peripherals control") + icon_state = "mcontroller" + +/obj/item/weapon/circuitboard/mecha/gopher/main + name = T_BOARD_MICRO_MECHA("Gopher central control") + icon_state = "mainboard" + +/obj/item/weapon/circuitboard/mecha/polecat + origin_tech = list(TECH_DATA = 4) + +/obj/item/weapon/circuitboard/mecha/polecat/peripherals + name = T_BOARD_MICRO_MECHA("Polecat peripherals control") + icon_state = "mcontroller" + +/obj/item/weapon/circuitboard/mecha/polecat/targeting + name = T_BOARD_MICRO_MECHA("Polecat weapon control and targeting") + icon_state = "mcontroller" + origin_tech = list(TECH_DATA = 4, TECH_COMBAT = 4) + +/obj/item/weapon/circuitboard/mecha/polecat/main + name = T_BOARD_MICRO_MECHA("Weasel central control") + icon_state = "mainboard" + +/obj/item/weapon/circuitboard/mecha/weasel + origin_tech = list(TECH_DATA = 4) + +/obj/item/weapon/circuitboard/mecha/weasel/peripherals + name = T_BOARD_MICRO_MECHA("Weasel peripherals control") + icon_state = "mcontroller" + +/obj/item/weapon/circuitboard/mecha/weasel/targeting + name = T_BOARD_MICRO_MECHA("Weasel weapon control and targeting") + icon_state = "mcontroller" + origin_tech = list(TECH_DATA = 4, TECH_COMBAT = 4) + +/obj/item/weapon/circuitboard/mecha/weasel/main + name = T_BOARD_MICRO_MECHA("Weasel central control") + icon_state = "mainboard" diff --git a/code/game/mecha/micro/mechfab_designs_vr.dm b/code/game/mecha/micro/mechfab_designs_vr.dm new file mode 100644 index 0000000000..940d7607e3 --- /dev/null +++ b/code/game/mecha/micro/mechfab_designs_vr.dm @@ -0,0 +1,187 @@ +/datum/design/item/mechfab/gopher + category = "Gopher" + time = 5 + +/datum/design/item/mechfab/gopher/chassis + name = "Gopher Chassis" + id = "gopher_chassis" + build_path = /obj/item/mecha_parts/micro/chassis/gopher + time = 3 + materials = list(DEFAULT_WALL_MATERIAL = 7000) + +/datum/design/item/mechfab/gopher/torso + name = "Gopher Torso" + id = "gopher_torso" + build_path = /obj/item/mecha_parts/micro/part/gopher_torso + materials = list(DEFAULT_WALL_MATERIAL = 15000, "glass" = 5250) + +/datum/design/item/mechfab/gopher/left_arm + name = "Gopher Left Arm" + id = "gopher_left_arm" + build_path = /obj/item/mecha_parts/micro/part/gopher_left_arm + materials = list(DEFAULT_WALL_MATERIAL = 8750) + +/datum/design/item/mechfab/gopher/right_arm + name = "Gopher Right Arm" + id = "gopher_right_arm" + build_path = /obj/item/mecha_parts/micro/part/gopher_right_arm + + materials = list(DEFAULT_WALL_MATERIAL = 8750) + +/datum/design/item/mechfab/gopher/left_leg + name = "Gopher Left Leg" + id = "gopher_left_leg" + build_path = /obj/item/mecha_parts/micro/part/gopher_left_leg + materials = list(DEFAULT_WALL_MATERIAL = 12500) + +/datum/design/item/mechfab/gopher/right_leg + name = "Gopher Right Leg" + id = "gopher_right_leg" + build_path = /obj/item/mecha_parts/micro/part/gopher_right_leg + materials = list(DEFAULT_WALL_MATERIAL = 12500) + +/datum/design/item/mecha/drill/micro + name = "Miniature Drill" + id = "micro_drill" + build_path = /obj/item/mecha_parts/mecha_equipment/tool/drill/micro + time = 5 + materials = list(DEFAULT_WALL_MATERIAL = 2500) + +/datum/design/item/mecha/hydraulic_clamp/micro + name = "Mounted ore box" + id = "ore_scoop" + build_path = /obj/item/mecha_parts/mecha_equipment/tool/micro/orescoop + time = 5 + materials = list(DEFAULT_WALL_MATERIAL = 2500) + +/datum/design/item/mechfab/polecat + category = "Polecat" + time = 10 + +/datum/design/item/mechfab/polecat/chassis + name = "Polecat Chassis" + id = "polecat_chassis" + build_path = /obj/item/mecha_parts/micro/chassis/polecat + time = 3 + materials = list(DEFAULT_WALL_MATERIAL = 7000) + +/datum/design/item/mechfab/polecat/torso + name = "Polecat Torso" + id = "polecat_torso" + build_path = /obj/item/mecha_parts/micro/part/polecat_torso + materials = list(DEFAULT_WALL_MATERIAL = 15000, "glass" = 5250) + +/datum/design/item/mechfab/polecat/left_arm + name = "Polecat Left Arm" + id = "polecat_left_arm" + build_path = /obj/item/mecha_parts/micro/part/polecat_left_arm + materials = list(DEFAULT_WALL_MATERIAL = 8750) + +/datum/design/item/mechfab/polecat/right_arm + name = "Polecat Right Arm" + id = "polecat_right_arm" + build_path = /obj/item/mecha_parts/micro/part/polecat_right_arm + materials = list(DEFAULT_WALL_MATERIAL = 8750) + +/datum/design/item/mechfab/polecat/left_leg + name = "Polecat Left Leg" + id = "polecat_left_leg" + build_path = /obj/item/mecha_parts/micro/part/polecat_left_leg + materials = list(DEFAULT_WALL_MATERIAL = 12500) + +/datum/design/item/mechfab/polecat/right_leg + name = "Polecat Right Leg" + id = "polecat_right_leg" + build_path = /obj/item/mecha_parts/micro/part/polecat_right_leg + materials = list(DEFAULT_WALL_MATERIAL = 12500) + +/datum/design/item/mechfab/polecat/armour + name = "Polecat Armour Plates" + id = "polecat_armour" + build_path = /obj/item/mecha_parts/micro/part/polecat_armour + time = 25 + materials = list(DEFAULT_WALL_MATERIAL = 12500, "plastic" = 7500) + +/datum/design/item/mecha/taser/micro + name = "\improper TS-12 \"Suppressor\" integrated taser" + id = "micro_taser" + build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/microtaser + +/datum/design/item/mecha/weapon/laser/micro + name = "\improper WS-19 \"Torch\" laser carbine" + id = "micro_laser" +// req_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 3) + build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/microlaser + +/datum/design/item/mecha/weapon/laser_heavy/micro + name = "\improper PC-20 \"Lance\" light laser cannon" + id = "micro_laser_heavy" + req_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 3, TECH_POWER = 3) + materials = list(DEFAULT_WALL_MATERIAL = 10000, "glass" = 1000, "diamond" = 2000) + build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/microheavy + +/datum/design/item/mecha/weapon/grenade_launcher/micro + name = "\improper FP-20 mounted grenade launcher" + id = "micro_flashbang_launcher" +// req_tech = list(TECH_COMBAT = 3) + build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang/microflashbang + +/datum/design/item/mecha/weapon/scattershot/micro + name = "\improper Remington C-12 \"Boomstick\"" + desc = "A mounted combat shotgun with integrated ammo-lathe." + id = "micro_scattershot" +// req_tech = list(TECH_COMBAT = 4) + build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/microshotgun + +/datum/design/item/mechfab/weasel + category = "Weasel" + time = 5 + +/datum/design/item/mechfab/weasel/chassis + name = "Weasel Chassis" + id = "weasel_chassis" + build_path = /obj/item/mecha_parts/micro/chassis/weasel + time = 3 + materials = list(DEFAULT_WALL_MATERIAL = 7000) + +/datum/design/item/mechfab/weasel/torso + name = "Weasel Torso" + id = "weasel_torso" + build_path = /obj/item/mecha_parts/micro/part/weasel_torso + materials = list(DEFAULT_WALL_MATERIAL = 15000, "glass" = 5250) + +/datum/design/item/mechfab/weasel/left_arm + name = "Weasel Left Arm" + id = "weasel_left_arm" + build_path = /obj/item/mecha_parts/micro/part/weasel_left_arm + materials = list(DEFAULT_WALL_MATERIAL = 8750) + +/datum/design/item/mechfab/weasel/right_arm + name = "Weasel Right Arm" + id = "weasel_right_arm" + build_path = /obj/item/mecha_parts/micro/part/weasel_right_arm + materials = list(DEFAULT_WALL_MATERIAL = 8750) + +/*/datum/design/item/mechfab/weasel/left_leg + name = "Weasel Left Leg" + id = "weasel_left_leg" + build_path = /obj/item/mecha_parts/micro/part/weasel_left_leg + materials = list(DEFAULT_WALL_MATERIAL = 12500) + +/datum/design/item/mechfab/weasel/right_leg + name = "Weasel Right Leg" + id = "weasel_right_leg" + build_path = /obj/item/mecha_parts/micro/part/weasel_right_leg + materials = list(DEFAULT_WALL_MATERIAL = 12500)*/ + +/datum/design/item/mechfab/weasel/tri_leg + name = "Weasel Tri Leg" + id = "weasel_right_leg" + build_path = /obj/item/mecha_parts/micro/part/weasel_tri_leg + materials = list(DEFAULT_WALL_MATERIAL = 27500) + +/datum/design/item/mechfab/weasel/head + name = "Weasel Head" + id = "weasel_head" + build_path = /obj/item/mecha_parts/micro/part/weasel_head + materials = list(DEFAULT_WALL_MATERIAL = 7000, "glass" = 2500) diff --git a/code/modules/research/designs_vr.dm b/code/modules/research/designs_vr.dm index 02b71645da..e074323cbd 100644 --- a/code/modules/research/designs_vr.dm +++ b/code/modules/research/designs_vr.dm @@ -180,6 +180,61 @@ build_path = /obj/item/weapon/circuitboard/quantumpad sort_string = "HABAH" +//////Micro mech stuff +/datum/design/circuit/mecha/gopher_main + name = "'Gopher' central control" + id = "gopher_main" + build_path = /obj/item/weapon/circuitboard/mecha/gopher/main + sort_string = "NAAEA" + +/datum/design/circuit/mecha/gopher_peri + name = "'Gopher' peripherals control" + id = "gopher_peri" + build_path = /obj/item/weapon/circuitboard/mecha/gopher/peripherals + sort_string = "NAAEB" + +/datum/design/circuit/mecha/polecat_main + name = "'Polecat' central control" + id = "polecat_main" + req_tech = list(TECH_DATA = 4) + build_path = /obj/item/weapon/circuitboard/mecha/polecat/main + sort_string = "NAAFA" + +/datum/design/circuit/mecha/polecat_peri + name = "'Polecat' peripherals control" + id = "polecat_peri" + req_tech = list(TECH_DATA = 4) + build_path = /obj/item/weapon/circuitboard/mecha/polecat/peripherals + sort_string = "NAAFB" + +/datum/design/circuit/mecha/polecat_targ + name = "'Polecat' weapon control and targeting" + id = "polecat_targ" + req_tech = list(TECH_DATA = 4, TECH_COMBAT = 2) + build_path = /obj/item/weapon/circuitboard/mecha/polecat/targeting + sort_string = "NAAFC" + +/datum/design/circuit/mecha/weasel_main + name = "'Weasel' central control" + id = "weasel_main" + req_tech = list(TECH_DATA = 4) + build_path = /obj/item/weapon/circuitboard/mecha/weasel/main + sort_string = "NAAGA" + +/datum/design/circuit/mecha/weasel_peri + name = "'Weasel' peripherals control" + id = "weasel_peri" + req_tech = list(TECH_DATA = 4) + build_path = /obj/item/weapon/circuitboard/mecha/weasel/peripherals + sort_string = "NAAGB" + +/datum/design/circuit/mecha/weasel_targ + name = "'Weasel' weapon control and targeting" + id = "weasel_targ" + req_tech = list(TECH_DATA = 4, TECH_COMBAT = 2) + build_path = /obj/item/weapon/circuitboard/mecha/weasel/targeting + sort_string = "NAAGC" + ////// RIGSuit Stuff /* /datum/design/item/rig diff --git a/icons/mecha/mech_construct_vr.dmi b/icons/mecha/mech_construct_vr.dmi new file mode 100644 index 0000000000..26d7772473 Binary files /dev/null and b/icons/mecha/mech_construct_vr.dmi differ diff --git a/icons/mecha/mech_construction_vr.dmi b/icons/mecha/mech_construction_vr.dmi new file mode 100644 index 0000000000..f63582d436 Binary files /dev/null and b/icons/mecha/mech_construction_vr.dmi differ diff --git a/vorestation.dme b/vorestation.dme index 30f6aa7e4d..4708e10d2c 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -861,6 +861,10 @@ #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\micro\mecha_construction_paths_vr.dm" +#include "code\game\mecha\micro\mecha_parts_vr.dm" +#include "code\game\mecha\micro\mecha_vr.dm" +#include "code\game\mecha\micro\mechfab_designs_vr.dm" #include "code\game\mecha\micro\micro.dm" #include "code\game\mecha\micro\micro_equipment.dm" #include "code\game\mecha\micro\security.dm"