mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-10 18:02:57 +00:00
Merge pull request #12452 from Trilbyspaceclone/spike-loot-differentces
Miner Loot Shuffle MK III
This commit is contained in:
@@ -43,7 +43,7 @@
|
||||
},
|
||||
/area/shuttle/escape/arena)
|
||||
"l" = (
|
||||
/obj/structure/closet/crate/necropolis/tendril,
|
||||
/obj/structure/closet/crate/necropolis/tendril/magic,
|
||||
/turf/open/indestructible/necropolis/air,
|
||||
/area/shuttle/escape/arena)
|
||||
"m" = (
|
||||
@@ -65,10 +65,18 @@
|
||||
/obj/structure/healingfountain,
|
||||
/turf/open/indestructible/necropolis/air,
|
||||
/area/shuttle/escape/arena)
|
||||
"t" = (
|
||||
/obj/structure/closet/crate/necropolis/tendril/misc,
|
||||
/turf/open/indestructible/necropolis/air,
|
||||
/area/shuttle/escape/arena)
|
||||
"z" = (
|
||||
/obj/effect/landmark/shuttle_arena_safe,
|
||||
/turf/open/indestructible/necropolis/air,
|
||||
/area/shuttle/escape/arena)
|
||||
"H" = (
|
||||
/obj/structure/closet/crate/necropolis/tendril/weapon_armor,
|
||||
/turf/open/indestructible/necropolis/air,
|
||||
/area/shuttle/escape/arena)
|
||||
|
||||
(1,1,1) = {"
|
||||
a
|
||||
@@ -264,16 +272,16 @@ m
|
||||
l
|
||||
j
|
||||
m
|
||||
l
|
||||
H
|
||||
j
|
||||
k
|
||||
l
|
||||
H
|
||||
j
|
||||
m
|
||||
l
|
||||
t
|
||||
j
|
||||
m
|
||||
j
|
||||
t
|
||||
j
|
||||
p
|
||||
g
|
||||
@@ -524,16 +532,16 @@ m
|
||||
l
|
||||
j
|
||||
m
|
||||
l
|
||||
H
|
||||
j
|
||||
m
|
||||
l
|
||||
H
|
||||
j
|
||||
m
|
||||
l
|
||||
t
|
||||
j
|
||||
m
|
||||
j
|
||||
t
|
||||
j
|
||||
p
|
||||
g
|
||||
|
||||
@@ -237,6 +237,11 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
|
||||
resistance_flags = FIRE_PROOF
|
||||
total_mass = TOTAL_MASS_MEDIEVAL_WEAPON
|
||||
|
||||
/obj/item/katana/lavaland
|
||||
desc = "Woefully underpowered in Lavaland."
|
||||
block_chance = 30
|
||||
force = 25 //Like a fireaxe but one handed and can block!
|
||||
|
||||
/obj/item/katana/cursed
|
||||
slot_flags = null
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
max_mobs = 3
|
||||
max_integrity = 250
|
||||
mob_types = list(/mob/living/simple_animal/hostile/asteroid/basilisk/watcher/tendril)
|
||||
var/loot_type = /obj/structure/closet/crate/necropolis/tendril/all
|
||||
|
||||
move_resist=INFINITY // just killing it tears a massive hole in the ground, let's not move it
|
||||
anchored = TRUE
|
||||
@@ -41,7 +42,7 @@ GLOBAL_LIST_INIT(tendrils, list())
|
||||
|
||||
/obj/structure/spawner/lavaland/deconstruct(disassembled)
|
||||
new /obj/effect/collapse(loc)
|
||||
new /obj/structure/closet/crate/necropolis/tendril(loc)
|
||||
new loot_type(loc)
|
||||
return ..()
|
||||
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
max_integrity = 200
|
||||
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 0)
|
||||
var/state = 0
|
||||
var/list/allowed_books = list(/obj/item/book, /obj/item/spellbook, /obj/item/storage/book) //Things allowed in the bookcase
|
||||
var/list/allowed_books = list(/obj/item/book, /obj/item/spellbook, /obj/item/storage/book, /obj/item/gun/magic/wand/book) //Things allowed in the bookcase
|
||||
|
||||
/obj/structure/bookcase/examine(mob/user)
|
||||
. = ..()
|
||||
@@ -192,7 +192,7 @@
|
||||
desc = "Crack it open, inhale the musk of its pages, and learn something new."
|
||||
throw_speed = 1
|
||||
throw_range = 5
|
||||
w_class = WEIGHT_CLASS_NORMAL //upped to three because books are, y'know, pretty big. (and you could hide them inside eachother recursively forever)
|
||||
w_class = WEIGHT_CLASS_NORMAL //upped to three because books are, y'know, pretty big. (and you could hide them inside eachother recursively forever)
|
||||
attack_verb = list("bashed", "whacked", "educated")
|
||||
resistance_flags = FLAMMABLE
|
||||
var/dat //Actual page content
|
||||
|
||||
@@ -66,6 +66,16 @@
|
||||
force = 19
|
||||
custom_materials = list(/datum/material/diamond=4000)
|
||||
|
||||
/obj/item/pickaxe/rosegold
|
||||
name = "rose gold pickaxe"
|
||||
icon_state = "rgpickaxe"
|
||||
item_state = "rgpickaxe"
|
||||
toolspeed = 0.1
|
||||
desc = "A pickaxe with a light rose gold head and some red glowing runes. Extremely robust at cracking rock walls and digging up dirt."
|
||||
force = 19
|
||||
custom_materials = list(/datum/material/gold=4000)
|
||||
digrange = 3
|
||||
|
||||
/obj/item/pickaxe/plasteel
|
||||
name = "plasteel-tipped pickaxe"
|
||||
icon_state = "titaxe"
|
||||
|
||||
@@ -7,78 +7,202 @@
|
||||
icon_state = "necrocrate"
|
||||
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
|
||||
|
||||
/obj/structure/closet/crate/necropolis/tendril/random
|
||||
name = "necropolis crate"
|
||||
desc = "A chest for a chest, a head for a head."
|
||||
|
||||
/obj/structure/closet/crate/necropolis/tendril/random/PopulateContents()
|
||||
var/loot = rand(1,3)
|
||||
switch(loot)
|
||||
if(1)
|
||||
new /obj/structure/closet/crate/necropolis/tendril/magic(src)
|
||||
if(2)
|
||||
new /obj/structure/closet/crate/necropolis/tendril/weapon_armor(src)
|
||||
if(3)
|
||||
new /obj/structure/closet/crate/necropolis/tendril/misc(src)
|
||||
|
||||
/obj/structure/closet/crate/necropolis/tendril
|
||||
desc = "It's watching you suspiciously."
|
||||
|
||||
/obj/structure/closet/crate/necropolis/tendril/PopulateContents()
|
||||
var/loot = rand(1,29)
|
||||
/obj/structure/closet/crate/necropolis/tendril/magic
|
||||
name = "relic necropolis chest"
|
||||
|
||||
/obj/structure/closet/crate/necropolis/tendril/weapon_armor
|
||||
name = "armament necropolis chest"
|
||||
|
||||
/obj/structure/closet/crate/necropolis/tendril/misc
|
||||
|
||||
/obj/structure/closet/crate/necropolis/tendril/all
|
||||
desc = "It's watching you suspiciously."
|
||||
|
||||
/obj/structure/closet/crate/necropolis/tendril/magic/PopulateContents()
|
||||
var/loot = rand(1,10)
|
||||
switch(loot)
|
||||
if(1)
|
||||
new /obj/item/shared_storage/red(src)
|
||||
if(2)
|
||||
new /obj/item/clothing/suit/space/hardsuit/cult(src)
|
||||
if(3)
|
||||
new /obj/item/soulstone/anybody(src)
|
||||
if(2)
|
||||
new /obj/item/rod_of_asclepius(src)
|
||||
if(3)
|
||||
new /obj/item/organ/heart/cursed/wizard(src)
|
||||
if(4)
|
||||
new /obj/item/katana/cursed(src)
|
||||
new /obj/item/book/granter/spell/summonitem(src)
|
||||
if(5)
|
||||
new /obj/item/clothing/glasses/godeye(src)
|
||||
new /obj/item/borg/upgrade/modkit/lifesteal(src)
|
||||
new /obj/item/bedsheet/cult(src)
|
||||
if(6)
|
||||
new /obj/item/reagent_containers/glass/bottle/potion/flight(src)
|
||||
new /obj/item/clothing/neck/necklace/memento_mori(src)
|
||||
if(7)
|
||||
new /obj/item/pickaxe/diamond(src)
|
||||
new /obj/item/warp_cube/red(src)
|
||||
if(8)
|
||||
new /obj/item/immortality_talisman(src)
|
||||
if(9)
|
||||
new /obj/item/gun/magic/wand/book/healing(src)
|
||||
if(10)
|
||||
new /obj/item/reagent_containers/glass/bottle/ichor/red(src)
|
||||
new /obj/item/reagent_containers/glass/bottle/ichor/blue(src)
|
||||
new /obj/item/reagent_containers/glass/bottle/ichor/green(src)
|
||||
|
||||
/obj/structure/closet/crate/necropolis/tendril/weapon_armor/PopulateContents()
|
||||
var/loot = rand(1,11)
|
||||
switch(loot)
|
||||
if(1)
|
||||
new /obj/item/clothing/suit/space/hardsuit/cult(src)
|
||||
if(2)
|
||||
new /obj/item/katana/lavaland(src)
|
||||
if(3)
|
||||
if(prob(50))
|
||||
new /obj/item/disk/design_disk/modkit_disc/resonator_blast(src)
|
||||
else
|
||||
new /obj/item/disk/design_disk/modkit_disc/rapid_repeater(src)
|
||||
if(9)
|
||||
new /obj/item/rod_of_asclepius(src)
|
||||
if(10)
|
||||
new /obj/item/organ/heart/cursed/wizard(src)
|
||||
if(11)
|
||||
new /obj/item/ship_in_a_bottle(src)
|
||||
if(12)
|
||||
if(4)
|
||||
new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/beserker/old(src)
|
||||
if(13)
|
||||
new /obj/item/jacobs_ladder(src)
|
||||
if(14)
|
||||
if(5)
|
||||
new /obj/item/nullrod/scythe/talking(src)
|
||||
if(15)
|
||||
if(6)
|
||||
new /obj/item/nullrod/armblade(src)
|
||||
if(16)
|
||||
new /obj/item/guardiancreator(src)
|
||||
if(17)
|
||||
if(7)
|
||||
new /obj/item/reagent_containers/food/drinks/bottle/holywater/hell(src)
|
||||
new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor/old(src)
|
||||
if(8)
|
||||
new /obj/item/grenade/clusterbuster/inferno(src)
|
||||
if(9)
|
||||
new /obj/item/gun/magic/wand/book/shock(src)
|
||||
if(10)
|
||||
new /obj/item/gun/magic/wand/book/page(src)
|
||||
if(11)
|
||||
new /obj/item/gun/magic/wand/book/spark(src)
|
||||
|
||||
/obj/structure/closet/crate/necropolis/tendril/misc/PopulateContents()
|
||||
var/loot = rand(1,11)
|
||||
switch(loot)
|
||||
if(1)
|
||||
new /obj/item/shared_storage/red(src)
|
||||
if(2)
|
||||
new /obj/item/reagent_containers/glass/bottle/potion/flight(src)
|
||||
if(3)
|
||||
new /obj/item/ship_in_a_bottle(src)
|
||||
if(4)
|
||||
new /obj/item/voodoo(src)
|
||||
if(5)
|
||||
new /obj/item/book_of_babel(src)
|
||||
if(6)
|
||||
new /obj/item/jacobs_ladder(src)
|
||||
if(7)
|
||||
if(prob(50))
|
||||
new /obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe(src)
|
||||
else
|
||||
new /obj/item/disk/design_disk/modkit_disc/bounty(src)
|
||||
if(18)
|
||||
new /obj/item/warp_cube/red(src)
|
||||
if(19)
|
||||
if(8)
|
||||
new /obj/item/wisp_lantern(src)
|
||||
if(20)
|
||||
new /obj/item/immortality_talisman(src)
|
||||
if(21)
|
||||
new /obj/item/gun/magic/hook(src)
|
||||
if(22)
|
||||
if(9)
|
||||
new /obj/item/pickaxe/rosegold(src)
|
||||
if(10)
|
||||
new /obj/item/bedsheet/cosmos(src)
|
||||
new /obj/item/melee/skateboard/hoverboard(src)
|
||||
if(11)
|
||||
if(prob(50))
|
||||
new /obj/item/malf_upgrade
|
||||
else
|
||||
new /obj/item/disk/tech_disk/illegal
|
||||
if(12)
|
||||
new /obj/item/clothing/suit/space/hardsuit/cult(src)
|
||||
if(13)
|
||||
new /obj/item/katana/lavaland(src)
|
||||
if(14)
|
||||
if(prob(50))
|
||||
new /obj/item/disk/design_disk/modkit_disc/resonator_blast(src)
|
||||
else
|
||||
new /obj/item/disk/design_disk/modkit_disc/rapid_repeater(src)
|
||||
|
||||
/obj/structure/closet/crate/necropolis/tendril/all/PopulateContents()
|
||||
var/loot = rand(1,31)
|
||||
switch(loot)
|
||||
if(1)
|
||||
new /obj/item/shared_storage/red(src)
|
||||
if(2)
|
||||
new /obj/item/reagent_containers/glass/bottle/potion/flight(src)
|
||||
if(3)
|
||||
new /obj/item/ship_in_a_bottle(src)
|
||||
if(4)
|
||||
new /obj/item/voodoo(src)
|
||||
if(23)
|
||||
new /obj/item/grenade/clusterbuster/inferno(src)
|
||||
if(24)
|
||||
if(5)
|
||||
new /obj/item/book_of_babel(src)
|
||||
if(6)
|
||||
new /obj/item/jacobs_ladder(src)
|
||||
if(7)
|
||||
if(prob(50))
|
||||
new /obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe(src)
|
||||
else
|
||||
new /obj/item/disk/design_disk/modkit_disc/bounty(src)
|
||||
if(8)
|
||||
new /obj/item/wisp_lantern(src)
|
||||
if(9)
|
||||
new /obj/item/pickaxe/rosegold(src)
|
||||
if(10)
|
||||
new /obj/item/bedsheet/cosmos(src)
|
||||
new /obj/item/melee/skateboard/hoverboard(src)
|
||||
if(11)
|
||||
new /obj/item/disk/tech_disk/illegal
|
||||
if(15)
|
||||
new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/beserker/old(src)
|
||||
if(16)
|
||||
new /obj/item/nullrod/scythe/talking(src)
|
||||
if(17)
|
||||
new /obj/item/nullrod/armblade(src)
|
||||
if(18)
|
||||
new /obj/item/reagent_containers/food/drinks/bottle/holywater/hell(src)
|
||||
new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor/old(src)
|
||||
if(19)
|
||||
new /obj/item/grenade/clusterbuster/inferno(src)
|
||||
if(20)
|
||||
new /obj/item/gun/magic/wand/book/shock(src)
|
||||
if(21)
|
||||
new /obj/item/gun/magic/wand/book/page(src)
|
||||
if(22)
|
||||
new /obj/item/gun/magic/wand/book/spark(src)
|
||||
if(23)
|
||||
new /obj/item/soulstone/anybody(src)
|
||||
if(24)
|
||||
new /obj/item/rod_of_asclepius(src)
|
||||
if(25)
|
||||
new /obj/item/book/granter/spell/summonitem(src)
|
||||
new /obj/item/organ/heart/cursed/wizard(src)
|
||||
if(26)
|
||||
new /obj/item/book_of_babel(src)
|
||||
new /obj/item/book/granter/spell/summonitem(src)
|
||||
if(27)
|
||||
new /obj/item/borg/upgrade/modkit/lifesteal(src)
|
||||
new /obj/item/bedsheet/cult(src)
|
||||
if(28)
|
||||
new /obj/item/clothing/neck/necklace/memento_mori(src)
|
||||
if(28)
|
||||
new /obj/item/warp_cube/red(src)
|
||||
if(29)
|
||||
new /obj/item/disk/tech_disk/illegal(src)
|
||||
new /obj/item/immortality_talisman(src)
|
||||
if(30)
|
||||
new /obj/item/gun/magic/wand/book/healing(src)
|
||||
if(31)
|
||||
new /obj/item/reagent_containers/glass/bottle/ichor/red(src)
|
||||
new /obj/item/reagent_containers/glass/bottle/ichor/blue(src)
|
||||
new /obj/item/reagent_containers/glass/bottle/ichor/green(src)
|
||||
|
||||
//KA modkit design discs
|
||||
/obj/item/disk/design_disk/modkit_disc
|
||||
@@ -744,7 +868,7 @@
|
||||
new /obj/item/lava_staff(src)
|
||||
if(3)
|
||||
new /obj/item/book/granter/spell/sacredflame(src)
|
||||
new /obj/item/gun/magic/wand/fireball(src)
|
||||
new /obj/item/gun/magic/hook(src)
|
||||
if(4)
|
||||
new /obj/item/dragons_blood(src)
|
||||
|
||||
@@ -983,7 +1107,7 @@
|
||||
if(2)
|
||||
new /obj/item/gun/ballistic/revolver/doublebarrel/super(src)
|
||||
if(3)
|
||||
new /obj/item/gun/magic/staff/spellblade(src)
|
||||
new /obj/item/guardiancreator(src)
|
||||
|
||||
/obj/structure/closet/crate/necropolis/bubblegum/crusher
|
||||
name = "bloody bubblegum chest"
|
||||
@@ -1072,6 +1196,7 @@
|
||||
var/random_crystal = pick(choices)
|
||||
new random_crystal(src)
|
||||
new /obj/item/organ/vocal_cords/colossus(src)
|
||||
new /obj/item/clothing/glasses/godeye(src)
|
||||
|
||||
/obj/structure/closet/crate/necropolis/colossus/crusher
|
||||
name = "angelic colossus chest"
|
||||
|
||||
@@ -141,7 +141,7 @@ Difficulty: Medium
|
||||
loot = list(/obj/item/staff/storm)
|
||||
elimination = 0
|
||||
else if(prob(20))
|
||||
loot = list(/obj/structure/closet/crate/necropolis/tendril)
|
||||
loot = list(/obj/structure/closet/crate/necropolis/tendril/random) //This one spawns a chest that could be any of the three types
|
||||
..()
|
||||
|
||||
/obj/item/gps/internal/legion
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
var/list/attack_action_types = list()
|
||||
var/can_talk = FALSE
|
||||
var/obj/loot_drop = null
|
||||
var/crate_type = /obj/structure/closet/crate/necropolis/tendril
|
||||
var/owner
|
||||
|
||||
//Gives player-controlled variants the ability to swap attacks
|
||||
@@ -182,7 +183,7 @@ While using this makes the system rely on OnFire, it still gives options for tim
|
||||
activator = null
|
||||
|
||||
|
||||
obj/structure/elite_tumor/proc/spawn_elite(var/mob/dead/observer/elitemind)
|
||||
/obj/structure/elite_tumor/proc/spawn_elite(var/mob/dead/observer/elitemind)
|
||||
var/selectedspawn = pick(potentialspawns)
|
||||
mychild = new selectedspawn(loc)
|
||||
visible_message("<span class='boldwarning'>[mychild] emerges from [src]!</span>")
|
||||
@@ -193,7 +194,7 @@ obj/structure/elite_tumor/proc/spawn_elite(var/mob/dead/observer/elitemind)
|
||||
icon_state = "tumor_popped"
|
||||
INVOKE_ASYNC(src, .proc/arena_checks)
|
||||
|
||||
obj/structure/elite_tumor/proc/return_elite()
|
||||
/obj/structure/elite_tumor/proc/return_elite()
|
||||
mychild.forceMove(loc)
|
||||
visible_message("<span class='boldwarning'>[mychild] emerges from [src]!</span>")
|
||||
playsound(loc,'sound/effects/phasein.ogg', 200, 0, 50, TRUE, TRUE)
|
||||
@@ -271,11 +272,11 @@ obj/structure/elite_tumor/proc/return_elite()
|
||||
visible_message("<span class='boldwarning'>[mychild] suddenly reappears above [src]!</span>")
|
||||
playsound(loc,'sound/effects/phasein.ogg', 200, 0, 50, TRUE, TRUE)
|
||||
|
||||
obj/structure/elite_tumor/proc/onEliteLoss()
|
||||
/obj/structure/elite_tumor/proc/onEliteLoss()
|
||||
playsound(loc,'sound/effects/tendril_destroyed.ogg', 200, 0, 50, TRUE, TRUE)
|
||||
visible_message("<span class='boldwarning'>[src] begins to convulse violently before beginning to dissipate.</span>")
|
||||
visible_message("<span class='boldwarning'>As [src] closes, something is forced up from down below.</span>")
|
||||
var/obj/structure/closet/crate/necropolis/tendril/lootbox = new /obj/structure/closet/crate/necropolis/tendril(loc)
|
||||
var/obj/structure/closet/crate/necropolis/tendril/lootbox = new mychild.crate_type(loc)
|
||||
if(!boosted)
|
||||
mychild = null
|
||||
activator = null
|
||||
@@ -290,7 +291,7 @@ obj/structure/elite_tumor/proc/onEliteLoss()
|
||||
activator = null
|
||||
qdel(src)
|
||||
|
||||
obj/structure/elite_tumor/proc/onEliteWon()
|
||||
/obj/structure/elite_tumor/proc/onEliteWon()
|
||||
activity = TUMOR_PASSIVE
|
||||
activator = null
|
||||
mychild.revive(full_heal = TRUE, admin_revive = TRUE)
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
mouse_opacity = MOUSE_OPACITY_ICON
|
||||
deathmessage = "explodes into gore!"
|
||||
loot_drop = /obj/item/crusher_trophy/broodmother_tongue
|
||||
crate_type = /obj/structure/closet/crate/necropolis/tendril/weapon_armor
|
||||
|
||||
attack_action_types = list(/datum/action/innate/elite_attack/tentacle_patch,
|
||||
/datum/action/innate/elite_attack/spawn_children,
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
deathsound = 'sound/magic/demon_dies.ogg'
|
||||
deathmessage = "begins to shudder as it becomes transparent..."
|
||||
loot_drop = /obj/item/clothing/neck/cloak/herald_cloak
|
||||
|
||||
crate_type = /obj/structure/closet/crate/necropolis/tendril/magic
|
||||
can_talk = 1
|
||||
|
||||
attack_action_types = list(/datum/action/innate/elite_attack/herald_trishot,
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
deathsound = 'sound/magic/curse.ogg'
|
||||
deathmessage = "'s arms reach out before it falls apart onto the floor, lifeless."
|
||||
loot_drop = /obj/item/crusher_trophy/legionnaire_spine
|
||||
|
||||
crate_type = /obj/structure/closet/crate/necropolis/tendril/misc
|
||||
attack_action_types = list(/datum/action/innate/elite_attack/legionnaire_charge,
|
||||
/datum/action/innate/elite_attack/head_detach,
|
||||
/datum/action/innate/elite_attack/bonfire_teleport,
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
deathsound = 'sound/magic/repulse.ogg'
|
||||
deathmessage = "'s lights flicker, before its top part falls down."
|
||||
loot_drop = /obj/item/clothing/accessory/pandora_hope
|
||||
|
||||
crate_type = /obj/structure/closet/crate/necropolis/tendril/magic
|
||||
attack_action_types = list(/datum/action/innate/elite_attack/singular_shot,
|
||||
/datum/action/innate/elite_attack/magic_box,
|
||||
/datum/action/innate/elite_attack/pandora_teleport,
|
||||
@@ -190,4 +190,4 @@
|
||||
/obj/item/clothing/accessory/pandora_hope/on_uniform_dropped(obj/item/clothing/under/U, user)
|
||||
var/mob/living/L = user
|
||||
if(L && L.mind)
|
||||
SEND_SIGNAL(L, COMSIG_CLEAR_MOOD_EVENT, "hope_lavaland")
|
||||
SEND_SIGNAL(L, COMSIG_CLEAR_MOOD_EVENT, "hope_lavaland")
|
||||
@@ -43,3 +43,17 @@
|
||||
|
||||
/obj/item/ammo_casing/magic/locker
|
||||
projectile_type = /obj/item/projectile/magic/locker
|
||||
|
||||
//Spell book ammo casing
|
||||
/obj/item/ammo_casing/magic/book
|
||||
projectile_type = /obj/item/projectile/magic/spellcard/book
|
||||
|
||||
/obj/item/ammo_casing/magic/book/spark
|
||||
projectile_type = /obj/item/projectile/magic/spellcard/book/spark
|
||||
|
||||
/obj/item/ammo_casing/magic/book/heal
|
||||
projectile_type = /obj/item/projectile/magic/spellcard/book/heal
|
||||
harmful = FALSE
|
||||
|
||||
/obj/item/ammo_casing/magic/book/shock
|
||||
projectile_type = /obj/item/projectile/magic/spellcard/book/shock
|
||||
|
||||
66
code/modules/projectiles/guns/magic/spell_book.dm
Normal file
66
code/modules/projectiles/guns/magic/spell_book.dm
Normal file
@@ -0,0 +1,66 @@
|
||||
/obj/item/gun/magic/wand/book
|
||||
name = "blank spellbook"
|
||||
desc = "It's not just a book, it's a SPELL book!"
|
||||
ammo_type = /obj/item/ammo_casing/magic
|
||||
icon = 'icons/obj/library.dmi'
|
||||
icon_state = "book"
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
charges = 10 //We start with max pages
|
||||
max_charges = 10
|
||||
variable_charges = FALSE
|
||||
|
||||
/obj/item/gun/magic/wand/book/zap_self(mob/living/user)
|
||||
to_chat(user, "The book has [charges] pages\s remaining.</span>")
|
||||
|
||||
/obj/item/gun/magic/wand/book/attackby(obj/item/S, mob/living/user, params)
|
||||
if(!istype(S, /obj/item/paper))
|
||||
return ..()
|
||||
if(charges < max_charges)
|
||||
charges++
|
||||
recharge_newshot()
|
||||
to_chat(user, "You add a new page to [src].</span>")
|
||||
qdel(S)
|
||||
update_icon()
|
||||
process()
|
||||
else
|
||||
to_chat(user, "The [src] has no more room for pages!</span>")
|
||||
|
||||
//////////////////////
|
||||
//Spell Book - SPARK//
|
||||
//////////////////////
|
||||
|
||||
/obj/item/gun/magic/wand/book/spark
|
||||
name = "Spell Book of Spark"
|
||||
desc = "A spell book that fires burn pages to set the target ablaze!"
|
||||
ammo_type = /obj/item/ammo_casing/magic/book/spark
|
||||
icon_state = "spellbook_spark"
|
||||
|
||||
//////////////////////
|
||||
//Spell Book - PAGE///
|
||||
//////////////////////
|
||||
|
||||
/obj/item/gun/magic/wand/book/page
|
||||
name = "Spell Book of Throw"
|
||||
desc = "A spell book that throws pages at its target!"
|
||||
ammo_type = /obj/item/ammo_casing/magic/book
|
||||
icon_state = "spellbook_page"
|
||||
|
||||
//////////////////////
|
||||
//Spell Book - SHOCK//
|
||||
//////////////////////
|
||||
|
||||
/obj/item/gun/magic/wand/book/shock
|
||||
name = "Spell Book of Shock"
|
||||
desc = "A spell book that uses its pages to capture energy in the air and send it in a bolt at its target!"
|
||||
ammo_type = /obj/item/ammo_casing/magic/book/shock
|
||||
icon_state = "spellbook_shock"
|
||||
|
||||
////////////////////////
|
||||
//Spell Book - HEALING//
|
||||
////////////////////////
|
||||
|
||||
/obj/item/gun/magic/wand/book/healing
|
||||
name = "Spell Book of Mending"
|
||||
desc = "A spell book that uses its pages to heal and repair the target! The back of the book lists what it works on, and it seems to only be of flesh and of metal beings..."
|
||||
ammo_type = /obj/item/ammo_casing/magic/book/heal
|
||||
icon_state = "spellbook_healing"
|
||||
@@ -4,3 +4,60 @@
|
||||
icon_state = "spellcard"
|
||||
damage_type = BURN
|
||||
damage = 2
|
||||
|
||||
/obj/item/projectile/magic/spellcard/book
|
||||
nodamage = FALSE
|
||||
name = "enchanted page"
|
||||
desc = "A piece of paper enchanted to give it extreme durability and stiffness, along with a very hot burn to anyone unfortunate enough to get hit by a charged one."
|
||||
icon_state = "spellcard"
|
||||
damage_type = BURN
|
||||
damage = 12
|
||||
flag = "magic"
|
||||
|
||||
/obj/item/projectile/magic/spellcard/book/spark
|
||||
damage = 4
|
||||
var/fire_stacks = 4
|
||||
|
||||
/obj/item/projectile/magic/spellcard/book/spark/on_hit(atom/target, blocked = FALSE)
|
||||
. = ..()
|
||||
var/mob/living/carbon/M = target
|
||||
if(ismob(target))
|
||||
if(M.anti_magic_check())
|
||||
M.visible_message("<span class='warning'>[src] vanishes on contact with [target]!</span>")
|
||||
return BULLET_ACT_BLOCK
|
||||
|
||||
if(iscarbon(target))
|
||||
M.adjust_fire_stacks(fire_stacks)
|
||||
M.IgniteMob()
|
||||
return
|
||||
else
|
||||
damage = 20 //If we are a simplemob we deal 5x damage
|
||||
|
||||
/obj/item/projectile/magic/spellcard/book/shock
|
||||
damage = 0
|
||||
stamina = 11
|
||||
stutter = 5
|
||||
jitter = 20
|
||||
knockdown = 10
|
||||
|
||||
/obj/item/projectile/magic/spellcard/book/heal
|
||||
damage = 0
|
||||
nodamage = TRUE
|
||||
|
||||
/obj/item/projectile/magic/spellcard/book/heal/on_hit(atom/target, blocked = FALSE)
|
||||
. = ..()
|
||||
var/mob/living/carbon/M = target
|
||||
if(ismob(target))
|
||||
if(M.anti_magic_check())
|
||||
M.visible_message("<span class='warning'>[src] vanishes on contact with [target]!</span>")
|
||||
return BULLET_ACT_BLOCK
|
||||
if(iscarbon(target))
|
||||
M.visible_message("<span class='warning'>[src] mends [target]!</span>")
|
||||
M.adjustBruteLoss(-5) //HEALS
|
||||
M.adjustOxyLoss(-5)
|
||||
M.adjustBruteLoss(-5)
|
||||
M.adjustFireLoss(-5)
|
||||
M.adjustToxLoss(-5, TRUE) //heals TOXINLOVERs
|
||||
M.adjustCloneLoss(-5)
|
||||
M.adjustStaminaLoss(-5)
|
||||
return
|
||||
|
||||
@@ -2220,6 +2220,7 @@
|
||||
color = "#f7685e"
|
||||
metabolization_rate = REAGENTS_METABOLISM * 0.25
|
||||
|
||||
|
||||
/datum/reagent/wittel
|
||||
name = "Wittel"
|
||||
description = "An extremely rare metallic-white substance only found on demon-class planets."
|
||||
@@ -2281,6 +2282,7 @@
|
||||
/datum/reagent/gravitum/on_mob_end_metabolize(mob/living/L)
|
||||
L.RemoveElement(/datum/element/forced_gravity, 0)
|
||||
|
||||
|
||||
//body bluids
|
||||
/datum/reagent/consumable/semen
|
||||
name = "Semen"
|
||||
@@ -2457,3 +2459,56 @@ datum/reagent/eldritch
|
||||
return
|
||||
..()
|
||||
|
||||
/datum/reagent/red_ichor
|
||||
name = "Red Ichor"
|
||||
can_synth = FALSE
|
||||
description = "A unknown red liquid, linked to healing of most moral wounds."
|
||||
color = "#c10000"
|
||||
metabolization_rate = REAGENTS_METABOLISM * 2.5
|
||||
|
||||
/datum/reagent/red_ichor/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustBruteLoss(-50)
|
||||
M.adjustOxyLoss(-50)
|
||||
M.adjustBruteLoss(-50)
|
||||
M.adjustFireLoss(-50)
|
||||
M.adjustToxLoss(-50, TRUE) //heals TOXINLOVERs
|
||||
M.adjustCloneLoss(-50)
|
||||
M.adjustStaminaLoss(-50)
|
||||
..()
|
||||
|
||||
/datum/reagent/green_ichor
|
||||
name = "Green Ichor"
|
||||
can_synth = FALSE
|
||||
description = "A unknown green liquid, linked to healing of most internal wounds."
|
||||
color = "#158c00"
|
||||
metabolization_rate = REAGENTS_METABOLISM * 2.5
|
||||
|
||||
/datum/reagent/green_ichor/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_LUNGS, -100)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_HEART, -100)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_LIVER, -100)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_EARS, -100)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_STOMACH, -100)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_TONGUE, -100)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_EYES, -100)
|
||||
..()
|
||||
|
||||
/datum/reagent/blue_ichor
|
||||
name = "Blue Ichor"
|
||||
can_synth = FALSE
|
||||
description = "A unknown blue liquid, linked to healing the mind."
|
||||
color = "#0914e0"
|
||||
metabolization_rate = REAGENTS_METABOLISM * 2.5
|
||||
|
||||
/datum/reagent/blue_ichor/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, -100)
|
||||
M.cure_all_traumas(TRAUMA_RESILIENCE_MAGIC)
|
||||
M.hallucination = 0
|
||||
M.dizziness = 0
|
||||
M.disgust = 0
|
||||
M.drowsyness = 0
|
||||
M.stuttering = 0
|
||||
M.confused = 0
|
||||
M.SetSleeping(0, 0)
|
||||
..()
|
||||
|
||||
|
||||
@@ -416,3 +416,20 @@
|
||||
/obj/item/reagent_containers/glass/bottle/bromine
|
||||
name = "bromine bottle"
|
||||
list_reagents = list(/datum/reagent/bromine = 30)
|
||||
|
||||
//Ichors
|
||||
/obj/item/reagent_containers/glass/bottle/ichor
|
||||
possible_transfer_amounts = list(1)
|
||||
volume = 1
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/ichor/red
|
||||
name = "healing potion"
|
||||
list_reagents = list(/datum/reagent/red_ichor = 1)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/ichor/blue
|
||||
name = "blue potion"
|
||||
list_reagents = list(/datum/reagent/blue_ichor = 1)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/ichor/green
|
||||
name = "green potion"
|
||||
list_reagents = list(/datum/reagent/green_ichor = 1)
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 37 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 65 KiB |
@@ -3026,6 +3026,7 @@
|
||||
#include "code\modules\projectiles\guns\energy\pulse.dm"
|
||||
#include "code\modules\projectiles\guns\energy\special.dm"
|
||||
#include "code\modules\projectiles\guns\energy\stun.dm"
|
||||
#include "code\modules\projectiles\guns\magic\spell_book.dm"
|
||||
#include "code\modules\projectiles\guns\magic\staff.dm"
|
||||
#include "code\modules\projectiles\guns\magic\wand.dm"
|
||||
#include "code\modules\projectiles\guns\misc\beam_rifle.dm"
|
||||
|
||||
Reference in New Issue
Block a user