72 Commits
Author SHA1 Message Date
Time-GreenandGitHub a3d93ff598 Removes sentient disease (#83453)
## About The Pull Request

Completely removes sentient disease from the game

## Why It's Good For The Game

Sentient disease is a unique antag and seems fun on paper, but really
doesn't work that well.

Sentient disease is a pretty binary antagonist: you either get cured and
watch helplessly as you lose all your hosts, or you infect everyone and
wipe out the entire station. Its everything bad about conversion antags,
but there's not even any fighting.

I also don't think any amount of balancing can fix sentient disease. If
we make it harder to cure, the disease gets an easier station wipe, but
if we make it less lethal, it loses all ability to stop cure generation.
The core gameplay pitches the entire crew against one disease, and it's
merely a timer before either it gets cured or wipes out everyone

This is my latest sentient disease round, where I wiped out the entire
station. I only even greentexted because there was one guy on the escape
shuttle in crit that barely made it because they had the sense to take
spaceilline.


![image](https://github.com/tgstation/tgstation/assets/7501474/260b3b28-96a1-4a19-8532-ecb94a41c68b)

The removal of the virologist lets us balance viruses to be fairer
challenges to the player, but as long as sentient disease exists we'll
always have to balance viruses somewhat in favor of the enjoyment of the
disease blowing your head and making you spontaneously combust.

## Changelog
🆑
del: Removes sentient disease from the game
/🆑

Hopefully, once we get virology truly sorted out, we can readd sentient
disease, but this would require our diseases to have endgoals that
aren't focused around killing every person, being widespread while also
not being instantly curable. A reworked sentient disease would have to
be so different, it's better to leave it out, fix virology and then
consider if we can truly add a new sentient disease and have it be fun
and fair
2024-05-26 11:54:50 -07:00
Time-GreenandGitHub 7499b84c9e Protects space spawned humans from radiation nebula (#83202)
Fixes #80864 

When a mob is spawned in space in a nebula, they get 1 minute of
radiation immunity. Ninja is the main one, but it'll also apply to other
space spawned mobs (lone nukie, space changeling?)

This only works for dynamic spawned antags. If an admin forces ninja
through an event, it doesnt work


![image](https://github.com/tgstation/tgstation/assets/7501474/98fbb499-86b3-43bc-bf63-403d7fa8df39)

🆑
fix: Space Ninja and other space spawned antags get a 1 minute radiation
shield in the radioactive nebula
/🆑
2024-05-15 03:21:13 +02:00
MrMelbertandGitHub b116767458 Implements dynamic scaling for spies (#82961)
## About The Pull Request

Implements dynamic scaling for spies. 

TL;DR On average less spawn, but there is a chance it scales up to add
even more.

Old


![image](https://github.com/tgstation/tgstation/assets/51863163/5ecdf146-7922-42ea-8051-8a30cddde7a6)

New


![image](https://github.com/tgstation/tgstation/assets/51863163/ce9f51a1-4d99-4fe7-be65-32003fbec605)

## Why It's Good For The Game

Maybe more dynamic rounds? Just for testing really

## Changelog

🆑 Melbert
qol: Spies may spawn in less numbers, but rarely may also spawn in more
numbers.
/🆑
2024-05-08 22:20:20 +01:00
JacquerelandGitHub 6e57b94657 Blood Brothers should start with objectives (#83030)
## About The Pull Request

Fixes #82064
Fixes a couple of different bugs with Blood Brothers.

- Delegates creating the objectives to the team rather than the ruleset,
so ones created via the traitor panel will also have objectives.
- Creates the objectives after the team has a member mind, so it doesn't
runtime when trying to give that mob the equipment needed to steal a
supermatter sliver.
- Creates the objectives before the first Blood Brother is assigned the
antag datum, so that they will correctly be given the starting
objectives.
- Check the maximum number of brothers that can be recruited when
deciding how many objectives to generate rather than the current number
of members (which would always be 1).

## Changelog

🆑
fix: Blood Brothers should spawn knowing what their objectives are.
fix: Teams of 3 Blood Brothers will once more have an additional
objective.
/🆑
2024-05-04 12:18:33 -06:00
MothblocksandGitHub bc4e7d3b4e Remove data systems in favor of global datums (#82943) 2024-04-29 22:47:36 -07:00
MrMelbertandGitHub 03a93f09a8 Fix malf AI being unable to trigger because AIs are considered ghost roles (#82893)
## About The Pull Request

Fix #82891 

PR #82030 added this job flag check to dynamic candidate trimming


https://github.com/tgstation/tgstation/blob/cd29b123eff035fff7da10d21f8d55e1c898670f/code/controllers/subsystem/dynamic/dynamic_rulesets_midround.dm#L77-L79

Problem: AIs do not have `JOB_CREW_MEMBER`!

This meant that all AI mobs were trimmed out of the candidate list for
midround malf, so no it always failed

This PR fixes this by flipping `restrict_ghost_roles` to `FALSE` for
midround malf and then tightening up some of the checks to ensure off
station AIs don't roll malf.

## Changelog

🆑 Melbert
fix: Midround malf can roll again
/🆑
2024-04-26 21:50:26 -06:00
JeremiahandGitHub c1a775efe1 Implements data systems (#82816)
## About The Pull Request
Subsystems currently come in two different flavors:
1. Systems that process at intervals with the master controller
2. Global data containers that do not fire

And I think they should be split up...


This moves 4 non firing, non init subsytems -> datasystem

## Why It's Good For The Game
Clarity in code
2024-04-22 21:27:15 -06:00
29f645ca63 Rephrases advisory level descriptions (#82585)
## About The Pull Request

Some of the station alert descriptions contained grammatical errors.
This PR corrects some word choice, punctuation, and grammar mistakes as
well as editing some sections for clarity. For example, Pulsar Star's
current warning

> "Your sector's advisory level is Pulsar Star. A large unknown
electromagnetic field has stormed through nearby surveillance equipment.
No surveillance data has been able to be obtained showing no credible
threats to Nanotrasen assets within the Spinward Sector. The Department
advises maintaining high alert against potential threats, regardless of
a lack of information."

has been changed to 
     

> "Your sector's advisory level is Pulsar Star. A large, unknown
electromagnetic field has stormed through nearby surveillance equipment
causing major data loss. Partial data was recovered and showed no
credible threats to Nanotrasen assets within the Spinward Sector;
however, the Department of Intelligence advises maintaining high alert
against potential threats due to the lack of complete data."

## Why It's Good For The Game

Readability is important

## Changelog
🆑
spellcheck: grammar fixes in the roundstart advisory warnings
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-04-11 20:52:34 -06:00
RhialsandGitHub a066fd3be4 Adds dynamic blob/obsession to ghost popups, removes third rail popup, tweaks supply pod popup (#82234)
## About The Pull Request

Three changes to ghost orbit popups. Let's check them one-by-one.

First off -- The obsession awakening and blob host midrounds now have a
ghost popup when summoned via Dynamic. They already have them when
summoned by a random event roll, so this is mostly just bringing the two
different spawn methods in line with each other. None of the other
midround dynamic picks (autotraitor, revs, etc) have had this added,
because they're less focused on spectacle and require more mystery to
function properly.

Second -- The electrified railings on the tram no longer notify ghosts
every time someone gets shocked. Electrocute_act is called on anything
that passes by it, and the popup would be thrown regardless of whether
or not they've "fallen in the path of an oncoming tram" or not. Making
it check if the electrocute_act actually successfully stunned a player,
and that they're about to be hit, would probably require an unwieldy
rewrite to the behavior that I'd rather not resort to. I brought this
helper call into this world, and now I'm taking it out.

Lastly -- The supply pod random event can now be properly jumped to.
Originally, it would track the landing indicator, which would delete
almost immediately and leave an un-orbitable popup on your screen. Now
you jump to the landing zone, regardless of when you click the toast
popup.

This is really long PR body for such tiny changes please don't think
this is anything more than it actually is.
## Why It's Good For The Game

Minor improvements to some ghost orbit popups, because Observers are
players too!
## Changelog
🆑
qol: Dynamic midrounds "Obsession Awakening" and "Blob Host" now have
ghost orbit popups, so you can see them happening in real time.
qol: There is no longer a ghost orbit popup for players being shocked by
an electrified tram rail.
qol: The Stray Cargo orbit popup no longer has a half-second window to
orbit before it becomes useless.
/🆑
2024-03-26 20:03:06 -06:00
9fa40f4f1d DeathMatch Rolling Antag Fix (#82030)
## About The Pull Request

Gives Deathmatch players the TRAIT_TEMPORARY_BODY which is checked
during antag rolls while trimming candidates.

## Why It's Good For The Game

Closes https://github.com/tgstation/tgstation/issues/81725

## Changelog

🆑
fix: Deathmatch players should no longer be able to roll any midround
antagonist.
/🆑

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2024-03-17 21:49:11 +01:00
MrMelbertandGitHub 5f2f9e67ad Add compile option for compiling in MAP_TEST mode, which disables common annoyances when testing new maps (#81697)
## About The Pull Request

Adds `MAP_TEST` compile flag. 

This compile flag blocks common things which make it difficult to test a
map.

Things this applies to: 

- Rats no longer spawn. 
- Rat spawning will (obviously) break up the powernet, which is
INCREDIBLY annoying when trying to test if all the rooms of the station
are wired correctly (or testing which rooms lose power first, etc)

- Light tubes no longer break on initialize. 
- Random light breakages can easily cause mappers to accidentally over
light a room.

- Roundstart command report is not printed. 
- Might be a personal preference, but it's kinda annoying to hear the
alert over and over again.

- Random events do not trigger. 
- Some events such as gravity generator outage can trigger with 0
population.
   - Random camera breakage event can cause over-placement of cameras. 
   - Other stuff tends to just get in the way. 

- Station traits do not trigger. 
- Probably the biggest annoyance. Many traits modify the map in some way
which disrupts testing.

- Roundstart landmarks don't self deletes. 
   - Allows mappers to use sdql to find them. 

- Mapping verbs start enabled. 

Obviously more things can be added if they come up.
2024-03-07 16:57:47 -05:00
13spacemenandGitHub 357799c8a5 Removes Orbit Polling Component, SSpolling improvement (#81748)
When I made SSpolling, jlsnow gave me his blessing to delete the orbit
polling component [where you orbit something for 20 seconds before it
chooses a ghost from the orbiters]
It's only used in a few places like soulstones replacing
jobbanned/inactive players, etc.

Also upgraded SSpolling; you can now place a little icon on the sides in
the chat message, chat message looks a lot nicer, the alert pic and the
jump target don't have to be the same anymore, and I made it be able to
pre-pick candidates since 90% of the use cases would just want 1
candidate

Also prints to chat who the chosen one was

Also made slime intelligence potions ask the user for a reason, which
will be displayed in the alert poll
2024-03-06 08:24:36 +00:00
MrMelbertandGitHub 977799a2e7 A red spy has entered the base: Adds Spies, a roundstart antagonist inspired by Goonstation's Spy-Thief (#81231)
# Disclaimer: No Goon code was referenced or used in the making of this
PR

## About The Pull Request

[Design Document (Read this for more
information)](https://hackmd.io/@L9JPMsZhRO2wI25rNI6GYg/rkYKM9Yc6)

This PR adds Spies as a new roundstart antagonist type, inspired by
Spy-Thiefs from Goonstation.

Spies are tasked with stealing various objects around the station, from
insulated gloves to the black box, from the clown's left leg to the
bridge's communications console.

For every item stolen, the Spy is rewarded with a random item from the
Syndicate Uplink, plus some items uniquely available to the Spy. Stolen
items are then shipped off and sold on the Black Market Uplink, allowing
the crew - or maybe some other evil-doers - to get their hands on them.


![image](https://github.com/tgstation/tgstation/assets/51863163/f057d480-4545-44da-b8fe-a8d09a5d2dcf)

More ideas for theft items and bounties are welcome. 

## Why It's Good For The Game

See the design document for more information. 

In short: Adds a solo antagonist which has less impact than your
Traitors and Heretics, but more impact than Paradox Clones and Thieves.
In other words: On the same tier as old traitors.

Seeks to embrace the sandbox aspect of antagonists more by having no
precise greentext objective, and instead some suggestions for chaos you
can embark in. Have fun with it!

## Changelog

🆑 Melbert
add: Spies may now roam the halls of Space Station 13. Watch your
belongings closely.
/🆑
2024-03-01 04:41:57 +00:00
John WillardandGitHub 4dba3f75f3 Gives paradox clone their own ghost polling icon (#81229)
## About The Pull Request

Currently all ghost roles, when polling for players, shows a syndicate
poster. This is lame as hell, especially since most of the roles aren't
even Syndicate aligned.
This adds support to have your own icons for it, and adds one for the
Paradox clone since I already had an idea for it.

## Why It's Good For The Game

Paradox clones are not syndicate aligned and it does not make sense to
portray that to players, this looks much better, and hopefully soon
other antags will follow suite.

![image](https://github.com/tgstation/tgstation/assets/53777086/b6016ff1-9914-42a8-bd9f-e72ba5539e11)

## Changelog

🆑
add: Paradox clones now have a bluespace stream instead of a syndicate
poster as their ghost poll icon.
/🆑
2024-02-07 05:15:44 +01:00
c76df7f37a Station Goals are now handled by SSstation instead of a global list (#81177)
## About The Pull Request

You can now get station goals in a slightly better way over using a
`locate() in` call on a global list.
The Meteor Satellite goal no longer stores a giant list of ALL OBJECTS
in view. And now correctly only counts turfs.
## Changelog
🆑
fix: Meteor Satellites no longer erroneously count every piece of paper
as a protected turf.
fix: As a result the station goal is slightly more difficult
/🆑

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2024-01-31 20:47:09 +01:00
John WillardandGitHub 3ca3c781ef Fixes clown ops getting their codes (#80992)
## About The Pull Request

Nukies were using ``get_machines_by_type`` in ``assign_nuke`` to get the
nuke and set its code, which doesn't work for clown ops because they use
a subtype. This fixes it by replacing it with
``get_machines_by_type_and_subtypes`` instead.
while I was messing with clown op code I also made it a little bit less
copy paste


![image](https://github.com/tgstation/tgstation/assets/53777086/2db9e859-8d53-4704-a110-7f8a5f33ee0f)

## Why It's Good For The Game

Clown ops now get a code to their nuke rather than it staying as
'ADMIN', pretty cool!

Closes https://github.com/tgstation/tgstation/issues/78306

## Changelog

🆑 Momo8289, Pepsilawn, Sinsinins, JohnFulpWillard
fix: Clown ops now get a code set for their nuke.
/🆑
2024-01-19 19:48:07 +01:00
13spacemenandGitHub 908d6f1a2b Better Ghost Selection (#80283)
## About The Pull Request
Revived my old PR https://github.com/tgstation/tgstation/pull/68901

Replaces the annoying tgui alert popup "Do you want to be X? | Yes | No
| Never for this round" that is hard to read and steals window focus,
with a nice clean alert in the top right that counts down. If it's the
same event/mob they stack with 2x, 3x, etc. It also shows how many
candidates/ghosts are signed up.

The poll alerts have screentips too, they countdown and show if you're
signed up, how many people are signed up, if you chose "never for this
round" (which is cancelable)
## Why It's Good For The Game
![Screenshot 2023-12-13
030302](https://github.com/tgstation/tgstation/assets/46101244/04061a6b-cd9a-4546-9d71-bba6a6b70d87)

Way easier to see what role is available, you get a nice pic of the role
and get it's name in big text, you can cancel "never for this round",
and you can cancel signing up for a role before the timer is up
## Changelog
🆑
refactor: Ghost roles now offer ghosts a clickable poll button. Ghosts
can select a role, deselect it, alt-click it for "Never For This Round",
can cancel "Never", can see the countdown, and can see how many other
people are signed up for the role poll.
/🆑
2023-12-22 11:44:55 -08:00
lessthanthreeandGitHub ce3d863d32 Combine roundstart intercept and security level announcements (#80475)
## About The Pull Request

At roundstart when the intercept report is sent, two announcements are
created at the same time. It's loud and overlaps. This combines them
into a single announcement.

Before:


![image](https://github.com/tgstation/tgstation/assets/83487515/024e783a-65d9-4c28-8850-f114b1f020ad)

After:


![image](https://github.com/tgstation/tgstation/assets/83487515/7272f82f-23b4-4e90-99a2-1b590c7d56cf)

## Why It's Good For The Game

Two Centcom or any other announcements playing at the same time
(especially with two different sound files) can be annoying and the
sounds distort each other.

## Changelog

🆑 LT3
qol: Roundstart intercept report and security level announcements are
combined into a single announcement
/🆑
2023-12-20 19:59:42 -05:00
FikouandGitHub 2125aae0c4 adds head of staff job flag (#80415)
## About The Pull Request
as we added a command role that isn't a head of staff, itd be good to
untie some checks from the command department
so i added a job flag for that, and moved what made sense to different
traits that are added to head of staff minds

## Why It's Good For The Game
revs (the gamemode not the players) shouldnt care about the bridge
assistant existing

## Changelog
🆑
fix: bridge assistant no longer passes some head of staff checks
qol: if you steal a command member's liver, you can now sabre better!
/🆑
2023-12-18 16:07:25 +01:00
a3fa541e2e Bridge Assistant Station Trait (#80279)
## About The Pull Request
adds a station trait which adds a new role, the bridge assistant
he is designed to help commandeer the bridge and help out other heads
when needed. he is armed with the mini energy gun (the one heads used to
have on kilostation), a flash, a toolbelt (with an inducer), some cool
shades and a swanky scarf.
as he is a nerd he is weak and unable to twohand weapons, preventing him
from wielding the fire axe.
currently he does not have a mindshield but he cannot roll antag
he currently has access to the bridge, announcement console, eva,
teleporter, gateway, maint, and a weapon permit (somewhat (not really
other than for nerds) interestingly this is the first job that isnt
assistant that doesnt have access to any lathes, so he doesnt have orm
access unlike all the other jobs (except assistant))
the trait also makes a coffee machine spawn on the bridge
here is some useful art of your role

![image](https://github.com/tgstation/tgstation/assets/23585223/905e5527-9069-4226-b160-8dedd1ea7b74)
and ingame screenshots

![image](https://github.com/tgstation/tgstation/assets/23585223/0aa537ac-a791-4249-a702-490584919fd9)

![image](https://github.com/tgstation/tgstation/assets/23585223/eb93e2d1-0291-4ade-9208-b1c0b68648c7)

![image](https://github.com/tgstation/tgstation/assets/23585223/1d3c2f11-8ac0-4ee9-91a5-176f81a08dcb)


## Why It's Good For The Game
Adds upon the station trait job system with a straight forward role that
IS just a human (unlike the cargorilla), and is pretty basic with no
custom assets or whatever other than hud icons
Having the bridge assistant in some rounds seems like a neat way to
protect it since it gets fucked up in like half the time, while also not
having enough mechanical depth or gameplay as to warrant it as a
permanent role

## Changelog
🆑
add: Bridge Assistant job accessible from a station trait.
/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
2023-12-16 20:02:45 -05:00
MothblocksandGitHub 86f6072579 Blood brother gives chat log for conversions, fix blood brothers getting more antags (maybe?), better admin logging (#80095)
I think I fixed the issue of blood brothers getting more antags by
setting special_role. Dynamic rulesets are too complicated and this
shouldn't even be possible as a bug. I intend to completely rewrite how
rulesets work.
2023-12-05 06:20:34 +00:00
MothblocksandGitHub 714ff3ec54 Remove /datum/game_mode, we SSdynamic now [again] (#79965)
I don't remember what was hard about this last time it took me like 20
minutes this time so I'm scared.

Removes dynamic simulations, only I have used them and it's a lot more
complicated now with this. I plan on making Dynamic simulations a part
of moth.fans anyway
2023-12-02 10:25:48 +13:00