From b62ef0f4e81b62bd029267d4fa7f7653866a2ef1 Mon Sep 17 00:00:00 2001 From: TrilbySpaceClone Date: Tue, 2 Jun 2020 19:44:47 -0400 Subject: [PATCH] right... --- _maps/shuttles/emergency_arena.dmm | 26 +++-- .../structures/lavaland/necropolis_tendril.dm | 5 +- .../mining/lavaland/necropolis_chests.dm | 107 ++++++++++-------- .../hostile/mining_mobs/elites/elite.dm | 13 ++- .../mining_mobs/elites/goliath_broodmother.dm | 1 + .../hostile/mining_mobs/elites/herald.dm | 2 +- .../hostile/mining_mobs/elites/legionnaire.dm | 2 +- .../hostile/mining_mobs/elites/pandora.dm | 4 +- 8 files changed, 91 insertions(+), 69 deletions(-) diff --git a/_maps/shuttles/emergency_arena.dmm b/_maps/shuttles/emergency_arena.dmm index 1314b8a732..2ba9206830 100644 --- a/_maps/shuttles/emergency_arena.dmm +++ b/_maps/shuttles/emergency_arena.dmm @@ -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 diff --git a/code/game/objects/structures/lavaland/necropolis_tendril.dm b/code/game/objects/structures/lavaland/necropolis_tendril.dm index 2911babd83..425483d8e6 100644 --- a/code/game/objects/structures/lavaland/necropolis_tendril.dm +++ b/code/game/objects/structures/lavaland/necropolis_tendril.dm @@ -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/magic move_resist=INFINITY // just killing it tears a massive hole in the ground, let's not move it anchored = TRUE @@ -21,9 +22,11 @@ /obj/structure/spawner/lavaland/goliath mob_types = list(/mob/living/simple_animal/hostile/asteroid/goliath/beast/tendril) + loot_type = /obj/structure/closet/crate/necropolis/tendril/weapon_armor /obj/structure/spawner/lavaland/legion mob_types = list(/mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril) + loot_type = /obj/structure/closet/crate/necropolis/tendril/misc /obj/structure/spawner/lavaland/icewatcher mob_types = list(/mob/living/simple_animal/hostile/asteroid/basilisk/watcher/icewing) @@ -41,7 +44,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 ..() diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 53ce676317..2f5b9dd185 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -10,73 +10,81 @@ /obj/structure/closet/crate/necropolis/tendril desc = "It's watching you suspiciously." -/obj/structure/closet/crate/necropolis/tendril/PopulateContents() - var/loot = rand(1,28) +/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/magic/PopulateContents() + var/loot = rand(1,8) 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) + +/obj/structure/closet/crate/necropolis/tendril/weapon_armor/PopulateContents() + var/loot = rand(1,8) + switch(loot) + if(1) + new /obj/item/clothing/suit/space/hardsuit/cult(src) + if(2) + new /obj/item/katana/cursed(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) + +/obj/structure/closet/crate/necropolis/tendril/misc/PopulateContents() + var/loot = rand(1,8) + 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) - new /obj/item/voodoo(src) - if(23) - new /obj/item/grenade/clusterbuster/inferno(src) - if(24) - new /obj/item/reagent_containers/food/drinks/bottle/holywater/hell(src) - new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor/old(src) - if(25) - new /obj/item/book/granter/spell/summonitem(src) - if(26) - new /obj/item/book_of_babel(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) //KA modkit design discs /obj/item/disk/design_disk/modkit_disc @@ -741,7 +749,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) @@ -977,7 +985,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" @@ -1066,6 +1074,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" diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm index 81b541dc7b..c41a31c76e 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm @@ -26,6 +26,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 @@ -183,7 +184,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("[mychild] emerges from [src]!") @@ -194,7 +195,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("[mychild] emerges from [src]!") playsound(loc,'sound/effects/phasein.ogg', 200, 0, 50, TRUE, TRUE) @@ -272,7 +273,7 @@ obj/structure/elite_tumor/proc/return_elite() visible_message("[mychild] suddenly reappears above [src]!") 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("[src] begins to convulse violently before beginning to dissipate.") visible_message("As [src] closes, something is forced up from down below.") @@ -284,14 +285,14 @@ obj/structure/elite_tumor/proc/onEliteLoss() return var/lootpick = rand(1, 2) if(lootpick == 1 && mychild.loot_drop != null) - new mychild.loot_drop(lootbox) + new mychild.crate_type(loc) else - new /obj/item/tumor_shard(lootbox) + new mychild.crate_type(lootbox) mychild = null 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) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm index e662f4e525..99f8ccb645 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm @@ -41,6 +41,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, diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm index 78b24acfb0..e03463caa4 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm @@ -39,7 +39,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, diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm index 31f925fb2b..5c0e7d15a0 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm @@ -39,7 +39,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, diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm index ebbf032859..cec5f28a2a 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm @@ -39,7 +39,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") \ No newline at end of file