mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-12 11:13:16 +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()
|
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
|
space_cola
|
||||||
name = "Cola"
|
name = "Cola"
|
||||||
id = "cola"
|
id = "cola"
|
||||||
|
|||||||
@@ -388,3 +388,10 @@ datum
|
|||||||
result = "cleaner"
|
result = "cleaner"
|
||||||
required_reagents = list("ammonia" = 1, "water" = 1)
|
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
|
layer = 3
|
||||||
icon = 'old_or_unused.dmi'
|
icon = 'old_or_unused.dmi'
|
||||||
icon_state = "cobweb2"
|
icon_state = "cobweb2"
|
||||||
|
|
||||||
|
// Used for spray that you spray at walls, tables, hydrovats etc
|
||||||
|
/obj/decal/spraystill
|
||||||
|
density = 0
|
||||||
|
anchored = 1
|
||||||
|
layer = 50
|
||||||
|
|||||||
@@ -261,7 +261,19 @@
|
|||||||
name = "space cleaner"
|
name = "space cleaner"
|
||||||
icon_state = "cleaner"
|
icon_state = "cleaner"
|
||||||
item_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
|
throwforce = 3
|
||||||
w_class = 2.0
|
w_class = 2.0
|
||||||
throw_speed = 2
|
throw_speed = 2
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
if ((O.client && !( O.blinded )))
|
if ((O.client && !( O.blinded )))
|
||||||
O << text("\red [src] has been scanned by [user] with the [W]")
|
O << text("\red [src] has been scanned by [user] with the [W]")
|
||||||
else
|
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))
|
for(var/mob/O in viewers(src, null))
|
||||||
if ((O.client && !( O.blinded )))
|
if ((O.client && !( O.blinded )))
|
||||||
O << text("\red <B>[] has been hit by [] with []</B>", src, user, W)
|
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/mutmod = 1 //Modifier to mutation chance
|
||||||
var/age = 0 // Current age
|
var/age = 0 // Current age
|
||||||
var/dead = 0 // Is it dead?
|
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/lastproduce = 0 // Last time it was harvested
|
||||||
var/lastcycle = 0 //Used for timing of cycles.
|
var/lastcycle = 0 //Used for timing of cycles.
|
||||||
var/cycledelay = 200 // About 10 seconds / cycle
|
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]"
|
user << "--<B>Plant Potency:</B> [src.myseed.potency]"
|
||||||
else
|
else
|
||||||
user << "<B>No plant found.</B>"
|
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
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -83,7 +83,7 @@
|
|||||||
var/obj/o = target
|
var/obj/o = target
|
||||||
o.reagents.trans_to(src, 50)
|
o.reagents.trans_to(src, 50)
|
||||||
user << "\blue Extinguisher refilled"
|
user << "\blue Extinguisher refilled"
|
||||||
playsound(src.loc, 'zzzt.ogg', 50, 1, -6)
|
playsound(src.loc, 'refill.ogg', 50, 1, -6)
|
||||||
return
|
return
|
||||||
|
|
||||||
if (!safety)
|
if (!safety)
|
||||||
@@ -95,7 +95,7 @@
|
|||||||
|
|
||||||
src.last_use = world.time
|
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)
|
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.icon_state = "chempuff"
|
||||||
D.create_reagents(10)
|
D.create_reagents(10)
|
||||||
src.reagents.trans_to(D, 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)
|
spawn(0)
|
||||||
for(var/i=0, i<3, i++)
|
for(var/i=0, i<3, i++)
|
||||||
|
|||||||
@@ -142,7 +142,7 @@ WELDINGTOOOL
|
|||||||
if (istype(O, /obj/reagent_dispensers/fueltank) && get_dist(src,O) <= 1)
|
if (istype(O, /obj/reagent_dispensers/fueltank) && get_dist(src,O) <= 1)
|
||||||
O.reagents.trans_to(src, 20)
|
O.reagents.trans_to(src, 20)
|
||||||
user << "\blue Welder refueled"
|
user << "\blue Welder refueled"
|
||||||
playsound(src.loc, 'zzzt.ogg', 50, 1, -6)
|
playsound(src.loc, 'refill.ogg', 50, 1, -6)
|
||||||
|
|
||||||
else if (src.welding)
|
else if (src.welding)
|
||||||
use_fuel(1)
|
use_fuel(1)
|
||||||
|
|||||||
@@ -109,6 +109,21 @@
|
|||||||
var/broken = 0
|
var/broken = 0
|
||||||
locked = 1
|
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()
|
/obj/crate/New()
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -81,6 +81,7 @@
|
|||||||
#define FILE_DIR "code/modules/mob/living/carbon/monkey"
|
#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"
|
||||||
#define FILE_DIR "code/modules/mob/living/silicon/ai"
|
#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/hivebot"
|
||||||
#define FILE_DIR "code/modules/mob/living/silicon/robot"
|
#define FILE_DIR "code/modules/mob/living/silicon/robot"
|
||||||
#define FILE_DIR "code/modules/mob/new_player"
|
#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\glass.dm"
|
||||||
#include "code\game\objects\items\weapons\grenades.dm"
|
#include "code\game\objects\items\weapons\grenades.dm"
|
||||||
#include "code\game\objects\items\weapons\guns_ammo.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\implants.dm"
|
||||||
#include "code\game\objects\items\weapons\kitchen.dm"
|
#include "code\game\objects\items\weapons\kitchen.dm"
|
||||||
#include "code\game\objects\items\weapons\medical.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\logout.dm"
|
||||||
#include "code\modules\mob\living\silicon\ai\move.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\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\death.dm"
|
||||||
#include "code\modules\mob\living\silicon\hivebot\emote.dm"
|
#include "code\modules\mob\living\silicon\hivebot\emote.dm"
|
||||||
#include "code\modules\mob\living\silicon\hivebot\examine.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