Merge branch 'hotfix-1.10.7' into fix-sturdy-message-spam

This commit is contained in:
Sirz Benjie 2025-09-07 18:37:31 -05:00 committed by GitHub
commit 85ace144df
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 35 additions and 31 deletions

View File

@ -230,6 +230,7 @@ export class EggHatchPhase extends Phase {
} else { } else {
globalScene.time.delayedCall(250, () => globalScene.setModifiersVisible(true)); globalScene.time.delayedCall(250, () => globalScene.setModifiersVisible(true));
} }
this.pokemon?.destroy();
super.end(); super.end();
} }

View File

@ -39,6 +39,10 @@ export class EggSummaryPhase extends Phase {
} }
end() { end() {
this.eggHatchData.forEach(data => {
data.pokemon?.destroy();
});
this.eggHatchData = [];
globalScene.time.delayedCall(250, () => globalScene.setModifiersVisible(true)); globalScene.time.delayedCall(250, () => globalScene.setModifiersVisible(true));
globalScene.ui.setModeForceTransition(UiMode.MESSAGE).then(() => { globalScene.ui.setModeForceTransition(UiMode.MESSAGE).then(() => {
super.end(); super.end();

View File

@ -61,12 +61,12 @@ export class TouchControl {
* event, removes the keydown state, and removes the 'active' class from the node and the last touched element. * event, removes the keydown state, and removes the 'active' class from the node and the last touched element.
*/ */
bindKey(node: HTMLElement, key: string) { bindKey(node: HTMLElement, key: string) {
node.addEventListener("touchstart", event => { node.addEventListener("pointerdown", event => {
event.preventDefault(); event.preventDefault();
this.touchButtonDown(node, key); this.touchButtonDown(node, key);
}); });
node.addEventListener("touchend", event => { node.addEventListener("pointerup", event => {
event.preventDefault(); event.preventDefault();
this.touchButtonUp(node, key, event.target?.["id"]); this.touchButtonUp(node, key, event.target?.["id"]);
}); });

View File

@ -9,9 +9,9 @@ export const TOUCH_CONTROL_POSITIONS_PORTRAIT = "touchControlPositionsPortrait";
type ControlPosition = { id: string; x: number; y: number }; type ControlPosition = { id: string; x: number; y: number };
type ConfigurationEventListeners = { type ConfigurationEventListeners = {
touchstart: EventListener[]; pointerdown: EventListener[];
touchmove: EventListener[]; pointermove: EventListener[];
touchend: EventListener[]; pointerup: EventListener[];
}; };
type ToolbarRefs = { type ToolbarRefs = {
@ -39,9 +39,9 @@ export class MoveTouchControlsHandler {
* These are used to remove the event listeners when the configuration mode is disabled. * These are used to remove the event listeners when the configuration mode is disabled.
*/ */
private configurationEventListeners: ConfigurationEventListeners = { private configurationEventListeners: ConfigurationEventListeners = {
touchstart: [], pointerdown: [],
touchmove: [], pointermove: [],
touchend: [], pointerup: [],
}; };
private overlay: Phaser.GameObjects.Container; private overlay: Phaser.GameObjects.Container;
@ -165,34 +165,33 @@ export class MoveTouchControlsHandler {
/** /**
* Start dragging the given button. * Start dragging the given button.
* @param controlGroup The button that is being dragged. * @param controlGroup The button that is being dragged.
* @param touch The touch event that started the drag. * @param event The pointer event that started the drag.
*/ */
private startDrag = (controlGroup: HTMLElement): void => { private startDrag = (controlGroup: HTMLElement): void => {
this.draggingElement = controlGroup; this.draggingElement = controlGroup;
}; };
/** /**
* Drags the currently dragged element to the given touch position. * Drags the currently dragged element to the given pointer position.
* @param touch The touch event that is currently happening. * @param event The pointer event that is currently happening.
* @param isLeft Whether the dragged element is a left button.
*/ */
private drag = (touch: Touch): void => { private drag = (event: PointerEvent): void => {
if (!this.draggingElement) { if (!this.draggingElement) {
return; return;
} }
const rect = this.draggingElement.getBoundingClientRect(); const rect = this.draggingElement.getBoundingClientRect();
// Map the touch position to the center of the dragged element. // Map the pointer position to the center of the dragged element.
const xOffset = this.isLeft(this.draggingElement) const xOffset = this.isLeft(this.draggingElement)
? touch.clientX - rect.width / 2 ? event.clientX - rect.width / 2
: window.innerWidth - touch.clientX - rect.width / 2; : window.innerWidth - event.clientX - rect.width / 2;
const yOffset = window.innerHeight - touch.clientY - rect.height / 2; const yOffset = window.innerHeight - event.clientY - rect.height / 2;
this.setPosition(this.draggingElement, xOffset, yOffset); this.setPosition(this.draggingElement, xOffset, yOffset);
}; };
/** /**
* Stops dragging the currently dragged element. * Stops dragging the currently dragged element.
*/ */
private stopDrag = () => { private stopDrag = (): void => {
this.draggingElement = null; this.draggingElement = null;
}; };
@ -303,19 +302,19 @@ export class MoveTouchControlsHandler {
*/ */
private createConfigurationEventListeners(controlGroups: HTMLDivElement[]): ConfigurationEventListeners { private createConfigurationEventListeners(controlGroups: HTMLDivElement[]): ConfigurationEventListeners {
return { return {
touchstart: controlGroups.map((element: HTMLDivElement) => { pointerdown: controlGroups.map((element: HTMLDivElement) => {
const startDrag = () => this.startDrag(element); const startDrag = () => this.startDrag(element);
element.addEventListener("touchstart", startDrag, { passive: true }); element.addEventListener("pointerdown", startDrag, { passive: true });
return startDrag; return startDrag;
}), }),
touchmove: controlGroups.map(() => { pointermove: controlGroups.map(() => {
const drag = event => this.drag(event.touches[0]); const drag = (event: PointerEvent) => this.drag(event);
window.addEventListener("touchmove", drag, { passive: true }); window.addEventListener("pointermove", drag, { passive: true });
return drag; return drag;
}), }),
touchend: controlGroups.map(() => { pointerup: controlGroups.map(() => {
const stopDrag = () => this.stopDrag(); const stopDrag = () => this.stopDrag();
window.addEventListener("touchend", stopDrag, { passive: true }); window.addEventListener("pointerup", stopDrag, { passive: true });
return stopDrag; return stopDrag;
}), }),
}; };
@ -373,12 +372,12 @@ export class MoveTouchControlsHandler {
this.draggingElement = null; this.draggingElement = null;
// Remove event listeners // Remove event listeners
const { touchstart, touchmove, touchend } = this.configurationEventListeners; const { pointerdown, pointermove, pointerup } = this.configurationEventListeners;
this.getControlGroupElements().forEach((element, index) => this.getControlGroupElements().forEach((element, index) =>
element.removeEventListener("touchstart", touchstart[index]), element.removeEventListener("pointerdown", pointerdown[index]),
); );
touchmove.forEach(listener => window.removeEventListener("touchmove", listener)); pointermove.forEach(listener => window.removeEventListener("pointermove", listener));
touchend.forEach(listener => window.removeEventListener("touchend", listener)); pointerup.forEach(listener => window.removeEventListener("pointerup", listener));
// Remove configuration toolbar // Remove configuration toolbar
const toolbar = document.querySelector("#touchControls #configToolbar"); const toolbar = document.querySelector("#touchControls #configToolbar");

View File

@ -111,7 +111,7 @@ class FakeMobile {
if (!node) { if (!node) {
return; return;
} }
const event = new Event("touchstart"); const event = new Event("pointerdown");
node.dispatchEvent(event); node.dispatchEvent(event);
} }
@ -120,7 +120,7 @@ class FakeMobile {
if (!node) { if (!node) {
return; return;
} }
const event = new Event("touchend"); const event = new Event("pointerup");
node.dispatchEvent(event); node.dispatchEvent(event);
} }
} }