mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-01-04 14:42:56 +00:00
Merge to main from the hydroponics branch r57_skie_1.
Hydroponics update + bugfixes. Consists of revisions: R58, R60, R67, R68, R73. Combined changelog (from oldest rev to newest): Put all hydroponics defines into one .dm file Added functionality for nettles and made all currently growable plantlife work Changed hydroponics layout Added Hydroponics Supply crates and added weed/pest sprays into the current ones at hydro Fixed nettle hold graphics Fixed vending machines showing hidden items. Added Research Director hydroponics access and botanists tox access (already had chem access, but no tox). Hydroponics in great shape. Spank Numbers for final modifications before merging to trunk. (weedkillers, pestkillers) Added a seed vending machine. Amanitas now poison, and the poison is nasty. Added a poison() proc to all foods. Added graphics for vertical and horizontal one-tile-wide tables. Put one inside hydroponics. New 'blur' texture when your vision goes blurry. Fixed a typo in hydroponics code. Added a disposal unit in hydroponics. Added a how-to instructions paper in hydroponics. Hydroponics in working order. Extra features still in developement. Fixed weedspray and pestspray entries. Removed chaplains random probability to have see_invisible 15 at start, because it's reset to 0 right next world tick anyways. Added burn() and drug() procs to foodstuffs. Added drug effects to some mushrooms. Have a nice trip. Made chilis heat you up and ice peppers freeze you down. Fixed carrot's harvest icon (it didn't exist) To-do: Mutagens and vitamins for hydroponics plants. New mutations, recipes for cook, extracting stuff from plants. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@74 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -13,12 +13,6 @@
|
||||
/obj/secure_closet/meat/New()
|
||||
..()
|
||||
sleep(2)
|
||||
new /obj/item/weapon/tray (src)
|
||||
new /obj/item/weapon/tray (src)
|
||||
new /obj/item/weapon/tray (src)
|
||||
new /obj/item/weapon/tray (src)
|
||||
new /obj/item/weapon/tray (src)
|
||||
new /obj/item/weapon/tray (src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/flour(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/flour(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/flour(src)
|
||||
@@ -38,7 +32,6 @@
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/flour(src)
|
||||
new /obj/item/kitchen/egg_box(src)
|
||||
new /obj/item/kitchen/egg_box(src)
|
||||
new /obj/item/weapon/kitchenknife (src)
|
||||
|
||||
if(rand(20))
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/faggot(src)
|
||||
@@ -58,16 +51,4 @@
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/cola(src)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/cola(src)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/cola(src)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/cola(src)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/cola(src)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/cola(src)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/milk (src)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/milk (src)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/milk (src)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/milk (src)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/milk (src)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/milk (src)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/milk (src)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/milk (src)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/milk (src)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/milk (src)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/cola(src)
|
||||
@@ -55,8 +55,5 @@
|
||||
user << "<b>Transfer succeeded</b>: [O.name] ([rand(1000,9999)].exe) removed from host terminal and stored within local memory."
|
||||
|
||||
attack(mob/living/silicon/decoy/M as mob, mob/user as mob)
|
||||
if (!istype (M, /mob/living/silicon/decoy))
|
||||
return ..()
|
||||
else
|
||||
M.death()
|
||||
user << "<b>ERROR ERROR ERROR</b>"
|
||||
M.death()
|
||||
user << "<b>ERROR ERROR ERROR</b>"
|
||||
@@ -1,60 +1,100 @@
|
||||
/*
|
||||
|
||||
CONTAINS:
|
||||
Weed-B-Gone
|
||||
Plant-B-Gone
|
||||
Nettle
|
||||
Deathnettle
|
||||
|
||||
*/
|
||||
/obj/item/weapon/weedbgone/New()
|
||||
|
||||
|
||||
// Plant-B-Gone
|
||||
/obj/item/weapon/plantbgone/New()
|
||||
var/datum/reagents/R = new/datum/reagents(100) // 100 units of solution
|
||||
reagents = R
|
||||
R.my_atom = src
|
||||
R.add_reagent("weedbgone", 100)
|
||||
R.add_reagent("plantbgone", 100)
|
||||
|
||||
/obj/item/weapon/weedbgone/attack(mob/living/carbon/human/M as mob, mob/user as mob)
|
||||
/obj/item/weapon/plantbgone/attack(mob/living/carbon/human/M as mob, mob/user as mob)
|
||||
return
|
||||
|
||||
/obj/item/weapon/weedbgone/afterattack(atom/A as mob|obj, mob/user as mob)
|
||||
/obj/item/weapon/plantbgone/afterattack(atom/A as mob|obj, mob/user as mob)
|
||||
if (src.reagents.total_volume < 1)
|
||||
user << "\blue Add more Weed-B-Gone mixture!"
|
||||
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
|
||||
/* Gotta figure out how to make this work, chemical sprite doesn't appear.
|
||||
var/obj/decal/spraystill/D = new /obj/decal/spraystill( src ) // new decal at tray location
|
||||
D.name = "chemicals"
|
||||
D.icon = 'chemical.dmi'
|
||||
D.icon_state = "weedpuff"
|
||||
|
||||
spawn(0) // spawn on top of tray
|
||||
sleep(3)
|
||||
del(D)
|
||||
|
||||
*/
|
||||
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"
|
||||
D.create_reagents(5)
|
||||
src.reagents.trans_to(D, 5) // 5 units of solution used at a time => 20 uses
|
||||
playsound(src.loc, 'spray3.ogg', 50, 1, -6)
|
||||
if (locate (/obj/table, src.loc))
|
||||
return
|
||||
else
|
||||
D.name = "chemicals"
|
||||
D.icon = 'chemical.dmi'
|
||||
D.icon_state = "weedpuff"
|
||||
D.create_reagents(5)
|
||||
src.reagents.trans_to(D, 5) // 5 units of solution used at a time => 20 uses
|
||||
playsound(src.loc, 'spray3.ogg', 50, 1, -6)
|
||||
|
||||
spawn(0)
|
||||
for(var/i=0, i<2, i++) // Max range = 2 tiles
|
||||
step_towards(D,A) // Moves towards target as normally (not thru walls)
|
||||
D.reagents.reaction(get_turf(D))
|
||||
for(var/atom/T in get_turf(D))
|
||||
D.reagents.reaction(T)
|
||||
sleep(4)
|
||||
del(D)
|
||||
spawn(0)
|
||||
for(var/i=0, i<2, i++) // Max range = 2 tiles
|
||||
step_towards(D,A) // Moves towards target as normally (not thru walls)
|
||||
D.reagents.reaction(get_turf(D))
|
||||
for(var/atom/T in get_turf(D))
|
||||
D.reagents.reaction(T)
|
||||
sleep(4)
|
||||
del(D)
|
||||
|
||||
return
|
||||
return
|
||||
|
||||
/obj/item/weapon/weedbgone/examine()
|
||||
/obj/item/weapon/plantbgone/examine()
|
||||
set src in usr
|
||||
usr << text("\icon[] [] units of Weed-B-Gone left!", src, src.reagents.total_volume)
|
||||
usr << text("\icon[] [] units of Plant-B-Gone left!", src, src.reagents.total_volume)
|
||||
..()
|
||||
return
|
||||
|
||||
|
||||
// Nettle
|
||||
|
||||
/obj/item/weapon/grown/nettle/pickup(mob/living/carbon/human/user as mob)
|
||||
if(!user.gloves)
|
||||
user << "\red The nettle burns your bare hand!"
|
||||
user.fireloss += force
|
||||
|
||||
/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
|
||||
else
|
||||
usr << "All the leaves have fallen off the nettle from violent whacking."
|
||||
del(src)
|
||||
|
||||
|
||||
// Deathnettle
|
||||
|
||||
/obj/item/weapon/grown/deathnettle/pickup(mob/living/carbon/human/user as mob)
|
||||
if(!user.gloves)
|
||||
user.fireloss += force
|
||||
if(prob(50))
|
||||
user.paralysis += 5
|
||||
user << "\red You are stunned by the Deathnettle when you try picking it up!"
|
||||
|
||||
/obj/item/weapon/grown/deathnettle/attack(mob/living/carbon/M as mob, mob/user as mob)
|
||||
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
|
||||
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
|
||||
|
||||
else
|
||||
usr << "All the leaves have fallen off the deathnettle from violent whacking."
|
||||
del(src)
|
||||
|
||||
@@ -14,9 +14,7 @@ MOP
|
||||
return
|
||||
|
||||
/obj/item/weapon/cleaner/afterattack(atom/A as mob|obj, mob/user as mob)
|
||||
if (istype(A, /obj/item/weapon/storage/backpack ))
|
||||
return
|
||||
else if (src.reagents.total_volume < 1)
|
||||
if (src.reagents.total_volume < 1)
|
||||
user << "\blue Add more cleaner!"
|
||||
return
|
||||
|
||||
|
||||
@@ -193,8 +193,8 @@ Frequency:
|
||||
var/part_c = "</span></span>"
|
||||
|
||||
if(findtext(part_b, "135.3") || findtext(part_b, "135.5") || findtext(part_b, "135.7") || findtext(part_b, "135.9"))
|
||||
part_a = "<span class='deptradio'><span class='name'>"
|
||||
|
||||
part_b = "<font color=#800080>" + part_b
|
||||
part_c = part_c + "</font>"
|
||||
|
||||
|
||||
if (length(heard_masked))
|
||||
|
||||
@@ -110,7 +110,7 @@
|
||||
locked = 1
|
||||
|
||||
/obj/crate/hydroponics
|
||||
name = "Gardening crate"
|
||||
name = "Hydroponics crate"
|
||||
desc = "All you need to destroy those pesky weeds and pests."
|
||||
icon = 'storage.dmi'
|
||||
icon_state = "hydrocrate"
|
||||
@@ -119,11 +119,12 @@
|
||||
density = 1
|
||||
New()
|
||||
..()
|
||||
new /obj/item/weapon/weedbgone(src)
|
||||
new /obj/item/weapon/weedbgone(src)
|
||||
new /obj/item/weapon/weedbgone(src)
|
||||
new /obj/item/weapon/weedbgone(src)
|
||||
// Four bottles should be enough for everybody.
|
||||
new /obj/item/weapon/plantbgone(src)
|
||||
new /obj/item/weapon/plantbgone(src)
|
||||
new /obj/item/weapon/weedspray(src)
|
||||
new /obj/item/weapon/weedspray(src)
|
||||
new /obj/item/weapon/pestspray(src)
|
||||
new /obj/item/weapon/pestspray(src)
|
||||
|
||||
/obj/crate/New()
|
||||
..()
|
||||
|
||||
Reference in New Issue
Block a user