From 8c4a474c4966b077521c8e87c2a7c5b9bccabc5e Mon Sep 17 00:00:00 2001 From: Tom <20648924+moT01@users.noreply.github.com> Date: Wed, 21 May 2025 01:09:42 -0500 Subject: [PATCH] feat(client): add spanish characters for animations (#60353) Co-authored-by: Nielda Karla <90112119+nieldakarla@users.noreply.github.com> --- client/src/redux/prop-types.ts | 22 +- .../components/scene/scene-assets.tsx | 398 +++++++++--------- curriculum/schema/scene-assets.js | 22 +- 3 files changed, 235 insertions(+), 207 deletions(-) diff --git a/client/src/redux/prop-types.ts b/client/src/redux/prop-types.ts index 1dc7e68f0f7..1c8851a4ba3 100644 --- a/client/src/redux/prop-types.ts +++ b/client/src/redux/prop-types.ts @@ -96,6 +96,7 @@ interface SceneCommand { } export type Characters = + // English | 'Alice' | 'Amy' | 'Anna' @@ -118,7 +119,26 @@ export type Characters = | 'Sarah' | 'Second Candidate' | 'Sophie' - | 'Tom'; + | 'Tom' + + // Spanish + | 'Alex' + | 'Ángela' + | 'Camila' + | 'Carlos' + | 'Elena' + | 'Esteban' + | 'Joaquín' + | 'Julieta' + | 'Luis' + | 'Luna' + | 'Marisol' + | 'Mateo' + | 'Noelia' + | 'René' + | 'Sebastián' + | 'Diego' + | 'Valeria'; interface SetupCharacter { character: Characters; diff --git a/client/src/templates/Challenges/components/scene/scene-assets.tsx b/client/src/templates/Challenges/components/scene/scene-assets.tsx index e5e724d1fe0..f6750819c32 100644 --- a/client/src/templates/Challenges/components/scene/scene-assets.tsx +++ b/client/src/templates/Challenges/components/scene/scene-assets.tsx @@ -7,236 +7,224 @@ const images = `${domain}/images`; export const backgrounds = `${images}/backgrounds`; export const characters = `${images}/characters`; -const alice = `${characters}/alice`; -const anna = `${characters}/anna`; -const bob = `${characters}/bob`; -const brian = `${characters}/brian`; -const candidate = `${characters}/npc`; -const david = `${characters}/david`; -const expert = `${characters}/npc`; -const jake = `${characters}/jake`; -const james = `${characters}/james`; -const linda = `${characters}/linda`; -const lisa = `${characters}/lisa`; -const maria = `${characters}/maria`; -const sarah = `${characters}/sarah`; -const secondCandidate = `${characters}/npc`; -const sophie = `${characters}/sophie`; -const tom = `${characters}/tom`; -const mark = `${characters}/npc`; -const amy = `${characters}/npc`; -const deliveryMan = `${characters}/npc`; -const jessica = `${characters}/npc`; -const jim = `${characters}/npc`; -const josh = `${characters}/npc`; -const riker = `${characters}/npc`; +// All the character folders on our CDN. Do not add to this unless we add more characters there. +const character = { + alice: `${characters}/alice`, + anna: `${characters}/anna`, + bob: `${characters}/bob`, + brian: `${characters}/brian`, + david: `${characters}/david`, + jake: `${characters}/jake`, + james: `${characters}/james`, + linda: `${characters}/linda`, + lisa: `${characters}/lisa`, + maria: `${characters}/maria`, + npc: `${characters}/npc`, + sarah: `${characters}/sarah`, + sophie: `${characters}/sophie`, + tom: `${characters}/tom` +}; -export const characterAssets = { - Alice: { - base: `${alice}/base.png`, - brows: `${alice}/brows-neutral.png`, - eyesClosed: `${alice}/eyes-closed.png`, - eyesOpen: `${alice}/eyes-open.png`, +// All the available characters on our CDN. Do not add to this unless we add more characters there. +const characterImages = { + alice: { + base: `${character.alice}/base.png`, + brows: `${character.alice}/brows-neutral.png`, + eyesClosed: `${character.alice}/eyes-closed.png`, + eyesOpen: `${character.alice}/eyes-open.png`, glasses: null, - mouthClosed: `${alice}/mouth-smile.png`, - mouthOpen: `${alice}/mouth-laugh.png` + mouthClosed: `${character.alice}/mouth-smile.png`, + mouthOpen: `${character.alice}/mouth-laugh.png` }, - Amy: { - base: `${amy}/girl-base.png`, - brows: `${amy}/girl-base.png`, - eyesClosed: `${amy}/girl-eyes-closed.png`, - eyesOpen: `${amy}/girl-eyes-open.png`, + anna: { + base: `${character.anna}/base.png`, + brows: `${character.anna}/brows-normal.png`, + eyesClosed: `${character.anna}/eyes-closed.png`, + eyesOpen: `${character.anna}/eyes-open.png`, glasses: null, - mouthClosed: `${amy}/girl-mouth-smile.png`, - mouthOpen: `${amy}/girl-mouth-laugh.png` + mouthClosed: `${character.anna}/mouth-smile.png`, + mouthOpen: `${character.anna}/mouth-laugh.png` }, - Anna: { - base: `${anna}/base.png`, - brows: `${anna}/brows-normal.png`, - eyesClosed: `${anna}/eyes-closed.png`, - eyesOpen: `${anna}/eyes-open.png`, + bob: { + base: `${character.bob}/base.png`, + brows: `${character.bob}/brows-neutral.png`, + eyesClosed: `${character.bob}/eyes-closed.png`, + eyesOpen: `${character.bob}/eyes-open.png`, glasses: null, - mouthClosed: `${anna}/mouth-smile.png`, - mouthOpen: `${anna}/mouth-laugh.png` + mouthClosed: `${character.bob}/mouth-smile.png`, + mouthOpen: `${character.bob}/mouth-laugh.png` }, - Bob: { - base: `${bob}/base.png`, - brows: `${bob}/brows-neutral.png`, - eyesClosed: `${bob}/eyes-closed.png`, - eyesOpen: `${bob}/eyes-open.png`, + brian: { + base: `${character.brian}/base.png`, + brows: `${character.brian}/brows-neutral.png`, + eyesClosed: `${character.brian}/eyes-closed.png`, + eyesOpen: `${character.brian}/eyes-open.png`, + glasses: `${character.brian}/glasses.png`, + mouthClosed: `${character.brian}/mouth-smile.png`, + mouthOpen: `${character.brian}/mouth-laugh.png` + }, + david: { + base: `${character.david}/base.png`, + brows: `${character.david}/brows-neutral.png`, + eyesClosed: `${character.david}/eyes-closed.png`, + eyesOpen: `${character.david}/eyes-open.png`, glasses: null, - mouthClosed: `${bob}/mouth-smile.png`, - mouthOpen: `${bob}/mouth-laugh.png` + mouthClosed: `${character.david}/mouth-smile.png`, + mouthOpen: `${character.david}/mouth-laugh.png` }, - Brian: { - base: `${brian}/base.png`, - brows: `${brian}/brows-neutral.png`, - eyesClosed: `${brian}/eyes-closed.png`, - eyesOpen: `${brian}/eyes-open.png`, - glasses: `${brian}/glasses.png`, - mouthClosed: `${brian}/mouth-smile.png`, - mouthOpen: `${brian}/mouth-laugh.png` - }, - Candidate: { - base: `${candidate}/boy-base.png`, - brows: `${candidate}/boy-base.png`, - eyesClosed: `${candidate}/boy-eyes-closed.png`, - eyesOpen: `${candidate}/boy-eyes-open.png`, + jake: { + base: `${character.jake}/base.png`, + brows: `${character.jake}/brows.png`, + eyesClosed: `${character.jake}/eyes-closed.png`, + eyesOpen: `${character.jake}/eyes-open.png`, glasses: null, - mouthClosed: `${candidate}/boy-mouth-smile.png`, - mouthOpen: `${candidate}/boy-mouth-laugh.png` + mouthClosed: `${character.jake}/mouth-smile.png`, + mouthOpen: `${character.jake}/mouth-laugh.png` }, - David: { - base: `${david}/base.png`, - brows: `${david}/brows-neutral.png`, - eyesClosed: `${david}/eyes-closed.png`, - eyesOpen: `${david}/eyes-open.png`, + james: { + base: `${character.james}/base.png`, + brows: `${character.james}/brows-neutral.png`, + eyesClosed: `${character.james}/eyes-closed.png`, + eyesOpen: `${character.james}/eyes-open.png`, + glasses: `${character.james}/glasses.png`, + mouthClosed: `${character.james}/mouth-smile.png`, + mouthOpen: `${character.james}/mouth-laugh.png` + }, + linda: { + base: `${character.linda}/base.png`, + brows: `${character.linda}/brows-neutral.png`, + eyesClosed: `${character.linda}/eyes-closed.png`, + eyesOpen: `${character.linda}/eyes-open.png`, glasses: null, - mouthClosed: `${david}/mouth-smile.png`, - mouthOpen: `${david}/mouth-laugh.png` + mouthClosed: `${character.linda}/mouth-smile.png`, + mouthOpen: `${character.linda}/mouth-laugh.png` }, - 'Delivery Man': { - base: `${deliveryMan}/man-base.png`, - brows: `${deliveryMan}/man-base.png`, - eyesClosed: `${deliveryMan}/man-eyes-closed.png`, - eyesOpen: `${deliveryMan}/man-eyes-open.png`, + lisa: { + base: `${character.lisa}/base.png`, + brows: `${character.lisa}/brows-neutral.png`, + eyesClosed: `${character.lisa}/eyes-closed.png`, + eyesOpen: `${character.lisa}/eyes-open.png`, glasses: null, - mouthClosed: `${deliveryMan}/man-mouth-smile.png`, - mouthOpen: `${deliveryMan}/man-mouth-laugh.png` + mouthClosed: `${character.lisa}/mouth-smile.png`, + mouthOpen: `${character.lisa}/mouth-laugh.png` }, - Expert: { - base: `${expert}/man-base.png`, - brows: `${expert}/man-base.png`, - eyesClosed: `${expert}/man-eyes-closed.png`, - eyesOpen: `${expert}/man-eyes-open.png`, + maria: { + base: `${character.maria}/base.png`, + brows: `${character.maria}/brows-normal.png`, + eyesClosed: `${character.maria}/eyes-closed.png`, + eyesOpen: `${character.maria}/eyes-open.png`, + glasses: `${character.maria}/glasses.png`, + mouthClosed: `${character.maria}/mouth-smile.png`, + mouthOpen: `${character.maria}/mouth-laugh.png` + }, + npcBoy: { + base: `${character.npc}/boy-base.png`, + brows: `${character.npc}/boy-base.png`, + eyesClosed: `${character.npc}/boy-eyes-closed.png`, + eyesOpen: `${character.npc}/boy-eyes-open.png`, glasses: null, - mouthClosed: `${expert}/man-mouth-smile.png`, - mouthOpen: `${expert}/man-mouth-laugh.png` + mouthClosed: `${character.npc}/boy-mouth-smile.png`, + mouthOpen: `${character.npc}/boy-mouth-laugh.png` }, - Jake: { - base: `${jake}/base.png`, - brows: `${jake}/brows.png`, - eyesClosed: `${jake}/eyes-closed.png`, - eyesOpen: `${jake}/eyes-open.png`, + npcGirl: { + base: `${character.npc}/girl-base.png`, + brows: `${character.npc}/girl-base.png`, + eyesClosed: `${character.npc}/girl-eyes-closed.png`, + eyesOpen: `${character.npc}/girl-eyes-open.png`, glasses: null, - mouthClosed: `${jake}/mouth-smile.png`, - mouthOpen: `${jake}/mouth-laugh.png` + mouthClosed: `${character.npc}/girl-mouth-smile.png`, + mouthOpen: `${character.npc}/girl-mouth-laugh.png` }, - James: { - base: `${james}/base.png`, - brows: `${james}/brows-neutral.png`, - eyesClosed: `${james}/eyes-closed.png`, - eyesOpen: `${james}/eyes-open.png`, - glasses: `${james}/glasses.png`, - mouthClosed: `${james}/mouth-smile.png`, - mouthOpen: `${james}/mouth-laugh.png` - }, - Jessica: { - base: `${jessica}/woman-base.png`, - brows: `${jessica}/woman-base.png`, - eyesClosed: `${jessica}/woman-eyes-closed.png`, - eyesOpen: `${jessica}/woman-eyes-open.png`, + npcMan: { + base: `${character.npc}/man-base.png`, + brows: `${character.npc}/man-base.png`, + eyesClosed: `${character.npc}/man-eyes-closed.png`, + eyesOpen: `${character.npc}/man-eyes-open.png`, glasses: null, - mouthClosed: `${jessica}/woman-mouth-smile.png`, - mouthOpen: `${jessica}/woman-mouth-laugh.png` + mouthClosed: `${character.npc}/man-mouth-smile.png`, + mouthOpen: `${character.npc}/man-mouth-laugh.png` }, - Jim: { - base: `${jim}/man-base.png`, - brows: `${jim}/man-base.png`, - eyesClosed: `${jim}/man-eyes-closed.png`, - eyesOpen: `${jim}/man-eyes-open.png`, + npcWoman: { + base: `${character.npc}/woman-base.png`, + brows: `${character.npc}/woman-base.png`, + eyesClosed: `${character.npc}/woman-eyes-closed.png`, + eyesOpen: `${character.npc}/woman-eyes-open.png`, glasses: null, - mouthClosed: `${jim}/man-mouth-smile.png`, - mouthOpen: `${jim}/man-mouth-laugh.png` + mouthClosed: `${character.npc}/woman-mouth-smile.png`, + mouthOpen: `${character.npc}/woman-mouth-laugh.png` }, - Josh: { - base: `${josh}/man-base.png`, - brows: `${josh}/man-base.png`, - eyesClosed: `${josh}/man-eyes-closed.png`, - eyesOpen: `${josh}/man-eyes-open.png`, + sarah: { + base: `${character.sarah}/base.png`, + brows: `${character.sarah}/brows-normal.png`, + eyesClosed: `${character.sarah}/eyes-closed.png`, + eyesOpen: `${character.sarah}/eyes-open.png`, glasses: null, - mouthClosed: `${josh}/man-mouth-smile.png`, - mouthOpen: `${josh}/man-mouth-laugh.png` + mouthClosed: `${character.sarah}/mouth-smile.png`, + mouthOpen: `${character.sarah}/mouth-laugh.png` }, - Linda: { - base: `${linda}/base.png`, - brows: `${linda}/brows-neutral.png`, - eyesClosed: `${linda}/eyes-closed.png`, - eyesOpen: `${linda}/eyes-open.png`, + sophie: { + base: `${character.sophie}/base.png`, + brows: `${character.sophie}/brows-neutral.png`, + eyesClosed: `${character.sophie}/eyes-closed.png`, + eyesOpen: `${character.sophie}/eyes-open.png`, + glasses: `${character.sophie}/glasses.png`, + mouthClosed: `${character.sophie}/mouth-smile.png`, + mouthOpen: `${character.sophie}/mouth-laugh.png` + }, + tom: { + base: `${character.tom}/base.png`, + brows: `${character.tom}/brows-normal.png`, + eyesClosed: `${character.tom}/eyes-closed.png`, + eyesOpen: `${character.tom}/eyes-open.png`, glasses: null, - mouthClosed: `${linda}/mouth-smile.png`, - mouthOpen: `${linda}/mouth-laugh.png` - }, - Lisa: { - base: `${lisa}/base.png`, - brows: `${lisa}/brows-neutral.png`, - eyesClosed: `${lisa}/eyes-closed.png`, - eyesOpen: `${lisa}/eyes-open.png`, - glasses: null, - mouthClosed: `${lisa}/mouth-smile.png`, - mouthOpen: `${lisa}/mouth-laugh.png` - }, - Maria: { - base: `${maria}/base.png`, - brows: `${maria}/brows-normal.png`, - eyesClosed: `${maria}/eyes-closed.png`, - eyesOpen: `${maria}/eyes-open.png`, - glasses: `${maria}/glasses.png`, - mouthClosed: `${maria}/mouth-smile.png`, - mouthOpen: `${maria}/mouth-laugh.png` - }, - Mark: { - base: `${mark}/boy-base.png`, - brows: `${mark}/boy-base.png`, - eyesClosed: `${mark}/boy-eyes-closed.png`, - eyesOpen: `${mark}/boy-eyes-open.png`, - glasses: null, - mouthClosed: `${mark}/boy-mouth-smile.png`, - mouthOpen: `${mark}/boy-mouth-laugh.png` - }, - Riker: { - base: `${riker}/man-base.png`, - brows: `${riker}/man-base.png`, - eyesClosed: `${riker}/man-eyes-closed.png`, - eyesOpen: `${riker}/man-eyes-open.png`, - glasses: null, - mouthClosed: `${riker}/man-mouth-smile.png`, - mouthOpen: `${riker}/man-mouth-laugh.png` - }, - Sarah: { - base: `${sarah}/base.png`, - brows: `${sarah}/brows-normal.png`, - eyesClosed: `${sarah}/eyes-closed.png`, - eyesOpen: `${sarah}/eyes-open.png`, - glasses: null, - mouthClosed: `${sarah}/mouth-smile.png`, - mouthOpen: `${sarah}/mouth-laugh.png` - }, - 'Second Candidate': { - base: `${secondCandidate}/man-base.png`, - brows: `${secondCandidate}/man-base.png`, - eyesClosed: `${secondCandidate}/man-eyes-closed.png`, - eyesOpen: `${secondCandidate}/man-eyes-open.png`, - glasses: null, - mouthClosed: `${secondCandidate}/man-mouth-smile.png`, - mouthOpen: `${secondCandidate}/man-mouth-laugh.png` - }, - Sophie: { - base: `${sophie}/base.png`, - brows: `${sophie}/brows-neutral.png`, - eyesClosed: `${sophie}/eyes-closed.png`, - eyesOpen: `${sophie}/eyes-open.png`, - glasses: `${sophie}/glasses.png`, - mouthClosed: `${sophie}/mouth-smile.png`, - mouthOpen: `${sophie}/mouth-laugh.png` - }, - Tom: { - base: `${tom}/base.png`, - brows: `${tom}/brows-normal.png`, - eyesClosed: `${tom}/eyes-closed.png`, - eyesOpen: `${tom}/eyes-open.png`, - glasses: null, - mouthClosed: `${tom}/mouth-smile.png`, - mouthOpen: `${tom}/mouth-laugh.png` + mouthClosed: `${character.tom}/mouth-smile.png`, + mouthOpen: `${character.tom}/mouth-laugh.png` } }; + +// Add new characters here +export const characterAssets = { + // English + Alice: characterImages.alice, + Amy: characterImages.npcGirl, + Anna: characterImages.anna, + Bob: characterImages.bob, + Brian: characterImages.brian, + Candidate: characterImages.npcBoy, + David: characterImages.david, + 'Delivery Man': characterImages.npcMan, + Expert: characterImages.npcMan, + Jake: characterImages.jake, + James: characterImages.james, + Jessica: characterImages.npcWoman, + Jim: characterImages.npcMan, + Josh: characterImages.npcMan, + Linda: characterImages.linda, + Lisa: characterImages.lisa, + Maria: characterImages.maria, + Mark: characterImages.npcBoy, + Riker: characterImages.npcMan, + Sarah: characterImages.sarah, + 'Second Candidate': characterImages.npcMan, + Sophie: characterImages.sophie, + Tom: characterImages.tom, + + // Spanish + Alex: characterImages.npcGirl, + Ángela: characterImages.sarah, + Camila: characterImages.sophie, + Carlos: characterImages.brian, + Elena: characterImages.anna, + Esteban: characterImages.james, + Joaquín: characterImages.jake, + Julieta: characterImages.maria, + Luis: characterImages.bob, + Luna: characterImages.lisa, + Marisol: characterImages.linda, + Mateo: characterImages.npcBoy, + Noelia: characterImages.npcWoman, + René: characterImages.npcMan, + Sebastián: characterImages.david, + Diego: characterImages.tom, + Valeria: characterImages.alice +}; diff --git a/curriculum/schema/scene-assets.js b/curriculum/schema/scene-assets.js index 777128f405b..1249ce1a43e 100644 --- a/curriculum/schema/scene-assets.js +++ b/curriculum/schema/scene-assets.js @@ -1,4 +1,5 @@ const availableCharacters = [ + // English 'Alice', 'Amy', 'Anna', @@ -21,7 +22,26 @@ const availableCharacters = [ 'Sarah', 'Second Candidate', 'Sophie', - 'Tom' + 'Tom', + + // Spanish + 'Alex', + 'Ángela', + 'Camila', + 'Carlos', + 'Elena', + 'Esteban', + 'Joaquín', + 'Julieta', + 'Luis', + 'Luna', + 'Marisol', + 'Mateo', + 'Noelia', + 'René', + 'Sebastián', + 'Diego', + 'Valeria' ]; const availableBackgrounds = [