here we go again (#2456)
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
var/harvested_name = "shortened mushrooms"
|
||||
var/harvested_desc = "Some quickly regrowing mushrooms, formerly known to be quite large."
|
||||
var/needs_sharp_harvest = TRUE
|
||||
var/harvest = /obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/shavings
|
||||
var/harvest = /obj/item/reagent_containers/food/snacks/grown/ash_flora/shavings
|
||||
var/harvest_amount_low = 1
|
||||
var/harvest_amount_high = 3
|
||||
var/harvest_time = 60
|
||||
@@ -55,7 +55,7 @@
|
||||
desc = initial(desc)
|
||||
harvested = FALSE
|
||||
|
||||
/obj/structure/flora/ash/attackby(obj/item/weapon/W, mob/user, params)
|
||||
/obj/structure/flora/ash/attackby(obj/item/W, mob/user, params)
|
||||
if(!harvested && needs_sharp_harvest && W.sharpness)
|
||||
user.visible_message("<span class='notice'>[user] starts to harvest from [src] with [W].</span>","<span class='notice'>You begin to harvest from [src] with [W].</span>")
|
||||
if(do_after(user, harvest_time, target = src))
|
||||
@@ -80,7 +80,7 @@
|
||||
desc = "A number of mushrooms, each of which surrounds a greenish sporangium with a number of leaf-like structures."
|
||||
harvested_name = "leafless mushrooms"
|
||||
harvested_desc = "A bunch of formerly-leafed mushrooms, with their sporangiums exposed. Scandalous?"
|
||||
harvest = /obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf
|
||||
harvest = /obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf
|
||||
needs_sharp_harvest = FALSE
|
||||
harvest_amount_high = 4
|
||||
harvest_time = 20
|
||||
@@ -96,7 +96,7 @@
|
||||
desc = "Several mushrooms, the larger of which have a ring of conks at the midpoint of their stems."
|
||||
harvested_name = "small mushrooms"
|
||||
harvested_desc = "Several small mushrooms near the stumps of what likely were larger mushrooms."
|
||||
harvest = /obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/mushroom_cap
|
||||
harvest = /obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_cap
|
||||
harvest_amount_high = 4
|
||||
harvest_time = 50
|
||||
harvest_message_low = "You slice the cap off a mushroom."
|
||||
@@ -112,7 +112,7 @@
|
||||
luminosity = 1
|
||||
harvested_name = "tiny mushrooms"
|
||||
harvested_desc = "A few tiny mushrooms around larger stumps. You can already see them growing back."
|
||||
harvest = /obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/mushroom_stem
|
||||
harvest = /obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_stem
|
||||
harvest_amount_high = 4
|
||||
harvest_time = 40
|
||||
harvest_message_low = "You pick and slice the cap off a mushroom, leaving the stem."
|
||||
@@ -127,7 +127,7 @@
|
||||
desc = "Several prickly cacti, brimming with ripe fruit and covered in a thin layer of ash."
|
||||
harvested_name = "cacti"
|
||||
harvested_desc = "A bunch of prickly cacti. You can see fruits slowly growing beneath the covering of ash."
|
||||
harvest = /obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/cactus_fruit
|
||||
harvest = /obj/item/reagent_containers/food/snacks/grown/ash_flora/cactus_fruit
|
||||
needs_sharp_harvest = FALSE
|
||||
harvest_amount_high = 2
|
||||
harvest_time = 10
|
||||
@@ -150,7 +150,7 @@
|
||||
H.visible_message("<span class='danger'>[H] steps on a cactus!</span>", \
|
||||
"<span class='userdanger'>You step on a cactus!</span>")
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora
|
||||
/obj/item/reagent_containers/food/snacks/grown/ash_flora
|
||||
name = "mushroom shavings"
|
||||
desc = "Some shavings from a tall mushroom. With enough, might serve as a bowl."
|
||||
icon = 'icons/obj/lavaland/ash_flora.dmi'
|
||||
@@ -161,15 +161,15 @@
|
||||
max_integrity = 100
|
||||
seed = /obj/item/seeds/lavaland/polypore
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/New()
|
||||
/obj/item/reagent_containers/food/snacks/grown/ash_flora/New()
|
||||
..()
|
||||
pixel_x = rand(-4, 4)
|
||||
pixel_y = rand(-4, 4)
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/shavings //for actual crafting
|
||||
/obj/item/reagent_containers/food/snacks/grown/ash_flora/shavings //for actual crafting
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf
|
||||
/obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf
|
||||
name = "mushroom leaf"
|
||||
desc = "A leaf, from a mushroom."
|
||||
list_reagents = list("nutriment" = 3, "vitfro" = 2, "nicotine" = 2)
|
||||
@@ -177,7 +177,7 @@
|
||||
seed = /obj/item/seeds/lavaland/porcini
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/mushroom_cap
|
||||
/obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_cap
|
||||
name = "mushroom cap"
|
||||
desc = "The cap of a large mushroom."
|
||||
list_reagents = list("mindbreaker" = 2, "entpoly" = 4, "mushroomhallucinogen" = 2)
|
||||
@@ -185,7 +185,7 @@
|
||||
seed = /obj/item/seeds/lavaland/inocybe
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/mushroom_stem
|
||||
/obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_stem
|
||||
name = "mushroom stem"
|
||||
desc = "A long mushroom stem. It's slightly glowing."
|
||||
list_reagents = list("tinlux" = 2, "vitamin" = 1, "space_drugs" = 1)
|
||||
@@ -193,7 +193,7 @@
|
||||
luminosity = 1
|
||||
seed = /obj/item/seeds/lavaland/ember
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/cactus_fruit
|
||||
/obj/item/reagent_containers/food/snacks/grown/ash_flora/cactus_fruit
|
||||
name = "cactus fruit"
|
||||
list_reagents = list("vitamin" = 2, "nutriment" = 2, "vitfro" = 4)
|
||||
desc = "A cactus fruit covered in a thick, reddish skin. And some ash."
|
||||
@@ -213,7 +213,7 @@
|
||||
//what you can craft with these things
|
||||
/datum/crafting_recipe/mushroom_bowl
|
||||
name = "Mushroom Bowl"
|
||||
result = /obj/item/weapon/reagent_containers/food/drinks/mushroom_bowl
|
||||
reqs = list(/obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/shavings = 5)
|
||||
result = /obj/item/reagent_containers/food/drinks/mushroom_bowl
|
||||
reqs = list(/obj/item/reagent_containers/food/snacks/grown/ash_flora/shavings = 5)
|
||||
time = 30
|
||||
category = CAT_PRIMAL
|
||||
|
||||
@@ -20,15 +20,15 @@
|
||||
if(3)
|
||||
new /obj/item/device/soulstone/anybody(src)
|
||||
if(4)
|
||||
new /obj/item/weapon/katana/cursed(src)
|
||||
new /obj/item/katana/cursed(src)
|
||||
if(5)
|
||||
new /obj/item/clothing/glasses/godeye(src)
|
||||
if(6)
|
||||
new /obj/item/weapon/reagent_containers/glass/bottle/potion/flight(src)
|
||||
new /obj/item/reagent_containers/glass/bottle/potion/flight(src)
|
||||
if(7)
|
||||
new /obj/item/weapon/pickaxe/diamond(src)
|
||||
new /obj/item/pickaxe/diamond(src)
|
||||
if(8)
|
||||
new /obj/item/weapon/disk/design_disk/modkit_disc/resonator_blast(src)
|
||||
new /obj/item/disk/design_disk/modkit_disc/resonator_blast(src)
|
||||
if(9)
|
||||
new /obj/item/organ/brain/alien(src)
|
||||
if(10)
|
||||
@@ -38,15 +38,15 @@
|
||||
if(12)
|
||||
new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/beserker(src)
|
||||
if(13)
|
||||
new /obj/item/weapon/disk/design_disk/modkit_disc/rapid_repeater(src)
|
||||
new /obj/item/disk/design_disk/modkit_disc/rapid_repeater(src)
|
||||
if(14)
|
||||
new /obj/item/weapon/nullrod/scythe/talking(src)
|
||||
new /obj/item/nullrod/scythe/talking(src)
|
||||
if(15)
|
||||
new /obj/item/weapon/nullrod/armblade(src)
|
||||
new /obj/item/nullrod/armblade(src)
|
||||
if(16)
|
||||
new /obj/item/weapon/guardiancreator(src)
|
||||
new /obj/item/guardiancreator(src)
|
||||
if(17)
|
||||
new /obj/item/weapon/disk/design_disk/modkit_disc/mob_and_turf_aoe(src)
|
||||
new /obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe(src)
|
||||
if(18)
|
||||
new /obj/item/device/warp_cube/red(src)
|
||||
if(19)
|
||||
@@ -54,48 +54,48 @@
|
||||
if(20)
|
||||
new /obj/item/device/immortality_talisman(src)
|
||||
if(21)
|
||||
new /obj/item/weapon/gun/magic/hook(src)
|
||||
new /obj/item/gun/magic/hook(src)
|
||||
if(22)
|
||||
new /obj/item/voodoo(src)
|
||||
if(23)
|
||||
new /obj/item/weapon/grenade/clusterbuster/inferno(src)
|
||||
new /obj/item/grenade/clusterbuster/inferno(src)
|
||||
if(24)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater/hell(src)
|
||||
new /obj/item/reagent_containers/food/drinks/bottle/holywater/hell(src)
|
||||
new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor(src)
|
||||
if(25)
|
||||
new /obj/item/weapon/spellbook/oneuse/summonitem(src)
|
||||
new /obj/item/spellbook/oneuse/summonitem(src)
|
||||
if(26)
|
||||
new /obj/item/book_of_babel(src)
|
||||
if(27)
|
||||
new /obj/item/borg/upgrade/modkit/lifesteal(src)
|
||||
new /obj/item/weapon/bedsheet/cult(src)
|
||||
new /obj/item/bedsheet/cult(src)
|
||||
if(28)
|
||||
new /obj/item/weapon/disk/design_disk/modkit_disc/bounty(src)
|
||||
new /obj/item/disk/design_disk/modkit_disc/bounty(src)
|
||||
|
||||
//KA modkit design discs
|
||||
/obj/item/weapon/disk/design_disk/modkit_disc
|
||||
/obj/item/disk/design_disk/modkit_disc
|
||||
name = "KA Mod Disk"
|
||||
desc = "A design disc containing the design for a unique kinetic accelerator modkit."
|
||||
icon_state = "datadisk1"
|
||||
var/modkit_design = /datum/design/unique_modkit
|
||||
|
||||
/obj/item/weapon/disk/design_disk/modkit_disc/Initialize()
|
||||
/obj/item/disk/design_disk/modkit_disc/Initialize()
|
||||
. = ..()
|
||||
blueprints[1] = new modkit_design
|
||||
|
||||
/obj/item/weapon/disk/design_disk/modkit_disc/mob_and_turf_aoe
|
||||
/obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe
|
||||
name = "Offensive Mining Explosion Mod Disk"
|
||||
modkit_design = /datum/design/unique_modkit/offensive_turf_aoe
|
||||
|
||||
/obj/item/weapon/disk/design_disk/modkit_disc/rapid_repeater
|
||||
/obj/item/disk/design_disk/modkit_disc/rapid_repeater
|
||||
name = "Rapid Repeater Mod Disk"
|
||||
modkit_design = /datum/design/unique_modkit/rapid_repeater
|
||||
|
||||
/obj/item/weapon/disk/design_disk/modkit_disc/resonator_blast
|
||||
/obj/item/disk/design_disk/modkit_disc/resonator_blast
|
||||
name = "Resonator Blast Mod Disk"
|
||||
modkit_design = /datum/design/unique_modkit/resonator_blast
|
||||
|
||||
/obj/item/weapon/disk/design_disk/modkit_disc/bounty
|
||||
/obj/item/disk/design_disk/modkit_disc/bounty
|
||||
name = "Death Syphon Mod Disk"
|
||||
modkit_design = /datum/design/unique_modkit/bounty
|
||||
|
||||
@@ -255,7 +255,7 @@
|
||||
return
|
||||
|
||||
//Meat Hook
|
||||
/obj/item/weapon/gun/magic/hook
|
||||
/obj/item/gun/magic/hook
|
||||
name = "meat hook"
|
||||
desc = "Mid or feed."
|
||||
ammo_type = /obj/item/ammo_casing/magic/hook
|
||||
@@ -374,7 +374,7 @@
|
||||
|
||||
//Internal
|
||||
|
||||
/obj/item/weapon/storage/backpack/shared
|
||||
/obj/item/storage/backpack/shared
|
||||
name = "paradox bag"
|
||||
desc = "Somehow, it's in two places at once."
|
||||
max_combined_w_class = 60
|
||||
@@ -389,7 +389,7 @@
|
||||
icon = 'icons/obj/storage.dmi'
|
||||
icon_state = "cultpack"
|
||||
slot_flags = SLOT_BACK
|
||||
var/obj/item/weapon/storage/backpack/shared/bag
|
||||
var/obj/item/storage/backpack/shared/bag
|
||||
|
||||
|
||||
/obj/item/device/shared_storage/red
|
||||
@@ -399,7 +399,7 @@
|
||||
/obj/item/device/shared_storage/red/Initialize()
|
||||
..()
|
||||
if(!bag)
|
||||
var/obj/item/weapon/storage/backpack/shared/S = new(src)
|
||||
var/obj/item/storage/backpack/shared/S = new(src)
|
||||
var/obj/item/device/shared_storage/blue = new(src.loc)
|
||||
|
||||
src.bag = S
|
||||
@@ -475,7 +475,7 @@
|
||||
. = ..()
|
||||
riding_datum = new/datum/riding/boat
|
||||
|
||||
/obj/item/weapon/oar
|
||||
/obj/item/oar
|
||||
name = "oar"
|
||||
icon = 'icons/obj/vehicles.dmi'
|
||||
icon_state = "oar"
|
||||
@@ -487,7 +487,7 @@
|
||||
|
||||
/datum/crafting_recipe/oar
|
||||
name = "goliath bone oar"
|
||||
result = /obj/item/weapon/oar
|
||||
result = /obj/item/oar
|
||||
reqs = list(/obj/item/stack/sheet/bone = 2)
|
||||
time = 15
|
||||
category = CAT_PRIMAL
|
||||
@@ -524,16 +524,16 @@
|
||||
riding_datum = new/datum/riding/boat/dragon
|
||||
|
||||
//Potion of Flight
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/potion
|
||||
/obj/item/reagent_containers/glass/bottle/potion
|
||||
icon = 'icons/obj/lavaland/artefacts.dmi'
|
||||
icon_state = "potionflask"
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/potion/flight
|
||||
/obj/item/reagent_containers/glass/bottle/potion/flight
|
||||
name = "strange elixir"
|
||||
desc = "A flask with an almost-holy aura emitting from it. The label on the bottle says: 'erqo'hyy tvi'rf lbh jv'atf'."
|
||||
list_reagents = list("flightpotion" = 5)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/potion/update_icon()
|
||||
/obj/item/reagent_containers/glass/bottle/potion/update_icon()
|
||||
if(reagents.total_volume)
|
||||
icon_state = "potionflask"
|
||||
else
|
||||
@@ -567,7 +567,7 @@
|
||||
|
||||
//Miniboss Miner
|
||||
|
||||
/obj/item/weapon/melee/transforming/cleaving_saw
|
||||
/obj/item/melee/transforming/cleaving_saw
|
||||
name = "cleaving saw"
|
||||
desc = "This saw, effective at drawing the blood of beasts, transforms into a long cleaver that makes use of centrifugal force."
|
||||
force = 12
|
||||
@@ -593,19 +593,19 @@
|
||||
var/transform_cooldown
|
||||
var/swiping = FALSE
|
||||
|
||||
/obj/item/weapon/melee/transforming/cleaving_saw/examine(mob/user)
|
||||
/obj/item/melee/transforming/cleaving_saw/examine(mob/user)
|
||||
..()
|
||||
to_chat(user, "<span class='notice'>It is [active ? "open, and will cleave enemies in a wide arc":"closed, and can be used for rapid consecutive attacks that cause beastly enemies to bleed"].<br>\
|
||||
Both modes will build up existing bleed effects, doing a burst of high damage if the bleed is built up high enough.<br>\
|
||||
Transforming it immediately after an attack causes the next attack to come out faster.</span>")
|
||||
|
||||
/obj/item/weapon/melee/transforming/cleaving_saw/suicide_act(mob/user)
|
||||
/obj/item/melee/transforming/cleaving_saw/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is [active ? "closing [src] on [user.p_their()] neck" : "opening [src] into [user.p_their()] chest"]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
transform_cooldown = 0
|
||||
transform_weapon(user, TRUE)
|
||||
return BRUTELOSS
|
||||
|
||||
/obj/item/weapon/melee/transforming/cleaving_saw/transform_weapon(mob/living/user, supress_message_text)
|
||||
/obj/item/melee/transforming/cleaving_saw/transform_weapon(mob/living/user, supress_message_text)
|
||||
if(transform_cooldown > world.time)
|
||||
return FALSE
|
||||
. = ..()
|
||||
@@ -613,7 +613,7 @@
|
||||
transform_cooldown = world.time + (CLICK_CD_MELEE * 0.5)
|
||||
user.changeNext_move(CLICK_CD_MELEE * 0.25)
|
||||
|
||||
/obj/item/weapon/melee/transforming/cleaving_saw/transform_messages(mob/living/user, supress_message_text)
|
||||
/obj/item/melee/transforming/cleaving_saw/transform_messages(mob/living/user, supress_message_text)
|
||||
if(!supress_message_text)
|
||||
if(active)
|
||||
to_chat(user, "<span class='notice'>You open [src]. It will now cleave enemies in a wide arc.</span>")
|
||||
@@ -621,17 +621,17 @@
|
||||
to_chat(user, "<span class='notice'>You close [src]. It will now attack rapidly and cause beastly enemies to bleed.</span>")
|
||||
playsound(user, 'sound/magic/clockwork/fellowship_armory.ogg', 35, TRUE, frequency = 90000 - (active * 30000))
|
||||
|
||||
/obj/item/weapon/melee/transforming/cleaving_saw/clumsy_transform_effect(mob/living/user)
|
||||
/obj/item/melee/transforming/cleaving_saw/clumsy_transform_effect(mob/living/user)
|
||||
if(user.disabilities & CLUMSY && prob(50))
|
||||
to_chat(user, "<span class='warning'>You accidentally cut yourself with [src], like a doofus!</span>")
|
||||
user.take_bodypart_damage(10)
|
||||
|
||||
/obj/item/weapon/melee/transforming/cleaving_saw/melee_attack_chain(mob/user, atom/target, params)
|
||||
/obj/item/melee/transforming/cleaving_saw/melee_attack_chain(mob/user, atom/target, params)
|
||||
..()
|
||||
if(!active)
|
||||
user.changeNext_move(CLICK_CD_MELEE * 0.5) //when closed, it attacks very rapidly
|
||||
|
||||
/obj/item/weapon/melee/transforming/cleaving_saw/nemesis_effects(mob/living/user, mob/living/target)
|
||||
/obj/item/melee/transforming/cleaving_saw/nemesis_effects(mob/living/user, mob/living/target)
|
||||
var/datum/status_effect/saw_bleed/B = target.has_status_effect(STATUS_EFFECT_SAWBLEED)
|
||||
if(!B)
|
||||
if(!active) //This isn't in the above if-check so that the else doesn't care about active
|
||||
@@ -639,7 +639,7 @@
|
||||
else
|
||||
B.add_bleed(B.bleed_buildup)
|
||||
|
||||
/obj/item/weapon/melee/transforming/cleaving_saw/attack(mob/living/target, mob/living/carbon/human/user)
|
||||
/obj/item/melee/transforming/cleaving_saw/attack(mob/living/target, mob/living/carbon/human/user)
|
||||
if(!active || swiping || !target.density || get_turf(target) == get_turf(user))
|
||||
if(!active)
|
||||
faction_bonus_force = 0
|
||||
@@ -667,14 +667,14 @@
|
||||
var/loot = rand(1,4)
|
||||
switch(loot)
|
||||
if(1)
|
||||
new /obj/item/weapon/melee/ghost_sword(src)
|
||||
new /obj/item/melee/ghost_sword(src)
|
||||
if(2)
|
||||
new /obj/item/weapon/lava_staff(src)
|
||||
new /obj/item/lava_staff(src)
|
||||
if(3)
|
||||
new /obj/item/weapon/spellbook/oneuse/sacredflame(src)
|
||||
new /obj/item/weapon/gun/magic/wand/fireball(src)
|
||||
new /obj/item/spellbook/oneuse/sacredflame(src)
|
||||
new /obj/item/gun/magic/wand/fireball(src)
|
||||
if(4)
|
||||
new /obj/item/weapon/dragons_blood(src)
|
||||
new /obj/item/dragons_blood(src)
|
||||
|
||||
/obj/structure/closet/crate/necropolis/dragon/crusher
|
||||
name = "firey dragon chest"
|
||||
@@ -683,7 +683,7 @@
|
||||
..()
|
||||
new /obj/item/crusher_trophy/tail_spike(src)
|
||||
|
||||
/obj/item/weapon/melee/ghost_sword
|
||||
/obj/item/melee/ghost_sword
|
||||
name = "\improper spectral blade"
|
||||
desc = "A rusted and dulled blade. It doesn't look like it'd do much damage. It glows weakly."
|
||||
icon_state = "spectral"
|
||||
@@ -700,13 +700,13 @@
|
||||
var/summon_cooldown = 0
|
||||
var/list/mob/dead/observer/spirits
|
||||
|
||||
/obj/item/weapon/melee/ghost_sword/Initialize()
|
||||
/obj/item/melee/ghost_sword/Initialize()
|
||||
..()
|
||||
spirits = list()
|
||||
START_PROCESSING(SSobj, src)
|
||||
GLOB.poi_list |= src
|
||||
|
||||
/obj/item/weapon/melee/ghost_sword/Destroy()
|
||||
/obj/item/melee/ghost_sword/Destroy()
|
||||
for(var/mob/dead/observer/G in spirits)
|
||||
G.invisibility = GLOB.observer_default_invisibility
|
||||
spirits.Cut()
|
||||
@@ -714,7 +714,7 @@
|
||||
GLOB.poi_list -= src
|
||||
. = ..()
|
||||
|
||||
/obj/item/weapon/melee/ghost_sword/attack_self(mob/user)
|
||||
/obj/item/melee/ghost_sword/attack_self(mob/user)
|
||||
if(summon_cooldown > world.time)
|
||||
to_chat(user, "You just recently called out for aid. You don't want to annoy the spirits.")
|
||||
return
|
||||
@@ -726,16 +726,16 @@
|
||||
|
||||
summon_cooldown = world.time + 600
|
||||
|
||||
/obj/item/weapon/melee/ghost_sword/Topic(href, href_list)
|
||||
/obj/item/melee/ghost_sword/Topic(href, href_list)
|
||||
if(href_list["orbit"])
|
||||
var/mob/dead/observer/ghost = usr
|
||||
if(istype(ghost))
|
||||
ghost.ManualFollow(src)
|
||||
|
||||
/obj/item/weapon/melee/ghost_sword/process()
|
||||
/obj/item/melee/ghost_sword/process()
|
||||
ghost_check()
|
||||
|
||||
/obj/item/weapon/melee/ghost_sword/proc/ghost_check()
|
||||
/obj/item/melee/ghost_sword/proc/ghost_check()
|
||||
var/ghost_counter = 0
|
||||
var/turf/T = get_turf(src)
|
||||
var/list/contents = T.GetAllContents()
|
||||
@@ -761,7 +761,7 @@
|
||||
|
||||
return ghost_counter
|
||||
|
||||
/obj/item/weapon/melee/ghost_sword/attack(mob/living/target, mob/living/carbon/human/user)
|
||||
/obj/item/melee/ghost_sword/attack(mob/living/target, mob/living/carbon/human/user)
|
||||
force = 0
|
||||
var/ghost_counter = ghost_check()
|
||||
|
||||
@@ -769,7 +769,7 @@
|
||||
user.visible_message("<span class='danger'>[user] strikes with the force of [ghost_counter] vengeful spirits!</span>")
|
||||
..()
|
||||
|
||||
/obj/item/weapon/melee/ghost_sword/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
|
||||
/obj/item/melee/ghost_sword/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
|
||||
var/ghost_counter = ghost_check()
|
||||
final_block_chance += Clamp((ghost_counter * 5), 0, 75)
|
||||
owner.visible_message("<span class='danger'>[owner] is protected by a ring of [ghost_counter] ghosts!</span>")
|
||||
@@ -777,13 +777,13 @@
|
||||
|
||||
//Blood
|
||||
|
||||
/obj/item/weapon/dragons_blood
|
||||
/obj/item/dragons_blood
|
||||
name = "bottle of dragons blood"
|
||||
desc = "You're not actually going to drink this, are you?"
|
||||
icon = 'icons/obj/wizard.dmi'
|
||||
icon_state = "vial"
|
||||
|
||||
/obj/item/weapon/dragons_blood/attack_self(mob/living/carbon/human/user)
|
||||
/obj/item/dragons_blood/attack_self(mob/living/carbon/human/user)
|
||||
if(!istype(user))
|
||||
return
|
||||
|
||||
@@ -830,7 +830,7 @@
|
||||
|
||||
//Lava Staff
|
||||
|
||||
/obj/item/weapon/lava_staff
|
||||
/obj/item/lava_staff
|
||||
name = "staff of lava"
|
||||
desc = "The ability to fill the emergency shuttle with lava. What more could you want out of life?"
|
||||
icon_state = "staffofstorms"
|
||||
@@ -852,11 +852,11 @@
|
||||
var/timer = 0
|
||||
var/banned_turfs
|
||||
|
||||
/obj/item/weapon/lava_staff/Initialize()
|
||||
/obj/item/lava_staff/Initialize()
|
||||
. = ..()
|
||||
banned_turfs = typecacheof(list(/turf/open/space/transit, /turf/closed))
|
||||
|
||||
/obj/item/weapon/lava_staff/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
|
||||
/obj/item/lava_staff/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
|
||||
..()
|
||||
if(timer > world.time)
|
||||
return
|
||||
@@ -909,7 +909,7 @@
|
||||
if(2)
|
||||
new /obj/item/blood_contract(src)
|
||||
if(3)
|
||||
new /obj/item/weapon/gun/magic/staff/spellblade(src)
|
||||
new /obj/item/gun/magic/staff/spellblade(src)
|
||||
|
||||
/obj/structure/closet/crate/necropolis/bubblegum/crusher
|
||||
name = "bloody bubblegum chest"
|
||||
@@ -973,7 +973,7 @@
|
||||
if(H == L)
|
||||
continue
|
||||
to_chat(H, "<span class='userdanger'>You have an overwhelming desire to kill [L]. [L.p_they(TRUE)] [L.p_have()] been marked red! Go kill [L.p_them()]!</span>")
|
||||
H.put_in_hands_or_del(new /obj/item/weapon/kitchen/knife/butcher(H))
|
||||
H.put_in_hands_or_del(new /obj/item/kitchen/knife/butcher(H))
|
||||
|
||||
qdel(src)
|
||||
|
||||
@@ -995,7 +995,7 @@
|
||||
new /obj/item/crusher_trophy/blaster_tubes(src)
|
||||
|
||||
//Hierophant
|
||||
/obj/item/weapon/hierophant_club
|
||||
/obj/item/hierophant_club
|
||||
name = "hierophant club"
|
||||
desc = "The strange technology of this large club allows various nigh-magical feats. It used to beat you, but now you can set the beat."
|
||||
icon_state = "hierophant_club_ready_beacon"
|
||||
@@ -1020,11 +1020,11 @@
|
||||
var/teleporting = FALSE //if we ARE teleporting
|
||||
var/friendly_fire_check = FALSE //if the blasts we make will consider our faction against the faction of hit targets
|
||||
|
||||
/obj/item/weapon/hierophant_club/examine(mob/user)
|
||||
/obj/item/hierophant_club/examine(mob/user)
|
||||
..()
|
||||
to_chat(user, "<span class='hierophant_warning'>The[beacon ? " beacon is not currently":"re is a beacon"] attached.</span>")
|
||||
|
||||
/obj/item/weapon/hierophant_club/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
|
||||
/obj/item/hierophant_club/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
|
||||
..()
|
||||
var/turf/T = get_turf(target)
|
||||
if(!T || timer > world.time)
|
||||
@@ -1054,7 +1054,7 @@
|
||||
timer = world.time
|
||||
INVOKE_ASYNC(src, .proc/prepare_icon_update)
|
||||
|
||||
/obj/item/weapon/hierophant_club/proc/calculate_anger_mod(mob/user) //we get stronger as the user loses health
|
||||
/obj/item/hierophant_club/proc/calculate_anger_mod(mob/user) //we get stronger as the user loses health
|
||||
chaser_cooldown = initial(chaser_cooldown)
|
||||
cooldown_time = initial(cooldown_time)
|
||||
chaser_speed = initial(chaser_speed)
|
||||
@@ -1067,7 +1067,7 @@
|
||||
chaser_speed = max(chaser_speed + health_percent, 0.5) //one tenth of a second faster for each missing 10% of health
|
||||
blast_range -= round(health_percent * 10) //one additional range for each missing 10% of health
|
||||
|
||||
/obj/item/weapon/hierophant_club/update_icon()
|
||||
/obj/item/hierophant_club/update_icon()
|
||||
icon_state = "hierophant_club[timer <= world.time ? "_ready":""][(beacon && !QDELETED(beacon)) ? "":"_beacon"]"
|
||||
item_state = icon_state
|
||||
if(ismob(loc))
|
||||
@@ -1075,12 +1075,12 @@
|
||||
M.update_inv_hands()
|
||||
M.update_inv_back()
|
||||
|
||||
/obj/item/weapon/hierophant_club/proc/prepare_icon_update()
|
||||
/obj/item/hierophant_club/proc/prepare_icon_update()
|
||||
update_icon()
|
||||
sleep(timer - world.time)
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/hierophant_club/ui_action_click(mob/user, action)
|
||||
/obj/item/hierophant_club/ui_action_click(mob/user, action)
|
||||
if(istype(action, /datum/action/item_action/toggle_unfriendly_fire)) //toggle friendly fire...
|
||||
friendly_fire_check = !friendly_fire_check
|
||||
to_chat(user, "<span class='warning'>You toggle friendly fire [friendly_fire_check ? "off":"on"]!</span>")
|
||||
@@ -1185,7 +1185,7 @@
|
||||
if(user)
|
||||
user.update_action_buttons_icon()
|
||||
|
||||
/obj/item/weapon/hierophant_club/proc/teleport_mob(turf/source, mob/M, turf/target, mob/user)
|
||||
/obj/item/hierophant_club/proc/teleport_mob(turf/source, mob/M, turf/target, mob/user)
|
||||
var/turf/turf_to_teleport_to = get_step(target, get_dir(source, M)) //get position relative to caster
|
||||
if(!turf_to_teleport_to || is_blocked_turf(turf_to_teleport_to, TRUE))
|
||||
return
|
||||
@@ -1209,7 +1209,7 @@
|
||||
if(user != M)
|
||||
add_logs(user, M, "teleported", null, "from ([source.x],[source.y],[source.z])")
|
||||
|
||||
/obj/item/weapon/hierophant_club/proc/cardinal_blasts(turf/T, mob/living/user) //fire cardinal cross blasts with a delay
|
||||
/obj/item/hierophant_club/proc/cardinal_blasts(turf/T, mob/living/user) //fire cardinal cross blasts with a delay
|
||||
if(!T)
|
||||
return
|
||||
new /obj/effect/temp_visual/hierophant/telegraph/cardinal(T, user)
|
||||
@@ -1219,7 +1219,7 @@
|
||||
for(var/d in GLOB.cardinals)
|
||||
INVOKE_ASYNC(src, .proc/blast_wall, T, d, user)
|
||||
|
||||
/obj/item/weapon/hierophant_club/proc/blast_wall(turf/T, dir, mob/living/user) //make a wall of blasts blast_range tiles long
|
||||
/obj/item/hierophant_club/proc/blast_wall(turf/T, dir, mob/living/user) //make a wall of blasts blast_range tiles long
|
||||
if(!T)
|
||||
return
|
||||
var/range = blast_range
|
||||
@@ -1234,7 +1234,7 @@
|
||||
previousturf = J
|
||||
J = get_step(previousturf, dir)
|
||||
|
||||
/obj/item/weapon/hierophant_club/proc/aoe_burst(turf/T, mob/living/user) //make a 3x3 blast around a target
|
||||
/obj/item/hierophant_club/proc/aoe_burst(turf/T, mob/living/user) //make a 3x3 blast around a target
|
||||
if(!T)
|
||||
return
|
||||
new /obj/effect/temp_visual/hierophant/telegraph(T, user)
|
||||
|
||||
Reference in New Issue
Block a user