mirror of
https://github.com/unanmed/HumanBreak.git
synced 2026-11-03 01:54:58 +08:00
feat: 楼层滤镜
This commit is contained in:
1 parent
929ca6f18d
commit
63765ab626
10 files changed
+74
-45
No files matched your search
+50
-21
@@ -1,37 +1,66 @@
|
||||
export default function init() {
|
||||
return {
|
||||
setGameCanvasFilter,
|
||||
getCanvasFilterByFloorId,
|
||||
setCanvasFilterByFloorId
|
||||
};
|
||||
}
|
||||
import { logger } from '@/core/common/logger';
|
||||
import { LayerGroupFloorBinder } from '@/core/render/preset/floor';
|
||||
import {
|
||||
ILayerGroupRenderExtends,
|
||||
LayerGroup
|
||||
} from '@/core/render/preset/layer';
|
||||
|
||||
export function setGameCanvasFilter(filter: string) {
|
||||
['bg', 'bg2', 'event', 'event2', 'fg', 'fg2', 'hero'].forEach(v => {
|
||||
core.canvas[v].canvas.style.filter = filter;
|
||||
});
|
||||
export default function init() {
|
||||
return {};
|
||||
}
|
||||
|
||||
const filterMap: [FloorIds[], string][] = [];
|
||||
|
||||
export function getCanvasFilterByFloorId(
|
||||
floorId: FloorIds = core.status.floorId
|
||||
) {
|
||||
function getCanvasFilterByFloorId(floorId: FloorIds = core.status.floorId) {
|
||||
return filterMap.find(v => v[0].includes(floorId))?.[1] ?? '';
|
||||
}
|
||||
|
||||
export function setCanvasFilterByFloorId(
|
||||
floorId: FloorIds = core.status.floorId
|
||||
) {
|
||||
setGameCanvasFilter(getCanvasFilterByFloorId(floorId));
|
||||
}
|
||||
|
||||
Mota.require('var', 'loading').once('coreInit', () => {
|
||||
filterMap.push(
|
||||
[['MT50', 'MT60', 'MT61'], 'brightness(80%)contrast(120%)'], // 童心佬的滤镜(
|
||||
[
|
||||
core.floorIds.slice(61, 70).concat(core.floorIds.slice(72)),
|
||||
'brightness(90%)contrast(120%)'
|
||||
'contrast(120%)'
|
||||
] // 童心佬的滤镜(
|
||||
);
|
||||
});
|
||||
|
||||
export class LayerGroupFilter implements ILayerGroupRenderExtends {
|
||||
id: string = 'filter';
|
||||
|
||||
group!: LayerGroup;
|
||||
binder!: LayerGroupFloorBinder;
|
||||
|
||||
setFilter(floorId: FloorIds) {
|
||||
const filter = getCanvasFilterByFloorId(floorId);
|
||||
this.group.setFilter(filter);
|
||||
// console.log(filter);
|
||||
}
|
||||
|
||||
private onFloorChange = (floor: FloorIds) => {
|
||||
this.setFilter(floor);
|
||||
};
|
||||
|
||||
private listen() {
|
||||
this.binder.on('floorChange', this.onFloorChange);
|
||||
}
|
||||
|
||||
awake(group: LayerGroup): void {
|
||||
this.group = group;
|
||||
const ex = group.getExtends('floor-binder');
|
||||
if (ex instanceof LayerGroupFloorBinder) {
|
||||
this.binder = ex;
|
||||
this.listen();
|
||||
} else {
|
||||
logger.error(
|
||||
1201,
|
||||
`Floor-damage extends needs 'floor-binder' extends as dependency.`
|
||||
);
|
||||
group.removeExtends('floor-damage');
|
||||
}
|
||||
}
|
||||
|
||||
onDestroy(group: LayerGroup): void {
|
||||
this.binder?.off('floorChange', this.onFloorChange);
|
||||
}
|
||||
}
|
||||
@@ -245,8 +245,6 @@ export class FloorItemDetail implements ILayerGroupRenderExtends {
|
||||
}
|
||||
|
||||
awake(group: LayerGroup): void {
|
||||
console.log(this);
|
||||
|
||||
this.group = group;
|
||||
|
||||
const binder = group.getExtends('floor-binder');
|
||||
|
||||
Reference in new issue
Block a user