Files
Bloop 183c5af2e4 Adds flag for virtual areas, fixes being able to send funds from virtualspace to real accounts (#94071)
## About The Pull Request

Fixes https://github.com/tgstation/tgstation/issues/90641
Fixes https://github.com/tgstation/tgstation/issues/88366

Eliminates worries over virtualspace currency being sent to real
accounts.

When I was looking into why there were no flags for bitrunning areas.
Then I saw this mess:

<img width="929" height="889" alt="Code_2we2QjDyFp"
src="https://github.com/user-attachments/assets/8a807bfe-b566-4057-a8ea-2b306325687d"
/>

Not having enough space / being too lazy to refactor this is a silly
reason to not include flags for something like these virtual areas where
it can be quite helpful. Fortunately I am not too lazy ~~in this
moment~~ so here we go:

It was fairly logical to move over some of these to a separate flag,
which I've called `area_flags_mapping` since they pertain to maploading
things and terrain generation mostly. `area_flags` stays reserved for
general properties and now has more room than it did before for you
people to fill it with.

In doing this it's also neatened up the code quit a bit, as UNIQUE_AREA
was kind of everywhere and now that it's implied by default less areas
need to have it defined (or explicitly un-defined).

<details> <summary> Working as intended </summary>

<img width="787" height="448" alt="dreamseeker_p0Qts36tG1"
src="https://github.com/user-attachments/assets/25056f34-8d43-4be2-a293-e53df7a7d1db"
/>

<img width="383" height="59" alt="dreamseeker_Ek7TXCcpbA"
src="https://github.com/user-attachments/assets/89622974-9467-4cdb-8345-d684f7c9004b"
/>

</details>

## Why It's Good For The Game

Fixes an exploit, improves the area flags situation slightly.

## Changelog

🆑
fix: you can no longer send money from virtualspace to a real account
code: adds a flag for virtual areas so they can easily be checked, as
well as an easy helper proc, 'is_area_virtual(your_area)'
/🆑
2025-11-22 12:24:41 -07:00

111 lines
3.4 KiB
Plaintext

/obj/effect/landmark/basketball
name = "Basketball Map Spawner"
/obj/effect/landmark/basketball/team_spawn
name = "Basketball Team Spawner"
var/game_id = "basketball"
// locations where players for the home team will spawn
/obj/effect/landmark/basketball/team_spawn/home
name = "Home Team Spawn"
/obj/effect/landmark/basketball/team_spawn/home_hoop
name = "Basketball Home Hoop Spawner"
// locations where players for the away team will spawn
/obj/effect/landmark/basketball/team_spawn/away
name = "Away Team Spawn"
/obj/effect/landmark/basketball/team_spawn/away_hoop
name = "Basketball Away Hoop Spawner"
/obj/effect/landmark/basketball/team_spawn/referee
name = "Referee Spawn"
/area/centcom/basketball
name = "Basketball Minigame"
icon_state = "b_ball"
requires_power = FALSE
static_lighting = FALSE
base_lighting_alpha = 255
default_gravity = STANDARD_GRAVITY
flags_1 = NONE
area_flags = NOTELEPORT | NO_DEATH_MESSAGE | BLOCK_SUICIDE
/datum/lazy_template/basketball
map_dir = "_maps/minigame/basketball"
place_on_top = TRUE
turf_reservation_type = /datum/turf_reservation/turf_not_baseturf
/// Map UI Name
var/name
/// Map Description
var/description = ""
/// The name of the basketball team
var/team_name
/// The basketball teams home stadium uniform
var/home_team_uniform
/datum/lazy_template/basketball/stadium
name = "Stadium"
description = "The homecourt for the Nanotrasen Basketball Department."
map_name = "stadium"
key = "stadium"
team_name = "Nanotrasen Basketball Department"
home_team_uniform = /datum/outfit/basketball/nanotrasen
/datum/lazy_template/basketball/lusty_xenomorphs
name = "Lusty Xenomorphs Stadium"
description = "The homecourt of the Lusty Xenomorphs."
map_name = "lusty_xenomorphs"
key = "lusty_xenomorphs"
team_name = "Lusty Xenomorphs"
home_team_uniform = /datum/outfit/basketball/lusty_xenomorphs
/datum/lazy_template/basketball/space_surfers
name = "Space Surfers Stadium"
description = "The homecourt of the Space Surfers."
map_name = "space_surfers"
key = "space_surfers"
team_name = "Space Surfers"
home_team_uniform = /datum/outfit/basketball/space_surfers
/datum/lazy_template/basketball/greytide_worldwide
name = "Greytide Worldwide Stadium"
description = "The homecourt of the Greytide Worldwide."
map_name = "greytide_worldwide"
key = "greytide_worldwide"
team_name = "Greytide Worldwide"
home_team_uniform = /datum/outfit/basketball/greytide_worldwide
/datum/lazy_template/basketball/ass_blast_usa
name = "Ass Blast USA Stadium"
description = "The homecourt of the Ass Blast USA."
map_name = "ass_blast_usa"
key = "ass_blast_usa"
team_name = "Ass Blast USA"
home_team_uniform = /datum/outfit/basketball/ass_blast_usa
/datum/lazy_template/basketball/soviet_bears
name = "Soviet Bears Stadium"
description = "The homecourt of the Soviet Bears."
map_name = "soviet_bear"
key = "soviet_bear"
team_name = "Soviet Bears"
home_team_uniform = /datum/outfit/basketball/soviet_bears
/datum/lazy_template/basketball/ash_gladiators
name = "Ash Gladiators Stadium"
description = "The homecourt of the Ash Gladiators."
map_name = "ash_gladiators"
key = "ash_gladiators"
team_name = "Ash Gladiators"
home_team_uniform = /datum/outfit/basketball/ash_gladiators
/datum/lazy_template/basketball/beach_bums
name = "Beach Bums Stadium"
description = "The homecourt of the Beach Bums."
map_name = "beach_bums"
key = "beach_bums"
team_name = "Beach Bums"
home_team_uniform = /datum/outfit/basketball/beach_bums