Commit Graph

1283 Commits

Author SHA1 Message Date
SkyratBot
b8cde47f70 [MIRROR] Telekinesis can throw non items (vending machines, lockers) only 1 tile far (#2626)
* Telekinesis can throw non items (vending machines, lockers) only 1 tile far (#56063)

Telekinesis users can now only throw items 10 tiles, everything else can only be thrown 1 tile

* Telekinesis can throw non items (vending machines, lockers) only 1 tile far

Co-authored-by: Gamer025 <33846895+Gamer025@users.noreply.github.com>
2021-01-10 23:18:35 +01:00
SkyratBot
beb6459e68 [MIRROR] Fixes plasma alerts not showing up (#2474)
* Merge pull request #55869 from LemonInTheDark/fixes-plasma-alerts

Fixes plasma alerts not showing up

* Fixes plasma alerts not showing up

Co-authored-by: 81Denton <32391752+81Denton@users.noreply.github.com>
2021-01-03 15:00:35 +01:00
SkyratBot
8bad10a1c9 [MIRROR] Fixes two bugs with Blob strain rerolling (#2440)
* Fixes two bugs with Blob strain rerolling (#55833)

* tested locally and it works

* As suggested

Co-authored-by: Ranged <nickvanderkroon@ gmail.com>

* Fixes two bugs with Blob strain rerolling

Co-authored-by: NotRanged <rangedvdk@gmail.com>
Co-authored-by: Ranged <nickvanderkroon@ gmail.com>
2021-01-02 13:19:15 +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
d6fb024d57 [MIRROR] Fixing zero damage items with set attack verbs not showing chat messages anyway. (#2362)
* Fix zero damage items not showing explicitly set attack verbs in chat (#55509)

Borked exactly five months ago by #52890.

This will close #55219.

* Fixing zero damage items with set attack verbs not showing chat messages anyway.

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2020-12-29 02:39:22 +00:00
SkyratBot
5b373aaf92 [MIRROR] Fixes mech equipment being unusable for AIs (#2345)
* Fixes mech equipment being unusable for AIs (#55248)

Adds a signal listener on mechs that listens for middle clicks, and calls a proc that will, in turn, call the normal click proc if the user is an AI.

Middle clicks now pass through params just like left clicks.

* Fixes mech equipment being unusable for AIs

* Add CI-conform #2347 to this.

Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
Co-authored-by: Alex 'Avunia' Takiya <git@takiya.cloud>
2020-12-28 15:23:22 +01:00
SkyratBot
3730ad96a2 [MIRROR] Generalizes the hands-blocked trait as UnarmedAttack block (#2263)
* Generalizes hands blocked as unarmed attack block (#55579)

I suppose for bots there's a certain level of abstraction involved, but it makes sense within the context.
There's a pretty bad bug associated with shades here that this fixes.

* Generalizes the hands-blocked trait as UnarmedAttack block

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-12-21 19:56:19 +00:00
SkyratBot
8edeb0fcbc [MIRROR] Rerolling blob strains now uses a radial menu, and lets you see what the strain does before picking it (#2258)
* Rerolling blob strains now uses a radial menu, and lets you see what the strain does before picking it (#55559)

Also provides a generic, forward proof way to provide information to radial menu choices.
Why It's Good For The Game

    input is old and crummy.
    Blob is a very wiki reliant mechanic. This moves a bit of it into the game itself to fix that.
    Provides a real cancel option, whereas the old one had none. This is not a balance change, but a QoL one--everyone just moved the input window off to the side.

* Rerolling blob strains now uses a radial menu, and lets you see what the strain does before picking it

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2020-12-21 19:55:37 +00:00
SkyratBot
35aaa84a84 [MIRROR] Filterrific! (#2233)
* Filterrific!

* a

Co-authored-by: Rob Bailey <actioninja@gmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-12-19 06:29:54 +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
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
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
c930b76b03 [MIRROR] Removes a rogue arg from a register signal (#2042)
* Removes a rogue arg from a register signal (#55310)

* Removes a rogue arg from a register signal

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
2020-12-04 11:03:00 +00:00
NotRanged
b4fade2405 tested and working (#2024)
Co-authored-by: Ranged <nickvanderkroon@gmail.com>
2020-12-03 17:22:04 +00:00
SkyratBot
6307794db3 [MIRROR] unfucks hitting simplemobs with melee attacks (sorry!) (#1998)
* unfucks hitting simplemobs with melee attacks (sorry!) (#55269)

Adds a single "!" to the code I added (in #55023) to make it not make most simplemobs immune to being hit with most melee weapons.

* unfucks hitting simplemobs with melee attacks (sorry!)

Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
2020-12-01 20:31:37 +01:00
SkyratBot
c487c73f39 [MIRROR] Grep for space indentation (#1969)
* Grep for space indentation

* aa

* Update species.dm

* Update species.dm

* Update maps.dm

* Update examine.dm

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-12-01 12:26:41 +01:00
SkyratBot
19a920a268 [MIRROR] Makes the usage of force_threshold in the attackby() proc for simplemobs consistent with the way it's used everywhere else (#1970)
* Makes the usage of force_threshold in the attackby() proc for simplemobs consistent with the way it's used everywhere else (#55023)

## About The Pull Request

Namely, this means that a simplemob's immunity to melee attacks of force X or lower now accounts for that simplemobs damage multipliers to various damage types. It also means that simplemobs with a force_threshold of X are now immune to melee attacks of force X or lower, not melee attacks with a force less than X (<= vs. <).

## Why It's Good For The Game

**tldr;
This make the code for simplemob "your stick must be this strong to deal damage" thresholds more consistent.**

Xenomorphs, xenomorph larvae, barehanded monkeys, slimes, and simplemobs in general all multiply the damage of their attacks by the relevant damage resistance multiplier BEFORE checking it against the force_threshold of the simplemob they're attacking, and also check to see if their damage is <= the force_threshold of the simplemob they're attacking (instead of requiring it to be strictly < the force_threshold of the simplemob they're attacking).

As for balance concerns, while this will affect juggernauts *slightly* (as they'll now be immune to force <= 10 melee weapons instead of just force < 10 melee weapons), I'm not too worried about that. What I _am_ worried about is blobbernauts, who, after this change, will be immune to brute melee weapons of force 20 or lower (due to their 0.5 brute damage multiplier). You will, of course, still be able to welder them just as effectively as you could before, but I'm worried that this could make blob-aligned blobbernauts even stronger than they already are.

* Makes the usage of force_threshold in the attackby() proc for simplemobs consistent with the way it's used everywhere else

Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
2020-11-30 18:33:12 +00:00
SkyratBot
8d130ce006 [MIRROR] Fix 'your mind won't reach that far' message when clicking moodlet with TK (#1773)
* Fix 'your mind won't reach that far' message when clicking moodlet with TK (#55070)

The mood /atom/movable/screen, instead of having a Click() override, instead has its COMSIG_ATOM_CLICK registered in the mood component. This has the side effect of normal attack chain protocol being ran on it, meaning that if you click it with TK you will get a message saying "Your mind won't reach that far". This fixes that by overriding attack_tk into a noop.

* Fix 'your mind won't reach that far' message when clicking moodlet with TK

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2020-11-22 18:22:26 +00:00
SkyratBot
e768cef297 [MIRROR] /obj/screen --> /atom/movable/screen (#1646)
* /obj/screen --> /atom/movable/screen

* Update storage.dm

* Update radial.dm

* a

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-11-11 04:12:50 +01:00
SkyratBot
eedf2362cc [MIRROR] Refactored 'IsAdvancedToolUser' into a macro plus relative trait. Tweaked 'can_hold_items'. (#1674)
* Refactored 'IsAdvancedToolUser' into a macro plus relative trait. Tweaked 'can_hold_items'. (#54665)

The PR aims to allow advanced tool users to be defined by traits rather than a hardcoded proc.
Also necessary for the CanUseTopic refactor I'm working on, which will be PRed separately for atomization purposes.
This PR also fixes an inconsistency with can_hold_items (since monkeys can actually hold items).

* Refactored 'IsAdvancedToolUser' into a macro plus relative trait. Tweaked 'can_hold_items'.

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2020-11-11 02:52:32 +00:00
SkyratBot
2b51110471 [MIRROR] radial menus ignore the anchor's alpha, color and transform now. (#1662)
* radial menus ignore the anchor's alpha, color and transform now. (#54870)

* radial menus ignore the anchor's alpha, color and transform now.

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2020-11-11 02:50:22 +00:00
SkyratBot
03d81cfb75 [MIRROR] Fixes the attack chain (#1520)
* Fixes the attack chain

* a

Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-10-31 15:58:00 +01:00
SkyratBot
cb880bb359 [MIRROR] Adds layer switching with mouse wheel to the RPD. (#1491)
* Adds layer switching with mouse wheel to the RPD. (#54458)

Adds a signal that gets sent to items in currently active hand on mouse scroll
and makes RPD listen to this and change the piping layer accordingly.

* Adds layer switching with mouse wheel to the RPD.

Co-authored-by: TheChosenEvilOne <34602646+TheChosenEvilOne@users.noreply.github.com>
2020-10-27 09:09:25 +00:00
SkyratBot
b3d0512b47 [MIRROR] Adds 👏 High 👏 Fives 👏 (#1445)
* Adds 👏 High 👏 Fives 👏 (#54516)

This PR lets you post up for high-fives with your buds so you can slap some skin and show off how well you vibe together. To initiate a high-five, simply stand next to another person with a slapper (the *slap emote one) in hand, and hit the offer item button (default G) to let the people adjacent to you know you're available. They'll get an alert that you're offering a high-five, and clicking it will follow through and award you both a small positive moodlet, or they can just walk away and leave you hanging, earning you a negative moodlet.

Is a high-five not enough to show the world how tight your crew is? Double the fun! If whoever initiates the high-five has a slapper in both hands, and the taker has two hands free, you'll go for the mythical high-ten for a louder slap and extra emphasis! Woo!

* Adds 👏 High 👏 Fives 👏

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2020-10-24 01:05:55 +01:00
SkyratBot
991c7c6306 [MIRROR] Adds a runechat plane to fix the issues related to the chat messages (#1428)
* Adds a runechat plane to fix the issues related to the chat messages (#54522)

Previously your chat messages would be obstructed by the blackness of blocked turfs, aswell as dark lighting and some other effects. This fixes that
It still has backdrop ambient occlusion like it used to.

* Adds a runechat plane to fix the issues related to the chat messages

Co-authored-by: Azarak <azarak10@gmail.com>
2020-10-22 23:03:03 +01:00
SkyratBot
6ecaa9a994 [MIRROR] Standardizes attack chain signal returns and fixes a tk bug (#1409)
* Standardizes attack chain signal returns and fixes a tk bug (#54475)

The attack chain is a bit of a mess, and the introduction of signals hasn't helped in simplifying it.

In order to take a step into untangling this, I re-ordered the attack signals to no longer be by source type and instead to be grouped more modularly, as they are all members of the attack chain and function similarly. They all share the trait of potentially ending the attack chain via a return, but had several different names for it. I joined it into one.

Additionally, fixed a tk bug reported by @ Timberpoes by adding a signal return check at the base of /mob/proc/RangedAttack

Lastly, removed the async call of /datum/mutation/human/telekinesis/proc/on_ranged_attack, which was added as a lazy patch to appease the linter complaining about a sleep on a signal handler (namely in /obj/singularity/attack_tk). Fixed the problem using timers.

Also cleaned some code here and there.

* Standardizes attack chain signal returns and fixes a tk bug

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-10-21 07:39:32 +02:00
SkyratBot
d1315d9474 [MIRROR] Audio falloff re-work, and increased audio range. (#1406)
* Audio falloff re-work, and increased audio range.

* a

* a

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-10-21 07:36:31 +02:00
SkyratBot
28472fa8f3 [MIRROR] Moves screen objects from mob to hud (#1336)
* Moves screen objects from mob to hud (#54400)

This moves screen images from icons/mob to icons/hud
Makes more sense and it is easier to find

* Moves screen objects from mob to hud

* Update radial.dm

Co-authored-by: nicbn <nicolas.nattis@gmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-10-16 03:37:54 +02:00
MLGTASTICa
ed689a2069 Ports AI/Cyborg QoL updates, Allows AI to examine and adds more QoL features. (#1167)
* Update ai.dm

* Update cyborg.dm

* travis

* Revert

* spacing

* Update ai.dm

* Update cyborg.dm

* Update cyborg.dm

* Create Silicon_QoL

* Add files via upload

* Delete Silicon_QoL

* Update _onclick.dm

* Update _onclick.dm

* Create readme.dm

* Update readme.dm

* Rename readme.dm to readme.md

* Update ai.dm
2020-10-14 00:11:18 +01:00
SkyratBot
b8d9874c27 [MIRROR] Converts all A && A.B into A?.B (#1292)
* Converts A && A.B into A?.B (#54342)

Implements the ?. operator, replacing code like A && A.B with A?.B

BYOND Ref:
When reading A?.B, it's equivalent to A && A.B except that A is only evaluated once, even if it's a complex expression like a proc call.

* Converts all A && A.B into A?.B

Co-authored-by: ZeWaka <zewakagamer@gmail.com>
2020-10-13 23:19:25 +02:00
SkyratBot
79035bbebe [MIRROR] Enables a click cooldown on throws (#1272)
* Enables a click cooldown on throws (#54331)

* Enables a click cooldown on throws

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-10-12 23:23:47 +02:00
SkyratBot
970a2b03d6 [MIRROR] Mobility refactor: no more update_mobility() (#1233)
* Mobility refactor: no more update_mobility()

* Update robot.dm

Fixes robots.

* megadumb

* Update robot.dm

* weh

* Update gunpoint_datum.dm

Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-10-10 02:31:35 +02:00
SkyratBot
ec5324bc1a [MIRROR] [READY] Highlander mode now includes silicons (#1122)
* Merge pull request #53702 from zxaber/kiltborg

[READY] Highlander mode now includes silicons

* [READY] Highlander mode now includes silicons

Co-authored-by: nemvar <47324920+nemvar@users.noreply.github.com>
2020-10-02 19:10:58 +02:00
SkyratBot
9be3a7b8f6 [MIRROR] Moblity refactor: hands blocked and restrained edition. (#1051)
* Moblity refactor: hands blocked and restrained edition.

* Update carbon_defense.dm

* Update emotes.dm

Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-09-29 13:57:02 +02:00
SkyratBot
407dc26fd1 [MIRROR] Prevent inventory HUDs from overlapping multiple overlays (#1042)
* Prevent inventory HUDs from overlapping multiple overlays (#53974)

Currently, when you drag your mouse off an inventory button while holding it down, it'll leave a permanent ghost image (#53950). This is because MouseExited is not being called properly. However, I couldn't reproduce this in a non-SS13 BYOND project, which makes it difficult for me to fix that.

This is a band-aid fix. It'll leave a ghost image, but then the next time you hover over and exit, it'll remove it, making it much less annoying.

* Prevent inventory HUDs from overlapping multiple overlays

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2020-09-29 12:28:48 +02:00
SkyratBot
fd11d35489 [MIRROR] Adds borg tablets, and RoboTact as a borg self-management app (#959)
* tgui: Borg tablets and RoboTact as a borg self-management app (#53373)

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* take one

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* part 2

* Automatic changelog compile [ci skip]

* part 3

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* part three I think

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* who even knows what step I'm on anymore

* and another one

* Automatic changelog compile [ci skip]

* PR time

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile [ci skip]

* Forward Progress

* Automatic changelog compile [ci skip]

* Merge remote-tracking branch 'upstream/master' into SiliScreen

* more foward progress

* RoboTact

* bad tab

* Improvements all around

Plus some changes to vis_overlay to allow for color

* Lights and things

* borg network card

borg tablets lose networking when borg is locked or has no power

* hud changes

not done yet, but getting close

* better modPC screen button

* updoot

* more useful colors

* linter

* Do I finally get a green ✓

* better law sync catching

* hate linters

Co-authored-by: Changelogs <action@ github.com>

* Adds borg tablets, and RoboTact as a borg self-management app

Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
Co-authored-by: Changelogs <action@ github.com>
2020-09-24 20:29:31 +02:00
SkyratBot
ec28f27bf8 [MIRROR] Fix broken dmdoc crosslinks (#933)
* Fix broken dmdoc crosslinks

* Update species.dm

Co-authored-by: Tad Hardesty <tad@platymuus.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-09-23 15:14:45 +02:00
SkyratBot
243e224167 [MIRROR] Custom statues and sculpting changes. (#927)
* Custom statues and sculpting changes. (#53154)

### Gameplay changes:
- Spacemen lose their ability to sculpt all minerals into statues barehanded, you need a chisel now.
- You can now create carving blocks out of 5 sheets of most materials.
- Using a chisel on the blocks you can designate what to carve in it (including the preset statues from before).
- Chisels can be printed at autolathe, there's also one in art storage.
### Code changes:
- Squeak component now squeaks on attack_hand for structures.
- Radials now accept atom paths automatically extracting the name with initial.
- Base and rigid stack recipes renamed appropriately.
- Statues now use custom materials.

* Custom statues and sculpting changes.

Co-authored-by: AnturK <AnturK@users.noreply.github.com>
2020-09-23 14:42:47 +02:00
SkyratBot
7979f4d1b0 [MIRROR] Fully removes devil and affiliated shitcode (#922)
* Fully removes devil and affiliated shitcode (#53612)

Its all over the place, messy, and overall a bad enough gamemode to be removed from rotation.
A rework would have to tear out everything as is so there is no reason to allow the shitcode to live beyond tripping up everything.

* Fully removes devil and affiliated shitcode

* weh

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-09-23 10:00:29 +01:00
Azarak
d3f5d861ef typing indicator (#863) 2020-09-18 17:02:36 +01:00
Azarak
786faaaf39 [SEMI-MODULAR] Gunpointing! Similar to bay-aiming (#800)
* Gunpoint!

* Spans

* linter moment

* wah

* weh
2020-09-17 02:18:01 +01:00
SkyratBot
d87cbeeba3 [MIRROR] Cyborg inventory runtime fix. (#813)
* Cyborg inventory runtime fix. (#53741)

Following the cyborg inventory refactor, code changed a bit.

Cyborg inventory screens are inited in the HUD, however AI Shells don't generate a HUD until an AI assumes direct control.

Damaging an AI shell before the AI created a HUD in it would cause runtimes as modules disabled and enabled.

To remedy this, we now initialize the core inventory slots on the robit Init() and then update them as necessary in the HUD code later on if an AI ever deigns to grace your shell with their exalted presence instead of asking for it and then never using it.

* Cyborg inventory runtime fix.

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2020-09-16 01:28:32 +01:00
SkyratBot
7c4b7cdb9a [MIRROR] limb disabled refactor (#757)
* limb disabled refactor (#53374)

    Fixes #53219
    Nukes is_disabled()
    Turns several variable value changes into events.
    bodypart_disabled turned into a boolean value.
    BODYPART_DISABLED_WOUND turned into TRAIT_DISABLED_BY_WOUND. Not the cleanest thing out there, but it works.
    Cleans some code and reduces number of updates, as only the extremities have a disabled effect.

* limb disabled refactor

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-09-11 23:21:46 +02:00
SkyratBot
cd0d700a85 [MIRROR] Mecha refactor 2020 (#579)
* Mecha refactor 2020

* Update effects.dm

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-09-02 02:16:51 +02:00
SkyratBot
ec09510459 Bools and returns super-pr (#53221) (#565)
Replaces like 70-80% of 0 and such, as a side effect cleaned up a bunch of returns
Edit: Most left out ones are in mecha which should be done in mecha refactor already
Oh my look how clean it is

Co-authored-by: TiviPlus <TiviPlus>
Co-authored-by: Couls <coul422@gmail.com>

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Couls <coul422@gmail.com>
2020-08-30 05:12:59 +02:00
SkyratBot
1c1ce7b055 [MIRROR] Browser Status Panel (#548)
* Browser Status Panel (#53112)

* Browser Status Panel

Co-authored-by: Couls <coul422@gmail.com>
2020-08-29 20:26:27 +01:00
SkyratBot
7540337c7a [MIRROR] Adds a succumb alert prompt (#545)
* Adds a succumb alert prompt (#52892)

* Adds a succumb action

* Change from action button to alert to stand out more

* CAN_SUCCUMB macro and early return

* Move updating to set_stat

* Bring back new_stat

* Move to new traits

* Observer check

* Adds a succumb alert prompt

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2020-08-27 22:10:25 +02:00
SkyratBot
7bbe8ec530 [MIRROR] [READY] Vatgrowing: Third time's the charm (#508)
* Merge pull request #53020 from Qustinnus/fatgrowing

[READY] Vatgrowing: Third time's the charm

* [READY] Vatgrowing: Third time's the charm

Co-authored-by: 81Denton <32391752+81Denton@users.noreply.github.com>
2020-08-25 01:36:10 +02:00
SkyratBot
3bd294f26f [MIRROR] Defines damage flags. (Hopefully without 50+ commits) (#491)
* Defines damage flags. (#53158)

* Defines damage flags. (Hopefully without 50+ commits)

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
2020-08-24 22:52:31 +02:00
SkyratBot
0b65cc596b [MIRROR] Overlay lighting component (#469)
* Overlay lighting component (#52413)

Sparks no longer lag, projectile beams move super smoothly, same with mobs and whatnot. This also allows for easy expansion into directional lights, field-of-view, wee-woo rotating lights or whatever.

It does have a downside: things right-clicked or checked through the alt+click tab will show the light overlay:


This is a BYOND limitation, very well worth it IMO.

🆑
add: Smooth movable lighting system implemented. Projectiles, sparks, thrown flashlights or moving mobs with lights should be much smoother and less laggy.
balance: Light sources no longer stack in range, though they still do in intensity.
/🆑

* Overlay lighting component

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-08-23 20:17:12 +02:00