12/21 modernizations from TG live (#103)

* sync (#3)

* shuttle auto call

* Merge /vore into /master (#39)

* progress

* Compile errors fixed

No idea if it's test worthy tho as conflicts with race overhaul and
narky removal.

* Update admins.txt

* efforts continue

Fuck grab code, seriously

* grab code is cancer

* Execute the Narkism

Do not hesitate.

Show no mercy.

* holy shit grab code is awful

* have I bitched about grab code

My bitching, let me show you it

* código de agarre es una mierda

No really it is

* yeah I don't even know anymore.

* Lolnope. Fuck grab code

* I'm not even sure what to fix anymore

* Self eating is not an acceptable fate

* Taste the void, son.

* My code doesn't pass it's own sanity check.

Maybe it's a sign of things to come.

* uncommented and notes

* It Works and I Don't Know Why (#38)

* shuttle auto call

* it works and I don't know why

* Subsystem 12/21

Most Recent TG subsystem folder

* globalvars 12/21

Tossed out the flavor_misc and parallax files

* Onclick 12/21

as well as .dme updates

* _defines 12/21

ommited old _MC.dm

* _HELPERS 12/21

Preserved snowflake placement of furry sprites

* _defeines/genetics

reapplied narkism holdover for snowflake races.

* Oops forgot mutant colors

* modules porting 12/21 + Sounds/icons

Admin, Client and most of mob life files ommitted

* enviroment file

* Admin optimizations

ahelp log system kept

* Mob ports 12/21

Flavor text preserved

* datums ported 12/21

* Game ported 12/21

* batch of duplicate fixes/dogborg work

Dogborgs need to be modernized to refractored borg standards.

* moar fixes

* Maps and futher compile fixes
This commit is contained in:
Poojawa
2016-12-22 03:57:55 -06:00
committed by GitHub
parent f5e143a452
commit cf59ac1c3d
2215 changed files with 707445 additions and 87041 deletions
+2 -1
View File
@@ -21,6 +21,7 @@
yield = 6
potency = 5
icon_dead = "ambrosia-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/ambrosia/deus)
reagents_add = list("space_drugs" = 0.15, "bicaridine" = 0.1, "kelotane" = 0.1, "vitamin" = 0.04, "nutriment" = 0.05, "toxin" = 0.1)
@@ -61,7 +62,7 @@
mutatelist = list()
reagents_add = list("earthsblood" = 0.05, "nutriment" = 0.06, "vitamin" = 0.05)
rarity = 30 //These are some pretty good plants right here
oneharvest = TRUE
genes = list()
weed_rate = 4
weed_chance = 100
+1
View File
@@ -12,6 +12,7 @@
growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
icon_grow = "apple-grow"
icon_dead = "apple-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/apple/gold)
reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1)
+5 -5
View File
@@ -10,7 +10,7 @@
endurance = 30
growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
icon_dead = "banana-dead"
genes = list(/datum/plant_gene/trait/slip)
genes = list(/datum/plant_gene/trait/slip, /datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/banana/mime, /obj/item/seeds/banana/bluespace)
reagents_add = list("banana" = 0.1, "potassium" = 0.1, "vitamin" = 0.04, "nutriment" = 0.02)
@@ -25,7 +25,7 @@
bitesize = 5
/obj/item/weapon/reagent_containers/food/snacks/grown/banana/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] is aiming the [src.name] at themself! It looks like \he's trying to commit suicide.</span>")
user.visible_message("<span class='suicide'>[user] is aiming [src] at [user.p_them()]self! It looks like [user.p_theyre()] trying to commit suicide!</span>")
playsound(loc, 'sound/items/bikehorn.ogg', 50, 1, -1)
sleep(25)
if(!user)
@@ -43,13 +43,13 @@
desc = "A peel from a banana."
icon_state = "banana_peel"
item_state = "banana_peel"
w_class = 1
w_class = WEIGHT_CLASS_TINY
throwforce = 0
throw_speed = 3
throw_range = 7
/obj/item/weapon/grown/bananapeel/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] is deliberately slipping on the [src.name]! It looks like \he's trying to commit suicide.</span>")
user.visible_message("<span class='suicide'>[user] is deliberately slipping on [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
playsound(loc, 'sound/misc/slip.ogg', 50, 1, -1)
return (BRUTELOSS)
@@ -91,7 +91,7 @@
plantname = "Bluespace Banana Tree"
product = /obj/item/weapon/reagent_containers/food/snacks/grown/banana/bluespace
mutatelist = list()
genes = list(/datum/plant_gene/trait/slip, /datum/plant_gene/trait/teleport)
genes = list(/datum/plant_gene/trait/slip, /datum/plant_gene/trait/teleport, /datum/plant_gene/trait/repeated_harvest)
reagents_add = list("singulo" = 0.2, "banana" = 0.1, "vitamin" = 0.04, "nutriment" = 0.02)
rarity = 30
+1
View File
@@ -13,6 +13,7 @@
growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi'
icon_grow = "soybean-grow"
icon_dead = "soybean-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/soya/koi)
reagents_add = list("vitamin" = 0.04, "nutriment" = 0.05)
+4 -1
View File
@@ -13,6 +13,7 @@
growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
icon_grow = "berry-grow" // Uses one growth icons set for all the subtypes
icon_dead = "berry-dead" // Same for the dead icon
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/berry/glow, /obj/item/seeds/berry/poison)
reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1)
@@ -76,7 +77,7 @@
lifespan = 30
endurance = 25
mutatelist = list()
genes = list(/datum/plant_gene/trait/glow/berry)
genes = list(/datum/plant_gene/trait/glow/berry , /datum/plant_gene/trait/noreact, /datum/plant_gene/trait/repeated_harvest)
reagents_add = list("uranium" = 0.25, "iodine" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1)
rarity = 20
@@ -104,6 +105,7 @@
growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
icon_grow = "cherry-grow"
icon_dead = "cherry-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/cherry/blue)
reagents_add = list("nutriment" = 0.07, "sugar" = 0.07)
@@ -153,6 +155,7 @@
growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
icon_grow = "grape-grow"
icon_dead = "grape-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/grape/green)
reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1, "sugar" = 0.1)
+118
View File
@@ -0,0 +1,118 @@
// Cannabis
/obj/item/seeds/cannabis
name = "pack of cannabis seeds"
desc = "Taxable."
icon_state = "seed-cannabis"
species = "cannabis"
plantname = "Cannabis Plant"
product = /obj/item/weapon/reagent_containers/food/snacks/grown/cannabis
maturation = 8
potency = 20
growthstages = 1
growing_icon = 'goon/icons/obj/hydroponics.dmi'
icon_grow = "cannabis-grow" // Uses one growth icons set for all the subtypes
icon_dead = "cannabis-dead" // Same for the dead icon
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/cannabis/rainbow,
/obj/item/seeds/cannabis/death,
/obj/item/seeds/cannabis/white,
/obj/item/seeds/cannabis/ultimate)
reagents_add = list("space_drugs" = 0.15, "lipolicide" = 0.35) // gives u the munchies
/obj/item/seeds/cannabis/rainbow
name = "pack of rainbow weed seeds"
desc = "These seeds grow into rainbow weed. Groovy."
icon_state = "seed-megacannabis"
species = "megacannabis"
plantname = "Rainbow Weed"
product = /obj/item/weapon/reagent_containers/food/snacks/grown/cannabis/rainbow
mutatelist = list()
reagents_add = list("mindbreaker" = 0.15, "lipolicide" = 0.35)
rarity = 40
/obj/item/seeds/cannabis/death
name = "pack of deathweed seeds"
desc = "These seeds grow into deathweed. Not groovy."
icon_state = "seed-blackcannabis"
species = "blackcannabis"
plantname = "Deathweed"
product = /obj/item/weapon/reagent_containers/food/snacks/grown/cannabis/death
mutatelist = list()
reagents_add = list("cyanide" = 0.35, "space_drugs" = 0.15, "lipolicide" = 0.15)
rarity = 40
/obj/item/seeds/cannabis/white
name = "pack of lifeweed seeds"
desc = "I will give unto him that is munchies of the fountain of the cravings of life, freely."
icon_state = "seed-whitecannabis"
species = "whitecannabis"
plantname = "Lifeweed"
product = /obj/item/weapon/reagent_containers/food/snacks/grown/cannabis/white
mutatelist = list()
reagents_add = list("omnizine" = 0.35, "space_drugs" = 0.15, "lipolicide" = 0.15)
rarity = 40
/obj/item/seeds/cannabis/ultimate
name = "pack of omega weed seeds"
desc = "These seeds grow into omega weed."
icon_state = "seed-ocannabis"
species = "ocannabis"
plantname = "Omega Weed"
product = /obj/item/weapon/reagent_containers/food/snacks/grown/cannabis/ultimate
mutatelist = list()
reagents_add = list("space_drugs" = 0.3,
"mindbreaker" = 0.3,
"mercury" = 0.15,
"lithium" = 0.15,
"atropine" = 0.15,
"haloperidol" = 0.15,
"methamphetamine" = 0.15,
"capsaicin" = 0.15,
"barbers_aid" = 0.15,
"bath_salts" = 0.15,
"itching_powder" = 0.15,
"crank" = 0.15,
"krokodil" = 0.15,
"histamine" = 0.15,
"lipolicide" = 0.15)
rarity = 69
// ---------------------------------------------------------------
/obj/item/weapon/reagent_containers/food/snacks/grown/cannabis
seed = /obj/item/seeds/cannabis
icon = 'goon/icons/obj/hydroponics.dmi'
name = "cannabis leaf"
desc = "Recently legalized in most galaxies."
icon_state = "cannabis"
filling_color = "#00FF00"
bitesize_mod = 2
/obj/item/weapon/reagent_containers/food/snacks/grown/cannabis/rainbow
seed = /obj/item/seeds/cannabis/rainbow
name = "rainbow cannabis leaf"
desc = "Is it supposed to be glowing like that...?"
icon_state = "megacannabis"
/obj/item/weapon/reagent_containers/food/snacks/grown/cannabis/death
seed = /obj/item/seeds/cannabis/death
name = "death cannabis leaf"
desc = "Looks a bit dark. Oh well."
icon_state = "blackcannabis"
/obj/item/weapon/reagent_containers/food/snacks/grown/cannabis/white
seed = /obj/item/seeds/cannabis/white
name = "white cannabis leaf"
desc = "It feels smooth and nice to the touch."
icon_state = "whitecannabis"
/obj/item/weapon/reagent_containers/food/snacks/grown/cannabis/ultimate
seed = /obj/item/seeds/cannabis/ultimate
name = "omega cannibas leaf"
desc = "You feel dizzy looking at it. What the fuck?"
icon_state = "ocannabis"
volume = 420
@@ -9,7 +9,6 @@
production = 1
yield = 4
potency = 15
oneharvest = 1
icon_dead = "wheat-dead"
mutatelist = list(/obj/item/seeds/wheat/oat, /obj/item/seeds/wheat/meat)
reagents_add = list("nutriment" = 0.04)
+3 -2
View File
@@ -14,6 +14,7 @@
growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi'
icon_grow = "chili-grow" // Uses one growth icons set for all the subtypes
icon_dead = "chili-dead" // Same for the dead icon
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/chili/ice, /obj/item/seeds/chili/ghost)
reagents_add = list("capsaicin" = 0.25, "vitamin" = 0.04, "nutriment" = 0.04)
@@ -55,7 +56,7 @@
desc = "These seeds grow into a chili said to be the hottest in the galaxy."
icon_state = "seed-chilighost"
species = "chilighost"
plantname = "chilighost"
plantname = "Ghost Chili Plants"
product = /obj/item/weapon/reagent_containers/food/snacks/grown/ghost_chili
endurance = 10
maturation = 10
@@ -83,7 +84,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/ghost_chili/process()
if(held_mob && src.loc == held_mob)
if( (held_mob.l_hand == src) || (held_mob.r_hand == src))
if(held_mob.is_holding(src))
if(hasvar(held_mob,"gloves") && held_mob:gloves)
return
held_mob.bodytemperature += 15 * TEMPERATURE_DAMAGE_COEFFICIENT
+65 -33
View File
@@ -19,6 +19,7 @@
yield = 4
potency = 15
growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/orange)
reagents_add = list("vitamin" = 0.04, "nutriment" = 0.05)
@@ -44,6 +45,7 @@
growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
icon_grow = "lime-grow"
icon_dead = "lime-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/lime)
reagents_add = list("vitamin" = 0.04, "nutriment" = 0.05)
@@ -68,56 +70,86 @@
growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
icon_grow = "lime-grow"
icon_dead = "lime-dead"
mutatelist = list(/obj/item/seeds/cash)
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/firelemon)
reagents_add = list("vitamin" = 0.04, "nutriment" = 0.05)
/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lemon
seed = /obj/item/seeds/lemon
name = "lemon"
desc = "When life gives you lemons, be grateful they aren't limes."
desc = "When life gives you lemons, make lemonade."
icon_state = "lemon"
filling_color = "#FFD700"
// Money Lemon
/obj/item/seeds/cash
name = "pack of money seeds"
desc = "When life gives you lemons, mutate them into cash."
icon_state = "seed-cash"
species = "cashtree"
plantname = "Money Tree"
product = /obj/item/weapon/reagent_containers/food/snacks/grown/shell/moneyfruit
// Combustible lemon
/obj/item/seeds/firelemon //combustible lemon is too long so firelemon
name = "pack of combustible lemon seeds"
desc = "When life gives you lemons, don't make lemonade. Make life take the lemons back! Get mad! I don't want your damn lemons!"
icon_state = "seed-firelemon"
species = "firelemon"
plantname = "Combustible Lemon Tree"
product = /obj/item/weapon/reagent_containers/food/snacks/grown/firelemon
growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
icon_grow = "lime-grow"
icon_dead = "lime-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
lifespan = 55
endurance = 45
yield = 4
reagents_add = list("nutriment" = 0.05)
rarity = 50 // Nanotrasen approves...
/obj/item/weapon/reagent_containers/food/snacks/grown/shell/moneyfruit
seed = /obj/item/seeds/cash
name = "Money Fruit"
desc = "Looks like a lemon with something bulging from the inside."
icon_state = "moneyfruit"
/obj/item/weapon/reagent_containers/food/snacks/grown/firelemon
seed = /obj/item/seeds/firelemon
name = "Combustible Lemon"
desc = "Made for burning houses down."
icon_state = "firelemon"
bitesize_mod = 2
/obj/item/weapon/reagent_containers/food/snacks/grown/shell/moneyfruit/add_juice()
/obj/item/weapon/reagent_containers/food/snacks/grown/firelemon/attack_self(mob/living/user)
var/area/A = get_area(user)
user.visible_message("<span class='warning'>[user] primes the [src]!</span>", "<span class='userdanger'>You prime the [src]!</span>")
var/message = "[ADMIN_LOOKUPFLW(user)] primed a combustible lemon for detonation at [A] [ADMIN_COORDJMP(user)]"
bombers += message
message_admins(message)
log_game("[key_name(user)] primed a combustible lemon for detonation at [A] [COORD(user)].")
if(iscarbon(user))
var/mob/living/carbon/C = user
C.throw_mode_on()
icon_state = "firelemon_active"
playsound(loc, 'sound/weapons/armbomb.ogg', 75, 1, -3)
addtimer(src, "prime", rand(10, 60))
/obj/item/weapon/reagent_containers/food/snacks/grown/firelemon/burn()
prime()
..()
switch(seed.potency)
if(0 to 10)
trash = /obj/item/stack/spacecash
if(11 to 20)
trash = /obj/item/stack/spacecash/c10
if(21 to 30)
trash = /obj/item/stack/spacecash/c20
if(31 to 40)
trash = /obj/item/stack/spacecash/c50
if(41 to 50)
trash = /obj/item/stack/spacecash/c100
if(51 to 60)
trash = /obj/item/stack/spacecash/c200
if(61 to 80)
trash = /obj/item/stack/spacecash/c500
/obj/item/weapon/reagent_containers/food/snacks/grown/firelemon/proc/update_mob()
if(ismob(loc))
var/mob/M = loc
M.unEquip(src)
/obj/item/weapon/reagent_containers/food/snacks/grown/firelemon/ex_act(severity)
qdel(src) //Ensuring that it's deleted by its own explosion
/obj/item/weapon/reagent_containers/food/snacks/grown/firelemon/proc/prime()
switch(seed.potency) //Combustible lemons are alot like IEDs, lots of flame, very little bang.
if(0 to 30)
update_mob()
explosion(src.loc,-1,-1,2, flame_range = 1)
qdel(src)
if(31 to 50)
update_mob()
explosion(src.loc,-1,-1,2, flame_range = 2)
qdel(src)
if(51 to 70)
update_mob()
explosion(src.loc,-1,-1,2, flame_range = 3)
qdel(src)
if(71 to 90)
update_mob()
explosion(src.loc,-1,-1,2, flame_range = 4)
qdel(src)
else
trash = /obj/item/stack/spacecash/c1000
update_mob()
explosion(src.loc,-1,-1,2, flame_range = 5)
qdel(src)
@@ -14,6 +14,7 @@
growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
icon_grow = "cocoapod-grow"
icon_dead = "cocoapod-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/cocoapod/vanillapod)
reagents_add = list("cocoa" = 0.25, "nutriment" = 0.1)
@@ -33,6 +34,7 @@
species = "vanillapod"
plantname = "Vanilla Tree"
product = /obj/item/weapon/reagent_containers/food/snacks/grown/vanillapod
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list()
reagents_add = list("vanilla" = 0.25, "nutriment" = 0.1)
+4 -4
View File
@@ -7,7 +7,6 @@
plantname = "Corn Stalks"
product = /obj/item/weapon/reagent_containers/food/snacks/grown/corn
maturation = 8
oneharvest = 1
potency = 20
growthstages = 3
growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi'
@@ -31,19 +30,20 @@
desc = "A reminder of meals gone by."
icon_state = "corncob"
item_state = "corncob"
w_class = 1
w_class = WEIGHT_CLASS_TINY
throwforce = 0
throw_speed = 3
throw_range = 7
/obj/item/weapon/grown/corncob/attackby(obj/item/weapon/grown/W, mob/user, params)
..()
if(W.is_sharp())
user << "<span class='notice'>You use [W] to fashion a pipe out of the corn cob!</span>"
new /obj/item/clothing/mask/cigarette/pipe/cobpipe (user.loc)
user.unEquip(src)
qdel(src)
return
else
return ..()
// Snapcorn
/obj/item/seeds/corn/snapcorn
@@ -62,7 +62,7 @@
desc = "A cob with snap pops"
icon_state = "snapcorn"
item_state = "corncob"
w_class = 1
w_class = WEIGHT_CLASS_TINY
throwforce = 0
throw_speed = 3
throw_range = 7
@@ -11,6 +11,7 @@
growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi'
icon_grow = "eggplant-grow"
icon_dead = "eggplant-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/eggplant/eggy)
reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1)
+6 -8
View File
@@ -10,7 +10,6 @@
maturation = 8
yield = 6
potency = 20
oneharvest = 1
growthstages = 3
growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi'
icon_grow = "poppy-grow"
@@ -76,9 +75,8 @@
production = 1
yield = 2
potency = 30
oneharvest = 1
growthstages = 4
plant_type = PLANT_WEED
genes = list(/datum/plant_gene/trait/plant_type/weed_hardy)
growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi'
reagents_add = list("nutriment" = 0.04)
@@ -103,7 +101,6 @@
endurance = 20
production = 2
yield = 2
oneharvest = 1
growthstages = 3
growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi'
icon_grow = "sunflower-grow"
@@ -120,7 +117,7 @@
force = 0
slot_flags = SLOT_HEAD
throwforce = 0
w_class = 1
w_class = WEIGHT_CLASS_TINY
throw_speed = 1
throw_range = 3
@@ -170,7 +167,7 @@
force = 0
slot_flags = SLOT_HEAD
throwforce = 0
w_class = 1
w_class = WEIGHT_CLASS_TINY
throw_speed = 1
throw_range = 3
attack_verb = list("roasted", "scorched", "burned")
@@ -180,8 +177,9 @@
force = round((5 + seed.potency / 5), 1)
/obj/item/weapon/grown/novaflower/attack(mob/living/carbon/M, mob/user)
if(!..()) return
if(istype(M, /mob/living))
if(!..())
return
if(isliving(M))
M << "<span class='danger'>You are lit on fire from the intense heat of the [name]!</span>"
M.adjust_fire_stacks(seed.potency / 20)
if(M.IgniteMob())
+21 -33
View File
@@ -14,6 +14,7 @@
growthstages = 2
icon_grow = "grass-grow"
icon_dead = "grass-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/grass/carpet)
reagents_add = list("nutriment" = 0.02, "hydrogen" = 0.05)
@@ -24,23 +25,28 @@
icon_state = "grassclump"
filling_color = "#32CD32"
bitesize_mod = 2
var/stacktype = /obj/item/stack/tile/grass
var/tile_coefficient = 0.02 // 1/50
/obj/item/weapon/reagent_containers/food/snacks/grown/grass/attack_self(mob/user)
user << "<span class='notice'>You prepare the astroturf.</span>"
var/grassAmt = 1 + round(seed.potency / 50) // The grass we're holding
var/grassAmt = 1 + round(seed.potency * tile_coefficient) // The grass we're holding
for(var/obj/item/weapon/reagent_containers/food/snacks/grown/grass/G in user.loc) // The grass on the floor
grassAmt += 1 + round(G.seed.potency)
if(G.type != type)
continue
grassAmt += 1 + round(G.seed.potency * tile_coefficient)
qdel(G)
while(grassAmt > 0)
var/obj/item/stack/tile/GT = new /obj/item/stack/tile/grass(user.loc)
if(grassAmt >= GT.max_amount)
GT.amount = GT.max_amount
else
GT.amount = grassAmt
for(var/obj/item/stack/tile/grass/GR in user.loc)
if(GR != GT && GR.amount < GR.max_amount)
GR.attackby(GT, user) //we try to transfer all old unfinished stacks to the new stack we created.
var/obj/item/stack/tile/GT = new stacktype(user.loc)
while(grassAmt > GT.max_amount)
GT.amount = GT.max_amount
grassAmt -= GT.max_amount
GT = new stacktype(user.loc)
GT.amount = grassAmt
for(var/obj/item/stack/tile/T in user.loc)
if((T.type == stacktype) && (T.amount < T.max_amount))
GT.merge(T)
if(GT.amount <= 0)
break
qdel(src)
return
@@ -51,31 +57,13 @@
icon_state = "seed-carpet"
species = "carpet"
plantname = "Carpet"
product = /obj/item/weapon/reagent_containers/food/snacks/grown/carpet
mutatelist = list(/obj/item/seeds/grass/carpet)
product = /obj/item/weapon/reagent_containers/food/snacks/grown/grass/carpet
mutatelist = list()
rarity = 10
/obj/item/weapon/reagent_containers/food/snacks/grown/carpet
/obj/item/weapon/reagent_containers/food/snacks/grown/grass/carpet
seed = /obj/item/seeds/grass/carpet
name = "carpet"
desc = "The textile industry's dark secret."
icon_state = "carpetclump"
/obj/item/weapon/reagent_containers/food/snacks/grown/carpet/attack_self(mob/user)
user << "<span class='notice'>You roll out the red carpet.</span>"
var/carpetAmt = 1 + round(seed.potency / 50) // The carpet we're holding
for(var/obj/item/weapon/reagent_containers/food/snacks/grown/carpet/C in user.loc) // The carpet on the floor
carpetAmt += 1 + round(C.seed.potency / 50)
qdel(C)
while(carpetAmt > 0)
var/obj/item/stack/tile/CT = new /obj/item/stack/tile/carpet(user.loc)
if(carpetAmt >= CT.max_amount)
CT.amount = CT.max_amount
else
CT.amount = carpetAmt
for(var/obj/item/stack/tile/carpet/CA in user.loc)
if(CA != CT && CA.amount < CA.max_amount)
CA.attackby(CT, user) //we try to transfer all old unfinished stacks to the new stack we created.
carpetAmt -= CT.max_amount
qdel(src)
return
stacktype = /obj/item/stack/tile/carpet
+14 -7
View File
@@ -7,11 +7,11 @@
species = "kudzu"
plantname = "Kudzu"
product = /obj/item/weapon/reagent_containers/food/snacks/grown/kudzupod
genes = list(/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/plant_type/weed_hardy)
lifespan = 20
endurance = 10
yield = 4
growthstages = 4
plant_type = PLANT_WEED
rarity = 30
var/list/mutations = list()
reagents_add = list("charcoal" = 0.04, "nutriment" = 0.02)
@@ -22,12 +22,12 @@
return S
/obj/item/seeds/kudzu/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] swallows the pack of kudzu seeds! It looks like \he's trying to commit suicide..</span>")
user.visible_message("<span class='suicide'>[user] swallows the pack of kudzu seeds! It looks like [user.p_theyre()] trying to commit suicide!</span>")
plant(user)
return (BRUTELOSS)
/obj/item/seeds/kudzu/proc/plant(mob/user)
if(istype(user.loc,/turf/open/space))
if(isspaceturf(user.loc))
return
var/turf/T = get_turf(src)
message_admins("Kudzu planted by [key_name_admin(user)](<A HREF='?_src_=holder;adminmoreinfo=\ref[user]'>?</A>) (<A HREF='?_src_=holder;adminplayerobservefollow=\ref[user]'>FLW</A>) at ([T.x],[T.y],[T.z] - <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[T.x];Y=[T.y];Z=[T.z]'>(JMP)</a>)",0,1)
@@ -57,6 +57,7 @@
if(prob(20))
mutations.Remove(pick(temp_mut_list))
temp_mut_list.Cut()
if(S.has_reagent("welding_fuel", 5))
for(var/datum/spacevine_mutation/SM in mutations)
if(SM.quality == POSITIVE)
@@ -64,20 +65,26 @@
if(prob(20))
mutations.Remove(pick(temp_mut_list))
temp_mut_list.Cut()
if(S.has_reagent("phenol", 5))
for(var/datum/spacevine_mutation/SM in mutations)
if(SM.quality == MINOR_NEGATIVE)
temp_mut_list += SM
if(prob(20))
mutations.Remove(pick(temp_mut_list))
temp_mut_list.Cut()
if(S.has_reagent("blood", 15))
production += rand(15, -5)
production = Clamp(production + rand(15, -5),1,10)
if(S.has_reagent("amatoxin", 5))
production += rand(5, -15)
production = Clamp(production + rand(5, -15),1,10)
if(S.has_reagent("plasma", 5))
potency += rand(5, -15)
potency = Clamp(potency + rand(5, -15),0,100)
if(S.has_reagent("holywater", 10))
potency += rand(15, -5)
potency = Clamp(potency + rand(15, -5),0,100)
/obj/item/weapon/reagent_containers/food/snacks/grown/kudzupod
+4 -3
View File
@@ -10,8 +10,9 @@
endurance = 40
growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
icon_dead = "watermelon-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/watermelon/holy)
reagents_add = list("vitamin" = 0.04, "nutriment" = 0.2)
reagents_add = list("water" = 0.2, "vitamin" = 0.04, "nutriment" = 0.2)
/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon
seed = /obj/item/seeds/watermelon
@@ -21,7 +22,7 @@
slice_path = /obj/item/weapon/reagent_containers/food/snacks/watermelonslice
slices_num = 5
dried_type = null
w_class = 3
w_class = WEIGHT_CLASS_NORMAL
filling_color = "#008000"
bitesize_mod = 3
@@ -43,4 +44,4 @@
desc = "The water within this melon has been blessed by some deity that's particularly fond of watermelon."
icon_state = "holymelon"
filling_color = "#FFD700"
dried_type = null
dried_type = null
+14 -8
View File
@@ -11,9 +11,8 @@
production = 1
yield = -1
potency = -1
oneharvest = 1
growthstages = 4
plant_type = PLANT_WEED
genes = list(/datum/plant_gene/trait/plant_type/weed_hardy)
// Cabbage
@@ -31,6 +30,7 @@
yield = 4
growthstages = 1
growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi'
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/replicapod)
reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1)
@@ -51,6 +51,7 @@
species = "sugarcane"
plantname = "Sugarcane"
product = /obj/item/weapon/reagent_containers/food/snacks/grown/sugarcane
genes = list(/datum/plant_gene/trait/repeated_harvest)
lifespan = 60
endurance = 50
maturation = 3
@@ -73,8 +74,9 @@
desc = "These seeds grow into .357 revolvers."
icon_state = "seed-gatfruit"
species = "gatfruit"
plantname = "gatfruit"
plantname = "Gatfruit Tree"
product = /obj/item/weapon/reagent_containers/food/snacks/grown/shell/gatfruit
genes = list(/datum/plant_gene/trait/repeated_harvest)
lifespan = 20
endurance = 20
maturation = 40
@@ -92,7 +94,7 @@
desc = "It smells like burning."
icon_state = "gatfruit"
origin_tech = "combat=6"
trash = /obj/item/weapon/gun/projectile/revolver
trash = /obj/item/weapon/gun/ballistic/revolver
bitesize_mod = 2
//Cherry Bombs
@@ -115,6 +117,8 @@
seed = /obj/item/seeds/cherry/bomb
bitesize_mod = 2
volume = 125 //Gives enough room for the black powder at max potency
obj_integrity = 40
max_integrity = 40
/obj/item/weapon/reagent_containers/food/snacks/grown/cherry_bomb/attack_self(mob/living/user)
var/area/A = get_area(user)
@@ -123,12 +127,14 @@
log_game("[user] ([user.key ? user.key : "no key"]) primed a cherry bomb for detonation at [A] ([user.x],[user.y],[user.z]).")
prime()
/obj/item/weapon/reagent_containers/food/snacks/grown/cherry_bomb/burn()
prime()
..()
/obj/item/weapon/reagent_containers/food/snacks/grown/cherry_bomb/deconstruct(disassembled = TRUE)
if(!disassembled)
prime()
if(!qdeleted(src))
qdel(src)
/obj/item/weapon/reagent_containers/food/snacks/grown/cherry_bomb/ex_act(severity)
qdel(src) //Ensuring that it's deleted by its own explosion
qdel(src) //Ensuring that it's deleted by its own explosion. Also prevents mass chain reaction with piles of cherry bombs
/obj/item/weapon/reagent_containers/food/snacks/grown/cherry_bomb/proc/prime()
icon_state = "cherry_bomb_lit"
+16 -24
View File
@@ -17,9 +17,8 @@
production = 5
yield = 4
potency = 15
oneharvest = 1
growthstages = 4
plant_type = PLANT_MUSHROOM
genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism)
growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
reagents_add = list("morphine" = 0.35, "charcoal" = 0.35, "nutriment" = 0)
@@ -44,12 +43,11 @@
maturation = 10
production = 5
yield = 4
oneharvest = 1
growthstages = 3
plant_type = PLANT_MUSHROOM
genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism)
growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
mutatelist = list(/obj/item/seeds/angel)
reagents_add = list("mushroomhallucinogen" = 0.04, "amatoxin" = 0.35, "nutriment" = 0)
reagents_add = list("mushroomhallucinogen" = 0.04, "amatoxin" = 0.35, "nutriment" = 0, "growthserum" = 0.1)
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/amanita
seed = /obj/item/seeds/amanita
@@ -73,9 +71,8 @@
production = 5
yield = 2
potency = 35
oneharvest = 1
growthstages = 3
plant_type = PLANT_MUSHROOM
genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism)
growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
reagents_add = list("mushroomhallucinogen" = 0.04, "amatoxin" = 0.1, "nutriment" = 0, "amanitin" = 0.2)
rarity = 30
@@ -101,9 +98,8 @@
production = 1
yield = 5
potency = 15
oneharvest = 1
growthstages = 3
plant_type = PLANT_MUSHROOM
genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism)
growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
reagents_add = list("mushroomhallucinogen" = 0.25, "nutriment" = 0.02)
@@ -127,9 +123,8 @@
production = 1
yield = 4
potency = 15
oneharvest = 1
growthstages = 3
plant_type = PLANT_MUSHROOM
genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism)
growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
mutatelist = list(/obj/item/seeds/plump/walkingmushroom)
reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1)
@@ -168,7 +163,7 @@
origin_tech = "biotech=4;programming=5"
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/walkingmushroom/attack_self(mob/user)
if(istype(user.loc,/turf/open/space))
if(isspaceturf(user.loc))
return
var/mob/living/simple_animal/hostile/mushroom/M = new /mob/living/simple_animal/hostile/mushroom(user.loc)
M.maxHealth += round(seed.endurance / 4)
@@ -194,9 +189,8 @@
production = 1
yield = 5
potency = 15
oneharvest = 1
growthstages = 3
plant_type = PLANT_MUSHROOM
genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism)
growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
reagents_add = list("nutriment" = 0.1)
@@ -222,11 +216,9 @@
production = 1
yield = 3 //-> spread
potency = 30 //-> brightness
oneharvest = 1
growthstages = 4
plant_type = PLANT_MUSHROOM
rarity = 20
genes = list(/datum/plant_gene/trait/glow)
genes = list(/datum/plant_gene/trait/glow, /datum/plant_gene/trait/plant_type/fungal_metabolism)
growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
mutatelist = list(/obj/item/seeds/glowshroom/glowcap)
reagents_add = list("radium" = 0.1, "phosphorus" = 0.1, "nutriment" = 0.04)
@@ -237,15 +229,16 @@
desc = "<I>Mycena Bregprox</I>: This species of mushroom glows in the dark."
icon_state = "glowshroom"
filling_color = "#00FA9A"
var/effect_path = /obj/effect/glowshroom
var/effect_path = /obj/structure/glowshroom
origin_tech = "biotech=4;plasmatech=6"
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/glowshroom/attack_self(mob/user)
if(istype(user.loc,/turf/open/space))
if(isspaceturf(user.loc))
return
var/obj/effect/glowshroom/planted = new effect_path(user.loc)
var/obj/structure/glowshroom/planted = new effect_path(user.loc)
planted.delay = planted.delay - seed.production * 100 //So the delay goes DOWN with better stats instead of up. :I
planted.endurance = seed.endurance
planted.obj_integrity = seed.endurance
planted.max_integrity = seed.endurance
planted.yield = seed.yield
planted.potency = seed.potency
user << "<span class='notice'>You plant [src].</span>"
@@ -261,9 +254,8 @@
icon_grow = "glowshroom-grow"
icon_dead = "glowshroom-dead"
plantname = "Glowcaps"
plant_type = PLANT_MUSHROOM
product = /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/glowshroom/glowcap
genes = list(/datum/plant_gene/trait/glow, /datum/plant_gene/trait/cell_charge)
genes = list(/datum/plant_gene/trait/glow, /datum/plant_gene/trait/cell_charge, /datum/plant_gene/trait/plant_type/fungal_metabolism)
mutatelist = list()
reagents_add = list("teslium" = 0.1, "nutriment" = 0.04)
rarity = 30
@@ -274,5 +266,5 @@
desc = "<I>Mycena Ruthenia</I>: This species of mushroom glows in the dark, but aren't bioluminescent. They're warm to the touch..."
icon_state = "glowcap"
filling_color = "#00FA9A"
effect_path = /obj/effect/glowshroom/glowcap
effect_path = /obj/structure/glowshroom/glowcap
origin_tech = "biotech=4;powerstorage=6;plasmatech=4"
+14 -16
View File
@@ -9,7 +9,7 @@
endurance = 40 // tuff like a toiger
yield = 4
growthstages = 5
plant_type = PLANT_WEED
genes = list(/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/plant_type/weed_hardy)
mutatelist = list(/obj/item/seeds/nettle/death)
reagents_add = list("sacid" = 0.5)
@@ -23,6 +23,7 @@
endurance = 25
maturation = 8
yield = 2
genes = list(/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/plant_type/weed_hardy, /datum/plant_gene/trait/stinging)
mutatelist = list()
reagents_add = list("facid" = 0.5, "sacid" = 0.5)
rarity = 20
@@ -36,14 +37,14 @@
force = 15
hitsound = 'sound/weapons/bladeslice.ogg'
throwforce = 5
w_class = 1
w_class = WEIGHT_CLASS_TINY
throw_speed = 1
throw_range = 3
origin_tech = "combat=3"
attack_verb = list("stung")
/obj/item/weapon/grown/nettle/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] is eating some of the [src.name]! It looks like \he's trying to commit suicide.</span>")
user.visible_message("<span class='suicide'>[user] is eating some of [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
return (BRUTELOSS|TOXLOSS)
/obj/item/weapon/grown/nettle/pickup(mob/living/user)
@@ -51,16 +52,13 @@
if(!iscarbon(user))
return 0
var/mob/living/carbon/C = user
if(ishuman(user))
var/mob/living/carbon/human/H = C
if(H.gloves)
return 0
var/organ = ((H.hand ? "l_":"r_") + "arm")
var/obj/item/bodypart/affecting = H.get_bodypart(organ)
if(affecting && affecting.take_damage(0, force))
H.update_damage_overlays(0)
else
C.take_organ_damage(0,force)
if(C.gloves)
return 0
var/hit_zone = (C.held_index_to_dir(C.active_hand_index) == "l" ? "l_":"r_") + "arm"
var/obj/item/bodypart/affecting = C.get_bodypart(hit_zone)
if(affecting)
if(affecting.receive_damage(0, force))
C.update_damage_overlays()
C << "<span class='userdanger'>The nettle burns your bare hand!</span>"
return 1
@@ -94,15 +92,15 @@
force = round((5 + seed.potency / 2.5), 1)
/obj/item/weapon/grown/nettle/death/pickup(mob/living/carbon/user)
..()
if(..())
if(prob(50))
user.Paralyse(5)
user << "<span class='userdanger'>You are stunned by the Deathnettle when you try picking it up!</span>"
/obj/item/weapon/grown/nettle/death/attack(mob/living/carbon/M, mob/user)
if(!..()) return
if(istype(M, /mob/living))
if(!..())
return
if(isliving(M))
M << "<span class='danger'>You are stunned by the powerful acid of the Deathnettle!</span>"
add_logs(user, M, "attacked", src)
+19 -23
View File
@@ -10,11 +10,11 @@
maturation = 10
production = 1
yield = 4
oneharvest = 1
growthstages = 4
growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi'
icon_grow = "potato-grow"
icon_dead = "potato-dead"
genes = list(/datum/plant_gene/trait/battery)
mutatelist = list(/obj/item/seeds/potato/sweet)
reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1)
@@ -26,30 +26,26 @@
filling_color = "#E9967A"
bitesize = 100
/obj/item/weapon/reagent_containers/food/snacks/grown/potato/wedges
name = "potato wedges"
desc = "a potato cut up into wedges"
icon_state = "potato_wedge"
filling_color = "#E9967A"
bitesize = 100
/obj/item/weapon/reagent_containers/food/snacks/grown/potato/attackby(obj/item/weapon/W, mob/user, params)
..()
if(istype(W, /obj/item/stack/cable_coil))
var/obj/item/stack/cable_coil/C = W
if (C.use(5))
user << "<span class='notice'>You add some cable to the potato and slide it inside the battery encasing.</span>"
var/obj/item/weapon/stock_parts/cell/potato/pocell = new /obj/item/weapon/stock_parts/cell/potato(user.loc)
pocell.maxcharge = seed.potency * 20
if(W.is_sharp())
user << "<span class='notice'>You cut the potato into wedges with [W].</span>"
var/obj/item/weapon/reagent_containers/food/snacks/grown/potato/wedges/Wedges = new /obj/item/weapon/reagent_containers/food/snacks/grown/potato/wedges
if(!remove_item_from_storage(user))
user.unEquip(src)
user.put_in_hands(Wedges)
qdel(src)
else
return ..()
// The secret of potato supercells!
var/datum/plant_gene/trait/cell_charge/G = seed.get_gene(/datum/plant_gene/trait/cell_charge)
if(G) // 10x charge for deafult cell charge gene - 20 000 with 100 potency.
pocell.maxcharge *= G.rate*1000
pocell.charge = pocell.maxcharge
pocell.desc = "A rechargable starch based power cell. This one has a power rating of [pocell.maxcharge], and you should not swallow it."
if(reagents.has_reagent("plasma", 2))
pocell.rigged = 1
qdel(src)
return
else
user << "<span class='warning'>You need five lengths of cable to make a potato battery!</span>"
return
// Sweet Potato
/obj/item/seeds/potato/sweet
+5 -3
View File
@@ -12,6 +12,7 @@
growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
icon_grow = "pumpkin-grow"
icon_dead = "pumpkin-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/pumpkin/blumpkin)
reagents_add = list("vitamin" = 0.04, "nutriment" = 0.2)
@@ -24,12 +25,13 @@
bitesize_mod = 2
/obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
..()
if(W.is_sharp())
user.show_message("<span class='notice'>You carve a face into [src]!</span>", 1)
new /obj/item/clothing/head/hardhat/pumpkinhead(user.loc)
qdel(src)
return
else
return ..()
// Blumpkin
/obj/item/seeds/pumpkin/blumpkin
@@ -40,7 +42,7 @@
plantname = "Blumpkin Vines"
product = /obj/item/weapon/reagent_containers/food/snacks/grown/blumpkin
mutatelist = list()
reagents_add = list("ammonia" = 0.2, "chlorine" = 0.2, "nutriment" = 0.2)
reagents_add = list("ammonia" = 0.2, "chlorine" = 0.1, "nutriment" = 0.2)
rarity = 20
/obj/item/weapon/reagent_containers/food/snacks/grown/blumpkin
@@ -49,4 +51,4 @@
desc = "The pumpkin's toxic sibling."
icon_state = "blumpkin"
filling_color = "#87CEFA"
bitesize_mod = 2
bitesize_mod = 2
+29
View File
@@ -0,0 +1,29 @@
//Random seeds; stats, traits, and plant type are randomized for each seed.
/obj/item/seeds/random
name = "pack of strange seeds"
desc = "Mysterious seeds as strange as their name implies. Spooky"
icon_state = "seed-x"
species = "?????"
plantname = "strange plant"
product = /obj/item/weapon/reagent_containers/food/snacks/grown/random
icon_grow = "xpod-grow"
icon_dead = "xpod-dead"
icon_harvest = "xpod-harvest"
growthstages = 4
/obj/item/seeds/random/New()
randomize_stats()
..()
if(prob(60))
add_random_reagents()
if(prob(50))
add_random_traits()
add_random_plant_type(35)
/obj/item/weapon/reagent_containers/food/snacks/grown/random
seed = /obj/item/seeds/random
name = "strange plant"
desc = "What could this even be?"
icon_state = "crunchy"
bitesize_mod = 2
+8 -7
View File
@@ -12,7 +12,6 @@
maturation = 10
production = 1
yield = 1 //seeds if there isn't a dna inside
oneharvest = 1
potency = 30
var/ckey = null
var/realName = null
@@ -42,7 +41,8 @@
user << "<span class='warning'>The seeds reject the sample!</span>"
else
user << "<span class='warning'>The seeds already contain a genetic sample!</span>"
..()
else
return ..()
/obj/item/seeds/replicapod/get_analyzer_text()
var/text = ..()
@@ -58,7 +58,7 @@
if(config.revival_pod_plants)
if(ckey)
for(var/mob/M in player_list)
if(istype(M, /mob/dead/observer))
if(isobserver(M))
var/mob/dead/observer/O = M
if(O.ckey == ckey && O.can_reenter_corpse)
make_podman = 1
@@ -66,19 +66,19 @@
else
if(M.ckey == ckey && M.stat == DEAD && !M.suiciding)
make_podman = 1
if(istype(M, /mob/living))
if(isliving(M))
var/mob/living/L = M
make_podman = !L.hellbound
break
else //If the player has ghosted from his corpse before blood was drawn, his ckey is no longer attached to the mob, so we need to match up the cloned player through the mind key
for(var/mob/M in player_list)
if(mind && M.mind && ckey(M.mind.key) == ckey(mind.key) && M.ckey && M.client && M.stat == 2 && !M.suiciding)
if(istype(M, /mob/dead/observer))
if(isobserver(M))
var/mob/dead/observer/O = M
if(!O.can_reenter_corpse)
break
make_podman = 1
if(istype(M, /mob/living))
if(isliving(M))
var/mob/living/L = M
make_podman = !L.hellbound
ckey_holder = M.ckey
@@ -106,8 +106,9 @@
var/seed_count = 1
if(prob(getYield() * 20))
seed_count++
var/output_loc = parent.Adjacent(user) ? user.loc : parent.loc //needed for TK
for(var/i=0,i<seed_count,i++)
var/obj/item/seeds/replicapod/harvestseeds = src.Copy()
harvestseeds.forceMove(parent.loc)
harvestseeds.forceMove(output_loc)
parent.update_tray()
+3 -5
View File
@@ -9,7 +9,6 @@
maturation = 10
production = 1
yield = 5
oneharvest = 1
growthstages = 3
growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi'
mutatelist = list(/obj/item/seeds/carrot/parsnip)
@@ -24,7 +23,7 @@
bitesize_mod = 2
/obj/item/weapon/reagent_containers/food/snacks/grown/carrot/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/kitchen/knife) || istype(I, /obj/item/weapon/hatchet))
if(I.is_sharp())
user << "<span class='notice'>You sharpen the carrot into a shiv with [I].</span>"
var/obj/item/weapon/kitchen/knife/carrotshiv/Shiv = new /obj/item/weapon/kitchen/knife/carrotshiv
if(!remove_item_from_storage(user))
@@ -65,7 +64,6 @@
lifespan = 60
endurance = 50
yield = 6
oneharvest = 1
growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi'
icon_dead = "whitebeet-dead"
mutatelist = list(/obj/item/seeds/redbeet)
@@ -90,9 +88,9 @@
lifespan = 60
endurance = 50
yield = 6
oneharvest = 1
growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi'
icon_dead = "whitebeet-dead"
genes = list(/datum/plant_gene/trait/maxchem)
reagents_add = list("vitamin" = 0.05, "nutriment" = 0.05)
/obj/item/weapon/reagent_containers/food/snacks/grown/redbeet
@@ -100,4 +98,4 @@
name = "red beet"
desc = "You can't beat red beet."
icon_state = "redbeet"
bitesize_mod = 2
bitesize_mod = 2
@@ -12,6 +12,7 @@
yield = 5
growthstages = 5
icon_dead = "tea-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/tea/astra)
reagents_add = list("vitamin" = 0.04, "teapowder" = 0.1)
@@ -55,6 +56,7 @@
yield = 5
growthstages = 5
icon_dead = "coffee-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/coffee/robusta)
reagents_add = list("vitamin" = 0.04, "coffeepowder" = 0.1)
@@ -9,7 +9,6 @@
lifespan = 20
maturation = 5
production = 5
oneharvest = 1
yield = 10
growthstages = 3
icon_dead = "tobacco-dead"
+5 -5
View File
@@ -10,7 +10,7 @@
growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
icon_grow = "tomato-grow"
icon_dead = "tomato-dead"
genes = list(/datum/plant_gene/trait/squash)
genes = list(/datum/plant_gene/trait/squash, /datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/tomato/blue, /obj/item/seeds/tomato/blood, /obj/item/seeds/tomato/killer)
reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1)
@@ -56,7 +56,7 @@
yield = 2
icon_grow = "bluetomato-grow"
mutatelist = list(/obj/item/seeds/tomato/blue/bluespace)
genes = list(/datum/plant_gene/trait/slip)
genes = list(/datum/plant_gene/trait/slip, /datum/plant_gene/trait/repeated_harvest)
reagents_add = list("lube" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1)
rarity = 20
@@ -79,7 +79,7 @@
product = /obj/item/weapon/reagent_containers/food/snacks/grown/tomato/blue/bluespace
yield = 2
mutatelist = list()
genes = list(/datum/plant_gene/trait/squash, /datum/plant_gene/trait/slip, /datum/plant_gene/trait/teleport)
genes = list(/datum/plant_gene/trait/squash, /datum/plant_gene/trait/slip, /datum/plant_gene/trait/teleport, /datum/plant_gene/trait/repeated_harvest)
reagents_add = list("lube" = 0.2, "singulo" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1)
rarity = 50
@@ -100,7 +100,7 @@
plantname = "Killer-Tomato Plants"
product = /obj/item/weapon/reagent_containers/food/snacks/grown/tomato/killer
yield = 2
oneharvest = 1
genes = list(/datum/plant_gene/trait/squash)
growthstages = 2
icon_grow = "killertomato-grow"
icon_harvest = "killertomato-harvest"
@@ -124,7 +124,7 @@
..()
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato/killer/attack_self(mob/user)
if(awakening || istype(user.loc,/turf/open/space))
if(awakening || isspaceturf(user.loc))
return
user << "<span class='notice'>You begin to awaken the Killer Tomato...</span>"
awakening = 1
+105 -5
View File
@@ -11,11 +11,10 @@
production = 1
yield = 5
potency = 50
oneharvest = 1
growthstages = 3
growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
icon_dead = "towercap-dead"
plant_type = PLANT_MUSHROOM
genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism)
mutatelist = list(/obj/item/seeds/tower/steel)
/obj/item/seeds/tower/steel
@@ -38,7 +37,7 @@
icon_state = "logs"
force = 5
throwforce = 5
w_class = 3
w_class = WEIGHT_CLASS_NORMAL
throw_speed = 2
throw_range = 3
origin_tech = "materials=1"
@@ -53,7 +52,6 @@
/obj/item/weapon/grown/log/attackby(obj/item/weapon/W, mob/user, params)
..()
if(W.sharpness)
user.show_message("<span class='notice'>You make [plank_name] out of \the [src]!</span>", 1)
var/obj/item/stack/plank = new plank_type(user.loc, 1 + round(seed.potency / 25))
@@ -77,6 +75,8 @@
return
else
usr << "<span class ='warning'>You must dry this first!</span>"
else
return ..()
/obj/item/weapon/grown/log/tree
seed = null
@@ -90,4 +90,104 @@
icon_state = "steellogs"
accepted = list()
plank_type = /obj/item/stack/rods
plank_name = "rods"
plank_name = "rods"
/////////BONFIRES//////////
/obj/structure/bonfire
name = "bonfire"
desc = "For grilling, broiling, charring, smoking, heating, roasting, toasting, simmering, searing, melting, and occasionally burning things."
icon = 'icons/obj/hydroponics/equipment.dmi'
icon_state = "bonfire"
density = FALSE
anchored = TRUE
buckle_lying = 0
var/burning = 0
var/fire_stack_strength = 5
/obj/structure/bonfire/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/stack/rods) && !can_buckle)
var/obj/item/stack/rods/R = W
R.use(1)
can_buckle = 1
buckle_requires_restraints = 1
user << "<span class='italics'>You add a rod to [src]."
var/image/U = image(icon='icons/obj/hydroponics/equipment.dmi',icon_state="bonfire_rod",pixel_y=16)
underlays += U
if(W.is_hot())
StartBurning()
/obj/structure/bonfire/attack_hand(mob/user)
if(burning)
user << "<span class='warning'>You need to extinguish [src] before removing the logs!"
return
if(!has_buckled_mobs() && do_after(user, 50, target = src))
for(var/I in 1 to 5)
var/obj/item/weapon/grown/log/L = new /obj/item/weapon/grown/log(src.loc)
L.pixel_x += rand(1,4)
L.pixel_y += rand(1,4)
qdel(src)
return
..()
/obj/structure/bonfire/proc/CheckOxygen()
if(isopenturf(loc))
var/turf/open/O = loc
if(O.air)
var/G = O.air.gases
if(G["o2"][MOLES] > 16)
return 1
return 0
/obj/structure/bonfire/proc/StartBurning()
if(!burning && CheckOxygen())
icon_state = "bonfire_on_fire"
burning = 1
SetLuminosity(6)
Burn()
START_PROCESSING(SSobj, src)
/obj/structure/bonfire/fire_act(exposed_temperature, exposed_volume)
StartBurning()
/obj/structure/bonfire/Crossed(atom/movable/AM)
if(burning)
Burn()
/obj/structure/bonfire/proc/Burn()
var/turf/current_location = get_turf(src)
current_location.hotspot_expose(1000,500,1)
for(var/A in current_location)
if(A == src)
continue
if(isobj(A))
var/obj/O = A
O.fire_act(1000, 500)
else if(isliving(A))
var/mob/living/L = A
L.adjust_fire_stacks(fire_stack_strength)
L.IgniteMob()
/obj/structure/bonfire/process()
if(!CheckOxygen())
extinguish()
return
Burn()
/obj/structure/bonfire/extinguish()
if(burning)
icon_state = "bonfire"
burning = 0
SetLuminosity(0)
STOP_PROCESSING(SSobj, src)
/obj/structure/bonfire/buckle_mob(mob/living/M, force = 0)
if(..())
M.pixel_y += 13
/obj/structure/bonfire/unbuckle_mob(mob/living/buckled_mob, force=0)
if(..())
buckled_mob.pixel_y -= 13