Added hydroponics crates, graphics and crates themselves into the code.

Added Weed-B-Gone into crates at hydro, also Weed-B-Gone functionality. 
Changed map accordingly. 
Added weedbgone as a reagent and a recipe for it.
Added new spray sound effects and updated/changed those that were used before for fire extinguisher, refueling/refilling, using cleaner and using weed-b-gone.
Removed thumbs.db added by TLE as I saw it unnecessary.
Added buzzing sound to be used later with Fly Amanitas.
Changed some fertilizer graphics in chemical.dmi to be prettier.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@42 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
Skiedrake
2010-09-01 17:54:19 +00:00
parent 7509478125
commit 456a9d6da6
22 changed files with 3445 additions and 3300 deletions

View File

@@ -598,6 +598,37 @@ datum
C:head.clean_blood()
weedbgone
name = "Weed-B-Gone"
id = "weedbgone"
description = "A harmful toxic mixture to kill plantlife. Do not ingest!"
reagent_state = LIQUID
/* Don't know if this is necessary.
on_mob_life(var/mob/living/carbon/M)
if(!M) M = holder.my_atom
M:toxloss += 3.0
..()
return
*/
reaction_obj(var/obj/O, var/volume)
if(istype(O,/obj/plant/vine/))
O:life -= 25 // Kills vines nicely // Not tested as vines don't work in R41
else if(istype(O,/obj/alien/weeds/))
O:health -= 25 // Kills alien weeds pretty fast
O:healthcheck()
// Damage that is done to growing plants is separately
// at code/game/machinery/hydroponics at obj/item/hydroponics
reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
src = null
if(istype(M, /mob/living/carbon))
if(!M.wear_mask) // If not wearing a mask
M:toxloss += 2 // 4 toxic damage per application, doubled for some reason
//if(prob(10))
//M.make_dizzy(1) doesn't seem to do anything
space_cola
name = "Cola"
id = "cola"

View File

@@ -387,4 +387,11 @@ datum
id = "cleaner"
result = "cleaner"
required_reagents = list("ammonia" = 1, "water" = 1)
result_amount = 1
result_amount = 1
weedbgone
name = "Weed-B-Gone"
id = "weedbgone"
result = "weedbgone"
required_reagents = list("toxin" = 1, "water" = 4)
result_amount = 5

View File

@@ -134,3 +134,9 @@
layer = 3
icon = 'old_or_unused.dmi'
icon_state = "cobweb2"
// Used for spray that you spray at walls, tables, hydrovats etc
/obj/decal/spraystill
density = 0
anchored = 1
layer = 50

View File

@@ -172,4 +172,4 @@
name = "Donk-Pockets"
desc = "Remember to fully heat prior to serving. Product will cool if not eaten within seven minutes."
icon_state = "donk_kit"
item_state = "syringe_kit"
item_state = "syringe_kit"

View File

@@ -261,7 +261,19 @@
name = "space cleaner"
icon_state = "cleaner"
item_state = "cleaner"
flags = ONBELT|TABLEPASS|OPENCONTAINER|FPRINT|USEDELAY|OPENCONTAINER
flags = ONBELT|TABLEPASS|OPENCONTAINER|FPRINT|USEDELAY
throwforce = 3
w_class = 2.0
throw_speed = 2
throw_range = 10
/obj/item/weapon/weedbgone
desc = "Weed-B-Gone! Kill those pesky weeds!"
icon = 'hydroponics.dmi'
name = "Weed-B-Gone"
icon_state = "weedbgone"
item_state = "weedbgone"
flags = ONBELT|TABLEPASS|OPENCONTAINER|FPRINT|USEDELAY
throwforce = 3
w_class = 2.0
throw_speed = 2

View File

@@ -40,7 +40,7 @@
if ((O.client && !( O.blinded )))
O << text("\red [src] has been scanned by [user] with the [W]")
else
if (!( istype(W, /obj/item/weapon/grab) ) || !(istype(W, /obj/item/weapon/cleaner)))
if (!( istype(W, /obj/item/weapon/grab) ) || !(istype(W, /obj/item/weapon/cleaner)) || !(istype(W, /obj/item/weapon/weedbgone)) )
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
O << text("\red <B>[] has been hit by [] with []</B>", src, user, W)

View File

@@ -10,7 +10,7 @@
var/mutmod = 1 //Modifier to mutation chance
var/age = 0 // Current age
var/dead = 0 // Is it dead?
var/health = 0 // It's health.
var/health = 0 // Its health.
var/lastproduce = 0 // Last time it was harvested
var/lastcycle = 0 //Used for timing of cycles.
var/cycledelay = 200 // About 10 seconds / cycle
@@ -167,6 +167,14 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob)
user << "--<B>Plant Potency:</B> [src.myseed.potency]"
else
user << "<B>No plant found.</B>"
else if (istype(O, /obj/item/weapon/weedbgone))
if(src.planted && src.myseed)
src.health -= rand(5,50)
src.visible_message("\red <B>\The [src] has been sprayed with \the [O][(user ? " by [user]." : ".")]")
playsound(src.loc, 'spray3.ogg', 50, 1, -6)
else
user << "\red Nothing is planted in the hydrotray!"
return

View File

@@ -83,7 +83,7 @@
var/obj/o = target
o.reagents.trans_to(src, 50)
user << "\blue Extinguisher refilled"
playsound(src.loc, 'zzzt.ogg', 50, 1, -6)
playsound(src.loc, 'refill.ogg', 50, 1, -6)
return
if (!safety)
@@ -95,7 +95,7 @@
src.last_use = world.time
playsound(src.loc, 'spray.ogg', 75, 1, -3)
playsound(src.loc, 'extinguish.ogg', 75, 1, -3)
var/direction = get_dir(src,target)

View File

@@ -0,0 +1,60 @@
/*
CONTAINS:
Weed-B-Gone
Nettle
Deathnettle
*/
/obj/item/weapon/weedbgone/New()
var/datum/reagents/R = new/datum/reagents(100) // 100 units of solution
reagents = R
R.my_atom = src
R.add_reagent("weedbgone", 100)
/obj/item/weapon/weedbgone/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)
if (src.reagents.total_volume < 1)
user << "\blue Add more Weed-B-Gone mixture!"
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)
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
/obj/item/weapon/weedbgone/examine()
set src in usr
usr << text("\icon[] [] units of Weed-B-Gone left!", src, src.reagents.total_volume)
..()
return

View File

@@ -24,7 +24,7 @@ MOP
D.icon_state = "chempuff"
D.create_reagents(10)
src.reagents.trans_to(D, 10)
playsound(src.loc, 'zzzt.ogg', 50, 1, -6)
playsound(src.loc, 'spray2.ogg', 50, 1, -6)
spawn(0)
for(var/i=0, i<3, i++)

View File

@@ -142,7 +142,7 @@ WELDINGTOOOL
if (istype(O, /obj/reagent_dispensers/fueltank) && get_dist(src,O) <= 1)
O.reagents.trans_to(src, 20)
user << "\blue Welder refueled"
playsound(src.loc, 'zzzt.ogg', 50, 1, -6)
playsound(src.loc, 'refill.ogg', 50, 1, -6)
else if (src.welding)
use_fuel(1)

View File

@@ -109,6 +109,21 @@
var/broken = 0
locked = 1
/obj/crate/hydroponics
name = "Gardening crate"
desc = "All you need to destroy those pesky weeds and pests."
icon = 'storage.dmi'
icon_state = "hydrocrate"
openicon = "hydrocrateopen"
closedicon = "hydrocrate"
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.
/obj/crate/New()
..()

View File

@@ -81,6 +81,7 @@
#define FILE_DIR "code/modules/mob/living/carbon/monkey"
#define FILE_DIR "code/modules/mob/living/silicon"
#define FILE_DIR "code/modules/mob/living/silicon/ai"
#define FILE_DIR "code/modules/mob/living/silicon/decoy"
#define FILE_DIR "code/modules/mob/living/silicon/hivebot"
#define FILE_DIR "code/modules/mob/living/silicon/robot"
#define FILE_DIR "code/modules/mob/new_player"
@@ -450,6 +451,7 @@
#include "code\game\objects\items\weapons\glass.dm"
#include "code\game\objects\items\weapons\grenades.dm"
#include "code\game\objects\items\weapons\guns_ammo.dm"
#include "code\game\objects\items\weapons\hydroponics.dm"
#include "code\game\objects\items\weapons\implants.dm"
#include "code\game\objects\items\weapons\kitchen.dm"
#include "code\game\objects\items\weapons\medical.dm"
@@ -580,6 +582,9 @@
#include "code\modules\mob\living\silicon\ai\logout.dm"
#include "code\modules\mob\living\silicon\ai\move.dm"
#include "code\modules\mob\living\silicon\ai\say.dm"
#include "code\modules\mob\living\silicon\decoy\death.dm"
#include "code\modules\mob\living\silicon\decoy\decoy.dm"
#include "code\modules\mob\living\silicon\decoy\life.dm"
#include "code\modules\mob\living\silicon\hivebot\death.dm"
#include "code\modules\mob\living\silicon\hivebot\emote.dm"
#include "code\modules\mob\living\silicon\hivebot\examine.dm"

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 18 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

BIN
sound/effects/flybuzz.ogg Normal file

Binary file not shown.

BIN
sound/effects/refill.ogg Normal file

Binary file not shown.

BIN
sound/effects/spray2.ogg Normal file

Binary file not shown.

BIN
sound/effects/spray3.ogg Normal file

Binary file not shown.