-The Captain's PDA can now access multiple bots!
- The Captain and HoP PDAs can now also remotely access Newscasters!
- Bot radio code now no longer uses filters to allow for multi-access
radio control.
- Bots can now patrol while off station.
PDA's start off again, but the code is still there.
forceMove() now calls Moved() and has some other minor tidying up. This means teleporting will update the lights around you right away.
Uses actual objects on each non-space, dynamically lit turf. Light levels are switched back and forth via animate() and the object's alpha. Supporting colors shouldn't be too hard. Some hacky efficiency improvements means it isn't that much more expensive than current (I think, needs testing). Most of the lighting ss's cost is in checking all the lights and doing big loops, not anything actually in the loops themselves.
Start PDA flashlights on. This was to speed up testing but frankly I think it's a good change in general.
Added a Moved() proc. Called after a successful move.
In the future I hope to move off the luminosity var entirely but that was too slow in testing for me. That's what all that "for(area in sortedAreas) area.luminosity = 1" stuff in the lighting ss is, tests on removing luminosity outright.
obj/effect/effect all pool themselves.
PoolOrNew() can now be passed a type and a list instead of a type and a location. In that case, the list will be passed to New() via arglist().
RCD's now delete their spark system and properly garbage collect.
The piano will stop playing once you walk away from it or get stunned.
The song BPM of the piano and violin will generally speaking be wrong because of discrepancies between the sleep between notes and world.tick_lag. I've solved this by locking BPM to points where the stated BPM will actually be the case because tempo == world.tick_lag.
Example
Current:
song @ 5 tempo - 120 BPM: c, c/2, c -> note -> sleep(5) -> 6 ticks (5.4 time passes) -> note -> sleep(2.5) -> 3 ticks (2.7 time passes) -> note.
With this PR:
song @ 5.4 tempo - 111 BPM: c, c/2, c -> note -> sleep(5.4) -> 6 ticks (5.4 time passes) -> note/2 -> sleep(2.7) -> 3 ticks (2.7 time passes) -> note.
I was hoping this would make the damn things sound better but then I realized it wasn't actually messing anything up. Oh well.
Reorganizes all flashing to use the same mob proc 'flash_eyes()' (welding tool use, flashbang, flashers, laserpointers, etc).
Fixes making sandstone not stacking the result sandstones on the floor.
Sandstone, grass tile and carpet tile now look for other incomplete stack on their creation location to try to put them all in one stack (exactly like wood planks).
Fix typos.
Remove banglet var from all flashbangs, making flashbangs from clusters behave exactly like the other ones.
Renames eyecheck()proc to check_eye_prot() and moves it to mob/living level, elso creates check_ear_prot() for checking ear protection.
Aliens, slimes and monkeys can climb into disposal but cannot flush it.
Non carbon mobs can no longer climb into disposal by themselves.
Stuffing another mob in a disposal unit is now only done via grabbing.(fixes bugs like stuffing someone while being inside the disposal yourself)
Large mobs no longer fit inside disposal.
Fixes hydrotray growing overlay layer.
Fixes slicing broken pipes dropping a straight pipe.
Fixes typos.
Removing unused var from disposal.