Crossed() is a byond builtin which is called automatically when two movable atoms overlap (as a side effect of Move(), but not when loc or x/y/z is changed). Previously, turf/Entered() iterated through all objects in the turf in order to tell them an object had entered; with this change, HasEntered() becomes redundant and can be eliminated.
This may reduce lag when a large number of objects are moving in a small space (singularity, mining conveyors, etc) but should cause no changes to functionality at all.
* Replaced "fire" with SPAWN_HEAT. You will have to use it in conjunction with SPAWN_TOXINS to spawn fire.
* Added flags for HEAT, COLD, TOXINS, OXYGEN, CO2, NITROGEN, N2O, FUEL and AIR.
Adds anomalies, special effects which tie into the event system.
Ports bholes into an anomaly, cleans up their code.
Adds new gravitational anomalies. Imagine a trampoline.
Flux event is now an anomaly.
Adds a new pyro anomaly.
Makes trail_holder a child of cleanables instead of blood (this is to
allow add_blood turf proc to spawn blood splatter on blood trails, also
other kinds of blood effects), also cleaned up the blood code a bit.
Big props to Aranclanos, Cheridan, Pewtershmitz and all other coders on
#coderbus for making this happen.
--DO NOT MERGE STILL WIP--
Makes blood trails use overlays, the overlays are contained in a holder
object. DNA is now properly added to them.
todo: redo light, xeno light and xeno heavy trails. help of spriters is
welcome.
The blood trails now follow the path the body has taken and players can
very easily make out said path.
Heavily damaged corpses will have a much thicker blood trail than
corpses with some brute damage. At the moment, trails overwrite
eachother and a placeholder icon set is used for alien heavy blood
trails.
Changed atom's bullet_act to call the projectile's on_hit, and changed
most bullet_acts to call on_hit as well. Removed some now-unnecessary
snowflake code.
These changes will make projectiles which should effect non-mobs, such
as the gyrojet and the ion rifle, work properly. Inanimate objects can
now be empulsed with the ion rifle, whose projectiles used to dissipate
on hitting anything but a mob. Gyrojets now explode on most objects, as
opposed to just on walls and mobs, and the snowflake code that made them
work on walls is no longer necessary. The code for pulse rifles'
breaking walls has been moved from a check in turf to a check in pulse
beams, and has been expanded to include structures, allowing them to
(slowly) break girders. For coders, it means that on_hit is a reliable
proc for the effect of a bullet's hitting an object.
Moves /obj/effect/alien/acid to /obj/effect/acid. Adds a new sprite for acid.
Standardises and updates text styling in code/game/objects/effects/aliens.dm.
DNA modification uses normally distributed random numbers. Radiation strength dictates the standard deviation of the change in the hex character which is hit (higher output means greater chance for a large change) . Similarly, radiation duration dictates how likely we are to hit the hex-character we clicked on (longer duration means more likely to hit). Irradiation is strength*duration. All balancing is done via multiplier defines so you can rebalance it easily.
DNA blocks and structuring all use defines. Making modification/expansion easier. I'll likely expand this into a datum-based system to allow more interesting features, reduce code further and allow admins to interact with the way dna strings behave.
DNA strings can be spliced together using merge_text().
e.g. string 1: "Hello World"
string 2: "Seeya______"
result: "Seeya World"
This isn't used except for admin-spawnable SE injectors at the moment.
r_hair, g_hair, b_hair, r_facial, g_facial, b_facial, r_eyes, g_eyes, b_eyes were removed and made into 3 short hex-colors.
Skin tones now support colours other than shades of brown. I've had to restrict it heavily until other stuff is done. Skin tones include Albino Caucasian, Oriental, Mediterranean, etc.
Data disks and DNA injectors were reworked to use associative lists so transferring data is just a matter of doing list.Copy()
var/dna is now defined at /mob/living/carbon level. Only monkeys and humans may have dna currently. Support is there for all carbon-based lifeforms to have dna.
DNA modifier console has almost all controls on one screen.
UIs and UEs can be injected separately (appearance and name, respectively)
dna helper procs like ready_dna() and such were changed to make them more versatile. There is now a hardset_dna() proc as an alternative to ready_dna which can initialize dna with properties passed into it or update an existing dna string (useful for cloning and antag spawning)
Every block of SEs are in randomised positions.
Disabled automatic logging of world.log, as it produced undesirable behaviour.
Mr Muggles and God Emperor of Mankind disks removed.
Floor() removed. (it was completely uneccesary, that is what round() is).
Fixed spelling mistakes in modularchangling.dm (thanks tenebrosity)
Tanning removed from beaches (again)
Experimental: monkeys and humans do not have dna until first attempt to read dna (using check_dna_integrity(mob))
This is mainly due to the way everything is hardcoded into New().
Changelog.html updated
Signed-off-by: carnie <elly1989@rocketmail.com>
-Spraybottle chempuffs will now pass over tables.
-Further reorganization of chemistry reagents. Organizes toxic chems into subtypes. This cuts down on copied code and allows us to do fun things in the future, like machines that filter poisons and such.
Fixes the bug with effects/glowshroom not glowing when placed.
They don't spread infinitely: The odds of a shroom spreading decreases with each generation. Because they're sane now and not virally-spreading fungal horrors, they've been changed to spread on normal station floors and not just the asteroid.
The spreading glowshrooms acquire the parent's stats, with some mutations.
The delay variable is now based off of production, and goes DOWN with better stats instead of GOING UP.
-Removes unnecessary (copy-pasted) code bits in walking mushroom/killer tomato code in grown.dm