[refactor] create Transport class

This commit is contained in:
evanpelle
2024-09-26 17:36:54 -07:00
parent 851e12613a
commit 2f9269fa65
4 changed files with 189 additions and 131 deletions
+5 -11
View File
@@ -1,15 +1,9 @@
import {nullable} from "zod";
import {EventBus, GameEvent} from "../../../core/EventBus";
import {AllianceExpiredEvent, AllianceRequest, AllianceRequestEvent, AllianceRequestReplyEvent, BrokeAllianceEvent, Game, Player, PlayerID} from "../../../core/game/Game";
import {AllianceExpiredEvent, AllianceRequestEvent, AllianceRequestReplyEvent, BrokeAllianceEvent, Game, Player, PlayerID} from "../../../core/game/Game";
import {ClientID} from "../../../core/Schemas";
import {Layer} from "./Layer";
export class AllianceRequestReplyUIEvent implements GameEvent {
constructor(
public readonly allianceRequest: AllianceRequest,
public readonly accepted: boolean,
) { }
}
import {SendAllianceReplyIntentEvent} from "../../Transport";
export enum MessageType {
SUCCESS,
@@ -136,18 +130,18 @@ export class EventsDisplay implements Layer {
{
text: "Accept",
className: "btn",
action: () => this.eventBus.emit(new AllianceRequestReplyUIEvent(event.allianceRequest, true)),
action: () => this.eventBus.emit(new SendAllianceReplyIntentEvent(event.allianceRequest, true)),
},
{
text: "Reject",
className: "btn btn-info",
action: () => this.eventBus.emit(new AllianceRequestReplyUIEvent(event.allianceRequest, false)),
action: () => this.eventBus.emit(new SendAllianceReplyIntentEvent(event.allianceRequest, false)),
}
],
highlight: true,
type: MessageType.INFO,
createdAt: this.game.ticks(),
onDelete: () => this.eventBus.emit(new AllianceRequestReplyUIEvent(event.allianceRequest, false))
onDelete: () => this.eventBus.emit(new SendAllianceReplyIntentEvent(event.allianceRequest, false))
});
}
+4 -18
View File
@@ -1,5 +1,5 @@
import {GameEnv, Theme} from "../../../core/configuration/Config";
import {EventBus, GameEvent} from "../../../core/EventBus";
import {EventBus} from "../../../core/EventBus";
import {WinEvent} from "../../../core/execution/WinCheckExecution";
import {AllianceRequest, AllianceRequestReplyEvent, Game, Player} from "../../../core/game/Game";
import {ClientID} from "../../../core/Schemas";
@@ -7,21 +7,7 @@ import {ContextMenuEvent} from "../../InputHandler";
import {Layer} from "./Layer";
import {TransformHandler} from "../TransformHandler";
import {MessageType} from "./EventsDisplay";
export class SendAllianceRequestUIEvent implements GameEvent {
constructor(
public readonly requestor: Player,
public readonly recipient: Player
) { }
}
export class SendBreakAllianceUIEvent implements GameEvent {
constructor(
public readonly requestor: Player,
public readonly recipient: Player
) { }
}
import {SendAllianceRequestIntentEvent, SendBreakAllianceIntentEvent} from "../../Transport";
interface MenuOption {
label: string;
@@ -265,7 +251,7 @@ export class UILayer implements Layer {
label: "Break Alliance",
action: (): void => {
this.eventBus.emit(
new SendBreakAllianceUIEvent(myPlayer, owner)
new SendBreakAllianceIntentEvent(myPlayer, owner)
)
},
})
@@ -274,7 +260,7 @@ export class UILayer implements Layer {
label: "Request Alliance",
action: (): void => {
this.eventBus.emit(
new SendAllianceRequestUIEvent(myPlayer, owner)
new SendAllianceRequestIntentEvent(myPlayer, owner)
)
this.game.displayMessage(`sending alliance request to ${owner.name()}`, MessageType.INFO, myPlayer.id())
},