Bleeding edgy refresh (#303)
* not code stuff * other things * global vars, defines, helpers * onclick hud stuff, orphans, world.dm * controllers and datums * game folder * everything not client/mobs in modules * client folder * stage 1 mob stuff * simple animal things * silicons * carbon things * ayylmaos and monkeys * hyoomahn * icons n shit * sprite fixes * compile fixes * some fixes I cherrypicked. * qdel fixes * forgot brain refractors
This commit is contained in:
@@ -72,5 +72,5 @@
|
||||
icon_state = "ambrosia_gaia"
|
||||
filling_color = rgb(255, 175, 0)
|
||||
origin_tech = "biotech=6;materials=5"
|
||||
luminosity = 3
|
||||
light_range = 3
|
||||
seed = /obj/item/seeds/ambrosia/gaia
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
return
|
||||
held_mob.bodytemperature += 15 * TEMPERATURE_DAMAGE_COEFFICIENT
|
||||
if(prob(10))
|
||||
held_mob << "<span class='warning'>Your hand holding [src] burns!</span>"
|
||||
to_chat(held_mob, "<span class='warning'>Your hand holding [src] burns!</span>")
|
||||
else
|
||||
held_mob = null
|
||||
..()
|
||||
|
||||
@@ -37,7 +37,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>"
|
||||
to_chat(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)
|
||||
qdel(src)
|
||||
else
|
||||
@@ -72,7 +72,7 @@
|
||||
|
||||
/obj/item/weapon/grown/snapcorn/attack_self(mob/user)
|
||||
..()
|
||||
user << "<span class='notice'>You pick a snap pop from the cob.</span>"
|
||||
to_chat(user, "<span class='notice'>You pick a snap pop from the cob.</span>")
|
||||
var/obj/item/toy/snappop/S = new /obj/item/toy/snappop(user.loc)
|
||||
if(ishuman(user))
|
||||
user.put_in_hands(S)
|
||||
|
||||
@@ -122,8 +122,8 @@
|
||||
throw_range = 3
|
||||
|
||||
/obj/item/weapon/grown/sunflower/attack(mob/M, mob/user)
|
||||
M << "<font color='green'><b> [user] smacks you with a sunflower!</font><font color='yellow'><b>FLOWER POWER<b></font>"
|
||||
user << "<font color='green'>Your sunflower's </font><font color='yellow'><b>FLOWER POWER</b></font><font color='green'>strikes [M]</font>"
|
||||
to_chat(M, "<font color='green'><b> [user] smacks you with a sunflower!</font><font color='yellow'><b>FLOWER POWER<b></font>")
|
||||
to_chat(user, "<font color='green'>Your sunflower's </font><font color='yellow'><b>FLOWER POWER</b></font><font color='green'>strikes [M]</font>")
|
||||
|
||||
// Moonflower
|
||||
/obj/item/seeds/sunflower/moonflower
|
||||
@@ -180,7 +180,7 @@
|
||||
if(!..())
|
||||
return
|
||||
if(isliving(M))
|
||||
M << "<span class='danger'>You are lit on fire from the intense heat of the [name]!</span>"
|
||||
to_chat(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())
|
||||
message_admins("[key_name_admin(user)] set [key_name_admin(M)] on fire")
|
||||
@@ -191,11 +191,11 @@
|
||||
if(force > 0)
|
||||
force -= rand(1, (force / 3) + 1)
|
||||
else
|
||||
usr << "<span class='warning'>All the petals have fallen off the [name] from violent whacking!</span>"
|
||||
to_chat(usr, "<span class='warning'>All the petals have fallen off the [name] from violent whacking!</span>")
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/grown/novaflower/pickup(mob/living/carbon/human/user)
|
||||
..()
|
||||
if(!user.gloves)
|
||||
user << "<span class='danger'>The [name] burns your bare hand!</span>"
|
||||
to_chat(user, "<span class='danger'>The [name] burns your bare hand!</span>")
|
||||
user.adjustFireLoss(rand(1, 5))
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
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>"
|
||||
to_chat(user, "<span class='notice'>You prepare the astroturf.</span>")
|
||||
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
|
||||
if(G.type != type)
|
||||
|
||||
@@ -29,15 +29,21 @@
|
||||
/obj/item/seeds/kudzu/proc/plant(mob/user)
|
||||
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)
|
||||
investigate_log("was planted by [key_name(user)] at ([T.x],[T.y],[T.z])","kudzu")
|
||||
if(!isturf(user.loc))
|
||||
to_chat(user, "<span class='warning'>You need more space to plant [src].</span>")
|
||||
return FALSE
|
||||
if(locate(/obj/structure/spacevine) in user.loc)
|
||||
to_chat(user, "<span class='warning'>There is too much kudzu here to plant [src].</span>")
|
||||
return FALSE
|
||||
to_chat(user, "<span class='notice'>You plant [src].</span>")
|
||||
message_admins("Kudzu planted by [ADMIN_LOOKUPFLW(user)] at [ADMIN_COORDJMP(user)]",0,1)
|
||||
investigate_log("was planted by [key_name(user)] at [COORD(user)]","botany")
|
||||
new /obj/effect/spacevine_controller(user.loc, mutations, potency, production)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/seeds/kudzu/attack_self(mob/user)
|
||||
plant(user)
|
||||
user << "<span class='notice'>You plant the kudzu. You monster.</span>"
|
||||
to_chat(user, "<span class='notice'>You plant the kudzu. You monster.</span>")
|
||||
|
||||
/obj/item/seeds/kudzu/get_analyzer_text()
|
||||
var/text = ..()
|
||||
|
||||
@@ -172,7 +172,7 @@
|
||||
M.move_to_delay -= round(seed.production / 50)
|
||||
M.health = M.maxHealth
|
||||
qdel(src)
|
||||
user << "<span class='notice'>You plant the walking mushroom.</span>"
|
||||
to_chat(user, "<span class='notice'>You plant the walking mushroom.</span>")
|
||||
|
||||
|
||||
// Chanterelle
|
||||
@@ -220,7 +220,7 @@
|
||||
rarity = 20
|
||||
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)
|
||||
mutatelist = list(/obj/item/seeds/glowshroom/glowcap, /obj/item/seeds/glowshroom/shadowshroom)
|
||||
reagents_add = list("radium" = 0.1, "phosphorus" = 0.1, "nutriment" = 0.04)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/glowshroom
|
||||
@@ -234,15 +234,25 @@
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/glowshroom/attack_self(mob/user)
|
||||
if(isspaceturf(user.loc))
|
||||
return
|
||||
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.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>"
|
||||
return FALSE
|
||||
if(!isturf(user.loc))
|
||||
to_chat(user, "<span class='warning'>You need more space to plant [src].</span>")
|
||||
return FALSE
|
||||
var/count = 0
|
||||
var/maxcount = 1
|
||||
for(var/tempdir in cardinal)
|
||||
var/turf/closed/wall = get_step(user.loc, tempdir)
|
||||
if(istype(wall))
|
||||
maxcount++
|
||||
for(var/obj/structure/glowshroom/G in user.loc)
|
||||
count++
|
||||
if(count >= maxcount)
|
||||
to_chat(user, "<span class='warning'>There are too many shrooms here to plant [src].</span>")
|
||||
return FALSE
|
||||
new effect_path(user.loc, seed)
|
||||
to_chat(user, "<span class='notice'>You plant [src].</span>")
|
||||
qdel(src)
|
||||
return TRUE
|
||||
|
||||
|
||||
// Glowcap
|
||||
@@ -255,7 +265,7 @@
|
||||
icon_dead = "glowshroom-dead"
|
||||
plantname = "Glowcaps"
|
||||
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, /datum/plant_gene/trait/plant_type/fungal_metabolism)
|
||||
genes = list(/datum/plant_gene/trait/glow/red, /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
|
||||
@@ -263,8 +273,39 @@
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/glowshroom/glowcap
|
||||
seed = /obj/item/seeds/glowshroom/glowcap
|
||||
name = "glowcap cluster"
|
||||
desc = "<I>Mycena Ruthenia</I>: This species of mushroom glows in the dark, but aren't bioluminescent. They're warm to the touch..."
|
||||
desc = "<I>Mycena Ruthenia</I>: This species of mushroom glows in the dark, but isn't actually bioluminescent. They're warm to the touch..."
|
||||
icon_state = "glowcap"
|
||||
filling_color = "#00FA9A"
|
||||
effect_path = /obj/structure/glowshroom/glowcap
|
||||
origin_tech = "biotech=4;powerstorage=6;plasmatech=4"
|
||||
|
||||
|
||||
//Shadowshroom
|
||||
/obj/item/seeds/glowshroom/shadowshroom
|
||||
name = "pack of shadowshroom mycelium"
|
||||
desc = "This mycelium will grow into something shadowy."
|
||||
icon_state = "mycelium-shadowshroom"
|
||||
species = "shadowshroom"
|
||||
icon_grow = "shadowshroom-grow"
|
||||
icon_dead = "shadowshroom-dead"
|
||||
plantname = "Shadowshrooms"
|
||||
product = /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/glowshroom/shadowshroom
|
||||
genes = list(/datum/plant_gene/trait/glow/shadow, /datum/plant_gene/trait/plant_type/fungal_metabolism)
|
||||
mutatelist = list()
|
||||
reagents_add = list("radium" = 0.2, "nutriment" = 0.04)
|
||||
rarity = 30
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/glowshroom/shadowshroom
|
||||
seed = /obj/item/seeds/glowshroom/shadowshroom
|
||||
name = "shadowshroom cluster"
|
||||
desc = "<I>Mycena Umbra</I>: This species of mushroom emits shadow instead of light."
|
||||
icon_state = "shadowshroom"
|
||||
effect_path = /obj/structure/glowshroom/shadowshroom
|
||||
origin_tech = "biotech=4;plasmatech=4;magnets=4"
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/glowshroom/shadowshroom/attack_self(mob/user)
|
||||
. = ..()
|
||||
if(.)
|
||||
message_admins("Shadowshroom planted by [ADMIN_LOOKUPFLW(user)] at [ADMIN_COORDJMP(user)]",0,1)
|
||||
investigate_log("was planted by [key_name(user)] at [COORD(user)]", "botany")
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
if(affecting)
|
||||
if(affecting.receive_damage(0, force))
|
||||
C.update_damage_overlays()
|
||||
C << "<span class='userdanger'>The nettle burns your bare hand!</span>"
|
||||
to_chat(C, "<span class='userdanger'>The nettle burns your bare hand!</span>")
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/grown/nettle/afterattack(atom/A as mob|obj, mob/user,proximity)
|
||||
@@ -67,7 +67,7 @@
|
||||
if(force > 0)
|
||||
force -= rand(1, (force / 3) + 1) // When you whack someone with it, leaves fall off
|
||||
else
|
||||
usr << "All the leaves have fallen off the nettle from violent whacking."
|
||||
to_chat(usr, "All the leaves have fallen off the nettle from violent whacking.")
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/grown/nettle/basic
|
||||
@@ -94,13 +94,13 @@
|
||||
if(..())
|
||||
if(prob(50))
|
||||
user.Paralyse(5)
|
||||
user << "<span class='userdanger'>You are stunned by the Deathnettle when you try picking it up!</span>"
|
||||
to_chat(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(isliving(M))
|
||||
M << "<span class='danger'>You are stunned by the powerful acid of the Deathnettle!</span>"
|
||||
to_chat(M, "<span class='danger'>You are stunned by the powerful acid of the Deathnettle!</span>")
|
||||
add_logs(user, M, "attacked", src)
|
||||
|
||||
M.adjust_blurriness(force/7)
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/potato/attackby(obj/item/weapon/W, mob/user, params)
|
||||
if(W.is_sharp())
|
||||
user << "<span class='notice'>You cut the potato into wedges with [W].</span>"
|
||||
to_chat(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
|
||||
remove_item_from_storage(user)
|
||||
qdel(src)
|
||||
|
||||
@@ -35,12 +35,12 @@
|
||||
features = bloodSample.data["features"]
|
||||
factions = bloodSample.data["factions"]
|
||||
W.reagents.clear_reagents()
|
||||
user << "<span class='notice'>You inject the contents of the syringe into the seeds.</span>"
|
||||
to_chat(user, "<span class='notice'>You inject the contents of the syringe into the seeds.</span>")
|
||||
contains_sample = 1
|
||||
else
|
||||
user << "<span class='warning'>The seeds reject the sample!</span>"
|
||||
to_chat(user, "<span class='warning'>The seeds reject the sample!</span>")
|
||||
else
|
||||
user << "<span class='warning'>The seeds already contain a genetic sample!</span>"
|
||||
to_chat(user, "<span class='warning'>The seeds already contain a genetic sample!</span>")
|
||||
else
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/carrot/attackby(obj/item/I, mob/user, params)
|
||||
if(I.is_sharp())
|
||||
user << "<span class='notice'>You sharpen the carrot into a shiv with [I].</span>"
|
||||
to_chat(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
|
||||
remove_item_from_storage(user)
|
||||
qdel(src)
|
||||
|
||||
@@ -119,14 +119,14 @@
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato/killer/attack(mob/M, mob/user, def_zone)
|
||||
if(awakening)
|
||||
user << "<span class='warning'>The tomato is twitching and shaking, preventing you from eating it.</span>"
|
||||
to_chat(user, "<span class='warning'>The tomato is twitching and shaking, preventing you from eating it.</span>")
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato/killer/attack_self(mob/user)
|
||||
if(awakening || isspaceturf(user.loc))
|
||||
return
|
||||
user << "<span class='notice'>You begin to awaken the Killer Tomato...</span>"
|
||||
to_chat(user, "<span class='notice'>You begin to awaken the Killer Tomato...</span>")
|
||||
awakening = 1
|
||||
|
||||
spawn(30)
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
if(ST != plank && istype(ST, plank_type) && ST.amount < ST.max_amount)
|
||||
ST.attackby(plank, user) //we try to transfer all old unfinished stacks to the new stack we created.
|
||||
if(plank.amount > old_plank_amount)
|
||||
user << "<span class='notice'>You add the newly-formed [plank_name] to the stack. It now contains [plank.amount] [plank_name].</span>"
|
||||
to_chat(user, "<span class='notice'>You add the newly-formed [plank_name] to the stack. It now contains [plank.amount] [plank_name].</span>")
|
||||
qdel(src)
|
||||
|
||||
if(is_type_in_list(W,accepted))
|
||||
@@ -77,7 +77,7 @@
|
||||
qdel(src)
|
||||
return
|
||||
else
|
||||
usr << "<span class ='warning'>You must dry this first!</span>"
|
||||
to_chat(usr, "<span class ='warning'>You must dry this first!</span>")
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -115,7 +115,7 @@
|
||||
R.use(1)
|
||||
can_buckle = 1
|
||||
buckle_requires_restraints = 1
|
||||
user << "<span class='italics'>You add a rod to [src]."
|
||||
to_chat(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())
|
||||
@@ -124,7 +124,7 @@
|
||||
|
||||
/obj/structure/bonfire/attack_hand(mob/user)
|
||||
if(burning)
|
||||
user << "<span class='warning'>You need to extinguish [src] before removing the logs!"
|
||||
to_chat(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)
|
||||
@@ -149,7 +149,7 @@
|
||||
if(!burning && CheckOxygen())
|
||||
icon_state = "bonfire_on_fire"
|
||||
burning = 1
|
||||
SetLuminosity(6)
|
||||
set_light(6)
|
||||
Burn()
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
if(burning)
|
||||
icon_state = "bonfire"
|
||||
burning = 0
|
||||
SetLuminosity(0)
|
||||
set_light(0)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/structure/bonfire/buckle_mob(mob/living/M, force = 0)
|
||||
@@ -193,4 +193,4 @@
|
||||
|
||||
/obj/structure/bonfire/unbuckle_mob(mob/living/buckled_mob, force=0)
|
||||
if(..())
|
||||
buckled_mob.pixel_y -= 13
|
||||
buckled_mob.pixel_y -= 13
|
||||
|
||||
Reference in New Issue
Block a user