Compare commits

...

2 Commits

Author SHA1 Message Date
JiWoong Sul
c8a24b4ac0 refactor(i18n): 번역 및 설정 데이터 정리
- game_translations_ko/ja: 종족명 번역 업데이트
- pq_config_data: 설정 데이터 동기화
2025-12-31 15:19:00 +09:00
JiWoong Sul
47bd2d4aaf refactor(data): 종족 데이터 및 캐릭터 프레임 정리
- race_data: 종족 정보 구조 개선
- race_character_frames: 애니메이션 프레임 매핑 업데이트
2025-12-31 15:18:52 +09:00
5 changed files with 84 additions and 84 deletions

View File

@@ -42,14 +42,14 @@ const Map<String, String> raceTranslationsJa = {
'Kernel Giant': 'カーネルジャイアント', 'Kernel Giant': 'カーネルジャイアント',
'Thread Spirit': 'スレッドスピリット', 'Thread Spirit': 'スレッドスピリット',
'Coredump Undead': 'コアダンプアンデッド', 'Coredump Undead': 'コアダンプアンデッド',
'Flag Knight': 'フラグナイト', 'Flag Golem': 'フラグゴーレム',
'Loop Wizard': 'ループウィザード', 'Loop Djinn': 'ループジン',
'Recursive Sage': 'リカーシブセイジ', 'Recursive Sylvan': 'リカーシブシルヴァン',
'Iterator Rogue': 'イテレーターローグ', 'Iterator Shade': 'イテレーターシェイド',
'Callback Priest': 'コールバックプリースト', 'Callback Seraph': 'コールバックセラフ',
'Lambda Druid': 'ラムダドルイ', 'Lambda Dryad': 'ラムダドライア',
'Protocol Paladin': 'プロトコルパラディン', 'Protocol Valkyrie': 'プロトコルヴァルキリー',
'Index Ranger': 'インデックスレンジャー', 'Index Feline': 'インデックスフェライン',
}; };
/// 職業名日本語翻訳 /// 職業名日本語翻訳

View File

@@ -42,14 +42,14 @@ const Map<String, String> raceTranslationsKo = {
'Kernel Giant': '커널 거인', 'Kernel Giant': '커널 거인',
'Thread Spirit': '스레드 정령', 'Thread Spirit': '스레드 정령',
'Coredump Undead': '코어덤프 언데드', 'Coredump Undead': '코어덤프 언데드',
'Flag Knight': '플래그 기사', 'Flag Golem': '플래그 골렘',
'Loop Wizard': '루프 마법사', 'Loop Djinn': '루프 ',
'Recursive Sage': '재귀 현자', 'Recursive Sylvan': '재귀 실반',
'Iterator Rogue': '이터레이터 도적', 'Iterator Shade': '이터레이터 셰이드',
'Callback Priest': '콜백 사제', 'Callback Seraph': '콜백 세라핌',
'Lambda Druid': '람다 드루이', 'Lambda Dryad': '람다 드라이어',
'Protocol Paladin': '프로토콜 성기사', 'Protocol Valkyrie': '프로토콜 발키리',
'Index Ranger': '인덱스 레인저', 'Index Feline': '인덱스 펠라인',
}; };
/// 직업 이름 한국어 번역 /// 직업 이름 한국어 번역

View File

@@ -740,14 +740,14 @@ const Map<String, List<String>> pqConfigData = {
'Kernel Giant|STR,HP Max', 'Kernel Giant|STR,HP Max',
'Thread Spirit|MP Max', 'Thread Spirit|MP Max',
'Coredump Undead|CON', 'Coredump Undead|CON',
'Flag Knight|CHA,STR', 'Flag Golem|CHA,STR',
'Loop Wizard|INT,MP Max', 'Loop Djinn|INT,MP Max',
'Recursive Sage|WIS,INT', 'Recursive Sylvan|WIS,INT',
'Iterator Rogue|DEX', 'Iterator Shade|DEX',
'Callback Priest|WIS,CHA', 'Callback Seraph|WIS,CHA',
'Lambda Druid|INT,WIS', 'Lambda Dryad|INT,WIS',
'Protocol Paladin|STR,CHA', 'Protocol Valkyrie|STR,CHA',
'Index Ranger|DEX,CON', 'Index Feline|DEX,CON',
], ],
'Shields': [ 'Shields': [
'CAPTCHA|0', 'CAPTCHA|0',

View File

@@ -71,11 +71,11 @@ class RaceData {
], ],
); );
/// Recursive Sage: 순수 마법형 (스탯 합계: 0) /// Recursive Sylvan: 순수 마법형 (스탯 합계: 0)
/// WIS/INT +2, STR -2, DEX -1, CHA +1 /// WIS/INT +2, STR -2, DEX -1, CHA +1
static const recursiveSage = RaceTraits( static const recursiveSylvan = RaceTraits(
raceId: 'recursive_sage', raceId: 'recursive_sylvan',
name: 'Recursive Sage', name: 'Recursive Sylvan',
statModifiers: { statModifiers: {
StatType.wis: 2, StatType.wis: 2,
StatType.intelligence: 2, StatType.intelligence: 2,
@@ -92,11 +92,11 @@ class RaceData {
], ],
); );
/// Callback Priest: 지원형 (스탯 합계: 0) /// Callback Seraph: 지원형 (스탯 합계: 0)
/// WIS +2, CHA +1, STR -1, DEX -1, CON -1 /// WIS +2, CHA +1, STR -1, DEX -1, CON -1
static const callbackPriest = RaceTraits( static const callbackSeraph = RaceTraits(
raceId: 'callback_priest', raceId: 'callback_seraph',
name: 'Callback Priest', name: 'Callback Seraph',
statModifiers: { statModifiers: {
StatType.wis: 2, StatType.wis: 2,
StatType.cha: 1, StatType.cha: 1,
@@ -202,11 +202,11 @@ class RaceData {
], ],
); );
/// Iterator Rogue: 암살형 (스탯 합계: 0) /// Iterator Shade: 암살형 (스탯 합계: 0)
/// DEX +3, STR +1, CON -2, WIS -1, CHA -1 /// DEX +3, STR +1, CON -2, WIS -1, CHA -1
static const iteratorRogue = RaceTraits( static const iteratorShade = RaceTraits(
raceId: 'iterator_rogue', raceId: 'iterator_shade',
name: 'Iterator Rogue', name: 'Iterator Shade',
statModifiers: { statModifiers: {
StatType.dex: 3, StatType.dex: 3,
StatType.str: 1, StatType.str: 1,
@@ -247,11 +247,11 @@ class RaceData {
], ],
); );
/// Flag Knight: 전사형 (스탯 합계: 0) /// Flag Golem: 전사형 (스탯 합계: 0)
/// STR +2, CHA +1, INT -2, WIS -1 /// STR +2, CHA +1, INT -2, WIS -1
static const flagKnight = RaceTraits( static const flagGolem = RaceTraits(
raceId: 'flag_knight', raceId: 'flag_golem',
name: 'Flag Knight', name: 'Flag Golem',
statModifiers: { statModifiers: {
StatType.str: 2, StatType.str: 2,
StatType.cha: 1, StatType.cha: 1,
@@ -267,11 +267,11 @@ class RaceData {
], ],
); );
/// Protocol Paladin: 수호자형 (스탯 합계: 0) /// Protocol Valkyrie: 수호자형 (스탯 합계: 0)
/// STR +2, CON +1, CHA +1, DEX -2, INT -2 /// STR +2, CON +1, CHA +1, DEX -2, INT -2
static const protocolPaladin = RaceTraits( static const protocolValkyrie = RaceTraits(
raceId: 'protocol_paladin', raceId: 'protocol_valkyrie',
name: 'Protocol Paladin', name: 'Protocol Valkyrie',
statModifiers: { statModifiers: {
StatType.str: 2, StatType.str: 2,
StatType.con: 1, StatType.con: 1,
@@ -332,11 +332,11 @@ class RaceData {
], ],
); );
/// Index Ranger: 정찰형 (스탯 합계: 0) /// Index Feline: 정찰형 (스탯 합계: 0)
/// DEX +2, CON +1, INT -1, CHA -2 /// DEX +2, CON +1, INT -1, CHA -2
static const indexRanger = RaceTraits( static const indexFeline = RaceTraits(
raceId: 'index_ranger', raceId: 'index_feline',
name: 'Index Ranger', name: 'Index Feline',
statModifiers: { statModifiers: {
StatType.dex: 2, StatType.dex: 2,
StatType.con: 1, StatType.con: 1,
@@ -415,11 +415,11 @@ class RaceData {
], ],
); );
/// Loop Wizard: 순환 마법형 (스탯 합계: 0) /// Loop Djinn: 순환 마법형 (스탯 합계: 0)
/// INT +2, WIS +1, STR -1, CON -1, DEX -1 /// INT +2, WIS +1, STR -1, CON -1, DEX -1
static const loopWizard = RaceTraits( static const loopDjinn = RaceTraits(
raceId: 'loop_wizard', raceId: 'loop_djinn',
name: 'Loop Wizard', name: 'Loop Djinn',
statModifiers: { statModifiers: {
StatType.intelligence: 2, StatType.intelligence: 2,
StatType.wis: 1, StatType.wis: 1,
@@ -441,11 +441,11 @@ class RaceData {
], ],
); );
/// Lambda Druid: 자연 마법형 (스탯 합계: 0) /// Lambda Dryad: 자연 마법형 (스탯 합계: 0)
/// INT +2, WIS +2, STR -2, CON -2 /// INT +2, WIS +2, STR -2, CON -2
static const lambdaDruid = RaceTraits( static const lambdaDryad = RaceTraits(
raceId: 'lambda_druid', raceId: 'lambda_dryad',
name: 'Lambda Druid', name: 'Lambda Dryad',
statModifiers: { statModifiers: {
StatType.intelligence: 2, StatType.intelligence: 2,
StatType.wis: 2, StatType.wis: 2,
@@ -473,29 +473,29 @@ class RaceData {
kernelGiant, kernelGiant,
// 지혜형 // 지혜형
nullElf, nullElf,
recursiveSage, recursiveSylvan,
callbackPriest, callbackSeraph,
// 체력형 // 체력형
bufferDwarf, bufferDwarf,
coredumpUndead, coredumpUndead,
// 민첩형 // 민첩형
bitHalfling, bitHalfling,
cacheImp, cacheImp,
iteratorRogue, iteratorShade,
// 힘형 // 힘형
arrayOrc, arrayOrc,
flagKnight, flagGolem,
protocolPaladin, protocolValkyrie,
// 복합형 // 복합형
stackGoblin, stackGoblin,
heapTroll, heapTroll,
indexRanger, indexFeline,
// 마법형 // 마법형
pointerFairy, pointerFairy,
registerGnome, registerGnome,
threadSpirit, threadSpirit,
loopWizard, loopDjinn,
lambdaDruid, lambdaDryad,
]; ];
/// ID로 종족 찾기 /// ID로 종족 찾기

View File

@@ -188,10 +188,10 @@ const _raceFrames = <String, RaceFrameData>{
), ),
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
// 전사형 (Protocol Paladin, Flag Knight, Array Orc) // 전사형 (Protocol Valkyrie, Flag Golem, Array Orc)
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
'protocol_paladin': RaceFrameData( 'protocol_valkyrie': RaceFrameData(
raceId: 'protocol_paladin', raceId: 'protocol_valkyrie',
idle: [ idle: [
CharacterFrame([r' o ', r' /|+ ', r' / \ ']), CharacterFrame([r' o ', r' /|+ ', r' / \ ']),
CharacterFrame([r' o ', r' /|+ ', r' | | ']), CharacterFrame([r' o ', r' /|+ ', r' | | ']),
@@ -222,8 +222,8 @@ const _raceFrames = <String, RaceFrameData>{
], ],
), ),
'flag_knight': RaceFrameData( 'flag_golem': RaceFrameData(
raceId: 'flag_knight', raceId: 'flag_golem',
idle: [ idle: [
CharacterFrame([r' ♦ ', r' /|] ', r' / \ ']), CharacterFrame([r' ♦ ', r' /|] ', r' / \ ']),
CharacterFrame([r' ♦ ', r' /|] ', r' | | ']), CharacterFrame([r' ♦ ', r' /|] ', r' | | ']),
@@ -287,10 +287,10 @@ const _raceFrames = <String, RaceFrameData>{
), ),
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
// 마법형 (Loop Wizard, Lambda Druid, Recursive Sage) // 마법형 (Loop Djinn, Lambda Dryad, Recursive Sylvan)
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
'loop_wizard': RaceFrameData( 'loop_djinn': RaceFrameData(
raceId: 'loop_wizard', raceId: 'loop_djinn',
idle: [ idle: [
CharacterFrame([r' o~ ', r' /|) ', r' / \ ']), CharacterFrame([r' o~ ', r' /|) ', r' / \ ']),
CharacterFrame([r' o~ ', r' /|) ', r' | | ']), CharacterFrame([r' o~ ', r' /|) ', r' | | ']),
@@ -321,8 +321,8 @@ const _raceFrames = <String, RaceFrameData>{
], ],
), ),
'lambda_druid': RaceFrameData( 'lambda_dryad': RaceFrameData(
raceId: 'lambda_druid', raceId: 'lambda_dryad',
idle: [ idle: [
CharacterFrame([r' o♣ ', r' /|) ', r' / \ ']), CharacterFrame([r' o♣ ', r' /|) ', r' / \ ']),
CharacterFrame([r' o♣ ', r' /|) ', r' | | ']), CharacterFrame([r' o♣ ', r' /|) ', r' | | ']),
@@ -353,8 +353,8 @@ const _raceFrames = <String, RaceFrameData>{
], ],
), ),
'recursive_sage': RaceFrameData( 'recursive_sylvan': RaceFrameData(
raceId: 'recursive_sage', raceId: 'recursive_sylvan',
idle: [ idle: [
CharacterFrame([r' o∞ ', r' /|) ', r' / \ ']), CharacterFrame([r' o∞ ', r' /|) ', r' / \ ']),
CharacterFrame([r' o∞ ', r' /|) ', r' | | ']), CharacterFrame([r' o∞ ', r' /|) ', r' | | ']),
@@ -386,7 +386,7 @@ const _raceFrames = <String, RaceFrameData>{
), ),
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
// 언데드/엘프 (Coredump Undead, Null Elf, Callback Priest) // 언데드/엘프 (Coredump Undead, Null Elf, Callback Seraph)
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
'coredump_undead': RaceFrameData( 'coredump_undead': RaceFrameData(
raceId: 'coredump_undead', raceId: 'coredump_undead',
@@ -452,8 +452,8 @@ const _raceFrames = <String, RaceFrameData>{
], ],
), ),
'callback_priest': RaceFrameData( 'callback_seraph': RaceFrameData(
raceId: 'callback_priest', raceId: 'callback_seraph',
idle: [ idle: [
CharacterFrame([r' ô ', r' /|\ ', r' / \ ']), CharacterFrame([r' ô ', r' /|\ ', r' / \ ']),
CharacterFrame([r' ô ', r' /|\ ', r' | | ']), CharacterFrame([r' ô ', r' /|\ ', r' | | ']),
@@ -651,10 +651,10 @@ const _raceFrames = <String, RaceFrameData>{
), ),
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
// 레인저형 (Index Ranger, Iterator Rogue) // 민첩형 (Index Feline, Iterator Shade)
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
'index_ranger': RaceFrameData( 'index_feline': RaceFrameData(
raceId: 'index_ranger', raceId: 'index_feline',
idle: [ idle: [
CharacterFrame([r' o ', r' /|\ ', r' λ \ ']), CharacterFrame([r' o ', r' /|\ ', r' λ \ ']),
CharacterFrame([r' o ', r' /|\ ', r' | | ']), CharacterFrame([r' o ', r' /|\ ', r' | | ']),
@@ -685,8 +685,8 @@ const _raceFrames = <String, RaceFrameData>{
], ],
), ),
'iterator_rogue': RaceFrameData( 'iterator_shade': RaceFrameData(
raceId: 'iterator_rogue', raceId: 'iterator_shade',
idle: [ idle: [
CharacterFrame([r' o ', r' /|\ ', r' λ \ ']), CharacterFrame([r' o ', r' /|\ ', r' λ \ ']),
CharacterFrame([r' o ', r' /|\ ', r' | | ']), CharacterFrame([r' o ', r' /|\ ', r' | | ']),