Commit Graph

2728 Commits

Author SHA1 Message Date
SkyratBot
0c7322f47b [MIRROR] Improvements to Anon Names + Refactoring + Wizard Academy theme and event (#2853)
* Improvements to Anon Names + Refactoring + Wizard Academy theme and event (#55935)

Co-authored-by: Rohesie <rohesie@ gmail.com>

* Improvements to Anon Names + Refactoring + Wizard Academy theme and event

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: Rohesie <rohesie@ gmail.com>
2021-01-24 03:02:10 +00:00
SkyratBot
493ee57b09 [MIRROR] Prevents the most common case of fire settling with an excited group (#2845)
* Prevents the most common case of fire settling with an excited group (#56317)

Basically when a group with a breakdown timer one tick away from settling merges with a group with hotspots in
it, and the one with a high breakdown timer is larger, the group would settle without respecting the timer of
the hotspot group, causing fwoosh levels of flame.

There's two other ways to achieve this, if you had one group of tiles that are close to the same gasmix as
another
group, and they became inactive, we'd have the same issue. I've solved this by moving the hotspot subprocess to
after active turfs and before excited groups, just for safety ya feel me?

It's still in theory possible, but much much harder. The hard solution to this would be to integrate heat with
how we reset excited group timers, and split excited groups into smaller portions, but I'm not sure I like that
idea.
I need to mull it over.

* Prevents the most common case of fire settling with an excited group

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2021-01-23 18:09:23 +00:00
Seris02
3f8b268455 no_dresscode variable but this time it doesn't override important slots (#2468)
* once again but better this time

* Makes it so that equipping them has no sound

* Update code/modules/mob/mob.dm

Co-authored-by: Azarak <azarak10@gmail.com>

Co-authored-by: Azarak <azarak10@gmail.com>
2021-01-18 23:02:51 +00:00
SkyratBot
e1b79181af [MIRROR] Fixes regular and material floor tile recipes having the same name. (#2768)
* Fixes same-name for floor tile recipes. (#56207)

When you try to seal a breach you'll need to make sure there's lattice, and over the lattice you need to put a floor tile. The material floor tiles don't work for this, or at least the iron one doesn't. The regular one does. But it's sort of a guess on which is which while creating the recipe, unless the names are different.

* Fixes regular and material floor tile recipes having the same name.

Co-authored-by: Rohesie <rohesie@gmail.com>
2021-01-18 07:46:11 +01:00
SkyratBot
37b0b53f1c [MIRROR] Add better weakref support to qdel (#2766)
* Add better weakref support to qdel (#56206)

* Add better weakref support to qdel

* change request

* Add better weakref support to qdel

Co-authored-by: spookydonut <github@spooksoftware.com>
2021-01-18 07:45:33 +01:00
SkyratBot
3499115feb [MIRROR] Add weakref support to qdel (#2742)
* Add weakref support to qdel (#56171)

qdel() should allow usage of weakrefs to avoid harddels on long duration qdel_in usage

* Add weakref support to qdel

Co-authored-by: spookydonut <github@spooksoftware.com>
2021-01-17 13:31:17 +01:00
SkyratBot
94f9a384b0 [MIRROR] [READY] Bespoke Datum Mats (#2737)
* [READY] Bespoke Datum Mats

* Update sheetifier.dm

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2021-01-17 13:25:04 +01:00
SkyratBot
2211ed042a [MIRROR] Stack overflow detection for the Master Controller. (#2730)
* Stack overflow detection for the Master Controller. (#56008)

* Stack overflow detection for the Master Controller.

Using a weakref, we can detect if the mc's stack was ended by byond due to a stack overflow, and restart it without waiting the entire defcon countdown in the failsafe controller.

I built a system around this concept under /datum/stack_end_detector and deployed it to the MC's main loop with checks in the failsafe controller.

* Stack overflow detection for the Master Controller.

Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
2021-01-17 13:06:37 +01:00
SkyratBot
fcf376c5e6 [MIRROR] Allow dynamic to be configured when used as the forced secret mode (#2721)
* Allow dynamic to be configured when used as the forced secret mode (#56122)

Allow dynamic to be configured (roundstart rulesets) when used as the forced secret mode

* Allow dynamic to be configured when used as the forced secret mode

Co-authored-by: Mothblocks <35135081+Jared-Fogle@users.noreply.github.com>
2021-01-16 00:50:01 +01:00
SkyratBot
b670babe47 [MIRROR] Revert "Finishes the allocation refactor" (#2676)
* Revert "Finishes the allocation refactor (#55965)" (#56137)

This reverts commit 87234f3fd8.

* Revert "Finishes the allocation refactor"

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2021-01-13 04:28:00 +01:00
SkyratBot
63adea0ebb [MIRROR] [READY] A victory for revolutionaries will no longer end the round on dynamic, instead no new security and command will be allowed to join (#2653)
* [READY] A victory for revolutionaries will no longer end the round on dynamic, instead no new security and command will be allowed to join (#55956)

Currently, a victory for revoutionaries leads to the round abruptly ending on dynamic. This has been replaced by all revolutionaries being deconverted, and no new security or command positions being available.

Also attempts to unionize (pun intended) copy and paste code in the round start and late join revolutionary rulesets into being handled under the revolutionary team instead.

* [READY] A victory for revolutionaries will no longer end the round on dynamic, instead no new security and command will be allowed to join

Co-authored-by: Mothblocks <35135081+Jared-Fogle@users.noreply.github.com>
2021-01-12 06:50:49 +01:00
SkyratBot
cc74eb9d55 [MIRROR] Finishes the allocation refactor (#2646)
* Finishes the allocation refactor (#55965)

#53841 continuation
I recall that the reason for infinite stuns and such was that the priority wasn't being cleared properly when something hitched and I fixed it and I don't remember where exactly but it works now (TM)
A variation of this is TMed on TGMC and it works fine

* Finishes the allocation refactor

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
2021-01-12 01:52:46 +01:00
SkyratBot
11acb0c634 [MIRROR] Fix startup double runtimes again (#2607)
* Fix startup double runtimes again (#56047)

Prevents runtimes that occur before /world/New is called from runtiming in /world/Error due to lack of the config being loaded.

* Fix startup double runtimes again

Co-authored-by: Jordan Brown <Cyberboss@users.noreply.github.com>
2021-01-10 08:21:34 +01:00
SkyratBot
f79e91462c [MIRROR] LINDA Reforged (#2573)
* LINDA Reforged

* Update airlock.dm

* Update biohazard_blob_controller.dm

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2021-01-08 18:52:35 +01:00
SkyratBot
6d1303fd6d [MIRROR] Fixes SSnetworks logging runtime. (#2488)
* Fixes NTNet logging runtime (#55892)

SSnetworks can log when it's passed a text network ID.

* Fixes SSnetworks logging runtime.

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
2021-01-04 16:01:34 +01:00
Azarak
3790a1e001 [READY] Ghost roles can now be configured to allow people using their prefs character. Allows this for a good chunk of ghosties (#2341)
* aaa

* a

* Update species.dm

* Update tgstation.dme

* wrong styling

* Update preferences.dm

* Update corpse.dm

* Update corpse.dm

* Update ghost_role_spawners.dm

* Update preferences.dm

Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-01-04 01:31:07 +00:00
Azarak
e880709f33 Revert "Makes it so assistants (and others with the no_dresscode var) have their loadout equipped first (#2404)" (#2452)
This reverts commit 5cb983a090.
2021-01-02 21:51:08 +00:00
Seris02
5cb983a090 Makes it so assistants (and others with the no_dresscode var) have their loadout equipped first (#2404)
* bug got yeeted

* tiny little edit for documentation
2021-01-01 20:07:48 +00:00
SkyratBot
7427fbb096 [MIRROR] Add TIMER_DELETE_ME (#2407)
* Add TIMER_DELETE_ME (#55803)

* Add TIMER_DELETE_ME

Co-authored-by: spookydonut <github@spooksoftware.com>
2020-12-31 23:27:43 +01:00
SkyratBot
d7f054b035 [MIRROR] Refactors monkeys into a species (#2379)
* Refactors monkeys into a species

* aaa

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-12-31 21:08:07 +01:00
SkyratBot
73b1aefe3f [MIRROR] Admins cancelling a vote now leaves a log and message (#2388)
* Merge pull request #55810 from NotRanged/democracy

Admins cancelling a vote now leaves a log and message

* Admins cancelling a vote now leaves a log and message

Co-authored-by: 81Denton <32391752+81Denton@users.noreply.github.com>
2020-12-31 01:39:03 +00:00
NotRanged
df0318d50e [SEMI-MODULAR] Ports the old food like/dislike system (#2092)
* added: bobjoga code

* the numbers

Co-authored-by: Ranged <nickvanderkroon@gmail.com>
2020-12-30 21:19:13 +00:00
SkyratBot
4c5433d5cf [MIRROR] The Great Radio Rework: NTNET Part 1 of many. (#2384)
* The Great Radio Rework: NTNET Part 1 of many.

* Update airlock.dm

Co-authored-by: WarlockD <warlockd@gmail.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2020-12-30 21:14:49 +00:00
SkyratBot
50fbeb7f04 [MIRROR] Adds a minor negative quirk: Bad Touch (for the anti-huggers) (#2360)
* Adds a minor negative quirk: Bad Touch (for the anti-huggers)

* caw caw

* AAAA FIX INDENT

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Avunia Takiya <git@takiya.cloud>
2020-12-29 10:49:00 +01:00
SkyratBot
e9c8fd845d [MIRROR] Shuttle Manipulator now gives admins the option to prevent shuttle purchases when they change the emergency shuttle. (#2298)
* Butthurt Admin Prevention (#55661)

It's a story as old as time itself. Admin loads a new shuttle, decorates it, and then shuttle catastrophe triggers and the admin gets deeply, deeply owned. With this, you can set what emergency shuttle they picked and prevent any more changes to the shuttle!

* Shuttle Manipulator now gives admins the option to prevent shuttle purchases when they change the emergency shuttle.

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
2020-12-24 12:30:29 +01:00
Gandalf
2f2aa2ded9 Update vote.dm (#2277) 2020-12-23 12:50:33 +01:00
SkyratBot
a137056fd4 [MIRROR] The garbage collector doesn't waste time anymore (#2241)
* The garbage collector doesn't waste time anymore (#55595)

Co-authored-by: Kyle Spier-Swenson <kyleshome@ gmail.com>

* The garbage collector doesn't waste time anymore

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Kyle Spier-Swenson <kyleshome@ gmail.com>
2020-12-19 12:41:15 +01: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
SkyratBot
7a185e0b4d [MIRROR] [READY] Creates Datumized AI and applies it to monkeys (#2166)
* [READY] Creates Datumized AI and applies it to monkeys (#55238)

New AI system, implemented for monkeys.

* [READY] Creates Datumized AI and applies it to monkeys

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
2020-12-13 13:45:09 +00:00
SkyratBot
0c53462374 [MIRROR] Refactors the procedural generation of lavaland and turf/closed/mineral (#2131)
* Refactor the procedural generation of lavaland and turf/closed/mineral (#54915)

This replaces lavaland's old diagonal tunnel gen which was really
horrendously jammed into asteroid floor code (?????) with Cellular
Automata which runs in rust (PR for that here:
https://github.com/tgstation/rust-g/pull/57 ). The new code is a bit
cleaner, but also looks better.

VID: https://streamable.com/a45ke2

Things to do:
- Make an icemoon version
- Fix the roundstart atmos adjacency issues

I asked AnturK if this was an acceptable PR for this month; he said it
was okay as long as I didn't add new areas, which I don't plan to do.
But if anyone thinks this PR breaks the spirit of the month I'll open
it again in december.

* Refactors the procedural generation of lavaland and turf/closed/mineral

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
2020-12-11 06:10:38 +01:00
SkyratBot
9dfb7a1189 [MIRROR] Everything that uses maptext now uses the class that makes it actually readable (#2116)
* Everything that uses maptext now uses the class that makes it actually readable

* Update chatmessage.dm

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2020-12-11 00:40:04 +00:00
SkyratBot
e0a5c58460 [MIRROR] Add config for discord bot prefix (#2122)
* Add config for discord bot prefix (#55400)

This allows you to set this in config, save having to hardcode it

I also fixed a mistake where only one message was changed in the
messaging from the account linking system

* Add config for discord bot prefix

Co-authored-by: oranges <email@oranges.net.nz>
2020-12-11 00:26:25 +00:00
SkyratBot
66c207e19c [MIRROR] Reverts (#54963) due to timer spam (#2109)
* Revert "Refactors how movetype flags are added and removed and the floating animation (#54963)" (#55432)

This reverts commit b8425c003a.

* Reverts (#54963) due to timer spam

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2020-12-10 05:58:05 +01:00
SkyratBot
afce3e2a94 [MIRROR] pass_flags handling refactor + rewrites a part of projectiles for the n-th time (#2097)
* pass_flags handling refactor + rewrites a part of projectiles for the n-th time (#54924)

Yeah uhh this'll probably need testmerging even after it's done because yeah it's a bit big.
If y'all want me to atomize this into two PRs (pass flags vs projectiles) tell me please. Pass flags would have to go in first though, in that case, as new projectile hit handling will rely on pass_flags_self.
Pass flags:

Pass flags handling now uses an atom variable named pass_flags_self.
If any of these match a pass_flag on a thing trying to pass through, it's allowed through by default.
This makes overriding CanAllowThrough unnecessary for the majority of things. I've however not removed overrides for very.. weird cases, like plastic flaps which uses a prob(60) for letting PASSGLASS things through for god knows why.
LETPASSTHROW is now on pass_flags_self
Projectiles:

Not finalized yet, need to do something to make the system I have in mind have less unneeded overhead + snowflake

Basically, for piercing/phasing/otherwise projectiles that go through things instead of hitting the first dense object, I have them use pass_flags flags for two new variables, projectile_phasing and projectile_piercing. Anything with pass_flags_self in the former gets phased through entirely. Anything in the latter gets hit, and the projectile then goes through. on_hit will also register a piercing hit vs a normal hit (so things like missiles can only explode on a normal hit or otherwise, instead of exploding multiple times. Not needed as missiles qdel(src) right now but it's nice to have for the future).

I still need to decide what to do for hit handling proper, as Bump() is still preferred due to it not being as high-overhead as something like scanning on Moved(). I'm thinking I'll make Moved() only scan for cases where it needs to hit a non-dense object - a prone human the user clicked on, anything special like that. Don't know the exact specifics yet, which is why this is still WIP.

Projectiles now use check_pierce() to determine if it goes through something and hits it, doesn't hit it, or doesn't go through something at all (should delete self after hitting). Will likely make an on_pierce proc to be called post-piercing something so you can have !fun! things like projectiles that go down in damage after piercing something. This will likely deprecate the process_hit proc, or at least make it less awful.

scan_for_hit() is now used to attempt to hit something and will return whether the projectile got deleted or not. It will delete the projectile if the projectile does hit something and fails to pierce through it.

scan_moved_turf() (WIP) will be used for handling moving onto a turf.

permutated has been renamed to impacted. Ricocheting projectiles get it reset, allowing projectiles to pierce and potentially hit something again if it goes back around.

A new unit test has been added checking for projectiles with movement type of PHASING. This is because PHASING completely causes projectiles to break down as projectiles mainly sense collisions through Bump. The small boost in performance from using PHASING instead of having all pass flags active/overriding check_pierce is in my opinion not worth the extra snowflake in scan_moved_turf() I'd have to do to deal with having to check for hits manually rather than Bump()ing things.
Movement types

UNSTOPPABLE renamed to PHASING to better describe what it is, going through and crossing everything but not actually bumping.
Why It's Good For The Game

Better pass flags handling allows for less proc overrides, bitflag checks are far less expensive in general.

Fixes penetrating projectiles like sniper penetrators

This system also allows for better handling of piercing projectiles (see above) without too much snowflake code, as you'd only need to modify on_pierce() if you needed to do special handling like dampening damage per target pierced, and otherwise you could just use the standardized system and just set pass flags to what's needed. If you really need a projectile that pierces almost everything, override check_pierce(), which is still going to be easier than what was done before (even with snowflake handling of UNSTOPPABLE flag process_hit() was extremely ugly, now we don't rely on movement types at all.)

* pass_flags handling refactor + rewrites a part of projectiles for the n-th time

Co-authored-by: silicons <2003111+silicons@users.noreply.github.com>
2020-12-09 23:44:54 +01:00
SkyratBot
2ee5d422ae [MIRROR] Refactors how movetype flags are added and removed and the floating animation (#2096)
* Refactors how movetype flags are added and removed and the floating animation (#54963)

I wanted to refactor how movetype flags are added and removed into traits to prevent multiple sources of specific movement types from conflicting one other. I ended up also having to refactor the floating animation loop (the one that bobs up and down) code in the process.
Why It's Good For The Game

A way to avoid conflict from multiple sources of movement types.
This also stops melee attacks, jitteriness and update_transform() from temporarily disabling the floating movetype bitflag altogether until the next life tick.

Tested, but i'm pretty sure improvements could be made.
Changelog

cl
fix: jitteriness, melee attack animations and resting/standing up should no longer momentarily remove the floating movement type.
/cl

* Refactors how movetype flags are added and removed and the floating animation

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2020-12-09 23:43:42 +01:00
SkyratBot
f105b47a55 [MIRROR] Singularity component (#2082)
* Singularity component (#55096)

Adds singularity component

* Singularity component

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2020-12-08 11:30:39 +00:00
Funce
9e63d2fed3 Our Discord message shouldn't rely on their being another station (#2063) 2020-12-07 05:47:28 +00:00
Funce
3ed84722a0 Adds the original Discord messages back to the alert system, no more barrenness (#2050) 2020-12-06 22:59:47 +01:00
Gandalf
7ee24f06bd Gamma Alert [SEMI-MODULAR] (#2029)
* aaah

* a
2020-12-03 21:39:49 +01:00
SkyratBot
2d58d386ef [MIRROR] Migrate some docs from the GitHub wiki into the repository (#2027)
* Merge pull request #55268 from AutomaticFrenzy/patch/docs-from-github-wiki

Migrate some docs from the GitHub wiki into the repository

* Migrate some docs from the GitHub wiki into the repository

Co-authored-by: Jordan Brown <Cyberboss@users.noreply.github.com>
2020-12-03 17:16:02 +00:00
Azarak
309af8c333 aaa (#1996) 2020-12-01 21:08:52 +00:00
SkyratBot
c487c73f39 [MIRROR] Grep for space indentation (#1969)
* Grep for space indentation

* aa

* Update species.dm

* Update species.dm

* Update maps.dm

* Update examine.dm

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-12-01 12:26:41 +01:00
SkyratBot
2cf928b280 [MIRROR] Init sanity unit test (#1980)
* Init sanity unit test (#55147)

https://github.com/tgstation/TerraGov-Marine-Corps/pull/5326
Stemming from
https://github.com/ParadiseSS13/Paradise/pull/14770

Basically it just checks for bad initialize calls

* Init sanity unit test

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
2020-11-30 23:01:45 +00:00
Gandalf
363a7a72a1 a (#1951) 2020-11-30 18:35:25 +01:00
Gandalf
e45fb4ca44 Realtime Indicator [NON-MODULAR] (#1921)
* REAL TIME BABY

* REAL TIME BABY
2020-11-30 13:22:23 +01:00
SkyratBot
94cb4e0ce4 [MIRROR] sstimer no longer batches maintenance tasks to the bucket list to avoid edge cases and duplicated logic. (#1933)
* sstimer no longer batches maintenance tasks to the bucket list to avoid edge cases and duplicated logic. (#55140)

* sstimer no longer delays maintenance tasks if its going over its tick.

This was leading to bugs if certain state operations happened while a task was delayed, furthermore if the timer subsystem was overloaded, the invoked timers list would bloat as it would never get cleared out, which would make all timer invocations take longer as they had to add to an ever growing list.

* Update timer.dm

* Fix error when a bucket has only one timer.

* simply timer loop logic & improve timer debug string

It would try to batch up linked list modifications and every issue we have ever had has been related to this, so now it just directly pulls the head of the linked list off, using bucketEject, rather then detect when it reaches the end of the linked list queue it will now just know because the bucket will be empty.

All bucketCount logic has been moved to bucketEject and bucketJoin(), which should also keep that more proper.

* Update timer.dm

* Update timer.dm

* sstimer no longer batches maintenance tasks to the bucket list to avoid edge cases and duplicated logic.

Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
2020-11-29 21:28:18 +00:00
Azarak
491d9f48a2 aaa (#1910) 2020-11-28 17:18:33 +00:00
SkyratBot
67a9fd3a45 [MIRROR] Remove the hyphen from the default value of the github url string (no longer -tg-station) (#1858)
* Remove the hyphen from the default value of the github url string (no longer -tg-station) (#55136)

* Remove the hyphen from the default value of the github url string (no longer -tg-station)

Co-authored-by: Bobbahbrown <bobbahbrown@gmail.com>
2020-11-26 23:18:34 +00:00
Gandalf
bd1a70b8d8 Update air.dm (#1840) 2020-11-25 17:45:33 -06:00
Gandalf
6ef0e46849 Server tagline [SEMI-MODULAR] (#1835)
* aaaaaaa

* Update world.dm

* aaa

* Update config.txt
2020-11-25 15:32:14 -06:00