mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 02:09:41 +00:00
Made nettles less lethal. Now death nettles don't stun always, but on 20% chance, as it was supposed to be.
Improved plant analyzer, now you can also analyze harvested plants with it. Modified hydroponics layout: added a blue toolkit, anti-toxins kit and changed floor textures some. Added more drug effects to max potency drugs. This required a minor hud modification. (overlay effect scaling) Made foods heal less, as eating almost anything instahealed you before. Fixed minor hydroponics issue with plant-b-gone and adjusted some mutation/growth rates. Mushrooms will now yield minimum one mushroom always when harvested. (sensible!) Made the Hydroponics instructions paper a bit better. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@83 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -614,13 +614,13 @@
|
||||
if(!H.organs[A]) continue
|
||||
affecting = H.organs[A]
|
||||
if(!istype(affecting, /datum/organ/external)) continue
|
||||
if(affecting.heal_damage(src.heal_amt, src.heal_amt))
|
||||
if(affecting.heal_damage(src.heal_amt/2.0, src.heal_amt/2.0))
|
||||
H.UpdateDamageIcon()
|
||||
else
|
||||
H.UpdateDamage()
|
||||
else
|
||||
M.bruteloss = max(0, M.bruteloss - src.heal_amt)
|
||||
M.fireloss = max(0, M.fireloss - src.heal_amt)
|
||||
M.bruteloss = max(0, M.bruteloss - src.heal_amt/2.0)
|
||||
M.fireloss = max(0, M.fireloss - src.heal_amt/2.0)
|
||||
M.updatehealth()
|
||||
|
||||
|
||||
@@ -675,14 +675,17 @@
|
||||
C.see_invisible = 15
|
||||
sleep(300)
|
||||
C.emote(pick("blink", "blink_r", "twitch_s", "frown", "blush", "shrug", "pale", "sniff", "whimper", "flap", "drool", "moan", "twitch"))
|
||||
if(prob(20))
|
||||
if(prob(15))
|
||||
C.see_invisible = 0
|
||||
i = 0
|
||||
C.client.view = world.view // Return view range back to normal
|
||||
if(drug_temp > 75)
|
||||
C.confused += drug_temp // Hard to move where you want
|
||||
C.weakened += rand(0, drug_temp/4) // Fall on your back
|
||||
// Add cool stuff here later, like everything starting to look different etc.
|
||||
|
||||
C.client.view = min(C.client.view + rand(0,4), 14) // FUCK YE
|
||||
|
||||
proc
|
||||
burn(var/mob/M)
|
||||
var/temp_heat = src.heat_amt
|
||||
|
||||
@@ -1,3 +1,14 @@
|
||||
// Plant analyzer
|
||||
|
||||
/obj/item/device/analyzer/plant_analyzer
|
||||
name = "Plant Analyzer"
|
||||
icon = 'device.dmi'
|
||||
icon_state = "hydro"
|
||||
item_state = "analyzer"
|
||||
|
||||
attack_self(mob/user as mob)
|
||||
return 0
|
||||
|
||||
// ********************************************************
|
||||
// Here's all the seeds (=plants) that can be used in hydro
|
||||
// ********************************************************
|
||||
@@ -21,6 +32,7 @@
|
||||
var/growthstages = 0
|
||||
var/plant_type = 0 // 0 = 'normal plant'; 1 = weed; 2 = shroom
|
||||
|
||||
|
||||
/obj/item/seeds/chiliseed
|
||||
name = "Chili plant seeds"
|
||||
icon_state = "seed-chili"
|
||||
@@ -369,6 +381,48 @@
|
||||
// ***********************************************************
|
||||
|
||||
|
||||
obj/item/weapon/reagent_containers/food/snacks/grown/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
if (istype(O, /obj/item/device/analyzer/plant_analyzer))
|
||||
user << "This is a \blue [name]"
|
||||
switch(plant_type)
|
||||
if(0)
|
||||
user << "- Plant type: \blue Normal plant"
|
||||
if(1)
|
||||
user << "- Plant type: \blue Weed"
|
||||
if(2)
|
||||
user << "- Plant type: \blue Mushroom"
|
||||
user << "- Potency: \blue [potency]"
|
||||
user << "- Yield: \blue [yield]"
|
||||
user << "- Maturation speed: \blue [maturation]"
|
||||
user << "- Production speed: \blue [production]"
|
||||
user << "- Endurance: \blue [endurance]"
|
||||
user << "- Healing properties: \blue [heal_amt]"
|
||||
user << "- Amatoxins: \blue [poison_amt]%"
|
||||
user << "- Psilocybin: \blue [drug_amt]%"
|
||||
user << "- Capsaicin: \blue [heat_amt]%"
|
||||
user << ""
|
||||
|
||||
return
|
||||
|
||||
obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
if (istype(O, /obj/item/device/analyzer/plant_analyzer))
|
||||
user << "This is a \blue [name]"
|
||||
switch(plant_type)
|
||||
if(0)
|
||||
user << "- Plant type: \blue Normal plant"
|
||||
if(1)
|
||||
user << "- Plant type: \blue Weed"
|
||||
if(2)
|
||||
user << "- Plant type: \blue Mushroom"
|
||||
user << "- Acid strength: \blue [potency]"
|
||||
user << "- Yield: \blue [yield]"
|
||||
user << "- Maturation speed: \blue [maturation]"
|
||||
user << "- Production speed: \blue [production]"
|
||||
user << "- Endurance: \blue [endurance]"
|
||||
user << ""
|
||||
|
||||
return
|
||||
|
||||
//Grown foods
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/ //New subclass so we can pass on values
|
||||
var/seed = ""
|
||||
|
||||
@@ -740,7 +740,7 @@ ASC: Aux. Solar Control<BR>
|
||||
|
||||
/obj/item/weapon/paper/hydroponics
|
||||
name = "paper- 'Greetings from Billy Bob'"
|
||||
info = "<B>Hey fellow botanist!</B><BR>\n<BR>\nI didn't trust the station folk so I left<BR>\na couple of weeks ago. But here's some<BR>\ninstructions on how to operate things here.<BR>\nYou can grow plants and each iteration they become<BR>\nstronger, more potent and have better yield, if you<BR>\nknow which ones to pick. Use your botanist's analyzer<BR>\nfor that. You can turn harvested plants into seeds<BR>\nat the seed extractor, and replant them for better stuff!<BR>\nSometimes if the weed level gets high in the tray<BR>\nmutations into different mushroom or weed species have<BR>\nbeen witnessed. On the rare occassion even weeds mutate!<BR>\n<BR>\nEither way, have fun!<BR>\n<BR>\nBest regards,<BR>\nBilly Bob Johnson.<BR>\n<BR>\nPS.<BR>\nHere's a few tips:<BR>\nIn nettles, potency = damage<BR>\nIn amanitas = potency deadliness + side effects<BR>\nIn Liberty caps, potency = drug power + effects<BR>\nIn chilis, potency = heat<BR>\n<B>Nutrients keep mushrooms alive!</B><BR>\n<B>Water keeps weeds such as nettles alive!</B><BR>\nAll other plants need both."
|
||||
info = "<B>Hey fellow botanist!</B><BR>\n<BR>\nI didn't trust the station folk so I left<BR>\na couple of weeks ago. But here's some<BR>\ninstructions on how to operate things here.<BR>\nYou can grow plants and each iteration they become<BR>\nstronger, more potent and have better yield, if you<BR>\nknow which ones to pick. Use your botanist's analyzer<BR>\nfor that. You can turn harvested plants into seeds<BR>\nat the seed extractor, and replant them for better stuff!<BR>\nSometimes if the weed level gets high in the tray<BR>\nmutations into different mushroom or weed species have<BR>\nbeen witnessed. On the rare occassion even weeds mutate!<BR>\n<BR>\nEither way, have fun!<BR>\n<BR>\nBest regards,<BR>\nBilly Bob Johnson.<BR>\n<BR>\nPS.<BR>\nHere's a few tips:<BR>\nIn nettles, potency = damage<BR>\nIn amanitas, potency = deadliness + side effects<BR>\nIn Liberty caps, potency = drug power + effects<BR>\nIn chilis, potency = heat<BR>\n<B>Nutrients keep mushrooms alive!</B><BR>\n<B>Water keeps weeds such as nettles alive!</B><BR>\n<B>All other plants need both.</B>"
|
||||
|
||||
/obj/item/weapon/paper/flag
|
||||
icon_state = "flag_neutral"
|
||||
|
||||
@@ -97,7 +97,7 @@ obj/machinery/hydroponics/process()
|
||||
src.mutate()
|
||||
else if(prob(30))
|
||||
src.hardmutate()
|
||||
else if(prob(20))
|
||||
else if(prob(10))
|
||||
src.mutatespecie() // Just testing this here until mutagens are in place
|
||||
m_count++;
|
||||
if(src.yieldmod > 0 && src.myseed.yield != -1) // Unharvestable shouldn't be harvested
|
||||
@@ -234,6 +234,8 @@ obj/machinery/hydroponics/proc/mutate() // Mutates the current seed
|
||||
src.myseed.yield = 0
|
||||
else if(src.myseed.yield > 10)
|
||||
src.myseed.yield = 10
|
||||
if(src.myseed.yield == 0 && src.myseed.plant_type == 2)
|
||||
src.myseed.yield = 1 // Mushrooms always have a minimum yield of 1.
|
||||
|
||||
if(src.myseed.potency != -1) //Not all plants have a potency
|
||||
src.myseed.potency += rand(-10,10)
|
||||
@@ -271,6 +273,8 @@ obj/machinery/hydroponics/proc/hardmutate() // Strongly mutates the current seed
|
||||
src.myseed.yield = 0
|
||||
else if(src.myseed.yield > 10)
|
||||
src.myseed.yield = 10
|
||||
if(src.myseed.yield == 0 && src.myseed.plant_type == 2)
|
||||
src.myseed.yield = 1 // Mushrooms always have a minimum yield of 1.
|
||||
|
||||
if(src.myseed.potency != -1) //Not all plants have a potency
|
||||
src.myseed.potency += rand(-20,20)
|
||||
@@ -463,30 +467,39 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
else if (istype(O, /obj/item/device/analyzer/plant_analyzer))
|
||||
if(src.planted && src.myseed)
|
||||
user << "*** <B>[src.myseed.name]</B> ***"
|
||||
user << "-<B>Plant Age:</B> [src.age]"
|
||||
user << "--<B>Plant Endurance:</B> [src.myseed.endurance]"
|
||||
user << "--<B>Plant Lifespan:</B> [src.myseed.lifespan]"
|
||||
user << "-Plant Age: \blue [src.age]"
|
||||
user << "-Plant Endurance: \blue [src.myseed.endurance]"
|
||||
user << "-Plant Lifespan: \blue [src.myseed.lifespan]"
|
||||
if(src.myseed.yield != -1)
|
||||
user << "--<B>Plant Yield:</B> [src.myseed.yield]"
|
||||
user << "--<B>Plant Production:</B> [src.myseed.production]"
|
||||
user << "-Plant Yield: \blue [src.myseed.yield]"
|
||||
user << "-Plant Production: \blue [src.myseed.production]"
|
||||
if(src.myseed.potency != -1)
|
||||
user << "--<B>Plant Potency:</B> [src.myseed.potency]"
|
||||
user << "--<B>Weed level:</B> [src.weedlevel]/10"
|
||||
user << "--<B>Pest level:</B> [src.pestlevel]/10"
|
||||
user << "--<B>Toxicity level:</B> [src.toxic]/100"
|
||||
user << "-Plant Potency: \blue [src.myseed.potency]"
|
||||
user << "-Weed level: \blue [src.weedlevel]/10"
|
||||
user << "-Pest level: \blue [src.pestlevel]/10"
|
||||
user << "-Toxicity level: \blue [src.toxic]/100"
|
||||
user << ""
|
||||
else
|
||||
user << "<B>No plant found.</B>"
|
||||
user << "--<B>Weed level:</B> [src.weedlevel]/10"
|
||||
user << "--<B>Pest level:</B> [src.pestlevel]/10"
|
||||
user << "--<B>Toxicity level:</B> [src.toxic]/100"
|
||||
user << "-Weed level: \blue [src.weedlevel]/10"
|
||||
user << "-Pest level: \blue [src.pestlevel]/10"
|
||||
user << "-Toxicity level: \blue [src.toxic]/100"
|
||||
user << ""
|
||||
|
||||
else if (istype(O, /obj/item/weapon/plantbgone))
|
||||
if(src.planted && src.myseed)
|
||||
src.health -= rand(5,20)
|
||||
|
||||
if(src.pestlevel > 0)
|
||||
src.pestlevel -= 1 // Kill kill kill
|
||||
else
|
||||
src.pestlevel = 0
|
||||
|
||||
if(src.weedlevel > 1)
|
||||
src.weedlevel -= 2 // Kill kill kill
|
||||
else
|
||||
src.weedlevel = 0
|
||||
|
||||
src.toxic += 5 // Oops
|
||||
src.visible_message("\red <B>\The [src] has been sprayed with \the [O][(user ? " by [user]." : ".")]")
|
||||
playsound(src.loc, 'spray3.ogg', 50, 1, -6)
|
||||
@@ -572,14 +585,6 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
|
||||
|
||||
|
||||
/obj/item/device/analyzer/plant_analyzer
|
||||
name = "Plant Analyzer"
|
||||
icon_state = "hydro"
|
||||
|
||||
attack_self(mob/user as mob)
|
||||
return 0
|
||||
|
||||
|
||||
// BROKEN!!!!!!
|
||||
|
||||
/datum/vinetracker
|
||||
|
||||
@@ -19,14 +19,22 @@ Deathnettle
|
||||
return
|
||||
|
||||
/obj/item/weapon/plantbgone/afterattack(atom/A as mob|obj, mob/user as mob)
|
||||
if (src.reagents.total_volume < 1)
|
||||
|
||||
if (istype(A, /obj/item/weapon/storage/backpack ))
|
||||
return
|
||||
|
||||
else if (locate (/obj/table, src.loc))
|
||||
return
|
||||
|
||||
else if (src.reagents.total_volume < 1)
|
||||
src.empty = 1
|
||||
user << "\blue Add more Plant-B-Gone mixture!"
|
||||
return
|
||||
else if (istype(A, /obj/item/weapon/storage/backpack ))
|
||||
return
|
||||
|
||||
else if (istype(A, /obj/machinery/hydroponics)) // We are targeting hydrotray
|
||||
else
|
||||
src.empty = 0
|
||||
|
||||
if (istype(A, /obj/machinery/hydroponics)) // We are targeting hydrotray
|
||||
return
|
||||
|
||||
else if (istype(A, /obj/blob)) // blob damage in blob code
|
||||
@@ -34,9 +42,6 @@ Deathnettle
|
||||
|
||||
else
|
||||
var/obj/decal/D = new/obj/decal/(get_turf(src)) // Targeting elsewhere
|
||||
if (locate (/obj/table, src.loc))
|
||||
return
|
||||
else
|
||||
D.name = "chemicals"
|
||||
D.icon = 'chemical.dmi'
|
||||
D.icon_state = "weedpuff"
|
||||
@@ -71,7 +76,7 @@ Deathnettle
|
||||
|
||||
/obj/item/weapon/grown/nettle/afterattack(atom/A as mob|obj, mob/user as mob)
|
||||
if (force > 0)
|
||||
force -= rand(0,(force/10)+1) // When you whack someone with it, leaves fall off
|
||||
force -= rand(1,(force/3)+1) // When you whack someone with it, leaves fall off
|
||||
else
|
||||
usr << "All the leaves have fallen off the nettle from violent whacking."
|
||||
del(src)
|
||||
@@ -90,6 +95,7 @@ Deathnettle
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
M << "\red You are stunned by the powerful acid of the Deathnettle!"
|
||||
M.eye_blurry += 4
|
||||
if(prob(20))
|
||||
M.paralysis += 5
|
||||
M.weakened += 2
|
||||
M.drop_item()
|
||||
@@ -97,7 +103,7 @@ Deathnettle
|
||||
|
||||
/obj/item/weapon/grown/deathnettle/afterattack(atom/A as mob|obj, mob/user as mob)
|
||||
if (force > 0)
|
||||
force -= rand(0,(force/10)+1) // When you whack someone with it, leaves fall off
|
||||
force -= rand(1,(force/3)+1) // When you whack someone with it, leaves fall off
|
||||
|
||||
else
|
||||
usr << "All the leaves have fallen off the deathnettle from violent whacking."
|
||||
|
||||
@@ -396,13 +396,13 @@
|
||||
mymob.blind = new /obj/screen( null )
|
||||
mymob.blind.icon_state = "black"
|
||||
mymob.blind.name = " "
|
||||
mymob.blind.screen_loc = "1,1 to 15,15"
|
||||
mymob.blind.screen_loc = "WEST,SOUTH-1 to EAST,SOUTH-1"
|
||||
mymob.blind.layer = 0
|
||||
|
||||
mymob.flash = new /obj/screen( null )
|
||||
mymob.flash.icon_state = "blank"
|
||||
mymob.flash.name = "flash"
|
||||
mymob.flash.screen_loc = "1,1 to 15,15"
|
||||
mymob.flash.screen_loc = "WEST,SOUTH-1 to EAST,SOUTH-1"
|
||||
mymob.flash.layer = 17
|
||||
|
||||
mymob.hands = new /obj/screen( null )
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 211 KiB After Width: | Height: | Size: 212 KiB |
6626
maps/trunkmap.dmm
6626
maps/trunkmap.dmm
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user