mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-09 16:12:17 +00:00
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:
@@ -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"
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
60
code/game/objects/items/weapons/hydroponics.dm
Normal file
60
code/game/objects/items/weapons/hydroponics.dm
Normal 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
|
||||
@@ -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++)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
..()
|
||||
|
||||
@@ -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"
|
||||
|
||||
BIN
icons/Thumbs.db
BIN
icons/Thumbs.db
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 |
6583
maps/trunkmap.dmm
6583
maps/trunkmap.dmm
File diff suppressed because it is too large
Load Diff
BIN
sound/effects/extinguish.ogg
Normal file
BIN
sound/effects/extinguish.ogg
Normal file
Binary file not shown.
BIN
sound/effects/flybuzz.ogg
Normal file
BIN
sound/effects/flybuzz.ogg
Normal file
Binary file not shown.
BIN
sound/effects/refill.ogg
Normal file
BIN
sound/effects/refill.ogg
Normal file
Binary file not shown.
BIN
sound/effects/spray2.ogg
Normal file
BIN
sound/effects/spray2.ogg
Normal file
Binary file not shown.
BIN
sound/effects/spray3.ogg
Normal file
BIN
sound/effects/spray3.ogg
Normal file
Binary file not shown.
Reference in New Issue
Block a user