Ring with trainers' calls, rematch them and play the radio (Closes #30)
Every registered trainer's callee and caller scripts run, with the missing specials and commands (RandomPhoneWildMon, RandomUnseenWildMon, swarms, gettrainerclassname, Kenji's break, the Blue Card and Buena's password variables). Fight counts are saved, so rematches and gifts work on every open map, and the daily reset clears the phone's flags. Random calls follow CheckPhoneCall and the 20/10/5/3-minute call timer; received calls ring twice with the caller's name, and calls play their ringing, hang-up and no-signal sounds. Grass and fishing swarms use the swarm tables. The radio ports PlayRadioShow and every station frame by frame, with its music: the Pokégear's radio card tunes by knob, house radios play through MapRadio, and Buena's show takes the day's password for Blue Card points that her receptionist exchanges for prizes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
7f30c3f450
commit
7c12c81a27
21 files changed
+2021
-64
No files matched your search
@@ -5,6 +5,10 @@ import type { Direction } from "../src/game/world/types";
|
||||
* answer choices in order (default YES, the first weekday or menu item, or
|
||||
* the clock's shown value) and wait out timed
|
||||
* effects. Returns every page that was shown. */
|
||||
/** RingTwice_StartCall's pages: the caller's name box and the cleared box
|
||||
* between rings. */
|
||||
export const isRinging = (page: string) => page.startsWith("☎") || page === " ";
|
||||
|
||||
export function settle(
|
||||
world: GameWorld,
|
||||
answers: (number | string)[] = [],
|
||||
@@ -35,7 +39,8 @@ export function settle(
|
||||
: 0,
|
||||
);
|
||||
} else if (last && dialogue.holdTicks !== undefined) {
|
||||
if (page !== lastHeld) shown.push(page);
|
||||
// A received call's ringing (the caller's name box) is not text.
|
||||
if (page !== lastHeld && !isRinging(page)) shown.push(page);
|
||||
lastHeld = page;
|
||||
world.tick();
|
||||
} else {
|
||||
|
||||
Reference in new issue
Block a user