Commit Graph

2942 Commits

Author SHA1 Message Date
SkyratBot
ea7677aedb [MIRROR] Enables 514 testing on master, Removes all reliance on extools outside of maptick (#3224)
* Enables 514 testing on master, Removes all reliance on extools outside of maptick (#56724)

* Uses 514's map_cpu var when it's available

* Uses auxtools for the debugger, to supply cross verison compatibility

* Nukes extools reference tracking, reinstates the old ref tracking system

* Enables 514 testing on master, Removes all reliance on extools outside of maptick

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2021-02-09 09:46:34 +00:00
SkyratBot
ed4608a7bb [MIRROR] Fixes the atmos subsystem locking up on rare occasions (#3182)
* Fixes the atmos subsystem locking up on rare occasions

* Update air.dm

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-02-08 23:38:45 +00:00
SkyratBot
cc9ef500c7 [MIRROR] repaths plasteel tiles to iron (#3155)
* repaths plasteel tiles to iron

* Update robot_modules.dm

* a

* fuck me

Co-authored-by: Fikou <piotrbryla@onet.pl>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-02-08 23:29:36 +00:00
SkyratBot
cc67a133e5 [MIRROR] [READY] Adds station traits: Small modifiers that can randomly be chosen each round (#3132)
* [READY] Adds station traits: Small modifiers that can randomly be chosen each round

* conflicts

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-02-08 23:07:24 +00:00
SkyratBot
18d9daadb1 [MIRROR] Improves friendly commendation code (#3110)
* Improves friendly commendation code (#56453)

* Improves friendly commendation code

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2021-02-05 21:42:47 +00:00
SkyratBot
25df6e7da3 Cleaning up robot code: modules renamed to models & DOGBORG REWORK (#2837)
* Cleaning up robot code: modules renamed to models

* Merge branch 'master' into upstream-merge-56312

* [PR Fix] Modular_Skyrat borgos (#3019)

* No more linter complaining

* Halfway (or full way, I don't know) through moving stuff around

* Caps!

* a

Co-authored-by: dragomagol <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
Co-authored-by: Funce <funce.973@gmail.com>
2021-02-05 21:28:06 +00:00
SkyratBot
0d687afc93 [MIRROR] Reverts the recent config changes (#3039)
* Reverts the recent config changes

* aaa

* a

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-02-03 14:53:43 +00:00
SkyratBot
2c23315b69 [MIRROR] Fixes included config files not loading (#3038)
* Fixes included config files not loading

* Update configuration.dm

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-02-03 14:27:37 +00:00
SkyratBot
51bb9fb188 [MIRROR] Adds configuration consistency tests (#3036)
* Adds configuration consistency tests (#56562)

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

* Adds configuration consistency tests

Co-authored-by: Jordan Brown <Cyberboss@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Jared-Fogle@ users.noreply.github.com>
2021-02-03 14:24:16 +00:00
SkyratBot
d9c8ffef60 [MIRROR] Changed the population scaling coefficients minimal values to 0. (#2995)
* Changed the population scaling coefficients minimal values to 0. (#56522)

## About The Pull Request

So, there on the downstream we've encountered a problem with the security officer slots jumping to 12 every time the round starts, regardless of what we set them to in the configs.
In the configs it says that you can set the coefficients to 0 to disable scaling, and upon investigation, it seems that all the scaling coefficients suffer from similar problem.
https://github.com/tgstation/tgstation/blob/master/config/game_options.txt#L198
the `min_val` in the config entry datums is 1 on each of them, leading to unexpected behaviour

## Why It's Good For The Game

It fixes certain config values leading to unexpected and unwanted behaviour

* Changed the population scaling coefficients minimal values to 0.

Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
2021-02-01 13:23:29 +00:00
SkyratBot
73023cbd6b [MIRROR] Adds Extrovert and Introvert Quirks (#2964)
* Adds Extrovert and Introvert Quirks (#56490)

Adds Extrovert and Introvert quirks. Removes the free bar moodlet, gives it to extroverts, makes a corresponding library moodlet for introverts. Introvert and Extrovert are blacklisted and therefore mutually exclusive.

Seems a bit thin, could we do x?
Yeah sure, and I'd appreciate feedback on where you'd like to see these quirks go. I want to start basic with "where do they spend their free time?" Rather than trying to do something big like moodlets for speaking a lot/little, especially because that seems a bit unbalanced and we already have a quirk that penalizes speech. I'm also looking to avoid unrealistic stereotypes, speech penalties to introverts are kind of unreasonable, introverts aren't inherently bad at talking, they just like alone time.

Why make it free?
I'm taking away a pre-existing moodlet that was free for everyone, also positive quirks are capped at 6 and I see this quirk as being essential to character building so I would prefer not to make someone pick between giving any sort of depth to their character and their powergaming loadout.

Having players define their character as introverted or extroverted and reinforcing the decision through gameplay mechanics is a great way to get them thinking about their character beyond an avatar to make other spacemen horizontal with. I'd argue that it is as foundational as decisions like gender, species, and age.
This opens up the library as a social space, as the two people who take introvert might occasionally run into each other when they are recovering mood and sanity there.

* Adds Extrovert and Introvert Quirks

Co-authored-by: RaveRadbury <3204033+RaveRadbury@users.noreply.github.com>
2021-01-31 15:55:18 +00:00
SkyratBot
4dbe8a2659 [MIRROR] Refactors Holodeck to Use Map Templates, Again! Black Magic OOM Crashing No Longer Included (#2957)
* Refactors Holodeck to Use Map Templates, Again! Black Magic OOM Crashing No Longer Included (#55645)

Refactors the holodeck to use map templates instead of copy_contents_to, which every maintainer seems to have complaints about.

Fixes #41485 because the matches become part of the spawned list created by ssatoms
Fixes #54789 because the holodeck area no longer has the NO_TELEPORT flag
Fixes #55676 because the map templates cant be changed midround unlike the program copies in the centcom z level
Fixes #49318 because the holodeck no longer creates new areas like the original did

This pr also changes initTemplateBounds to be a /datum/map_template proc instead of a parsed_map proc. This was mainly so I wouldn't have to duplicate vars between map_template and parsed_map. It's also nice because there's no longer a parsed_map proc inside the map_template file, especially when it didn't need to be a parsed_map proc.

The holodeck sims wont take up space in the centcom z level any more (which allows for more possible programs in the future), and map templates are more heavily tested. This is also a chance to future proof the holodeck against bugs. Holodeck also seems more responsive. This should allow for a second custom holodeck in some future ruin as well, although that of course will not be in play for the near future because of the offstation content ban. Also I documented the fuck out of the holodeck

* Refactors Holodeck to Use Map Templates, Again! Black Magic OOM Crashing No Longer Included

Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
2021-01-30 16:40:12 +00:00
SkyratBot
7f7252d855 [MIRROR] Adds logging to uplinks, spellbooks, and the codex ciatrix (#2937)
* Adds logging to uplinks, spellbooks, and the codex ciatrix (#56450)

* Initial logging

* Bugfix and adds uplink logging to config file

* Another bugfix

* Adds logging to uplinks, spellbooks, and the codex ciatrix

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
2021-01-29 14:12:01 +00:00
Miss Fox
3727431c10 [NON-MODULAR] [TM Only] Added the SQL logging.. waf (#2668)
* Added the SQL logging.. waf

* I dont know why CI does not like my sql......

* I think i fixed the sql....

* Attempt #1 to make linter happy

* Shhh linter, it will be over soon

Just breath into this cloth... ignore the chloroform smell.

(Add a Preprocesser statement, to make the SpacemanDMM linter ignore the SQL code in a mob atom obj, that causes it to trigger its hard coded test for stoplag.
This only does not trigger on other SQL, as there is hard coded exception in SpacemanDMM that ignores the other objects. the better fix would be to update SpacemanDMM to add this into the exclusion. but this change at least allows the PR to be merged finally)

Co-authored-by: MissFox <github@aesir.org.uk>
2021-01-28 18:25:19 +00:00
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