feat: add narrative page turn audio cue
This commit is contained in:
@@ -19,6 +19,7 @@ const requiredTacticalCueKeys = [
|
||||
'objective-success',
|
||||
'objective-failure'
|
||||
];
|
||||
const requiredNarrativeCueKeys = ['story-page-turn'];
|
||||
const requiredBattleSceneAudioMethods = [
|
||||
'playSoundscape',
|
||||
'playAllyTurnCue',
|
||||
@@ -49,6 +50,20 @@ const battlefieldSourceRecords = [
|
||||
source: 'https://pixabay.com/sound-effects/film-special-effects-failure-1-89170/'
|
||||
}
|
||||
];
|
||||
const narrativeSourceRecord = {
|
||||
projectFile: 'src/assets/audio/sfx/story-page-turn.mp3',
|
||||
source: 'https://pixabay.com/sound-effects/film-special-effects-flipping-book-page-499646/',
|
||||
requiredDocumentation: [
|
||||
'2026-07-22',
|
||||
'Flipping Book Page',
|
||||
'DRAGON-STUDIO',
|
||||
'48 kHz stereo MP3',
|
||||
'1.0-second',
|
||||
'silence-trimmed',
|
||||
'fade-in/out',
|
||||
'high-pass and low-pass filtered'
|
||||
]
|
||||
};
|
||||
|
||||
const server = await createServer({
|
||||
logLevel: 'error',
|
||||
@@ -69,7 +84,9 @@ try {
|
||||
validateTrackMap(errors, 'effect', effectTracks, 'sfx');
|
||||
validateRequiredTrackKeys(errors, 'battlefield ambience', ambienceTracks, requiredBattlefieldAmbienceKeys);
|
||||
validateRequiredTrackKeys(errors, 'tactical cue', effectTracks, requiredTacticalCueKeys);
|
||||
validateRequiredTrackKeys(errors, 'narrative cue', effectTracks, requiredNarrativeCueKeys);
|
||||
validateBattlefieldSourceDocumentation(errors);
|
||||
validateNarrativeSourceDocumentation(errors);
|
||||
validateBattleSceneAudioIntegration(errors);
|
||||
validateEffectPools(errors, effectPools, effectTracks);
|
||||
validateEffectPoolRegistration(errors, effectPools);
|
||||
@@ -145,6 +162,21 @@ function validateBattlefieldSourceDocumentation(errors) {
|
||||
});
|
||||
}
|
||||
|
||||
function validateNarrativeSourceDocumentation(errors) {
|
||||
const docs = readFileSync(join('docs', 'audio-sources.md'), 'utf8');
|
||||
if (!docs.includes(narrativeSourceRecord.projectFile)) {
|
||||
errors.push(`docs/audio-sources.md is missing narrative audio file "${narrativeSourceRecord.projectFile}"`);
|
||||
}
|
||||
if (!docs.includes(narrativeSourceRecord.source)) {
|
||||
errors.push(`docs/audio-sources.md is missing Pixabay source "${narrativeSourceRecord.source}"`);
|
||||
}
|
||||
narrativeSourceRecord.requiredDocumentation.forEach((value) => {
|
||||
if (!docs.includes(value)) {
|
||||
errors.push(`docs/audio-sources.md is missing narrative audio detail "${value}"`);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function validateBattleSceneAudioIntegration(errors) {
|
||||
const path = join('src', 'game', 'scenes', 'BattleScene.ts');
|
||||
const source = readFileSync(path, 'utf8');
|
||||
|
||||
Reference in New Issue
Block a user