mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-28 10:01:58 +00:00
About The Pull Request VR sleepers now lead to the VR Hub, a place with a bunch of portals that lead you to other areas, or just has chill stuff like a bar. Includes portals to all the old vr maps, the megafauna training simulator map, a soon to be minecraft map, and my crappy game runner where you run away from falling tiles and fight to be the last person to survive. Merges murderdome and syndicate trainer into the vr hub map so they spawn every time with vr. Recall portals now can have multiple exits to support the old vr waypoint system from the hub. Also moves a lot of stuff around in the files to make it more organized. There's now also a ghost role that can access VR as well with infinite spawns. VR NOW HAS A CONFIG OPTION SO ENABLE IT OR VR WILL NOT WORK. Why It's Good For The Game Being a ghost is boring for most people, it's nice to have a place for people to hang out rather than just leave the server. This is also a nice place where people can put gamemodes they're testing or other fun little minigames that can't be main gamemodes. VR currently is not used by really anyone so I don't see anyone getting bothered by this PR as well.
319 lines
11 KiB
Plaintext
319 lines
11 KiB
Plaintext
/area/awaymission/vr/megafauna_arena
|
|
name = "Virtual Reality Megafauna Trainer Safe Area"
|
|
icon_state = "awaycontent3"
|
|
|
|
/area/awaymission/vr/megafauna_arena/arena
|
|
name = "Virtual Reality Megafauna Trainer Fighting Area"
|
|
icon_state = "awaycontent4"
|
|
pacifist = FALSE
|
|
|
|
/datum/outfit/job/miner/equipped/vr
|
|
name = "Virtual Reality Miner"
|
|
suit = /obj/item/clothing/suit/hooded/explorer
|
|
mask = /obj/item/clothing/mask/gas/explorer
|
|
glasses = /obj/item/clothing/glasses/hud/health
|
|
suit_store = /obj/item/tank/internals/oxygen
|
|
internals_slot = SLOT_S_STORE
|
|
backpack_contents = list(
|
|
/obj/item/gun/energy/kinetic_accelerator=2)
|
|
|
|
/obj/effect/portal/permanent/one_way/recall/megafauna_arena
|
|
name = "Megafauna Arena Portal"
|
|
desc = "Fight against megafauna in the safety of virtual reality."
|
|
equipment = /datum/outfit/job/miner/equipped/vr
|
|
recall_equipment = /datum/outfit/vr
|
|
id = "vr megafauna arena"
|
|
light_color = LIGHT_COLOR_FIRE
|
|
light_power = 1
|
|
light_range = 10
|
|
|
|
/obj/effect/portal/permanent/one_way/destroy/megafauna_arena
|
|
name = "Megafauna Arena Exit Portal"
|
|
id = "vr megafauna arena"
|
|
|
|
/obj/effect/portal/permanent/one_way/recall/blood_drunk_miner
|
|
name = "Blood Drunk Miner Arena Portal"
|
|
desc = "You see a faded miner through the portal. His rippling eyes stare directly at you."
|
|
id = "vr blood drunk miner"
|
|
|
|
/obj/effect/portal/permanent/one_way/destroy/blood_drunk_miner
|
|
name = "Blood Drunk Miner Arena Exit Portal"
|
|
id = "vr blood drunk miner"
|
|
|
|
/obj/effect/portal/permanent/one_way/recall/dragon
|
|
name = "Ash Drake Arena Portal"
|
|
desc = "The crackling fires of hell burn on the other side."
|
|
id = "vr ash drake"
|
|
|
|
/obj/effect/portal/permanent/one_way/destroy/dragon
|
|
name = "Ash Drake Arena Exit Portal"
|
|
id = "vr ash drake"
|
|
|
|
/obj/effect/portal/permanent/one_way/recall/bubblegum
|
|
name = "Bubblegum Arena Portal"
|
|
desc = "The arena of the king of the slaughter demons. Doesn't he control all versions of himself?"
|
|
id = "vr bubblegum"
|
|
|
|
/obj/effect/portal/permanent/one_way/destroy/bubblegum
|
|
name = "Bubblegum Arena Exit Portal"
|
|
id = "vr bubblegum"
|
|
|
|
/obj/effect/portal/permanent/one_way/recall/colossus
|
|
name = "Colossus Arena Portal"
|
|
desc = "Colossus are quite dangerous in close quarters."
|
|
id = "vr colossus"
|
|
|
|
/obj/effect/portal/permanent/one_way/destroy/colossus
|
|
name = "Colossus Arena Exit Portal"
|
|
id = "vr colossus"
|
|
|
|
/obj/effect/portal/permanent/one_way/recall/hierophant
|
|
name = "Hierophant Arena Portal"
|
|
desc = "They call him the hierophant. He's the king of the rumba beat. When he plays the maracas you go Chick chicky boom Chick chicky boom."
|
|
id = "vr hierophant"
|
|
|
|
/obj/effect/portal/permanent/one_way/destroy/hierophant
|
|
name = "Hierophant Arena Exit Portal"
|
|
id = "vr hierophant"
|
|
|
|
/obj/effect/portal/permanent/one_way/recall/legion
|
|
name = "Legion Arena Portal"
|
|
desc = "The portal to the defender of the necropolis. He's mostly there for show."
|
|
id = "vr legion"
|
|
|
|
/obj/effect/portal/permanent/one_way/destroy/legion
|
|
name = "Legion Arena Exit Portal"
|
|
id = "vr legion"
|
|
|
|
/obj/effect/portal/permanent/one_way/recall/vr_boss_rush
|
|
name = "Boss Rush Portal"
|
|
desc = "You're not certain this is even possible."
|
|
id = "vr boss rush"
|
|
|
|
/obj/effect/portal/permanent/one_way/destroy/vr_boss_rush
|
|
name = "Boss Rush Exit Portal"
|
|
id = "vr boss rush"
|
|
|
|
/obj/effect/portal/permanent/one_way/keep/vr_boss_rush_continue
|
|
name = "Boss Rush Continue Portal"
|
|
desc = "You're halfway there. These next fights are even tougher, however."
|
|
id = "vr boss rush continue"
|
|
|
|
/obj/effect/portal/permanent/one_way/destroy/vr_boss_rush_continue
|
|
name = "Boss Rush Continue Exit Portal"
|
|
id = "vr boss rush continue"
|
|
|
|
/obj/structure/closet/crate/necropolis/vr_mining_gear
|
|
name = "armory chest"
|
|
desc = "Has some sick nasty respawning gear."
|
|
icon_state = "necrocrate"
|
|
resistance_flags = INDESTRUCTIBLE
|
|
anchored = TRUE
|
|
move_resist=INFINITY
|
|
var/respawn_loot = list() // put types and count in here
|
|
|
|
/obj/structure/closet/crate/necropolis/vr_mining_gear/dump_contents() // respawn loot on the chest
|
|
var/atom/L = drop_location()
|
|
for(var/type in respawn_loot)
|
|
var/count = respawn_loot[type]
|
|
if(!isnum(count))//Default to 1
|
|
count = 1
|
|
for(var/i = 1 to count)
|
|
new type(L)
|
|
|
|
/obj/structure/closet/crate/necropolis/vr_mining_gear/take_contents() // delete loot on the chest
|
|
var/atom/L = drop_location()
|
|
for(var/atom/movable/AM in L)
|
|
if(AM == src || isliving(AM))
|
|
continue
|
|
qdel(AM)
|
|
|
|
/obj/structure/closet/crate/necropolis/vr_mining_gear/armor
|
|
name = "Armor Chest"
|
|
desc = "Contains an assortment of lavaland armors."
|
|
respawn_loot = list(
|
|
/obj/item/clothing/suit/hooded/cloak/drake=1,
|
|
/obj/item/clothing/suit/space/hostile_environment=1,
|
|
/obj/item/clothing/head/helmet/space/hostile_environment=1,
|
|
/obj/item/clothing/suit/space/hardsuit/cult=1,
|
|
/obj/item/clothing/suit/space/hardsuit/ert/paranormal/beserker=1,
|
|
/obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor=1,
|
|
/obj/item/stack/sheet/animalhide/goliath_hide=6)
|
|
|
|
/obj/structure/closet/crate/necropolis/vr_mining_gear/accelerator
|
|
name = "Kinetic Accelerator Chest"
|
|
desc = "Contains an assortment of kinetic accelerator equipment."
|
|
respawn_loot = list(
|
|
/obj/item/gun/energy/kinetic_accelerator=1,
|
|
/obj/item/borg/upgrade/modkit/lifesteal=1,
|
|
/obj/item/borg/upgrade/modkit/aoe/mobs=1,
|
|
/obj/item/borg/upgrade/modkit/tracer=1,
|
|
/obj/item/borg/upgrade/modkit/tracer/adjustable=1,
|
|
/obj/item/borg/upgrade/modkit/chassis_mod=1,
|
|
/obj/item/borg/upgrade/modkit/chassis_mod/orange=1,
|
|
/obj/item/borg/upgrade/modkit/aoe/turfs/andmobs=1,
|
|
/obj/item/borg/upgrade/modkit/cooldown/repeater=1,
|
|
/obj/item/borg/upgrade/modkit/resonator_blasts=1,
|
|
/obj/item/borg/upgrade/modkit/bounty=1,
|
|
/obj/item/borg/upgrade/modkit/range=3,
|
|
/obj/item/borg/upgrade/modkit/damage=3,
|
|
/obj/item/borg/upgrade/modkit/cooldown=3)
|
|
|
|
/obj/structure/closet/crate/necropolis/vr_mining_gear/crusher
|
|
name = "Kinetic Crusher Chest"
|
|
desc = "Contains an assortment of kinetic crusher equipment."
|
|
respawn_loot = list(
|
|
/obj/item/twohanded/required/kinetic_crusher=1,
|
|
/obj/item/crusher_trophy/vortex_talisman=1,
|
|
/obj/item/crusher_trophy/demon_claws=1,
|
|
/obj/item/crusher_trophy/tail_spike=1,
|
|
/obj/item/crusher_trophy/miner_eye=1,
|
|
/obj/item/crusher_trophy/legion_skull=1,
|
|
/obj/item/crusher_trophy/goliath_tentacle=1,
|
|
/obj/item/crusher_trophy/blaster_tubes/magma_wing=1,
|
|
/obj/item/crusher_trophy/watcher_wing=1,
|
|
/obj/item/crusher_trophy/blaster_tubes=1)
|
|
|
|
/obj/structure/closet/crate/necropolis/vr_mining_gear/healing
|
|
name = "Healing Chest"
|
|
desc = "Contains an assortment of healing items."
|
|
respawn_loot = list(
|
|
/obj/item/reagent_containers/hypospray/medipen/survival=1,
|
|
/obj/item/storage/firstaid/brute=1,
|
|
/obj/item/hivelordstabilizer=3,
|
|
/obj/item/organ/regenerative_core/legion=3)
|
|
|
|
/obj/structure/closet/crate/necropolis/vr_mining_gear/food
|
|
name = "Food Chest"
|
|
desc = "Fresh from the virtual cafeteria."
|
|
respawn_loot = list(
|
|
/obj/item/reagent_containers/food/snacks/donkpocket/warm=5)
|
|
|
|
/obj/structure/closet/crate/necropolis/vr_mining_gear/misc
|
|
name = "Miscellaneous Chest"
|
|
desc = "Contains an assortment of random lavaland items."
|
|
respawn_loot = list(
|
|
/obj/item/warp_cube/red=1,
|
|
/obj/item/reagent_containers/glass/bottle/potion/flight=1,
|
|
/obj/item/organ/heart/cursed/wizard=1,
|
|
/obj/item/immortality_talisman=1,
|
|
/obj/item/book/granter/spell/summonitem=1,
|
|
/obj/item/extinguisher=1)
|
|
|
|
/datum/component/spawner/megafauna
|
|
var/spawn_wait_time = 150 // time to next spawn when the megafauna dies, 15 seconds
|
|
var/initial_spawned = FALSE // so we don't clear the arena and open the door on the initial spawn
|
|
var/nest_range = 10
|
|
|
|
/datum/component/spawner/megafauna/try_spawn_mob()
|
|
STOP_PROCESSING(SSprocessing, src)
|
|
if(spawned_mobs.len < max_mobs && initial_spawned)
|
|
var/obj/structure/spawner/megafauna/MS = parent
|
|
MS.cleanup_arena()
|
|
spawn_delay = world.time + spawn_wait_time
|
|
var/turf/check = get_ranged_target_turf(get_turf(MS), SOUTH, nest_range + 1)
|
|
if(istype(check, /turf/closed/indestructible/fakedoor))
|
|
check.ChangeTurf(/turf/open/floor/plating/asteroid/basalt/lava_land_surface)
|
|
sleep(spawn_wait_time)
|
|
check.ChangeTurf(/turf/closed/indestructible/fakedoor)
|
|
else
|
|
sleep(spawn_wait_time)
|
|
. = ..()
|
|
initial_spawned = TRUE
|
|
START_PROCESSING(SSprocessing, src)
|
|
|
|
/obj/structure/spawner/megafauna
|
|
name = "generic megafauna spawner"
|
|
desc = "Literally does nothing."
|
|
resistance_flags = INDESTRUCTIBLE
|
|
move_resist = INFINITY
|
|
max_mobs = 1
|
|
icon = 'icons/mob/nest.dmi'
|
|
spawn_text = "appears onto"
|
|
density = FALSE
|
|
spawner_type = /datum/component/spawner/megafauna
|
|
var/nest_range = 10
|
|
|
|
/obj/structure/spawner/megafauna/proc/cleanup_arena()
|
|
for(var/obj/effect/decal/B in urange(nest_range, src))
|
|
qdel(B) // go away blood and garbage shit
|
|
|
|
/obj/structure/spawner/megafauna/blood_drunk
|
|
name = "drunken beacon"
|
|
desc = "Creates holographic versions of a blood drunken miner."
|
|
icon_state = "blood_drunk"
|
|
mob_types = list(/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/virtual)
|
|
|
|
/obj/structure/spawner/megafauna/dragon
|
|
name = "flame beacon"
|
|
desc = "Creates holographic versions of a fire breathing drake."
|
|
icon_state = "dragon"
|
|
mob_types = list(/mob/living/simple_animal/hostile/megafauna/dragon/virtual)
|
|
|
|
/obj/structure/spawner/megafauna/bubblegum
|
|
name = "bloody beacon"
|
|
desc = "Creates holographic versions of the king of the slaughter demons."
|
|
icon_state = "bubblegum"
|
|
mob_types = list(/mob/living/simple_animal/hostile/megafauna/bubblegum/virtual)
|
|
|
|
/obj/structure/spawner/megafauna/colossus
|
|
name = "radiant beacon"
|
|
desc = "Creates holographic versions of a godlike creature."
|
|
icon_state = "colossus"
|
|
mob_types = list(/mob/living/simple_animal/hostile/megafauna/colossus/virtual)
|
|
|
|
/obj/structure/spawner/megafauna/hierophant
|
|
name = "beacon beacon"
|
|
desc = "Creates holographic versions of a destructive magical club."
|
|
icon_state = "hierophant"
|
|
mob_types = list(/mob/living/simple_animal/hostile/megafauna/hierophant/virtual)
|
|
|
|
/obj/structure/spawner/megafauna/legion
|
|
name = "skull beacon"
|
|
desc = "Creates holographic versions of a gigantic skull demon guarding the necropolis."
|
|
icon_state = "legion"
|
|
mob_types = list(/mob/living/simple_animal/hostile/megafauna/legion/virtual)
|
|
|
|
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/virtual
|
|
name = "blood-drunk miner hologram"
|
|
desc = "A holographic miner, eternally hunting."
|
|
crusher_loot = list()
|
|
loot = list()
|
|
true_spawn = 0
|
|
|
|
/mob/living/simple_animal/hostile/megafauna/dragon/virtual
|
|
name = "ash drake hologram"
|
|
desc = "A holographic dragon, once weak, now fierce."
|
|
del_on_death = 1 // goodbye corpse
|
|
crusher_loot = list()
|
|
loot = list()
|
|
true_spawn = 0
|
|
|
|
/mob/living/simple_animal/hostile/megafauna/bubblegum/virtual
|
|
name = "bubblegum hologram"
|
|
desc = "A holographic version of the king of the slaughter demons. You feel something oddly real staring back at you."
|
|
crusher_loot = list()
|
|
loot = list()
|
|
true_spawn = 0
|
|
|
|
/mob/living/simple_animal/hostile/megafauna/colossus/virtual
|
|
name = "colossus hologram"
|
|
desc = "A holographic god. One of the strongest creatures that has ever lived."
|
|
crusher_loot = list()
|
|
loot = list()
|
|
true_spawn = 0
|
|
|
|
/mob/living/simple_animal/hostile/megafauna/hierophant/virtual
|
|
name = "hierophant hologram"
|
|
desc = "A holographic club. It's said to wipe from existence those who fall to its rhythm."
|
|
crusher_loot = list()
|
|
loot = list()
|
|
true_spawn = 0
|
|
|
|
/mob/living/simple_animal/hostile/megafauna/legion/virtual
|
|
name = "Legion Hologram"
|
|
desc = "One of many... holograms."
|
|
crusher_loot = list()
|
|
loot = list()
|
|
true_spawn = 0
|