diff --git a/GainStation13/code/modules/research/designs/nutri_designs.dm b/GainStation13/code/modules/research/designs/nutri_designs.dm index b0f2216a..ba187af0 100644 --- a/GainStation13/code/modules/research/designs/nutri_designs.dm +++ b/GainStation13/code/modules/research/designs/nutri_designs.dm @@ -15,7 +15,7 @@ departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_SECURITY /datum/design/fatoray_cannon_weak - name = "Cannonshot Fatoray" + name = "Basic Cannonshot Fatoray" id = "fatoray_cannon_weak" build_type = PROTOLATHE materials = list(MAT_METAL = 10000, MAT_GLASS = 8000, MAT_CALORITE = 20000) @@ -24,9 +24,9 @@ category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_SECURITY -/datum/design/alter_ray +/datum/design/alter_ray_metabolism name = "AL-T-Ray: Metabolism" - id = "alter_ray" + id = "alter_ray_metabolism" build_type = PROTOLATHE materials = list(MAT_METAL = 10000, MAT_GLASS = 8000, MAT_CALORITE = 26000) construction_time = 200 @@ -35,7 +35,7 @@ departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_SECURITY -/datum/design/alter_ray +/datum/design/alter_ray_reverser name = "AL-T-Ray: Reverser" id = "alter_ray_reverser" build_type = PROTOLATHE @@ -55,7 +55,7 @@ construction_time = 75 build_path = /obj/item/clothing/neck/petcollar/calorite category = list("Equipment", "Misc", "Medical Designs") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE + departmental_flags = DEPARTMENTAL_FLAG_ALL /datum/design/cyberimp_nutriment_turbo name = "Nutriment Pump Implant TURBO" @@ -66,7 +66,7 @@ materials = list(MAT_METAL = 800, MAT_GLASS = 800, MAT_GOLD = 750, MAT_URANIUM = 1000) build_path = /obj/item/organ/cyberimp/chest/nutriment/turbo category = list("Misc", "Medical Designs") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE /datum/design/bluespace_belt name = "Bluespace Belt" @@ -74,7 +74,156 @@ id = "bluespace_belt" build_type = PROTOLATHE construction_time = 100 - materials = list(MAT_SILVER = 4000, MAT_GOLD = 4000, MAT_BLUESPACE = 2000) + materials = list(MAT_SILVER = 4000, MAT_GOLD = 4000, MAT_BLUESPACE = 2000, ) build_path = /obj/item/bluespace_belt category = list("Misc", "Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/cookie_synthesizer + name = "Cookie Synthesizer" + desc = "A self-charging miraculous device that's able to produce cookies." + id = "cookie_synthesizer" + build_type = PROTOLATHE + construction_time = 100 + materials = list(MAT_SILVER = 4000, MAT_URANIUM = 1000, MAT_BLUESPACE = 1000, MAT_CALORITE = 2000) + build_path = /obj/item/cookiesynth + category = list("Misc", "Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_SERVICE + +//these are made in mech fabricator +/datum/design/borg_cookie_synthesizer + name = "Cyborg Upgrade (Cookie Synthesizer)" + id = "borg_upgrade_cookiesynthesizer" + build_type = MECHFAB + build_path = /obj/item/borg/upgrade/cookiesynth + materials = list(MAT_METAL=10000, MAT_GOLD=1500, MAT_URANIUM=250, MAT_PLASMA=1500) + construction_time = 100 + category = list("Cyborg Upgrade Modules") + +/datum/design/borg_fatoray + name = "Cyborg Upgrade (Fatoray)" + id = "borg_upgrade_fatoray" + build_type = MECHFAB + build_path = /obj/item/borg/upgrade/fatoray + materials = list(MAT_METAL = 8000, MAT_GLASS = 6000, MAT_CALORITE = 10000) + construction_time = 100 + category = list("Cyborg Upgrade Modules") + +/datum/design/borg_feedtube + name = "Cyborg Upgrade (Feeding Tube)" + id = "borg_upgrade_feedingtube" + build_type = MECHFAB + build_path = /obj/item/borg/upgrade/feedtube + materials = list(MAT_METAL = 8000, MAT_GLASS = 6000, MAT_CALORITE = 10000) + construction_time = 100 + category = list("Cyborg Upgrade Modules") + +//todo: make a seperate file for extra borg modules + +/obj/item/borg/upgrade/cookiesynth + name = "cyborg cookie synthesizer" + desc = "An extra module that allows cyborgs to dispense cookies." + icon_state = "cyborg_upgrade3" + +/obj/item/borg/upgrade/cookiesynth/action(mob/living/silicon/robot/R, user = usr) + . = ..() + if(.) + var/obj/item/cookiesynth/S = new(R.module) + R.module.basic_modules += S + R.module.add_module(S, FALSE, TRUE) + +/obj/item/borg/upgrade/cookiesynth/deactivate(mob/living/silicon/robot/R, user = usr) + . = ..() + if (.) + var/obj/item/cookiesynth/S = locate() in R.module + R.module.remove_module(S, TRUE) + + +/obj/item/gun/energy/fatoray/weak/cyborg + name = "cyborg fatoray" + desc = "An integrated fatoray for cyborg use." + icon = 'GainStation13/icons/obj/fatoray.dmi' + icon_state = "fatoray_weak" + can_charge = FALSE + selfcharge = EGUN_SELFCHARGE_BORG + cell_type = /obj/item/stock_parts/cell/secborg + charge_delay = 5 + +/obj/item/borg/upgrade/fatoray + name = "cyborg fatoray module" + desc = "An extra module that allows cyborgs to use fatoray weapons." + icon_state = "cyborg_upgrade3" + +/obj/item/borg/upgrade/fatoray/action(mob/living/silicon/robot/R, user = usr) + . = ..() + if(.) + var/obj/item/gun/energy/fatoray/weak/cyborg/S = new(R.module) + R.module.basic_modules += S + R.module.add_module(S, FALSE, TRUE) + +/obj/item/borg/upgrade/fatoray/deactivate(mob/living/silicon/robot/R, user = usr) + . = ..() + if (.) + var/obj/item/gun/energy/fatoray/weak/cyborg/S = locate() in R.module + R.module.remove_module(S, TRUE) + + + +//cyborg regen feeding tube + +/obj/item/reagent_containers/borghypo/feeding_tube + name = "cyborg feeding tube" + desc = "A feeding tube module for a cyborg." + icon = 'GainStation13/icons/obj/feeding_tube.dmi' + icon_state = "borg_tube" + possible_transfer_amounts = list(5,10,20) + charge_cost = 20 + recharge_time = 3 + accepts_reagent_upgrades = FALSE + reagent_ids = list(/datum/reagent/consumable/cream, /datum/reagent/consumable/milk, /datum/reagent/consumable/nutriment) + +/obj/item/reagent_containers/borghypo/feeding_tube/attack(mob/living/carbon/M, mob/user) + var/datum/reagents/R = reagent_list[mode] + if(!R.total_volume) + to_chat(user, "The injector is empty.") + return + if(!istype(M)) + return + if(R.total_volume && M.can_inject(user, 1, user.zone_selected,bypass_protection)) + to_chat(M, "You feel the cyborg's feeding tube pour liquid down your throat!") + to_chat(user, "You feed [M] with the integrated feeding tube.") + var/fraction = min(amount_per_transfer_from_this/R.total_volume, 1) + R.reaction(M, INJECT, fraction) + if(M.reagents) + var/trans = R.trans_to(M, amount_per_transfer_from_this) + to_chat(user, "[trans] unit\s injected. [R.total_volume] unit\s remaining.") + +/obj/item/reagent_containers/borghypo/feeding_tube/regenerate_reagents() + if(iscyborg(src.loc)) + var/mob/living/silicon/robot/R = src.loc + if(R && R.cell) + for(var/i in modes) //Lots of reagents in this one, so it's best to regenrate them all at once to keep it from being tedious. + var/valueofi = modes[i] + var/datum/reagents/RG = reagent_list[valueofi] + if(RG.total_volume < RG.maximum_volume) + R.cell.use(charge_cost) + RG.add_reagent(reagent_ids[valueofi], 5) + + +/obj/item/borg/upgrade/feedtube + name = "cyborg feeding tube module" + desc = "An extra module that allows cyborgs to use an integrated feeding tube along with a synthesizer." + icon_state = "cyborg_upgrade3" + +/obj/item/borg/upgrade/feedtube/action(mob/living/silicon/robot/R, user = usr) + . = ..() + if(.) + var/obj/item/reagent_containers/borghypo/feeding_tube/S = new(R.module) + R.module.basic_modules += S + R.module.add_module(S, FALSE, TRUE) + +/obj/item/borg/upgrade/feedtube/deactivate(mob/living/silicon/robot/R, user = usr) + . = ..() + if (.) + var/obj/item/reagent_containers/borghypo/feeding_tube/S = locate() in R.module + R.module.remove_module(S, TRUE) diff --git a/GainStation13/code/modules/research/techweb/nutritech_nodes.dm b/GainStation13/code/modules/research/techweb/nutritech_nodes.dm index b7a3f2b4..3abd3cf6 100644 --- a/GainStation13/code/modules/research/techweb/nutritech_nodes.dm +++ b/GainStation13/code/modules/research/techweb/nutritech_nodes.dm @@ -4,8 +4,8 @@ id = "nutritech_tools" display_name = "Nutri-Tech Tools" description = "Ending world hunger was never made easier!" - prereq_ids = list("biotech", "adv_engi") // add "engineering" if the designs get complicated later on - design_ids = list("calorite_collar", "ci-nutrimentturbo", "bluespace_belt", "adipoelectric_transformer") + prereq_ids = list("biotech", "adv_engi") + design_ids = list("calorite_collar", "ci-nutrimentturbo", "bluespace_belt", "adipoelectric_transformer", "cookie_synthesizer", "borg_upgrade_cookiesynthesizer", "borg_upgrade_feedingtube") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) boost_item_paths = list(/obj/item/gun/energy/fatoray, /obj/item/gun/energy/fatoray/cannon, /obj/item/trash/fatoray_scrap1, /obj/item/trash/fatoray_scrap2) export_price = 5000 @@ -16,7 +16,7 @@ display_name = "Nutri-Tech Weapons" description = "Ever wanted to reach your daily caloric intake in just 5 seconds?" prereq_ids = list("biotech", "adv_engi") - design_ids = list("fatoray_weak", "fatoray_cannon_weak", "alter_ray", "alter_ray_reverser") + design_ids = list("fatoray_weak", "fatoray_cannon_weak", "alter_ray_metabolism", "alter_ray_reverser", "borg_upgrade_fatoray") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) boost_item_paths = list(/obj/item/gun/energy/fatoray, /obj/item/gun/energy/fatoray/cannon, /obj/item/trash/fatoray_scrap1, /obj/item/trash/fatoray_scrap2) export_price = 10000 diff --git a/GainStation13/icons/obj/feeding_tube.dmi b/GainStation13/icons/obj/feeding_tube.dmi index 32abee8b..b989e8ca 100644 Binary files a/GainStation13/icons/obj/feeding_tube.dmi and b/GainStation13/icons/obj/feeding_tube.dmi differ diff --git a/_maps/RandomRuins/SpaceRuins/feeders_den.dmm b/_maps/RandomRuins/SpaceRuins/feeders_den.dmm index 52efe894..e2b33361 100644 --- a/_maps/RandomRuins/SpaceRuins/feeders_den.dmm +++ b/_maps/RandomRuins/SpaceRuins/feeders_den.dmm @@ -105,7 +105,7 @@ "qC" = (/obj/structure/falsewall/plastitanium,/obj/structure/fans/tiny/invisible,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden) "qD" = (/obj/machinery/computer/security/telescreen/entertainment,/turf/closed/wall/r_wall/syndicate,/area/ruin/space/has_grav/feedersden) "qF" = (/obj/structure/lattice,/turf/closed/mineral/random,/area/ruin/unpowered/no_grav) -"qM" = (/obj/structure/closet/crate/secure/weapon,/obj/item/clothing/glasses/hud/health/night,/obj/item/kitchen/knife/combat,/obj/effect/turf_decal/tile/brown{dir = 1},/obj/effect/turf_decal/tile/brown{dir = 8},/obj/effect/turf_decal/tile/brown,/obj/item/gun/energy/fatoray,/obj/item/book/granter/spell/fattening,/obj/item/gun/energy/laser/alter_ray/gainrate,/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden) +"qM" = (/obj/structure/closet/crate/secure/weapon,/obj/item/clothing/glasses/hud/health/night,/obj/item/kitchen/knife/combat,/obj/effect/turf_decal/tile/brown{dir = 1},/obj/effect/turf_decal/tile/brown{dir = 8},/obj/effect/turf_decal/tile/brown,/obj/item/gun/energy/fatoray,/obj/item/book/granter/spell/fattening,/obj/item/gun/energy/laser/alter_ray/gainrate,/obj/item/cookiesynth,/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden) "rf" = (/obj/effect/turf_decal/stripes/white/line{dir = 8; icon_state = "steel_decals4"},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden) "ri" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/components/unary/tank/air,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden) "rj" = (/obj/machinery/iv_drip/feeding_tube,/turf/open/floor/mineral/basaltstone_floor,/area/ruin/space/has_grav/feedersden) diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index b7a37158..78d9edf2 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -204,28 +204,6 @@ R.module.basic_modules += S R.module.add_module(S, FALSE, TRUE) -// ----------------------- GS13 - -/obj/item/borg/upgrade/cookiesynth - name = "cyborg cookie synthesizer" - desc = "An extra module that allows cyborgs to dispense cookies." - icon_state = "cyborg_upgrade3" - -/obj/item/borg/upgrade/cookiesynth/action(mob/living/silicon/robot/R, user = usr) - . = ..() - if(.) - var/obj/item/cookiesynth/S = new(R.module) - R.module.basic_modules += S - R.module.add_module(S, FALSE, TRUE) - -/obj/item/borg/upgrade/cookiesynth/deactivate(mob/living/silicon/robot/R, user = usr) - . = ..() - if (.) - var/obj/item/cookiesynth/S = locate() in R.module - R.module.remove_module(S, TRUE) - -// ---------- - /obj/item/borg/upgrade/tboh name = "janitor cyborg trash bag of holding" desc = "A trash bag of holding replacement for the janiborg's standard trash bag."