mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 02:16:05 +00:00
Buffs H.U.E.Y upgrades (plus advanced mk2 weedkill one) (#37248)
* adds this for starters * more accurate * adds these and makes this work * cleans up spray restock and adds sprays * cleans this up * cleaned out * now we can get disks out of this! * proper path * makes this work
This commit is contained in:
@@ -316,10 +316,19 @@
|
||||
//Service Stuff
|
||||
/obj/item/borg/upgrade/hydro
|
||||
name = "service cyborg H.U.E.Y. upgrade board"
|
||||
desc = "Used to give a service cyborg hydroponics tools and upgrade their service gripper to be able to handle seeds and glass containers."
|
||||
desc = "Used to give a service cyborg hydroponics tools and upgrade their service gripper to be able to handle seeds and diskettes."
|
||||
icon_state = "mainboard"
|
||||
required_modules = list(SERVICE_MODULE)
|
||||
modules_to_add = list(/obj/item/weapon/minihoe, /obj/item/tool/wirecutters/clippers, /obj/item/weapon/storage/bag/plants/portactor, /obj/item/device/analyzer/plant_analyzer)
|
||||
modules_to_add = list(
|
||||
/obj/item/weapon/minihoe,
|
||||
/obj/item/weapon/hatchet,
|
||||
/obj/item/weapon/pickaxe/shovel/spade,
|
||||
/obj/item/tool/wirecutters/clippers,
|
||||
/obj/item/weapon/storage/bag/plants/portactor,
|
||||
/obj/item/device/analyzer/plant_analyzer,
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/robot/water,
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/robot/eznutrient
|
||||
)
|
||||
|
||||
/obj/item/borg/upgrade/hydro/attempt_action(var/mob/living/silicon/robot/R,var/mob/living/user)
|
||||
if(..())
|
||||
@@ -330,6 +339,19 @@
|
||||
return FAILED_TO_ADD
|
||||
|
||||
G.can_hold.Add(/obj/item/seeds, /obj/item/weapon/disk/botany)
|
||||
G.valid_containers.Add(/obj/item/weapon/storage/lockbox/diskettebox/open/botanydisk,/obj/item/weapon/storage/lockbox/diskettebox/large/open/botanydisk)
|
||||
|
||||
/obj/item/borg/upgrade/hydro_adv
|
||||
name = "service cyborg H.U.E.Y. MK-2 upgrade board"
|
||||
desc = "Used to give a service cyborg more hydroponics tools to combat vines and mutate plants."
|
||||
icon_state = "mainboard"
|
||||
required_modules = list(SERVICE_MODULE)
|
||||
required_upgrades = list(/obj/item/borg/upgrade/hydro)
|
||||
modules_to_add = list(
|
||||
/obj/item/floral_somatoray,
|
||||
/obj/item/weapon/scythe,
|
||||
/obj/item/weapon/reagent_containers/spray/plantbgone
|
||||
)
|
||||
|
||||
/obj/item/borg/upgrade/honk
|
||||
name = "service cyborg H.O.N.K. upgrade board"
|
||||
|
||||
@@ -315,79 +315,83 @@ var/list/hydro_trays = list()
|
||||
to_chat(user, "<span class='warning'>You must place the pot on the ground and use a spade on \the [src] to make a transplant.</span>")
|
||||
return
|
||||
|
||||
else if(seed && isshovel(O))
|
||||
else if(isshovel(O))
|
||||
if(closed_system)
|
||||
to_chat(user, "<span class='warning'>You can't transplant the plant while the lid is shut.</span>")
|
||||
to_chat(user, "<span class='warning'>You can't dig soil while the lid is shut.</span>")
|
||||
return
|
||||
if(arcanetampered)
|
||||
to_chat(user,"<span class='sinister'>You cannot dig into the soil.</span>")
|
||||
return
|
||||
var/obj/item/claypot/C = locate() in range(user,1)
|
||||
if(!C)
|
||||
to_chat(user, "<span class='warning'>You need an empty clay pot next to you.</span>")
|
||||
if(dead)
|
||||
remove_dead(user)
|
||||
return
|
||||
if(C.being_potted)
|
||||
to_chat(user, "<span class='warning'>You must finish transplanting your current plant before starting another.</span>")
|
||||
return
|
||||
playsound(loc, 'sound/items/shovel.ogg', 50, 1)
|
||||
C.being_potted = TRUE
|
||||
if(do_after(user, src, 50))
|
||||
user.visible_message( "<span class='notice'>[user] transplants \the [seed.display_name] into \the [C].</span>",
|
||||
"<span class='notice'>[bicon(src)] You transplant \the [seed.display_name] into \the [C].</span>",
|
||||
"<span class='notice'>You hear a ratchet.</span>")
|
||||
if(seed)
|
||||
var/obj/item/claypot/C = locate() in range(user,1)
|
||||
if(!C)
|
||||
to_chat(user, "<span class='warning'>You need an empty clay pot next to you.</span>")
|
||||
return
|
||||
if(C.being_potted)
|
||||
to_chat(user, "<span class='warning'>You must finish transplanting your current plant before starting another.</span>")
|
||||
return
|
||||
playsound(loc, 'sound/items/shovel.ogg', 50, 1)
|
||||
C.being_potted = TRUE
|
||||
if(do_after(user, src, 50))
|
||||
user.visible_message( "<span class='notice'>[user] transplants \the [seed.display_name] into \the [C].</span>",
|
||||
"<span class='notice'>[bicon(src)] You transplant \the [seed.display_name] into \the [C].</span>",
|
||||
"<span class='notice'>You hear a ratchet.</span>")
|
||||
|
||||
var/obj/structure/flora/pottedplant/claypot/S = new(get_turf(C))
|
||||
transfer_fingerprints(C, S)
|
||||
S.paint_layers = C.paint_layers.Copy()
|
||||
qdel(C)
|
||||
var/obj/structure/flora/pottedplant/claypot/S = new(get_turf(C))
|
||||
transfer_fingerprints(C, S)
|
||||
S.paint_layers = C.paint_layers.Copy()
|
||||
qdel(C)
|
||||
|
||||
if(seed.large)
|
||||
S.icon_state += "-large"
|
||||
if(seed.large)
|
||||
S.icon_state += "-large"
|
||||
|
||||
var/plant_appearance = ""
|
||||
if(dead)
|
||||
plant_appearance = "dead"
|
||||
else if(harvest)
|
||||
if (harvest > 1)
|
||||
plant_appearance = "harvest-[harvest]"
|
||||
var/plant_appearance = ""
|
||||
if(dead)
|
||||
plant_appearance = "dead"
|
||||
else if(harvest)
|
||||
if (harvest > 1)
|
||||
plant_appearance = "harvest-[harvest]"
|
||||
else
|
||||
plant_appearance = "harvest"
|
||||
else
|
||||
plant_appearance = "harvest"
|
||||
plant_appearance = "stage-[growth_level]"
|
||||
|
||||
S.plant_image = image(seed.plant_dmi,plant_appearance)
|
||||
S.plant_name = seed.display_name
|
||||
S.name = "potted [S.plant_name]"
|
||||
S.plantname = seed.name
|
||||
|
||||
if (seed.pollen && harvest >= seed.pollen_at_level)
|
||||
S.pollen = seed.pollen
|
||||
S.add_particles(seed.pollen)
|
||||
S.adjust_particles(PVAR_SPAWNING, 0.05, seed.pollen)
|
||||
S.adjust_particles(PVAR_PLANE, FLOAT_PLANE, seed.pollen)
|
||||
S.adjust_particles(PVAR_POSITION, generator("box", list(-12,4), list(12,12)), seed.pollen)
|
||||
|
||||
if (seed.moody_lights)
|
||||
S.update_moody_light_index("plant", seed.plant_dmi, "[plant_appearance]-moody")
|
||||
else if (seed.biolum)
|
||||
var/image/luminosity_gradient = image(icon, src, "moody_plant_mask")
|
||||
luminosity_gradient.blend_mode = BLEND_INSET_OVERLAY
|
||||
var/image/mask = image(seed.plant_dmi, src, plant_appearance)
|
||||
mask.appearance_flags = KEEP_TOGETHER
|
||||
mask.overlays += luminosity_gradient
|
||||
S.update_moody_light_index("plant", image_override = mask)
|
||||
|
||||
if(seed.biolum)
|
||||
S.set_light(get_biolum())
|
||||
if(seed.biolum_colour)
|
||||
S.light_color = seed.biolum_colour
|
||||
|
||||
remove_plant()
|
||||
S.update_icon()
|
||||
update_icon()
|
||||
else
|
||||
plant_appearance = "stage-[growth_level]"
|
||||
|
||||
S.plant_image = image(seed.plant_dmi,plant_appearance)
|
||||
S.plant_name = seed.display_name
|
||||
S.name = "potted [S.plant_name]"
|
||||
S.plantname = seed.name
|
||||
|
||||
if (seed.pollen && harvest >= seed.pollen_at_level)
|
||||
S.pollen = seed.pollen
|
||||
S.add_particles(seed.pollen)
|
||||
S.adjust_particles(PVAR_SPAWNING, 0.05, seed.pollen)
|
||||
S.adjust_particles(PVAR_PLANE, FLOAT_PLANE, seed.pollen)
|
||||
S.adjust_particles(PVAR_POSITION, generator("box", list(-12,4), list(12,12)), seed.pollen)
|
||||
|
||||
if (seed.moody_lights)
|
||||
S.update_moody_light_index("plant", seed.plant_dmi, "[plant_appearance]-moody")
|
||||
else if (seed.biolum)
|
||||
var/image/luminosity_gradient = image(icon, src, "moody_plant_mask")
|
||||
luminosity_gradient.blend_mode = BLEND_INSET_OVERLAY
|
||||
var/image/mask = image(seed.plant_dmi, src, plant_appearance)
|
||||
mask.appearance_flags = KEEP_TOGETHER
|
||||
mask.overlays += luminosity_gradient
|
||||
S.update_moody_light_index("plant", image_override = mask)
|
||||
|
||||
if(seed.biolum)
|
||||
S.set_light(get_biolum())
|
||||
if(seed.biolum_colour)
|
||||
S.light_color = seed.biolum_colour
|
||||
|
||||
remove_plant()
|
||||
S.update_icon()
|
||||
update_icon()
|
||||
else
|
||||
C.being_potted = FALSE
|
||||
return
|
||||
C.being_potted = FALSE
|
||||
return
|
||||
|
||||
else if(istype(O,/obj/item/tool/scalpel) || O.is_wirecutter(user))
|
||||
if(!seed)
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
/obj/item/weapon/disk/botany/attack_self(var/mob/user as mob)
|
||||
if(genes.len)
|
||||
var/choice = alert(user, "Are you sure you want to wipe the disk?", "Xenobotany Data", "No", "Yes")
|
||||
if(src && user && genes && choice && choice == "Yes" && user.get_active_hand() == src)
|
||||
if(src && user && genes && choice && choice == "Yes" && (user.get_active_hand() == src || istype(loc,/obj/item/weapon/gripper/service)))
|
||||
to_chat(user, "You wipe the disk data.")
|
||||
name = initial(name)
|
||||
desc = initial(desc)
|
||||
|
||||
@@ -280,9 +280,7 @@
|
||||
S.max_amount = MEDICAL_MAX_KIT
|
||||
S.amount = MEDICAL_MAX_KIT
|
||||
modules += S
|
||||
emag = new /obj/item/weapon/reagent_containers/spray(src)
|
||||
emag.reagents.add_reagent(PACID, 250)
|
||||
emag.name = "Polyacid spray"
|
||||
emag = new /obj/item/weapon/reagent_containers/spray/pacid(src)
|
||||
|
||||
sensor_augs = list("Medical", "Disable")
|
||||
|
||||
@@ -406,9 +404,7 @@
|
||||
modules += new /obj/item/weapon/mop(src)
|
||||
modules += new /obj/item/device/lightreplacer/borg(src)
|
||||
modules += new /obj/item/weapon/reagent_containers/glass/bucket(src)
|
||||
emag = new /obj/item/weapon/reagent_containers/spray(src)
|
||||
emag.reagents.add_reagent(LUBE, 250)
|
||||
emag.name = "Lube spray"
|
||||
emag = new /obj/item/weapon/reagent_containers/spray/lube(src)
|
||||
|
||||
fix_modules()
|
||||
|
||||
|
||||
@@ -6,6 +6,10 @@
|
||||
volume = 60
|
||||
var/reagent = ""
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/robot/New()
|
||||
..()
|
||||
reagents.add_reagent(reagent, 60)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/robot/restock()
|
||||
if(reagent && (reagents.get_reagent_amount(reagent) < volume))
|
||||
reagents.add_reagent(reagent, 2)
|
||||
@@ -17,20 +21,23 @@
|
||||
//icon_state = "bottle16"
|
||||
reagent = INAPROVALINE
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/robot/inaprovaline/New()
|
||||
..()
|
||||
reagents.add_reagent(INAPROVALINE, 60)
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/robot/antitoxin
|
||||
name = "internal anti-toxin bottle"
|
||||
desc = "A small bottle of Anti-toxins. Counters poisons, and repairs damage, a wonder drug."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
//icon_state = "bottle17"
|
||||
reagent = ANTI_TOXIN
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/robot/water
|
||||
name = "internal water bottle"
|
||||
desc = "A small bottle for watering plants."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
//icon_state = "bottle17"
|
||||
reagent = WATER
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/robot/antitoxin/New()
|
||||
..()
|
||||
reagents.add_reagent(ANTI_TOXIN, 60)
|
||||
return
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/robot/eznutrient
|
||||
name = "internal E-Z-nutrient bottle"
|
||||
desc = "A small bottle for feeding plants."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
//icon_state = "bottle17"
|
||||
reagent = EZNUTRIENT
|
||||
@@ -88,10 +88,8 @@
|
||||
to_chat(user, "<span class='notice'>You switched [amount_per_transfer_from_this == 10 ? "on" : "off"] the pressure nozzle. You'll now use [amount_per_transfer_from_this] units per spray.</span>")
|
||||
|
||||
/obj/item/weapon/reagent_containers/spray/restock()
|
||||
if(name == "Polyacid spray")
|
||||
reagents.add_reagent(PACID, 2)
|
||||
else if(name == "Lube spray")
|
||||
reagents.add_reagent(LUBE, 2)
|
||||
if(preset_reagent)
|
||||
reagents.add_reagent(preset_reagent, 2)
|
||||
|
||||
/obj/item/weapon/reagent_containers/spray/proc/make_puff(var/atom/target, var/mob/user)
|
||||
if((has_slimes & slimes_accepted) && preset_reagent)
|
||||
@@ -188,6 +186,15 @@
|
||||
slimes_accepted = SLIME_PYRITE
|
||||
preset_reagent = FAKE_CREEP
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/spray/pacid
|
||||
name = "Polyacid spray"
|
||||
preset_reagent = PACID
|
||||
|
||||
/obj/item/weapon/reagent_containers/spray/lube
|
||||
name = "Lube spray"
|
||||
preset_reagent = LUBE
|
||||
|
||||
//chemsprayer
|
||||
/obj/item/weapon/reagent_containers/spray/chemsprayer
|
||||
name = "chem sprayer"
|
||||
|
||||
@@ -140,7 +140,7 @@
|
||||
|
||||
/datum/design/borg_service_upgrade_hydro
|
||||
name = "Service cyborg H.U.E.Y. upgrade"
|
||||
desc = "Used to give a service cyborg hydroponics tools and upgrade their service gripper to be able to handle seeds, weed killers, sprayers and glass containers."
|
||||
desc = "Used to give a service cyborg hydroponics tools and upgrade their service gripper to be able to handle seeds and botany disks."
|
||||
id = "borg_service_module_hydro"
|
||||
req_tech = list(Tc_BIOTECH = 4, Tc_ENGINEERING = 2, Tc_PROGRAMMING = 2)
|
||||
build_type = MECHFAB
|
||||
@@ -148,6 +148,16 @@
|
||||
build_path = /obj/item/borg/upgrade/hydro
|
||||
category = "Robotic_Upgrade_Modules"
|
||||
|
||||
/datum/design/borg_service_upgrade_hydro_adv
|
||||
name = "Service cyborg H.U.E.Y. MK-2 upgrade"
|
||||
desc = "Used to give a service cyborg tools to mutate plants and combat vines."
|
||||
id = "borg_adv_service_module_hydro"
|
||||
req_tech = list(Tc_BIOTECH = 5, Tc_ENGINEERING = 4, Tc_PROGRAMMING = 4)
|
||||
build_type = MECHFAB
|
||||
materials = list(MAT_IRON=55000, MAT_GLASS=16000, MAT_PLASTIC=5000, MAT_GOLD=2500, MAT_SILVER=2500)
|
||||
build_path = /obj/item/borg/upgrade/hydro_adv
|
||||
category = "Robotic_Upgrade_Modules"
|
||||
|
||||
/datum/design/borg_service_upgrade_honk
|
||||
name = "Service cyborg H.O.N.K. upgrade"
|
||||
desc = "Used to give a service cyborg fun toys!"
|
||||
|
||||
Reference in New Issue
Block a user