diff --git a/code/__defines/hydroponics.dm b/code/__defines/hydroponics.dm index c67f02582f5..a6bb7399f0f 100644 --- a/code/__defines/hydroponics.dm +++ b/code/__defines/hydroponics.dm @@ -57,3 +57,4 @@ #define TRAIT_BIOLUM_COLOUR 37 #define TRAIT_IMMUTABLE 38 #define TRAIT_FLESH_COLOUR 39 +#define TRAIT_SPOROUS 40 \ No newline at end of file diff --git a/code/game/machinery/vending_types.dm b/code/game/machinery/vending_types.dm index a89eeb3c26d..21b69f69371 100644 --- a/code/game/machinery/vending_types.dm +++ b/code/game/machinery/vending_types.dm @@ -153,7 +153,7 @@ /obj/item/weapon/reagent_containers/food/snacks/meatsnack = 22, /obj/item/weapon/reagent_containers/food/snacks/maps = 23, /obj/item/weapon/reagent_containers/food/snacks/nathisnack = 24, - /obj/item/weapon/reagent_containers/food/snacks/koisbar = 115 + /obj/item/weapon/reagent_containers/food/snacks/koisbar = 60 ) @@ -171,7 +171,8 @@ /obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle = 10, /obj/item/weapon/reagent_containers/food/drinks/cans/space_up = 10, /obj/item/weapon/reagent_containers/food/drinks/cans/iced_tea = 10, - /obj/item/weapon/reagent_containers/food/drinks/cans/grape_juice = 10 + /obj/item/weapon/reagent_containers/food/drinks/cans/grape_juice = 10, + /obj/item/weapon/reagent_containers/food/drinks/cans/koispunch = 5 ) contraband = list( /obj/item/weapon/reagent_containers/food/drinks/cans/thirteenloko = 5, @@ -185,7 +186,8 @@ /obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle = 12, /obj/item/weapon/reagent_containers/food/drinks/cans/space_up = 15, /obj/item/weapon/reagent_containers/food/drinks/cans/iced_tea = 13, - /obj/item/weapon/reagent_containers/food/drinks/cans/grape_juice = 16 + /obj/item/weapon/reagent_containers/food/drinks/cans/grape_juice = 16, + /obj/item/weapon/reagent_containers/food/drinks/cans/koispunch = 50 ) idle_power_usage = 211 //refrigerator - believe it or not, this is actually the average power consumption of a refrigerated vending machine according to NRCan. @@ -535,7 +537,7 @@ /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/soda = 30 ) //would a soviet vending machine really have a premium item? hmmm. - premium = list( + premium = list( /obj/item/weapon/reagent_containers/food/drinks/bottle/vodka = 5 ) contraband = list( @@ -717,4 +719,4 @@ /obj/structure/closet/crate/freezer = 2, /obj/structure/closet = 3, /obj/structure/closet/crate = 3 - ) \ No newline at end of file + ) diff --git a/code/game/objects/effects/chem/chemsmoke.dm b/code/game/objects/effects/chem/chemsmoke.dm index 83bf045f9ce..6e8d128b046 100644 --- a/code/game/objects/effects/chem/chemsmoke.dm +++ b/code/game/objects/effects/chem/chemsmoke.dm @@ -225,6 +225,16 @@ spawn(0) spawnSmoke(T, I, duration) +/datum/effect/effect/system/smoke_spread/chem/spores/start() + ..() + if(seed.get_trait(TRAIT_SPREAD)) + for(var/turf/T in targetTurfs) + if(locate(/obj/machinery/portable_atmospherics/hydroponics/soil/invisible in T)) + continue + if(prob(seed.get_trait(round(TRAIT_POTENCY/5)))) + new /obj/machinery/portable_atmospherics/hydroponics/soil/invisible(T,seed) + + //------------------------------------------ // Randomizes and spawns the smoke effect. // Also handles deleting the smoke once the effect is finished. @@ -245,7 +255,7 @@ smoke.initial_splash() -/datum/effect/effect/system/smoke_spread/chem/spores/spawnSmoke(var/turf/T, var/smoke_duration, var/icon/I, var/dist = 1) +/datum/effect/effect/system/smoke_spread/chem/spores/spawnSmoke(var/turf/T, var/icon/I, var/smoke_duration, var/dist = 1) var/obj/effect/effect/smoke/chem/spores = new /obj/effect/effect/smoke/chem(location) spores.name = "cloud of [seed.seed_name] [seed.seed_noun]" ..(T, I, smoke_duration, dist, spores) diff --git a/code/modules/hydroponics/seed.dm b/code/modules/hydroponics/seed.dm index b910fd4654f..234c982bf13 100644 --- a/code/modules/hydroponics/seed.dm +++ b/code/modules/hydroponics/seed.dm @@ -27,6 +27,7 @@ /datum/seed/proc/setup_traits() /datum/seed/New() + set_trait(TRAIT_SPOROUS, 0) // If set, plant will periodically release smoke clouds of its reagent. set_trait(TRAIT_IMMUTABLE, 0) // If set, plant will never mutate. If -1, plant is highly mutable. set_trait(TRAIT_HARVEST_REPEAT, 0) // If 1, this plant will fruit repeatedly. set_trait(TRAIT_PRODUCES_POWER, 0) // Can be used to make a battery. diff --git a/code/modules/hydroponics/seed_datums.dm b/code/modules/hydroponics/seed_datums.dm index f36f66dbd81..7046456c0ab 100644 --- a/code/modules/hydroponics/seed_datums.dm +++ b/code/modules/hydroponics/seed_datums.dm @@ -385,14 +385,15 @@ display_name = "k'ois spores" mutants = null chems = list( - "koispaste" = list(2), - "phoron" = list(4)) + "koispaste" = list(4), + "phoron" = list(8)) splat_type = /obj/effect/plant kitchen_tag = "koisspore" /datum/seed/koisspore/setup_traits() ..() set_trait(TRAIT_SPREAD,1) + set_trait(TRAIT_SPOROUS,1) set_trait(TRAIT_MATURATION,5) set_trait(TRAIT_PRODUCTION,1) set_trait(TRAIT_YIELD,3) diff --git a/code/modules/hydroponics/trays/tray.dm b/code/modules/hydroponics/trays/tray.dm index c2dbe62b642..9731c52be77 100644 --- a/code/modules/hydroponics/trays/tray.dm +++ b/code/modules/hydroponics/trays/tray.dm @@ -233,6 +233,10 @@ harvest = 0 weedlevel += 1 * HYDRO_SPEED_MULTIPLIER pestlevel = 0 + if(prob(min(25,max(1,seed.get_trait(TRAIT_POTENCY/2))))) + if(seed.get_trait(TRAIT_SPOROUS)) + seed.create_spores(get_turf(src)) + visible_message("\The [src] releases its spores!") //Process reagents being input into the tray. /obj/machinery/portable_atmospherics/hydroponics/proc/process_reagents() @@ -301,6 +305,9 @@ else seed.harvest(get_turf(src),yield_mod) // Reset values. + if(seed.get_trait(TRAIT_SPOROUS)) + seed.create_spores(get_turf(src)) + visible_message("\The [src] releases its spores!") harvest = 0 lastproduce = age diff --git a/code/modules/hydroponics/trays/tray_process.dm b/code/modules/hydroponics/trays/tray_process.dm index 47a3bd5dcaf..515a4259ef1 100644 --- a/code/modules/hydroponics/trays/tray_process.dm +++ b/code/modules/hydroponics/trays/tray_process.dm @@ -119,6 +119,9 @@ (!harvest && !dead)) harvest = 1 lastproduce = age + if(seed.get_trait(TRAIT_SPOROUS)) + seed.create_spores(get_turf(src)) + visible_message("\The [src] releases its spores!") // If we're a vine which is not in a closed tray and is at least half mature, and there's no vine currently on our turf: make one (maybe) if(!closed_system && \ diff --git a/code/modules/organs/organ_internal.dm b/code/modules/organs/organ_internal.dm index 3e02adf99f9..d909baf77c5 100644 --- a/code/modules/organs/organ_internal.dm +++ b/code/modules/organs/organ_internal.dm @@ -248,7 +248,7 @@ obj/item/organ/vaurca/neuralsocket/process() air_contents.adjust_gas("phoron", (ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)) air_contents.volume = volume //liters air_contents.temperature = T20C - distribute_pressure = ((pick(1.8,2.0,2.4,2.8)*ONE_ATMOSPHERE)*O2STANDARD) + distribute_pressure = ((pick(2.4,2.8,3.2,3.6)*ONE_ATMOSPHERE)*O2STANDARD) START_PROCESSING(SSprocessing, src) var/mob/living/carbon/location = loc diff --git a/code/modules/reagents/dispenser/cartridge_presets.dm b/code/modules/reagents/dispenser/cartridge_presets.dm index 0eb0bd7b740..5a4e37ca884 100644 --- a/code/modules/reagents/dispenser/cartridge_presets.dm +++ b/code/modules/reagents/dispenser/cartridge_presets.dm @@ -55,6 +55,7 @@ cola spawn_reagent = "cola" smw spawn_reagent = "spacemountainwind" dr_gibb spawn_reagent = "dr_gibb" + kois spawn_reagent = "koispaste" spaceup spawn_reagent = "space_up" brownstar spawn_reagent = "brownstar" tonic spawn_reagent = "tonic" diff --git a/code/modules/reagents/dispenser/dispenser_presets.dm b/code/modules/reagents/dispenser/dispenser_presets.dm index 8887b946466..371f2c539ad 100644 --- a/code/modules/reagents/dispenser/dispenser_presets.dm +++ b/code/modules/reagents/dispenser/dispenser_presets.dm @@ -83,7 +83,8 @@ /obj/item/weapon/reagent_containers/chem_disp_cartridge/sugar, /obj/item/weapon/reagent_containers/chem_disp_cartridge/orange, /obj/item/weapon/reagent_containers/chem_disp_cartridge/lime, - /obj/item/weapon/reagent_containers/chem_disp_cartridge/watermelon + /obj/item/weapon/reagent_containers/chem_disp_cartridge/watermelon, + /obj/item/weapon/reagent_containers/chem_disp_cartridge/kois ) /obj/machinery/chemical_dispenser/bar_alc diff --git a/code/modules/reagents/reagent_containers/food/cans.dm b/code/modules/reagents/reagent_containers/food/cans.dm index 20c11a8599f..8ba1d862120 100644 --- a/code/modules/reagents/reagent_containers/food/cans.dm +++ b/code/modules/reagents/reagent_containers/food/cans.dm @@ -124,3 +124,14 @@ /obj/item/weapon/reagent_containers/food/drinks/cans/sodawater/Initialize() . = ..() reagents.add_reagent("sodawater", 50) + +/obj/item/weapon/reagent_containers/food/drinks/cans/koispunch + name = "\improper Phoron Punch!" + desc = "A radical looking can of Phoron Punch! Phoron poisoning has never been more extreme!" + icon_state = "phoron_punch" + center_of_mass = list("x"=16, "y"=10) + +/obj/item/weapon/reagent_containers/food/drinks/cans/koispunch/Initialize() + . = ..() + reagents.add_reagent("koispaste", 10) + reagents.add_reagent("phoron", 5) diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index f66f6a72902..caa71d1f045 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -4413,8 +4413,8 @@ /obj/item/weapon/reagent_containers/food/snacks/koiskebab1/Initialize() . = ..() - reagents.add_reagent("koispaste", 6) - reagents.add_reagent("phoron", 9) + reagents.add_reagent("koispaste", 8) + reagents.add_reagent("phoron", 12) bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/koiskebab1/attackby(obj/item/weapon/W as obj, mob/user as mob) @@ -4434,7 +4434,7 @@ /obj/item/weapon/reagent_containers/food/snacks/koiskebab2/Initialize() . = ..() reagents.add_reagent("koispaste", 12) - reagents.add_reagent("phoron", 12) + reagents.add_reagent("phoron", 16) bitesize = 6 /obj/item/weapon/reagent_containers/food/snacks/koiskebab2/attackby(obj/item/weapon/W as obj, mob/user as mob) @@ -4453,8 +4453,8 @@ /obj/item/weapon/reagent_containers/food/snacks/koiskebab3/Initialize() . = ..() - reagents.add_reagent("koispaste", 18) - reagents.add_reagent("phoron", 15) + reagents.add_reagent("koispaste", 16) + reagents.add_reagent("phoron", 20) bitesize = 9 /obj/item/weapon/reagent_containers/food/snacks/koissoup @@ -4467,7 +4467,7 @@ /obj/item/weapon/reagent_containers/food/snacks/koissoup/Initialize() . = ..() reagents.add_reagent("koispaste", 15) - reagents.add_reagent("phoron", 10) + reagents.add_reagent("phoron", 15) bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/koiswaffles @@ -4480,7 +4480,7 @@ /obj/item/weapon/reagent_containers/food/snacks/koiswaffles/Initialize() . = ..() reagents.add_reagent("koispaste", 25) - reagents.add_reagent("phoron", 12) + reagents.add_reagent("phoron", 15) bitesize = 5 /obj/item/weapon/reagent_containers/food/snacks/koisjelly @@ -4493,7 +4493,7 @@ . = ..() reagents.add_reagent("koispaste", 25) reagents.add_reagent("imidazoline", 20) - reagents.add_reagent("phoron", 20) + reagents.add_reagent("phoron", 25) bitesize = 5 //unathi snacks - sprites by Araskael diff --git a/html/changelogs/vbuff.yml b/html/changelogs/vbuff.yml new file mode 100644 index 00000000000..9203c0c40ef --- /dev/null +++ b/html/changelogs/vbuff.yml @@ -0,0 +1,40 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +################################# + +# Your name. +author: LordFowl + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Added a new plant gene, TRAIT_SPOROUS, which if set the plant will periodically release smoke clouds of its constituent reagents." + - rscadd: "Added a new Vaurca-centric drink to cola vendors, appropriately named Phoron Punch." + - rscadd: "Added a K'ois paste to the bartender's soft-drink dispenser. Possibilities of bartender mixes involving kois paste in the future." + - balance: "Vaurca now spawn with more phoron in their starting tank, K'ois now provides more phoron when consumed, and K'ois bars are now cheaper, so that the need to breathe phoron is less of a round-determining chore." diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index 7732a8a2a05..4f42e82d993 100644 Binary files a/icons/obj/drinks.dmi and b/icons/obj/drinks.dmi differ