Fix Lynx's no-backwards-overriding; remove the force-floor-on-arrive flag

Not sure the latter one is even correct at all; it completely breaks
ICEHOUSE, for one.  I guess it made more sense with the previous hacky
implementation of force floors applying at the start of the game.
This commit is contained in:
Eevee (Evelyn Woods) 2024-04-11 01:14:12 -06:00
parent 80edfa1ae9
commit f896e1bdfd
2 changed files with 3 additions and 19 deletions

View File

@ -199,10 +199,6 @@ export const COMPAT_FLAGS = [
key: 'no_backwards_override', key: 'no_backwards_override',
label: "Players can't override backwards on a force floor", label: "Players can't override backwards on a force floor",
rulesets: new Set(['lynx']), rulesets: new Set(['lynx']),
}, {
key: 'force_floors_on_arrive',
label: "Force floors trigger on arrival",
rulesets: new Set(['lynx', 'ms']),
}, { }, {
key: 'traps_like_lynx', key: 'traps_like_lynx',
label: "Traps eject faster, and even when already open", label: "Traps eject faster, and even when already open",

View File

@ -57,16 +57,10 @@ function _define_force_floor(direction, opposite_type) {
slide_mode: 'force', slide_mode: 'force',
speed_factor: 2, speed_factor: 2,
allow_player_override: true, allow_player_override: true,
on_arrive(me, level, other) { // Used by Lynx to prevent backwards overriding
if (level.compat.force_floors_on_arrive) { force_floor_direction: direction,
// Lynx: Force floors activate when stepped on, not when stood on
level.schedule_actor_slide(other, direction);
}
},
on_stand(me, level, other) { on_stand(me, level, other) {
if (! level.compat.force_floors_on_arrive) { level.schedule_actor_slide(other, direction);
level.schedule_actor_slide(other, direction);
}
}, },
activate(me, level) { activate(me, level) {
level.transmute_tile(me, opposite_type); level.transmute_tile(me, opposite_type);
@ -983,12 +977,6 @@ const TILE_TYPES = {
return (level.compat.rff_blocks_monsters && return (level.compat.rff_blocks_monsters &&
(other.type.collision_mask & COLLISION.monster_typical)); (other.type.collision_mask & COLLISION.monster_typical));
}, },
on_arrive(me, level, other) {
if (level.compat.force_floors_on_arrive) {
// Lynx: Force floors activate when stepped on, not when stood on
level.schedule_actor_slide(other, level.get_force_floor_direction());
}
},
on_stand(me, level, other) { on_stand(me, level, other) {
if (! other.is_pending_slide && ! 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()); level.schedule_actor_slide(other, level.get_force_floor_direction());