Commit Graph

688 Commits

Author SHA1 Message Date
SkyratBot
1b7f17f107 [MIRROR] [IDB IGNORE] The Great Sweep: Moving dmis into subfolders (part 1) [MDB IGNORE] (#15801)
* [IDB IGNORE] The Great Sweep: Moving dmis into subfolders (part 1)

* Fixes all the conflicts and all of our modular files using core icon files with broken paths

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2022-08-28 15:11:04 -04:00
SkyratBot
89ea5e4c1c [MIRROR] Fixes tesla blast [MDB IGNORE] (#15787)
* Fixes tesla blast (#69394)

Currently, if you invoke tesla blast, it gets stuck on channeling forever. This is due to an oversight in the new spell/action system; returning TRUE (1) is the same as returning SPELL_CANCEL_CAST (1), resulting in the spell being erroneously cancelled without any cleanup.

* Fixes tesla blast

Co-authored-by: scriptis <scriptif@gmail.com>
2022-08-25 14:52:22 +01:00
SkyratBot
0fb11f4d16 [MIRROR] Fixes Abyssal Gaze always being valid to cast [MDB IGNORE] (#15726)
* Fixes Abyssal Gaze always being valid to cast (#69311)

* Fixes Abyssal Gaze always being valid to cast

Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
2022-08-23 16:08:55 -04:00
SkyratBot
be17398e89 [MIRROR] New Swap Spell - Wizard [MDB IGNORE] (#15636)
* New Swap Spell - Wizard (#68895)

* new_swap_spell

* swap copy fixes

* small fixes

* do teleport fix

* secondary target plus fixes

* small sound fix

* More fixes

* New Swap Spell - Wizard

* celeritas-b-gone

Co-authored-by: Comxy <tijntensen@gmail.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
2022-08-15 23:21:14 -07:00
SkyratBot
48685b4356 [MIRROR] Replaces the mood component with a mood datum [MDB IGNORE] (#15549)
* Replaces the mood component with a mood datum

* Fixes merge conflicts and updates all of our mood events to use the new mood datums

Co-authored-by: Seth Scherer <supernovaa41@gmx.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2022-08-12 14:58:14 -04:00
SkyratBot
042267d1a6 [MIRROR] Fixes some issues with Heretic Stalker Shapechange [MDB IGNORE] (#15484)
* Fixes some issues with Heretic Stalker Shapechange (#68962)

* Fixes some issues with shapechange.
- I relied on mind actions to transfer the spell over to the new mob, which kind of fell through when shapechange was given via non-mind.
- Also, some minor fixes n tweaks some other eldritch spells while I'm here.
- Bodybound actions should also transfer over, it just makes sense, I think.

* Sanity check owner to avoid mindswap memes

* Fixes some issues with Heretic Stalker Shapechange

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2022-08-08 20:02:42 -07:00
SkyratBot
6016cf97b4 [MIRROR] individual LOG_GAME [MDB IGNORE] (#15401)
* individual LOG_GAME

* e

* Update teleporter.dm

Co-authored-by: Mooshimi <85910816+Mooshimi@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-08-08 01:11:55 +01:00
Tom
4f7eb68fc7 [MIRROR] 68382 & 68806 (#15277)
* [MIRROR] Mob Ability Sequences Again Again (I swear this time)

* [MIRROR] Fix: Cult construct can attack while their spells are on cooldown (All spells no longer have a Melee CD by default) [MDB IGNORE]

* Update code/datums/actions/cooldown_action.dm
2022-07-29 15:05:42 -04:00
SkyratBot
4af0dd0b8f [MIRROR] addresses reviews on the tram pr made after merge, fixes diagonal movement bugs [MDB IGNORE] (#14943)
* addresses reviews on the tram pr made after merge, fixes diagonal movement bugs (#68033)

* addresses reviews on the tram pr made after merge, fixes diagonal movement bugs

* wew

Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-07-19 00:51:33 +00:00
SkyratBot
c118f2c4dc [MIRROR] Fixes snow golems being unable to throw snowballs [MDB IGNORE] (#14997)
* Fixes snow golems being unable to throw snowballs (#68505)

* Fixes snow golems being unable to throw snowballs

Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
2022-07-18 08:42:48 -07:00
SkyratBot
bd7fd15115 [MIRROR] Most compoennts/elements that register COMSIG_PROJECTILE_ON_HIT can now be applied to turrets and projectile spells [MDB IGNORE] (#14929)
* Most compoennts/elements that register COMSIG_PROJECTILE_ON_HIT can now be applied to turrets and projectile spells (#68238)

expands elements that register COMSIG_PROJECTILE_ON_HIT

* Most compoennts/elements that register COMSIG_PROJECTILE_ON_HIT can now be applied to turrets and projectile spells

Co-authored-by: Y0SH1M4S73R <legoboyo@earthlink.net>
2022-07-16 23:41:25 +01:00
SkyratBot
2e330f7529 [MIRROR] Fixes Bolts of Necropotence [MDB IGNORE] (#14820)
* Fixes Bolts of Necropotence  (#68260)

Fixes necropotence due to a copy and paste error.

* Fixes Bolts of Necropotence

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2022-07-09 03:31:01 -07:00
SkyratBot
c68fea7cba [MIRROR] Completely removes proc_holders from existence. Refactors all wizard, xeno, spider, and genetics powers to be actions. Also refactors and sorts ton of accompanying code. [MDB IGNORE] (#14666)
* Completely removes `proc_holders` from existence. Refactors all wizard, xeno, spider, and genetics powers to be actions. Also refactors and sorts ton of accompanying code.

* our changes

* yes

* 0

* Update blackmesa.dmm

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-07-01 20:33:30 +01:00
SkyratBot
430af31c63 [MIRROR] Refactors Knock to use Connect Loc [MDB IGNORE] (#14567)
* Refactors Knock to use Connect Loc (#67884)

* Knock uses a new connect loc signal.

* Refactors Knock to use Connect Loc

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2022-06-27 18:06:50 +01:00
SkyratBot
0a1f06a2d1 [MIRROR] This tail refactor turned into an organ refactor. Funny how that works. [MDB IGNORE] (#14017)
* This tail refactor turned into an organ refactor. Funny how that works.

* Firstly, fixing all the conflicts.

* Fixes all our maps (hopefully)

* Actually, this should fix pod people hair :)

* Almost everything is working, just two major things to fix

* Fixed a certain kind of external organ

* Cleaning up some more stuff

* Turned tail_cat into tail because why the fuck are they separate?

* Moved all the tails into tails.dmi because that was just dumb to have like 3 in a different file

* Adds relevant_layers to organs to help with rendering

* Makes stored_feature_id also check mutant_bodyparts

* Fixes the icon_state names of ALL the tails (pain)

* Fixes wagging, gotta refactor most mutant bodyparts later on

* I Love Added Failures

* Fixed some organs that slipped through my searches

* This could possibly fix the CI for this?

* It doesn't look like it did fix it

* This will make it pass, even if it's ugly as sin.

* Fixed Felinids having a weird ghost tail

* Fixes instances of snouts and tails not being properly colored

Co-authored-by: Kapu1178 <75460809+Kapu1178@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2022-06-11 23:20:16 -04:00
SkyratBot
35286f5993 [MIRROR] Improves logging for smoke clouds. [MDB IGNORE] (#14156)
* Improves logging for smoke clouds.

* Update robot_upgrades.dm

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-06-08 02:15:29 +01:00
SkyratBot
0b1bb13864 [MIRROR] Refactors warp whistle [MDB IGNORE] (#14036)
* Refactors warp whistle (#67064)

* Refactors warp whistle

Warp whistle is now a status effect that walks towards you.
If it hits the person that summoned it, it picks them up, and teleports them once it flies away.
The person then falls from the sky onto their destination.

This prevents Wizards from using the spell then just walking away, because now if they aren't in range, they won't get picked up.
It also means there's no weird code about godmode and stuff, like there used to have. *shiver.

Repathed the item and tornado effect it spawns, over just prefs.

* now goes through walls

* maybe helps with hard dels

* I forgot to add this for hard del too

* i forgot an early return after qdel

* nova's suggestion but not committed by him so he doesnt get co-author

* Warp whistle no longer on Destroy()

* adds incapacitated trait so you don't unbuckle

* Refactors warp whistle

* Fixes the one instance where the warp whistle was used in our modular files

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2022-06-01 20:58:37 -04:00
SkyratBot
a61b1ea07f [MIRROR] [MDB IGNORE] More /area/ typepath organization and cleanup [MDB IGNORE] (#13832)
* [MDB IGNORE] More /area/ typepath organization and cleanup (#67107)

This further continues what I did in b4fb8f3ed1 (but instead of just stations, its now every (most) applicable area in the game

* [MDB IGNORE] More /area/ typepath organization and cleanup

* wew

* e

* Update CentCom_skyrat.dmm

* wew

* ews

Co-authored-by: Jolly <70232195+Jolly-66@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-05-24 16:47:55 +01:00
SkyratBot
8018553454 [MIRROR] Fixes lightning bolt not giving tesla shock immunity when granted by an admin [MDB IGNORE] (#13628)
* Fixes lightning bolt not giving tesla shock immunity when granted by an admin (#66973)

* Fixes lightning bolt not giving tesla shock immunity when granted by an admin

Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
2022-05-15 19:27:34 -07:00
SkyratBot
2878b0b005 [MIRROR] Removes AOE hit detection from fireball [MDB IGNORE] (#13526)
* Removes AOE hit detection from fireball

* Update staff.dm

Co-authored-by: GoblinBackwards <22856555+GoblinBackwards@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-05-11 02:13:25 +01:00
SkyratBot
cdd1f9179d [MIRROR] Refactors the Charge wizard spell [MDB IGNORE] (#13424)
* Refactors the Charge wizard spell (#66599)

This PR refactors the "charge" spell to be signal based instead of looping over held items + istype checks.
This was atomized out of my proc holder removal PR. Figured it was small enough to handle on its own.

* Refactors the Charge wizard spell

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2022-05-07 22:11:12 -07:00
SkyratBot
ef2016732d [MIRROR] Makes smoke and foam attempt to fill the available space. [MDB IGNORE] (#13407)
* Makes smoke and foam attempt to fill the available space.

* wew

* reset

* Revert "reset"

This reverts commit 75be4f934504793ceb5c9bf2f3774dc24517df5a.

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-05-08 04:01:32 +01:00
Useroth
cca7f8ee4c Some missed mirrors (#13415)
* Refactors firestacks into status effects (#66573)

This PR refactors firestacks into two status effects: fire_stacks, which behave like normal firestacks you have right now, and wet_stacks, which are your negative fire stacks right now. This allows for custom fires with custom behaviors and icons to be made.

Some fire related is moved away from species(what the fuck was it even doing there) into these as well.
Oh and I fixed the bug where monkeys on fire had a human fire overlay, why wasn't this fixed already, it's like ancient.

Also changed some related proc names to be snake_case like everything should be.

This allows for custom fire types with custom behaviours, like freezing freon fire or radioactive tritium fire. Removing vars from living and moving them to status effects for modularity is also good.
Nothing to argue about since there's nothing player-facing

* Hud Image Culling By Z Level: Theft edition (#65189)

* makes hud images only apply by z level

* makes some of the atom_hud procs have better names

* fixes warning with the hud_user list and adds better documentation

* better docs for hud_images

* removes TODOs

* docs for hud_list

* adds support for linked z levels so mobs can see lower ones

* fixes merge conflict and shittily makes only shocked airlocks get added

* adds support for setting images in the hud as active and inactive

* gets rid of unatomic spatial grid change

* maybe i should actually try COMPILING my changes

* fixes merge skew and makes it compile again

* fixes huds refusing to remove from users who changed z level

* improves z level and registration logic

* fixes antag huds not appearing

* Fixes antag huds not properly setting. We now use hud_list in init, so it needs to be set before the new call, not after. Not sure why the use of appearance key was split like this, but none else knows either so none can stop me

* Ensures that hiding a basic appearance also hides the atom's active list too

* Fixes antag huds going poof

Ensures that remove_atom_from_hud will return false if the passed atom
isn't managed by it

This fixes antag huds disappearing randomly, since they assumed that if
the parent call of remove_atom_from_hud returned true, we should delete
ourselves. This is a safe assumption for them to make, since they should
only ever have one atom.

Does kinda bork if we call remove_atom_from_hud in a way that is unsure
if the passed atom is actually in that list. We were forced into doing
this by how atom huds use the qdeleting signal.

* makes basic alternate_appearance's only update themselves when setting their hud image to active and makes them not add themselves to the global huds_by_category list

* fixes mistake with hud_users list being set non associatively (bad)

* as anything in bot path loops

* Fixes merge skew problems

* Makes bot paths non global

This way they can show themselves to only the bot that "owns" them, ya
feel me?

* Fixes huds not showing up sometimes, cleans up some code

Post Kapu's limb refactor, we were calling prepare_huds twice in a human
init call chain. What was happening was this:

call prepare_huds() // Human
I gained a new hud image
I set active hud icons to mirror it
call prepare_huds() // Living
I overwrote the new hud image
I attempted to set active hud icons, which failed because it assumes
this can never happen

*cries*

* Renames add_hud_to_atom to show_to

My hope is this will make understanding hud code a bit easier, by tying
the behavior to a "verb" more closely. Also renamed a few vars

* remove_hud_from_mob -> hide_from

* Nitpicks a few comments

* Whoops/fuck/shit/damn it all/hhhhhhhhhhhh

* Moves check down, improves stack trace a bit

Co-authored-by: KylerAce <kylerlumpkin1@gmail.com>

* small touch-up

* this should do it

Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: KylerAce <kylerlumpkin1@gmail.com>
2022-05-08 03:59:40 +01:00
SkyratBot
ec0df71b94 Refactors wizard casting clothes into a clothing bitflag (#66604) (#13268)
* refactors wizard casting clothes into a clothing bitflag

* autodocs the `CASTING_CLOTHES` bitflag

Co-authored-by: Y0SH1M4S73R <legoboyo@earthlink.net>
2022-05-02 12:16:03 +01:00
SkyratBot
5b1d33cace [MIRROR] Adds a new heretic path: Path of the Blades [MDB IGNORE] (#12967)
* Adds a new heretic path: Path of the Blades

* wre

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-04-21 21:22:39 +01:00
SkyratBot
f689736c42 [MIRROR] buffs the traitor toolbox turret to actually be worth 11tc [MDB IGNORE] (#12911)
* buffs the traitor toolbox turret to actually be worth 11tc (#66255)

About The Pull Request

the toolbox turret now has an unique sprite by infraredbaron
it can now be only deployed with a combat wrench (included in the toolbox)
it fires way quicker, with a bit lower power, but faster shots (they dont hit you either)
it has more health and doesnt break from low integrity
it can be repaired with a combat wrench after a few seconds or folded back into toolbox form
adds said toolbox turret to the nukie uplink (nukie version ignores everything with syndicate faction)
https://streamable.com/0i3q07
Why It's Good For The Game

this turret was always really laughable, it costed 11tc while being pretty much worthless
now it should be a bit fun, and for nukies its a nice area denial tool
Changelog

cl Fikou, InfraredBaron
balance: the traitor toolbox turret is now worth something
expansion: nukies can now buy the toolbox turret
imageadd: new sprites for the traitor turret
/cl

* buffs the traitor toolbox turret to actually be worth 11tc

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
2022-04-19 22:10:55 +01:00
SkyratBot
82c37a6d74 [MIRROR] [MDB IGNORE] makes ebows and kinetic accelerators share a parent [MDB IGNORE] (#12902)
* [MDB IGNORE] makes ebows and kinetic accelerators share a parent

* wew

* wew

* Update blackmesa.dmm

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-04-19 19:58:49 +01:00
SkyratBot
408c93810a [MIRROR] Allows wizard rod form to travel between z-levels [MDB IGNORE] (#12787)
* Allows wizard rod form to travel between z-levels (#66176)

* Allows wizard rod form to travel between z-levels

Co-authored-by: GoblinBackwards <22856555+GoblinBackwards@users.noreply.github.com>
2022-04-16 08:20:38 -07:00
SkyratBot
3916ea03de [MIRROR] Kapulimbs [MDB IGNORE] (#12497)
* Kapulimbs

* conflicts

* part one of fixes

* more fex

* ugh

* more fix

* eee

* e

* more fix

* Well it compiles, but we need to get digi legs working

* more fixes

* https://github.com/tgstation/tgstation/pull/65887

* https://github.com/tgstation/tgstation/pull/65904

* https://github.com/tgstation/tgstation/pull/65923

* more fix

* now uses dna specific icon overrides.

* species code no longer dictates what icon the limbs use

* digitigrade legs implemenation

* more fixes, species indexing, species bodyparts

* remaining mutant bois

* 0

* okay this work!

* IPC stuffs

* inv file uses

* optimisation and limb string rendering digitigrade stuff

* wew

* partial vox support

* bodymarkings are now stored on the bodypart

* limb key caching

* Update carbon_update_icons.dm

* Update carbon_update_icons.dm

* Moves our mutant variance to the new system and makes shoes squash.

* all legs do it

* https://github.com/tgstation/tgstation/pull/65918

* https://github.com/tgstation/tgstation/pull/65899

* https://github.com/tgstation/tgstation/pull/65990

* teshari bodytype

* them teshari's aren't humans

* bandaid for future proper teshari implementation

* Update vox_bodyparts.dm

* fixes chests and teshari implementation

* fixes

* fex

* Update mutant_zombie_bodyparts.dm

* oops

* Update synthetic_lizard_bodyparts.dm

* Update code/modules/mob/living/carbon/human/human_update_icons.dm

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

* Update code/modules/mob/living/carbon/human/human_update_icons.dm

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

* Update code/modules/mob/living/carbon/human/human_update_icons.dm

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

* Update modular_skyrat/master_files/code/modules/surgery/bodyparts/species_parts/ghoul_bodyparts.dm

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

* Update modular_skyrat/master_files/code/modules/surgery/bodyparts/species_parts/ghoul_bodyparts.dm

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

* Update modular_skyrat/master_files/code/modules/surgery/bodyparts/species_parts/ghoul_bodyparts.dm

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

* Update modular_skyrat/master_files/code/modules/surgery/bodyparts/species_parts/ghoul_bodyparts.dm

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

* Update code/modules/mob/living/carbon/human/species.dm

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

* Update scissors.dm

* wound stuff

* Update carbon_examine.dm

* more stuff

* Delete human_update_icons.dm

* begone thot

* https://github.com/tgstation/tgstation/pull/66065

* Update _external_organs.dm

Co-authored-by: Kapu1178 <75460809+Kapu1178@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2022-04-11 02:40:05 +01:00
SkyratBot
07e6768659 [MIRROR] Refactor and improve antimagic to be more robust [MDB IGNORE] (#12619)
* Refactor and improve antimagic to be more robust (#64124)

This refactors the antimagic component to use and have bitflags, documentation, defines, code comments, named arguments, and renames variable names for clarity.

- /obj/effect/proc_holder/spell/aoe_turf/conjure/creature/cult is not used anywhere and has been removed
- /obj/effect/proc_holder/spell/targeted/turf_teleport/blink/cult is not used anywhere and has been removed

- New sound effects are played when magic is blocked. Depending on the type of magic being used it will be either:

- Equipping antimagic now properly updates the magic buttons
- Any magic being blocked or restricting casting now displays a message
- MAGIC_RESISTANCE_MIND now properly blocks telepathy effects
- Removes blood splatter when fireball is blocked
- Magic projectiles for staff of locker no longer spawn lockers when blocked by antimagic
- Fire breath is no longer blocked by antimagic
- Spellcards are now blocked by antimagic

Any antimagic on a mob blocks that magic type from being casted. (certain spells such as mime abilities completely ignore antimagic)

- Foilhats prevent someone from casting mind magic (telepathy, mindswap, etc.)
- Bibles, ritual Totems, nullrods, holymelons, and TRAIT_HOLY prevent someone from casting unholy magic (cult spells, etc.)
- Nullrods, ritual totem, and holymelons prevent someone from casting wizard magic (fireball, magic missile, etc.)
- Immorality talismans, berserker suits, and TRAIT_ANTIMAGIC prevents all types of magic (except stuff like mime abilities)
- Touch of Madness and Mindswap is now blocked with MAGIC_RESISTANCE and MAGIC_RESISTANCE_MIND
- Voice of god is now blocked with MAGIC_RESISTANCE_HOLY and MAGIC_RESISTANCE_MIND

* Refactor and improve antimagic to be more robust

* Update tiedshoes.dm

Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-04-11 00:54:16 +01:00
SkyratBot
c3c7ca3f80 [MIRROR] you can no longer use spells while in rod form [MDB IGNORE] (#12606)
* you can no longer use spells while in rod form (#66029)

* does the thing

* EVERY SPELL OH NO

* bluh

* you can no longer use spells while in rod form

Co-authored-by: capsaicinz <84609863+capsaicinz@users.noreply.github.com>
2022-04-08 15:56:11 +01:00
SkyratBot
cec72761ac [MIRROR] Action button refactor/rework: Enhanced Dragging [MDB IGNORE] (#12423)
* Action button refactor/rework: Enhanced Dragging

* PHEW

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-04-01 01:38:57 +01:00
SkyratBot
50db26ee28 [MIRROR] Refactors Lich Phylactery to be a component, makes it actually work [MDB IGNORE] (#12145)
* Refactors Lich Phylactery to be a component, makes it actually work (#65366)

* Refactors phylactery to be a component
- Overall improves lich code
- Changed the SOUL_IMBUE signal to return a bitflag
- Minor style  improvements (indentation and such)

* Tweak initialize + fixes a bug with being gibbed

* adds a clarification comment

* And fixes a compile error oops

* reorganizing

* clear the revive timer, just in case

* oops this should drop stuff

* missing no soul trait

* type in a variable name

* god damn devil removal
- this check was removed when devil was and i think it's kinda important to prevent stacking lichdom

* rework this a bit

* plurals

* also, wrong source

* updates the description

* Some review + undoes some changes
- Corrects some comments
- Uses defines
- Rewords the lichdom entry and spell desc
- Sets default time per res to 0 secs to avoid changing behaviors

* Refactors Lich Phylactery to be a component, makes it actually work

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2022-03-17 08:47:26 -07:00
SkyratBot
ceef4787ab [MIRROR] Liches can't use Soul Tap (again) [MDB IGNORE] (#12032)
* Liches can't use Soul Tap (again) (#65367)

* Makes soul tap respect liches again

* warning instead

* takes your soul on fully tapping

* might as well re-arrage this for cleanliness

* swap

* Liches can't use Soul Tap (again)

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2022-03-11 22:46:11 -07:00
SkyratBot
1f27c74a4b [MIRROR] Refactors and fixes summon events/guns/magic [MDB IGNORE] (#11768)
* Refactors and fixes summon events/guns/magic

* fix

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: jjpark-kb <55967837+jjpark-kb@users.noreply.github.com>
2022-03-05 10:47:33 -05:00
SkyratBot
262a6fd44d [MIRROR] Prevents instant summons from recalling anchored objects [MDB IGNORE] (#11823)
* Prevents instant summons from recalling anchored objects (#64862)

Small bug fix that prevents anchored objects from being taken, without sacrificing the rest of its intended features.
Why It's Good For The Game

Closes an issue from 2017 - #22837
Changelog

cl
fix: Instant recall spell no longer recalls anchored objects, such as microwaves, if the marked item is placed inside of one.
/cl

* Prevents instant summons from recalling anchored objects

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2022-03-03 18:28:01 -05:00
SkyratBot
562559d294 [MIRROR] prevents finger guns from being used with something in your hand [MDB IGNORE] (#11446)
* prevents finger guns from being used with something in your hand (#64800)

Removes the ability to fire mime's finger guns if you have something in your hand, simple as. I find it to be an oversight and I assume an exploit.

It makes no sense you can shoot finger guns while holding something you're currently SUPPOSEDLY using to make finger guns with.
Also it is very unfair

* prevents finger guns from being used with something in your hand

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2022-02-11 10:28:51 +00:00
SkyratBot
b8279a2b3c [MIRROR] BIDDLE HERETICS: Heretic revamp! (Shadow Realm, UI Overhaul, Refactoring, and Murderhoboing Tweaks) [MDB IGNORE] (#11427)
* BIDDLE HERETICS: Heretic revamp! (Shadow Realm, UI Overhaul, Refactoring, and Murderhoboing Tweaks)

* fex

* e

* Update zombieprison.dmm

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-02-11 02:53:01 +00:00
SkyratBot
ed4553405d [MIRROR] fire breath can be done without the ability to speak + SPELL code improvement [MDB IGNORE] (#11425)
* Fire breath can be used without the ability to speak (+ code improvement) (#64796)

* fire breath can be done without the ability to speak + SPELL code improvement

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2022-02-10 11:12:11 +00:00
SkyratBot
ccb0aaea1a [MIRROR] Ballistic to Energy: Autorifles for Thermal Pistols; Adds .38 Crate to Cargo [MDB IGNORE] (#11340)
* Ballistic to Energy: Autorifles for Thermal Pistols; Adds .38 Crate to Cargo

* eeee

* Update new_player.dm

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-02-08 01:59:42 +00:00
SkyratBot
df0625b449 [MIRROR] Fixes some rodform gibbing bugs [MDB IGNORE] (#11285)
* Fixes some rodform gibbing bugs (#64574)

When I initially did moveloops in like, febuary of last year or
something, I made what I thought was a minor change of turning a Move
override into a Moved override, alongside moving some parent calls.

It turns out by doing that I made wizard rods perform one bump before
exiting. This well uh, gibbed the wizard, cause of how explosion code
works.

Life is pain. This resolves that issue

* Fixes some rodform gibbing bugs

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2022-02-05 17:30:09 +00:00
SkyratBot
6aaf6d347b [MIRROR] Fixes a wizard rod form hard-del + cleans up code [MDB IGNORE] (#11222)
* Fixes a wizard rod form hard-del + cleans up code (#64469)

Fixes a hard delete with wizard rod form
Moves the wizard var from the base immovable rod to the wizard subtype
Cleans up the code a bit. Better var names / more modern.
Splits the suplex action into a separate proc for the wizard form of rods.

* Fixes a wizard rod form hard-del + cleans up code

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2022-02-02 17:00:27 +00:00
SkyratBot
abf7e98baa [MIRROR] Removes useless defines for mutation paths [MDB IGNORE] (#11138)
* Removes useless defines for mutation paths (#64512)

* Removes useless defines for mutation paths

* Update cortical_borer_abilities.dm

* Update cqcplus.dm

* Update clown.dm

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2022-01-30 15:56:08 +00:00
SkyratBot
815edfa83a [MIRROR] Ash drake shapeshifting now converts health, fixes 60567 [MDB IGNORE] (#11068)
* Ash drake shapeshifting now converts health, fixes 60567 (#64141)

* Update shapeshift.dm

* Update shapeshift.dm

* Ash drake shapeshifting now converts health, fixes 60567

Co-authored-by: jughu <melvin2626@live.nl>
2022-01-28 10:25:49 +00:00
SkyratBot
0acc853c91 [MIRROR] Adds a movement looping system, replaces inbuild procs and spacedrift with it [MDB IGNORE] (#10749)
* Adds a movement looping system, replaces inbuild procs and spacedrift with it (#62567)

* Adds a subsystem to handle automated directional movement, replaces all instances of walk_towards with it. Makes meteors and immovable rods not drift in space, and makes immovable rods more destructive. Note, I've opted not to use byond's method of moving towards something, which is effectively Move(src, get_step(src, get_dir(src, target))) as it's cringe and doesn't make a smooth line. I've replaced it with a autoupdating rise over run setup, read the code for more details

* woop forgot the subsystem

* Documentation, contributing.md entry, and some cleanup

* Makes the moveloop datum more oop friendly, sets us up for a lot of conversions

* Converts the curseblob and walk_away() to the subsystem

* Changes the default for override from FALSE to TRUE

* converts walk() over, still need to add a replacement proc for it, but we didn't actually have anything that used the raw proc

* converts the rest of walk_to() over, nearing the end now

* cleans up some errors

* Fully documents everything, fills in some missing movement types, uses the power of oop to make things cleaner, and typepaths longer

* Finishes the contributing.md stuff

* Done

* Fefaults -> Defaults, can you tell I wrote this at 1AM?

* resolves bubblegum issues

* Roh's suggestions

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

* Cleanup

* Hey lemon, did you know that Destroy() lives on datums? ahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh

* Converts over the discrepencies created in my absense

* HAHA FUCK YOU I PAY MY DUES

* Whoops lost some stuff in the merge

* Converts the system from seconds to deciseconds to make dealing with the api more sane

* Some stuff I missed

* Makes movement an inheritable subsystem type, splits the moveloop file into two, one for the subsystem, and one for the datums

* Makes a subsystem that handles directing movers out to other subsystems. It's a bit bad right now, but it's a
good first step. I think I'll move the move loop datum to a lazy var on mobs instead of an assoc list, don't
like lists.

Also makes the movement procs global, I'll move em to the /movement subsystem at some point or something like
that

* Converts the existing uses of the procs over to the new format

* Adds support for subsystem precedence, so a type of A can override type B.
General cleanup, still kinda in debug mode but it's getting better

* I'll admit I'm not too familiar with this, but I think it will work

* Adds starting logic so movement types "pausing" makes any sense
Redoes how waiting is handled to make it based on world.time directly. I don't remember why. I think it's better
this way.

Adds a drifting movement type, moves space drift over to it.
Needs severe work before it's ready, too much info stored and modified on the moving object, see comment
Starts work on making drifting smooth

* Moves almost all space drifting vars over to signals on the movement datum
Properly implements glide size stuff for both the subsystem and the loops. Space drift will be smoother now.
It's not perfect, but it'll work just fine for now

Adds a way to override a client'd mob's glide size mid move, uses it to make entering a spacedrift look right
Adds a way to delay a client move outside of just move_delay, meant to be used for long periods, and setup such
that it doesn't make inputs persist

Adds flags to movement loops, alongside MOVELOOP_OVERRIDE_CLIENT_CONTROL, which blocks client movements while
the loop is firing, and for it's visual delay after

This means you can't exit a space drift until you hit the actual wall. This feels a lot better

Some general logic stuff, move() will return true/false if it succeeded or failed
Adds a stop_loop() proc that's called when a move loop is no longer active

Suck my nuts

* Moves precedence to the loop instead of the subsystem

* Moves drifting into a component, this lets me explictly block input after the move loop ends, so people can't
move the moment they functionally move onto a new tile
This is a bit underdeveloped currently, but that's a problem for another day

Cleans up some uses of move procs, fixes runtimes in metoer and curseblob code
Adds signals for stopping/starting a move loop, sending one for destroy is redundant.
Moves existing event signals from the movable being acted on to the loop itself, makes more sense this way
Makes the move handler return the created loop up the chain so we can register to it
Fixes a logic error in loop contesting code that lead to loops never actually being removed from subsystems
because they didn't know they should be.
Properly changes lifetime from a time to stop, to functionally an amount of moves to complete before stopping
Adds some new signals for pre/post loop process. This is to better tie into components.

I decided I didn't like the idea of tying all functionality to the loops themselves
The loop decides functionally how to move, components or just tied in signals can decide when/when not to move
and can modify properties of the loop

Making a new loop for things like atmos drift, something I'm interested in tackling in the future, seemed silly

* Moves movement procs directly to the subsystem for better namespacing or whatever

* Moves movement packets onto /atom/movable, no longer need the debugging
I've decided to not just put their contents fully onto atom movable, since it makes debugging on live much
harder, can't sdql for them anymore.

Fixes a runtime in meteor code, properly this time
Fixes a logic error in stop_looping
Makes move manager NO_INIT, because well, it doesn't init

* Commits human sin, makes Recover() work properly for movement subsystems

* Fixes immovable rod orbits not always working, they were returning too early in moved and fucking up the var we use to track move count, and thus not sending a signal properly

* Reworks the curseblob to use signals more, and to not use override

* Missed this in the movement ss commit

* Removes override, makes having a higher or equal precedence take its place

* Updates documentation

* Cleans up some unused defines

* Nukes the unused flags option

* Whoops forgot to qdel check

* Removes an unused var I had for client move prevention before I started using a component

* Let's do this properly

* Modernizes meteor code to better match how explosions actually work currently

* Some more cleanup

* Cleans up effect code a little bit
Nukes the effect system's sleep loop, we use movement loops instead
As a part of that, instead of 1 timer per effect spawned, we react to loop failure and make it 1 timer per
effect system
This should reduce the amoumt of slowdown we see after mass lighting break

It's not everything, we're still making a timer per spark effect, but it cuts things down significantly

* Updates explosions to not sleep

* Adds support for modifying a loops delay post process, makes extinguisher code suck less then it does currently, nukes some more sleeps and timer loops

* Converts water tank resin over to move loops rather then sleeps, minor behavior change mind, the cooldown starts on fire rather then on land, but I think that makes more sense anyway

* compile and runtime fix

* Fixes some runtimes, cleans up some code, ensures feature parity when it comes to logging

* Prevents resin foam from space drifting

* Adds support for flags back into the system, I need it for reasons

* Updates move_towards to fix some bugs and resolve some inconsistent behavior, implements a flag that makes a loop's first move start instantly

* Fixes extinguishers not actually transfering any reagents

* Converts sprays to the new system. This does actually minorly change behavior, in that I've changed the order of spray actions from step -> sleep -> wash to step -> wash -> sleep, but I'm not terribly torn up about it because frankly I think it feels better

* Converts grav catapults over to the new system

* Converts trays over to moveloops

* Converts robot streaking to move loops, the other two coming soon

* Compile you won't. Also fixes a behavior issue with oil streaks

* Does directional step_to properly, cleans up the other two streaking types

* Converts step_trigger over, not that it's actually used anywhere. Changes how stoping a move works, you need to explicitly qdel, other the step is just considered to be ignored. This will make life easier later

* Adds a jps movement loop. It's a bit bloaty, id is stupid, but it'll work just fine

* Makes the system support passing in a datum that's just used as extra context for the move. The hope is this makes signalizing things less of an absolute headache

* Begins the conversion of ai movement datums to movement loops

* These two are reasonably simple, only weird thing I'm doing is A: Not allowing target hotswapping, which I hope none is doing, and B: passing the controller into the move loop as extra context so things work properly

* JPS is a bit more complex, partially because the old implementation was a bit weird. 2 major things. 1: I'm dropping what I think was a redundant behavior minimum distance check from the premove bit of logic, since I'm pretty sure it didn't do anything. 2, instead of just stoping the step in an error state like being pulled, we count it against our max move total

* Audit

* Moves most forced movement to the framework, adds some components to make things nicer

* Implements a flag that makes the loop always operate, regardless of precedence and without impacting any other loops

* Moves movement subsystems into the right folder

* Hey potato what if you had two procs that did the same thing and one called the other? Wow it's useless

* Merges slipping and force movement

* Converys conveyors over to the system. It's a bit fragile, but I think it's totally worth it to save the sleep loop

* Precedence -> Priority, cleans up some logic errors, makes priority highest to lowest instead of lowest to highest, straight cleans some code up

* Makes poly and bubbles ignore spacedrift, now that precedence actually functions properly. I'm likely missing cases of this, will deal with it later

* Depression, thy name is linter

* Fixes linter, and hopefully fixes the runtimes in ci too

* Wew

* Sets sprays and extinguishers back to legacy, since people do actually seem to have noticed

* Spelling errors my beloved

Co-authored-by: Kylerace <kylerlumpkin1@ gmail.com>

* More detail, moves return descriptions

* Converts transit tubes to the system?

* Adds the glide size modifier. Not honestly sure that this should be default, considering how crummy it makes things look for normal walking, but it's useful as hell here

* Adds a force move in dir template, actual support for fast initial steps (wtf old me) and a helper proc for setting delay

* Cleans up displosal code a bit, I thought about adding it to the system but it would functionally be just 'disposal loops'. Maybe I'll make a template subtype? not sure how I want to handle stuff like this

* Cleans up mob movement a bit

* Let's use the controller's visual delay

* Makes the resin thrower nicer, cries

* Cleans up some comments, replaces an implicit world.icon_size with an explicit one, fixes up a typecheck

* typecache instead of double istype. Can't do much about the !atom/movable, list would be too big I feel

* hhh

* bro wtf

* Documents the why of SS_TICKER

* Puts SSmovement on SS_TICKER. Lets us support tick steps

* Cleans up the charge action. Makes it use moveloops

* Fixes CI? kinda worried that this just got dropped

* Converts disposal pipes to move loops. They stutter a bit more then usual as of now, hoping that's a me thing, if it's not I'ma look at uping the priority of the base subsystem

* Moves the move subsystems off background, puts some on ssticker

* Prevents some things that shouldn't move in space from moving in space

* Documents the general form and usage of the system

* Virgin one vs chad once

Co-authored-by: Kylerace <kylerlumpkin1@ gmail.com>

* Removes unneeded check

* Moves appropriate movement subsystems into SS_BACKGROUND. Removes redundant SS_KEEP_TIMINGs

I do want the behavior of SS_TICKER, which at this point is tick based waits, and ignoring overtime when
calculating next fire.
Since honestly, these subsystems should ignore overtime in regards to next fire, the cost of moving A may be
nothing compared to the cost of moving B.

* Makes the MODULUS macro use floor. I knew our coders would never let me down, glad this exists, thanks ninja
Fixes teleporting caused by shitty round() behavior, adds a "you hit your target" case to homing loops

* Converts blood splatters to move loops, that'll do it

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

* Adds a movement looping system, replaces inbuild procs and spacedrift with it

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Rohesie <rohesie@ gmail.com>
Co-authored-by: Kylerace <kylerlumpkin1@ gmail.com>
2022-01-18 00:54:06 +00:00
SkyratBot
ba4d737777 [MIRROR] fixes telepathy [MDB IGNORE] (#10756)
* fixes telepathy (#63918)

63354 made it return if the target was a mob, which shouldn't be the case since we WANT to send messages to mobs.

* fixes telepathy

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2022-01-17 00:00:31 +00:00
SkyratBot
65b8082678 [MIRROR] Harddel Fix Pack #42 + Better Live Reftracking Support [MDB IGNORE] (#10639)
* Harddel Fix Pack #42 + Better Live Reftracking Support

* awooga

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-01-12 21:57:49 +00:00
SkyratBot
092e534e75 [MIRROR] TGUI list conversions + bug fixes [MDB IGNORE] (#10355)
* TGUI list conversions + bug fixes

* Fixing conflicts

* Maintaining a few modular files while we're at it...

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2022-01-03 22:53:58 +00:00
SkyratBot
1393263dae [MIRROR] Fix immortality behavior for lich phylactery [MDB IGNORE] (#10304)
* Fixes immortality behavior for lich phylactery (#63540)

Players were able to use a soulstone on a lich's corpse or cut out their brains and stick them inside MMIs. This prevented revival from a phylactery.

With my changes, lich's gain a TRAIT_NO_SOUL when using a phylactery that prevents soulstone capture. This trait could be useful for other portions of the codebase, especially religious stuff but this is beyond the scope of the PR. To fix debraining into MMIs I used the code from how lings and dullahans work to have fake brains.

Please note - I am using webedits (laptop is broken atm) and cannot test any of the code until after new years. If someone wants to be a Chad and test this for me it would be much appreciated!

* Fix immortality behavior for lich phylactery

Co-authored-by: Tim <timothymtorres@gmail.com>
2021-12-27 15:11:02 +00:00
SkyratBot
58f82b5161 [MIRROR] [Ready] MODsuits [MDB IGNORE] (#10244)
* [Ready] MODsuits

* we dont need to add these people as codeowners, goodness gracious

* have to remove this because upstream

* part 1 of these fixes

* EEEE

* Update peacekeeper_clothing.dm

* E

* E

* Auto stash before merge of "upstream-merge-59109" and "origin/upstream-merge-59109"

* E

* Update expeditionary_trooper.dm

* more removal

* nice

* modsuti modstui modusuti

* fixes

* E

* ITS MODsuit not HARDSUIT

* more hardsuit references

* MODSUIT NOT HARSUITEDSA

* Maps

* More ,map

* oop

* e

* oo aa

* 0

* ting tang

* Update modsuit_tailsprites.dm

* hi fikou

* bs tech update

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: jjpark-kb <55967837+jjpark-kb@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2021-12-25 13:32:49 +00:00