Files
vgstation13/code/modules/power/engine.dm
dylanstrategie 7dd39a9c52 Port experimental base_turf system from Baystation - Third time in a row
No, I don't know how to manually fix conflicts on a PR, and this doesn't
make me wanna figure out how it's done

Fuck you too for not even trying when you were working on Endgame @N3X15

Also thanks for fucking up my PR by stealth-merging a fix @Comic

Because Baystation has finally gotten around to it, and because the code
looked simple, I decided to get my hands on porting a system that allows
up to define base_turfs. As a bonus, it also defines them per Z-level.
So if you wanted, you could have a space station, and a Z-level on a
map-spanning asteroid, and then an away mission on land, all in the same
file

Note that you can modify it mid-round via a DEBUG flag verb, it will
however only affect destroyed turfs (it won't change space, which I
suppose is intentional)

Tested were destroying walls and floors and even dropping a bomb in the
middle of Medbay

Not tested were more finicky conditions like the Singularity or
buildmode. I simply replaced all ChangeTurf() instructions that pointed
to space, because that is how Baystation implemented it

Only problem with this is that it doesn't work on a per-map basis, so
unless some wizardry is done on that code, it'll be hard to get anything
interesting going with it

Discussions go below. Since this is pure code refactor, I doubt there'll
be much up to debate
- Old PR over at #5192
- Older PR over at #5167

Example picture (with the current code, there would be no lattices over
the sand) :

![dune](https://cloud.githubusercontent.com/assets/6137403/8409264/9d1b0e5e-1e76-11e5-9a53-13a972268c87.png)
2015-07-02 01:30:15 +02:00

14 lines
316 B
Plaintext

/turf/simulated/floor/engine/attack_paw(var/mob/user as mob)
return src.attack_hand(user)
/turf/simulated/floor/engine/attack_hand(var/mob/user as mob)
user.Move_Pulled(src)
return
/turf/simulated/floor/engine/blob_act()
if(prob(25))
ChangeTurf(get_base_turf(src.z))
del(src)
return
return