pinball/assets/_Game/Scripts/Events/GameEvent.ts

33 lines
901 B
TypeScript
Raw Normal View History

2024-03-07 09:45:13 -08:00
import { Node } from 'cc';
2024-03-07 03:15:08 -08:00
import GameState from '../Enum/GameState';
import ScoreType from '../Enum/ScoreType';
enum GameEvent {
Score,
2024-03-08 03:07:41 -08:00
BallOut,
2024-03-10 03:12:55 -07:00
MultiBall,
2024-03-12 01:50:54 -07:00
TimeUpdate,
2024-03-08 03:07:41 -08:00
GameStateChange,
2024-03-07 09:45:13 -08:00
ScoreObjectRelease,
2024-03-07 03:15:08 -08:00
}
export interface GameEventCallbackMap {
2024-03-10 03:12:55 -07:00
[GameEvent.Score]: (score: number, type?: ScoreType) => void;
2024-03-12 01:50:54 -07:00
[GameEvent.BallOut]: () => void;
2024-03-10 03:12:55 -07:00
[GameEvent.MultiBall]: (active: boolean) => void;
2024-03-12 01:50:54 -07:00
[GameEvent.TimeUpdate]: (time: number) => void;
2024-03-08 03:07:41 -08:00
[GameEvent.GameStateChange]: (state: GameState) => void;
2024-03-07 09:45:13 -08:00
[GameEvent.ScoreObjectRelease]: (obj: Node) => void;
2024-03-07 03:15:08 -08:00
}
export interface GameEventArgMap {
2024-03-10 03:12:55 -07:00
[GameEvent.Score]: [number, ScoreType];
2024-03-12 01:50:54 -07:00
[GameEvent.BallOut]: null;
2024-03-10 03:12:55 -07:00
[GameEvent.MultiBall]: boolean;
2024-03-12 01:50:54 -07:00
[GameEvent.TimeUpdate]: number;
2024-03-08 03:07:41 -08:00
[GameEvent.GameStateChange]: GameState;
2024-03-07 09:45:13 -08:00
[GameEvent.ScoreObjectRelease]: Node;
2024-03-07 03:15:08 -08:00
}
export default GameEvent;