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:
Skiedrake
2010-09-08 19:03:08 +00:00
parent 4af226a865
commit 54ce9c57c2
8 changed files with 3427 additions and 3357 deletions

View File

@@ -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

View File

@@ -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 = ""

View File

@@ -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"

View File

@@ -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)
src.pestlevel -= 1 // Kill kill kill
src.weedlevel -= 2 // Kill kill kill
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

View File

@@ -19,24 +19,29 @@ 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
return
else if (istype(A, /obj/blob)) // blob damage in blob code
return
else
var/obj/decal/D = new/obj/decal/(get_turf(src)) // Targeting elsewhere
if (locate (/obj/table, src.loc))
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
return
else
var/obj/decal/D = new/obj/decal/(get_turf(src)) // Targeting elsewhere
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,14 +95,15 @@ Deathnettle
if(istype(M, /mob/living/carbon/human))
M << "\red You are stunned by the powerful acid of the Deathnettle!"
M.eye_blurry += 4
M.paralysis += 5
M.weakened += 2
if(prob(20))
M.paralysis += 5
M.weakened += 2
M.drop_item()
..()
/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."

View File

@@ -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

File diff suppressed because it is too large Load Diff