Commit Graph

1594 Commits

Author SHA1 Message Date
SkyratBot
edf22edc9b [MIRROR] [READY] decorations loot crate! +3 new fancy carpets! (#1522)
* [READY] decorations loot crate!  +3 new fancy carpets! (#54612)

* base

* fixes

* crate

* Update code/game/turfs/open/floor/fancy_floor.dm

Co-authored-by: Fikou <piotrbryla@ onet.pl>

* adds the crate to the pool.

* the crate is pretty rare, why not let it drop four items?

* Update lootdrop.dm

Newline phone edit

* ungoofed

Co-authored-by: Fikou <piotrbryla@ onet.pl>

* [READY] decorations loot crate!  +3 new fancy carpets!

Co-authored-by: Krysonism <49783092+Krysonism@users.noreply.github.com>
Co-authored-by: Fikou <piotrbryla@ onet.pl>
2020-10-31 06:06:12 +00:00
SkyratBot
119dd2ea3d [MIRROR] Basepixels (#1512)
* Basepixels (#54652)

* Basepixels

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-10-30 17:30:11 +00:00
SkyratBot
3b623b8b67 [MIRROR] [READY]Directional lighting component + light system (#1474)
* Directional lighting component + light system (#54520)

Adds in a new type for the lighting system, the directional one. It piggybacks on the overlay lighting to create a directional effect + adds a nice visual cone mask to make the effect feel really directional.
Also: made the static light system respect the light_on variable.

It feels really nice to shine AT things you're looking at with flashlights and the such, it makes maintenance scouring much more immersive too.
Adds more paranoia as you dont see light behind yourself when you've got a flashlight. Plus makes ambushes more fun

* [READY]Directional lighting component + light system

Co-authored-by: Azarak <azarak10@gmail.com>
2020-10-26 09:13:47 +01: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
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
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
cab50f9c52 [MIRROR] Adds Shuttle 667 as a buyable shuttle for dispelling a cult rune (#1150)
* Adds Shuttle 667 as a buyable shuttle for dispelling a cult rune (#53975)

* Adds Shuttle 667 as a buyable shuttle for dispelling a cult rune

* Add stasis beds

* Fix forcefields going away, leading to hull breaches

* Use set instead of list

* Use subtype for forcefield walls

* Adds Shuttle 667 as a buyable shuttle for dispelling a cult rune

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2020-10-04 15:24:15 +02:00
SkyratBot
5efc96ab80 [MIRROR] Makes some things that rely on atmos adjacency more sane/faster. (#1108)
* Makes some things that rely on atmos adjacency more sane/faster. (#54096)

* Replaces some CANATMOSPASS calls with a new define that checks if the turfs are in each others atmos adjacent list, as that's the same info that they want.

* Makes some things that rely on atmos adjacency more sane/faster.

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2020-10-01 21:32:19 +01:00
SkyratBot
ada67ac929 [MIRROR] Ports soup, snacks, icecream, salads and meat to newfood (#1074)
* Ports soup, snacks, icecream, salads and meat to newfood (#54028)

Ports soup, snacks, icecream, salads and meat to newfood

* Ports soup, snacks, icecream, salads and meat to newfood

* Update true_changeling.dm

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-09-30 14:37:15 +02:00
SkyratBot
b96909fb02 [MIRROR] [READY] Refactor icon smoothing to use 8-bit bitmasking (#1053)
* Merge pull request #53906 from Rohesie/smoothing

[READY] Refactor icon smoothing to use 8-bit bitmasking

* [READY] Refactor icon smoothing to use 8-bit bitmasking

Co-authored-by: nemvar <47324920+nemvar@users.noreply.github.com>
2020-09-29 22:55:58 +01:00
SkyratBot
1766d87b57 [MIRROR] Reimagines Venus Human Traps (#1036)
* Reimagines Venus Human Traps (#53880)

Venus human traps now have a new sprite, new sprite for their bud, new sprite for their vines, their bud has icons according to how grown it is, they get sounds for hitting, getting hit, and dying.

oh yeah and I renamed the path flower_bud_enemy >flower_bud

* Reimagines Venus Human Traps

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
2020-09-29 12:25:13 +02:00
SkyratBot
dfb34d55ba [MIRROR] Fixes mapstart and random arcade machines (#1011)
* Fixes mapstart and random arcade machines (#53958)

Randomly generated arcade machines were getting random boards and initing properly, but they weren't re-built as the appropriate subtype.

This oversight has been remedied. A new subtype has been created for random arcade machines which exists purely to pick a random circuit then create a machine from that circuit's build path before returning that it should be qdel'd.

This new subtype has been appropriately regex find-and-replaced into all maps.
* Objectify

* Fixes mapstart and random arcade machines

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2020-09-27 19:18:44 +02:00
SkyratBot
13b96bfe01 [MIRROR] Rebalances space loot and space exploration (#981)
* Rebalances space loot and space exploration (#53916)

* Rebalances space loot and space exploration

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2020-09-25 14:34:13 +02:00
SkyratBot
376e8978d3 [MIRROR] Disable some effect systems during init (#978)
* Disable some effect systems during init (#53929)

Instantly spread gib streaks rather than doing so over a delay
Completely skip broken light fixture sparking during init

* Disable some effect systems during init

Co-authored-by: Tad Hardesty <tad@platymuus.com>
2020-09-25 14:27:39 +02:00
SkyratBot
29b79b3350 [MIRROR] Refactors decals to an element (#973)
* Refactors decals to an element (#53922)

* Refactors decals to an element

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
2020-09-25 13:38:52 +02:00
SkyratBot
9d75b2b6ee [MIRROR] improve performance of vis_overlays by handling dir by using vis_flags (#955)
* improve performance of vis_overlays by handling dir by using vis_flags (#53816)

vis dir changes are now handled by vis_flags

* improve performance of vis_overlays by handling dir by using vis_flags

Co-authored-by: Couls <coul422@gmail.com>
2020-09-24 20:25:55 +02:00
SkyratBot
b5b151adcd [MIRROR] Fixes projectile impacts + messages, embedding, adds deployable landmines (#930)
* Fixes projectile impacts + messages, embedding, adds deployable landmines (#53436)

* icon and alert anim

* hmm

* projectile and embed fixes

* cap mine

* clean up, fix some issues with projectile embeds

* light

* doc

* icon

* awkward

* icon again

* Fixes projectile impacts + messages, embedding, adds deployable landmines

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2020-09-23 14:45:02 +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
SkyratBot
453c775b48 [MIRROR] Flower Buds now have a countdown for ghosts for when they're going to hatch (#923)
* Flower Buds now have a countdown for ghosts for when they're going to hatch (#53648)

They're two minute timers with no indication, which makes kudzu kinda annoying to spectate.

* Flower Buds now have a countdown for ghosts for when they're going to hatch

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
2020-09-23 02:14:52 +01:00
SkyratBot
9dff61ade6 [MIRROR] Optimizes Conveyors (#886)
* Optimizes Conveyors (#53220)

Less proc overhead
Made the actual moving speedier
removed a unused var

* Optimizes Conveyors

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
2020-09-20 00:37:27 +01:00
SkyratBot
c2ab6357f4 [MIRROR] Adds sidings floor decorations (#879)
* Adds sidings floor decorations (#53797)

This was a frequent request from mappers ever since trimlines were added, they work similarly to trimlines but they have different use cases and don't necessarily work together, so I am calling them sidings to avoid confusion.
Whereas trimlines are floor paint for plating, these are solid borders to be used either alongside walls, smoothing transitions between floor types or mark/split an area without having to use walls, and work with any floor type.

These are ALL greyscaled, so they're trivial to bikeshed customize and make new types for your mapping needs
- Colored (plastic/vinyl strips, standard departmental colors)
- Plating(metal, grey/white/dark)
- Wood(it's wood)

I've added them to meta's bar as a small example

* Adds sidings floor decorations

Co-authored-by: Mickyan <38563876+Mickyan@users.noreply.github.com>
2020-09-20 00:35:50 +01:00
SkyratBot
7f84409fd4 [MIRROR] Adds the CRAZY HAMBURGER (#877)
* Merge pull request #53812 from SgtHunk/ITS-HAURRIBLE

Adds the CRAZY HAMBURGER

* Adds the CRAZY HAMBURGER

Co-authored-by: Jordan Brown <Cyberboss@users.noreply.github.com>
2020-09-20 00:35:23 +01:00
SkyratBot
1dc24fdd86 [MIRROR] Slightly optimize shroom spreading code (#867)
* Slightly optimize shroom spreading code (#53652)

There were some recent lag events on the servers caused by the timer
subsystem jamming up with glowshroom timers. I whined about this but
nobody did anything so

(Thanos "Fine... I'll do it myself" GIF)

There are a few changes here, first we collect the potential turfs for
the view call in a single pass, not once per yield run.

Second we don't run a second view(1) on every single potential turf,
instead we try to randomly pick a turf 3 times during yield phase and
check the view then.

If we fail to find a potential location then we bail out of that yield
phase. This is a tradeoff between processing time spent finding
locations and the chance that the glowshroom fails to spread.

Finally, we have maximum limit on how many times a glowshroom fails to
spread, if it fails to spread at least 5 times over any iteration, it
stops processing for spread completely.

As a bonus, the timers have been made unique, so we don't accidentally
generate multiple timers for a single shroom, other than the two it
already needs.

This code would benefit from being a separate subsystem and grouping,
generations of the plants together as a single ticking entity and just
spreading from selected edge plants. However I don't particularly feel
like plumbing that together, so this will suit for now.

* Slightly optimize shroom spreading code

Co-authored-by: oranges <email@oranges.net.nz>
2020-09-18 10:53:44 +02:00
SkyratBot
afe5902aa8 [MIRROR] Countdowns now use the maptext class (#787)
* Countdowns now use the maptext class (#53649)

* Countdowns now use the maptext class

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
2020-09-13 13:18:30 +02:00
SkyratBot
2812a145d4 [MIRROR] The BEAUTIFUL Supplypod Renaissance Part 5: An Ode To Admins Everywhere (total UI overhaul) (#741)
* The BEAUTIFUL Supplypod Renaissance Part 5: An Ode To Admins Everywhere (total UI overhaul)

* Update tgui.bundle.js

* Update tgui.bundle.js

Co-authored-by: Emmanuel S <mrdoomboyo@gmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-09-12 00:50:51 +02:00
SkyratBot
1e705faa19 [MIRROR] Process procs now properly utilize deltatime when implementing rates, timers and probabilities (#709)
* Process procs now properly utilize deltatime when implementing rates, timers and probabilities (#52981)

* Process procs now properly use deltatime when implementing rates, timers and probabilities

* Review fixes

* Geiger counters cleanup

Made hardsuit geiger code more similar to geiger counter code
Geiger counters are more responsive now

* Moved SS*_DT defines to subsystems.dm

* Rebase fix

* Redefined the SS*_DT defines to use the subsystem wait vars

* Implemented suggested changes by @AnturK

* Commented /datum/proc/process about the deltatime stuff

* Send delta_time as a process parameter instead of the defines

Also DTfied acid_processing

* Dtfied new acid component

* Process procs now properly utilize deltatime when implementing rates, timers and probabilities

Co-authored-by: Donkie <daniel.cf.hultgren@gmail.com>
2020-09-09 08:19:23 +02:00
SkyratBot
3a0bbe9498 Acid Component (#53273) (#661)
Makes acid levels a component.
    Merges the acid effect object into the component.
    Reworks acids decay rates slightly.
    Rebalances xenos acid spit so that they can still melt through walls.

Misc. associated changes:

    Adds defines for a lot of the acid associated constants.
    Documents clean types and adds CLEAN_TYPE_ACID
    Adds and implements a return bitflag for COMSIG_COMPONENT_CLEAN_ACT
    Adds a looping sound for acid.
    Makes /atom/proc/acid_act return a boolean.
    Fixes waterclosets creating a new reagent holder datum every time they are used.
    Removes waterclosets regenerating reagents on-use and restricts their reaction volume to 5 units.
    Adds and implements a couple reagent signals.
    Renames a few vars so Rohesie can stop telling me to rename more vars.

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
2020-09-07 03:52:59 +02:00
Useroth
caa6b81048 Cleans up extinguish_mob and prevents perpetual fire (#53252) (#685)
Co-authored-by: NightRed <nightred@gmail.com>
2020-09-07 03:40:42 +02:00
SkyratBot
24502daba9 [MIRROR] Reenables SHOULD_NOT_SLEEP on initialize (#650)
* Reenables SHOULD_NOT_SLEEP on initialize (#53378)

* Reenables SHOULD_NOT_SLEEP on initialize

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
2020-09-06 05:15:19 +02:00
SkyratBot
540b6dcdc3 [MIRROR] Crystal Event: flavor texts, signaler, balancing and mob differentiation (#623)
* Crystal Event: flavor texts, signaler, balancing and mob differentiation

* Update crystal_event.dm

Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-09-02 03:50:57 +02:00
SkyratBot
be8d8bcc94 [MIRROR] Fixes Hyperkinetic Dampener Field runtime. (#620)
* Fixes Hyperkinetic Dampener Field runtime. (#53275)

* Fixes Hyperkinetic Dampener Field runtime.

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2020-09-02 03:15:43 +02:00
SkyratBot
93fb8577b6 [MIRROR] Turns old mining "signs" into turf decals instead. (#590)
* Mining sign fix. (#53251)

Turns old mining "signs" into turf decals instead

It looks nothing like a sign, so, this just made sense.
Moved the icon from the mining survival pod walls file, to the turf decal icons file.
Replaced every instance in the maps with the new type path.

* Turns old mining "signs" into turf decals instead.

Co-authored-by: uomo <51800976+uomo91@users.noreply.github.com>
2020-09-02 02:48:29 +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
656ee54f39 [MIRROR] Refactors burgers to use components & auto-eating (#569)
* Refactors burgers to use components & auto-eating (#53224)

* Refactors burgers to use components & auto-eating

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
2020-08-30 05:13:44 +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
e6f770410a [MIRROR] Bloody feet update (#538)
* Bloody feet update (#53109)

Componentized the bloody feet feature.

* Hardsuits and other feet-covering clothing can now get bloody feet as well and spread gunk around.
* Bare feet can now get bloody as well and spread gunk around.
* Shoes/feet won't get bloody if something is covering them.
* Improved blood spreading behaviour. Previously, magic numbers were used in the blood pick up and drop off process. Now, when you step in blood, you and the floor share the blood volume. When you step on a non-bloody tile, you give away half of your shoe blood to the tile, and so on. This means the total blood volume always stays constant when moving around. * Blood doesn't appear out of thin air, nor get flushed to bluespace.
* Lowered footprint minimum opacity. Because it looks better, imo.
* Improved footprint exit/enter dirs.
* Improved footprint examine.
* Removed code for cult magic where a spell can suck up blood on your shoes. I'm pretty sure this code didn't work anyway. Implementing that for this new system would require a new signal and I just don't think it's worth it.

How can this game make you spend 20 hours on fucking spaceman footprints

Hardsuits will become "fully bloody" by just stepping in blood. This is a limitation of the current forensics system, as that is what is used to determine if an item is bloody or not. I'm aware of this but I don't think it fits to fix that in this PR.

cl
add: Footprints and bloody shoes major update. Hardsuits and bare feet can now get bloody as well. Improved blood spreading behaviour.
fix: Shoes will no longer get bloody while wearing something that covers them.
/cl

* Bloody feet update

Co-authored-by: Donkie <daniel.cf.hultgren@gmail.com>
2020-08-27 03:12:11 +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
6f3c2aac34 [MIRROR] Fixes broken circuit board in delta's electronic marketing den (#493)
* Fixes broken circuit board in delta's electronic marketing den (#53149)

* Fixes broken circuit board in delta's electronic marketing den

* synced with modular map

Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
2020-08-24 23:52:05 +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
SkyratBot
ac8bf51024 [MIRROR] Moves base_icon_state to the base of atom (#464)
* to the base (#52917)

* Moves base_icon_state to the base of atom

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-08-21 22:36:33 +01:00
SkyratBot
d3f6e8d49f [MIRROR] Explosions SS runtime fix + code cleanup (#461)
* Explosions SS runtime fix + code cleanup (#52894)

* runtime fix

* turf references are immortal

* Explosions SS runtime fix + code cleanup

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-08-21 21:30:43 +01:00
SkyratBot
e65a48e91f [MIRROR] Adds SIGNAL_HANDLER and SIGNAL_HANDLER_DOES_SLEEP to prevent signal callbacks from blocking (#430)
* Adds SIGNAL_HANDLER and SIGNAL_HANDLER_DOES_SLEEP to prevent signal callbacks from blocking (#52761)

Adds SIGNAL_HANDLER, a macro that sets SHOULD_NOT_SLEEP(TRUE). This should ideally be required on all new signal callbacks.

Adds BLOCKING_SIGNAL_HANDLER, a macro that does nothing except symbolize "this is an older signal that didn't necessitate a code rewrite". It should not be allowed for new work.

This comes from discussion around #52735, which yields by calling input, and (though it sets the return type beforehand) will not properly return the flag to prevent attack from slapping.

To fix 60% of the yielding cases, WrapAdminProcCall no longer waits for another admin's proc call to finish. I'm not an admin, so I don't know how many behinds this has saved, but if this is problematic for admins I can just make it so that it lets you do it anyway. I'm not sure what the point of this babysitting was anyway.

Requested by @optimumtact.
Changelog

cl
admin: Calling a proc while another admin is calling one will no longer wait for the first to finish. You will simply just have to call it again.
/cl

* Adds SIGNAL_HANDLER and SIGNAL_HANDLER_DOES_SLEEP to prevent signal callbacks from blocking

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2020-08-19 20:17:28 -04:00
SkyratBot
035aebc2a2 [MIRROR] Diagonal macro thingu (#407)
* Diagonal macro thingu (#52927)

* Diagonal macro thingu

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
2020-08-19 04:53:44 +02:00
SkyratBot
72c69368b6 [MIRROR] Opacity refactor (#405)
* Opacity refactor (#52881)

    Moves all opacity var manipulation to a proc which sends a signal.
    light_blocker element for movable opaque atoms made, which tracks its movement and updates the affected turfs for proper lighting updates.
    has_opaque_atom boolean replaced by the opacity_sources lazylist to keep track of the sources, and a directional_opacity which serves a similar function but also allows for future expansion with on-border opaque objects (not yet implemented).
    Some opacity-related sight procs optimized as a result of this.
    Some variables moved to the object's definition.
    A define or two added into the mix for clarity.
    Some code cleaning, like turning booleans into their defines.
    One file renamed for clarity.

Changelog

cl
balance: Mechs no longer block sight. It's a non-trivial cost for the lighting system with little to no gain.
/cl

* Opacity refactor

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-08-19 04:48:14 +02:00
SkyratBot
2f7e5b762a [MIRROR] refactors resist act to be on atom level (#384)
* refactors resist act to be on atom level (#53016)

* refactors resist act to be on atom level

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
2020-08-19 02:09:09 +02:00
SkyratBot
289930f2a1 [MIRROR] Icon smooth refactor (#327)
* Icon smooth refactor (#52864)



    bitflag list construct added: an associative list of bitflags for cheap and quick element comparison between two lists using the same system.

    canSmoothWith list turned into a bitflag list.

    smoothing_groups list added to substitute the type path list.

    smoothing procs turned into atom procs, refactored and optimized a bit.

    smooth directions redefined in order to fit in 8 bits for a future smoothing system

    some variable names changed, foreseeing a second smoothing system

    SMOOTH_OBJ flag added, for things that need to scan turfs for smoothing. The old locate() optimization has the risk of returning false negatives by finding a child and returning null while there might be one of the wanted type as well, as it doesn't match the type exactly.

    SMOOTH_TRUE and SMOOTH_MORE condensed into SMOOTH_CORNERS. The old behavior can be replicated using smoothing groups without loss.

    Does very minor code cleanup.

    Processing-wise didn't find a noticeable difference. The system loses on init a bit by setting the bitflag_lists, and by scanning whole turf contents for object smoothing (increasing accuracy), and gains by making less checks per target to smooth, through the same bitflag_lists.

    Memory-wise there should be a small improvement, given that on the old system we had 63512 canSmoothWith lists (a few typelists, most unique), and on this new system canSmoothWith + smoothing_groups are both bitflag_lists from the same pool, totaling 46 in number.

Could be tested a bit to see if I missed any icons not properly smoothing.

* Icon smooth refactor

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-08-13 05:23:53 +02:00
SkyratBot
c3745f1679 [MIRROR] supermatter anomaly generation can no longer be used to get anomaly cores (#223)
* supermatter anomaly generation can no longer be used to get anomaly cores (#52732)

* fix

* webedit moment yes i'm testing this pr shhhh you didn't see that failed compile

* haha what if i tested my code?

* supermatter anomaly generation can no longer be used to get anomaly cores

Co-authored-by: silicons <2003111+silicons@users.noreply.github.com>
2020-08-07 01:39:04 +01:00
SkyratBot
5fd8cb072e [MIRROR] Color standardization, vars moved, and signals (#194)
* Color standardization, vars moved, and signals (#52574)

    Defined all the existing light_color values.
    Moved their definitions to colors.dm
    Made white the default color. It was so already, but that was very obscured.
    Moved the atom light-related variables to the atom definition.
    Wrapped changes to variables such as light_color into procs that report the event through signals.
    Moved the light_on variable to the atom level, also adding a signal for its changing, to represent toggling lights.
    Cleaned up a little bit of code in where new variables were defined before redefinitions.

This is all atomization to reduce changes in #52413
None of this affect gameplay at all, it's all code cleaning and refactoring.

There's more colors to standardize, a search for color = will find lots of targets, and I see little need to have both the LIGHT_COLOR and COLOR patterns, but I don't want to make this PR bigger than it already is.

* Color standardization, vars moved, and signals

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