Commit Graph

234 Commits

Author SHA1 Message Date
LordFowl
64e386785c Abling Disability (#4485)
This PR implements a system for manipulating a client's color safely and also ports a prioritization system for sorting client color from /tg/. Currently this PR also implements client coloration in the form of color blindness, namely:
Monochromacy
Deuteranopia
Tritanopia
Protanopia

DTP are mild brain traumas, whereas monocrhomacy is a severe brain trauma.
Furthermore, this PR removes the Needs Glasses prompt in character creation, and replaces it with a disability selector, allowing people to more closely refine their special little snowflakes.
Current disabilities available:
Nervousness
Nearsightedness
Deuteranopia
Tritanopia
Protanopia
Deafness
Muteness
2018-04-05 21:57:50 +03:00
kevinz000
c000070a5b Pixel Projectiles (#4105)
Projectile hitscan effects moved to /effects/projectiles folder.
Most of projectile firing code and some of impact code refactored, and projectile hitscan effects refactored with ported TGcode (which is mostly TGcode I wrote anyways 😎)
Projectiles can now be fired at any angle, instead of just at the center of turfs!
Projectiles are now [in theory] 100% accurate down to 0.001 of a pixel.
2018-03-10 17:13:24 +02:00
Lohikar
2c1229a9b2 list2text() -> jointext() (#4342)
The DM jointext() function is more or less equivalent to list2text(), but is faster. Might as well.

Seems to make VV faster.
2018-03-03 00:36:44 +02:00
Mustafa Kalash
511e9c4e22 Replaces dibs with Bay's ticket system. (#3984)
A user ahelping creates a ticket. Any further ahelps while that ticket is open will go to that ticket (and either adminhelp or pm an admin assigned to the ticket, if one has taken it).
A user can close their own ticket up until an admin takes it.
Admins can take tickets either manually or just by replying to the PM.
An admin taking a ticket notifies other admins.
If another admin attempts to take or respond to an assigned ticket, they receive a notification asking if they would like to join the ticket or cancel (any number of admins can join a ticket).
When an admin finishes with a ticket, they must close it -- both for logistics and closure for the user.
If there is an open ticket assigned to an active admin, round end is automatically delayed (unassigned tickets or tickets assigned to disconnected or afk admins do not delay). Round end will automatically continue once all active tickets are closed.
Both staff and non-staff have access to a ticket panel listing tickets, their statuses, and their messages. Non-staff can only see their own tickets. This panel is optional and all features are available inline with chat.
2018-03-02 21:54:39 +02:00
Lohikar
2d8e36544f Reagent Cleanup/Tweaks (#4301)
changes:

The reagent and recipe lists have been moved fully into SSchemistry instead of a weird ref-shared global.
The reagent list is now sorted alphabetically, which should make dialogs that involve selecting reagents much nicer to use (such as Spawn-Chemical-Cartridge).
Butanol and Ethanol now share a parent: /datum/reagent/alcohol. Alcohol is an abstract type that won't be listed in any global reagent lists, and exists purely to pool code common to both butanol and ethanol.
Butanol-based drinks can now cause hallucinations, body temperature changes, and stimulation similar to ethanol-based drinks.
Reagent init is now in SSchemistry, both code-wise and init-stage wise.
2018-02-25 20:32:53 +02:00
LordFowl
ad00601b81 Ports /tg/ Brain Trauma (#3979) 2018-01-27 12:13:19 -06:00
Lohikar
0abc1d2a65 Repath a bunch of things to /mob/abstract childtypes (#4111)
* Repaths eyes, observers, dview, and new_players to /mob/abstract subtypes.

* Adds /mob/abstract, a base type for 'abstract' mobs that aren't meant to be directly affected by the game world.
2018-01-24 11:27:14 +01:00
Lohikar
2fddb0a25c Bag styles (#4099)
changes:

You can now select in preferences if you want to take a generic (grey) bag instead of your job-specific variant.
Cleaned up some leftover bagcode from before the bag type vars.
2018-01-21 01:05:33 +02:00
Lohikar
90886a3076 Branded IPCs (#3388)
This PR adds 2 subtypes of industrial and two subtypes of baseline, one for each cybernetics manufacturer. Sprites by BRAINOS.

other changes:

IPCs can now be flashed or flashbanged.
Admin spawn paths have been added for subspecies that did not have them.
IPCs are no longer slowed by being cold.
2018-01-21 00:34:06 +02:00
Erki
79564fb7d5 Fix code phrases/responses and add to more people (#4058) 2018-01-07 19:46:22 -06:00
Lohikar
1816de4da8 More granular Atlas logs & Holomap Init Tweaks (#4056)
changes:

Atlas now logs init time per DMM.
Map Finalization now separately logs finalize & asteroid generation time.
Added Z_ALL_TURFS() macro to get a list of all turfs in a Z-level.
Misc. performance optimizations for SSminimap init.
2018-01-07 00:36:11 +02:00
Lohikar
06514840f7 Z-Mimic (#3907)
* Openturf icon fixes and improvements

* more things

* Remove some pointless/bad layering/planing

* yeah well I didn't need this anyways

* Refactor Z mimickry to be at /turf

* more refactoring

* Cleanup, use turf/flags instead of z_mimic_flags

* Fix turf/Entered()

* misc optimizations

* fixes

* Major icon smoothing optimizations

* Speed up boot some more

* Fix AO

* Remove some redundant code

* Tie Z-lights to Z-mimic instead of openturfs

* Fix an opacity issue with no_mutate turfs

* Fix some issues with Z-mimic AO not properly clearing

* Fix some OT->OT changetuf bugs

* Add helpers for changing Z-mimic operational state on turfs

* Fix some merge issues, change how F_CUT smoothhint works a bit.

* indentation

* SSopenturf -> SSzcopy
2017-12-30 04:42:18 +02:00
Lohikar
6feaf1a218 Mob AI SS & Misc. Mob Cleanup (#3990) 2017-12-24 14:24:55 -06:00
Lohikar
bb5a34eaf8 Misc. Optimizations (#3993)
changes:

Overlays now creates less temporary lists.
Falling no longer queues unsimulated atoms that wouldn't fall anyways (incl. LOs).
Pixel-shifted AO is now cached too.
Changed some references to get_map_cell() to macro equivalents in random maps.
Added smoothing hinting to the icon smoother, allowing for major performance improvements in common cases.
Space initialization no longer involves appearance churn (and is much faster as a result).
2017-12-23 21:27:51 +02:00
Lohikar
f73849368f Make get_smooth_underlay_icon work properly with space parallax (#3906)
Fixes an issue where space underlays on diagonally smoothed turfs would not work properly with space parallax.
2017-12-18 00:20:35 +02:00
chaoko99
c0ee47579d Adds a preference to have an intent check for guns (#3653)
what title says
2017-12-17 11:37:16 +02:00
Alberyk
ebc9b81ee1 Adds more loadout options, underwear options and increases the loadout limit points (#3943)
-adds towels, which you can find at the fitness room, or at the loadout with whatever color you want
-adds new undershirt options at people's requests
-adds a colorable sweater to the loadout, from baystation
-adds more flower hairpin options
-increases the max loadout points by five
-fix an issue with the tactical armor having the holster overlay when it should not
2017-12-17 11:18:50 +02:00
Lohikar
cd910c072c Asteroid tweaks (#3951)
changes:

Z-levels below the surface now use 'rocky' ash instead of ash turfs. (Sprites from TG)
Fixed an issue where openturfs would incorrectly inherit their mimiced turf's gender.
Tweaked the names & descriptions of sand (now ash) and rock.
Reduced some pointless locate() calls in icon smoothing code for turf paths.
Replaced the empty space map with runtime Z expansion.
Fixes #2756.
2017-12-10 00:20:35 +02:00
Lohikar
81685214df Cache light fixture overlays (#3948)
changes:

Light fixture overlays are now cached.
BlendRGB is now cached (used by light fixture overlays)
Nightmode now only tints the bulb instead of both the bulb and the fixture itself.
2017-12-10 00:17:09 +02:00
Lohikar
58519daeba Recharger QoL Tweaks (#3826)
changes:

Rechargers now briefly show a progress bar showing the current charge level of the device currently charging.
Examining a recharger will now specify what is in the charger.
Atoms can now mark themselves as requiring an icon update on initialize instead of overriding Initialize() just to call update_icon().
Charger code is now slightly more modular, using proc/get_cell() to get a ref to the power cell instead of hard-coded if-else chains for each supported type.
2017-11-18 18:46:14 +02:00
Lohikar
0d50eed14e Better openspace (#3744)
changes:

Openturfs now properly handle recursive icon copy.
Openturfs can now have icons, for translucent or bordered turfs. This works with the smoothing engine (or anything really)
Added openturf debug verb that lists ordering of the openturf.
Openturfs can now mark themselves as solid, for things like windows or ice.
BSTs can now toggle falling for themselves.
Fixes #3488.
2017-10-29 13:31:04 +02:00
Lohikar
61b5203d24 Runtime Map Loading (#3597)
changes:

Maps are no longer compiled in, instead loaded directly from the DMMs at runtime.
Z level defines have been moved from the config to map datums.
Unit tests now use typecaches.
DMMS now actually works.
DMMS has been updated slightly.
DMMS is now capable of loading simple lists of non-text types.
DMMS is now faster when loading many types without mapped in attributes and when loading area instances.
Asteroid generation is now defined on the map datum instead of being hard-coded in SSasteroid.
Holodeck presets are now defined on the map datum.
Atmos machinery now uses Initialize().
2017-10-18 23:07:34 +03:00
Zuhayr
30d92571cf Nymph head flowers. (#3634)
Adds a head flower to 5% of diona nymphs.
Also changes get_random_colour() to return a proper RGB string instead of expecting the caller to add the #.
2017-10-16 11:47:45 -05:00
Lohikar
4773a8a626 MC Performance Tweaks (#3621)
Ports some StonedMC performance tweaks from /tg/, should reduce the amount of fighting between BYOND sleeps and the MC.
2017-10-14 19:31:14 +03:00
Karolis
031b958039 Fixes to getFlatIcon and more. (#3353)
(Rebased and reopened #3347)

Attempted to fix pipe and door rendering
Fixed Table, carpet rendering
Ported full map-capture tool from bay, with python script to merge captured images.
2017-09-19 15:43:01 +03:00
Lohikar
e28c29a551 Port Integrated Electronics from Polaris (#3371)
Ports Polaris' integrated electronics system, whichallows for Roboticists & Electricians/Engineers to build custom devices and machines for a variety of purposes.
2017-09-12 21:41:39 -05:00
Lohikar
dc85579850 Closet & use_check() tweaks (#3346)
changes:

use_check() will now show failure messages to the affected mob by default. It still returns the failure reason & permits disabling of messages via. the show_messages parameter.
Lockers now take 2 seconds to weld or disassemble.
A progress bar is now shown to mobs with the progress bars pref enabled while attempting to break out of welded lockers.
2017-08-29 23:25:19 +03:00
Lohikar
c80d893e71 Misc Synthetic Code Cleanup & Minor Tweaks (#3307)
Mostly synthetic code cleanup, some tweaks to human examine and ID cards too.

changes:

Synthetic sprint procs have been compressed down to one proc for all machine subspecies vs. one per subspecies.
Synthetic sprint now only stuns synthetics with empty cells for 30 seconds for all types.
Refactored synthetic limb roboticization.
Changed how a lot of synthetic/industrial checks work.
ID portraits are now 128x128, and scaled without blurring.
Species can now specify an examine text color (for their species name) that differs from their flesh color.
Fixed some eye checks not respecting species.vision_organ.
Examine pulse-checking now uses do_mob & has a progress bar.
2017-08-29 23:21:29 +03:00
Lohikar
f3ad54e8aa Assorted tweaks & fixes (#3305)
changes:

Fixed #3203.
Tajara or Unathi CEs now get gloves that actually fit them.
OOs now respect direction changes from their mimicked object.
Replaced all references to trange() with RANGE_TURFS().
Replaced all references to is_type_in_oview() with locate() in oview().
Fixed a runtime caused by recursive explosions falling off the edges of the map.
Carp despawn now works properly with the new asteroid turfs.
Carp despawn now uses WEAKREF instead of SOFTREF.
Added tick-checks to the carp migration event.
Vaurca now have the IS_VAURCA reagent_tag.
Cleaned up butanol alien handling a bit.
2017-08-20 14:10:15 +03:00
Alberyk
011b5506c4 Adds messenger bags (#3289)
Ports the messenger bags from baystation 12, also adds the syndicate and wizard version. And fixes some issues with some jobs missing the bag vars and miners not getting their industrial bags.
2017-08-20 14:02:55 +03:00
skull132
1ed2f3c556 Merge branch 'master' into development 2017-08-11 22:56:23 +03:00
Lohikar
4544637b48 Make wall object check saner & compile-time-checked (#3252)
Makes /proc/gotwallitem use typecaches & a compile-time checked list of types instead of a list of strings. Probably faster, not that it really matters here.
2017-08-09 19:56:45 +03:00
skull132
81bb348a42 Merge branch 'master' into development 2017-08-06 22:09:41 +03:00
Ron
cb5e227320 Converts some istype's to use helpers (#3224)
Converts various istype's to use helpers. Mainly:
Cable
Wrench
Screwdriver
Multitool
Crowbar
Wirecutter

And makes the helpers defines.
2017-08-06 22:08:42 +03:00
Ron
ad96a34dd8 Removes some in worlds (#3227)
Removes some in worlds and some commented out code that I don't think will ever be used.
2017-08-06 19:50:53 +03:00
Lohikar
20150cd113 Devour fixes (#3231)
Bunch of fixes and balance tweaks to the devour system. Notable changes are that xenomorphs can eat people again and that human-types no longer take ridiculous amounts of damage from devour.

changes:

Devour type checks now actually operate on species for human-types and are all-around hopefully more sane.
Replaced an obsolete define with a boolean.
Fixed xenomorphs being unable to swallow human-types.
Rebalanced digestion damage to not kill human-types in one tick.
Digestion now deals fire+brute instead of cloneloss (bite still deals cloneloss as I didn't touch its damage function)
Misc code tweaks.
2017-08-05 21:03:49 +03:00
Alberyk
b4fa4a8b3a Baystation12 merchant port (#3155)
Port of the merchant mechanics from baystation12.
All of the trader, prices and most essential system are done, as well the job datum and the like. Mapping the shuttle, the base and a new dock will be done in a later pr.
Also adds phazon construction and several other items used in this pr.
The chance of the merchant slow being open at round start can be changed via the config, it is 20% by default.
2017-08-04 21:36:04 +03:00
Lohikar
1545ba469e Orbit Fixes (#3207)
changes:

Fixed an issue where the segment count argument of orbit() was ignored, leading to the Tesla not animating as it was intended to.
Fixed an issue where /datum/event had two completely unrelated definitions (fixes #3192).
2017-08-02 19:55:53 +03:00
Lohikar
36164a15d4 Better action progress bars (#3175)
changes:

Progress bars will now stack if there is multiple ones on a single turf.
Progress bars' update speed is now mediated by stoplag() instead of arbitrary numticks numbers.
A callback can now be passed to do_after or do_mob which will be called every check - if the callback returns FALSE, the action is cancelled.
Progress bars no longer show an X briefly when their associated action is cancelled.
Progress bar itself is from /tg/, do_after changes are not.
2017-07-31 20:23:47 +03:00
Lohikar
cfb7357c6f Area cleanup, Minor BST tweaks, Nuke Fixes, Explosion fixes (#3164)
changes:

Ported some timer fixes from /tg/ (timerid overflow fix, invalid deltimer logging)
Removed pointless air alarm elections.
Cleaned up some area code and moved area var definitions into areas.dm.
The nuke now only destroys Zs connected to the Z it detonates on. (Fixes #2552)
The nuke no longer destroys CC.
Nukes now dust mobs.
Cascades now dust all mobs on all non-admin levels.
Fixed a bug where SSexplosives would not honor the is_rec var.
Improved the efficiency of /proc/random_station_area().
Bluespace Bugs can now teleport out again.
Bluespace Technicians can now turn off their x-ray vision without needing to remove their glasses.
Human-types no longer make footstep sounds when lying down, unconscious, or dead.
2017-07-27 18:10:38 +03:00
skull132
d765f2e808 Fixes #3063, #3064 (#3069)
Fixes #3063
Fixes #3064

Makes the asteroid area equivalent to the space area: cannot be powered with an APC, an APC cannot be placed there, and blueprints will allow you to create new areas there. Also tick checks a blueprint proc which caused the lag in the first place, just for future reference.
2017-07-16 20:46:01 +03:00
Lohikar
41e39f52d1 Wall Icon Refactor (#3023)
changes:

Atom types can now define custom adjacency code for the smoothing system.
Walls now draw using the generic icon smoothing system.
Walls now pre-bake colors into their icons instead of doing it client-side with the color var.
Walls can now use the SSoverlay appearance cache; wall icon updates should be faster.
The "rusty" wall type now actually works.
Smoothing now uses mutable_appearance instead of image in some places.
Should be a bit easier on clients, though I haven't done profiling.

This PR breaks 510 compatibility.
2017-07-15 16:22:21 +03:00
Lohikar
670834cf2b Port a mergeSort fix from /tg/ (#3012)
Port of tgstation/tgstation#27527.
2017-07-11 23:55:09 +03:00
Lohikar
5fcb59e23f Sort the hair lists (#3013)
Makes the various hair style lists sorted alphabetically for usability's sake.
2017-07-11 23:54:52 +03:00
Lohikar
606a9c7541 Icon caching & human icon tweaks (#3000)
changes:

Body marking icons are now cached in SSicon_cache.
Renamed the body-hair cache (used only by Resomi) to make it more clear what it is.
Humans now use SSoverlay for applying overlays, though they force-compile instead of waiting for it to tick.
Fixed a bug where getFlatIcon() did not work properly with SSoverlay overlays.
2017-07-10 20:09:52 +03:00
Lohikar
33c61f9f1e Remove some world loops (#2965)
changes:

Replaces a lot of in-world loops with more specific lists.
Recipes are now copied in SSmachinery/Recover()
Fixed bad sorting on all_areas list.
Added skeleton Destroy() to SMESes as they did not have one and are failing to GC.
Seems to shorten SSatoms init a bit, maybe from removal of in-world in MULEs?
2017-07-09 00:24:28 +03:00
Lohikar
8af0051fd6 More macros (#2955)
changes:

Holomaps now use an area flag instead of a proc to determine which areas do not draw on the holomap.
The supply shuttle once more has a roof.
The supply shuttle's landing zone is now dynamically lit.
Turfs only generate visibility updates on Initialize() after mapload - visualnet is not initialized by then anyways.
Merged /datum/gas_mixture/(init) into /datum/gas_mixture/New().
Converted a ZAS proc into a macro.
Made ZAS attempt to remove a turf from a zone instead of always rebuilding it in a certain case.
Macroized two misc procs.
Fixes #2947.
2017-07-06 23:37:58 +03:00
skull132
e92f1fdd2e Fix some RTs - 03JUL2017 (#2938)
Fix the most common RTs from Sunday's testing.

Also works on orebags. Limits their capacity to 200, as anything higher than that breaks the fancy inventory system something awful. Maybe I should write a UT to test and confirm this. Expanding: I don't think TICK_CHECK in inventory procs is a good idea, without fully implementing a non-fancy storage subclass. Non-fancy would just be speedy without all of the fancy inventory orientation bullshit. But CBA to do that now and I'm not sure if it's worth it for the edgecase of drone satchels atm.
2017-07-05 23:26:35 +03:00
Lohikar
d0fcc77f31 List stuff (#2932)
changes:

Converted some list procs to macros (why the fuck was islist() a proc?!)
Removed some old sorting procs and replaced their few remaining calls with sortTim() calls.
2017-07-03 12:03:14 +03:00
Lohikar
f885bffdae More tweaks (#2889)
changes:

Clipboard overlays are now a little gentler on SSoverlays.
Ported potential performance improvements for getFlatIcon and listclearnulls from /tg/.
Icon smoothing now clears the base icon by default; SMOOTH_NO_CLEAR_ICON disables this behavior.
Potential SSoverlays performance improvement from /tg/.
Speculative fix for #2826.
2017-07-01 23:09:10 +03:00