169 Commits

Author SHA1 Message Date
Spookerton 978f4511a5 examine signature changed to include distance
- distance is INFINITE, 0, or a positive integer based on get_dist() between
the examiner and examinee's turfs when they are on the same Z. When the
examiner is dead or a ghost, distance is always 0.
- also updates /examine( implementations to use it!
- adds w_class_to_name proc for reusing "It is a X item." examine behavior.
2024-01-31 13:49:52 +00:00
Ava d6e00dd400 Fixes a hiccup in cable coil examining 2023-03-06 05:37:15 -05:00
spookerton ffba11e5ab rename a bunch of atom flags 2022-10-18 09:36:41 +01:00
spookerton 3abdbbaa1c replaces atom.initialized with ATOM_INITIALIZED
refactors atom/var/flags to atom_flags and area_flags
moves NOBLOODY, NOBLUDGEON, and PHORONGUARD to item_flags instead of atom_flags
corrects various misapplied flags
2022-10-18 09:36:36 +01:00
spookerton 556331a6a3 use /global/ sugar for bare globals, no leading / 2022-04-24 07:54:34 +01:00
atermonera 9d71839ac6 Removes devices 2022-04-17 19:14:43 -08:00
atermonera 7a9806d9b4 Removes weapons 2022-04-17 19:14:32 -08:00
atermonera c7f1880394 Revert "What was supposed to be another straightforward major system overhaul that once again spiraled out of control (#8220)"
This reverts commit 4d8c43f106.
2022-03-29 16:01:32 -08:00
Atermonera 4d8c43f106 What was supposed to be another straightforward major system overhaul that once again spiraled out of control (#8220)
* get_tool_quality has numerical meaning

* Basic tools set tool quality

* Toolspeed is replaced by tool quality checks

* Addresses assorted results from live test

* Extra cleanup
2022-01-16 15:52:55 -08:00
Atermonera 0232be9531 Repaths obj/effect/effect, datum/effect/effect [MDB_IGNORE] (#8312)
* Repaths obj/effect/effect, datum/effect/effect

* linter fixes

* No new

Co-authored-by: Atermonera <forslandm@gmail.com>
2022-01-16 00:14:39 -08:00
MistakeNot4892 2f0a618d45 /atom New() => Initialize() [MDB IGNORE] (#8298)
* Find and replace argless atom New() to Initialize().

* Manual replacement of no-arg New() to Initialize().

* Manually replacing remaining New() overrides.

* Fixing linter issues with now-removed New() args.

* Tidying area init overrides.

* Porting Neb's atom subsystem.

* Trying to isolate init problems.

* Adjusting Init code post-test.

* Merging duplicate Initialize() procs.

* Merge resolution.
2021-11-14 00:09:14 -08:00
Atermonera 9c4eceae2b Removes suicide_act() 2021-09-19 11:43:34 -08:00
Atermonera 959511918c Replaces DEFAULT_WALL_MATERIAL with MAT_STEEL, where applicable (#8156)
* Replaces DEFAULT_WALL_MATERIAL with MAT_STEEL, where applicable

* floorbot compiles
2021-06-29 20:28:16 -07:00
MarinaGryphon 593246b595 Linter diagnostics + bans non-var relative pathing (#8150)
* Linter diagnostics + bans non-var relative pathing

* Enable DreamChecker Annotations

* make it executable

* update hashFiles

* oops

* tries to fix it... again

* trying again

* path

* repath

* fix perms

* fixes weird capitalisation issue
2021-06-20 13:14:29 -09:00
Neerti fdabe51ee8 Linter Introduction + Cleanup (#8085)
* Adds linter defines to repo.

* Uncomments linter defines already in the code.

* Resolves unreachable code linter errors.

* Nukes decade+ old syndie specops code except for computer since that's mapped in?????

* Resolves procs has no parent linter error.

* Proc signature fixes

* Bad comments

* "In" danger

* Type safety

* Implied nested list abuse

* Top level ..() usage

* Sleepy coder typos

* Invalid kwargs calls

* Pointless returns

* Linter hacks (see full message)

Byond doesn't care and it has no effect but linter doesn't like var/proc
for holding references to procs, despite that it's valid byond code.

Also, the linter seems to have serious issues figuring out relative
proc names. This commit is a sort of take-it-or-leave-it thing. It's not
required, it just cuts down on warnings, but this code is valid DM code.

* WHATEVER THIS IS

* Trick dreamchecker linter into ignoring this file's sins in it's weird use of vars

* Fix list decoration syntax - Its a list, not list of lists

- To declare that a var is a list you can `var/list/blah = list()` syntax or the `var/blah[0]` syntax.  Both do exactly the same thing. But if you do `var/list/blah[0]` that is just like doing `var/list/list/blah = list()`

* Hopefully stops the ai holder subtype folder from going quantum and sometimes changes capitalization over time, and incidentally causing 20+ linter errors.

* Fixes unwrapped negated object in list linter error.

* Resolves colon-like list accessing linter error.

* Turns linter on in linter config.

* Fixes closet indentation properly and cleans up suit storage unit switch.

Co-authored-by: Aronai Sieyes <arokha@arokha.com>
Co-authored-by: Leshana <Leshana@users.noreply.github.com>
2021-05-25 18:17:26 -09:00
ShadowLarkens c688399f60 Fix welding tools and cable coils as tools 2021-05-02 18:31:47 -07:00
Rykka 0c7a7fd2b8 Massive Ambience and Sound Overhaul + Addition, Squashed Commit Edition 2020-08-21 06:53:05 -04:00
Cyantime 9d45e995cf Replaces cable attack_ghost with normal examine 2020-08-14 18:45:25 -04:00
Atlantiscze c32112c69c Merge branch 'master' of https://github.com/PolarisSS13/Polaris into 2020_04_17_LoadBalancing 2020-05-03 23:17:27 +02:00
Aronai Sieyes 6c6644f86c Rewrite examine() to pass a list around (#7038) 2020-04-29 13:42:16 -07:00
Heroman b3476340fe Ports tg cablecoils instead of bay's 2020-04-27 10:50:56 -04:00
Aronai Sieyes 51846b4bfe Port some power sprites from Bay 2020-04-27 10:50:56 -04:00
Atlantiscze 2a9547f3d9 Implements additional feedback 2020-04-23 08:02:51 +02:00
Atlantiscze 252719c5f0 Implements feedback 2020-04-21 10:03:07 +02:00
Atlantiscze fbf33fc5df Final tweaks
- Refactors some code to more modern standards, fixes problem with PSUs not reacting to UI input.
- Adds cable coil recoloring using multitool (Bay went the path of having dedicated cable painter device but that really feels as too much of a hassle having to carry another device for this - lets just say the paint is electrically reactive in some way).
- Adds changelog
2020-04-20 08:16:19 +02:00
Atlantiscze 78925e2993 Ports over power-related enhancements and tweaks i coded for Bay a while back
- Please fasten your seatbelts, this will be a long one as it joins few older Bay PRs into one.

1. Ports https://github.com/Baystation12/Baystation12/pull/12626
- SMES units may now be damaged and destroyed. Charged SMES units fail quite violently. Damage can be fixed by welding tool.
- PSUs completely refactored, ghetto variant no longer exists.
- Cell rack PSUs now can be considered a hybrid between large battery charger and a SMES. They actually use the cells to store power (so you can hot-swap the cells to get more juice simply via the UI without deconstructing the whole machine), but in comparison to SMES have poor throughput and capacity in general (cells are simply too small). They are also somewhat limited in configuration options (lacks the precision electronics of a SMES). Better matter bin lets you put in more cells, up to 9.
- Cell rack PSU also has a mode that allows charge-balancing all inserted batteries (moves energy around so each battery has the same charge %)

2. Ports https://github.com/Baystation12/Baystation12/pull/11977
- SMES units now have full load balancing capability, getting rid of that annoying "One SMES charges at full, other SMES gets nothing" problem. If insufficient power is available on input, all inputting SMESes will now charge at same percentage. If more SMESes power a single output, they will all output equal percentage of their setting.
- This appears to have a pleasant side effect of fixing the issue where SMESes could starve APCs of energy. SMESes are ALWAYS last to input power on a powernet.
- This also appears to have fixed weird values displayed in SMES output/input load readings in the UI. By weird values i mostly mean inputs/outputs actually higher than the SMES is set to have.

3. Ports https://github.com/Baystation12/Baystation12/pull/18137
- SMES units (and subtypes, therefore effectively also PSUs from previous entry) can now have more than one terminal. This effectively allows a setup where two (or more) sources feed a single SMES, which then feeds the output. SMESes can not exceed input setting even with multiple terminals.
- Typical example of use in practice would be SMES that runs something important (for example an AI, telecomms, pick whatever you want). It could have one input from the power grid, and second input from a PACMAN generator set up nearby as a backup. Before the generator would have to be wired into main grid, therefore main grid would siphon off power from it. Now the generator can be separate and dedicated for whatever use you want.
2020-04-17 08:26:29 +02:00
Cerebulon 52e6669bf9 Big Bastard Incidental Sound Port 2020-03-08 23:25:45 +00:00
Heroman bf8cf75785 Applies same restrictions as first aid to external synth repair 2020-02-04 09:17:09 +10:00
Neerti 1afbe8d4b0 Explorer Update - Cataloguers (#6016)
* Explorer catalog scanners.
2019-03-30 13:18:15 -07:00
Anewbe aade8c356f Items are now assumed to be conductive, rather than the opposite 2019-03-02 20:34:49 -06:00
atermonera a0c8891eb6 Refactors poi rotation to use degrees instead of dir
Fixes powernet rotation being totally non-functional
2018-12-09 22:56:45 -08:00
kevinz000 8da11c17a2 Makes math helpers defines for performance (#5654) 2018-12-06 13:13:59 -08:00
Anewbe 7f84aeab9f Merge branch 'master' of https://github.com/PolarisSS13/Polaris into is_tool 2018-08-02 22:35:14 -05:00
Anewbe 729ce71aa0 Converts most istype(thing,tool) procs into an appropriate thing.is_tool() format 2018-08-02 21:45:15 -05:00
Mechoid 1dbfe94711 Cable fingerprints. 2018-07-08 14:36:13 -07:00
Cameron653 2e987ab900 Alien Cable Coil Fix (#5365)
* Prevents the infinite cable coil alien tool from making more infinite cable coil tools.

* Prevents you from going over the 30 cap.

* Tochat
2018-06-21 00:26:02 -07:00
Leshana 7da46a6dcc Switch cables and pipes to use define constants instead of literals for layers.
Also fix a few things to be on the correct plane.  Basically the under-floor stuff is supposed to be on PLATING_PLANE.
Portable atmospherics go on object layer so they are above stationary machinery, given that they move around.
Fixed wires to be on top of pipes like they used to be, otherwise they'd be obscured too often.
2018-04-02 21:50:03 -04:00
Arokha Sieyes 3178b95b6c POLARIS: Moves most boxes to use starts_with 2018-02-18 13:29:21 -06:00
MarinaGryphon 72318d46b6 Replaces most of the gender macros. (#4681)
* Fixes #4632.

* 1:27 am coding best coding

* fixes a warning

* Removes the last of the gender macros. Gender is dead.

* gender II: the travis-ing

* linebreaks are dead too.

* oops i accidentally the gender, also ambiguous gender is now taken into account for get_visible_gender
2018-02-03 14:40:09 -06:00
Anewbe 09d2070ad1 Makes alien wire more useful 2018-01-22 15:53:44 -06:00
Anewbe 69e9906d75 Adds an endless cable coil to the alien toolbelt 2017-09-20 00:26:41 -05:00
Leshana e48b548f2b More and more Destroy() cleanups all across the board - Return qdel hints. 2017-06-05 23:01:41 -04:00
Neerti a0a390e887 Surgery Modifications
Semi-rewrites how surgery failure works.  Using an improper surface will call the surgery step's fail proc instead of just doing a melee attack.
Adds 'surgery odds' var to objs, which determines effectiveness.  The numbers for operating tables/roller beds/tables remain unchanged from the previous version, however doing it this way makes it cleaner to add new surfaces in the future.
Adds a proc to get a surgery surface.
Also makes burn repair on FBPs more efficent, so that one scorched robot does not take literally all of robotic's wires.
2017-05-31 17:41:02 -04:00
Leshana 30d2f16b04 Replace color macros and stream operator with style and to_chat 2017-04-21 11:22:08 -04:00
comma f614de8387 Updates cable construction
FOrgot to update it to new direction whoops.
Also makes powernet connectino proc for cables multiz aware.
Port of: https://github.com/Baystation12/Baystation12/pull/15940
2017-04-21 11:22:07 -04:00
comma 5f2d23fbd7 Makes cable use BYOND directions
Instead of 11,12 they use 32,16 for DOWN,UP
Merges multiz handling into main logic
Port of: https://github.com/Baystation12/Baystation12/pull/15907
2017-04-21 11:22:07 -04:00
Neerti 0f781e36a7 Adds Multi-Z Test Map 2017-03-03 09:40:34 -05:00
Neerti 828dacf485 Centralizes weight class definitions
A lot of new defines are now in inventory_sizes.dm, which contains;
All the size identifiers (the thing that tells the game if something is bulky, or w/e).
Storage costs for all the sizes, which are exponents of two, as previously.
A few constants for inventory size.

Also changes all storage item's capacity definitions by basing it off of how many 'normal slots' exist for it.  This allows one to change the definition for all of the defines in the file, and everything will follow along without needing to change 500 files.  In testing, I made all ITEMSIZE_COST_* defines doubled, and nothing had broke.

The benefit of doing all of this is that it makes adding new weight classes in the future much simpler, and makes knowing how much space a container has easier, as seeing ITEMSIZE_COST_NORMAL * 7 means it can hold seven normal items.
2016-09-22 00:51:51 -04:00
Yoshax f48a49712f Ghosts seeing power in a wire upon examination 2016-07-25 14:23:53 +01:00
Arokha Sieyes 2000f95886 "1" Spam
Why would you do this to meeee.
2016-06-10 09:50:54 -04:00