Add a couple CC1 compat flags

This commit is contained in:
Eevee (Evelyn Woods) 2021-01-20 14:45:30 -07:00
parent 43168f75cd
commit 134270e3e3
3 changed files with 11 additions and 1 deletions

View File

@ -1266,6 +1266,7 @@ export class Level extends LevelInterface {
// At this point, we have exactly 1 or 2 directions, and deciding between them requires
// checking which ones are blocked. Note that we do this even if only one direction is
// requested, meaning that we get to push blocks before anything else has moved!
let push_mode = this.compat.no_early_push ? 'bump' : 'push';
let open;
if (dir2 === null) {
// Only one direction is held, but for consistency, "check" it anyway

View File

@ -2890,6 +2890,11 @@ const COMPAT_FLAGS = [{
label: "Player pulls blocks at decision time",
// TODO maybe steam as well?
rulesets: new Set(['steam-strict']),
}, {
key: 'blue_keys_not_edible',
label: "Monsters do not eat blue keys",
// TODO wonder if this should also remove the special behavior of red keys
rulesets: new Set(['ms']),
}, {
// XXX this is goofy
key: 'tiles_react_instantly',
@ -2910,6 +2915,10 @@ const COMPAT_FLAGS = [{
key: 'use_lynx_loop',
label: "Use Lynx-style update loop",
rulesets: new Set(['steam', 'steam-strict', 'lynx', 'ms']),
}, {
key: 'no_early_push',
label: "Player doesn't push at decision time",
rulesets: new Set(['lynx', 'ms']),
}, {
key: 'emulate_60fps',
label: "Run at 60 FPS",

View File

@ -2215,7 +2215,7 @@ const TILE_TYPES = {
// actors who aren't supposed to have an inventory
// TODO make this a... flag? i don't know?
// TODO major difference from lynx...
if (other.type.name !== 'ice_block' && other.type.name !== 'frame_block') {
if (other.type.name !== 'ice_block' && other.type.name !== 'frame_block' && ! level.compat.blue_keys_not_edible) {
level.attempt_take(other, me);
}
},