This commit first and foremost ports the -tg- atom pooling system, and
removes the old experimental system entirely.
Secondly, this PR modifies the qdel system to use a -tg- lookalike
"destroy hint" system, which means that individual objects can tell qdel
what to do with them beyond taking care of things they need to delete.
This ties into the atom pooling system via a new hint define,
QDEL_HINT_PUTINPOOL, which will place the atom in the pool instead of
deleting it as per standard.
Emitter beams are now fully pooled.
Qdel now has semi-compatibility with all datum types, however it is not
the same as -tg-'s "Queue everything!" system. It simply passes it through
the GC immediately and adds it to the "hard del" lists. This means that
reagents can be qdel'ed, but there is no purpose as of yet, as it is more
or less the same as just deleting them, with the added effect of adding
logs of them being deleted to the garbage collector.
This commit adds an overflow rerouting system customizable by modifying
the config. If the config values are set, after X amount of clients have
connected, the server will start rerouting all new players to the
configuration "overflow" server. Note that admins are immune to this, and
therefore will not be rerouted under any circumstance. Players that have
already connected and have a body will not be rerouted either, this will
only affect new players that get sent to the lobby.
It probably would also kick players if an admin sent them to the lobby,
but that's a very special case scenario.
Holidays are now actual datums with procs and vars and everything.
Holidays run a proc called celebrate() when it's time to celebrate them.
Currently none of them do anything but that should change, wink wink.
Holidays can now run for more than a day. The important ones, april fools,
christmas, halloween, new years, and easter, all last at least a week.
The idea is so people can celebrate christmas in game without having to,
you know, actually play on fucking christmas. And also to put a time limit
on how long stuff like the annoying spookoween closet skeletons will stick
around so it doesn't overstay its welcome and become annoying as shit like
last year.
The event SS now allows more than 1 holiday to run at a time.
This matters for new years + christmas, easter + april fools, easter + 4/20,
and any holiday that can happen on friday the 13th.
The events get stored in a list that's only initialized if there's an active
holiday so testing for potential holidays is still pretty easy.
Added more easter dates so we won't have to add more until 2040.
The current batch run out in 2017.
:-------------PARACODE NOTES------------:
Tied to event process
Extra procs for holidays to be able to run special events alone
Admin manual-override functionality maintained and ported to new system
This commit adds the spacecube system from -tg-. The spacecube system
allows for predicatably random space layouts- it is randomized every
round, but the transitions stay consistant for that round, therefore
making it possible to 'map' space, or explore in teams.
This commit ports baystation12's implementation of starlight, modified to
rely on the master-controller due to differences between us, -tg-, and
bay12. Starlight allows space tiles to give off light, the amount of light
can be configured in config.txt.
Largely a port of https://github.com/Baystation12/Baystation12/pull/8038
(Credit to Zuhayr for his hard work on botany)
Breakdown of the port:
- Plant traits have been expanded drastically
- You want a bio-luminescent tomato that explodes into a cloud of acid
when thrown or stepped on? Or maybe a corn vine that entangles people
and injects them with mannitol and it's harvests that can be used as a
battery? Totally possible.
- Adds new random seeds! Replaces the egg-plant seed in the exotic seeds
crate from cargo with 2 of these.
- Literally random, they have randomly generated stats, chemicals, and
traits. Great for researching, and/or wasting cargo's supply points.
- Plant analyzers can now print off the last scan they recorded, meaning
you can distribute copies of the report to validate your claims of
having the dankest weed on station.
- Potatoes, carrots, watermelons, soybeans, and pumpkins can all be
sliced/diced/carved with ANY sharp object, such as knives, hatchets,
glass shards, and e-swords.
- This should give the chef a bit more room to make it look like he
actually is doing the work by slicing up fries by hand. The processor
still also works.
- New reagent: Wood Pulp
- Currently has no use in recipes, but any plant with this reagent in it
can be chopped into planks with a hatchet. Did someone order some
Ambrosia Deus planks?
- Also, vines with woodpulp are dense. You have been warned.
Now onto the stuff I did in addition to the stuff from Bay.
- Fixed typos where plasma was mistakenly called "phoron" in the port.
(Sorry bay)
- Replaced bay's botany mutation chances with our tiered mutation
system.
- Re-re-added tobacco, space tobacco, tea aspera, tea astra, coffee
arabica, and coffee robusta.
- Re-enabled the rolling of joints
- Made it possible to hand-roll cigarettes from tobacco / space tobacco.
(A requested / promised addition)
- Just like with joints, it will inherit any chems in the tobacco, has
the same reagent capacity as a joint, but looks and smokes like a cig
(lasts as long as the cigarettes) with a different name/description to
differentiate it from pre-made cigs.
- Corn can now be juiced in the grinder, in addition to grinding it.
Grinding corn will result in it's contained reagents (like corn starch),
while juicing corn will result in corn oil.
- Re-added the additional plant analyzer information when scanning trays
(displays age, weed level, etc)
Also cleaned up the recipes_microwave.dm file, removing the commented
out recipes that were distributed to the other machines during the
Kitchen Overhaul. Shortens the file a bit and makes it more readable.
I probably forgot stuff, so I will add things as I remember them / they
get pointed out.
This commit does the following;
- Repairs mob breathing by adding a new ticker process, mob_master, as
air_master is an unreliable ticker with it's customizable speed
- Restore firedoor attack_hand access
- You can now open and close firedoors by using no item, provided you
have access to them and they aren't locked.
This commit ports the base system of LINDA from TG. This version of linda
is the original version, with none of -tg-'s fixes, rewrites, or other
such improvements attached.
The mob ignite system has been 100% removed, as LINDA does not support
this normally. It may be added back in when the improvements and refactors
to LINDA have been ported.
- Disables random events by default, requires config.txt to enable
random events
- Makes portable turrets respect its preset anchored value
- Gives flamethrower a real category