Repaths obj/machinery to obj/structure/machinery. **Note for
reviewers:** the only meaningful changed code exists within
**code/game/objects/structures.dm** and
**code/game/objects/structures/_machinery.dm**, largely concerning
damage procs. With the exception of moving airlock defines to their own
file, ALL OTHER CHANGES ARE STRICTLY PATH CHANGES.
Objects, _categorically_, are largely divided between those you can hold
in your hand/inventory and those you can't. Machinery objects are
already subtypes of Structures behaviorally, this PR just makes their
pathing reflect that, and allows for future work (tool actions, more
health/destruction functionality) to be developed without unnecessary
code duplication.
I have tested this PR by loading up the Horizon and dismantling various
machines and structures with tools, shooting guns of various types
throughout the ship, and detonating a bunch of explosions throughout the
ship.
Fixes https://github.com/Aurorastation/Aurora.3/issues/21669
Fixes https://github.com/Aurorastation/Aurora.3/issues/21951
Fixes https://github.com/Aurorastation/Aurora.3/issues/21972
Fixes https://github.com/Aurorastation/Aurora.3/issues/22077
changes:
- bugfix: "All movespeed_modifier slowdown data now applied correctly
post-smooth movement PR. IE: active magboots, duffel bags, etc. again
slow you down."
- bugfix: "Sofas no longer able to be rotated while anchored."
- bugfix: "Attempting to use crowbars, fire axes, hammers on airlocks
while in the Hurt intent will now make you attack the airlock."
- bugfix: "Fixes graphical bug with open lid graphics for crates painted
in any engineering color variants."
- bugfix: "Individual butterfly knife parts are no longer larger than
butterfly knives themselves."
- bugfix: "Elevators that squish mobs (any type of mob/living) will now
appropriately gib instead of just quietly deleting them."
- rscadd: "Miniature fusion reactor explosions now use subsystem
radiation instead of manually applying rad damage to all mobs in range."
These changes are intended to prevent red grabs (neck grabs) being
broken so easily.
It also makes blue grabs very slightly harder to break, by stopping
people from pulling grabbed mobs.
Firstly, the grabbed mobs were not being moved along with their grabber
sometimes.
This happened when the grabber was force moved (such as by a pull, or
another grab or being walked into on harm intent), in which case the
grab that breaks was resolved purely by which had Process called on it
first.
Secondly, you can now no longer pull either the grabber, or the grabbed
mob. This prevents blue-grabs being broken by someone walking up and
pulling either person away, bypassing the Resist mechanic.
Thirdly, a red-grabbed mob cannot be pulled or grabbed by anyone else.
This means the only way to break a red-grab is to disarm the grabber,
stun the grabber, or throw the grabber more than 2 tiles.
https://github.com/user-attachments/assets/9d392229-4544-4546-ae8d-bdfc835fda19
I touched mob, living and mob_movement for this, because the grab checks
were so spread out. I'm not particularly comfortable with having done
that!
I've tested pretty extensively and it seems like nothing broke, but it's
hard to find edge cases without lots of clients and lots of grabs.
Instead of middle clicking to lie down, you now simply rest. You can
also now do it with your gun in your hand. Removes all code related to
bespoke lying down.
To-do:
- [x] Add a signal to make firearm accuracies update on lying down.
---------
Co-authored-by: Matt Atlas <liermattia@gmail.com>
This PR reworks the controls for Mechs to now operate under
"Battletech-Style" controls. Where the W and S keys are instead Forward
and Reverse, while A and D are turn-left and turn-right respectively.
This control scheme is generally significantly more playable for mechs,
since mechs can only interact with objects or fire weapons in a
forward-facing arc. Mechs were previously incapable of both
repositioning and fighting at the same time, while with this update a
mech can now face an enemy, fire upon them, and either move closer to
them or further away.
Mechs also now have reverse speed characteristics based on their chassis
selection. Bipedal legs generally have the worst reverse speed. Quad
legs have significantly better reverse handling, and Treads have no
reverse speed reduction at all (with the fun caveat that they suck at
turning).
I have also fixed the issue of mechs feeling like they were "too easy to
mobility kill". It turned out that mechs were hardcoded to be mobility
killed when they took only 45 points of damage, regardless of how tough
their legs were. I have reworked this to instead be a linear decrease in
movement speed, based on the damage taken ratio of the legs. Larger and
tougher legs are naturally more resistant to being impeded by mobility
damage.
I have actually tested this PR, here's it in action! NOW WITH STRAFING
https://github.com/user-attachments/assets/3123fed8-ec22-4118-8a6a-7cbfe45e6667
---------
Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: Cody Brittain <1779662+Generalcamo@users.noreply.github.com>
Revives https://github.com/Aurorastation/Aurora.3/pull/17215 with the
needed species changes.
As I said last time this was tried, the key issue is that our walkspeed
is a lot lower than any other server's. Even if we add atom gliding as
is, it would just look like gliding through molasses and would give you
motion sickness, because it takes a half-second to finish a glide to
another tile. Meaning that to compensate the movement speed has now been
significantly buffed for everyone. Yes, even dionae, G2, simple mobs,
everyone.
As compensation, m'sai/bishop/unathi sprint were especially nerfed
because otherwise they'd go lightspeed.
https://github.com/user-attachments/assets/7ba07389-b874-4a7d-8dd5-b5d3bfe611e4
---------
Signed-off-by: Matt Atlas <mattiathebest2000@hotmail.it>
Co-authored-by: Matt Atlas <liermattia@gmail.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: Batrachophreno <Batrochophreno@gmail.com>
This adds a parcel cart to the mail room in operations, which can be
loaded with up to 17 packages. These packages can be any that can be
held in the hand, so not crates but anything smaller effectively yes as
long as it can be wrapped in package wrapper.
When it is loaded with 5 packages, it gives a slowdown to the person
pushing it, and further slowdown at 11 packages.
The cart can have a total of 17 packages at the moment, as that is the
amount of different sprites I have for it.
The code is based on the engineering cart, and also contain a small
bugfix so the engineering cart give back steel when taken apart, as that
is what is used to build it.
https://github.com/user-attachments/assets/b8613c9e-55e1-4f76-926a-60f4acd6269e
### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:
| Path | Original Author | License |
| --- | --- | --- |
| icons/obj/parcelcart.dmi | Tomixcomics (Aurora Station) | CC-BY |
## About PR
Sprites are ported from Paradise Station, made by McRamon.
This cart is capable of holding the following:
- 2x sheet stacks of each steel, glass and plasteel.
- mechanical, electrical and emergency toolboxes, one each.
- light replacer
The one that spawns in engineering begins with all 3 toolboxes.
This cart costs 15 plasteel to craft, 100 credits to order from cargo.
Removes relevant toolboxes this cart spawns with in the department.
## Images
<img width="605" height="486" alt="Screenshot_4"
src="https://github.com/user-attachments/assets/59487676-bc5e-4f42-8c8e-d5d59add8481"
/>
https://github.com/user-attachments/assets/88e596ed-06e3-4047-89a8-452d1b13f466
### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:
| Path | Original Author | License |
| --- | --- | --- |
| icons/obj/engicart.dmi | McRamon (Paradise Station) | CC BY-SA 3.0 |
## About PR
- Introduces a dropship-esque Intrepid, making it feel more like a
public transport in a overpopulous city, while trying to avoid
chokepoints.
- Ports the CM's double seats.
- Removes access restriction from Intrepid's side airlocks, to be in par
with the main airlock.
- Deletes some rogue pipes near hangar bay.
- Re-adds a small oven which was introduced in #16449. With slight
tweaks and different colour palette.
This is probably an awful way to port CM's vehicle seats, but in testing
only issue I've found is: when the chair occupant punches someone, their
own buckle off-set will get reset. I am not sure why.
The way the double seats work is, it'll let anyone pass through as long
as both of the seats aren't occupied at the same time.
## Images
<details><summary>Details</summary>
<p>

</p>
</details>
---------
Signed-off-by: Kano <89972582+kano-dot@users.noreply.github.com>
Co-authored-by: hazelrat <83198434+hazelrat@users.noreply.github.com>
Refactored (second passage) how movement works, now it's mostly in line
with TG handling and avoids calling 3 gazillion Cross() Uncross() etc.
on every atom in a turf.
Fixed EMP protection from species not actually protecting (this includes
the surge prevention for IPCs).
Fixed EMP 3D calculation runtiming because I forgot to make the value
absolute and it was doing the square root of a negative number.
It's now possible to queue the round to start with the Start Round verb
even while the system is initializing, for an even faster pain train to
enter the round and test things.
Enabled new opendream pragmas
Fixed some runtime access check operators (`:`) around the codebase (not
all, some are unfixable as they're used in macros)
No player facing changes (hopefully)
https://forums.aurorastation.org/topic/20198-mission-briefing-auroras-gamemode-revolution
To-do:
- [x] Finish storyteller verbs.
- [x] Storyteller landmarks.
- [x] Proper storyteller spawning. Right now the gamemode system is
happy with just picking one storyteller and no actors.
- [x] Antagonist whitelists code.
- [x] Adding the Storyteller whitelist.
- [x] Mission map loading code.
- [x] Map in a bunch of missions.
- [ ] Storyteller adminhelps.
---------
Co-authored-by: Matt Atlas <liermattia@gmail.com>
Co-authored-by: DreamySkrell <>
Refactored the projectile code, mostly in line with TG's now.
Refactored various procs that are used or depends on it.
Projectiles can now ricochet if enabled to.
Damage falloffs with distance.
Homing projectiles can now have accuracy falloff with distance.
Projectiles have a maximum range.
Muzzle flash is configurable per projectile.
Impact effect of the projectile is configurable per projectile.
Accuracy decreases with distance.
Projectiles work with signals and emits them, for easy hooking up from
other parts of the code.
Meatshielding is now less effective .
Impact sound is now configurable per projectile.
High risk.
Refactored hitby to be in line with TG's version.
Refactored item weight defines to a more clear naming scheme, also in
line with TG's version.
Refactored how the movement bumps are handled, ported signals to handle
them, in preparation for the movement update.
Fixed disposal hit bouncing the hitting atom on the wall.
Items do not push other items anymore if they are tiny.
Made relaymoves uniform in function header and non sleepable.
Improved IPC/borg recharger, made it time constant.
Tweaked client/Move() to avoid a range(), moved a relaymove around to
fix a bug, some minor tweaks.
Fixed IPC/borg recharge station not taking the IPC/Borg in on bump.
Ported SSThrowing from TG, to handle throwings.
Updated movement system to the latest iteration, made it a datum as per
latest iteration.
Updated pass/hit handling of atoms, introduced pass_flag_self to
determine what atoms allow to pass.
Moved procs and defines around to make them more organized.
* SDQL2 update
* fix that verb
* cl
* fix that
* toworld
* this is pointless
* update info
* siiiiick..
* vv edit update
* fix that
* fix editing vars
* fix VV
* Port the /TG/ globals controller.
* part 1
* part 2
* oops
* part 3
* Hollow Purple
* sadas
* bsbsdb
* muda na agaki ta
* ids 1-15
* 16-31
* 41-75
* bring me back to how things used to be before i lost it all
* the strength of mayhem
* final touches
* cl
* protect some vars
* update sdql2 to use glob
* stuff?
* forgot that is not defined there
* whoops
* observ
* but it never gets better
* a
---------
Co-authored-by: Matt Atlas <liermattia@gmail.com>
* Initial implementation
* Commented code
* More work for directional handling
* Initial wielding accuracy integration
* Final touchups
* Changelog
* Linter plz
* Alright you prefer this?
* Update code/_onclick/hud/screen_objects.dm
Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
* Update code/_onclick/hud/screen_objects.dm
Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
* Small fix
* and this too
* Diona now have the icon back, but it's locked to walk and lay down
* Fix buckling direction
* Fucking merge conflicts resolution editor highlighter
---------
Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
'NOFALL' is now a status flag instead of being a var specific to BSTechs. It allows the mob to move between Z-levels and through empty space; even to 'fly up' against gravity. However the tech can no longer use this to 'phase into' matter if there is something above them.
...for that you want to use Ruin-Everything instead: incorporeal movement now has an additional type that's (still) just like a ninja's, but it also allows you to move between Z-levels.
Adds the anti-gravity verb to the Bluespace Robot preset and starts them with 'NOFALL' on.
When using 'GODMODE' you will no longer take damage when you fall; instead a cool message will be shown and a quiet thump will be played.
'GODMODE' now protects you from the awful effects of running - you can run indefinitely and won't take damage from it.
Thanks to the above changes the BST is now self-contained in a single file (well except for the robot preset).
To facilitate the above changes several godmode and incorporeal checks have been added (mostly to movement procs). It cuts on some extra proc overrides and type checks. Also results in a more 'natural' experience when using NOFALL, GODMODE or incorporeal movement.
Changed incorporeal values to defines.
Added a "darkvision" mode for the BST goggles.
I also updated some of the BST verbs to be more descriptive.