| 110 | } |
| 111 | |
| 112 | override async didApply(): Promise<ActionApplyResult> { |
| 113 | const characters = this.engine.state('characters').filter((item: string) => { |
| 114 | const [show, character, asset,] = item.split(' '); |
| 115 | return asset !== this.asset; |
| 116 | }); |
| 117 | |
| 118 | const experimentalFeatures = this.engine.setting('ExperimentalFeatures'); |
| 119 | |
| 120 | if (experimentalFeatures) { |
| 121 | const characterLayers = this.engine.state('characterLayers').filter((item: string) => { |
| 122 | const [show, character, asset,] = item.split(' '); |
| 123 | const [id, layer] = asset.split(':'); |
| 124 | return id !== this.asset; |
| 125 | }); |
| 126 | |
| 127 | this.engine.state({ characters, characterLayers }); |
| 128 | } else { |
| 129 | this.engine.state({ characters }); |
| 130 | } |
| 131 | |
| 132 | return { advance: true }; |
| 133 | } |
| 134 | |
| 135 | override async willRevert(): Promise<void> { |
| 136 | if (this.engine.history('character').length <= 0) { |