* Sideports a couple of init unit tests from Neb.
* Trying to unfuck initialize logic.
* Removing del()s.
* Adjusting return values to Initialize().
* Moving some dangerous object logic from obj onto the two types that use it.
* Rolling back some init changes and commenting out initialized atom unit test.
* this comment formatting is a minor war crime
* Removed sleep() from signaler circuit Initialize().
* Additional Init fixes post-rebase.
* Uncomments subsystem test since that's passing.
* Begins work on the Industrial expansion, ft hidden Lore
* Removed Painite, Quartz, and Void Opal from generation pending their eventual uses. Recipes modified to use them have been reverted of this use.
Fix Fix.
* Reset map to master.
* Add copper to Robotics, R&D, Engineering, and EVA.
* Baseline work for Department Goals. Implements round-end stats, based in 3 categories of roughly-more-interesting to less interesting.
* Active Goal Separation.
* Map.
* Actually does the second half of this in this PR instead of a different one.
* Allow mechs to butcher things with their drill.
- Vague copy of a TG feature, made difficult by their different code. Still, it works.
* Add changelog
A 1.5x modifier was added to strafing speed without much of any info. This is not something that should had been added without at least clearly saying it in the PR that introduced it.
Maybe it could comeback for shitty actuators, but seeing as we only have a single actuator variant at the moment, this has to go.
Self-explanatory.
Adds toggle to go back to the old-school SS13 legacy airlock sounds, including the glass windoor airlock sounds, and a toggle to disable the per-department door sounds, which some found jarring/unrealistic.
If Per-Department sounds are disabled, the department doors will use the default sounds except for open/close except for glass airlocks, which use cmd3o/c, and maintenance, which uses hall1o/c, following maintainer-requested behavior for these doors.
PR with changes from staff: https://github.com/PolarisSS13/Polaris/pull/7595
This also relocates the following sounds to be inside machines/door for more consistency:
- airlock.ogg
- airlockclose.ogg
- airlockforced.ogg
- airlock_creaking.ogg
- boltsup.ogg
- boltsdown.ogg
- blastdoorclose.ogg
- blastdooropen.ogg
- windowdoor.ogg
Demonstration Here (recorded before the change to make department doors use maintainer-chosen audio if department was disabled): https://giant.gfycat.com/WhichUniformBrahmancow.webm
- You can now toggle strafing by alt+clicking your mech, which should be much easier to control mid combat than trying to use the action button.
Ported from TG.
- Moved the missiles into a proper projectile file.
- Made it so the missile launcher actually FIRES things instead of throwing them and priming the missile.
- Copy things from TG for how the explosions are handled. Just use a regular explosion, that's weaker if it hits people.
- Updated the missile to an animated version from Teegee and stole a couple of their sprites too.
* Begins work on internal exosuit components, similar to Borgs.
* Large volume of work on exosuit components, Durand is tweaked to be higher cost in time and resources, since it requires AP to damage, without ions or explosives.
* Component Sprites
* Actually implement component repair, I knew I missed something.
* Magic numbers, properly typed lists, and indentations oh my
* Changeling
Adds a HUD for observers
Adds a HUD for rigs and mechs
Adds up/down buttons for AI hud
Add more tg style alerts
Fix some bugs with the tg alerts
Improve icon_states usage by caching it
Redo how respawning works, add a button to ghost hud for it
- Added a few comments there and there.
- Deleted some code that wasn't used for basically 9 years in some cases.
- Deleted some of my own code that wasn't supposed to be here.
- Made it so you can only suffer internal damage below 33% or 1 third of your total health.
- Increased the chance for internal damage from 20 to 25% when it does trigger.
- Added RNG to make sure some events didn't result in frequent internal damage.
- Added a variable threshold for internal damage. Currently 15 damage.
- Lowered minimum penetration values from 20 to 15.
This commit makes mechs more tanky when they are at above a decent level of health, but more vulnerable below it.
* Indent some comments for ease of read
* Edit the armor values to be more readable, also add radiactive and bio checks.
* Add damage threshold and penetration thresholds.
If you do not enough damage, it will simply bounce off consistently. Something that does 1 damage to a person would be so ridiculously nothing to a mech that it shouldn't achieve anything.
- If you throw a pebble at a mech, it will probably do nothing unless decently good as a weapon.
Additionally, your armor reduces the effectiveness of most attacks without a minimum of armor piercing.
- A flat hit with an hammer might be damaging to a squishy human, but it would probably not be all that effective against armored outerskin. The damage will be reduced to 2/3 or x0.66 to remark on this.
* Add a couple example values to the ripley and durand.
* Move the value by which failed penetrations damage is reduced to. God this is a mouthful to say out loud.
* Change the damage message from 'no denting' to 'bounces off'
* Fix an indentation error
* Small variable tweak.
* Add some work for random mechs
- Add a few variants of worn down, slightly busted mechs, this is specifically intended for mech bay later on.
- Add a random spawner with pretty much every mecho inside of it.
-
* Several mecho things:
- Add a comment to mecha.dm
- Add a forgotten comma
- Delete the vague attempt at a marauder cleared thing.
- Correctly change max health on the gygax
* Make it so the Marauder/old doesn't spawn with stuff
* Add a weaker list of mechs without phazon & marauder
* Fix a typo in a verb.
* Add straffing to mechs. This took my entire morning goddamnit.
You now have a straffing verb. Very convenient to shoot while firing back.
Thanks to @drexample even if i didn't use all that much of the original code i stole.
* Change straffing to strafing.
* Correct an oversight.
* Add a variable that determines whether or not you are in a mech or fighter at the moment.
* Rework a lot of mech code backend and add clickable buttons.
- Gygax overload, Durand defence mode, phazon phase, marauder smoke, zoom and thrusters have been made into modular things. Just put the 'smoke_possible' var to get those actions.
- Move most abilities that aren't for default mechs to 'Mecha_actions.dm' for less huge of a file. Marauder abilities to be moved shortly.
- Lot of verbs have been broken into procs such as toggle_lights() now being a verb refering to a lights() proc for easier work later on.
- Delete some movement code duplications.
- Changed the smoke system to be more up to date, inspiration taken from the cooking machines.
* Space out some things for ease for reading.
* Improve the damage readout for mechs on examine
* Improve speed boost code to an easier to modify version.
* Deleting a couple few forgotten debug messages.
* Fix a typo in a verb.
* Add straffing to mechs. This took my entire morning goddamnit.
You now have a straffing verb. Very convenient to shoot while firing back.
Thanks to @drexample even if i didn't use all that much of the original code i stole.
* Change straffing to strafing.
* Correct an oversight.
This adds throw_alert() and /obj/screen/alert, a system that allows you to do custom hud alerts for any variety of things from "You're too cold!" to mecha status indicators for the pilot.
There's quite a few things that actually got replaced; the
fire/oxy/tox/co2 alerts are all now just alerts, as is nutrition. There's also a number of new alerts, such as blindness, highness, legcuffed, buckled, handcuffed, and probably some more I missed; read code/_onclick/hud/alert.dm and see for yourself!
Additionally, a number of tweaks have been done to resisting code, to make it so that there's an indicator when you're buckled or handcuffed, and can just click the alert to start resisting. This includes a refactor that combines the logic for lockers, holders all into one proc, called container_resist().
Also, the health and internals indicator got moved down one tile each. Needed room for the alerts. If we add the oxygen tank action buttons from /tg/ and remove the internals indicator, the health indicator can go back where it was originally.
Alerts, pictured in the top right.

- Instead of using auto_use_power to re-tally up machinery's power usage every cycle, track the steady "static" load separately from the transient "oneoff" usage. Machines then only need to inform the area when they use oneoff power or *change* their steady usage.
- Remove auto_use_power and stop SSmachines from calling it.
- Add vars to track "static" usage for each of the three power channels to /area
- Rename the existing three vars to "oneoff" so its clear what they mean (and to catch people accidentally updating them directly)
- Update area power procs and APCs to use the new variables.
- Rename /area/proc/use_power() to use_power_oneoff() to make it clear what it is doing.
- Deprecate /obj/machinery/use_power() in favor of use_power_oneoff() but don't delete yet. Can transition gradually.
- Add logic to the update_power procs on machines to calculate the deltas and update static area power whenever their usage changes.
- Add logic to machines to update area power when they are created, destroyed, or move.
- Moved /obj/machinery procs related to area power usage into machinery_power.dm to make them easier to find.
- Added or updated comments in several places to explain what is going on and how to use it.