door
Permet à un objet de changer le niveau actuel lorsqu'un joueur entre collision avec lui
triggers on self
"locked""enter"parameters
| Parameter | Default Value | Type | Description |
|---|---|---|---|
nextLevel | boolean | true | |
destination | number | 0 | |
delay | number | 0.1 | |
onInteract | boolean | false | |
locked | boolean | false | |
legacyTag | string | 'legacy' |
example
door({ nextLevel: true, destination: 0, delay: 0.1, onInteract: false, locked: false, legacyTag: 'legacy'}),function door(p) { const param = { nextLevel: true, destination: 0, delay: 0.1, onInteract: false, locked: false, legacyTag: 'legacy', ...p, }; return { id: 'door', locked: param.locked, add() { const tryEnter = (player) => { if (!this.locked) this.enter(player); else this.trigger('try enter', { from: player, }); }; if (param.onInteract) { this.tag('interactive'); this.on('interacted', (player) => tryEnter(player)); } else this.onCollide('player', (player) => tryEnter(player)); }, tryEnter(b, player) { if (b) this.enter(player); else this.trigger('locked'); }, enter(player) { const legacy = get(param.legacyTag, { recursive: true }); if (param.nextLevel) CURRENT_LEVEL = (CURRENT_LEVEL + 1) % LEVELS.length; else CURRENT_LEVEL = param.destination; wait(param.delay, () => go('game', legacy)); player.trigger('enter'); this.trigger('enter'); }, };}