104 Commits

Author SHA1 Message Date
Roxy d0ca474789 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-2025-11-05 2025-11-05 19:43:07 -05:00
Bloop 6e032a6aca Improves debugging for events config + fixes inconsistencies in events.json (#93595)
## About The Pull Request

If an event is not found in the list, it will be null, so the stack
trace when there is an invalid one in there will always return "Invalid
event attempting to be configured." AKA nothing useful to indicate which
event in the config is actually causing the failure.

Also stops stack trace from declaring 'invalid' config when they are
simply not loaded due to the current map.

It should be printing out [variable] instead.

Also removes a bunch of non existent events from the events.json and
fixes a few inconsistencies with the default weights.

## Why It's Good For The Game

Stack traces with useful information are good.

## Changelog

Nothing player-facing
2025-10-29 01:01:14 +01:00
John Willard d9c58ac82e Configurable events (removes mult config) (#90659)
As said in https://forums.tgstation13.org/viewtopic.php?t=38517 - Admins
don't want to touch the event multiplier configs because,
``for example changing the mult to 1.5 would make heart attack only roll
on 60+ pop``

and ends with;
``it would be better to make a pull request to the codebase and alter
the min_player var on the events that are issues``

So why not let ALL events be editable by admins?
This PR makes every single event possible to be edited, though the json
only comes with the non-wizard non-holiday ones (though they are totally
addable if admins want to put it in, I just didnt think we should make
it obvious it's possible so they DONT)

The config is off by default (no effect regardless since I have it the
same as code-side).

The multiplier config is rendered irrelevant by instead being able to
tweak the individual events to your liking, especially when one touch of
that causes certain events to be rendered never runnable.
This is (sorta) an admin request, and it also makes event rarities and
such an admin issue, therefore not our problem anymore (mostly), wahoo.

Get FUCKED, Grid Check!

![image](https://github.com/user-attachments/assets/ff4314b5-4404-4f8e-905d-2d4824f8aa71)

🆑
config: Removed event time/weight multipliers, now all events vars are
editable in config.
/🆑

---------

Co-authored-by: CRITAWAKETS <sebastienracicot@hotmail.com>
2025-04-29 18:20:43 -06:00
Bloop 29e2f867b8 Adds some trailing commas to lists (#90501)
## About The Pull Request

I heard you liked commas.

## Why It's Good For The Game

Trailing commas make everyone happy!

## Changelog

Nothing anyone will notice besides downstreams adding to these lists
2025-04-29 17:52:31 -06:00
Watermelon914 79b00baad2 Refactors subsystems to use dependency-ordering to determine init order. Subsystems can now declare their own dependencies. (#90268)
## About The Pull Request
As the title says.
`init_order` is no more, subsystems ordering now depends on their
declared dependencies.
Subsystems can now declare which other subsystems need to init before
them using a list and the subsystem's typepath
I.e.
```dm
dependencies = list(
    /datum/controller/subsystem/atoms,
    /datum/controller/subsystem/mapping
)
```
The reverse can also be done, if a subsystem must initialize after your
own:
```dm
dependents = list(
    /datum/controller/subsystem/atoms
)
```
Cyclical dependencies are not allowed and will throw an error on
initialization if one is found.
There's also a debug tool to visualize the dependency graph, although
it's a bit basic:

![image](https://github.com/user-attachments/assets/80c854d9-c2a5-4f2f-92db-a031e9a8e257)

Subsystem load ordering can still be controlled using `init_stage`, some
subsystems use this in cases where they must initialize first or last
regardless of dependencies. An error will be thrown if a subsystem has
an `init_stage` before one of their dependencies.

## Why It's Good For The Game
Makes dealing with subsystem dependencies easier, and reduces the chance
of making a dependency error when needing to shift around subsystem
inits.

## Changelog
🆑
refactor: Refactored subsystem initialization
/🆑
2025-04-29 17:11:39 -06:00
TiviPlus f1f611e500 Force UTC±0 for time2text logging and IC times (#90347)
## About The Pull Request
This won't actually do anything on live, since those are all set to
UTC±0 currently

Pins logging and IC uses of time2text to UTC±0 instead of using the
system timezone (byond default)
Timezones not being set to utc0 caused issues before (and is again)

All timezones are now passed explicitly to make it more likely it's
cargo culted properly at least

Deletes worldtime2text cus it was gameTimestamp default args

## Why It's Good For The Game
Server timezone changes probably shouldn't affect logging, round times,
file hashes, IC time, when you caught fish, etc

## Changelog
🆑
refactor: Logging and IC timestamps will now always use UTC±0 and not be
affected by server system timezone changes
fix: Station and round times will not longer be incorrect if the system
timezone is not UTC±0
/🆑

---------

Co-authored-by: TiviPlus <572233640+TiviPlus@users.noreply.com>
2025-04-29 17:08:34 -06:00
John Willard 1c540bd546 Configurable events (removes mult config) (#90659)
## About The Pull Request

As said in https://forums.tgstation13.org/viewtopic.php?t=38517 - Admins
don't want to touch the event multiplier configs because,
``for example changing the mult to 1.5 would make heart attack only roll
on 60+ pop``

and ends with;
``it would be better to make a pull request to the codebase and alter
the min_player var on the events that are issues``

So why not let ALL events be editable by admins?
This PR makes every single event possible to be edited, though the json
only comes with the non-wizard non-holiday ones (though they are totally
addable if admins want to put it in, I just didnt think we should make
it obvious it's possible so they DONT)

The config is off by default (no effect regardless since I have it the
same as code-side).

## Why It's Good For The Game

The multiplier config is rendered irrelevant by instead being able to
tweak the individual events to your liking, especially when one touch of
that causes certain events to be rendered never runnable.
This is (sorta) an admin request, and it also makes event rarities and
such an admin issue, therefore not our problem anymore (mostly), wahoo.

Get FUCKED, Grid Check!

![image](https://github.com/user-attachments/assets/ff4314b5-4404-4f8e-905d-2d4824f8aa71)

## Changelog

🆑
config: Removed event time/weight multipliers, now all events vars are
editable in config.
/🆑

---------

Co-authored-by: CRITAWAKETS <sebastienracicot@hotmail.com>
2025-04-21 03:06:58 +02:00
Bloop d71375eafd Adds some trailing commas to lists (#90501)
## About The Pull Request

I heard you liked commas.

## Why It's Good For The Game

Trailing commas make everyone happy!

## Changelog

Nothing anyone will notice besides downstreams adding to these lists
2025-04-13 20:35:39 -04:00
Watermelon914 6c017cf1e1 Refactors subsystems to use dependency-ordering to determine init order. Subsystems can now declare their own dependencies. (#90268)
## About The Pull Request
As the title says.
`init_order` is no more, subsystems ordering now depends on their
declared dependencies.
Subsystems can now declare which other subsystems need to init before
them using a list and the subsystem's typepath
I.e.
```dm
dependencies = list(
    /datum/controller/subsystem/atoms,
    /datum/controller/subsystem/mapping
)
```
The reverse can also be done, if a subsystem must initialize after your
own:
```dm
dependents = list(
    /datum/controller/subsystem/atoms
)
```
Cyclical dependencies are not allowed and will throw an error on
initialization if one is found.
There's also a debug tool to visualize the dependency graph, although
it's a bit basic:

![image](https://github.com/user-attachments/assets/80c854d9-c2a5-4f2f-92db-a031e9a8e257)

Subsystem load ordering can still be controlled using `init_stage`, some
subsystems use this in cases where they must initialize first or last
regardless of dependencies. An error will be thrown if a subsystem has
an `init_stage` before one of their dependencies.

## Why It's Good For The Game
Makes dealing with subsystem dependencies easier, and reduces the chance
of making a dependency error when needing to shift around subsystem
inits.

## Changelog
🆑
refactor: Refactored subsystem initialization
/🆑
2025-04-03 17:04:30 -04:00
TiviPlus 88c2213f1e Force UTC±0 for time2text logging and IC times (#90347)
## About The Pull Request
This won't actually do anything on live, since those are all set to
UTC±0 currently

Pins logging and IC uses of time2text to UTC±0 instead of using the
system timezone (byond default)
Timezones not being set to utc0 caused issues before (and is again)

All timezones are now passed explicitly to make it more likely it's
cargo culted properly at least

Deletes worldtime2text cus it was gameTimestamp default args

## Why It's Good For The Game
Server timezone changes probably shouldn't affect logging, round times,
file hashes, IC time, when you caught fish, etc

## Changelog
🆑
refactor: Logging and IC timestamps will now always use UTC±0 and not be
affected by server system timezone changes
fix: Station and round times will not longer be incorrect if the system
timezone is not UTC±0
/🆑

---------

Co-authored-by: TiviPlus <572233640+TiviPlus@users.noreply.com>
2025-04-01 22:08:15 +02:00
SkyratBot 6a418150e8 [MIRROR] Spelling and Grammar Fixes (#29499)
* Spelling and Grammar Fixes

* they dont understand

---------

Co-authored-by: klorpa <30924131+klorpa@users.noreply.github.com>
Co-authored-by: projectkepler-RU <99981766+projectkepler-ru@users.noreply.github.com>
2024-08-22 02:34:54 +00:00
klorpa d2c7806047 Spelling and Grammar Fixes (#85992)
## About The Pull Request
Fixes several errors to spelling, grammar, and punctuation.
## Why It's Good For The Game
## Changelog
🆑
spellcheck: fixed a few typos
/🆑
2024-08-21 17:07:02 +12:00
norsvenska aefec7cb2b Corrects 200+ instances of "it's" where it should've been "its" instead (#85169)
## About The Pull Request

it's - conjunction of "it" and "is"
its - possessive form of "it"

grammar is hard, and there were a lot of places where "it's" was used
where it shouldn't have been. i went and painstakingly searched the
entire repository for these instances, spending a few hours on it. i
completely ignored the changelog archive, and i may have missed some
outliers. most player-facing ones should be corrected, though
## Why It's Good For The Game
proper grammar is good

## Changelog
🆑
spellcheck: Numerous instances of "it's" have been properly replaced
with "its"
/🆑
2024-07-21 15:47:03 -04:00
norsvenska 5f80128fa9 Corrects 200+ instances of "it's" where it should've been "its" instead (#85169)
## About The Pull Request

it's - conjunction of "it" and "is"
its - possessive form of "it"

grammar is hard, and there were a lot of places where "it's" was used
where it shouldn't have been. i went and painstakingly searched the
entire repository for these instances, spending a few hours on it. i
completely ignored the changelog archive, and i may have missed some
outliers. most player-facing ones should be corrected, though
## Why It's Good For The Game
proper grammar is good

## Changelog
🆑
spellcheck: Numerous instances of "it's" have been properly replaced
with "its"
/🆑
2024-07-21 13:41:37 -06:00
SkyratBot 3c800cf213 [MIRROR] Admins can reroll random events into something else (#27855)
* Admins can reroll random events into something else

* Fixing Conflicts

---------

Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com>
2024-06-06 10:26:30 +05:30
Rhials 39b84e7e2c Admins can reroll random events into something else (#83424)
## About The Pull Request

Random events can now be rerolled by admins, much like how they can
reroll dynamic rulesets. During the ten-second warning window, you can
choose "Something Else" to have a (randomly selected) different event
run in its stead. You still get the 10-second delay when this new one is
picked, meaning you can keep rerolling until you get something
interesting.

The option to just cancel a random event remains.
## Why It's Good For The Game

Cancelling a random event sets back the random event clock, meaning you
have to wait a few minutes for another one to roll. Now you can just
reroll dangerous events into something calmer (or y'know, calm events
into something more dangerous).
## Changelog
🆑 Rhials
admin: Admins can now reroll random events into something else.
/🆑
2024-05-25 15:55:03 -07:00
Gaxeer eccdc0c94c make SSevents frequeny_lower and frequency_upper configurable, fix runtimes when no events were drafted to trigger (#82978)
## About The Pull Request

Make events frequency configurable.
Fix runtime when no events were drafted to be picked from.

## Why It's Good For The Game

No runtimes good.
No need to change frequency in code.

🆑
fix: fix runtime when no events were drafted to be picked from
config: make events frequency configurable
/🆑

---------

Co-authored-by: san7890 <the@ san7890.com>
2024-05-02 01:15:33 +00:00
Gaxeer 9d2c02e691 make SSevents frequeny_lower and frequency_upper configurable, fix runtimes when no events were drafted to trigger (#82978)
## About The Pull Request

Make events frequency configurable.
Fix runtime when no events were drafted to be picked from.

## Why It's Good For The Game

No runtimes good. 
No need to change frequency in code.

🆑
fix: fix runtime when no events were drafted to be picked from
config: make events frequency configurable
/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
2024-05-02 03:14:35 +02:00
SkyratBot e5652ecc24 [MIRROR] Add compile option for compiling in MAP_TEST mode, which disables common annoyances when testing new maps (#26792)
* 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.

* Add compile option for compiling in `MAP_TEST` mode, which disables common annoyances when testing new maps

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-03-11 23:00:30 -04:00
MrMelbert 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
SkyratBot e2027683f5 [MIRROR] Reduces the average delay between random events, cleans up event subsystem code [MDB IGNORE] (#24378)
* Reduces the average delay between random events, cleans up event subsystem code

* Update events.dm

* Update events.dm

---------

Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-10-17 01:23:16 -04:00
Rhials 2cd02f187c Reduces the average delay between random events, cleans up event subsystem code (#78798)
## About The Pull Request

Alright first thing's first -- 

`frequency_lower = 3 minutes -> 2.5 minutes`
`frequency_upper = 10 minutes -> 7 minutes`

There's also some autodocing/unsinglenamevaring of the events subsystem,
and the event selection code has been moved to a pick_weight().

This should have no effect on summon events, since that sets the
frequencies manually when triggered.
## Why It's Good For The Game

The benign, fluffy events now heavily outweigh the truly destructive
events in the pool. Even situationally destructive ones like the
Supermatter Surge or Brand Intelligence provide players with a
meaningful diversion to keep themselves occupied with.

Having more things going on, and more for players to do, is a good
thing. Reducing the potentially lengthy delay between random events
should accomplish this without increasing the amount of chaos between
rounds.

Also, these values were changed 8 years ago, under the reasoning that
"there are more random events now". We can safely say that there are
even MORE random events now. I know changing something because it was
changed in the past isn't a valid reason, but it's what set me down this
road in the first place.

As a reminder, ghost antag events are handled through dynamic (unless
dynamic is out of threat), meaning this won't seriously affect how
frequently you see antags.

These values are, of course, subject to change in response to feedback,
discussion, and maintainers yelling at me.
## Changelog
🆑 Rhials
balance: Random event frequency has been adjusted to fire events more
often.
code: The event subsystem has been prettied up with comments and longer
variable names.
/🆑
2023-10-16 21:57:33 +02: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
Rhials 40873e0a98 Non-random events now provide a cause in their deadchat broadcast (#74904)
## About The Pull Request

Most calls of runEvent() now provide a cause that is read out to
deadchat. announce_deadchat() has been slightly adjusted to accommodate
this.

Previously, everything that wasn't a truly random event would broadcast
with the same generic "XYZ has just been triggered!" message. Now, you
get a little bit more detail as to why/what triggered the event.

Some helpers in the __HELPERS/events.dm file have been made, for forcing
events normally/async/after a delay (using an addtimer). This also moves
a lot (but not all) instances of events being forced to these helpers.

Some samples:


![image](https://user-images.githubusercontent.com/28870487/233735108-aea2996b-aff4-45e2-ae0c-3e07f86de9b7.png)
Traitors using uplink viruses to turn off the power/comms.


![image](https://user-images.githubusercontent.com/28870487/233734371-18a31dff-198e-4a4a-a43f-15be6cbb545e.png)
Beer nuke!


![image](https://user-images.githubusercontent.com/28870487/233731635-7c93c1ef-641d-40df-975e-a916af4d1129.png)
For when a traitor takes an Space Dragon final objective, which summons
a carp migration event.


![image](https://user-images.githubusercontent.com/28870487/233727323-e2cfc46f-909f-4754-a0f9-a2763360a376.png)
Wizard ritual events!


![image](https://user-images.githubusercontent.com/28870487/233733025-5c8284bc-02e1-41c8-aae4-76a5c2124d97.png)
Even this one!

This also changes runEvent() to run_event(), because I figured I'd be
touching every single instance of the proc anyways.

## Why It's Good For The Game

Better feedback, less confusion amongst deadchat's constituents. 

Some of them may be a bit self-explanatory, but in some cases
(especially the apocalypse rune) it's beneficial to know that an admin
isn't the one behind it.

<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->

## Changelog

🆑 Rhials
qol: Deadchat now gets more juicy details on what has triggered a
non-randomly occurring random event.
code: There are now helpers for forcing events in a variety of ways.
More events! More events!!!!!!!
/🆑
2023-04-24 18:45:41 -06:00
Gandalf afa770a886 Replace Chaos Event System with ICES - Intensity Credit Event System [LT3] (#20272)
* remove chaos/event vote system

* Delete event_chaos_system.dm

* someone was using those

* Update cme.dm

* coffee before commit

* Update event_frequency.dm

* Update cme.dm

* disable changeling

* Update tgstation.dme

* Update supermatter_surge.dm

* change to weight config C, rename dm

* typo, meteor minplayer

* too high

* Update random_events.dm

* weighting updates

* better documentation

* this file is gone, SM surge start time

* reduce scrub

* min player/time for extreme CME/threat meteors

* cme

* Update cme.dm

* cme

* idk why this reverted

* event credits

* intense event credits

* Update random_events.dm

* max occurrences

* new meteor warning

* Update tgstation.dme

* intensity credits, yo

* put ICES in a module folder

* move readme

* Update readme.md

* change logging

* Update events.dm

* Update ICES_event_config.dm

* Update events.dm

* Update events.dm

* Update events.dm

* remove debug logging

* minplayer balancing

* ICES panel

* ope

* Update ICES_event_mods.dm

* tgui panel

* ices_data

* whoa useful info?

* event init

* Update configuration.dm

* Update ICES_event_config.dm

* ...

* make those vars

* Update ICES_tgui.dm

---------

Co-authored-by: lessthnthree <three@lessthanthree.dk>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
2023-04-02 16:50:17 +01:00
SkyratBot 47839a787e [MIRROR] Meteor events won't try and run on icebox [MDB IGNORE] (#19185)
* Meteor events won't try and run on icebox

* Update mapping.dm

* Update _event.dm

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: lessthnthree <three@lessthanthree.dk>
2023-02-17 01:28:04 -08:00
Jacquerel cfb2d9feb9 Meteor events won't try and run on icebox (#73241)
## About The Pull Request

While I was trying to improve changeling meteor spawning on Icebox I
noticed that several other meteor-like events don't seem to be blocked
on Icebox either even though they don't do anything.
I added a new capability to events which can prevent them being loaded
under certain map conditions (specifically: whether the map is in space
or not). Currently there's no events which _only_ run on a planet but,
now someone could add one I guess?

Now all of the events which spawn meteors are filtered out on icebox and
you can't absent-mindedly try to trigger them.

![image](https://user-images.githubusercontent.com/7483112/216799539-f843bdf6-c70f-4815-a355-0b297acad1a6.png)

Also a couple of dynamic options had this applied too, chiefly ones
which expect you to be able to fly a space ship to the space station.

## Why It's Good For The Game

These events shouldn't run on Icebox (or soon, Chilled) because they
don't do anything there.
AFAICT Meteors were getting as far as trying to spawn, then would retry
trying to find space tiles which didn't exist until they failed 10
times, then give up. Once per every meteor it tried to spawn. Gross.

## Changelog

🆑
fix: Meteors can't be triggered automatically or manually on Icebox,
where they do nothing.
fix: Hacking a comms console as a traitor won't try to summon meteors or
pirates to Icebox, where they do nothing.
/🆑
2023-02-05 19:19:28 -07:00
Paxilmaniac 8c9bd528d4 Makes the event voter low chaos event system obey the toggle random events off button, also changes event voter permissions to be the same as literally everything else event related (#17466)
* you spelled trigger wrong

* Update modular_skyrat/modules/event_vote/code/event_vote.dm

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* requested changes

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2022-11-19 11:40:47 -05:00
SkyratBot 4741dc4ac9 [MIRROR] Fix halloweens races [MDB IGNORE] (#17270)
* Fix halloweens races

* update modular

* Apply suggestions from code review

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2022-10-31 18:00:11 +00:00
MrMelbert a1ab0201ff Fix halloweens races (#70874)
* Fixes halloween races.
- Fixes a race condition involve checking for holidays befores SSevents is instantiated. Now, holiday checking is done through a helper, which will ensure the holidays list is created and filled before checked.
2022-10-31 16:01:31 +01:00
SkyratBot 63f635d57a [MIRROR] events now have to check parent to see if they can run [MDB IGNORE] (#16506)
* events now have to check parent to see if they can run (#70128)

* events now have to check parent to see if they can run

* update supermatter_surge

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2022-09-28 17:20:10 -04:00
John Willard 5f1c98bd45 events now have to check parent to see if they can run (#70128) 2022-09-27 22:31:15 -07:00
SkyratBot a00cad0164 [MIRROR] Clean up subsystem Initialize(), require an explicit result returned, give a formal way to fail (for SSlua) [MDB IGNORE] (#16248)
* Clean up subsystem Initialize(), require an explicit result returned, give a formal way to fail (for SSlua)

* [PR for MIRROR PR] Changes for 16248 (#16277)

* Merge skyrat changes, update SR SS's, and remove lobby_eye

* Apply suggestions from code review

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Update modular_skyrat/modules/autotransfer/code/autotransfer.dm

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* restore lobby_cam for now

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

Co-authored-by: Tastyfish <crazychris32@gmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2022-09-24 17:32:40 -04:00
Tastyfish 4733643f39 Clean up subsystem Initialize(), require an explicit result returned, give a formal way to fail (for SSlua) (#69775)
* cleanup SS API, give SSlua a proper way to error out

* New SS_INIT_ system
2022-09-14 23:52:10 -04:00
SkyratBot 5a33abb773 [MIRROR] Event menu rewrite [MDB IGNORE] (#15396)
* Event menu rewrite

* Update topic.dm

* Update _event.dm

* Update event_chaos_system.dm

Co-authored-by: Profakos <profakos@gmail.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-08-08 01:15:12 +01:00
Profakos b5e57216ee Event menu rewrite (#68472)
About The Pull Request

kép

This PR does the following:

    Force event menu uses tgUI.
    Arranged events into categories, and added a little description to each. The descriptions appear as tooltips when you hover over the Trigger button.
    Rewrote how "Announce to crew?" works. It no longer pops up a panel after the event has been already announced. Instead, the admins select it via a checkbox, and the result is passed through an optional argument.
    announceChance's comment is tweaked a bit to reflect how it actually works at the moment.
    Moved rpgtitles to wizard events, where it belongs.
    Fake Virus and Electric Storms show up to observers, as I believe they are not as common as Space Dust or Camera Failure, and should be cancelable.

Potential issues:
This only solves half of #68408, I don't think admin triggering having a timer and a cancel button is a big issue, as it allows other admins to overrule you if needed, but if i is, I will try to fix it within this PR.

Fixes #68408. Events now spawn immediately, and the the announceChance is overwritten before it begins.

My choices for categories and descriptions might not be the best, feedback would be appreciated.
Why It's Good For The Game

The old spawn menu was completely unorganized, and you could only search using the browser search tool. I believe a built in search bar helps with this issue a bit. I also believe that organizing the events into categories, and adding descriptions will help with newer admins who might not be familiar with all events.
Changelog

cl
refactor: The Force Event UI has been refactored
refactor: Events now have categories and descriptions
refactor: Admin triggered events happen immediately
balance: Fake Virus and Electric Storms are shown to admins, making them cancelable
/cl
2022-08-05 09:18:14 +12:00
Gandalf f29b48987e Event voting system, prelude to event planner (#11270)
* wooo

* Update event_vote.dm

* fixes

* Update event_vote.dm

* wrrr

* allows admins to host a player vote.

* weeee

* Update event_vote.dm

* href

* Update event_vote.dm

* EEE

* finishing touches

* Update event_vote.dm

* R_SERVER > R_PERMISSIONS, ties, reschedule

* Update event_vote.dm

* fun > events category

* redundant code removal

* Update tgstation.dme

* Update events.dm

* publik event vote

* llogging

* llogging

* Update configuration.dm

* Update event_vote.dm

* code review and votable

* round two review

* one little thing kills the world

* Update event_vote.dm

* woop

* Update event_vote.dm

* Better event weighting system

* Even chaos system

* EEE

* Update event_chaos_system.dm

* Update event_vote.dm

* Update event_vote.dm

* wweeee

* fixes

* low chaos event system,

* Update event_vote.dm

* Update event_chaos_system.dm

* vote button QOL

* www

* stop overlapping

* Update event_vote.dm

* Update EventPanel.js

* Update EventPanel.js

* e

* e

* Update event_vote.dm

* data

* Update event_vote.dm

* Update event_vote.dm

* Update event_vote.dm

* Update tgstation.dme

* Update tgstation.dme

* wew

* Update skyrat_config.txt

* No consecutive high chaos events

* Update event_chaos_system.dm

* Update sunbeam.dm

* more config

* no

* vote log

* Update event_vote.dm

* wew

* better handling of low chaos events

* wew

* Update ticker.dm
2022-05-04 10:29:00 +01:00
Gandalf 27c2f9fd08 Events audit, moving overrides to modular files + TEMP FIX (#9941)
* RESET

* debug stuff

* Update events.dm

* fixed

* Modular override file

* Update event_overrides.dm

* Update event_overrides.dm

* Update cme.dm

* Update event_overrides.dm

* Update game.dm

* 0

* 0

* Update events.dm

* E

* Update code/modules/events/_event.dm

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Update event_overrides.dm

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2021-12-15 01:48:44 +00:00
Matthew J bab2714a02 [NON-MODULAR] Events Roll Less Often (#7147)
* update event freq

* Update code/controllers/subsystem/events.dm

* Update code/controllers/subsystem/events.dm

* Update cme.dm
2021-07-27 17:24:57 -05:00
SkyratBot 04abb98894 [MIRROR] Remove a bunch of old gamemode code (#6025)
* Remove a bunch of old gamemode code

* Mirror!

* Woopsie, modular game modes!

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Funce <funce.973@gmail.com>
2021-06-01 12:36:59 +12:00
Mothblocks e2b929974e Remove a bunch of old gamemode code (#59067)
* Beep beep gamemode removal coming through

* More cleaning

* More cleaning

* Clean up station_was_nuked

* Station nuke source

* Remove name

* More unused functions

* Remove antag rep, which was unused in dynamic

* Remove more antag rep stuff, which was UNUSED IN DYNAMIC

* Station goals outside of mode

* Remove setup_done

* Remove player lists

* Move some older procs

* Fix simulations

* Attempt to fix this stupid case sensitive bullshit

* Revert "Attempt to fix this stupid case sensitive bullshit"

This reverts commit 8693c02d67602543d7d4b92130a7a32cd973e5bf.

* ???

* Delete icons/Testing directory

* Move station_goals global definition
2021-05-29 11:03:41 +02:00
SkyratBot 58edc266cc [MIRROR] Makes holidays span all timezones by default (#5338)
* Makes holidays span all timezones by default

* Update holidays.dm

Co-authored-by: cacogen <25089914+cacogen@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-05-01 13:31:29 +01:00
cacogen 0c5a968a83 Makes holidays span all timezones by default (#58673)
* Adds timezone support for regional holidays

Also adds timezones to Waitangi Day, ANZAC Day, US Independence Day and Bastille Day

* Makes holidays span all timezones by default

Changes April Fools, Halloween and Christmas to be the correct dates instead of a range, using three timezones to cover the correct range instead

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-04-29 15:46:32 -07:00
Gandalf aa1059119e CME tweaks and fire occurrence reduction (#4249)
* a

* a

* Update cme.dm
2021-03-20 01:17:44 +00:00
Gandalf c0b99ccfef Coronal Mass Ejection Event (#3280)
* a

* Update cme.dm

* Update _cme_defines.dm

* Update cme.dm

* Update cme.dm

* Update cme.dm

* a

* Update cme.dm

* a

* random!

* TEMP DEBUG STATS, UNDO ONCE READY TO MERGE!

* a

* Update cme.dm

* better sfx

* Update cme.dm

* Update cme.dm

* Update cme.dm

* Neutralize!

* Update cme.dm

* Update cme.dm

* a

* Update cme.dm

* Update cme.dm

* Update cme.dm

* CME changes

* Update anomaly_neutralizer.dm

* aa

* Update cme.dm

* a

* Update admin_verbs.dm

* Fix gamma loop

* Update cme.dm

* Update set_security_level.dm

* Update code/controllers/subsystem/events.dm
2021-02-15 20:18:57 +00:00
SkyratBot b332b46b65 [MIRROR] Remove hideous inline tab indentation, and bans it in contributing guidelines (#3394)
* Remove hideous inline tab indentation, and bans it in contributing guidelines

* a

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-02-15 15:32:02 +00:00
Mothblocks 0f435d5dff Remove hideous inline tab indentation, and bans it in contributing guidelines (#56912)
Done using this command sed -Ei 's/(\s*\S+)\s*\t+/\1 /g' code/**/*.dm

We have countless examples in the codebase with this style gone wrong, and defines and such being on hideously different levels of indentation. Fixing this to keep the alignment involves tainting the blames of code your PR doesn't need to be touching at all. And ultimately, it's hideous.

There are some files that this sed makes uglier. I can fix these when they are pointed out, but I believe this is ultimately for the greater good of readability. I'm more concerned with if any strings relied on this.

Hi codeowners!

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2021-02-14 16:53:29 -08:00
SkyratBot 312a312dc6 [MIRROR] Fix Hanukkah (again) and refactor Moth Week and Beer Day (#2200)
* Fix Hanukkah (again) and refactor Moth Week and Beer Day (#55532)

* Fix Hanukkah (again) and refactor Moth Week and Beer Day

* Remove unnecessary changes

* Fix Hanukkah (again) and refactor Moth Week and Beer Day

Co-authored-by: Jack LeCroy <3073035+jacklecroy@users.noreply.github.com>
2020-12-17 08:05:26 +01:00
Jack LeCroy 23ee09967e Fix Hanukkah (again) and refactor Moth Week and Beer Day (#55532)
* Fix Hanukkah (again) and refactor Moth Week and Beer Day

* Remove unnecessary changes
2020-12-16 17:16:44 -08:00
Azarak eb8b6e204c lowers events frequency (#1118) 2020-10-04 23:45:58 +01:00