diff --git a/cev_eris.dme b/cev_eris.dme index 1ead764f680..00d6c4583d7 100644 --- a/cev_eris.dme +++ b/cev_eris.dme @@ -2641,6 +2641,7 @@ #include "code\modules\research\nodes\combat.dm" #include "code\modules\research\nodes\engineering.dm" #include "code\modules\research\nodes\illegal.dm" +#include "code\modules\research\nodes\onestar.dm" #include "code\modules\research\nodes\power.dm" #include "code\modules\research\nodes\robotics.dm" #include "code\modules\sanity\breakdown.dm" diff --git a/code/__DEFINES/research.dm b/code/__DEFINES/research.dm index 0270b88cf4f..799a5ed6a14 100644 --- a/code/__DEFINES/research.dm +++ b/code/__DEFINES/research.dm @@ -8,6 +8,7 @@ #define TECH_MAGNET "magnets" #define TECH_DATA "programming" #define TECH_COVERT "covert" +#define TECH_ONESTAR "One Star" //not sure how to make it more like the others but if you know feel free to fix :) #define TECH_ARCANE "arcane" //used in design to specify which machine can build it @@ -29,7 +30,7 @@ #define RESEARCH_BLUESPACE /datum/tech/bluespace #define RESEARCH_ROBOTICS /datum/tech/robotics #define RESEARCH_COVERT /datum/tech/covert - +#define RESEARCH_ONESTAR /datum/tech/onestar // Design categories #define CAT_MISC "Misc" diff --git a/code/game/objects/items/weapons/stock_parts.dm b/code/game/objects/items/weapons/stock_parts.dm index 4b3c4175d56..ff83dd01d7c 100644 --- a/code/game/objects/items/weapons/stock_parts.dm +++ b/code/game/objects/items/weapons/stock_parts.dm @@ -201,14 +201,15 @@ spawn_blacklisted = TRUE //one star stock parts (rating 5) +//these parts are more expensive to make due to their advanced technologies, and to make it less of a viable money cheat for guild /obj/item/stock_parts/capacitor/one_star name = "one star capacitor" desc = "A super-high capacity capacitor used in the construction of a variety of devices." icon_state = "one_capacitor" - origin_tech = list(TECH_POWER = 5, TECH_MATERIAL = 4) + origin_tech = list(TECH_POWER = 5, TECH_MATERIAL = 4, TECH_ONESTAR = 2) rating = 5 - matter = list(MATERIAL_STEEL = 2, MATERIAL_PLASTIC = 2, MATERIAL_GLASS = 1) + matter = list(MATERIAL_PLASTEEL = 2, MATERIAL_PLATINUM = 2, MATERIAL_PLASMA = 1) spawn_blacklisted = TRUE spawn_tags = SPAWN_TAG_STOCK_PARTS_OS @@ -216,9 +217,9 @@ name = "one star scanning module" desc = "A compact, high resolution phasic scanning module used in the construction of certain devices." icon_state = "one_scan_module" - origin_tech = list(TECH_MAGNET = 5) + origin_tech = list(TECH_MAGNET = 5, TECH_ONESTAR = 2) rating = 5 - matter = list(MATERIAL_STEEL = 2, MATERIAL_PLASTIC = 2, MATERIAL_GLASS = 1) + matter = list(MATERIAL_PLASTEEL = 4, MATERIAL_PLATINUM = 2, MATERIAL_PLASMA = 2) spawn_blacklisted = TRUE spawn_tags = SPAWN_TAG_STOCK_PARTS_OS @@ -226,9 +227,9 @@ name = "one star manipulator" desc = "A tiny little manipulator used in the construction of certain devices." icon_state = "one_mani" - origin_tech = list(TECH_MATERIAL = 5, TECH_DATA = 2) + origin_tech = list(TECH_MATERIAL = 5, TECH_DATA = 2, TECH_ONESTAR = 2) rating = 5 - matter = list(MATERIAL_STEEL = 2, MATERIAL_PLASTIC = 2) + matter = list(MATERIAL_PLASTEEL = 4, MATERIAL_PLATINUM = 2) spawn_blacklisted = TRUE spawn_tags = SPAWN_TAG_STOCK_PARTS_OS @@ -236,9 +237,9 @@ name = "one star micro-laser" icon_state = "one_laser" desc = "A tiny laser used in certain devices." - origin_tech = list(TECH_MAGNET = 5) + origin_tech = list(TECH_MAGNET = 5, TECH_ONESTAR = 2) rating = 5 - matter = list(MATERIAL_STEEL = 2, MATERIAL_PLASTIC = 2, MATERIAL_GLASS = 1) + matter = list(MATERIAL_PLASTEEL = 4, MATERIAL_PLATINUM = 2, MATERIAL_PLASMA = 2) spawn_blacklisted = TRUE spawn_tags = SPAWN_TAG_STOCK_PARTS_OS @@ -246,9 +247,9 @@ name = "one star matter bin" desc = "A container for hold compressed matter awaiting re-construction." icon_state = "one_matter" - origin_tech = list(TECH_MATERIAL = 5) + origin_tech = list(TECH_MATERIAL = 5, TECH_ONESTAR = 2) rating = 5 - matter = list(MATERIAL_PLASTIC = 3, MATERIAL_GLASS = 1) + matter = list(MATERIAL_PLATINUM = 3, MATERIAL_PLASMA = 2) spawn_blacklisted = TRUE spawn_tags = SPAWN_TAG_STOCK_PARTS_OS diff --git a/code/game/objects/items/weapons/tools/crowbars.dm b/code/game/objects/items/weapons/tools/crowbars.dm index 08ace3bb107..76b0a4e4b75 100644 --- a/code/game/objects/items/weapons/tools/crowbars.dm +++ b/code/game/objects/items/weapons/tools/crowbars.dm @@ -29,9 +29,9 @@ desc = "Looks like a classic one, but more durable. Has more space for mods too." icon_state = "one_star_crowbar" item_state = "onestar_crowbar" - matter = list(MATERIAL_STEEL = 3, MATERIAL_PLATINUM = 1) + matter = list(MATERIAL_PLASTEEL = 6, MATERIAL_PLATINUM = 2) tool_qualities = list(QUALITY_PRYING = 25, QUALITY_DIGGING = 10) - origin_tech = list(TECH_ENGINEERING = 1, TECH_MATERIAL = 2) + origin_tech = list(TECH_ENGINEERING = 1, TECH_MATERIAL = 2, TECH_ONESTAR = 1) degradation = 0.6 workspeed = 1.2 spawn_blacklisted = TRUE diff --git a/code/game/objects/items/weapons/tools/hammer.dm b/code/game/objects/items/weapons/tools/hammer.dm index 039d22a1ae1..f210ae90438 100644 --- a/code/game/objects/items/weapons/tools/hammer.dm +++ b/code/game/objects/items/weapons/tools/hammer.dm @@ -113,7 +113,7 @@ force_wielded_multiplier = 1.5 w_class = ITEM_SIZE_HUGE slot_flags = SLOT_BACK - matter = list(MATERIAL_STEEL = 10, MATERIAL_PLATINUM = 5, MATERIAL_DIAMOND = 5) + matter = list(MATERIAL_PLASTEEL = 12, MATERIAL_PLATINUM = 8, MATERIAL_DIAMOND = 5) tool_qualities = list(QUALITY_HAMMERING = 50) suitable_cell = /obj/item/cell/medium degradation = 0.6 diff --git a/code/game/objects/items/weapons/tools/misc.dm b/code/game/objects/items/weapons/tools/misc.dm index 88581badbbc..095688a12d4 100644 --- a/code/game/objects/items/weapons/tools/misc.dm +++ b/code/game/objects/items/weapons/tools/misc.dm @@ -20,9 +20,9 @@ name = "One Star medmultitool" desc = "A compact One Star medical multitool. It has all surgery tools." icon_state = "medmulti" - matter = list(MATERIAL_STEEL = 3, MATERIAL_GLASS = 2, MATERIAL_PLATINUM = 2) + matter = list(MATERIAL_PLASTEEL = 5, MATERIAL_PLASMA = 2, MATERIAL_PLATINUM = 3) flags = CONDUCT - origin_tech = list(TECH_MATERIAL = 3, TECH_BIO = 4) + origin_tech = list(TECH_MATERIAL = 3, TECH_BIO = 4, TECH_ONESTAR = 2) tool_qualities = list(QUALITY_CLAMPING = 30, QUALITY_RETRACTING = 30, QUALITY_BONE_SETTING = 30, QUALITY_CAUTERIZING = 30, QUALITY_SAWING = 15, QUALITY_CUTTING = 30, QUALITY_WIRE_CUTTING = 25) max_upgrades = 2 diff --git a/code/game/objects/items/weapons/tools/pickaxe.dm b/code/game/objects/items/weapons/tools/pickaxe.dm index 9e13ef93bff..f83d7f2634a 100644 --- a/code/game/objects/items/weapons/tools/pickaxe.dm +++ b/code/game/objects/items/weapons/tools/pickaxe.dm @@ -50,8 +50,8 @@ desc = "A standard One Star basic tool. There used energy technologies what makes it enough powerful and cheap at the same time." icon_state = "one_star_pickaxe" item_state = "pickaxe" - matter = list(MATERIAL_STEEL = 4, MATERIAL_PLATINUM = 2, MATERIAL_DIAMOND = 2) - origin_tech = list(TECH_MATERIAL = 3, TECH_ENGINEERING = 2, TECH_POWER = 3) + matter = list(MATERIAL_PLASTEEL = 6, MATERIAL_PLATINUM = 4, MATERIAL_DIAMOND = 2) + origin_tech = list(TECH_MATERIAL = 3, TECH_ENGINEERING = 2, TECH_POWER = 3, TECH_ONESTAR = 1) switched_on_force = WEAPON_FORCE_ROBUST tool_qualities = list(QUALITY_EXCAVATION = 15, QUALITY_PRYING = 25) switched_off_qualities = list(QUALITY_EXCAVATION = 15, QUALITY_PRYING = 25) @@ -86,11 +86,11 @@ desc = "A heavy One Star tool that cracks rocks with blasts, perfect for killing capitalist pigs." icon_state = "one_star_jackhammer" item_state = "jackhammer" - matter = list(MATERIAL_STEEL = 7, MATERIAL_PLATINUM = 2) + matter = list(MATERIAL_PLASTEEL = 8, MATERIAL_PLATINUM = 4) tool_qualities = list(QUALITY_EXCAVATION = 10) switched_off_qualities = list(QUALITY_EXCAVATION = 10) switched_on_qualities = list(QUALITY_DIGGING = 55) - origin_tech = list(TECH_MATERIAL = 4, TECH_POWER = 2, TECH_ENGINEERING = 3) + origin_tech = list(TECH_MATERIAL = 4, TECH_POWER = 2, TECH_ENGINEERING = 3, TECH_ONESTAR = 1) degradation = 0.6 workspeed = 1.8 max_upgrades = 2 @@ -122,8 +122,8 @@ tool_qualities = list(QUALITY_EXCAVATION = 10, QUALITY_DRILLING = 10) switched_off_qualities = list(QUALITY_EXCAVATION = 10, QUALITY_DRILLING = 10) switched_on_qualities = list(QUALITY_DIGGING = 60, QUALITY_DRILLING = 10) - matter = list(MATERIAL_STEEL = 8, MATERIAL_PLATINUM = 2) - origin_tech = list(TECH_MATERIAL = 4, TECH_POWER = 3, TECH_ENGINEERING = 2) + matter = list(MATERIAL_PLASTEEL = 8, MATERIAL_PLATINUM = 4) + origin_tech = list(TECH_MATERIAL = 4, TECH_POWER = 3, TECH_ENGINEERING = 2, TECH_ONESTAR = 1) degradation = 0.6 workspeed = 1.9 max_upgrades = 2 diff --git a/code/game/objects/items/weapons/tools/screwdrivers.dm b/code/game/objects/items/weapons/tools/screwdrivers.dm index bf40230d90c..7a40596c8e3 100644 --- a/code/game/objects/items/weapons/tools/screwdrivers.dm +++ b/code/game/objects/items/weapons/tools/screwdrivers.dm @@ -65,9 +65,9 @@ name = "One Star combi driver" desc = "A One Star combi driver. Does better than the standard combi drivers on the market, but has less slots for tool mods." icon_state = "one_star_combidriver" - matter = list(MATERIAL_STEEL = 4, MATERIAL_PLATINUM = 2) + matter = list(MATERIAL_PLASTEEL = 6, MATERIAL_PLATINUM = 3) tool_qualities = list(QUALITY_SCREW_DRIVING = 60, QUALITY_BOLT_TURNING = 60, QUALITY_DRILLING = 25) - origin_tech = list(TECH_ENGINEERING = 3, TECH_MATERIAL = 2) + origin_tech = list(TECH_ENGINEERING = 3, TECH_MATERIAL = 2, TECH_ONESTAR = 1) degradation = 0.6 workspeed = 1.7 use_power_cost = 0.3 diff --git a/code/game/objects/items/weapons/tools/weldingtools.dm b/code/game/objects/items/weapons/tools/weldingtools.dm index c1931d2bcf3..331391b6231 100644 --- a/code/game/objects/items/weapons/tools/weldingtools.dm +++ b/code/game/objects/items/weapons/tools/weldingtools.dm @@ -82,8 +82,8 @@ desc = "An old and legendary One Star welding tool. Very powerful and reliable, but its compact design causes it to suffer from a lack of both fuel storage and efficiency." icon_state = "one_star_welder" item_state = "welder" - matter = list(MATERIAL_STEEL = 4, MATERIAL_PLATINUM = 2) - origin_tech = list(TECH_ENGINEERING = 2, TECH_MATERIAL = 3) + matter = list(MATERIAL_PLASTEEL = 6, MATERIAL_PLATINUM = 3) + origin_tech = list(TECH_ENGINEERING = 2, TECH_MATERIAL = 3, TECH_ONESTAR = 1) switched_on_qualities = list(QUALITY_WELDING = 30, QUALITY_CAUTERIZING = 10, QUALITY_WIRE_CUTTING = 10) glow_color = COLOR_RED_LIGHT use_fuel_cost = 0.15 diff --git a/code/modules/organs/external/subtypes/robotic_types.dm b/code/modules/organs/external/subtypes/robotic_types.dm index b919b4637e3..582c6d0fef9 100644 --- a/code/modules/organs/external/subtypes/robotic_types.dm +++ b/code/modules/organs/external/subtypes/robotic_types.dm @@ -171,7 +171,7 @@ force_icon = 'icons/mob/human_races/cyberlimbs/one_star.dmi' model = "one_star" armor = list(melee = 10, bullet = 10, energy = 10, bomb = 50, bio = 100, rad = 100) - matter = list(MATERIAL_STEEL = 1, MATERIAL_PLASTIC = 4, MATERIAL_GOLD = 2) + matter = list(MATERIAL_PLASTEEL = 6, MATERIAL_PLATINUM = 4, MATERIAL_GOLD = 4) max_damage = 70 min_broken_damage = 45 spawn_blacklisted = TRUE diff --git a/code/modules/research/debug.dm b/code/modules/research/debug.dm index 8502463a585..f8c0c12ec7b 100755 --- a/code/modules/research/debug.dm +++ b/code/modules/research/debug.dm @@ -6,6 +6,6 @@ origin_tech = list( TECH_MATERIAL = 19, TECH_ENGINEERING = 19, TECH_PLASMA = 19, TECH_POWER = 19, TECH_BLUESPACE = 19, TECH_BIO = 19, TECH_COMBAT = 19, - TECH_MAGNET = 19, TECH_DATA = 19, TECH_COVERT = 19, TECH_ARCANE = 19 + TECH_MAGNET = 19, TECH_DATA = 19, TECH_COVERT = 19, TECH_ONESTAR = 19, TECH_ARCANE = 19 ) spawn_frequency = 0 diff --git a/code/modules/research/designs/prosthesis_implants.dm b/code/modules/research/designs/prosthesis_implants.dm index 4536b4d05a8..02e4d49ad1e 100644 --- a/code/modules/research/designs/prosthesis_implants.dm +++ b/code/modules/research/designs/prosthesis_implants.dm @@ -50,6 +50,22 @@ /datum/design/research/item/mechfab/prosthesis_moebius/head build_path = /obj/item/organ/external/robotic/moebius/reinforced/head +//One Star prosthesis ======================= +/datum/design/research/item/mechfab/prosthesis_one_star + category = CAT_PROSTHESIS + +/datum/design/research/item/organ/external/robotic/one_star/l_arm + build_path = /obj/item/organ/external/robotic/one_star/l_arm + +/datum/design/research/item/organ/external/robotic/one_star/r_arm + build_path = /obj/item/organ/external/robotic/one_star/r_arm + +/datum/design/research/item/organ/external/robotic/one_star/l_leg + build_path = /obj/item/organ/external/robotic/one_star/l_leg + +/datum/design/research/item/organ/external/robotic/one_star/r_leg + build_path = /obj/item/organ/external/robotic/one_star/r_leg + //Modules ==================================== /datum/design/research/item/mechfab/modules @@ -80,6 +96,9 @@ build_path = /obj/item/organ_module/active/multitool/miner name = "Embedded mining multitool" +/datum/design/research/item/mechfab/modules/multitool/ossurgical + build_path = /obj/item/tool/medmultitool + name = "One Star surgical multitool" //Implants /datum/design/research/item/implant build_type = PROTOLATHE | MECHFAB diff --git a/code/modules/research/designs/stock_parts.dm b/code/modules/research/designs/stock_parts.dm index 465b185b939..31c1bf87a07 100644 --- a/code/modules/research/designs/stock_parts.dm +++ b/code/modules/research/designs/stock_parts.dm @@ -19,6 +19,10 @@ build_path = /obj/item/stock_parts/capacitor/super sort_string = "CAAAC" +/datum/design/research/item/part/os_capacitor + build_path = /obj/item/stock_parts/capacitor/one_star + sort_string = "CAAAD" + /datum/design/research/item/part/micro_mani build_path = /obj/item/stock_parts/manipulator sort_string = "CAABA" @@ -31,6 +35,10 @@ build_path = /obj/item/stock_parts/manipulator/pico sort_string = "CAABC" +/datum/design/research/item/part/os_mani + build_path = /obj/item/stock_parts/manipulator/one_star + sort_string = "CAABD" + /datum/design/research/item/part/basic_matter_bin build_path = /obj/item/stock_parts/matter_bin sort_string = "CAACA" @@ -43,6 +51,10 @@ build_path = /obj/item/stock_parts/matter_bin/super sort_string = "CAACC" +/datum/design/research/item/part/os_matter_bin + build_path = /obj/item/stock_parts/matter_bin/one_star + sort_string = "CAACD" + /datum/design/research/item/part/basic_micro_laser build_path = /obj/item/stock_parts/micro_laser sort_string = "CAADA" @@ -55,6 +67,10 @@ build_path = /obj/item/stock_parts/micro_laser/ultra sort_string = "CAADC" +/datum/design/research/item/part/os_micro_laser + build_path = /obj/item/stock_parts/micro_laser/one_star + sort_string = "CAADD" + /datum/design/research/item/part/basic_sensor build_path = /obj/item/stock_parts/scanning_module sort_string = "CAAEA" @@ -67,6 +83,10 @@ build_path = /obj/item/stock_parts/scanning_module/phasic sort_string = "CAAEC" +/datum/design/research/item/part/os_sensor + build_path = /obj/item/stock_parts/scanning_module/one_star + sort_string = "CAAED" + // Telecomm parts /datum/design/research/item/part/subspace_ansible diff --git a/code/modules/research/experiment.dm b/code/modules/research/experiment.dm index 90ec8449202..3581dff11d2 100644 --- a/code/modules/research/experiment.dm +++ b/code/modules/research/experiment.dm @@ -17,6 +17,7 @@ GLOBAL_LIST_EMPTY(explosion_watcher_list) TECH_MAGNET = 350, TECH_DATA = 400, TECH_COVERT = 5000, + TECH_ONESTAR = 4000, ) var/list/saved_tech_levels = list() // list("materials" = list(1, 4, ...), ...) diff --git a/code/modules/research/nodes/onestar.dm b/code/modules/research/nodes/onestar.dm new file mode 100644 index 00000000000..9c73c0a1e53 --- /dev/null +++ b/code/modules/research/nodes/onestar.dm @@ -0,0 +1,65 @@ +/datum/technology/one_star_basic + name = "Simple One Star Technology" + desc = "Reverse engineered OneStar parts." + tech_type = RESEARCH_ONESTAR + + x = 0.1 + y = 0.5 + icon = "one_star" + + cost = 10000 + +/datum/technology/one_star_engineering + name = "One Star Engineering" + desc = "Advanced engineering technology once thought lost to time." + tech_type = RESEARCH_ONESTAR + + x = 0.3 + y = 0.2 + icon = "one_star" + + required_technologies = list(/datum/technology/super_adv_engineering) + required_tech_levels = list(RESEARCH_ENGINEERING = 10) + cost = 5000 + + unlocks_designs = list( /datum/design/research/item/part/os_capacitor, + /datum/design/research/item/part/os_micro_laser, + /datum/design/research/item/part/os_matter_bin + ) + +/datum/technology/one_star_biotech + name = "One Star Biotech" + desc = "Advanced biotechnology once thought lost to time." + tech_type = RESEARCH_ONESTAR + + x = 0.2 + y = 0.4 + icon = "medmulti" + + required_technologies = list(/datum/technology/top_biotech, + /datum/technology/one_star_basic + ) + required_tech_levels = list(RESEARCH_BIOTECH = 10) + cost = 5000 + + unlocks_designs = list( /datum/design/research/item/part/os_mani, + /datum/design/research/item/part/os_sensor, + /datum/design/research/ + ) + +/datum/technology/one_star_weapons + name = "One Star Weapons" + desc = "Advanced weapons technology once thought lost to time." + tech_type = RESEARCH_ONESTAR + + x = 0.3 + y = 0.6 + icon = "one_star" + + required_technologies = list(/datum/technology/one_star_engineering) + required_tech_levels = list(RESEARCH_COMBAT = 10) + cost = 8000 + + unlocks_designs = list( /datum/design/research/item/, + /datum/design/research/item/, + ) diff --git a/code/modules/research/research.dm b/code/modules/research/research.dm index ffa6ca60d79..2bedd778885 100644 --- a/code/modules/research/research.dm +++ b/code/modules/research/research.dm @@ -258,6 +258,14 @@ Procs: shown = FALSE item_tech_req = TECH_COVERT // research any contractor item and this tech will show up +/datum/tech/onestar + name = "OS Reverse-Engineered Research" + shortname = "One Star Tech" + desc = "The reconstruction of schematics long since lost to time." + rare = 4 + shown = FALSE + item_tech_req = TECH_ONESTAR // research any one star item and this tech will show up + /datum/technology var/name = "name" var/desc = "description" // Not used because lazy