mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-15 12:11:45 +00:00
## About The Pull Request See changelog for shortlist 1. **Threat changes.** I was a bit unsatisfied with the rate of antag spawns. These have been increased considerably. The clamped probability has been increased from 1-10 to 5-15. The probability increases from 5 to 15 as domains are completed. Generally, in a standard round, the chance of spawning at least one antag should be around ~50% at 7 domains completed. Emagging a server doubles this rate. 2. **Map changes.** Starfront saloon was a cool idea on paper: A totally modular map. However, it looked very uninspired and was so much of a chore on the map loading system that it prompted players to admin help how long it took, thinking it was broken. I've removed the map. I have others I want to implement that don't look so bad. 3. **QoL changes**. Ghost observer experience is improved. Previously, you could click netpods to view their avatar, and now you can click the hololadder to return. I've included examine text to show this. The server's examine text will now also give you clues that it's emagged (ghost only). The examine text on hololadders has also been improved. 4. **Bitrunning antags.** These were designed as temporary, but they were everything but. Spawning as one would prevent your revival, which just isn't a good tradeoff for something that's going to get deleted in a minute. Now, this system uses temp bodies just like CTF, so you can return once you're dead. (exception: coming station side) 5. **Maps**: Syndicate assault is still one of my favorites, but there's cheesy exploits like instantly breaking the display case to lock down the ship, turning on turrets which are EXTRA lethal, etc. I've added some pistols to the closets and removed some of these exploits. 6. **Cooldown**: Yes, no one seems to upgrade these ever, and it proved a poor technique to encourage bitrunners to leave their rooms. I had other plans to encourage this, not included here, so I think lowering the cooldown time is beneficial. 3min -> 2min > [!NOTE] > File diff: removed a map ## Why It's Good For The Game Closes #83787 General updates and QoL for bitrunning to keep it fresh. I was quite disappointed with the scaling of threat, and most players haven't even seen bitrunning antags except when I admin spawn them. These numbers aren't hard set in my mind, and could be adjusted. I generally want bitrunning easier to access and more "temporary" which is in keeping with its design doc. ## Changelog 🆑 fix: Bitrunning made more illegal: Increased the rate at which antags spawn. fix: "Temporary" bitrunning antagonists and spawners are made actually temporary. You will return to your original body after death, just like CTF. add: Added more examine text for ghosts to bitrunning equipment. balance: Server cooldown reduced by 1 minute at base level. add: As an observer, you can now switch views between station and virtual domain by clicking the hololadder and netpod respectively. del: Removed the starfront saloon BR map. fix: Syndicate assault map: Added pistols, reduced exploits. /🆑
39 lines
1.8 KiB
Plaintext
39 lines
1.8 KiB
Plaintext
/// Handles all special considerations for "virtual entities" such as bitrunning ghost roles or digital anomaly antagonists.
|
|
/datum/component/virtual_entity
|
|
///The cooldown for balloon alerts, so the player isn't spammed while trying to enter a restricted area.
|
|
COOLDOWN_DECLARE(OOB_cooldown)
|
|
|
|
/datum/component/virtual_entity/Initialize(obj/machinery/quantum_server)
|
|
. = ..()
|
|
|
|
if(quantum_server.obj_flags & EMAGGED)
|
|
jailbreak_mobs() //This just sends a message and self-deletes, a bit messy but it works.
|
|
return
|
|
|
|
RegisterSignal(parent, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(on_parent_pre_move))
|
|
RegisterSignal(quantum_server, COMSIG_ATOM_EMAG_ACT, PROC_REF(jailbreak_mobs))
|
|
|
|
///Prevents entry to a certain area if it has flags preventing virtual entities from entering.
|
|
/datum/component/virtual_entity/proc/on_parent_pre_move(atom/movable/source, atom/new_location)
|
|
SIGNAL_HANDLER
|
|
|
|
var/area/location_area = get_area(new_location)
|
|
if(!location_area)
|
|
stack_trace("Virtual entity entered a location with no area!")
|
|
return
|
|
|
|
if(location_area.area_flags & VIRTUAL_SAFE_AREA)
|
|
source.balloon_alert(source, "out of bounds!")
|
|
COOLDOWN_START(src, OOB_cooldown, 2 SECONDS)
|
|
return COMPONENT_MOVABLE_BLOCK_PRE_MOVE
|
|
|
|
///Self-destructs the component, allowing free-roam by all entities with this restriction.
|
|
/datum/component/virtual_entity/proc/jailbreak_mobs()
|
|
SIGNAL_HANDLER
|
|
|
|
to_chat(parent, span_boldannounce("You shiver for a moment with a sense of clarity you haven't felt before."))
|
|
to_chat(parent, span_notice("You could go <i>anywhere</i>, do <i>anything</i>! You could leave this simulation right now if you wanted!"))
|
|
to_chat(parent, span_danger("But be warned, quantum entanglement will interfere with any previous lives."))
|
|
to_chat(parent, span_notice("You'll have just one chance to go nova, and there's no turning back."))
|
|
qdel(src)
|