From 8a31634cab2a6dd9458c94d04f14c19b9a1a51cd Mon Sep 17 00:00:00 2001 From: c0 Date: Wed, 27 Apr 2016 06:34:11 +0300 Subject: [PATCH] Nerfs botany slippery-everything --- code/modules/hydroponics/grown.dm | 11 ++------- code/modules/hydroponics/growninedible.dm | 11 ++------- code/modules/hydroponics/plant_genes.dm | 27 +++++++++++++++++++---- code/modules/hydroponics/seeds.dm | 10 ++++----- 4 files changed, 32 insertions(+), 27 deletions(-) diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index 83e1edfe366..306633d56bc 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -129,15 +129,8 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/Crossed(atom/movable/AM) if(seed) - var/datum/plant_gene/trait/slip/S = seed.get_gene(/datum/plant_gene/trait/slip) - if(S && !ispath(trash, /obj/item/weapon/grown) && iscarbon(AM)) - var/mob/living/carbon/M = AM - var/stun = max(seed.potency * S.rate * 2, 1) - var/weaken = max(seed.potency * S.rate, 0.5) - if(M.slip(stun, weaken, src)) - for(var/datum/plant_gene/trait/T in seed.genes) - T.on_slip(src, M) - return 1 + for(var/datum/plant_gene/trait/T in seed.genes) + T.on_cross(src, AM) ..() diff --git a/code/modules/hydroponics/growninedible.dm b/code/modules/hydroponics/growninedible.dm index cd6cd6f6732..17de41308f2 100644 --- a/code/modules/hydroponics/growninedible.dm +++ b/code/modules/hydroponics/growninedible.dm @@ -50,15 +50,8 @@ /obj/item/weapon/grown/Crossed(atom/movable/AM) if(seed) - var/datum/plant_gene/trait/slip/S = seed.get_gene(/datum/plant_gene/trait/slip) - if(S && iscarbon(AM)) - var/mob/living/carbon/M = AM - var/stun = max(seed.potency * S.rate * 2, 1) - var/weaken = max(seed.potency * S.rate, 0.5) - if(M.slip(stun, weaken, src)) - for(var/datum/plant_gene/trait/T in seed.genes) - T.on_slip(src, M) - return 1 + for(var/datum/plant_gene/trait/T in seed.genes) + T.on_cross(src, AM) ..() diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm index a4b6a92c36a..40f012af0d3 100644 --- a/code/modules/hydroponics/plant_genes.dm +++ b/code/modules/hydroponics/plant_genes.dm @@ -156,6 +156,8 @@ /datum/plant_gene/trait/proc/on_consume(obj/item/weapon/reagent_containers/food/snacks/grown/G, mob/living/carbon/target) return +/datum/plant_gene/trait/proc/on_cross(obj/item/weapon/reagent_containers/food/snacks/grown/G, atom/target) + return /datum/plant_gene/trait/proc/on_slip(obj/item/weapon/reagent_containers/food/snacks/grown/G, mob/living/carbon/target) return /datum/plant_gene/trait/proc/on_squash(obj/item/weapon/reagent_containers/food/snacks/grown/G, atom/target) @@ -177,11 +179,28 @@ /datum/plant_gene/trait/slip // Makes plant slippery, unless it has a grown-type trash. Then the trash gets slippery. // Applies other trait effects (teleporting, etc) to the target by on_slip. - // For code, see grown.dm name = "Slippery Skin" rate = 0.1 examine_line = "It has a very slippery skin." +/datum/plant_gene/trait/slip/on_cross(obj/item/weapon/reagent_containers/food/snacks/grown/G, atom/target) + if(iscarbon(target)) + var/obj/item/seeds/seed = G.seed + var/mob/living/carbon/M = target + + var/stun_len = seed.potency * rate + if(istype(G) && ispath(G.trash, /obj/item/weapon/grown)) + return + + if(!istype(G, /obj/item/weapon/grown/bananapeel) && (!G.reagents || !G.reagents.has_reagent("lube"))) + stun_len /= 3 + + var/stun = max(stun_len * 2, 1) + var/weaken = max(stun_len, 0.5) + + if(M.slip(stun, weaken, G)) + for(var/datum/plant_gene/trait/T in seed.genes) + T.on_slip(src, M) /datum/plant_gene/trait/cell_charge // Cell recharging trait. Charges all mob's power cells to (potency*rate)% mark when eaten. @@ -189,18 +208,18 @@ // Small (potency*rate*5) chance to shock squish or slip target for (potency*rate*5) damage. // Multiplies max charge by (rate*1000) when used in potato power cells. name = "Electrical Activity" - rate = 0.01 + rate = 0.2 origin_tech = list("powerstorage" = 4) /datum/plant_gene/trait/cell_charge/on_slip(obj/item/weapon/reagent_containers/food/snacks/grown/G, mob/living/carbon/C) - var/power = G.seed.potency*rate*5 + var/power = G.seed.potency*rate if(prob(power)) C.electrocute_act(round(power), G, 1, 1) /datum/plant_gene/trait/cell_charge/on_squash(obj/item/weapon/reagent_containers/food/snacks/grown/G, atom/target) if(iscarbon(target)) var/mob/living/carbon/C = target - var/power = G.seed.potency*rate*5 + var/power = G.seed.potency*rate if(prob(power)) C.electrocute_act(round(power), G, 1, 1) diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index a919c48406b..5eba54312e5 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -5,7 +5,7 @@ /obj/item/seeds icon = 'icons/obj/hydroponics/seeds.dmi' icon_state = "seed" // Unknown plant seed - these shouldn't exist in-game. - w_class = 1 // Pocketable. + w_class = 1 burn_state = FLAMMABLE var/plantname = "Plants" // Name of plant when planted. var/product // A type path. The thing that is created when the plant is harvested. @@ -15,10 +15,10 @@ var/icon_dead // Used to override dead icon (default is "[species]-dead"). You can use one dead icon for multiple closely related plants with it. var/icon_harvest // Used to override harvest icon (default is "[species]-harvest"). If null, plant will use [icon_grow][growthstages]. - var/lifespan = 25 // How long before the plant begins to take damage from age. - var/endurance = 15 // Amount of health the plant has. - var/maturation = 6 // Used to determine which sprite to switch to when growing. - var/production = 6 // Changes the amount of time needed for a plant to become harvestable. + var/lifespan = 25 // How long before the plant begins to take damage from age. + var/endurance = 15 // Amount of health the plant has. + var/maturation = 6 // Used to determine which sprite to switch to when growing. + var/production = 6 // Changes the amount of time needed for a plant to become harvestable. var/yield = 3 // Amount of growns created per harvest. If is -1, the plant/shroom/weed is never meant to be harvested. var/oneharvest = 0 // If a plant is cleared from the tray after harvesting, e.g. a carrot. var/potency = 10 // The 'power' of a plant. Generally effects the amount of reagent in a plant, also used in other ways.