Restore standing on arrival

A few CC2LP1 replays desynced, so, I guess this is right actually.
This commit is contained in:
Eevee (Evelyn Woods) 2024-04-11 00:23:21 -06:00
parent 2ee86b50d2
commit 64ca8f008c
2 changed files with 8 additions and 1 deletions

View File

@ -2016,6 +2016,13 @@ export class Level extends LevelInterface {
// XXX that is jank as hell what are you talking about
tile.type.on_arrive(tile, this, actor);
}
// XXX this does seem to be correct by CC2 rules, but it's very weird -- this will
// usually happen anyway during the actor's idle phase. it also requires random force
// floors to have a clumsy check that you aren't already about to slide
if (tile.type.on_stand && !actor.slide_ignores(tile.type.name)) {
tile.type.on_stand(tile, this, actor);
}
}
}

View File

@ -990,7 +990,7 @@ const TILE_TYPES = {
}
},
on_stand(me, level, other) {
if (! level.compat.force_floors_on_arrive) {
if (! other.is_pending_slide && ! level.compat.force_floors_on_arrive) {
level.schedule_actor_slide(other, level.get_force_floor_direction());
}
},