Commit Graph

6814 Commits

Author SHA1 Message Date
nevimer
f9e9525dc8 Merge remote-tracking branch 'skrat/master' into upstream-jul-24
# Conflicts:
#	_maps/map_files/Deltastation/DeltaStation2.dmm
#	_maps/map_files/tramstation/tramstation.dmm
2023-07-24 20:11:34 -04:00
SkyratBot
38dc811b6b [MIRROR] NEW STATION TRAIT: Radioactive Nebula [MDB IGNORE] (#22614)
* NEW STATION TRAIT: Radioactive Nebula

* Update job_boxes.dm

* Increase the intensity increment time so that shields will last longer

---------

Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-07-24 02:07:40 -04:00
SkyratBot
c19c197b95 [MIRROR] Fix APC related issues [MDB IGNORE] (#22635)
* Fix APC related issues (#77005)

## About The Pull Request
Fixes a bunch of stuff broken by #76822, including APC control console,
malf blackout ability, shunted malf pinpointing, Admin APC recharge and
others.
## Why It's Good For The Game
Yes.
## Changelog
:cl:Thebleh
fix: Fixed several APC related issues.
/🆑

* Fix APC related issues

---------

Co-authored-by: thebleh <43266738+rdragan@users.noreply.github.com>
2023-07-22 22:41:06 -04:00
Pinta
4d7ba6ebcb [MANUAL MIRROR] Reworks Duffel Bags (Zippers) (#22363)
* Reworks Duffel Bags (Zippers)

* Update backpack.dm

* Duiffel Spotfix

* error fixes

* Update backpack.dm

* Update code/modules/antagonists/cult/cult.dm

* Update backpack.dm

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-07-20 23:12:57 -04:00
nevimer
29d9d1a49f Merge remote-tracking branch 'skrat/master' into upstream-remake-stop-commiting-to-master
# Conflicts:
#	.github/CODEOWNERS
#	code/__DEFINES/footsteps.dm
#	code/game/objects/items/spear.dm
#	code/game/objects/structures/crates_lockers/closets/secure/security.dm
#	code/modules/language/language_holder.dm
#	code/modules/mob/living/carbon/human/species_types/abductors.dm
#	code/modules/mob/living/carbon/human/species_types/ethereal.dm
#	code/modules/mob/living/carbon/human/species_types/felinid.dm
#	code/modules/mob/living/carbon/human/species_types/lizardpeople.dm
#	code/modules/mob/living/carbon/human/species_types/plasmamen.dm
#	code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm
#	code/modules/projectiles/ammunition/energy/laser.dm
#	modular_skyrat/modules/altborgs/code/robot_model.dm
#	modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage.dm
#	modular_skyrat/modules/examinemore/code/examine_more.dm
#	modular_skyrat/modules/opposing_force/code/equipment/loadouts.dm
2023-07-19 02:18:09 -04:00
Zonespace
9e515acf89 Antag Revamp*: The Nuclear-ish Option (#18110)
* awaiting maint talk

* all quiet on the western front

* guh

* Update modular_skyrat/modules/opposing_force/code/items.dm

Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>

* Update antagonist_powers.dm

* Update OpposingForcePanel.js

* heretic clarity

* h

* Update examine_more.dm

* FUCK

* hopefully works

* a

* works, maybe???

* a

* part 1 of getting CI to shut the fuck up

* lazy but works...?

* TM STUFF

* fix and log

* clock

* cwc

* -ist

* Update modular_skyrat/modules/opposing_force/code/equipment/antagonist_powers.dm

Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>

* TM stuff, again

* fix?

* hybrid system changes

* zonenotes are gone

---------

Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2023-07-16 17:14:32 -04:00
SkyratBot
0a03e8a2a7 [MIRROR] Machine list is now stored in SSmachines | Remove excessive use of global lists for specific machine types [MDB IGNORE] (#22481)
* Machine list is now stored in SSmachines | Remove excessive use of global lists for specific machine types

* Resolve merge conflicts

* Modular adjustments

* destroy this double return on destroy

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-15 22:51:23 -04:00
Zergspower
bb3d041572 [Manual Mirror Fix] Removes shitty "status" variable on organs, makes them use organ_flag (#22480)
* Removes shitty "status" variable on organs, makes them use organ_flags instead (#76350)

Title.

Seriously this shit pisses me off, why are ORGAN_SYNTHETIC and
ORGAN_ROBOTIC two different things?

not applicable unless i fucked up

---------

Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>

* Modulars

* Some merge skew

* More diffs

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-15 17:27:49 -04:00
SkyratBot
f660441c43 [MIRROR] Post-revs win now ends the shift. [MDB IGNORE] (#22398)
* Post-revs win now ends the shift.

* Update revolution.dm

---------

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
2023-07-13 12:05:44 -07:00
🦎
cf3c685bb7 Merge remote-tracking branch 'rodent/master' into 22-june-2023
# Conflicts:
#	.github/CODEOWNERS
2023-06-22 16:39:02 -04:00
SkyratBot
6dfe17306c [MIRROR] Pulls apart the vestiges of components still hanging onto signals [MDB IGNORE] (#21738)
* Pulls apart the vestiges of components still hanging onto signals

* update modular

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-06-18 13:18:23 +00:00
nevimer
f6c63bdea1 Merge branch 'master' of https://github.com/bubberstation/bubberstation into overlay_june_13_2023
# Conflicts:
#	.github/CODEOWNERS
#	code/modules/cargo/packs/security.dm
#	code/modules/modular_computers/file_system/programs/jobmanagement.dm
#	code/modules/pai/pai.dm
#	modular_skyrat/master_files/code/datums/id_trim/jobs.dm
#	modular_skyrat/master_files/code/datums/traits/neutral.dm
#	modular_skyrat/modules/loadouts/loadout_items/donator/personal/donator_personal.dm
2023-06-13 20:04:57 -04:00
SkyratBot
79febdf95d [MIRROR] New planetary exclusive random event/unfavorable situation, Chasmic Earthquake [MDB IGNORE] (#21778)
* New planetary exclusive random event/unfavorable situation, Chasmic Earthquake (#75864)

## About The Pull Request

https://github.com/tgstation/tgstation/assets/28870487/2451bc69-db1e-420d-9a18-2f899ca65427

This introduces a new unfavorable situation (non-antagonist random
events that dynamic triggers under certain circumstances), restricted to
planetary maps (Icebox). An earthquake occurs, felt by everyone on the
map, forming a fault that tears the a hole somewhere on the station.

The fault zone is indicated by shaking tiles, which gives a chance
(about 30 seconds) for you to move your machinery/property/crewmembers
out of the way. If you're on those tiles when the fault forms, get ready
to take a nasty fall.

Anything caught in the fault zone as it collapses inward will be
destroyed, violently, _before_ being dropped down into the z-level
below.

![image](https://github.com/tgstation/tgstation/assets/28870487/56916c9f-c8da-4ffb-9d8b-7e940e92bbc2)

These can also happen as a random event, however their rarity is on-par
with that of a meteor storm.

This also adds a helper for finding a midpoint turf between two provided
turfs, thanks to ZephyrTFA.

This idea basically possessed me over the course of a few days, and I
found myself unable to work on anything else until I had it complete.
I'm glad its done.
## Why It's Good For The Game

Gives Icebox its own big "environmental disaster" event. I'm hoping it
isn't received as being too destructive, but mind that this is meant to
be an equal to the dreaded meteor storm.

Also makes it so that unfavorable events aren't a coinflip between a
portal storm/rod on planetary maps.
## Changelog
🆑 Rhials
add: Chasmic Earthquake random event, exclusive to Icebox. Tears a huge
chasm in the hull of the station. Watch out for shaking tiles!
sound: Adds sounds for distant rumbling, metal creaking, and rubble
shaking.
imageadd: Achievement icon for getting sucked up in an earthquake chasm.
/🆑

* New planetary exclusive random event/unfavorable situation, Chasmic Earthquake

---------

Co-authored-by: Rhials <Datguy33456@gmail.com>
2023-06-11 20:02:20 -07:00
SkyratBot
707782e021 [MIRROR] Fixes forced latejoin rulesets [MDB IGNORE] (#21666)
* Fixes forced latejoin rulesets (#75836)

## About The Pull Request

Fixes admin forced rulesets not disabling (#75833)

## Changelog

🆑 Melbert
fix: Admin forced latejoins reset correctly after next latejoin
/🆑

* Fixes forced latejoin rulesets

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-06-07 15:50:54 +02:00
SkyratBot
33adb63d55 [MIRROR] Re-pr of #70522 "Space Dragon Update: Up Close and Personal" [MDB IGNORE] (#21553)
* Re-pr of #70522 "Space Dragon Update: Up Close and Personal"

* Update mind_linker.dm

* Update hivemind.dm

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-06-05 20:56:31 -07:00
KathrinBailey
1cb3b97fb3 Emergency threat curve adjustment
We've successfully lowered threat by altering the threat curve centre before, this commit redoes that. It's needed as rounds have been utter crazy, one or two seccies have to deal with not only equal numbers of traitors, but sentient diseases, heretics and other stuff on top.
2023-05-24 04:29:00 +01:00
SkyratBot
17534b3e7f [MIRROR] Ashwalker Tribe roundend reporting revamp [MDB IGNORE] (#21336)
* Ashwalker Tribe roundend reporting revamp (#75506)

## About The Pull Request

This PR changes how ashwalkers are listed in the roundend report.
Originally, they would be listed as individual "other" antagonists,
which isn't a particularly great way of handling it and leads to
weirdness like this:

![image](https://github.com/tgstation/tgstation/assets/28870487/c00a2cfc-3f08-46f6-a290-ef632cac0371)

_(That's an authentic ninja greentext from a live server, by the by)_

Now, the roundend report gives each ashwalker team their own section
within the report, whether or not they succeeded, and some bonus stats.

![image](https://github.com/tgstation/tgstation/assets/28870487/c2dc3c00-62a7-4784-90be-5a8bb5cc5a50)

This new roundend report handling also supports having multiple
Necropolises (Necropoli?) in the same round. Each tribe has their stats
and success reported individually.

This also slightly modifies the protect_object objective, preventing
hard deletes when linked to objects that don't clear their own
references.

## Why It's Good For The Game

Gives Ashwalkers a much better roundend report, and handles how the
reporting is done in a much more sensible manner.

Reduces how much space that large nests take up with their individual
listings.
## Changelog
🆑 Rhials
qol: Ashwalker roundend reporting has been revamped. Glory to the
Necropolis!
/🆑

* Ashwalker Tribe roundend reporting revamp

---------

Co-authored-by: Rhials <Datguy33456@gmail.com>
2023-05-22 12:06:13 +00:00
nevimer
424ed3d160 Revert "Revert "Merge upstream""
This reverts commit e6bb4098c4.

# Conflicts:
#	_maps/RandomRuins/LavaRuins/skyrat/lavaland_surface_syndicate_base1_skyrat.dmm
#	_maps/RandomRuins/SpaceRuins/bus.dmm
#	_maps/RandomZLevels/blackmesa.dmm
#	_maps/map_files/generic/CentCom_skyrat_z2.dmm
#	_maps/shuttles/skyrat/goldeneye_cruiser.dmm
#	_maps/templates/lazy_templates/wizard_den.dmm
#	code/__DEFINES/callbacks.dm
#	code/datums/components/transforming.dm
#	code/datums/elements/bane.dm
#	code/datums/votes/map_vote.dm
#	code/game/objects/items/AI_modules/hacked.dm
#	code/game/objects/items/food/egg.dm
#	code/game/objects/items/stacks/sheets/glass.dm
#	code/modules/antagonists/fugitive/hunters/hunter.dm
#	code/modules/antagonists/traitor/objectives/final_objective/final_objective.dm
#	code/modules/antagonists/traitor/objectives/kidnapping.dm
#	code/modules/art/statues.dm
#	code/modules/events/ghost_role/changeling_event.dm
#	code/modules/events/spacevine.dm
#	code/modules/mining/machine_redemption.dm
#	code/modules/mob/living/simple_animal/friendly/farm_animals.dm
#	code/modules/mob_spawn/mob_spawn.dm
#	code/modules/projectiles/guns/ballistic/pistol.dm
#	code/modules/projectiles/guns/ballistic/rifle.dm
#	code/modules/uplink/uplink_items.dm
#	code/modules/vending/autodrobe.dm
#	html/changelogs/archive/2023-03.yml
#	icons/mob/clothing/feet.dmi
#	icons/mob/clothing/under/costume.dmi
#	icons/mob/inhands/clothing/shoes_lefthand.dmi
#	icons/mob/inhands/clothing/shoes_righthand.dmi
#	icons/mob/inhands/clothing/suits_lefthand.dmi
#	icons/mob/inhands/clothing/suits_righthand.dmi
#	icons/mob/species/human/human_face.dmi
#	icons/obj/clothing/shoes.dmi
#	icons/obj/clothing/under/costume.dmi
#	modular_skyrat/master_files/code/datums/components/fullauto.dm
#	modular_skyrat/master_files/code/modules/clothing/under/jobs/security.dm
#	modular_skyrat/master_files/code/modules/projectiles/guns/gun.dm
#	modular_skyrat/master_files/icons/mob/clothing/under/civilian.dmi
#	modular_skyrat/master_files/icons/mob/clothing/under/civilian_digi.dmi
#	modular_skyrat/modules/aesthetics/guns/code/guns.dm
#	modular_skyrat/modules/aesthetics/guns/icons/guns.dmi
#	modular_skyrat/modules/blueshield/code/blueshield.dm
#	modular_skyrat/modules/customization/modules/clothing/under/misc.dm
#	modular_skyrat/modules/ghostcafe/code/ghost_role_spawners.dm
#	modular_skyrat/modules/gunsgalore/icons/guns/gunsgalore_guns40x32.dmi
#	modular_skyrat/modules/manufacturer_examine/code/gun_company_additions.dm
#	modular_skyrat/modules/manufacturer_examine/code/manufacturer_component.dm
#	modular_skyrat/modules/mapping/code/mob_spawns.dm
#	modular_skyrat/modules/modular_weapons/code/rifle.dm
#	modular_skyrat/modules/novaya_ert/code/automatic.dm
#	modular_skyrat/modules/sec_haul/code/guns/guns.dm
#	modular_skyrat/modules/tribal_extended/code/weapons/bow.dm
#	tgstation.dme
#	tgui/packages/tgui/interfaces/OreRedemptionMachine.js
#	tgui/packages/tgui/interfaces/VotePanel.tsx
2023-05-20 22:06:42 -04:00
nevimer
759c2dd73a Merge remote-tracking branch 'upstream/master' into overlay
# Conflicts:
#	.github/CODEOWNERS
#	_maps/RandomRuins/LavaRuins/skyrat/lavaland_surface_syndicate_base1_skyrat.dmm
#	_maps/RandomRuins/SpaceRuins/bus.dmm
#	_maps/RandomZLevels/blackmesa.dmm
#	_maps/map_files/KiloStation/KiloStation.dmm
#	_maps/map_files/VoidRaptor/VoidRaptor.dmm
#	_maps/map_files/generic/CentCom_skyrat_z2.dmm
#	_maps/shuttles/skyrat/goldeneye_cruiser.dmm
#	_maps/skyrat/automapper/automapper_config.toml
#	_maps/templates/lazy_templates/wizard_den.dmm
#	code/__DEFINES/callbacks.dm
#	code/__DEFINES/jobs.dm
#	code/__DEFINES/~skyrat_defines/gun.dm
#	code/datums/components/fertile_egg.dm
#	code/datums/components/transforming.dm
#	code/datums/elements/bane.dm
#	code/datums/votes/map_vote.dm
#	code/game/objects/items/AI_modules/hacked.dm
#	code/game/objects/items/food/egg.dm
#	code/game/objects/items/melee/baton.dm
#	code/game/objects/items/stacks/sheets/glass.dm
#	code/game/objects/structures/flora.dm
#	code/game/objects/structures/morgue.dm
#	code/modules/antagonists/fugitive/hunters/hunter.dm
#	code/modules/antagonists/traitor/objectives/final_objective/final_objective.dm
#	code/modules/antagonists/traitor/objectives/kidnapping.dm
#	code/modules/art/statues.dm
#	code/modules/events/ghost_role/changeling_event.dm
#	code/modules/events/spacevine.dm
#	code/modules/mining/machine_redemption.dm
#	code/modules/mob/living/simple_animal/friendly/farm_animals.dm
#	code/modules/mob_spawn/mob_spawn.dm
#	code/modules/projectiles/ammunition/energy/laser.dm
#	code/modules/projectiles/guns/ballistic/pistol.dm
#	code/modules/projectiles/guns/ballistic/rifle.dm
#	code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_hemophage.png
#	code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_human_felinid.png
#	code/modules/uplink/uplink_items.dm
#	code/modules/vending/autodrobe.dm
#	config/config.txt
#	config/game_options.txt
#	config/maps.txt
#	config/skyrat/skyrat_config.txt
#	html/changelogs/archive/2023-03.yml
#	icons/mob/clothing/feet.dmi
#	icons/mob/clothing/under/costume.dmi
#	icons/mob/inhands/clothing/shoes_lefthand.dmi
#	icons/mob/inhands/clothing/shoes_righthand.dmi
#	icons/mob/inhands/clothing/suits_lefthand.dmi
#	icons/mob/inhands/clothing/suits_righthand.dmi
#	icons/mob/species/human/human_face.dmi
#	icons/obj/clothing/shoes.dmi
#	icons/obj/clothing/under/costume.dmi
#	modular_skyrat/master_files/code/datums/components/fullauto.dm
#	modular_skyrat/master_files/code/datums/traits/negative.dm
#	modular_skyrat/master_files/code/datums/traits/neutral.dm
#	modular_skyrat/master_files/code/modules/clothing/under/jobs/security.dm
#	modular_skyrat/master_files/code/modules/projectiles/guns/ballistic/revolver.dm
#	modular_skyrat/master_files/icons/mob/clothing/under/civilian.dmi
#	modular_skyrat/master_files/icons/mob/clothing/under/civilian_digi.dmi
#	modular_skyrat/modules/aesthetics/guns/code/guns.dm
#	modular_skyrat/modules/aesthetics/guns/icons/guns.dmi
#	modular_skyrat/modules/blueshield/code/blueshield.dm
#	modular_skyrat/modules/blueshield/code/medkit.dm
#	modular_skyrat/modules/blueshield/code/special.dm
#	modular_skyrat/modules/customization/modules/clothing/under/misc.dm
#	modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/hemophage.dm
#	modular_skyrat/modules/events/code/event_overrides.dm
#	modular_skyrat/modules/gunsgalore/icons/guns/gunsgalore_guns40x32.dmi
#	modular_skyrat/modules/loadouts/loadout_items/donator/personal/donator_personal.dm
#	modular_skyrat/modules/manufacturer_examine/code/gun_company_additions.dm
#	modular_skyrat/modules/manufacturer_examine/code/manufacturer_component.dm
#	modular_skyrat/modules/mapping/code/mob_spawns.dm
#	modular_skyrat/modules/modular_weapons/code/rifle.dm
#	modular_skyrat/modules/novaya_ert/code/automatic.dm
#	modular_skyrat/modules/sec_haul/code/guns/guns.dm
#	modular_skyrat/modules/tribal_extended/code/weapons/bow.dm
#	tgstation.dme
#	tgui/packages/tgui/interfaces/OreRedemptionMachine.js
#	tgui/packages/tgui/interfaces/VotePanel.tsx
2023-05-20 21:59:27 -04:00
SkyratBot
33d5685afb [MIRROR] Adjust stowaway changeling requirements to look more like roundstart Changelings [MDB IGNORE] (#21284)
* Adjust stowaway changeling requirements to look more like roundstart Changelings (#75499)

Copies the weights of roundstart changelings, these were too low and I
was linked some reasonably low threat rounds on low pop getting them.

## Changelog
🆑
balance: Adjusted stowaway changeling requirements to be closer to
roundstart Changelings.
/🆑

* Adjust stowaway changeling requirements to look more like roundstart Changelings

---------

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2023-05-20 22:30:13 +01:00
SkyratBot
1b01ea4e3e [MIRROR] fixes clown planet report [MDB IGNORE] (#21283)
* fixes clown planet report (#75508)

## About The Pull Request
it looked if a typepath was in the list of station traits instead of an
instance

## Why It's Good For The Game
we did it

## Changelog
🆑
fix: fixes clown planet report
/🆑

* fixes clown planet report

---------

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
2023-05-20 22:27:30 +01:00
SkyratBot
d535de3fa8 [MIRROR] Fixes screwed up latejoin roll checks [MDB IGNORE] (#21257)
* Fixes screwed up latejoin roll checks (#75493)

## About The Pull Request

Messed up changing this to an early returns, results in latejoins
triggering much earlier than they should be.

## Why It's Good For The Game

Oops

## Changelog

🆑 Melbert
fix: Latejoins triggering before the minimum time set
/🆑

* Fixes screwed up latejoin roll checks

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-05-16 22:52:41 -07:00
SkyratBot
1100f6f6bd [MIRROR] New Nanotrasen Advisory Level Reports [MDB IGNORE] (#21234)
* New Nanotrasen Advisory Level Reports (#75339)

## About The Pull Request
White Dwarf report = For 0 threat rounds.
Pulsar Star report = For random chance of Nanotrasen having no intel.
## Why It's Good For The Game
This adds extra flavor to Nanotrasens advisory level reports, showing
Nanotrasens incompetence and adding this for the lore. Also I thought it
was funny.
## Changelog
🆑
add: Add new White Dwarf and Pulsar Star reports.
/🆑

---------

Co-authored-by: san7890 <the@ san7890.com>

* New Nanotrasen Advisory Level Reports

---------

Co-authored-by: Comxy <tijntensen@gmail.com>
Co-authored-by: san7890 <the@ san7890.com>
2023-05-16 20:45:28 +01:00
SkyratBot
dcd7be8673 [MIRROR] Tweaks Dynamic Latejoin Ruleset Execution [MDB IGNORE] (#21188)
* Tweaks Dynamic Latejoin Ruleset Execution (#75428)

## About The Pull Request

### Before:

Dynamic wants a latejoin.

Dynamic will collate all latejoin rulesets that are eligible to execute.

The latejoin-er is guaranteed to become an antagonist, so long as any
ruleset is valid.

It runs down the list of rulesets and tries to apply it until it
succeeds

Then the latejoin injection timer is incremented for the next time.

<Details>

<Summary> This leads to the following:  </Summary>

![image](https://github.com/tgstation/tgstation/assets/51863163/904b81d2-033e-41d5-9073-860ccff8e6ca)

</Details>

### After ( with this pr ):

Dynamic wants a latejoin.

Dynamic will collate all latejoin rulesets that are eligible to execute.

Dynamic will then select **one** of the valid rulesets, based on weight,
to attempt to apply to the incoming latejoiner.

If the latejoiner is not a valid candidate, such as not having that
antagonist enabled in their preferences, it will not reroll the ruleset.
Do not pass go, do not collect 200 dollars, do not get antag.

The latejoin injection timer will not be incremented, so the very next
latejoin will be checked the same, until one eventually succeeds.

![image](https://github.com/tgstation/tgstation/assets/51863163/77194f37-0781-4c76-82b9-21693f7ff557)

## Why It's Good For The Game

Dynamic latejoin handling is kinda poor, I believe Mothblocks has talked
about this a bit before but hasn't done much to it yet.

Compared to roundstart and latejoin, which can select out of everyone
which has the preference enabled, latejoin rulesets are not spoiled for
choice, which makes weighting the rulesets useless.

If you only have traitor enabled, the only latejoin antag you can be is
traitor. And if dynamic wants a latejoin, while you can only be traitor,
**you will ALWAYS become a traitor**. The weight of the traitor ruleset
or any other ruleset doesn't matter, because at the end of the day, the
only valid ruleset is traitor.

This makes latejoins much less of a guaranteed thing, and will
(hopefully) spread it out a bit more, reducing likelihood of rarer
latejoin antags.

## Changelog

🆑 Melbert
balance: You are now slightly less likely, statistically, to get an
antag role on latejoin
fix: Fixed latejoin antags being logged as "midround" antags
/🆑

* Tweaks Dynamic Latejoin Ruleset Execution

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-05-15 14:17:14 +01:00
SkyratBot
6c17609e14 [MIRROR] Stowaway Changelings (Latejoin Changelings) [MDB IGNORE] (#20921)
* Stowaway Changelings (Latejoin Changelings) (#74670)

## About The Pull Request

Adds a latejoin form of Changeling flavored as a stowaway.

## Why It's Good For The Game

We don't have a latejoin form of Changelings. It ups the paranoia that
anyone can be a Changeling, latejoin or not. They're also one of the few
non-progression antagonists which would work perfectly as a late join.

## Changelog

🆑
add: Stowaway Changelings will now appear as a late join form of
Changeling.
/🆑

---------

Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: Jeremiah <42397676+jlsnow301@ users.noreply.github.com>

* Stowaway Changelings (Latejoin Changelings)

* Delete screenshot_antag_icons_stowawaychangeling.png

---------

Co-authored-by: iwishforducks <65363339+iwishforducks@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: Jeremiah <42397676+jlsnow301@ users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-05-03 22:54:58 +01:00
SkyratBot
cdabf141f4 [MIRROR] Paradox clone no longer duplicates object. [MDB IGNORE] (#20811)
* Paradox clone no longer duplicates object. (#74989)

## About The Pull Request

Paradox clone no longer duplicates object, we instead try to copy as
much as possible over to a newly created human

## Why It's Good For The Game

Closes https://github.com/tgstation/tgstation/issues/74124
Closes https://github.com/tgstation/tgstation/issues/74122
Closes https://github.com/tgstation/tgstation/issues/73973
Closes https://github.com/tgstation/tgstation/issues/73972
Closes https://github.com/tgstation/tgstation/issues/72437 (hopefully)

## Changelog

🆑
fix: Paradox clones are now attempted manual copies of humans, rather
than straight-up copying everything. They should no longer have bugs
related to being unable to use UIs, having FOV, or visual bugs.
/🆑

* Paradox clone no longer duplicates object.

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2023-04-28 23:21:06 +01:00
SkyratBot
1f56d7a7df [MIRROR] Non-random events now provide a cause in their deadchat broadcast [MDB IGNORE] (#20757)
* Non-random events now provide a cause in their deadchat broadcast

* Update _event.dm

* change proc

* Update _event.dm

---------

Co-authored-by: Rhials <Datguy33456@gmail.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-04-25 18:44:12 -07:00
SkyratBot
f8dd53d80c [MIRROR] Fixes AIs having incorrect laws and being useless on nations [MDB IGNORE] (#20676)
* Fixes AIs having incorrect laws and being useless on nations (#74843)

## About The Pull Request

Fixes #74842

So this issue is multi-part

1. Separatist antag datum used the wrong mob for applying laws to.
`mob_override` is not passed usually and should default to the antag
datum owner's mob if not passed

Fixes this by passing the right mob. AI still doesn't get law datums,
the issue is deeper - they don't even become separatists!

2. Separatists only iterates over human mobs, and not silicon mobs

Okay, fixes this by iterating over all living players. Still not
entirely fixed, new AIs don't have UN laws!

3. Changes the default law datum when nations executes to United Nations
so new unlinked silicons gain the lawset

Closer, would you believe it if this still doesn't fix everything, but
going further is out of scope.
Changing the round default lawset as a part of roundstart execution does
not update anything that set it from atom initialize. If we wanted we
could hook signals into "default lawset changed" and then update it
conditionally to circumvent ALL of these issues but whatever, someone
can do that later.

## Why It's Good For The Game

AIs stop crying on nations

## Changelog

🆑 Melbert
fix: AIs now get their proper lawset, and an objective related to said
lawset, on Nations
/🆑

* Fixes AIs having incorrect laws and being useless on nations

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-04-21 01:40:22 +01:00
SkyratBot
b67e18e1f1 [MIRROR] Fixes nightmares not spawning [MDB IGNORE] (#20627)
* Fixes nightmares not spawning (#74790)

## About The Pull Request
#74598 broke nightmare spawning by not using the new proc to choose a
valid spawn location. This fixes that.

![image](https://user-images.githubusercontent.com/66640614/232394350-0788a8d5-f950-427b-8add-87700a39b857.png)

## Why It's Good For The Game
Fixes #74756

## Changelog
🆑 Tattle
fix: Nightmares will once again spawn
/🆑

Co-authored-by: tattle <article.disaster@ gmail.com>

* Fixes nightmares not spawning

---------

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: tattle <article.disaster@ gmail.com>
2023-04-17 21:53:30 -07:00
SkyratBot
abefbb0d64 [MIRROR] Adds two new helper procs for finding a maintenance/space spawn turf [MDB IGNORE] (#20536)
* Adds two new helper procs for finding a maintenance/space spawn turf (#74598)

## About The Pull Request

Adds two new global helper procs, find_maintenance_spawn and
find_space_spawn. These check the list of maintenance/space carp spawn
landmarks, and return the turf of a random one.

The find_maintenance_spawn helper has two arguments, for atmos safety
checks and making sure the spawn is properly shrouded in darkness.

This also includes some tidiness changes to the ghost_role event file,
because the helper was originally just going to be a proc on ghost role
events.

**Stuff moved to find_maintenance_spawn:**

- Spiders
- Nightmares
- Fugitives
- Paradox clones
- Morph

**Stuff moved to find_space_spawn:**

- Space Dragon
- Loneop
- Ninja
- Slaughter Demon
- Revenant backup spawn location

If we ignore all of the autodocing, this should remove about a dozen or
two lines of code.
## Why It's Good For The Game

Reduces an amount of duplicated code. Also makes future implementation a
bit easier and less copy-pastey.
## Changelog
🆑 Rhials
code: Adds two new super-duper helpful helper procs for finding a
maintenance/space spawn location, for all of your
event/midround/whatever needs!
code: Moves all midrounds/ghost_role events that hinged on
maintenance/space carp spawns to the aforementioned helpers.
code: The ghost_role event module file is now autodoced.
/🆑

* Adds two new helper procs for finding a maintenance/space spawn turf

---------

Co-authored-by: Rhials <Datguy33456@gmail.com>
2023-04-14 14:25:16 +01:00
SkyratBot
c222f22ed8 [MIRROR] Replaces xeno_spawn with the generic_maintenance_landmark, adds atmos safety checks to remaining midrounds that need them [MDB IGNORE] (#20302)
* Replaces xeno_spawn with the generic_maintenance_landmark, adds atmos safety checks to remaining midrounds that need them (#74374)

## About The Pull Request

The xeno_spawn landmark, used to pick spawn locations for many different
midrounds (but NOT xenomorphs, ironically), has been killed and been
replaced with the generic_maintenance_landmark landmark.

This also adds atmos safety checks to some of the midround spawn
location selections that were missing them:

- Paradox Clone
- Nightmare
- Fugitives
- Morph

I decided to do both of these at the same time, since I'd be touching
most of the same files anyways.

This includes an updatepaths that, if you are on a downstream running a
custom map, should probably definitely run.
## Why It's Good For The Game

It may not be a secret that these landmarks aren't used for spawning
xenomorphs anymore, but the name is still deceptive. This should
communicate what they're used for a bit better to both coders and
mappers.

Atmos safety checks (for the midrounds I hadn't yet added them to) make
sure people can play the game.

Closes #74372.
## Changelog
🆑
code: The xeno_spawn landmark is now the generic_maintenance_landmark
landmark.
fix: Certain midrounds will now check for atmos safety before spawning.
/🆑

* Replaces xeno_spawn with the generic_maintenance_landmark, adds atmos safety checks to remaining midrounds that need them

* 0

---------

Co-authored-by: Rhials <Datguy33456@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-04-04 17:55:29 +01:00
SkyratBot
3464b6bfb2 [MIRROR] Refactors Regenerate Organs, and a few organ helpers [MDB IGNORE] (#20094)
* Refactors Regenerate Organs, and a few organ helpers

* MERGE CONFLICTS

* GETORGANSLOT > GET_ORGAN_SLOT

* GETORGAN > get_organ_by_type

* lint repairs

* more lint

* Update tgstation.dme

* Update surgery_step.dm

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-04-01 02:51:06 +01:00
Gandalf
e4b4d4d3c0 MISSED MIRROR [Lints Against Unmanaged Local Defines] (#20204)
* https://github.com/tgstation/tgstation/pull/74333

https: //github.com/tgstation/tgstation/pull/74333
Co-Authored-By: tattle <66640614+dragomagol@users.noreply.github.com>

* var stuff

Co-Authored-By: tattle <66640614+dragomagol@users.noreply.github.com>

* vars

* Update sol_fed.dm

---------

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
2023-04-01 01:15:22 +01:00
SkyratBot
10f65497e1 [MIRROR] Splits Pirates into Two Subgroups, One For Light Midrounds And Another For Heavy [MDB IGNORE] (#20135)
* Splits Pirates into Two Subgroups, One For Light Midrounds And Another For Heavy (#73881)

## About The Pull Request

This PR splits the Pirate midround antagonists into two separate groups,
normal and dangerous. Normal pirates are the human, silverscale, and
psycker groups, and they are all light antagonists now, meaning they can
show up early in the round, similar to when a revenant or nightmare can
spawn. Dangerous Space Pirates only consist of the Skeleton Crew, and
they will remain as heavy weight antagonists with the same spawning
restrictions as it is currently. I also fudged with the crew required
value some for both, not that it makes a huge difference.

Since pirates were split into two separate groups, both versions have a
reduced dynamic weight of 3, from 4.

Also added a sanity check to the pirate's dynamic ruleset to make sure
there are remaining pirates to be spawned for the ruleset to be allowed.
Also added a check to the pirate event itself to prevent runtimes when
no pirate team is available to be chosen, unless an admin specifies what
pirate team they want to use.

## Why It's Good For The Game

As it is right now, there is a massive difference between the skeleton
pirates and the rest of the pirate types. Skeleton Pirates have cannons,
innate space immunity and other small benefits which make them much more
threatening than the other pirate crews. In our current system,
something like Psycker pirates can spawn in lieu of something like blob
or xenomorphs when they aren't anywhere near the same level of
threatening, so moving the less dangerous pirates off to be light weight
midrounds seems like a good move, especially since we need more
lightweight midrounds to keep the variety up anyway.

Keep in mind these designations are not permanent and may change at the
request of maintainers or as the pirate teams get nerfed/buffed.

## Changelog

🆑
balance: The pirate gangs have been split into two subcategories, one
which can spawn earlier in a shift and one that spawns later as they
currently do. While skeleton pirates will still be only seen later into
the shift, expect to see the other pirate gangs earlier on.
fix: Prevented the pirate event from runtiming when no possible pirate
gangs were available.
fix: Pirates can no longer be selected by Dynamic if there are no more
pirates gangs that can be used.
/🆑

* Splits Pirates into Two Subgroups, One For Light Midrounds And Another For Heavy

---------

Co-authored-by: IndieanaJones <47086570+IndieanaJones@users.noreply.github.com>
2023-03-29 22:29:43 +01:00
SkyratBot
96be018eb1 [MIRROR] Refactors Suiciding Variable Into Trait [MDB IGNORE] (#20017)
* Refactors Suiciding Variable Into Trait

* suicide

* https://github.com/tgstation/tgstation/pull/72919

MISSED IRROR

* better suicide handling

---------

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: lessthnthree <three@lessthanthree.dk>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-27 02:03:05 +01:00
SkyratBot
f7e6ea19e1 [MIRROR] Removes bug room objective, Reworks primary objective and steal objectives. [MDB IGNORE] (#19819)
* Removes bug room objective, Reworks primary objective and steal objectives.

* ???

* fix

* Delete bug_room.dm

---------

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-15 00:47:07 +00:00
SkyratBot
0f493eaf87 [MIRROR] Updates the dynamic config's midround options to add in new additions [MDB IGNORE] (#19809)
* Updates the dynamic config's midround options to add in new additions

* Update dynamic_rulesets_midround.dm

---------

Co-authored-by: CRITAWAKETS <sebastienracicot@hotmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-13 19:37:45 -07:00
Cyprex
e6bb4098c4 Revert "Merge upstream" 2023-03-11 18:51:44 +01:00
SkyratBot
db4444a9b3 [MIRROR] Limit theft/destroy secondary objectives to items which at least one person cares about [MDB IGNORE] (#19714)
* Limit theft/destroy secondary objectives to items which at least one person cares about

* Update objective_items.dm

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-10 06:42:08 +00:00
SkyratBot
44fac8fc3b [MIRROR] Buff Abductor Spawn Weight From 2 to 4 [MDB IGNORE] (#19748)
* Buff Abductor Spawn Weight From 2 to 4 (#73819)

## About The Pull Request

This PR buffs abductor spawn weight from 2 to 4. With this, abductors
have the same weight as revenant and most other light midround
antagonists, and matches their spawn weight prior to getting moved to
being light weight antagonists as opposed to heavy.

## Why It's Good For The Game

Abductors in my opinion are currently needlessly too rare. This will
resolve the issue.

## Changelog

🆑
balance: Abductors' midround spawn weight has been increased. Expect to
see them more often
/🆑

* Buff Abductor Spawn Weight From 2 to 4

---------

Co-authored-by: IndieanaJones <47086570+IndieanaJones@users.noreply.github.com>
2023-03-09 16:50:00 -08:00
Cyprex
c5573eb59f Merge remote-tracking branch 'skyrat/master' into upstream_merge3 2023-03-08 18:51:21 +01:00
SkyratBot
c33d2e1fe9 [MIRROR] [no gbp] Latejoin Rulesets sync [MDB IGNORE] (#19669)
* [no gbp] Latejoin Rulesets sync (#73772)

## About The Pull Request
Syncs the codebase inherent values for dynamic rulesets with the current
config-side values used on our LRP servers.

## Why It's Good For The Game

This is technically irrelevant for the game as these numbers are the
ones currently used on the servers - it's more for the good of the
codebase than the game.

## Changelog

🆑
balance: Latejoin dynamic rulesets have been rebalanced to reduce the
frequency of midround revolution spawns.
/🆑

* [no gbp] Latejoin Rulesets sync

---------

Co-authored-by: Spookuni <70739420+Spookuni@users.noreply.github.com>
2023-03-05 14:31:49 -08:00
SkyratBot
9a0e94aaa2 [MIRROR] Fixes hijacked shuttles not counting as escaped, cleans up associated code [MDB IGNORE] (#19652)
* Fixes hijacked shuttles not counting as escaped, cleans up associated code (#73623)

## About The Pull Request

Fixes #72240

So, in the past, `onCentCom` ran a check at the end that said "if we're
on centcom z, in centcom area, or in shuttle that is endgame launched:
return TRUE"

Meanwhile its brother `onSyndieBase` did not need to run the same
checks, because it was also on the centcom z-level.

This meant that for the purposes of `considered_escaped`, `onCentCom`
pretty much entirely eclipsed `onSyndieBase`, only mattering for, well,
Nuke Ops

So the fix was simple - add the check for "in shuttle that is engame
launched" to `onSyndieBase`.

I took this opportunity to do a quick audit of associated "escaped" and
"alive" code. Did you know that hardcore random only checked that you
were on centcom to award survival points? Instead of any other checks
for escaped like stat?

Also the ancient "romerol zombies can't be used as an easy way to
greentext escape" was broken, because it checked the wrong species ID?

Bonus performance optimization: `in area` -> `in
area.get_contained_turfs()`

## Why It's Good For The Game

Hijack does not turn around to become an L

## Changelog

🆑 Melbert
fix: Hijacked shuttles now count as "escaping alive" once agian
fix: Hardcore random survival now actually checks that you've escaped
alive, and not just made it to centcom
fix: Intelligent zombies can now escape.
fix: Infectious zombies now don't count as escaped as intended.
/🆑

* Fixes hijacked shuttles not counting as escaped, cleans up associated code

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-03-04 13:00:17 +00:00
Cyprex
59b587131a Merge from upstream 2023-03-03 19:22:13 +01:00
ReturnToZender
7d0201a961 Adds enemy_roles to all midround and latejoin antags (#60)
* Adds enemy_roles to all midround and latejoin antags

Add: enemy_roles to all midround antags

* Fixes formatting for latejoins

* Fixes formatting on midround
2023-03-03 06:07:41 +00:00
SkyratBot
3d629de231 [MIRROR] It Came From Outer Spess: Adds midround changelings, delivered by an absolutely disgusting changeling meteor [MDB IGNORE] (#19154)
* It Came From Outer Spess: Adds midround changelings, delivered by an absolutely disgusting changeling meteor

* Update dynamic_rulesets_midround.dm

---------

Co-authored-by: Rhials <Datguy33456@gmail.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: lessthnthree <three@lessthanthree.dk>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2023-03-02 21:03:08 -08:00
SkyratBot
6d9e38775d [MIRROR] Write roundstart logout report to admin log [MDB IGNORE] (#19576)
* Write roundstart logout report to admin log (#73672)

## About The Pull Request
- Writes the roundstart logout report to the admin log
- Increases the threshold for the report, clients > 10 minutes are
deemed AFK

## Why It's Good For The Game

While the report is broadcasted in chat, it's not actually saved in the
log. Sometimes we want to go back and read this later.

## Changelog

🆑 LT3
admin: Roundstart logout report is written to the admin log
admin: Roundstart report threshold is now 10 minutes
/🆑

---------

Co-authored-by: san7890 <the@ san7890.com>

* Write roundstart logout report to admin log

* timer

---------

Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
Co-authored-by: lessthnthree <three@lessthanthree.dk>
2023-02-27 14:34:33 -08:00
SkyratBot
4d79a63885 [MIRROR] Adds required template keys to some midround rulesets, fixes midround nuclear operative leaders from spawning on arrivals [MDB IGNORE] (#19537)
* Adds required template keys to some midround rulesets, fixes midround nuclear operative leaders from spawning on arrivals (#73620)

## About The Pull Request

`/datum/antagonist/nukeop/leader/move_to_spawnpoint()` overrides
`/datum/antagonist/nukeop/move_to_spawnpoint()`, which is responsible
for calling `SSmapping.lazy_load_template(LAZY_TEMPLATE_KEY_NUKIEBASE)`

Nuke op leaders also get created first thing, so they always got sent to
arrivals

`move_to_spawnpoint` now is not overridden by anything, location is now
obtained though `get_spawnpoint`

But this doesn't solve the entire issue! Seemed like there was a race
condition in that, on nukie team creation, it looked for the nuke to
generate the nuke code. But it created the team before creating the nuke
(and template). So it runtimed and broke, no nukies.

So I had to go deeper.

Rulesets have this list, `ruleset_lazy_templates`, that none of the
midround rulesets used. CC @ ZephyrTFA on this, but it seemed like it
caused a few issues related to lazyloading by missing them?

I added the keys to abductor and nukies. and also ninja even though
it'll probably never be used

I also also made the kidnapping objective for traitors pre-emptively
load the holding facility on objective *taken*, rather than waiting for
the exact moment which the victim is kidnapped.

(Should) Fix #72248

## Why It's Good For The Game

LATE FOR WORK

## Changelog

🆑 Melbert
fix: Nuke Ops Leaders midround don't spawn on Arrivals Shuttle late for
work
fix: (Maybe) fixes some additional issues related to midround nukie /
abductor spawns
/🆑

---------

Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>

* Adds required template keys to some midround rulesets, fixes midround nuclear operative leaders from spawning on arrivals

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2023-02-25 17:22:08 -08:00
SkyratBot
b6c0baff7f [MIRROR] Console Hack / Unfavourable Events won't run ghost roles which don't have time to do anything [MDB IGNORE] (#19331)
* Console Hack / Unfavourable Events won't run ghost roles which don't have time to do anything

* nya

* Update dynamic_unfavorable_situation.dm

* Update dynamic_unfavorable_situation.dm

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: lessthnthree <three@lessthanthree.dk>
2023-02-21 18:47:20 -08:00
Shroopy
e26ef72625 [MANUAL MIRROR] [NEW GHOST ANTAG] The Paradox Clone (#71141) (#19481)
[NEW GHOST ANTAG] The Paradox Clone (#71141)

![image](https://user-images.githubusercontent.com/114319683/200192566-e596ab83-8180-4f4c-a799-6e68e435fd43.png)

[DESIGN DOC]
https://hackmd.io/@tGKknGe5Q7qtddEspif79g/BJ3w9QLri/edit

Bluespace technology has destabilized the very fabric of reality, even
time itself!

Sometimes during a shift, it's possible for a PARADOX CLONE to spawn
somewhere on the station (usually maintenance). This paradox clone has
the exact appearance and DNA as a random crew member on the station,
wearing the same clothes they were at the start of the shift, including
their ID.

To maintain timeline coherency, the paradox clone must now hunt down and
kill the original and take their place or die trying, if the original
survives they have failed.

The only thing the paradox clone spawns with is a mechanical toolbox
that helps them from being stuck in maints if their ID doesn't have
maints access.

The inclusion of this antag encourages good crew coordination and adds a
less destructive, more personalized antag to the roster.

This antag rewards good detective work, as both the clone and the
original are identical in every way, and will therefore require a
detective to break out their detective skills to figure out who the
clone is.

Also a possible tie-in with the Chrono Legionnaires in the future.

🆑
add: Time and space has destabilized even further due to Nanotrasen
bluespace research, now, on occasion, clones from different timelines
can appear on the station and hunt you down to maintain timeline
stability! Beware the Paradox Clone!
/🆑

---------

Co-authored-by: 1bw0kopy <xz2rbf23@protonmail.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
(cherry picked from commit 214174874c)

Co-authored-by: Shadyyy66 <114319683+Shadyyy66@users.noreply.github.com>
2023-02-21 16:04:35 -08:00