Commit Graph

9109 Commits

Author SHA1 Message Date
SkyratBot
5dabd9046d [MIRROR] A few minor tape recorder fixes (#2454)
* A few minor tape recorder fixes (#55881)

Tape recorder cassette can no longer be rewound with a pen if it is not unwound.
Tape recorder transcript should look like it has text written on it!
Tape recorder can now play full tapes.

* A few minor tape recorder fixes

Co-authored-by: prodirus <44090982+prodirus@users.noreply.github.com>
2021-01-02 23:52:09 +01:00
SkyratBot
0db881f173 [MIRROR] Setting door wand to src instead of user (#2434)
* Setting door wand to src instead of user (#55863)

* Setting door wand to src instead of user

Co-authored-by: WarlockD <warlockd@gmail.com>
2021-01-01 22:18:29 +01:00
SkyratBot
4f2588e6bc [MIRROR] Refactor on_mob_death, death implants, implant permission (#2432)
* Refactor on_mob_death, death implants, implant permission (#55862)

* Refactor on_mob_death and death implants

There is a proc on `/obj/item` called `on_mob_death` called on all
items in the contents of a mob on that mob's death. It is currently used
for explosive implant detonation, and the deactivation of the
Peaceborg's projectile dampener.

Instead of using this old proc, both of them now instad use the
COMSIG_LIVING_DEATH signal, already emitted when their owner dies.

The activation of an explosive implant will now occur after the rest of
the death code has run, since it activates with an async applied
function, since some other implants may still want the mob's body
intact, and you shouldn't use `sleep()` (which it does in the "slow
explosion mode") in signal handlers.

In addition, the "can_be_implanted" proc for /mob/living (and overriden
for silicons, slimes and simple animals) has been folded into the
`/obj/item/implant/proc/can_be_implanted_to` proc. Some future implants
may want to be more permissive than the current permissions, but that
isn't possible when checking both procs.

* Refactor on_mob_death, death implants, implant permission

Co-authored-by: coiax <yellowbounder@gmail.com>
2021-01-01 22:17:15 +01:00
SkyratBot
635d2d5aa1 [MIRROR] Fixes borg tiles (#2431)
* Fixes borg tiles (#55858)

- Fixes greyscale material floor tiles created from cyborg stacks
- Makes cyborg stacks contain materials
- Prevents a potential bug involving metalgen and stacks

* Fixes borg tiles

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
2021-01-01 19:57:00 +00:00
SkyratBot
f4c6b690ce [MIRROR] Tweaks how some tongues have no taste (#2417)
* Tweaks how some tongues have no taste (#55811)

Skeletons, abductors and ethereals have no sense of taste. Previously
they would taste something "indescribable", but instead, they will not
taste anything or get any message. This also means they will no longer
get mood buffs from eating/drinking high quality food.

Carbons without tongues also can no longer taste anything.

- The utility item "taster" has had some additional messages added.

* Remove can_taste proc

Instead of a single proc that is only used, so carbons can override it
with the missing tongue, just have carbons unable to taste anything by
default, and then have the tongue "supress" that.

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>

* Tweaks how some tongues have no taste

Co-authored-by: coiax <yellowbounder@gmail.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
2021-01-01 14:37:10 +01:00
SkyratBot
7aec36565e [MIRROR] Scroll of teleportation tweaks (#2409)
* Scroll tweaks (#55609)

This PR makes a few changes regarding scrolls of teleportation.

Scrolls of teleportation no longer use outdated HTML based interface and will take you straight into a list of a possible destinations upon use. That interface had a very little point of existing in the first place, the only possibly useful information was number of remaining uses, which is solved by a point below.

Scrolls of teleportation now show a number of remaining uses upon examination and also give proper feedback messages upon teleportation.

Scrolls of teleportation now crumble to dust when out of uses. They are a consumable item and cannot be recharged, which made them utterly useless when out of uses, creating only clutter.

* Scroll of teleportation tweaks

Co-authored-by: Arkatos1 <43862960+Arkatos1@users.noreply.github.com>
2021-01-01 14:32:33 +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
481aedf636 [MIRROR] Pancakes Griddle (#2396)
* Merge pull request #55619 from tralezab/pancakes-made-pancakier

Pancakes Griddle

* Pancakes Griddle

Co-authored-by: 81Denton <32391752+81Denton@users.noreply.github.com>
2020-12-31 01:40:07 +00:00
SkyratBot
a4b253475e [MIRROR] Integrates vibebots with the pda (#2391)
* Merge pull request #55798 from spessbro/please-assume-the-position

Integrates vibebots with the pda

* Integrates vibebots with the pda

Co-authored-by: 81Denton <32391752+81Denton@users.noreply.github.com>
2020-12-31 01:39:29 +00:00
Azarak
77940e85ff bigger span on blackout policy (#2385) 2020-12-30 22:30:46 +00:00
SkyratBot
888202da82 [MIRROR] Add "Implant" to list of uplink locations (#2371)
* Add "Implant" to list of uplink locations

* a

Co-authored-by: coiax <yellowbounder@gmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-12-30 22:33:27 +01: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
Azarak
0992fc86a5 Medical update - Muscle wound, Splints, Bandages, Closer Examine (#2336)
* everything but wound topics

* Update bodypart_aid.dm

* aaa

* aaa

* aaa

* aaaa

* Update _bodyparts.dm

* Update carbon_examine.dm

* Update bodypart_aid.dm

* Update slash.dm

* Wound topics, self grasping on a topic, bandages on top uniform

* Merge branch 'master' into med
2020-12-29 23:48:58 +00:00
SkyratBot
94ed7ed0f1 [MIRROR] Refactors how movetypes are added and removed, No timers this time. (#2358)
* Refactors how movetypes are added and removed, No timers this time. (#55444)

* Refactors how movetypes are added and removed, No timers this time.

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2020-12-29 02:39:03 +00:00
SkyratBot
45a4ffc3f9 [MIRROR] Fix grammar of smashing sheets of glass (#2344)
* Fix grammar of smashing sheets of glass (#55737)

The message was missing the indefinite article, meaning you would "leave
shard", rather than "leaving a shard".

* Fix grammar of smashing sheets of glass

Co-authored-by: coiax <yellowbounder@gmail.com>
2020-12-27 23:35:18 +00:00
SkyratBot
0362e03c1b [MIRROR] Thrown vending machines crush mobs + move circuitboard define (#2339)
* Thrown vending machines crush mobs + move circuitboard define (#55723)

* Thrown vending machines crush you

Also moves circuitboard define

* Remove extra empty line

* Move code to fitting place

* Thrown vending machines crush mobs + move circuitboard define

Co-authored-by: Gamer025 <33846895+Gamer025@users.noreply.github.com>
2020-12-27 06:05:50 +01:00
SkyratBot
06aedd664c [MIRROR] Fixes atmos water tanks showing up as purple sometimes (#2327)
* fixes atmos water tanks showing up as purple sometimes, they have their icon state changed sometimes, but never manually set the wear_icon_state, so it'd try and show a nonexistant sprite. (#55705)

* Fixes atmos water tanks showing up as purple sometimes

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2020-12-26 07:56:35 +01:00
SkyratBot
3711feef02 [MIRROR] wrenches the diy dish kit (#2322)
* wrenches the diy kit (#55701)

* wrenches the diy dish kit

Co-authored-by: Tlaltecuhtli <33834933+Tlaltecuhtli@users.noreply.github.com>
2020-12-25 21:41:34 +00:00
SkyratBot
87930f4ea0 [MIRROR] [READY] Refactors riding (#2307)
* [READY] Refactors riding (#54778)

* [READY] Refactors riding

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2020-12-24 12:38:15 +01:00
SkyratBot
d5148ab919 [MIRROR] adds new wiz spell: duffelbag curse (#2304)
* adds new wiz spell: duffelbag curse (#55286)

it gives target a no drop duffelbag which every around 100s will try check if there is food inside else it attacks you, you can poison the food to make it die faster.
more variety for wiz to annoy crew that isnt murder bone

* adds new wiz spell: duffelbag curse

Co-authored-by: Tlaltecuhtli <33834933+Tlaltecuhtli@users.noreply.github.com>
2020-12-24 12:34:53 +01:00
SkyratBot
49c9d50630 [MIRROR] WireArt: Fixed and improved (#2302)
* WireArt: Fixed and improved (#55622)

Cyborg's pipe cleaner is now using a radial menu for choosing it's colors instead of a clumsy input one.

RCL now properly updates it's pipe cleaner holder's color, so you can actually see the color when using RCL radial menu.

RCL is now able to put cables down on floors seamlessly, as there is no reason to restrict it to just a plating and catwalks anymore due to the fact that pipe cleaner coils no longer function as a power carriers, but are merely visual entities for players to play with.

And lastly, pipe cleaners now use color defines and are setting its color directly instead of having redundant variable do it for them, which was needlessly complicating it.

* WireArt: Fixed and improved

Co-authored-by: Arkatos1 <43862960+Arkatos1@users.noreply.github.com>
2020-12-24 12:33:32 +01:00
SkyratBot
01c508c810 [MIRROR] orange's chemical romance Pt. 1: Base construction console refactor (#2278)
* Base construction console refactor (#55451)

Refactors base construction consoles to be generic instead of only being meant for building the aux shuttle. The current aux base construction console behaves the exact same.

This PR is A step towards minichem, as I'll be using base construction code in it pretty heavily. More information about the whole minichem thing in this design doc

In terms of player-facing changes, this PR has made possible a neat admin-only base construction console that can be used to construct things anywhere on the z level.
Why It's Good For The Game

The current base construction console code was snowflakey and didn't follow particularly great coding practices. This fixes that and provides a solid foundation for future work.

* orange's chemical romance Pt. 1: Base construction console refactor

Co-authored-by: Emmanuel S <mrdoomboyo@gmail.com>
2020-12-23 06:13:58 +01:00
SkyratBot
20a7dd6bfd [MIRROR] chaplain cage no longer balds you (#2274)
* chaplain cage no longer balds you (#55526)

* cage no longer balds you

Co-authored-by: Fikou <piotrbryla@ onet.pl>

* chaplain cage no longer balds you

Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
Co-authored-by: Fikou <piotrbryla@ onet.pl>
2020-12-22 00:06:36 +01:00
SkyratBot
4c86dfc553 [MIRROR] Fixing a very old issue about lizard snouts and hoods, fake mustaches and similars. (#2264)
* Fixing a very old issue about lizard snouts and hoods, fake mustaches and similars. (#55574)

Fixing a little visual issue with certain hoods, fake mustaches and similars making lizard snouts magically disappear when worn.

* Fixing a very old issue about lizard snouts and hoods, fake mustaches and similars.

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2020-12-21 19:56:29 +00:00
SkyratBot
90f4c47485 [MIRROR] tgui: Cyborg Boot Debug (#2248)
* tgui: Cyborg Boot Debug

* ae

Co-authored-by: Arkatos1 <43862960+Arkatos1@users.noreply.github.com>
Co-authored-by: Avunia Takiya <git@takiya.cloud>
2020-12-19 22:01:29 +01:00
Azarak
6b399baf30 Adds constructable sauna ovens. Hot and steamy (#2242)
* aaa

* oops

* very good catch mr lint

* Update sauna_oven.dm
2020-12-19 15:30:57 +00:00
Azarak
f964b1b562 aaa (#2240) 2020-12-19 15:26:10 +00:00
SkyratBot
24743f2696 [MIRROR] Refactors Beams to use signals: Revived from 2019 edition! BONUS: Medbeams are also refactored to use signals (#2237)
* Refactors Beams to use signals: Revived from 2019 edition! BONUS: Medbeams are also refactored to use signals (#55193)

Huge removal of dead vars, bad timers, and other sloppy jitteriness from beams. They go from checking movement to waiting for a signal.
VARIABLE KILL LIST:

sleep_time: signals baby
finished: signals BAYBEEE
target_oldloc: not only not typecasted as a turf or named as a turf, it was unused. when are we going to use this? the beam starts from the origin!
origin_oldloc: bad name, not typecasted. renamed to originturf
static_beam: how are you an unused variable and still get replaced by signals like really
timing_id: signallllss bbbaaaabbyy
recalculating: you get the drill by now signals baby
base_icon: unused, seemingly replaced by visuals I think

* Refactors Beams to use signals: Revived from 2019 edition! BONUS: Medbeams are also refactored to use signals

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
2020-12-19 04:42:09 +01:00
SkyratBot
e0a1df0157 [MIRROR] Adds festive sugar cookie designs for holiday. (#2236)
* Adds festive sugar cookie designs for holiday. (#55480)

Adds six new cookie icons which are picked at random for sugar cookies made during the Festive Season holiday event.

* Adds festive sugar cookie designs for holiday.

Co-authored-by: Josh <josh@jaw.sh>
2020-12-19 03:56:41 +01:00
SkyratBot
f50d7f31cc [MIRROR] Some griddle fixes (#2235)
* Some griddle fixes (#55548)

* GriddleFixes

* based

* make bacon burn properly

* Some griddle fixes

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
2020-12-19 03:52:50 +01:00
SkyratBot
3b2473059d [MIRROR] Whetstone comments and code readability improvements (#2207)
* Whetstone comments and code readability improvements (#55522)

Adds comments to sharpener.dm. Replaces all 1's and 0's in boolean value assignments with TRUE and FALSE.

* Whetstone comments and code readability improvements

Co-authored-by: interestingusernam3 <51925758+interestingusernam3@users.noreply.github.com>
2020-12-17 10:57:27 +01:00
SkyratBot
3bbcff7549 [MIRROR] Adaptive Paint now uses a radial menu for choosing its color variants (#2194)
* Adaptive Paint now uses a radial menu for choosing its color variants (#55307)

* Adaptive Paint now uses a radial menu

* Documentation lint fix

* Adaptive Paint now uses a radial menu for choosing its color variants

Co-authored-by: Arkatos1 <43862960+Arkatos1@users.noreply.github.com>
2020-12-17 02:49:25 +01:00
SkyratBot
239817b70d [MIRROR] Fixes cleaving saw + whetstone interaction (#2190)
* Fixes cleaving saw + whetstone interaction (#55520)

You can't use whetstones on most one-handed transforming weapons (anything in /obj/item/melee/transforming/energy), but there is one type of transforming weapon that can use it, the cleaving saw. However, since transforming weapons reset their force whenever activated/deactivated, and force is how whetstones track if something has been sharpened already, you could repeatedly enable/disable the saw to allow it to be sharpened again and again, allowing you to continually boost the wound_bonus each time (and also make the name really long). While the very limited number of whetstones in the game means this isn't a practical exploit, it's still worth fixing. This also lets the saw keep its sharpened damage bonus between reactivations.

* Fixes cleaving saw + whetstone interaction

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2020-12-16 07:17:59 +01:00
SkyratBot
d5ad7a2ecf [MIRROR] Gives spoons TOOL_MINING, adds spoons to autolathe and prison vending machines (#2177)
* Gives spoons `TOOL_MINING`, adds spoons to autolathe and prison vending machines (#55461)

* Gives spoons `TOOL_MINING`, adds spoons to autolathe and prison vending machines

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
2020-12-14 12:46:17 +01:00
SkyratBot
ed2487f201 [MIRROR] [READY] Kitchen Rework part 1: I just want to griddle! (#2173)
* [READY] Kitchen Rework part 1: I just want to griddle! (#55319)

This PR essentialy moves away from the extremely microwave dependent cooking we have for meat right now, and making it a bit more sensical by making you use a grill to grill meat. The grill takes a different time (with variation) for different grilled things. Once finished it will turn that food into something else.

Yes, this does mean creating burgers takes longer, but in return you can make more patties at once, and you are not required to stay at the grill while its going. This lets you cook as much as you want at once, just make sure your meat doesn't burn!

In the future, I hope to move more things like this to machines similar to this (Pasta boiling, putting eggs on the griddle, soup making, etcetera) to create for a more interesting cooking experience.

* [READY] Kitchen Rework part 1: I just want to griddle!

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
2020-12-14 02:01:55 +01:00
SkyratBot
548ed09ed1 [MIRROR] Temperature control unit (#2154)
* Temperature control unit

* Update tgui.bundle.js

Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2020-12-13 13:54:41 +00:00
SkyratBot
fb356fdcc2 [MIRROR] Fixes emergency tanks inhand sprites and adjusts double yellow emergency tanks volume. (#2168)
* Initial (#55274)

* Fixes emergency tanks inhand sprites and adjusts double yellow emergency tanks volume.

Co-authored-by: Swept <sweptwastaken@protonmail.com>
2020-12-13 13:45:25 +00: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
0e26de1f3e [MIRROR] You can sacrifice souls to toolboxes (#2152)
* You can sacrifice souls to toolboxes (#55306)

So, now that it's December, this PR makes it so you can use a soulstone with a shade in it on a mechanical toolbox to sacrifice the shade to give the toolbox back its SOUL (it goes back to the old sprite)

* You can sacrifice souls to toolboxes

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2020-12-13 00:51:38 +00:00
SkyratBot
e77922b87d [MIRROR] Fixes RPD runtime (#2148)
* Fixes RPD runtime (#55453)

Simple signal regregister runtime.

* Fixes RPD runtime

Co-authored-by: AnturK <AnturK@users.noreply.github.com>
2020-12-13 00:51:12 +00: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
0c14229ef4 [MIRROR] Adds in the admin outfit. (#2123)
* Adds in the admin outfit. (#55374)

So i was told to make this if i wanted to get an outfit that actually could work on things like radiation. I also gave it a box full of stabilized extracts because those give quite good effects like more speed and regeneration.

* Adds in the admin outfit.

Co-authored-by: CRITAWAKETS <sebastienracicot@hotmail.com>
2020-12-11 00:26:34 +00:00
SkyratBot
64cb64aae3 [MIRROR] Replace direct poi_list manipulation with element (#2117)
* Replace direct poi_list manipulation with element (#55416)

Replaces GLOB.poi_list |= src and GLOB.poi_list -= src with an element that handles it directly.

More consistent code, especially when a lot of code couldn't decide how to add/remove (some |=, some -=, some .Remove, etc).

* Replace direct poi_list manipulation with element

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2020-12-11 00:26:00 +00:00
Azarak
53a538b92f Modular wiki, corporate regulations in spacelaw book (#2101)
* aaa

* Update code/game/objects/items/manuals.dm
2020-12-10 06:32:23 +01: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
SkyratBot
3a0491d3b4 [MIRROR] Small do-after refactor (#2074)
* Small do-after refactor (#55172)

This is an alternative to the PR Ryll made, it does some things similar e.g. the default limit of 1 interaction per target for a person, however, it refactors do_afters to support overrides for max interaction counts and unique sources.

For example, stripping uses the item being stripped as the source, allowing you to strip multiple items, but not the same item multiple times.

I've also fixed most other edge-cases this could cause where balance would be affected, but feel free to point out any I might've missed, this'll probably require some longer-term testmerging.

* Small do-after refactor

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
2020-12-07 22:46:59 +01:00
Zenitheevee
28bc070e57 ExpansiveSmuggling (#2035) 2020-12-07 00:36:32 +00:00