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

53 lines
1.8 KiB
TypeScript
Raw Normal View History

2024-04-04 04:27:04 -07:00
import { Node, Vec3 } from 'cc';
2024-03-27 04:00:23 -07:00
import BoosterType from '../Enum/BoosterType';
2024-04-05 01:09:19 -07:00
import ControllerSide from '../Enum/ControllerSide';
2024-05-27 02:19:31 -07:00
import GameState from '../Enum/GameState';
import ScoreType from '../Enum/ScoreType';
2024-03-07 03:15:08 -08:00
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-27 04:00:23 -07:00
ObjectRelease,
BoosterActive,
BoosterDisable,
2024-03-28 20:35:44 -07:00
ControlTouchStart,
ControlTouchEnd,
2024-04-21 19:04:58 -07:00
WarningTime,
2024-04-26 00:48:20 -07:00
TicketUpdate,
2024-03-07 03:15:08 -08:00
}
export interface GameEventCallbackMap {
2024-04-04 04:27:04 -07:00
[GameEvent.Score]: (score: number, points?: number, type?: ScoreType, position?: Vec3) => 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-27 04:00:23 -07:00
[GameEvent.ObjectRelease]: (obj: Node) => void;
[GameEvent.BoosterActive]: (boosterType: BoosterType, displayName: string) => void;
2024-03-28 20:35:44 -07:00
[GameEvent.BoosterDisable]: (boosterType: BoosterType) => void;
[GameEvent.ControlTouchStart]: (touchSide: ControllerSide) => void;
[GameEvent.ControlTouchEnd]: (touchSide: ControllerSide) => void;
2024-04-21 19:04:58 -07:00
[GameEvent.WarningTime]: (warning: boolean) => void;
2024-04-26 00:48:20 -07:00
[GameEvent.TicketUpdate]: (ticket: number) => void;
2024-03-07 03:15:08 -08:00
}
export interface GameEventArgMap {
2024-04-04 04:27:04 -07:00
[GameEvent.Score]: [number, number, ScoreType, Vec3];
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-27 04:00:23 -07:00
[GameEvent.ObjectRelease]: Node;
[GameEvent.BoosterActive]: [BoosterType, string];
2024-03-27 04:00:23 -07:00
[GameEvent.BoosterDisable]: BoosterType;
2024-03-28 20:35:44 -07:00
[GameEvent.ControlTouchStart]: ControllerSide;
[GameEvent.ControlTouchEnd]: ControllerSide;
2024-04-21 19:04:58 -07:00
[GameEvent.WarningTime]: boolean;
2024-04-26 00:48:20 -07:00
[GameEvent.TicketUpdate]: number;
2024-03-07 03:15:08 -08:00
}
export default GameEvent;