Commit Graph

1728 Commits

Author SHA1 Message Date
Mothblocks
bd6873fd4d Remove nanites (#60473)
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
2021-07-28 16:00:56 -07:00
Tim
d1c0d5f64d Add Referee costume (#60430)
imageadd: Added referee costume
2021-07-27 03:17:14 -04:00
tralezab
43fd840b2f Kills _globalvars/misc.dm (#60358) 2021-07-26 16:58:18 -07:00
Fikou
51cba51347 removes some uses of var in world (#60407)
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
2021-07-26 16:25:06 -07:00
Thunder12345
39da0b0407 Capture The Flag: Class Warfare (#59629)
Co-authored-by: Thunder12345 <stewart@critar.demon.co.uk>
2021-07-23 15:49:22 -07:00
aaaa1023
967521c4c4 Fixes minor typo with bloodspider directive (#60386) 2021-07-23 13:56:47 -07:00
coiax
d0f53e1af5 Change maintenance loot spawns to be invisible post-spawn (#60294)
A previous commit made maintenance loot spawn effects visibile to
observers, but transparent.

However, in practice this is a lot of visual noise for very little
benefit for observers, so after they've spawned, they disappear, akin to
the old behaviour.

(They are still there, just hidden, but it looks the same to the end
user.)
2021-07-19 17:12:27 -03:00
Rohesie
4c21166e4f Job refactor: strings to references and typepaths (#59841)
* Job refactor: strings to references and typepaths
2021-07-18 20:48:47 +02:00
coiax
fd2fc3287d Rework maintenance loot spawners to fire at roundstart (#59913)
Maintenance loot spawners now fire at roundstart, rather than during the initialization of the Atoms subsystem.
Maintenance loot spawners do not qdel themselves during the spawning process, but persist, and merely hide themselves from living players.

As a cute side effect, this lets preround observers look at the colourful maintenance loot dice icons before the round starts. Observers can continue to see the loot dice post-round, but they are deliberately
very faint.
2021-07-17 12:15:20 -03:00
TiviPlus
dea4c5b9e0 Changes overlay lighting vis contents objs -> underlays (#60239)
Previously what it would do is create up to three objects; a cone, a lighting image and a holder
Then whenever the lighting image was placed into the holders vis contents and the holder would be teleported several times when the parent would to turn or move, and the cone would be spun when the parent spun

Instead of doing that it now just translates a single overlay every time that something is updated
2021-07-17 11:14:49 -03:00
Wallemations
a78799f8ae Adds Ants, Decomposition, and some extras. (#59634)
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
2021-07-15 18:12:15 -07:00
Wayland-Smithy
189a7160da sillycone touch (#59986) 2021-07-04 15:28:38 -07:00
coiax
e4d8795e9c Add new Wallets! station trait (#59877)
Add a new simple station trait, that replaces everyone's ID with a
    wallet containing said ID, as well as their starting money, and if
    they're lucky, a little bonus surprise.

        In addition, adds a force variable to station traits, which will
        always enable them, rather than having to edit weight and probability
        of rolling a trait of that sign (postive, negative).

Co-authored-by: Rohesie <rohesie@gmail.com>
2021-07-04 10:20:42 +01:00
Rohesie
2c5a357035 Reverts Entered() passing dir instead of old loc (#59910) 2021-07-01 17:06:42 -07:00
MrMelbert
e42f7f867d Fixes spread glowshrooms runtiming on initialize (#59902) 2021-07-01 01:13:20 -07:00
Wayland-Smithy
03c1ce3932 Fix hand teleporter and other portals looping forever (#59894)
Makes portals use Bumped() instead of COMSIG_ATOM_ENTERED for detecting atoms crossing the event horizon.

Removes unused and potential loop causing forceMove argument from do_teleport()
2021-06-29 21:53:37 -03:00
Rohesie
82dc71c3ae CanPass refactor (#59804) 2021-06-25 13:36:00 -07:00
DragonTrance
279c93a0a7 Adds Defines for Species IDs (#59797)
Simply puts species IDs into defines ("lizard" turns into #define SPECIES_LIZARD "lizard"). This does not affect any gameplay, and is purely for making sure future code doesn't go all fucked up because someone accidentally misspells something

I only changed code that was spelt correctly, so if there actually is a typo somewhere, it isn't changed
2021-06-25 15:30:16 -03:00
Arkatos1
0b6bcbe711 Integrates spider eggs into the mob spawners (#59727)
Integrates spider egg clusters into the mob spawners instead of them being their own thing, which cleans up a code a fair bit, and gives players an overview of all available types of clusters in the ghost spawners menu, example image below. This also means players banned from ROLE_ALIEN will not be able to spawn as one, as they are very similiar antagonists in concept and it is probably wiser than using default ROLE_LAVALAND on mob spawners for restriction of this role.
Expanded mob spawners code to accomodate for a situations where spawners are using radials for handling mob choosing, and also for when spawners have special conditions for when they are available (like until eggs are mature, for example).
Mob spawners now support giving their mobs multiple factions membership, instead of being limited to only one.
Spider egg clusters now stop processing when they mature, as there is no need for them to do that anymore by that point.
Cleaned up and updated some spider variant radial info boxes, so players have better idea about each variant individual strengths and weaknesses.
2021-06-25 00:09:19 -03:00
LemonInTheDark
6fcbce39cd Makes turfs persist their signals, uses this to optimize connect_loc (#59608)
* Makes turfs persist signals

* Splits connect_loc up into two elements, one for stuff that wishes to connect on behalf of something, and one for stuff that just wants to connect normally. Connecting on behalf of someone has a significant amount of overhead, so let's do this to keep things clear

* Converts all uses of connect_loc over to the new patterns

* Adds some comments, actually makes turfs persist signals

* There's no need to detach connect loc anymore, since all it does is unregister signals. Unregisters a signal from formorly decal'd turfs, and makes the changeturf signal persistance stuff actually work

* bro fuck documentation

* Changes from a var to a proc, prevents admemems and idiots

* Extra detail on why we do the copy post qdel
2021-06-22 23:12:34 -04:00
TemporalOroboros
298725bf29 Fixes bodybags, cargo crates, and directional lighting. (#59709)
Fixes a couple bugs created by the neon carpets PR:
* Bodybags can once again be closed. (Fixes #59704, Fixes #59747)
* Cargo crates no longer report having delivered an emissive blocker
* Directional lighting no longer masks the emissive plane.
2021-06-22 19:35:45 -03:00
Greniza
8f610f0d27 New tile-coloring turf decals! (#59609) 2021-06-22 02:17:15 -03:00
Rohesie
e03cd1aada Refactors move procs to support multitle objects (#59658)
Enter(), Entered(), Exit() and Exited() all passed the old loc forward, but everything except a single a case cared about the direction of the movement more than about the specific source.
Since moving multi-tile objects will have multiple sources of movement but a single direction, this change makes it easier to track their movement.

Cleaned up a lot of code around and made proc inputs compatible.

I'll add opacity support for multi-tile objects in a different PR after this is merged, as this has grown large enough and I don't want to compromise the reviewability.

Tested this locally and as expected it didn't impair movement nor produced any runtimes.
2021-06-20 14:55:37 -07:00
Watermelon914
375a20e49b Refactors most spans into span procs (#59645)
Converts most spans into span procs. Mostly used regex for this and sorted out any compile time errors afterwards so there could be some bugs.
Was initially going to do defines, but ninja said to make it into a proc, and if there's any overhead, they can easily be changed to defines.

Makes it easier to control the formatting and prevents typos when creating spans as it'll runtime if you misspell instead of silently failing.
Reduces the code you need to write when writing spans, as you don't need to close the span as that's automatically handled by the proc.

(Note from Lemon: This should be converted to defines once we update the minimum version to 514. Didn't do it now because byond pain and such)
2021-06-14 13:03:53 -07:00
TemporalOroboros
daec5002fc Adds Neon Carpet (#59140)
Adds a couple varieties of neon carpet.
Makes decals care about their plane in addition to their layer.
2021-06-13 15:40:53 -03:00
LemonInTheDark
f90e8cf7a3 Fixes a bunch of harddels that are sourced from player action (#59371)
Sourced from #59118 and a cursed project I'll pr later, This pr contains a lot of harddel fixes for stuff that pops up after a player interacts with something. I'm not gonna list them all here because there's something like 60 130, check the commit log if you're curious

Oh and I moved ref tracking screaming to a separate define, and made some optimizations to the thing in general. I think that's it, this pr is a bit of a frankenstine
2021-06-10 21:44:23 -03:00
Emmett Gaines
43c5dc8bfa Makes obj_integrity only updated through procs (#59474)
Having things updating integrity directly is just going to cause more problems down the line as more elements and components depend on being notified of integrity changes. It's an easy mistake to make so making it private should deal with the problem.

get_integrity() might be useful in the future but is mainly a side effect of making obj_integrity private as that also disallows reads.
2021-06-04 11:48:05 -03:00
antropod
8cc5da733e Fixes reagent multiplication exploit with 1u foam (#59313) 2021-05-28 13:58:29 -07:00
Mothblocks
356cd53952 Pride week + rainbow floor tiles (#59250)
Adds pride week from June 23rd to the 29th, and makes the floor tiles rainbow.
2021-05-24 12:32:15 -04:00
tralezab
d9c3239d58 Gives the hop a trapdoor (#59081) 2021-05-22 13:05:38 -07:00
LemonInTheDark
ac122ee078 Fixes a runtime in proximity_monitor/Destroy, turns QDEL_LIST -> QDEL_LAZYLIST (#59201) 2021-05-20 21:51:42 -07:00
Clyde-Thunderpants
b7466e25d7 makes the web weaving mutation let you weave webs into cloth (#59079) 2021-05-15 03:51:57 -07:00
LemonInTheDark
356afaa40d Fixes footprint stacking (#58918)
* Fixes footprint stacking, replace_decal needed to return parent, and just, didn't. I'm not sure where the fuck
this came from, or even how to test for it, but here you are

* Adds a unit test to prevent regressions on this error in future

* Uses TEST_ASSERT_EQUAL instead of TEST_ASSERT

Thank you moth man

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>

* Updates a comment to more accurately describe my pain

* maybe fixes it?

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-05-14 16:58:19 -04:00
Kylerace
b95a6af896 big connect_loc fix. teleporters dont cause runtimes and movables registered to things entering their turf no longer have themselves entering their turf sent to them (#59065) 2021-05-13 23:42:33 -07:00
manofpepsi
f7e697f511 A bunch of new tile variants and dark tile decal. (#59046) 2021-05-13 04:14:54 -07:00
coiax
3bef1c1104 Fix blazing oil not being damaged by sprayed water (#58992)
🆑 coiax
fix: Blazing Oil blobs can now be damaged by sprayed water from fire
extinguishers, as intended.
/🆑

Because the mechanism of how the water damages the blob has changed, the
extinguish damage has been increased, otherwise you had to empty a fire
extinguisher to kill even one single blob tile.
2021-05-12 02:02:48 -07:00
Mothblocks
ddf5e4f3f0 Fix proximity checkers not being destroyed (#58989)
monitor.checkers is a lazy list, this was runtiming.

lol bee code
2021-05-10 16:40:30 -07:00
tralezab
ea57e3f960 Kills BOTH /poison paths by turning poisonous into an element. (+fantasty prefix, sanity on attackingtarget signal, and more) (#58882) 2021-05-09 16:49:59 -07:00
YakumoChen
00f118b55f Fixes / new magic shoes sprite (#58750)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-05-08 03:27:37 -07:00
Celotajs
cbc750d581 Add code improvements from BeeStation-Hornet by ike709 (#58922)
Co-authored-by: celotajstg <celotajstg@users.noreply.github.com>
2021-05-08 01:16:18 -07:00
Kylerace
08df8798ce (code bounty) refactors all uses of Crossed() and Uncrossed() into signals sent to loc, tracked by connect_loc (#58340)
Co-authored-by: Jared-Fogle <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
2021-05-07 03:54:03 -07:00
LemonInTheDark
9d6a7c7045 Fixes gib code creating more then one rot component per gib (#58838)
Co-authored-by: Fikou <piotrbryla@onet.pl>
2021-05-03 05:24:51 -07:00
Fikou
c0f9d2e7e8 [READY] Tile Reskinning 2: Epic Winaloo (#58801)
extends the tile reskinning functionality to iron, bronze, plastitanium, carpet and pod floors
makes a bit of tile code better
moves some paths around, like elevator shafts being plating instead of floor
adds rotating as a tile reskinning function available on chapel or side floors for example

lets players customize any rooms they would want much more than it is possible now, allowing for more creativity
2021-05-01 02:20:45 -07:00
LemonInTheDark
27385e9d70 Converts the atmos senstive component over to connect_loc (#58266)
* Makes all uses of atmos_senstive pass in mapload as context

* Converts atmos senstive to connect_loc, does some general cleanup to the element, and makes it check the state of the tile the thing is on assuming creation didn't happen as a part of map loading

* Updates connect loc to match the new arg list
2021-04-30 18:35:47 -07:00
LemonInTheDark
a924226b50 React optimization + event based processing for tanks, canisters and pipelines (#58418)
* Makes tanks only process when needed, rather then doing it constantly

* Makes portable atmos machines only process when needed, makes adding and removing atmos machinery cheaper, makes the tank processing logic actually work properly

* Makes pipelines only react() when their mix changes, fixes a ton of misuses of update_parents that were causing about 10ms of load for atmos just from reconcile_air()

* Adds in a new reaction framework alongside the old one for profiling related reasons

* whoops

* Cleanup, removes the react profiling code, I've chosen a direction to go here

* Cleans up some code, adds comments describing how to interact with portable atmos machines/tanks and their
mixes, adds a blurb to Atmospherics.md about the topic as a whole, leaves a line of bread for someone to follow
if I get hit by a bus in 2 days (Knock on wood)

* Removes priority from reactions, moves priority groups to the defines file

* whoops

* Converts air_contents to _air_contents, replaces all the out of file things that used it with return_air()

* Replaces the canister air contents uses, converts it back to air_contents, I decided I didn't like the _

* Fixes
2021-04-30 12:29:29 +02:00
TemporalOroboros
9f598a9662 Makes the explosive compressor and blastcannon actually use the TTVs they're given + the explosion changes to support that. (#58015)
* Adds explosion SFX to the blastcannon and explosive compressor

- Extracts the explosion SFX and screenshake proc from the SSexplosions explosion handling proc and lets the explosive compressor and blastcannon use it.

* Miscellaneous changes

- Adds defines for the internal explosion arglist keys
- Reverses the values of the explosion severity defines
- Changes almost everything that uses `/proc/explosion` to use named arguments

- Removes a whole bunch of argname = 0 in explosion calls.

* Removes named callback arguments.

* Changes the explosion signals to just use the arguments list

Adds a simple framework to let objects respond to explosions occurring inside of them.

Changes a whole bunch of explosions to use the object being exploded as the origin of the explosion rather than the turf the object is on.

Makes the explosive compressor and blastcannon actually use the TTVs they are given.

Adds support for things responding to internal explosions.
Less snowflake code for the explosive compressor and blastcannon calculating bomb range.*
Less confusing explosion severity defines.
Less opaque explosion arguments

*does not guarantee that the solution to letting them actually use the TTV is any less snowflake.
2021-04-26 17:31:25 -07:00
Fikou
7e3a4f2442 fixes stuff made with bronze sheets deconstructing into tiles or not being able to make bronze golems (#58708) 2021-04-26 16:15:18 -07:00
Seth Scherer
41b9551904 Stops hangover station trait from making bottles spawn in the walls/windows/dense objects (#58681) 2021-04-26 01:58:05 -07:00
Mothblocks
7e4de07506 Remove all gamemodes except Dynamic (#58470)
Removes all /datum/game_mode except dynamic. Eventually, all of mode and game_mode will be removed, and Dynamic will become an ingrained system. Every single other gamemode was unmaintained at best and poisoned other code at worst. Currently all tg servers run 24/7 Dynamic, so the time to act is now.

* Remove gamemode references from age checks

* Monkey

* Remove heretics

* Remove BBs

* Refactor uplinks and remove clown ops

* Remove nuke ops

* Removes and refactors cult

* Remove extended

* Remove and move out meteors

* Removes wizard

* Remove sandbox

* Remove changelings

* Remove traitors

* Remove revs

* Remove gangs

* Remove changing mode and voting for new gamemodes

* get_candidates signature fix

* Summon ERT and NERD in their own panel

* Remove some old unneeded age_check stuff

* Fix old signatures of get_uplink_items

* Use Extended like config for dynamic.json

* Fix discounted gear
2021-04-25 01:55:10 -07:00
ArcaneMusic
3475446f74 Ports Mail From Kiwi Take 2: Arconomy Class Mail (#58146)
Co-authored-by: tralezab <spamqetuo2@gmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-04-24 22:49:27 -07:00