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,
|
|
|
|
GameStateChange,
|
2024-03-07 09:45:13 -08:00
|
|
|
ScoreObjectRelease,
|
2024-03-07 03:15:08 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
export interface GameEventCallbackMap {
|
|
|
|
[GameEvent.Score]: (type: ScoreType, score: number) => void;
|
2024-03-08 03:07:41 -08:00
|
|
|
[GameEvent.BallOut]: () => void;
|
|
|
|
[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 {
|
|
|
|
[GameEvent.Score]: [ScoreType, number];
|
2024-03-08 03:07:41 -08:00
|
|
|
[GameEvent.BallOut]: null;
|
|
|
|
[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;
|