Adds a modular bitrunning map, changes safehouse spawns (#79937)

## About The Pull Request
Primarily, this adds one new map to bitrunning that uses modular rooms.

<details>
<summary>pictures</summary>


![image](https://github.com/tgstation/tgstation/assets/42397676/48d78e05-1134-477c-a269-a4b71064058b)

![Screenshot 2023-11-25
133937](https://github.com/tgstation/tgstation/assets/42397676/851d6235-e939-465c-92e5-830886d50d9c)


![image](https://github.com/tgstation/tgstation/assets/42397676/6094dae6-fc3b-4cc4-9fd5-d7dd6d944cee)

</details>

I also added in some changes:
- Safehouses are now loaded using the modular map system rather than the
bespoke solution qservers had.
- Lowers the difficulty of psyker shuffle (which I felt was a little too
nightmarish) and boosts its rewards.
## Why It's Good For The Game
New maps
More integration with prior systems
## Changelog
🆑
add: Added a new modular bitrunning domain - Starfront Saloon.
balance: Psyker shuffle domain was made slightly easier and has been
given more rewards.
/🆑
This commit is contained in:
Jeremiah
2023-12-01 01:06:21 +01:00
committed by GitHub
parent 96f19b962a
commit 7cb5738fcb
58 changed files with 2054 additions and 441 deletions
@@ -7,4 +7,3 @@
key = "ash_drake"
map_name = "ash_drake"
reward_points = BITRUNNER_REWARD_MEDIUM
safehouse_path = /datum/map_template/safehouse/lavaland_boss
@@ -6,7 +6,6 @@
Maybe a few drinks of liquid charm will get the spirits up. As the saying goes, if you can't beat 'em, join 'em."
key = "beach_bar"
map_name = "beach_bar"
safehouse_path = /datum/map_template/safehouse/mine
/datum/lazy_template/virtual_domain/beach_bar/setup_domain(list/created_atoms)
. = ..()
@@ -7,4 +7,3 @@
key = "blood_drunk_miner"
map_name = "blood_drunk_miner"
reward_points = BITRUNNER_REWARD_MEDIUM
safehouse_path = /datum/map_template/safehouse/lavaland_boss
@@ -5,7 +5,6 @@
key = "breeze_bay"
map_name = "breeze_bay"
reward_points = BITRUNNER_REWARD_LOW
safehouse_path = /datum/map_template/safehouse/wood
/datum/lazy_template/virtual_domain/breeze_bay/setup_domain(list/created_atoms)
. = ..()
@@ -8,4 +8,3 @@
key = "bubblegum"
map_name = "bubblegum"
reward_points = BITRUNNER_REWARD_HIGH
safehouse_path = /datum/map_template/safehouse/lavaland_boss
@@ -10,4 +10,3 @@
key = "clown_planet"
map_name = "clown_planet"
reward_points = BITRUNNER_REWARD_LOW
safehouse_path = /datum/map_template/safehouse/mine
@@ -7,5 +7,3 @@
key = "colossus"
map_name = "colossus"
reward_points = BITRUNNER_REWARD_HIGH
safehouse_path = /datum/map_template/safehouse/lavaland_boss
@@ -6,7 +6,6 @@
I bet there's a way to move it myself."
key = "gondola_asteroid"
map_name = "gondola_asteroid"
safehouse_path = /datum/map_template/safehouse/shuttle_space
/// Very pushy gondolas, great for moving loot crates.
/obj/structure/closet/crate/secure/bitrunning/encrypted/gondola
@@ -7,4 +7,3 @@
key = "hierophant"
map_name = "hierophant"
reward_points = BITRUNNER_REWARD_HIGH
safehouse_path = /datum/map_template/safehouse/lavaland_boss
@@ -15,7 +15,6 @@
/datum/modular_mob_segment/hivebots_strong
)
reward_points = BITRUNNER_REWARD_LOW
safehouse_path = /datum/map_template/safehouse/shuttle
// ID Trims
/datum/id_trim/factory
@@ -4,9 +4,8 @@
desc = "Sneak into an abandoned corner of the virtual world, where they store all of the crates. \
Warning -- Virtual domain does not support visual display. This mission must be completed using echolocation."
difficulty = BITRUNNER_DIFFICULTY_MEDIUM
forced_outfit = /datum/outfit/echolocator
help_text = "Getting used to echolocation may be difficult. Remember to walk slowly, and carefully inspect every crate you come across."
key = "psyker_shuffle"
map_name = "psyker_shuffle"
reward_points = BITRUNNER_REWARD_MEDIUM
safehouse_path = /datum/map_template/safehouse/bathroom
forced_outfit = /datum/outfit/echolocator
reward_points = BITRUNNER_REWARD_HIGH
@@ -4,11 +4,10 @@
desc = "Another neglected corner of the virtual world. This one had to be abandoned due to zombie virus. \
Warning -- Virtual domain does not support visual display. This mission must be completed using echolocation."
difficulty = BITRUNNER_DIFFICULTY_MEDIUM
extra_loot = list(/obj/item/radio/headset/psyker = 1) //Looks cool, might make your local burdened chaplain happy.
forced_outfit = /datum/outfit/echolocator
help_text = "This once-beloved virtual domain has been corrupted by a virus, rendering it unstable, full of holes, and full of ZOMBIES! \
There should be a Mystery Box nearby to help get you armed. Get armed, and finish what the cyber-police started!"
key = "psyker_zombies"
map_name = "psyker_zombies"
reward_points = BITRUNNER_REWARD_HIGH
safehouse_path = /datum/map_template/safehouse/bathroom
forced_outfit = /datum/outfit/echolocator
extra_loot = list(/obj/item/radio/headset/psyker = 1) //Looks cool, might make your local burdened chaplain happy.
@@ -5,13 +5,12 @@
help_text = "Ever heard of 'Snakes and Ladders'? It's like that, but with \
instead of ladders its stairs and instead of snakes its a steep drop down a \
cliff into rough rocks or liquid plasma."
extra_loot = list(/obj/item/clothing/suit/costume/snowman = 2)
difficulty = BITRUNNER_DIFFICULTY_LOW
extra_loot = list(/obj/item/clothing/suit/costume/snowman = 2)
forced_outfit = /datum/outfit/job/virtual_domain_iceclimber
key = "stairs_and_cliffs"
map_name = "stairs_and_cliffs"
reward_points = BITRUNNER_REWARD_MEDIUM
safehouse_path = /datum/map_template/safehouse/ice
/turf/open/cliff/snowrock/virtual_domain
name = "icy cliff"
@@ -0,0 +1,14 @@
/datum/lazy_template/virtual_domain/starfront_saloon
name = "Starfront Saloon"
cost = BITRUNNER_COST_MEDIUM
desc = "Looks like you stepped onto the wrong street, partner. Hope you brought your gunslinging skills."
difficulty = BITRUNNER_DIFFICULTY_HIGH
help_text = "One of these rooms has the cache we're looking for. Find it and get out."
is_modular = TRUE
key = "starfront_saloon"
map_name = "starfront_saloon"
mob_modules = list(
/datum/modular_mob_segment/syndicate_team,
/datum/modular_mob_segment/syndicate_elite,
)
reward_points = BITRUNNER_REWARD_HIGH
@@ -12,4 +12,3 @@
map_name = "syndicate_assault"
mob_modules = list(/datum/modular_mob_segment/syndicate_team)
reward_points = BITRUNNER_REWARD_MEDIUM
safehouse_path = /datum/map_template/safehouse/shuttle
@@ -4,7 +4,6 @@
key = "test_only"
map_name = "test_only"
test_only = TRUE
safehouse_path = /datum/map_template/safehouse/test_only
/datum/lazy_template/virtual_domain/test_only/expensive
key = "test_only_expensive"
@@ -3,8 +3,7 @@
cost = BITRUNNER_COST_EXTREME
desc = "Suspended in the silent void of space, the Neon Relic is a haunting echo of a retro-futuristic era. Hang out, enjoy the view."
difficulty = BITRUNNER_DIFFICULTY_NONE
extra_loot = list(/obj/item/stack/spacecash/c500 = 3)
extra_loot = list(/obj/item/stack/spacecash/c500 = 4)
key = "vaporwave"
map_name = "vaporwave"
reward_points = BITRUNNER_REWARD_EXTREME
safehouse_path = /datum/map_template/safehouse/shuttle_space
@@ -7,5 +7,3 @@
key = "wendigo"
map_name = "wendigo"
reward_points = BITRUNNER_REWARD_HIGH
safehouse_path = /datum/map_template/safehouse/lavaland_boss
@@ -11,4 +11,3 @@
map_name = "xeno_nest"
mob_modules = list(/datum/modular_mob_segment/xenos)
reward_points = BITRUNNER_REWARD_LOW
safehouse_path = /datum/map_template/safehouse/shuttle
@@ -1,54 +0,0 @@
/**
* # Safe Houses
* The starting point for virtual domains.
* Create your own: Read the readme file in the '_maps/safehouses' folder.
*/
/datum/map_template/safehouse
name = "virtual domain: safehouse"
/// The map file to load
var/filename = "den"
/datum/map_template/safehouse/New()
mappath = "_maps/safehouses/[filename].dmm"
..(path = mappath)
/datum/map_template/safehouse/test_only
filename = "test_only_safehouse.dmm"
/// The default safehouse map template.
/datum/map_template/safehouse/den
filename = "den"
/datum/map_template/safehouse/wood
filename = "wood"
/datum/map_template/safehouse/dig
filename = "dig"
/datum/map_template/safehouse/shuttle
filename = "shuttle"
// Has space tiles on the four corners.
/datum/map_template/safehouse/shuttle_space
filename = "shuttle_space"
/datum/map_template/safehouse/mine
filename = "mine"
// Comes preloaded with mining combat gear.
/datum/map_template/safehouse/lavaland_boss
filename = "lavaland_boss"
// Chill out
/datum/map_template/safehouse/ice
filename = "ice"
/datum/map_template/safehouse/bathroom
filename = "bathroom"
/**
* Your safehouse here
* /datum/map_template/safehouse/your_type
* filename = "your_map"
*/
@@ -9,8 +9,6 @@
/// Cost of this map to load
var/cost = BITRUNNER_COST_NONE
/// The safehouse to load into the map
var/datum/map_template/safehouse/safehouse_path = /datum/map_template/safehouse/den
/// Any outfit that you wish to force on avatars. Overrides preferences
var/datum/outfit/forced_outfit
/// The description of the map for the console UI