Fixes#7261
Fixes placed posters being visible on both sides of the wall.
Fixes the poster_type var used to specify certain poster designs on the
map not working correctly, and makes the nuke op shuttle poster an
actual poster.
Poster placement now belongs to the poster object instead of turf/simulated/
Posters can now be placed on unsimulated and shuttle walls.
Adjusts the shuttle to incorporate a nice, 2-tile wide docking hatch.
Drops the viro/xenobio docking arm.
Adds a button so that the teleporter blast door can be operated
independently of the airlock blast door.
Fixes some leftover arrivals area just hanging around in space.
Adds a poster specifically for the nuke ops shuttle.
This should have little/no gameplay effect right now, just paving the
way for directional lights.
Replaced handle_rotation() on buckly things with this.
Signed-off-by: Mloc-Argent <colmohici@gmail.com>
Generalized all ninja power and gear code to work with new rig system.
Added shurikens, weapon mount, more work on deployable items.
Readded energy nets and energy blades.
Grenade launcher/charge stuff, interface stuff.
Renamed previously existing rigs to voidsuits, restructured rig and voidsuit files.
Refactored the energy net and teleportation proc.
Totally rewrote AI core/intellicard transfer procs.
Added rig sprites by Mordeth221, added step by steap suit sealing/inability to interfere with suit sealing process.
Updated map paths to use voidsuits.
Added chemical dispenser functionality, added power sink, added atom/drain_power() proc for later use.
Added rigsuit verbs, added voice changer.
Renamed MASKINTERNALS to AIRTIGHT, added internals checks for airtight helmets.
Added drain_power() procs to vulnerable machinery.
Reimplemented data theft.
Added suit maluses for losing your cell while wearing one.
Transitioned the rig suits to a back-mounted item that also controls a chestpiece.
Converted rig module to a storage item, convert ERT voidsuits to hardsuits.
This includes labcoats, IA jackets, first responder jackets, and the brown leather jackets.
This way, code for button toggling doesn't have to be duplicated for labcoats and other coats, and it's easier to add other types of coats that can be buttoned up if someone wants.
First pass on major conversion of xenomorphs to a human subspecies. Additional condensing of various redundant mob verbs.
Converted larva and diona to their own class, collapsed the rest of xenomorphs into a human species, other stuff.
Completely removed attack_alien(). Still have to reimplement some of the lost behavior for human/alien.
Reapplies lost attack_alien() functionality other than tackling/caressing.
Further alien/humanoid cleanup and xenospawn fix-ups. Also uncommented caste verbs.
Removed half-finished abilities system since species.dm handles it.
All xenomorphs functionality should be working now, other than the HUD, tackling and the xenomorph balance issues.
Added icons for xenomorph castes, moved broadcast languages into datums, removed alien_talk and robot_talk vars.
Merged with organ removal code.
Reapplied verbs to simple_animals/slimes. Updated species definitions to have appropriate organs.
Readded tackle as a human verb.
Borer changes regarding brain removal.
Working on moving the human HUD to the species datum a bit. Mixed results.
Moved Cortical Link to a language, added borer husks.
Tidied up the HUD stuff. Still need to make it rebuild properly when species is changed, but this will do for no
Compile fix, forgot the DME.
Fixed up ventcrawl, added new organ mechanics for dionaea.
Fixed up some overlooked sections causing mobs without brains to die immediately.
Fixed up plasma generation for queens, bugs with organs, force_organ issues with set_species().
When chemical grenade being activated on any unsimulated turf (for example a space turf), smokeFlow() starts infinite while loop, overloading the server.
With the only one unsimulated turf in pending list while() loop can't finish itself and for() loop can't start.
This fix makes chemical grenades being able to explode in space without server going in infinite loop.
Also fixed issue with smoke being able to pass through glass walls with help of c_airblock() proc. That's the best solution I could come up with.
Zone check code was useless because every single turf besides walls (which allready checked) and unsimulated turfs have it, making algorithm believe that turfs behind the glass wall are being reachable by chemsmoke.
I don't know if it was intended not to spread smoke in airless or unsimulated areas, but a bunch of airless simulated floor tiles in space is good enough for this algorithm to start spreading smoke around.
P.S. this algorithm is good for large, open areas and horrible in narrow maint tunnels. It is creating only a single cloud of smoke for 50/50/50 recipie in 1 tile wide tunnel.
New turf proc: assume_gas(). Maps to air.adjust_gas_temp().
Lots of optimizations to processing, fire, lighting, HasEntered() and
more.
Zones now process all fire data and existance in one go, fire objects
only handle spreading.
Most code has been ported straight so some of it mightn't be ideally
structured for the new gas_mixtures.
Signed-off-by: Mloc-Argent <colmohici@gmail.com>
recently i fixed a couple of issues with /vg/'s alien weeds and nodes,
and i see some applying to Bay12 too.
one of those issues was the order of checks in weeds/Life().
it should cancel the weed's search for tiles to expand to without starting
the direction loop first, saving quite a few proc calls.
another issue is alien weeds having the default OBJ_LAYER layer 3 which makes them grow
over all kinds of items and objects which makes sense i guess fluffwise but
is really annoying ingame for both crew and aliens.
( and this coming from the host of Alium Deathtrap 13 ;) )
nodes stay at layer 3 to appear properly over things like AI-holopads.
a really tiny improvement is setting linked_node after the space-turf check in weeds/New().
link to the /vg/ commit : 4dcb434f72