Redone collision detection. FIXME: Jump to teleport to ceiling (erratic behaviour on negative facing), nameset in CSV, documentation for RAWs, unicode punctuations in font, environmental colour overlaying (mux) in MapDrawer, actor luminosity is now actorvalue, camera now will center to center of the player, test tile remove and place,
Former-commit-id: 890f8a703f9f9f5a6b6a7c26b2f5d9928d63cf40 Former-commit-id: 9b9d5afd32871cc791d525ff2aafe693205d8c54
@@ -32,7 +32,7 @@
|
||||
"27";"TILE_SNOW" ; "8205"; "6"; "0"; "N/A"; "1"; "1"; "0"; "27"; "0";"16"
|
||||
"28";"TILE_ICE_FRAGILE" ; "3282"; "1"; "0"; "N/A"; "1"; "0"; "0"; "28"; "0";"16"
|
||||
"29";"TILE_ICE_NATURAL" ; "6564"; "25"; "0"; "N/A"; "1"; "1"; "0"; "29"; "0"; "8"
|
||||
"30";"TILE_ICE_CLEAR_MAGICAL" ; "8205"; "25"; "0"; "N/A"; "1"; "1";"14949"; "30"; "0"; "8"
|
||||
"30";"TILE_ICE_CLEAR_MAGICAL" ; "8205"; "25"; "0"; "N/A"; "1"; "1"; "5009"; "30"; "0"; "8"
|
||||
# see scandinavian name set female of this tile id!
|
||||
"31";"TILE_PLATFORM_STONE" ; "0"; "0"; "0"; "N/A"; "0"; "0"; "0"; "31"; "0";"16"
|
||||
"32";"TILE_PLATFORM_WOODEN" ; "0"; "0"; "0"; "N/A"; "0"; "0"; "0"; "32"; "0";"16"
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 1 and column 12.
|
@@ -1,22 +0,0 @@
|
||||
{
|
||||
"0": {
|
||||
"name": "TILE_AIR",
|
||||
"opacity": 0,
|
||||
"strength": 0,
|
||||
"isFluid": 0,
|
||||
"fluidViscocity": 0,
|
||||
"drop": "__null",
|
||||
"isSolid": 0,
|
||||
"isAlsoWall": 0
|
||||
},
|
||||
"1": {
|
||||
"name": "TILE_STONE",
|
||||
"opacity": 8,
|
||||
"strength": 25,
|
||||
"isFluid": 0,
|
||||
"fluidViscocity": 0,
|
||||
"drop": "item.stone",
|
||||
"isSolid": 0,
|
||||
"isAlsoWall": 0
|
||||
}
|
||||
}
|
||||
@@ -1,66 +1,60 @@
|
||||
낮에는 따사로운 인간적인 여자
|
||||
커피 한잔의 여유를 아는 품격 있는 여자
|
||||
밤이 오면 심장이 뜨거워지는 여자
|
||||
그런 반전 있는 여자
|
||||
싸구려 커피를 마신다
|
||||
미지근해 적잖이 속이 쓰려온다
|
||||
눅눅한 비닐장판에 발바닥이
|
||||
쩍 달라 붙었다 떨어진다
|
||||
이제는 아무렇지 않어
|
||||
바퀴벌레 한마리쯤 쓱 지나가도
|
||||
무거운 매일 아침엔
|
||||
다만 그저 약간의 기침이 멈출 생각을 않는다
|
||||
축축한 이불을 갠다
|
||||
삐걱대는 문을 열고 밖에 나가본다
|
||||
아직 덜갠 하늘이 너무 가까워 숨쉬기가
|
||||
쉽지를 않다 수만번 본 것만 같다
|
||||
어지러워 쓰러질 정도로 익숙하기만 하다
|
||||
남은 것도 없이 텅빈 나를 잠근다
|
||||
|
||||
나는 사나이
|
||||
낮에는 너만큼 따사로운 그런 사나이
|
||||
커피 식기도 전에 원샷 때리는 사나이
|
||||
밤이 오면 심장이 터져버리는 사나이
|
||||
그런 사나이
|
||||
싸구려 커피를 마신다
|
||||
미지근해 적잖이 속이 쓰려온다
|
||||
눅눅한 비닐장판에 발바닥이
|
||||
쩍하고 달라 붙었다가 떨어진다
|
||||
|
||||
아름다워 사랑스러워
|
||||
그래 너 hey 그래 바로 너 hey
|
||||
아름다워 사랑스러워
|
||||
그래 너 hey 그래 바로 너 hey
|
||||
지금부터 갈 데까지 가볼까
|
||||
뭐 한 몇년간 세숫대야에
|
||||
고여있는 물 마냥 그냥 완전히 썩어가지고
|
||||
이거는 뭐 감각이 없어
|
||||
비가 내리면 처마 밑에서 쭈그리고 앉아서
|
||||
멍하니 그냥 가만히 보다보면은
|
||||
이거는 뭔가 아니다 싶어
|
||||
비가 그쳐도 희끄므레죽죽한
|
||||
저게 하늘이라고 머리위를 뒤덮고 있는건지
|
||||
저건 뭔가 하늘이라고 하기에는 뭔가 너무 낮게
|
||||
머리카락에 거의 닿게 조금만 뛰어도 정수리를
|
||||
쿵!하고 찧을거 같은데
|
||||
벽장속 제습제는 벌써 꽉차 있으나마나
|
||||
모기 때려잡다 번진 피가 묻은 거울을 볼때마다
|
||||
어우! 약간 놀라
|
||||
제 멋대로 구부러진 칫솔 갖다 이빨을 닦다 보면은
|
||||
잇몸에 피가 나게 닦아도 당췌 치석은 빠져 나올줄을 몰라
|
||||
언제 땄는지도 모르는 미지근한 콜라가 담긴
|
||||
캔을 입에 가져다 한모금 아뿔싸 담배 꽁초가
|
||||
이제는 장판이 난지 내가 장판인지도 몰라
|
||||
해가 뜨기도 전에 지는 이런 상황은 뭔가
|
||||
|
||||
오빤 강남스타일
|
||||
강남스타
|
||||
오빤 강남스타일
|
||||
강남스타일
|
||||
오빤 강남스타일
|
||||
싸구려 커피를 마신다
|
||||
미지근해 적잖이 속이 쓰려온다
|
||||
눅눅한 비닐장판에 발바닥이
|
||||
쩍 달라 붙었다 떨어진다
|
||||
이제는 아무렇지 않어
|
||||
바퀴벌레 한마리쯤 쓱 지나가도
|
||||
무거운 매일 아침엔
|
||||
다만 그저 약간의 기침이 멈출 생각을 않는다
|
||||
축축한 이불을 갠다
|
||||
삐걱대는 문을 열고 밖에 나가본다
|
||||
아직 덜갠 하늘이 너무 가까워 숨쉬기가
|
||||
쉽지를 않다 수만번 본 것만 같다
|
||||
어지러워 쓰러질 정도로 익숙하기만 하다
|
||||
남은 것도 없이 텅빈 나를 잠근다
|
||||
|
||||
Eh- Sexy Lady
|
||||
오빤 강남스타일
|
||||
Eh- Sexy Lady
|
||||
오오오오
|
||||
|
||||
정숙해 보이지만 놀 땐 노는 여자
|
||||
이때다 싶으면 묶었던 머리 푸는 여자
|
||||
가렸지만 웬만한 노출보다 야한 여자
|
||||
그런 감각적인 여자
|
||||
|
||||
나는 사나이
|
||||
점잖아 보이지만 놀 땐 노는 사나이
|
||||
때가 되면 완전 미쳐버리는 사나이
|
||||
근육보다 사상이 울퉁불퉁한 사나이
|
||||
그런 사나이
|
||||
|
||||
아름다워 사랑스러워
|
||||
그래 너 hey 그래 바로 너 hey
|
||||
아름다워 사랑스러워
|
||||
그래 너 hey 그래 바로 너 hey
|
||||
지금부터 갈 데까지 가볼까
|
||||
|
||||
오빤 강남스타일
|
||||
강남스타일
|
||||
오빤 강남스타일
|
||||
강남스타일
|
||||
오빤 강남스타일
|
||||
|
||||
Eh- Sexy Lady
|
||||
오빤 강남스타일
|
||||
Eh- Sexy Lady
|
||||
오오오오
|
||||
|
||||
뛰는 놈 그 위에 나는 놈
|
||||
baby baby 나는 뭘 좀 아는 놈
|
||||
뛰는 놈 그 위에 나는 놈
|
||||
baby baby 나는 뭘 좀 아는 놈
|
||||
You know what I'm saying
|
||||
오빤 강남스타일
|
||||
Eh- Sexy Lady
|
||||
오빤 강남스타일
|
||||
Eh- Sexy Lady
|
||||
오빤 강남스타일
|
||||
싸구려 커피를 마신다
|
||||
미지근해 적잖이 속이 쓰려온다
|
||||
눅눅한 비닐장판에 발바닥이
|
||||
쩍하고 달라 붙었다가 떨어진다
|
||||
|
||||
|
Before Width: | Height: | Size: 633 B After Width: | Height: | Size: 1.3 KiB |
BIN
res/graphics/col12spectrum.png
Normal file
|
After Width: | Height: | Size: 441 B |
BIN
res/graphics/col216spectrum.png
Normal file
|
After Width: | Height: | Size: 878 B |
BIN
res/graphics/colourkey216.png
Normal file
|
After Width: | Height: | Size: 102 B |
|
Before Width: | Height: | Size: 167 B |
BIN
res/graphics/fonts/unipunct.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 94 KiB After Width: | Height: | Size: 96 KiB |
BIN
res/graphics/terrain/terrain12.raw
Normal file
|
Before Width: | Height: | Size: 96 KiB |
@@ -1,13 +1,13 @@
|
||||
"STRING_ID";"IETF language tag(s) without dash";"enUS";"frFR";"esES";"deDE";"itIT";"ptBR";"ptPT";"ruRU";"elGR";"trTR";"daDK";"noNB";"svSE";"nlNL";"plPL";"fiFI";"jaJP";"zhCN";"zhTW";"koKR";"csCZ";"huHU";"roRO";"thTH";"bgBG";"heIL";"jakanaJP"
|
||||
"STRING_ID";"IETF language tag(s) without dash";"enUS";"frFR";"esES";"deDE";"itIT";"ptBR";"ptPT";"ruRU";"elGR";"trTR";"daDK";"noNB";"svSE";"nlNL";"plPL";"fiFI";"jaJP";"zhCN";"zhTW";"koKR";"csCZ";"huHU";"roRO";"thTH";"bgBG";"heIL";"jakanaJP";"isIC"
|
||||
|
||||
"DEV_MEMORY_SHORT_CAP";;"MEM";"MEM";;;;;;;;;;;;;;;"メモリー";;;"메모리";;;;;;;"メモリー"
|
||||
"DEV_MEMORY_A_OF_B";;"%1$sM out of %2$sM";"%1$sM sur %2$sM";;;;;;;;;;;;;;;"%2$sM中%1$sM";;;"%2$sM 중 %1$sM";;;;;;;"%2$sM ちゅう %1$sM"
|
||||
"DEV_MEMORY_SHORT_CAP";;"MEM";"MEM";;;;;;;;;;;;;;;"メモリー";;;"메모리";;;;;;;"メモリー";"MIN"
|
||||
"DEV_MEMORY_A_OF_B";;"%1$sM out of %2$sM";"%1$sM sur %2$sM";;;;;;;;;;;;;;;"%2$sM中%1$sM";;;"%2$sM 중 %1$sM";;;;;;;"%2$sM ちゅう %1$sM";"%1$sM af %2$s"
|
||||
|
||||
"DEV_COLOUR_LEGEND_GREEN";;" GREEN";" VERT";;;;;;;;;;;;;;;"緑";;;"녹";;;;;;;" みどり"
|
||||
"DEV_COLOUR_LEGEND_BLUE";;" BLUE";" BLEU";;;;;;;;;;;;;;;"青";;;"청";;;;;;;" あお"
|
||||
"DEV_COLOUR_LEGEND_ORANGE";;"ORANGE";"ORANGE";;;;;;;;;;;;;;;"黄";;;"황";;;;;;;"オレンジ"
|
||||
"DEV_COLOUR_LEGEND_RED";;" RED";" ROUGE";;;;;;;;;;;;;;;"赤";;;"적";;;;;;;" あか"
|
||||
"DEV_COLOUR_LEGEND_GREEN";;" GREEN";" VERT";;;;;;;;;;;;;;;"緑";;;"녹";;;;;;;" みどり";"grænn"
|
||||
"DEV_COLOUR_LEGEND_BLUE";;" BLUE";" BLEU";;;;;;;;;;;;;;;"青";;;"청";;;;;;;" あお";"blár"
|
||||
"DEV_COLOUR_LEGEND_ORANGE";;"ORANGE";"ORANGE";;;;;;;;;;;;;;;"黄";;;"황";;;;;;;"オレンジ";"rauðugulur"
|
||||
"DEV_COLOUR_LEGEND_RED";;" RED";" ROUGE";;;;;;;;;;;;;;;"赤";;;"적";;;;;;;" あか";"rauður"
|
||||
|
||||
"DEV_MESSAGE_CONSOLE_CODEX";;"Type 'codex' for available commands.";"Tapez « codex » pour commandes disponibles.";;;;;;;;;;;;;;;"使用可能な命令語の目録は「codex」を入力して下さい。";;;"사용 가능한 명령어 목록을 보려면 'codex'를 입력해 주십시오.";;;;;;;"しよう かのうな めいれいごの もくろくは 「codex」を にゅうりょく して ください。"
|
||||
"DEV_MESSAGE_CONSOLE_AVAILABLE_COMMANDS";;"Available commends:";"Commandes disponibles :";;;;;;;;;;;;;;;"命令語の目録:";;;"명령어 목록:";;;;;;;"めいれいごの もくろく:"
|
||||
"DEV_MESSAGE_CONSOLE_COMMAND_UNKNOWN";;"'%1$s': Unknown command";"« %1$s » : Commande inconnue";;;;;;;;;;;;;;;"「%1$s」: 不明な命令語";;;"'%1$s': 알 수 없는 명령어";;;;;;;"「%1$s」: ふめいな めいれいご"
|
||||
"DEV_MESSAGE_CONSOLE_CODEX";;"Type “codex” for available commands.";"Tapez « codex » pour commandes disponibles.";;;;;;;;;;;;;;;"使用可能な命令語の目録は「codex」を入力して下さい。";;;"사용 가능한 명령어 목록을 보려면 ‘codex’를 입력해 주십시오.";;;;;;;"しよう かのうな めいれいごの もくろくは 「codex」を にゅうりょく して ください。";"Skrifa „codex“ fyrir tiltækilegum skipunum."
|
||||
"DEV_MESSAGE_CONSOLE_AVAILABLE_COMMANDS";;"Available commends:";"Commandes disponibles :";;;;;;;;;;;;;;;"命令語の目録:";;;"명령어 목록:";;;;;;;"めいれいごの もくろく:";"Listi skipana :"
|
||||
"DEV_MESSAGE_CONSOLE_COMMAND_UNKNOWN";;"“%1$s”: Unknown command";"« %1$s » : Commande inconnue";;;;;;;;;;;;;;;"「%1$s」: 不明な命令語";;;"‘%1$s’: 알 수 없는 명령어";;;;;;;"「%1$s」: ふめいな めいれいご";"„%1$s“ : óþekkt skipunin"
|
||||
|
@@ -1,2 +1,3 @@
|
||||
"STRING_ID";"GLYPH_TAG";"alphabet";"hangul";"jpkana";"cyrillic";"zhsimp";"zhtrad"
|
||||
"nameset_suffix";;"alph";"hangul";"kana";"cyril";"zhsimp";"zhtrad"
|
||||
"STRING_ID";"IETF language tag(s) without dash";"enUS";"frFR";"esES";"deDE";"itIT";"ptBR";"ptPT";"ruRU";"elGR";"trTR";"daDK";"noNB";"svSE";"nlNL";"plPL";"fiFI";"jaJP";"zhCN";"zhTW";"koKR";"csCZ";"huHU";"roRO";"thTH";"bgBG";"heIL";"jakanaJP";"isIC"
|
||||
|
||||
"NAMESET_CHARSET";;"LatinAlph";"LatinAlph";"LatinAlph";"LatinAlph";"LatinAlph";"LatinAlph";"LatinAlph";"CyrilRuRU";"AlphElGR";"LatinAlph";"LatinAlph";"LatinAlph";"LatinAlph";"LatinAlph";"LatinAlph";"LatinAlph";"KanaJaJP";"HanziZhCN";"HanziZhTW";"HangulKoKR";"LatinAlph";"LatinAlph";"LatinAlph";"AksonThTH";"LatinAlph";"AlefbetHeIL";"KanaJaJP";"LatinAlph"
|
||||
|
||||
|
69
res/locales/nameset_russian_f.csv
Normal file
@@ -0,0 +1,69 @@
|
||||
# Nameset - Russian
|
||||
# Data taken from www.behindthename.com
|
||||
|
||||
"HEADER";"LatinAlph";"HangulKoKR";"KanaJaJP";"CyrilRuRU";"AlphElGR";"HanziZhCN";"HanziZhTW";"AksonThTH";"AlefbetHeIL"
|
||||
"NAMESET_RUS_F_001";"Agata";
|
||||
"NAMESET_RUS_F_002";"Aleksandra";
|
||||
"NAMESET_RUS_F_003";"Alisa";
|
||||
"NAMESET_RUS_F_004";"Alla";
|
||||
"NAMESET_RUS_F_005";"Anastasia";
|
||||
"NAMESET_RUS_F_006";"Angela";
|
||||
"NAMESET_RUS_F_007";"Angelina";
|
||||
"NAMESET_RUS_F_008";"Anna";
|
||||
"NAMESET_RUS_F_009";"Antonina";
|
||||
"NAMESET_RUS_F_010";"Anya";
|
||||
"NAMESET_RUS_F_011";"Adriana";
|
||||
"NAMESET_RUS_F_012";"Asya";
|
||||
"NAMESET_RUS_F_013";"Diana";
|
||||
"NAMESET_RUS_F_014";"Dominika";
|
||||
"NAMESET_RUS_F_015";"Dunya";
|
||||
"NAMESET_RUS_F_016";"Elena";
|
||||
"NAMESET_RUS_F_017";"Eva";
|
||||
"NAMESET_RUS_F_018";"Filippa";
|
||||
"NAMESET_RUS_F_019";"Gala";
|
||||
"NAMESET_RUS_F_020";"Inga";
|
||||
"NAMESET_RUS_F_021";"Ira";
|
||||
"NAMESET_RUS_F_022";"Irina";
|
||||
"NAMESET_RUS_F_023";"Isidora";
|
||||
"NAMESET_RUS_F_024";"Ivanna";
|
||||
"NAMESET_RUS_F_025";"Karina";
|
||||
"NAMESET_RUS_F_026";"Katerina";
|
||||
"NAMESET_RUS_F_027";"Katia";
|
||||
"NAMESET_RUS_F_028";"Kira";
|
||||
"NAMESET_RUS_F_029";"Klara";
|
||||
"NAMESET_RUS_F_030";"Kristina";
|
||||
"NAMESET_RUS_F_031";"Lana";
|
||||
"NAMESET_RUS_F_032";"Lara";
|
||||
"NAMESET_RUS_F_033";"Larisa";
|
||||
"NAMESET_RUS_F_034";"Lena";
|
||||
"NAMESET_RUS_F_035";"Lilia";
|
||||
"NAMESET_RUS_F_036";"Lilya";
|
||||
"NAMESET_RUS_F_037";"Liza";
|
||||
"NAMESET_RUS_F_038";"Margarita";
|
||||
"NAMESET_RUS_F_039";"Marina";
|
||||
"NAMESET_RUS_F_040";"Milena";
|
||||
"NAMESET_RUS_F_041";"Natalya";
|
||||
"NAMESET_RUS_F_042";"Natasha";
|
||||
"NAMESET_RUS_F_043";"Nika";
|
||||
"NAMESET_RUS_F_044";"Nina";
|
||||
"NAMESET_RUS_F_045";"Olga";
|
||||
"NAMESET_RUS_F_046";"Roksana";
|
||||
"NAMESET_RUS_F_047";"Sabina";
|
||||
"NAMESET_RUS_F_048";"Sasha";
|
||||
"NAMESET_RUS_F_049";"Selena";
|
||||
"NAMESET_RUS_F_050";"Sonya";
|
||||
"NAMESET_RUS_F_051";"Susanna";
|
||||
"NAMESET_RUS_F_052";"Tamara";
|
||||
"NAMESET_RUS_F_053";"Tanya";
|
||||
"NAMESET_RUS_F_054";"Tasha";
|
||||
"NAMESET_RUS_F_055";"Tatiana";
|
||||
"NAMESET_RUS_F_056";"Tatyana";
|
||||
"NAMESET_RUS_F_057";"Toma";
|
||||
"NAMESET_RUS_F_058";"Valentina";
|
||||
"NAMESET_RUS_F_059";"Vera";
|
||||
"NAMESET_RUS_F_060";"Veronika";
|
||||
"NAMESET_RUS_F_061";"Violetta";
|
||||
"NAMESET_RUS_F_062";"Yana";
|
||||
"NAMESET_RUS_F_063";"Yuliana";
|
||||
"NAMESET_RUS_F_064";"Zina";
|
||||
"NAMESET_RUS_F_065";"Zoya";
|
||||
|
58
res/locales/nameset_russian_m.csv
Normal file
@@ -0,0 +1,58 @@
|
||||
# Nameset - Russian
|
||||
# Data taken from www.behindthename.com
|
||||
|
||||
"HEADER";"LatinAlph";"HangulKoKR";"KanaJaJP";"CyrilRuRU";"AlphElGR";"HanziZhCN";"HanziZhTW";"AksonThTH";"AlefbetHeIL"
|
||||
"NAMESET_RUS_M_001";"Abram";
|
||||
"NAMESET_RUS_M_002";"Adam";
|
||||
"NAMESET_RUS_M_003";"Adrian";
|
||||
"NAMESET_RUS_M_004";"Albert";
|
||||
"NAMESET_RUS_M_005";"Alexey";
|
||||
"NAMESET_RUS_M_006";"Anton";
|
||||
"NAMESET_RUS_M_007";"Artur";
|
||||
"NAMESET_RUS_M_008";"Benedikt";
|
||||
"NAMESET_RUS_M_009";"Boris";
|
||||
"NAMESET_RUS_M_010";"David";
|
||||
"NAMESET_RUS_M_011";"Denis";
|
||||
"NAMESET_RUS_M_012";"Dmitriy";
|
||||
"NAMESET_RUS_M_013";"Eduard";
|
||||
"NAMESET_RUS_M_014";"Fyodor";
|
||||
"NAMESET_RUS_M_015";"Genya";
|
||||
"NAMESET_RUS_M_016";"Grigoriy";
|
||||
"NAMESET_RUS_M_017";"Igor";
|
||||
"NAMESET_RUS_M_018";"Iona";
|
||||
"NAMESET_RUS_M_019";"Iosif";
|
||||
"NAMESET_RUS_M_020";"Isaak";
|
||||
"NAMESET_RUS_M_021";"Isidor";
|
||||
"NAMESET_RUS_M_022";"Ivan";
|
||||
"NAMESET_RUS_M_023";"Kenya";
|
||||
"NAMESET_RUS_M_024";"Konstantin";
|
||||
"NAMESET_RUS_M_025";"Luka";
|
||||
"NAMESET_RUS_M_026";"Maks";
|
||||
"NAMESET_RUS_M_027";"Maksim";
|
||||
"NAMESET_RUS_M_028";"Mark";
|
||||
"NAMESET_RUS_M_029";"Marlen";
|
||||
"NAMESET_RUS_M_030";"Martin";
|
||||
"NAMESET_RUS_M_031";"Maxim";
|
||||
"NAMESET_RUS_M_032";"Mikhail";
|
||||
"NAMESET_RUS_M_033";"Milan";
|
||||
"NAMESET_RUS_M_034";"Nestor";
|
||||
"NAMESET_RUS_M_035";"Nika";
|
||||
"NAMESET_RUS_M_036";"Nikita";
|
||||
"NAMESET_RUS_M_037";"Nikolay";
|
||||
"NAMESET_RUS_M_038";"Pavel";
|
||||
"NAMESET_RUS_M_039";"Pyotr";
|
||||
"NAMESET_RUS_M_040";"Robert";
|
||||
"NAMESET_RUS_M_041";"Roma";
|
||||
"NAMESET_RUS_M_042";"Roman";
|
||||
"NAMESET_RUS_M_043";"Rudolf";
|
||||
"NAMESET_RUS_M_044";"Sasha";
|
||||
"NAMESET_RUS_M_045";"Sergey";
|
||||
"NAMESET_RUS_M_046";"Stas";
|
||||
"NAMESET_RUS_M_047";"Vadim";
|
||||
"NAMESET_RUS_M_048";"Valentin";
|
||||
"NAMESET_RUS_M_049";"Valeriy";
|
||||
"NAMESET_RUS_M_050";"Viktor";
|
||||
"NAMESET_RUS_M_051";"Vladimir";
|
||||
"NAMESET_RUS_M_052";"Yegor";
|
||||
"NAMESET_RUS_M_053";"Yuriy";
|
||||
"NAMESET_RUS_M_054";"Zhenya";
|
||||
|
163
res/locales/nameset_scandinavian_f.csv
Normal file
@@ -0,0 +1,163 @@
|
||||
# Nameset - Scandinavian
|
||||
# Data taken from www.behindthename.com
|
||||
# Translator note: this nameset does not contain name that has [ɹ](american english 'r') sound (except '-er'). i.e. for Korean, 'Carl' should be '카를', 'Aleksander' should be '알렉산더'.
|
||||
|
||||
"HEADER";"LatinAlph";"HangulKoKR";"KanaJaJP";"CyrilRuRU";"AlphElGR";"HanziZhCN";"HanziZhTW";"AksonThTH";"AlefbetHeIL"
|
||||
"NAMESET_SCAN_F_001";"Agnes";"아그네스";
|
||||
"NAMESET_SCAN_F_002";"Alberte";"알베르테";
|
||||
"NAMESET_SCAN_F_003";"Alexandra";"알렉산드라";
|
||||
"NAMESET_SCAN_F_004";"Alva";"알바";
|
||||
"NAMESET_SCAN_F_005";"Amanda";"아만다";
|
||||
"NAMESET_SCAN_F_006";"Andrea";"안드레아";
|
||||
"NAMESET_SCAN_F_007";"Ane";"아네";
|
||||
"NAMESET_SCAN_F_008";"Anna";"안나";
|
||||
"NAMESET_SCAN_F_009";"Anne";"안네";
|
||||
"NAMESET_SCAN_F_010";"Anniken";"안니켄";
|
||||
"NAMESET_SCAN_F_011";"Asta";"아스타";
|
||||
"NAMESET_SCAN_F_012";"Astrid";"아스트리드";
|
||||
"NAMESET_SCAN_F_013";"Beatrice";"베아트리케";
|
||||
"NAMESET_SCAN_F_014";"Camilla";"카밀라";
|
||||
"NAMESET_SCAN_F_015";"Carolina";"카롤리나";
|
||||
"NAMESET_SCAN_F_016";"Caroline";"카롤리네";
|
||||
"NAMESET_SCAN_F_017";"Cecilia";"세실리아";
|
||||
"NAMESET_SCAN_F_018";"Celina";"첼리나";
|
||||
"NAMESET_SCAN_F_019";"Charlotte";"카를로테";
|
||||
"NAMESET_SCAN_F_020";"Christina";"크리스티나";
|
||||
"NAMESET_SCAN_F_021";"Christine";"크리스티네";
|
||||
"NAMESET_SCAN_F_022";"Ebba";"에바";
|
||||
"NAMESET_SCAN_F_023";"Edith";"에디스";
|
||||
"NAMESET_SCAN_F_024";"Elin";"엘린";
|
||||
"NAMESET_SCAN_F_025";"Elina";"엘리나";
|
||||
"NAMESET_SCAN_F_026";"Elisabeth";"엘리사베스";
|
||||
"NAMESET_SCAN_F_027";"Elise";"엘리세";
|
||||
"NAMESET_SCAN_F_028";"Ella";"엘라";
|
||||
"NAMESET_SCAN_F_029";"Ellinor";"엘리노르";
|
||||
"NAMESET_SCAN_F_030";"Elsa";"엘사";
|
||||
"NAMESET_SCAN_F_031";"Emelie";"에밀리에";
|
||||
"NAMESET_SCAN_F_032";"Emilia";"에밀리아";
|
||||
"NAMESET_SCAN_F_033";"Emilie";"에밀리에";
|
||||
"NAMESET_SCAN_F_034";"Emma";"엠마";
|
||||
"NAMESET_SCAN_F_035";"Erika";"에리카";
|
||||
"NAMESET_SCAN_F_036";"Erle";"에를레";
|
||||
"NAMESET_SCAN_F_037";"Ester";"에스테르";
|
||||
"NAMESET_SCAN_F_038";"Eva";"에바";
|
||||
"NAMESET_SCAN_F_039";"Evelina";"에벨리나";
|
||||
"NAMESET_SCAN_F_040";"Felicia";"펠리시아";
|
||||
"NAMESET_SCAN_F_041";"Filippa";"필리파";
|
||||
"NAMESET_SCAN_F_042";"Frederikke";"프레데리케";
|
||||
"NAMESET_SCAN_F_043";"Freja";"프레야";
|
||||
"NAMESET_SCAN_F_044";"Frida";"프리다";
|
||||
"NAMESET_SCAN_F_045";"Gabriella";"가브리엘라";
|
||||
"NAMESET_SCAN_F_046";"Greta";"그레타";
|
||||
"NAMESET_SCAN_F_047";"Hanna";"한나";
|
||||
"NAMESET_SCAN_F_048";"Hanne";"한네";
|
||||
"NAMESET_SCAN_F_049";"Hedda";"헤다";
|
||||
"NAMESET_SCAN_F_050";"Hedvig";"헤드빅";
|
||||
"NAMESET_SCAN_F_051";"Helena";"헬레나";
|
||||
"NAMESET_SCAN_F_052";"Helene";"헬레네";
|
||||
"NAMESET_SCAN_F_053";"Helle";"헬레";
|
||||
"NAMESET_SCAN_F_054";"Henriette";"헨리에트";
|
||||
"NAMESET_SCAN_F_055";"Hilda";"힐다";
|
||||
"NAMESET_SCAN_F_056";"Ida";"이다";
|
||||
"NAMESET_SCAN_F_057";"Ina";"이나";
|
||||
"NAMESET_SCAN_F_058";"Ingeborg";"잉게보리";
|
||||
"NAMESET_SCAN_F_059";"Ingrid";"잉그리";
|
||||
"NAMESET_SCAN_F_060";"Ingvild";"잉그빌드";
|
||||
"NAMESET_SCAN_F_061";"Iris";"이리스";
|
||||
"NAMESET_SCAN_F_062";"Isabella";"이사벨라";
|
||||
"NAMESET_SCAN_F_063";"Jessica";"예시카";
|
||||
"NAMESET_SCAN_F_064";"Jóhanna";"요한나";
|
||||
"NAMESET_SCAN_F_065";"Johanna";"요한나";
|
||||
"NAMESET_SCAN_F_066";"Johanne";"요한네";
|
||||
"NAMESET_SCAN_F_067";"Jonna";"요나";
|
||||
"NAMESET_SCAN_F_068";"Julia";"율리아";
|
||||
"NAMESET_SCAN_F_069";"Kaja";"카야";
|
||||
"NAMESET_SCAN_F_070";"Kajsa";"카이사";
|
||||
"NAMESET_SCAN_F_071";"Kamilla";"카밀라";
|
||||
"NAMESET_SCAN_F_072";"Karen";"카렌";
|
||||
"NAMESET_SCAN_F_073";"Karin";"카린";
|
||||
"NAMESET_SCAN_F_074";"Karoline";"카롤리네";
|
||||
"NAMESET_SCAN_F_075";"Katrine";"카트리네";
|
||||
"NAMESET_SCAN_F_076";"Klara";"클라라";
|
||||
"NAMESET_SCAN_F_077";"Kristín";"크리스틴";
|
||||
"NAMESET_SCAN_F_078";"Kristin";"크리스틴";
|
||||
"NAMESET_SCAN_F_079";"Kristina";"크리스티나";
|
||||
"NAMESET_SCAN_F_080";"Kristine";"크리스티네";
|
||||
"NAMESET_SCAN_F_081";"Lærke";"레르케";
|
||||
"NAMESET_SCAN_F_082";"Laura";"라우라";
|
||||
"NAMESET_SCAN_F_083";"Lea";"레아";
|
||||
"NAMESET_SCAN_F_084";"Lene";"레네";
|
||||
"NAMESET_SCAN_F_085";"Lilly";"릴리";
|
||||
"NAMESET_SCAN_F_086";"Lina";"리나";
|
||||
"NAMESET_SCAN_F_087";"Linda";"린다";
|
||||
"NAMESET_SCAN_F_088";"Line";"리네";
|
||||
"NAMESET_SCAN_F_089";"Linn";"린";
|
||||
"NAMESET_SCAN_F_090";"Linnéa";"린네아";
|
||||
"NAMESET_SCAN_F_091";"Lisa";"리사";
|
||||
"NAMESET_SCAN_F_092";"Liv";"리브";
|
||||
"NAMESET_SCAN_F_093";"Lotte";"로테";
|
||||
"NAMESET_SCAN_F_094";"Lovisa";"로비사";
|
||||
"NAMESET_SCAN_F_095";"Lykke";"리케";
|
||||
"NAMESET_SCAN_F_096";"Maiken";"마이켄";
|
||||
"NAMESET_SCAN_F_097";"Maja";"마야";
|
||||
"NAMESET_SCAN_F_098";"Majken";"마이켄";
|
||||
"NAMESET_SCAN_F_099";"Malene";"말레네";
|
||||
"NAMESET_SCAN_F_100";"Malin";"말린";
|
||||
"NAMESET_SCAN_F_101";"Maren";"마렌";
|
||||
"NAMESET_SCAN_F_102";"Mari";"마리";
|
||||
"NAMESET_SCAN_F_103";"Maria";"마리아";
|
||||
"NAMESET_SCAN_F_104";"Marie";"마리에";
|
||||
"NAMESET_SCAN_F_105";"Märta";"메르타";
|
||||
"NAMESET_SCAN_F_106";"Marta";"마르타";
|
||||
"NAMESET_SCAN_F_107";"Marte";"마르테";
|
||||
"NAMESET_SCAN_F_108";"Mathilde";"마틸데";
|
||||
"NAMESET_SCAN_F_109";"Matilda";"마틸다";
|
||||
"NAMESET_SCAN_F_110";"Mia";"미아";
|
||||
"NAMESET_SCAN_F_111";"Mikaela";"미카엘라";
|
||||
"NAMESET_SCAN_F_112";"Milla";"밀라";
|
||||
"NAMESET_SCAN_F_113";"Moa";"모아";
|
||||
"NAMESET_SCAN_F_114";"My";"미";
|
||||
"NAMESET_SCAN_F_115";"Nanna";"난나";
|
||||
"NAMESET_SCAN_F_116";"Nora";"노라";
|
||||
"NAMESET_SCAN_F_117";"Olivia";"올리비아";
|
||||
"NAMESET_SCAN_F_118";"Paulina";"파울리나";
|
||||
"NAMESET_SCAN_F_119";"Pernille";"페르닐레";
|
||||
"NAMESET_SCAN_F_120";"Pia";"피아";
|
||||
"NAMESET_SCAN_F_121";"Ragnhild";"라그닐드";
|
||||
"NAMESET_SCAN_F_122";"Rebecca";"레베카";
|
||||
"NAMESET_SCAN_F_123";"Rebecka";"레베카";
|
||||
"NAMESET_SCAN_F_124";"Rebekka";"레베카";
|
||||
"NAMESET_SCAN_F_125";"Rikke";"리케";
|
||||
"NAMESET_SCAN_F_126";"Robin";"로빈";
|
||||
"NAMESET_SCAN_F_127";"Ronja";"로냐";
|
||||
"NAMESET_SCAN_F_128";"Rosa";"로사";
|
||||
"NAMESET_SCAN_F_129";"Rut";"루트";
|
||||
"NAMESET_SCAN_F_130";"Saga";"사가";
|
||||
"NAMESET_SCAN_F_131";"Sandra";"산드라";
|
||||
"NAMESET_SCAN_F_132";"Sanna";"산나";
|
||||
"NAMESET_SCAN_F_133";"Sara";"사라";
|
||||
"NAMESET_SCAN_F_134";"Semla";"세믈라";
|
||||
"NAMESET_SCAN_F_135";"Signe";"시그네";
|
||||
"NAMESET_SCAN_F_136";"Sigrid";"시그리";
|
||||
"NAMESET_SCAN_F_137";"Silje";"실리에";
|
||||
"NAMESET_SCAN_F_138";"Sille";"실레";
|
||||
"NAMESET_SCAN_F_139";"Siri";"시리";
|
||||
"NAMESET_SCAN_F_140";"Sofia";"소피아";
|
||||
"NAMESET_SCAN_F_141";"Sofie";"소피에";
|
||||
"NAMESET_SCAN_F_142";"Solveig";"솔비그";
|
||||
"NAMESET_SCAN_F_143";"Stina";"스티나";
|
||||
"NAMESET_SCAN_F_144";"Stine";"스티네";
|
||||
"NAMESET_SCAN_F_145";"Sunniva";"순니바";
|
||||
"NAMESET_SCAN_F_146";"Susanne";"수잔네";
|
||||
"NAMESET_SCAN_F_147";"Svea";"스베아";
|
||||
"NAMESET_SCAN_F_148";"Thea";"테아";
|
||||
"NAMESET_SCAN_F_149";"Therese";"테레세";
|
||||
"NAMESET_SCAN_F_150";"Tilda";"틸다";
|
||||
"NAMESET_SCAN_F_151";"Tova";"토바";
|
||||
"NAMESET_SCAN_F_152";"Tove";"토베";
|
||||
"NAMESET_SCAN_F_153";"Tuva";"투바";
|
||||
"NAMESET_SCAN_F_154";"Tyra";"티라";
|
||||
"NAMESET_SCAN_F_155";"Vendela";"벤델라";
|
||||
"NAMESET_SCAN_F_156";"Vera";"베라";
|
||||
"NAMESET_SCAN_F_157";"Viktoria";"빅토리아";
|
||||
"NAMESET_SCAN_F_158";"Ylva";"일바";
|
||||
|
167
res/locales/nameset_scandinavian_m.csv
Normal file
@@ -0,0 +1,167 @@
|
||||
# Nameset - Scandinavian
|
||||
# Data taken from www.behindthename.com
|
||||
# Translator note: this nameset does not contain name that has [ɹ](american english 'r') sound (except '-er'). i.e. for Korean, 'Carl' should be '카를', 'Aleksander' should be '알렉산더'.
|
||||
|
||||
"HEADER";"LatinAlph";"HangulKoKR";"KanaJaJP";"CyrilRuRU";"AlphElGR";"HanziZhCN";"HanziZhTW";"AksonThTH";"AlefbetHeIL"
|
||||
"NAMESET_SCAN_M_001";"Adam";"아담";
|
||||
"NAMESET_SCAN_M_002";"Adrian";"아드리안";
|
||||
"NAMESET_SCAN_M_003";"Aksel";"악셀";
|
||||
"NAMESET_SCAN_M_004";"Albert";"알베르";
|
||||
"NAMESET_SCAN_M_005";"Albin";"알빈";
|
||||
"NAMESET_SCAN_M_006";"Alek";"알렉";
|
||||
"NAMESET_SCAN_M_007";"Alexander";"알렉산더";
|
||||
"NAMESET_SCAN_M_008";"Alfred";"알프레드";
|
||||
"NAMESET_SCAN_M_009";"Amund";"아문드";
|
||||
"NAMESET_SCAN_M_010";"Andreas";"안드레아스";
|
||||
"NAMESET_SCAN_M_011";"Anton";"안톤";
|
||||
"NAMESET_SCAN_M_012";"Aron";"아론";
|
||||
"NAMESET_SCAN_M_013";"Alvard";"알바르";
|
||||
"NAMESET_SCAN_M_014";"August";"아우구스트";
|
||||
"NAMESET_SCAN_M_015";"Axel";"악셀";
|
||||
"NAMESET_SCAN_M_016";"Björn";"비외른";
|
||||
"NAMESET_SCAN_M_017";"Bjørn";"비외른";
|
||||
"NAMESET_SCAN_M_018";"Carl";"카를";
|
||||
"NAMESET_SCAN_M_019";"Casper";"카스퍼";
|
||||
"NAMESET_SCAN_M_020";"Christian";"크리스티안";
|
||||
"NAMESET_SCAN_M_021";"Christoffer";"크리스토퍼";
|
||||
"NAMESET_SCAN_M_022";"Cyrus";"키루스";
|
||||
"NAMESET_SCAN_M_023";"Daniel";"다니엘";
|
||||
"NAMESET_SCAN_M_024";"David";"다비드";
|
||||
"NAMESET_SCAN_M_025";"Edmund";"에드문드";
|
||||
"NAMESET_SCAN_M_026";"Edvard";"에드바르";
|
||||
"NAMESET_SCAN_M_027";"Edvin";"에드빈";
|
||||
"NAMESET_SCAN_M_028";"Eirik";"에릭";
|
||||
"NAMESET_SCAN_M_029";"Elias";"엘리아스";
|
||||
"NAMESET_SCAN_M_030";"Elis";"엘리스";
|
||||
"NAMESET_SCAN_M_031";"Emanuel";"에마누엘";
|
||||
"NAMESET_SCAN_M_032";"Emil";"에밀";
|
||||
"NAMESET_SCAN_M_033";"Endre";"에인드리";
|
||||
"NAMESET_SCAN_M_034";"Erik";"에릭";
|
||||
"NAMESET_SCAN_M_035";"Erlend";"에를렌드";
|
||||
"NAMESET_SCAN_M_036";"Espen";"에스펜";
|
||||
"NAMESET_SCAN_M_037";"Fabian";"파비안";
|
||||
"NAMESET_SCAN_M_038";"Felix";"펠릭스";
|
||||
"NAMESET_SCAN_M_039";"Filip";"필립";
|
||||
"NAMESET_SCAN_M_040";"Frederik";"프레데릭";
|
||||
"NAMESET_SCAN_M_041";"Gabriel";"가브리엘";
|
||||
"NAMESET_SCAN_M_042";"Gustav";"구스타프";
|
||||
"NAMESET_SCAN_M_043";"Haakon";"하콘";
|
||||
"NAMESET_SCAN_M_044";"Hákon";"하우콘";
|
||||
"NAMESET_SCAN_M_045";"Håkon";"호콘";
|
||||
"NAMESET_SCAN_M_046";"Hampus";"함푸스";
|
||||
"NAMESET_SCAN_M_047";"Hanne";"한네";
|
||||
"NAMESET_SCAN_M_048";"Hans";"한스";
|
||||
"NAMESET_SCAN_M_049";"Håvard";"호바르";
|
||||
"NAMESET_SCAN_M_050";"Henrik";"헨릭";
|
||||
"NAMESET_SCAN_M_051";"Herman";"헤르만";
|
||||
"NAMESET_SCAN_M_052";"Hjalmar";"히알마르";
|
||||
"NAMESET_SCAN_M_053";"Hugo";"후고";
|
||||
"NAMESET_SCAN_M_054";"Isak";"이삭";
|
||||
"NAMESET_SCAN_M_055";"Ivar";"이바르";
|
||||
"NAMESET_SCAN_M_056";"Jacob";"야콥";
|
||||
"NAMESET_SCAN_M_057";"Jakob";"야콥";
|
||||
"NAMESET_SCAN_M_058";"Jan";"얀";
|
||||
"NAMESET_SCAN_M_059";"Jens";"옌스";
|
||||
"NAMESET_SCAN_M_060";"Jeppe";"예프";
|
||||
"NAMESET_SCAN_M_061";"Jesper";"예스퍼";
|
||||
"NAMESET_SCAN_M_062";"Joakim";"요아킴";
|
||||
"NAMESET_SCAN_M_063";"Joel";"요엘";
|
||||
"NAMESET_SCAN_M_064";"Johan";"요한";
|
||||
"NAMESET_SCAN_M_065";"Jóhannes";"요한네스";
|
||||
"NAMESET_SCAN_M_066";"Jón";"욘";
|
||||
"NAMESET_SCAN_M_067";"Jon";"욘";
|
||||
"NAMESET_SCAN_M_068";"Jónas";"요나스";
|
||||
"NAMESET_SCAN_M_069";"Jonas";"요나스";
|
||||
"NAMESET_SCAN_M_070";"Jonathan";"요나단";
|
||||
"NAMESET_SCAN_M_071";"Jörgen";"이외르겐";
|
||||
"NAMESET_SCAN_M_072";"Jørgen";"이외르겐";
|
||||
"NAMESET_SCAN_M_073";"Josef";"요세프";
|
||||
"NAMESET_SCAN_M_074";"Kalle";"칼";
|
||||
"NAMESET_SCAN_M_075";"Kasper";"카스퍼";
|
||||
"NAMESET_SCAN_M_076";"Kevin";"케빈";
|
||||
"NAMESET_SCAN_M_077";"Kim";"킴";
|
||||
"NAMESET_SCAN_M_078";"Knut";"크누트";
|
||||
"NAMESET_SCAN_M_079";"Kristian";"크리스티안";
|
||||
"NAMESET_SCAN_M_080";"Kristoffer";"크리스토퍼";
|
||||
"NAMESET_SCAN_M_081";"Lars";"라르스";
|
||||
"NAMESET_SCAN_M_082";"Lasse";"라세";
|
||||
"NAMESET_SCAN_M_083";"Laurits";"라우리츠";
|
||||
"NAMESET_SCAN_M_084";"Leo";"레오";
|
||||
"NAMESET_SCAN_M_085";"Linus";"리누스";
|
||||
"NAMESET_SCAN_M_086";"Loke";"로케";
|
||||
"NAMESET_SCAN_M_087";"Love";"로베";
|
||||
"NAMESET_SCAN_M_088";"Ludvig";"루드빅";
|
||||
"NAMESET_SCAN_M_089";"Lukas";"루카스";
|
||||
"NAMESET_SCAN_M_090";"Mads";"마드스";
|
||||
"NAMESET_SCAN_M_091";"Magnus";"마그누스";
|
||||
"NAMESET_SCAN_M_092";"Malte";"말테";
|
||||
"NAMESET_SCAN_M_093";"Malthe";"말테";
|
||||
"NAMESET_SCAN_M_094";"Marcus";"마르쿠스";
|
||||
"NAMESET_SCAN_M_095";"Maria";"마리아";
|
||||
"NAMESET_SCAN_M_096";"Marius";"마리우스";
|
||||
"NAMESET_SCAN_M_097";"Markus";"마르쿠스";
|
||||
"NAMESET_SCAN_M_098";"Martin";"마르틴";
|
||||
"NAMESET_SCAN_M_099";"Mats";"마츠";
|
||||
"NAMESET_SCAN_M_100";"Mattias";"마티아스";
|
||||
"NAMESET_SCAN_M_101";"Max";"막스";
|
||||
"NAMESET_SCAN_M_102";"Maximillian";"막시밀리안";
|
||||
"NAMESET_SCAN_M_103";"Melker";"멜케르";
|
||||
"NAMESET_SCAN_M_104";"Michael";"멜케르";
|
||||
"NAMESET_SCAN_M_105";"Mikael";"미카엘";
|
||||
"NAMESET_SCAN_M_106";"Mikkel";"미켈";
|
||||
"NAMESET_SCAN_M_107";"Morten";"모르텐";
|
||||
"NAMESET_SCAN_M_108";"Niklas";"니클라스";
|
||||
"NAMESET_SCAN_M_109";"Nikolaj";"니콜라이";
|
||||
"NAMESET_SCAN_M_110";"Nils";"닐스";
|
||||
"NAMESET_SCAN_M_111";"Odin";"오딘";
|
||||
"NAMESET_SCAN_M_112";"Ola";"올라";
|
||||
"NAMESET_SCAN_M_113";"Olaf";"올라프";
|
||||
"NAMESET_SCAN_M_114";"Olav";"올라브";
|
||||
"NAMESET_SCAN_M_115";"Ole";"올레";
|
||||
"NAMESET_SCAN_M_116";"Oliver";"올리버";
|
||||
"NAMESET_SCAN_M_117";"Olle";"올리버";
|
||||
"NAMESET_SCAN_M_118";"Olof";"올로프";
|
||||
"NAMESET_SCAN_M_119";"Oscar";"오스카르";
|
||||
"NAMESET_SCAN_M_120";"Óskar";"오스카르";
|
||||
"NAMESET_SCAN_M_121";"Oskar";"오스카르";
|
||||
"NAMESET_SCAN_M_122";"Otto";"오토";
|
||||
"NAMESET_SCAN_M_123";"Patrik";"파트릭";
|
||||
"NAMESET_SCAN_M_124";"Peder";"페더";
|
||||
"NAMESET_SCAN_M_125";"Per";"페르";
|
||||
"NAMESET_SCAN_M_126";"Petter";"페터";
|
||||
"NAMESET_SCAN_M_127";"Philip";"필립";
|
||||
"NAMESET_SCAN_M_128";"Pontus";"폰투스";
|
||||
"NAMESET_SCAN_M_129";"Preben";"프레벤";
|
||||
"NAMESET_SCAN_M_130";"Rafael";"프레벤";
|
||||
"NAMESET_SCAN_M_131";"Reid";"리드";
|
||||
"NAMESET_SCAN_M_132";"Robert";"로베르트";
|
||||
"NAMESET_SCAN_M_133";"Robin";"로빈";
|
||||
"NAMESET_SCAN_M_134";"Samuel";"사무엘";
|
||||
"NAMESET_SCAN_M_135";"Sander";"산더";
|
||||
"NAMESET_SCAN_M_136";"Sebastian";"세바스티안";
|
||||
"NAMESET_SCAN_M_137";"Sigge";"시게";
|
||||
"NAMESET_SCAN_M_138";"Sigurd";"시구르";
|
||||
"NAMESET_SCAN_M_139";"Simen";"시멘";
|
||||
"NAMESET_SCAN_M_140";"Simon";"시몬";
|
||||
"NAMESET_SCAN_M_141";"Sindre";"신드레";
|
||||
"NAMESET_SCAN_M_142";"Sixten";"시그스텐";
|
||||
"NAMESET_SCAN_M_143";"Stefan";"스테판";
|
||||
"NAMESET_SCAN_M_144";"Steffen";"스테펜";
|
||||
"NAMESET_SCAN_M_145";"Stian";"스티안";
|
||||
"NAMESET_SCAN_M_146";"Svante";"스반테";
|
||||
"NAMESET_SCAN_M_147";"Sven";"스벤";
|
||||
"NAMESET_SCAN_M_148";"Teodor";"테오도르";
|
||||
"NAMESET_SCAN_M_149";"Theodor";"테오도르";
|
||||
"NAMESET_SCAN_M_150";"Thomas";"토마스";
|
||||
"NAMESET_SCAN_M_151";"Tim";"팀";
|
||||
"NAMESET_SCAN_M_152";"Tobias";"토비아스";
|
||||
"NAMESET_SCAN_M_153";"Tor";"토드";
|
||||
"NAMESET_SCAN_M_154";"Truls";"트룰스";
|
||||
"NAMESET_SCAN_M_155";"Ulrik";"울프릭";
|
||||
"NAMESET_SCAN_M_156";"Valdemar";"발데마르";
|
||||
"NAMESET_SCAN_M_157";"Valter";"발터";
|
||||
"NAMESET_SCAN_M_158";"Vidar";"비다르";
|
||||
"NAMESET_SCAN_M_159";"Viggo";"비고";
|
||||
"NAMESET_SCAN_M_160";"Viktor";"빅토르";
|
||||
"NAMESET_SCAN_M_161";"Ville";"빌레";
|
||||
"NAMESET_SCAN_M_162";"Vincent";"빈센트";
|
||||
|
@@ -2,13 +2,13 @@
|
||||
|
||||
"LANGUAGE_EN";"[LanguageName] in english";"English";"French";"Spanish";"German";"Italian ";"Portuguese (Brazil)";"Portuguese";"Russian";"Greek";"Turkish";"Danish";"Norwegian";"Swedish";"Dutch";"Polish";"Finnish";"Japanese";"Simplified Chinese";"Traditional Chinese";"Korean";"Czech";"Hungarian";"Romanian";"Thai";"Bulgarian";"Hebrew";"Japanese Kana";"Icelandic"
|
||||
"LANGUAGE_ID";"IETF language tag(s) without dash";"enUS";"frFR";"esES";"deDE";"itIT";"ptBR";"ptPT";"ruRU";"elGR";"trTR";"daDK";"noNB";"svSE";"nlNL";"plPL";"fiFI";"jaJP";"zhCN";"zhTW";"koKR";"csCZ";"huHU";"roRO";"thTH";"bgBG";"heIL";"jakanaJP";"isIC"
|
||||
"LANGUAGE_THIS";"MyLanguage'; in native text";"English";"Français";"Español";"Deutsch";"Italiano";"Português Brasileiro";"Português";"Pусский";"Ελληνικά";"Türkçe";"Dansk";"Norsk Bokmål";"Svenska";"Nederlands";"Polski";"Suomi";"日本語";"简体中文";"繁體中文";"한국어";"Čeština";"Magyar";"Română";"ภาษาไทย";"Български";"עברית";"にほんご";"Íslenska"
|
||||
"LANGUAGE_THIS";"MyLanguage in native text";"English";"Français";"Español";"Deutsch";"Italiano";"Português Brasileiro";"Português";"Pусский";"Ελληνικά";"Türkçe";"Dansk";"Norsk Bokmål";"Svenska";"Nederlands";"Polski";"Suomi";"日本語";"简体中文";"繁體中文";"한국어";"Čeština";"Magyar";"Română";"ภาษาไทย";"Български";"עברית";"にほんご";"Íslenska"
|
||||
"LANGUAGE_DIRECTION";"ltr or rtl (text direction used by game code)";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"ltr";"rtl";"ltr";"ltr"
|
||||
|
||||
"CREDITS_POLYGLOT";"";"Translated by the Polyglot Project.";"Traduit par le Polyglot Projet.";"Traducido por el proyecto Polyglot.";"Übersetzt von Polyglot Project.";"Tradotto dal Polyglot Project.";"Traduzido pelo projeto Polyglot.";"Traduzido pelo projeto Polyglot.";"Перевод от проекта Polygon";"Μεταφράστηκε από το Polyglot Project.";"Polyglot Projesi ile çevrilmiştir.";"Oversat af Polyglot Projektet.";"Oversatt av Polyglot Prosjektet.";"Översättning av Polyglot-projektet.";"Vertaald door het Polyglot project.";"Przetłumaczono za pomocą Polyglot Project.";"Käännökset: Polyglot Project.";"翻訳提供:Polyglotプロジェクト";"Polyglot 项目提供翻译";"翻譯由Polyglot Project 提供";"번역 제공: Polyglot Project.";"Překlad: Polyglot Projektu.";"Fordította a Polgylot Project.";"Tradus de către Polyglot Project.";"คำแปลโดย Polyglot Project";"Превод от проекта Polyglot.";"תורגם על-ידי פרויקט פוליגלוט.";"ほんやく ていきょう:Polyglotプロジェクト";"Þýddur af verkefnið Polyglot"
|
||||
|
||||
"CONTEXT_CHARACTER_DELETE";"";"Delete Character";"Supprimer personnage";"Eliminar personaje";"Character löschen";"Cancella personaggio";"Deletar Personagem";"Apagar personagem";"Удалить персонажа";"Διαγραφή Χαρακτήρα";"Karakteri Sil";"Slet karakter";"Slett karakter";"Radera karaktär";"Verwijder Personage";"Usuń Postać";"Poista hahmo";"キャラクター削除";"删除角色";"刪除角色";"캐릭터 지우기";"Smazat postavu";"Karakter törlése";"Șterge personaj";"ลบตัวละคร";"Изтрий персонаж";"למחוק דמות";"Eyða persónu"
|
||||
"CONTEXT_CHARACTER_NEW";"Typically used in rpgs/mmorpgs";"New Character";"Nouveau personnage";"Nuevo personaje";"Neuer Charakter";"Nuovo personaggio";"Novo Personagem";"Nova personagem";"Новый персонаж";"Δημιουργία Χαρακτήρα";"Yeni Karakter";"Ny karakter";"Ny karakter";"Ny karaktär";"Nieuw Personage";"Nowa Postać";"Uusi hahmo";"新規キャラクター";"创新角色";"創新角色";"캐릭터 만들기";"Nová postava";"Új karakter";"Personaj nou";"ตัวละครใหม่";"Нов персонаж";"דמות חדשה";"Nýja persónu"
|
||||
"CONTEXT_CHARACTER_DELETE";"";"Delete Character";"Supprimer personnage";"Eliminar personaje";"Character löschen";"Cancella personaggio";"Deletar Personagem";"Apagar personagem";"Удалить персонажа";"Διαγραφή Χαρακτήρα";"Karakteri Sil";"Slet karakter";"Slett karakter";"Radera karaktär";"Verwijder Personage";"Usuń Postać";"Poista hahmo";"キャラクター削除";"删除角色";"刪除角色";"캐릭터 지우기";"Smazat postavu";"Karakter törlése";"Șterge personaj";"ลบตัวละคร";"Изтрий персонаж";"למחוק דמות";"キャラクターさくじょ";"Eyða persónu"
|
||||
"CONTEXT_CHARACTER_NEW";"Typically used in rpgs/mmorpgs";"New Character";"Nouveau personnage";"Nuevo personaje";"Neuer Charakter";"Nuovo personaggio";"Novo Personagem";"Nova personagem";"Новый персонаж";"Δημιουργία Χαρακτήρα";"Yeni Karakter";"Ny karakter";"Ny karakter";"Ny karaktär";"Nieuw Personage";"Nowa Postać";"Uusi hahmo";"新規キャラクター";"创新角色";"創新角色";"캐릭터 만들기";"Nová postava";"Új karakter";"Personaj nou";"ตัวละครใหม่";"Нов персонаж";"דמות חדשה";"しんき キャラクター";"Nýja persónu"
|
||||
|
||||
"CONTEXT_CLASS_AI";"[Noun]";"Artificial Intelligence";"Intelligence Artificielle";"Inteligencia Artificial";"Künstliche Intelligenz";"Intelligenza Artificiale";"Inteligência Artificial";"Inteligência Artificial";"Искусственный интеллект";"Τεχνιτή Νοημοσύνη";"Yapay Zeka";"Kunstig Intelligens";"Kunstig Intelligens";"Artificiell intelligens";"Kunstmatige intelligentie";"Sztuczna Inteligencja";"Tekoäly";"人工知能";"人工智能";"人工智能";"인공지능";"Umělá inteligence";"Mesterséges Intelligencia";"Inteligență Artificială";"ปัญญาประดิษฐ์";"Изкуствен интелект";"בינה-מלאכותית"
|
||||
"CONTEXT_CLASS_ALIEN";"[Noun]";"Alien";"Extraterrestre";"Alienígena";"Alien";"Alieno";"Extraterrestre";"Extraterrestre";"Пришелец";"Εξωγήινος";"Uzaylı";"Rumvæsen";"Romvesen";"Utomjording";"Buitenaards wezen";"Kosmita";"Avaruusolio";"エイリアン";"外星人";"外星人";"외계인";"Mimozemšťan";"Idegen";"Extraterestru";"เอเลี่ยน";"Извънземно";"חייזר"
|
||||
@@ -42,10 +42,10 @@
|
||||
"CONTEXT_CONDITION_DEAD";"[Adjective] [Default male]";"Dead";"Mort";"Muerto";"Toter";"Morto";"Morto";"Morto";"Мёртвый";"Νεκρός";"Ölü";"Død";"Død";"Död";"Dood";"Martwy";"Kuollut";"死亡";"死亡";"死亡";"사망";"Mrtvý";"Halott";"Mort";"ตาย";"Мъртъв";"מת";"しぼう";"Dauður"
|
||||
"CONTEXT_CONDITION_FROZEN";"[Adjective] [Default male]";"Frozen";"Gelé";"Congelado";"Gefrohrener";"Ghiacciato";"Congelado";"Congelado";"Заморожен";"Παγωμένος";"Donmuş";"Frossen";"Frossen";"Fryst";"Bevroren";"Zamrożony";"Jäässä";"凍結";"凍結";"凍結";"동결";"Zmražený";"Fagyott";"Înghețat";"หนาวเย็น";"Замразен";"קפוא";"とうけつ";"Frosinn"
|
||||
"CONTEXT_CONDITION_POISONED";"[Adjective] [Default male]";"Poisoned";"Empoisonné";"Envenenado";"Vergifteter";"Avvelenato";"Envenenado";"Envenenado";"Отравлен";"Δηλητηρισμένος";"Zehirlenmiş";"Forgiftet";"Forgiftet";"Förgiftad";"Vergiftigd";"Otruty";"Myrkytetty";"毒";"毒";"中毒";"중독";"Otrávený";"Mérgezett";"Otrăvit";"ติดพิษ";"Отровен";"מורעל";"どく";"Eitrun"
|
||||
"CONTEXT_CONDITION_SLOWED";"[Adjective] [Default male]";"Slowed";"Ralenti";"Ralentizado";"Verlangsamter";"Rallentato";"Lento";"Lento";"Замедлен";"Επιβραδυνμένος";"Yavaşlamış";"Langsommelig";"Nedsakted";"Nedsaktad";"Vertraagd";"Spowolniony";"Hidastettu";"減速";"減速";"減速";"감속";"Zpomalený";"Lassított";"Încetinit";"ช้า";"Забавен";"מואט";"げんそく";"hægur-hreyfing"
|
||||
"CONTEXT_CONDITION_STUNNED";"[Adjective] [Default male]";"Stunned";"Étourdi";"Aturdido";"Erstarrter";"Stordito";"Atordoado";"Atordoado";"Оглушен";"Παραλυμένος";"Sersemlemiş";"Lamslået";"Lamslått";"Lamslagen";"Bedwelmd";"Ogłuszony";"Pökerryksissä";"スタン";"眩晕";"眩晕";"스턴";"Ohromený";"Kábult";"Împietrit";"มึน";"Зашеметен";"משותק";"スタン";"hneykslaður"
|
||||
"CONTEXT_CONDITION_UNCONSCIOUS";"[Adjective]";"Unconscious";"Inconscient";"Inconsciente";"Bewusstloser";"Svenuto";"Desmaiado";"Desmaiado";"Без сознания";"Αναίσθητος";"Şuursuz";"Ubevist";"Ubevist";"Omedveten";"Bewusteloos";"Nieprzytomny";"Tajuton";"気絶";"失去知觉";"失去知覺";"기절";"V bezvědomí";"Eszméletlen";"Inconștient";"สลบ";"В безсъзнание";"חסר-הכרה";"きぜつ";"meðvitundarlaus"
|
||||
"CONTEXT_CONDITION_UNHURT";"[Adjective] [Default male] No wounds";"Unhurt";"Indemne";"Ileso";"Unverletzter";"Illeso";"Ileso";"Ileso";"Невредимый";"Αβλαβής";"Yaralanmamış";"Ubeskadiget";"Uskadd";"Oskadad";"Ongedeerd";"Zdrowy";"Täydessä kunnossa";"無傷";"未受伤";"未受傷";"정상";"Nezraněný";"Sértetlen";"Neatins";"ไม่บาดเจ็บ";"Невредим";"בריא";"むきず";"óskemmdar"
|
||||
"CONTEXT_CONDITION_SLOWED";"[Adjective] [Default male]";"Slowed";"Ralenti";"Ralentizado";"Verlangsamter";"Rallentato";"Lento";"Lento";"Замедлен";"Επιβραδυνμένος";"Yavaşlamış";"Langsommelig";"Nedsakted";"Nedsaktad";"Vertraagd";"Spowolniony";"Hidastettu";"減速";"減速";"減速";"감속";"Zpomalený";"Lassított";"Încetinit";"ช้า";"Забавен";"מואט";"げんそく";"Hægur-hreyfing"
|
||||
"CONTEXT_CONDITION_STUNNED";"[Adjective] [Default male]";"Stunned";"Étourdi";"Aturdido";"Erstarrter";"Stordito";"Atordoado";"Atordoado";"Оглушен";"Παραλυμένος";"Sersemlemiş";"Lamslået";"Lamslått";"Lamslagen";"Bedwelmd";"Ogłuszony";"Pökerryksissä";"スタン";"眩晕";"眩晕";"스턴";"Ohromený";"Kábult";"Împietrit";"มึน";"Зашеметен";"משותק";"スタン";"Hneykslaður"
|
||||
"CONTEXT_CONDITION_UNCONSCIOUS";"[Adjective]";"Unconscious";"Inconscient";"Inconsciente";"Bewusstloser";"Svenuto";"Desmaiado";"Desmaiado";"Без сознания";"Αναίσθητος";"Şuursuz";"Ubevist";"Ubevist";"Omedveten";"Bewusteloos";"Nieprzytomny";"Tajuton";"気絶";"失去知觉";"失去知覺";"기절";"V bezvědomí";"Eszméletlen";"Inconștient";"สลบ";"В безсъзнание";"חסר-הכרה";"きぜつ";"Meðvitundarlaus"
|
||||
"CONTEXT_CONDITION_UNHURT";"[Adjective] [Default male] No wounds";"Unhurt";"Indemne";"Ileso";"Unverletzter";"Illeso";"Ileso";"Ileso";"Невредимый";"Αβλαβής";"Yaralanmamış";"Ubeskadiget";"Uskadd";"Oskadad";"Ongedeerd";"Zdrowy";"Täydessä kunnossa";"無傷";"未受伤";"未受傷";"정상";"Nezraněný";"Sértetlen";"Neatins";"ไม่บาดเจ็บ";"Невредим";"בריא";"むきず";"Óskemmdar"
|
||||
"CONTEXT_CONDITION_WET";"[Adjective] [Default male]";"Wet";"Trempé";"Mojado";"Nasser";"Bagnato";"Molhado";"Molhado";"Мокрый";"Βρεγμένος";"Islak";"Våd";"Våt";"Våt";"Nat";"Przemoczony";"Märkä";"濡れている";".湿";".濕";"젖음";"Vlhký";"Nedves";"Ud";"เปียก";"Мокър";"רטוב";"ぬれている";"Blautur"
|
||||
"CONTEXT_CONDITION_WOUNDED";"[Adjective] [Default male]";"Wounded";"Blessé";"Herido";"Verwundeter";"Ferito";"Ferido";"Ferido";"Раненый";"Πληγωμένος";"Yaralı";"Såret";"Såret";"Skadad";"Gewond";"Ranny";"Haavoittunut";"負傷";"受伤";"受傷";"부상";"Zraněný";"Sebesült";"Rănit";"บาดเจ็บ";"Ранен";"פצוע";"ふしょう";"Sár"
|
||||
|
||||
@@ -54,23 +54,23 @@
|
||||
"CONTEXT_DESCRIPTION_SMALL";"[Adjective]";"Small";"Petit";"Pequeño";"Klein";"Piccolo";"Pequeno";"Pequeno";"Маленький";"Μικρό";"Küçük";"Lille";"Liten";"Liten";"Klein";"Mały";"Pieni";"小";"小";"小";"소";"Malý";"Kicsi";"Mic";"เล็ก";"Малък";"קטן";"こ";"Lítill"
|
||||
"CONTEXT_DESCRIPTION_TINY";"[Adjective] Very small";"Tiny";"Minuscule";"Diminuto";"Winzig";"Minuscolo";"Muito pequeno";"Muito pequeno";"Крошечный";"Μικροσκοπικό";"Minik";"Lillebitte";"Bitteliten";"Pytteliten";"Minuscuul";"Malutki";"Pikkuriikkinen";"極小";"极小";"極小";"특소";"Maličký";"Apró";"Minuscul";"เล็กจิ๋ว";"Миниатюрен";"קטנטן";"きょくしょう";"Pínulítill"
|
||||
|
||||
"CONTEXT_ITEM_ARMOR";"[Noun] Body armor";"Armor";"Armure";"Armadura";"Rüstung";"Armatura";"Armadura";"Armadura";"Броня";"Πανοπλία";"Zırh";"Rustning";"Rustning";"Rustning";"Pantser";"Zbroja";"Panssari";"鎧";"护甲";"護甲";"갑옷";"Brnění";"Páncél";"Armură";"ชุดเกราะ";"Броня";"שריון"
|
||||
"CONTEXT_ITEM_ARROW";"[Noun] Ammo for archers";"Arrow";"Flèche";"Flecha";"Pfeil";"Freccia";"Flecha";"Seta";"Стрела";"Βέλος";"Ok";"Pil";"Pil";"Pil";"Pijl";"Strzała";"Nuoli";"矢";"箭";"箭";"화살";"Šíp";"Nyílvessző";"Săgeată";"ลูกธนู";"Стрела";"חץ"
|
||||
"CONTEXT_ITEM_ARROW_PLURAL";"[Noun/Plural] Ammo for archers";"Arrows";"Flèches";"Flechas";"Pfeile";"Frecce";"Flechas";"Setas";"Стрелы";"Βέλη";"Oklar";"Pile";"Piler";"Pilar";"Pijlen";"Strzały";"Nuolet";"矢";"箭";"箭";"화살";"Šípy";"Nyílvesszők";"Săgeți";"ลูกธนู";"Стрели";"חיצים"
|
||||
"CONTEXT_ITEM_BOMB";"[Noun]";"Bomb";"Bombe";"Bomba";"Bombe";"Bomba";"Bomba";"Bomba";"Бомба";"Βόμβα";"Bomba";"Bombe";"Bombe";"Bomb";"Bom";"Bomba";"Pommi";"爆弾";"炸弹";"炸彈";"폭탄";"Bomba";"Bomba";"Bombă";"ระเบิด";"Бомба";"פצצה"
|
||||
"CONTEXT_ITEM_BOOK";"[Noun]";"Book";"Livre";"Libro";"Buch";"Libro";"Livro";"Livro";"Книга";"Βιβλίο";"Kitap";"Bog";"Bok";"Bok";"Boek";"Książka";"Kirja";"本";"书";"書";"책";"Kniha";"Könyv";"Carte";"หนังสือ";"Книга";"ספר"
|
||||
"CONTEXT_ITEM_BOOTS";"[Noun/Plural] Boots";"Boots";"Bottes";"Botas";"Stiefel";"Scarponi";"Botas";"Botas";"Ботинки";"Μπότες";"Bot";"Støvler";"Støvler";"Kängor";"Schoenen";"Buty";"Saappaat";"靴";"靴";"靴";"신발";"Boty";"Csizma";"Bocanci";"รองเท้าบูท";"Ботуши";"מגפיים"
|
||||
"CONTEXT_ITEM_BOW";"[Noun] Used by archers";"Bow";"Arc";"Arco";"Bogen";"Arco";"Arco";"Arco";"Лук";"Τόξο";"Yay";"Bue";"Bue";"Båge";"Boog";"Łuk";"Jousi";"弓";"弓";"弓";"활";"Luk";"Íj";"Arc";"ธนู";"Лък";"קשת"
|
||||
"CONTEXT_ITEM_CARD";"[Noun]";"Card";"Carte";"Carta";"Karte";"Carta";"Carta";"Carta";"Карта";"Κάρτα";"Kart";"Kort";"Kort";"Kort";"Kaart";"Karta";"Kortti";"カード";"卡片";"卡片";"카드";"Karta";"Kártya";"Carte";"การ์ด";"Карта";"קלף"
|
||||
"CONTEXT_ITEM_CARD_PLURAL";"[Noun/Plural]";"Cards";"Cartes";"Cartas";"Karten";"Carte";"Cartas";"Cartas";"Карты";"Κάρτες";"Kartlar";"Kort";"Kort";"Kort";"Kaarten";"Karty";"Kortit";"カード";"卡片";"卡片";"카드";"Karty";"Kártyák";"Carți";"การ์ด";"Карти";"קלפים"
|
||||
"CONTEXT_ITEM_CHEST";"[Noun] Treasure not body part";"Chest";"Coffre";"Cofre";"Truhe";"Cassa";"Baú";"Arca";"Сундук";"Σεντούκι";"Sandık";"Kiste";"Kiste";"Kista";"Kist";"Skrzynia";"Kirstu";"箱";"箱";"箱";"상자";"Truhla";"Láda";"Cufăr";"หีบสมบัติ";"Ковчеже";"תיבה"
|
||||
"CONTEXT_ITEM_COND_MAGICAL";"[Adjective] [Default male] usage : [item] : [type]";"Magic";"Magique";"Mágico";"Magischer";"Magico";"Mágico";"Mágico";"Магический";"Μαγικ*";"Büyülü";"Magisk";"Magisk";"Magisk";"Magie";"Magiczny";"Taika";"魔法の";"魔法的";"魔法的";"마법";"Magický";"Varázslat";"Magic";"เวทย์มนต์";"Магически";"קסום"
|
||||
"CONTEXT_ITEM_COND_RUSTY";"[Adjective] [Default male] usage : [item] : [type]";"Rusty";"Rouillé";"Oxidado";"Rostig";"Arrugginito";"Enferrujado";"Enferrujado";"Ржавый";"Σκουριασμέν*";"Paslı";"Rusten";"Rusten";"Rostig";"Roestig";"Zardzewiały";"Ruosteinen";"錆びた";"生锈的";"生銹的";"녹슨";"Rezavý ";"Rozsdás";"Ruginit";"เก่า";"Ръждясал";"חלוד"
|
||||
"CONTEXT_ITEM_DAGGER";"[Noun] Small blade used by rogues";"Dagger";"Dague";"Daga";"Dolch";"Daga";"Adaga";"Adaga";"Кинжал";"Στιλέτο";"Hançer";"Dagger";"Dolk";"Dolk";"Dolk";"Sztylet";"Tikari";"短刀";"短剑";"短劍";"단검";"Dýka";"Tőr";"Pumnal";"มีด";"Кинжал";"פיגיון"
|
||||
"CONTEXT_ITEM_DIE_NOUN";"[Noun] [Noun] As in ';throw the die";"Die";"Dé";"Dado";"Würfel";"Dado";"Dado";"Dado";"Кубик";"ζάρι";"Zar";"Terning";"Terning";"Tärning";"Dobbelsteen";"Kość";"Noppa";"サイコロ";"骰子";"骰子";"주사위";"Zemřít";"Kocka";"Zar";"ตาย";"Зар";"קוביה"
|
||||
"CONTEXT_ITEM_DIE_PLURAL";"[Noun/Plural] As in ';throw two dice";"Dice";"Dés";"Dados";"Würfel";"Dadi";"Dados";"Dados";"Кубика";"ζάρια";"Zar";"Terninger";"Terninger";"Träningar";"Dobbelstenen";"Kości";"Nopat";"サイコロ";"骰子";"骰子";"주사위";"Kostky";"Dobókocka";"Zaruri";"ลูกเต๋า";"Зарове";"קוביות"
|
||||
"CONTEXT_ITEM_DOOR";"[Noun]";"Door";"Porte";"Puerta";"Tür";"Porta";"Porta";"Porta";"Дверь";"Πόρτα";"Kapı";"Dør";"Dør";"Dörr";"Deur";"Drzwi";"Ovi";"扉";"门";"門";"문";"Dveře";"Ajtó";"Ușa";"ประตู";"Врата";"דלת"
|
||||
"CONTEXT_ITEM_GAUNTLETS";"[Noun/Plural] Heavy protective warrior's gloves";"Gauntlets";"Gantelets";"Guanteletes";"Panzerhandschuh";"Guanti d'armatura";"Manopla";"Manopla";"Рукавицы";"Γάντια";"Zırh Eldiveni";"Stridshandsker";"Stridshansker";"Stridshandskar";"Pantser handschoenen";"Rękawica";"Taisteluhansikkaat";"籠手";"铁手套";"鐵手套";"건틀릿";"Rukavice";"Kesztyű";"Mănușă";"ถุงมือเกราะ";"Ръкавици";"כפפות-שריון"
|
||||
"CONTEXT_ITEM_ARMOR";"[Noun] Body armor";"Armor";"Armure";"Armadura";"Rüstung";"Armatura";"Armadura";"Armadura";"Броня";"Πανοπλία";"Zırh";"Rustning";"Rustning";"Rustning";"Pantser";"Zbroja";"Panssari";"鎧";"护甲";"護甲";"갑옷";"Brnění";"Páncél";"Armură";"ชุดเกราะ";"Броня";"שריון";"よろい";"brynja"
|
||||
"CONTEXT_ITEM_ARROW";"[Noun] Ammo for archers";"Arrow";"Flèche";"Flecha";"Pfeil";"Freccia";"Flecha";"Seta";"Стрела";"Βέλος";"Ok";"Pil";"Pil";"Pil";"Pijl";"Strzała";"Nuoli";"矢";"箭";"箭";"화살";"Šíp";"Nyílvessző";"Săgeată";"ลูกธนู";"Стрела";"חץ";"や";"Ör"
|
||||
"CONTEXT_ITEM_ARROW_PLURAL";"[Noun/Plural] Ammo for archers";"Arrows";"Flèches";"Flechas";"Pfeile";"Frecce";"Flechas";"Setas";"Стрелы";"Βέλη";"Oklar";"Pile";"Piler";"Pilar";"Pijlen";"Strzały";"Nuolet";"矢";"箭";"箭";"화살";"Šípy";"Nyílvesszők";"Săgeți";"ลูกธนู";"Стрели";"חיצים";"や";"Örvar"
|
||||
"CONTEXT_ITEM_BOMB";"[Noun]";"Bomb";"Bombe";"Bomba";"Bombe";"Bomba";"Bomba";"Bomba";"Бомба";"Βόμβα";"Bomba";"Bombe";"Bombe";"Bomb";"Bom";"Bomba";"Pommi";"爆弾";"炸弹";"炸彈";"폭탄";"Bomba";"Bomba";"Bombă";"ระเบิด";"Бомба";"פצצה";"ばくだん";"Bomba"
|
||||
"CONTEXT_ITEM_BOOK";"[Noun]";"Book";"Livre";"Libro";"Buch";"Libro";"Livro";"Livro";"Книга";"Βιβλίο";"Kitap";"Bog";"Bok";"Bok";"Boek";"Książka";"Kirja";"本";"书";"書";"책";"Kniha";"Könyv";"Carte";"หนังสือ";"Книга";"ספר";"ほん";"Bók"
|
||||
"CONTEXT_ITEM_BOOTS";"[Noun/Plural] Boots";"Boots";"Bottes";"Botas";"Stiefel";"Scarponi";"Botas";"Botas";"Ботинки";"Μπότες";"Bot";"Støvler";"Støvler";"Kängor";"Schoenen";"Buty";"Saappaat";"靴";"靴";"靴";"신발";"Boty";"Csizma";"Bocanci";"รองเท้าบูท";"Ботуши";"מגפיים";"くつ";"Skór"
|
||||
"CONTEXT_ITEM_BOW";"[Noun] Used by archers";"Bow";"Arc";"Arco";"Bogen";"Arco";"Arco";"Arco";"Лук";"Τόξο";"Yay";"Bue";"Bue";"Båge";"Boog";"Łuk";"Jousi";"弓";"弓";"弓";"활";"Luk";"Íj";"Arc";"ธนู";"Лък";"קשת";"ゆみ";"Bógur"
|
||||
"CONTEXT_ITEM_CARD";"[Noun]";"Card";"Carte";"Carta";"Karte";"Carta";"Carta";"Carta";"Карта";"Κάρτα";"Kart";"Kort";"Kort";"Kort";"Kaart";"Karta";"Kortti";"カード";"卡片";"卡片";"카드";"Karta";"Kártya";"Carte";"การ์ด";"Карта";"קלף";"カード";"Kort"
|
||||
"CONTEXT_ITEM_CARD_PLURAL";"[Noun/Plural]";"Cards";"Cartes";"Cartas";"Karten";"Carte";"Cartas";"Cartas";"Карты";"Κάρτες";"Kartlar";"Kort";"Kort";"Kort";"Kaarten";"Karty";"Kortit";"カード";"卡片";"卡片";"카드";"Karty";"Kártyák";"Carți";"การ์ด";"Карти";"קלפים";"カード";"Kort"
|
||||
"CONTEXT_ITEM_CHEST";"[Noun] Treasure not body part";"Chest";"Coffre";"Cofre";"Truhe";"Cassa";"Baú";"Arca";"Сундук";"Σεντούκι";"Sandık";"Kiste";"Kiste";"Kista";"Kist";"Skrzynia";"Kirstu";"箱";"箱";"箱";"상자";"Truhla";"Láda";"Cufăr";"หีบสมบัติ";"Ковчеже";"תיבה";"はこ";"Kista"
|
||||
"CONTEXT_ITEM_COND_MAGICAL";"[Adjective] [Default male] usage : [item] : [type]";"Magic";"Magique";"Mágico";"Magischer";"Magico";"Mágico";"Mágico";"Магический";"Μαγικ*";"Büyülü";"Magisk";"Magisk";"Magisk";"Magie";"Magiczny";"Taika";"魔法の";"魔法的";"魔法的";"마법";"Magický";"Varázslat";"Magic";"เวทย์มนต์";"Магически";"קסום";"まほうの";"Fjöokunnugur"
|
||||
"CONTEXT_ITEM_COND_RUSTY";"[Adjective] [Default male] usage : [item] : [type]";"Rusty";"Rouillé";"Oxidado";"Rostig";"Arrugginito";"Enferrujado";"Enferrujado";"Ржавый";"Σκουριασμέν*";"Paslı";"Rusten";"Rusten";"Rostig";"Roestig";"Zardzewiały";"Ruosteinen";"錆びた";"生锈的";"生銹的";"녹슨";"Rezavý";"Rozsdás";"Ruginit";"เก่า";"Ръждясал";"חלוד";"さびた";"Ryðga"
|
||||
"CONTEXT_ITEM_DAGGER";"[Noun] Small blade used by rogues";"Dagger";"Dague";"Daga";"Dolch";"Daga";"Adaga";"Adaga";"Кинжал";"Στιλέτο";"Hançer";"Dagger";"Dolk";"Dolk";"Dolk";"Sztylet";"Tikari";"短刀";"短剑";"短劍";"단검";"Dýka";"Tőr";"Pumnal";"มีด";"Кинжал";"פיגיון";"たんとう";"Rýtingur"
|
||||
"CONTEXT_ITEM_DIE_NOUN";"[Noun] [Noun] As in ';throw the die";"Die";"Dé";"Dado";"Würfel";"Dado";"Dado";"Dado";"Кубик";"ζάρι";"Zar";"Terning";"Terning";"Tärning";"Dobbelsteen";"Kość";"Noppa";"サイコロ";"骰子";"骰子";"주사위";"Zemřít";"Kocka";"Zar";"ตาย";"Зар";"קוביה";"サイコロ";"Teningur"
|
||||
"CONTEXT_ITEM_DIE_PLURAL";"[Noun/Plural] As in ';throw two dice";"Dice";"Dés";"Dados";"Würfel";"Dadi";"Dados";"Dados";"Кубика";"ζάρια";"Zar";"Terninger";"Terninger";"Träningar";"Dobbelstenen";"Kości";"Nopat";"サイコロ";"骰子";"骰子";"주사위";"Kostky";"Dobókocka";"Zaruri";"ลูกเต๋า";"Зарове";"קוביות";"サイコロ";"Teningar"
|
||||
"CONTEXT_ITEM_DOOR";"[Noun]";"Door";"Porte";"Puerta";"Tür";"Porta";"Porta";"Porta";"Дверь";"Πόρτα";"Kapı";"Dør";"Dør";"Dörr";"Deur";"Drzwi";"Ovi";"扉";"门";"門";"문";"Dveře";"Ajtó";"Ușa";"ประตู";"Врата";"דלת";"とびら";"Dyr"
|
||||
"CONTEXT_ITEM_GAUNTLETS";"[Noun/Plural] Heavy protective warrior's gloves";"Gauntlets";"Gantelets";"Guanteletes";"Panzerhandschuh";"Guanti d'armatura";"Manopla";"Manopla";"Рукавицы";"Γάντια";"Zırh Eldiveni";"Stridshandsker";"Stridshansker";"Stridshandskar";"Pantser handschoenen";"Rękawica";"Taisteluhansikkaat";"籠手";"铁手套";"鐵手套";"건틀릿";"Rukavice";"Kesztyű";"Mănușă";"ถุงมือเกราะ";"Ръкавици";"כפפות-שריון";"こて";""
|
||||
"CONTEXT_ITEM_GEM";"[Noun] Gem or jewel";"Gem";"Gemme";"Gema";"Juwel";"Gemma";"Jóia";"Jóia";"Самоцвет";"Πετράδι";"Mücevher";"Juvel";"Juvel";"Juvel";"Edelsteen";"Klejnot";"Jalokivi";"ジェム";"宝石";"寶石";"보석";"Klenot";"Drágakő";"Giuvaer";"เพชร";"Скъпоценен камък";"אבן-חן"
|
||||
"CONTEXT_ITEM_GIFT_NOUN";"[Noun]";"Gift";"Cadeau";"Regalo";"Geschenk";"Regalo";"Presente";"Presente";"Подарок";"Δώρο";"Hediye";"Gave";"Gave";"Present";"Cadeau";"Prezent";"Lahja";"ギフト";"赠品";"贈品";"선물";"Dárek";"Ajándék";"Cadou";"ของขวัญ";"Подарък";"מתנה"
|
||||
"CONTEXT_ITEM_GIFT_PLURAL";"[Noun/Plural]";"Gifts";"Cadeaux";"Regalos";"Geschenke";"Regali";"Presentes";"Presentes";"Подарки";"Δώρα";"Hediyeler";"Gaver";"Gaver";"Presenter";"Cadeaus";"Prezenty";"Lahjat";"ギフト";"赠品";"贈品";"선물";"Dárky";"Ajándékok";"Cadouri";"ของขวัญ";"Подаръци";"מתנות"
|
||||
@@ -188,9 +188,9 @@
|
||||
"CREDITS_TRANSLATION";"";"Translation";"Traduction";"Traducción";"Übersetzung";"Traduzione";"Tradução";"Tradução";"Перевод";"Μετάφραση";"Çeviri";"Oversættelse";"Oversettelse";"Översättning";"Vertaling";"Tłumaczenia";"Käännöstyö";"翻訳";"翻译 ";"翻譯";"번역";"Překlad";"Fordítás";"Traducere";"แปลภาษา";"Превод";"תרגום"
|
||||
|
||||
"ERROR_DEVICE_NOT_FOUND";"Use %1$s in place of [device]";"No %1$s detected.";"Aucun %1$s détecté.";"No se detectó %1$s.";"%1$s nicht erkannt.";"Nessun %1$s trovato.";"%1$s não encontrado.";"O dispositivo %1$s não foi detectado.";"%1$s не обнаружен.";"Δεν εντοπίστηκε %1$s.";"%1$s aygıt algılanamadı.";"Ingen %1$s fundet.";"Ingen %1$s funnet.";"%1$s kunde inte hittas.";"Geen %1$s gevonden.";"Nie wykryto %1$s.";"%1$s ei havaittu.";"%1$s が接続されていません。";"未检测到%1$s。";"未檢測到%1$s。";"%1$s을(를) 찾을 수 없습니다.";"Zařízení %1$s nenalezeno.";"%1$s nem található.";"Nu s-a detectat niciun %1$s.";"ตรวจไม่พบอุปกรณ์ %1$s";"Няма засечен %1$s.";"לא נמצא רכיב %1$s."
|
||||
"ERROR_GENERIC_ERRCODE";"";"Error code:";"Code d'erreur :";"Código de error:";"Fehlercode:";"Codice errore:";"Código do erro:";"Código do erro:";"Код ошибки:";"Κωδικός σφάλματος:";"Hata kodu:";"Fejlkode:";"Feilkode:";"Felkod:";"Foutcode:";"Kod błędu:";"Virhekoodi: ";"エラーコード:";"错误代码:";"錯誤代碼:";"오류 코드:";"Kód chyby:";"Hibakód:";"Cod de eroare:";"รหัสข้อผิดพลาด";"Код на грешката:";"טעות מספר:"
|
||||
"ERROR_GENERIC_TEXT";"";"An error has occured.";"Une erreur s'est produite.";"Ha ocurrido un error.";"Ein Fehler ist aufgetreten.";"È stato riscontrato un errore.";"Ocorreu um erro.";"Ocorreu um erro.";"Произошла ошибка.";"Γενικό σφάλμα.";"Bir hata oluştu.";"Der er sket en fejl.";"Det har skjedd en feil.";"Ett fel har uppstått.";"Er is een fout opgetreden.";"Wystąpił jakiś błąd.";"On tapahtunut virhe.";"エラーが発生しました。";"发生了错误。";"發生了錯誤。";"오류가 발생했습니다.";"Vyskytla se chyba.";"Hiba történt.";"A apărut o eroare.";"เกิดความผิดพลาดบางประการ";"Грешка в изпълнението.";"ארעה טעות."
|
||||
"ERROR_GENERIC_INVALID_NAME";"";"Invalid name.";"Nom incorrect.";"El nombre no es válido.";"Ungültiger Name.";"Nome non valido.";"Nome inválido.";"Nome Inválido.";"Недопустимое название.";"Μη έγκυρο όνομα.";"Geçersiz İsim.";"Ugyldigt navn.";"Ugyldig navn.";"Ogiltigt Namn.";"Ongeldige naam.";"Błędna nazwa.";"Virheellinen nimi.";"無効な名前です。";"名称无效。";"名稱無效。";"이름이 잘못되었습니다.";"Neplatný název.";"Érvénytelen név.";"Nume Invalid.";"ชื่อไม่ถูกต้อง";"Невалидно име.";"שם לא נכון!"
|
||||
"ERROR_GENERIC_ERRCODE";"";"Error code: ";"Code d'erreur : ";"Código de error: ";"Fehlercode:" ;"Codice errore: ";"Código do erro: ";"Código do erro: ";"Код ошибки: ";"Κωδικός σφάλματος: ";"Hata kodu: ";"Fejlkode: ";"Feilkode: ";"Felkod: ";"Foutcode: ";"Kod błędu: ";"Virhekoodi: ";"エラーコード:";"错误代码:";"錯誤代碼:";"오류 코드: ";"Kód chyby: ";"Hibakód: ";"Cod de eroare: ";"รหัสข้อผิดพลาด ";"Код на грешката: ";"טעות מספר: ";"エラーコード:";"Villa númer: "
|
||||
"ERROR_GENERIC_TEXT";"";"An error has occured.";"Une erreur s'est produite.";"Ha ocurrido un error.";"Ein Fehler ist aufgetreten.";"È stato riscontrato un errore.";"Ocorreu um erro.";"Ocorreu um erro.";"Произошла ошибка.";"Γενικό σφάλμα.";"Bir hata oluştu.";"Der er sket en fejl.";"Det har skjedd en feil.";"Ett fel har uppstått.";"Er is een fout opgetreden.";"Wystąpił jakiś błąd.";"On tapahtunut virhe.";"エラーが発生しました。";"发生了错误。";"發生了錯誤。";"오류가 발생했습니다.";"Vyskytla se chyba.";"Hiba történt.";"A apărut o eroare.";"เกิดความผิดพลาดบางประการ";"Грешка в изпълнението.";"ארעה טעות.";"エラーが はっせい しました。";"Villa hefur komið upp."
|
||||
"ERROR_GENERIC_INVALID_NAME";"";"Invalid name.";"Nom incorrect.";"El nombre no es válido.";"Ungültiger Name.";"Nome non valido.";"Nome inválido.";"Nome Inválido.";"Недопустимое название.";"Μη έγκυρο όνομα.";"Geçersiz İsim.";"Ugyldigt navn.";"Ugyldig navn.";"Ogiltigt Namn.";"Ongeldige naam.";"Błędna nazwa.";"Virheellinen nimi.";"無効な名前です。";"名称无效。";"名稱無效。";"이름이 잘못되었습니다.";"Neplatný název.";"Érvénytelen név.";"Nume Invalid.";"ชื่อไม่ถูกต้อง";"Невалидно име.";"שם לא נכון";"むこうな なまえです。";"Ógilt nafn."
|
||||
"ERROR_GENERIC_CHEATING";"";"Cheats detected!";"Codes triche détectés !";"¡Trampas detectadas!";"Cheats entdeckt!";"Trucchi individuati!";"Trapaças detectadas!";"Batota Detetada!";"Используются читы!";"Ανιχνεύτηκε κλεψιά!";"Hile Algılandı!";"Snydekoder opdaget!";"Juksekoder oppdaget!";"Fusk hittades!";"Cheats gebruikt!";"Wykryto użycie kodów!";"Huijauksia havaittu!";"チート検出!";"检测到作弊!";"已偵測到作弊!";"치트 발견!";"Detekovány cheaty!";"Csalást észleltünk!";"Cheat-uri detectate!";"Cheats ตรวจสอบพบ!";"Засечени чийтове!";"רמאות!"
|
||||
"ERROR_NETWORK_CONNECTION_LOST";"";"Connection lost.";"Connexion perdue.";"Conexión perdida.";"Verbindung verloren.";"Connessione persa.";"Conexão perdida.";"Ligação perdida.";"Соединение потеряно.";"Χάθηκε η σύνδεση.";"Bağlantı kesildi.";"Mistet forbindelse.";"Mistet forbindelsen.";"Anslutningen bröts.";"Verbinding verloren.";"Stracono połączenie.";"Yhteys menetetty.";"接続が切断されました。";"网络连接失败。";"網絡連接失敗。";"연결이 끊어졌습니다.";"Spojení ztraceno.";"A kapcsolat megszakadt.";"S-a întrerupt conexiunea.";"การเชื่อมต่อผิดพลาด";"Връзката е изгубена.";"החיבור לרשת אבד."
|
||||
"ERROR_NETWORK_DISCONNECTED_YOUR_PLAYER";"";"The other player has disconnected.";"L'autre joueur s'est déconnecté.";"El otro jugador se ha desconectado.";"Der andere Spieler hat die Verbindung getrennt.";"L'altro giocatore si è disconnesso.";"O outro jogador foi desconectado.";"O outro jogador perdeu a ligação.";"Другой игрок отключился.";"Ο/η άλλος παίχτης αποσυνδέθηκε.";"Diğer oyuncunun bağlantısı kesildi.";"Den anden spiller har afbrudt forbindelsen.";"Den andre spilleren har koblet ifra.";"Den andra spelaren har kopplat ifrån.";"De andere speler heeft het spel verlaten.";"Gracz się rozłączył.";"Toinen pelaaja on menettänyt yhteyden.";"他のプレイヤーが接続を切断しました。";"另一个玩家断开了连接。";"另一個玩家斷線。";"다른 플레이어가 연결을 끊었습니다.";"Hráč se odpojil.";"Megszakadt a kapcsolat a másik játékossal.";"Celalalt jucator s-a deconectat.";"ผู้เล่นอื่นหลุดการเชื่อมต่อ";"Изгубена връзка с играч.";"השחקן התנתק מהרשת."
|
||||
@@ -318,7 +318,7 @@
|
||||
"MENU_CUSTOMIZE_ARM_PLURAL";"";"Arms";"Bras";"Brazos";"Arme";"Braccia";"Braços";"Braços";"Руки";"Μπράτσα";"Kollar";"Arme";"Armer";"Armar";"Armen";"Ramiona";"Käsivarret";"腕";"臂";"臂";"팔";"Paže";"Karok";"Brațe";"แขน";"Ръце";"זרועות"
|
||||
"MENU_CUSTOMIZE_CHEST";"Body part not treasure";"Chest";"Torse";"Pecho";"Brust";"Torso";"Peito";"Peito";"Грудь";"Στήθος";"Gövde";"Bryst";"Bryst";"Bröst";"Borst";"Pierś";"Rinta";"胸";"胸";"胸";"가슴";"Hrudník";"Mell";"Piept";"หน้าอก";"Гърди";"חזה"
|
||||
"MENU_CUSTOMIZE_CHIN";"";"Chin";"Menton";"Barbilla";"Kinn";"Mento";"Queixo";"Queixo";"Подбородок";"Πηγούνι";"Çene";"Hage";"Hake";"Haka";"Kin";"Broda";"Leuka";"顎";"下巴";"下巴";"턱";"Brada";"Áll";"Barbă";"คาง";"Брадичка";"סנטר"
|
||||
"MENU_CUSTOMIZE_COLOR";"";"Color";"Couleur";"Color";"Farbe";"Colore";"Cor";"Cor";"Цвет";"Χρώμα";"Renk";"Farve";"Farge";"Färg";"Kleur";"Kolor";"Väri";"色";"颜色";"顏色";"색";"Barva";"Szín";"Culoare";"สี";"Цвят";"צבע"
|
||||
"MENU_CUSTOMIZE_COLOR";"";"Color";"Couleur";"Color";"Farbe";"Colore";"Cor";"Cor";"Цвет";"Χρώμα";"Renk";"Farve";"Farge";"Färg";"Kleur";"Kolor";"Väri";"色";"颜色";"顏色";"색";"Barva";"Szín";"Culoare";"สี";"Цвят";"צבע";"いろ";"Litur"
|
||||
"MENU_CUSTOMIZE_EAR";"";"Ear";"Oreille";"Oreja";"Ohr";"Orecchio";"Orelha";"Orelha";"Ухо";"Αυτί";"Kulak";"Øre";"Øre";"Öra";"Oor";"Ucho";"Korva";"耳";"耳";"耳";"귀";"Ucho";"Fül";"Ureche";"หู";"Ухо";"אוזן"
|
||||
"MENU_CUSTOMIZE_EAR_PLURAL";"";"Ears";"Oreilles";"Orejas";"Ohren";"Orecchie";"Orelhas";"Orelhas";"Уши";"Αυτιά";"Kulaklar";"Ører";"Ører";"Öron";"Oren";"Uszy";"Korvat";"耳";"耳朵";"耳朵";"귀";"Uši";"Fülek";"Urechi";"หู";"Уши";"אוזניים"
|
||||
"MENU_CUSTOMIZE_EYE";"";"Eye";"Oeil";"Ojo";"Auge";"Occhio";"Olho";"Olho";"Глаз";"Μάτι";"Göz";"Øje";"Øye";"Öga";"Oog";"Oko";"Silmä";"目";"眼";"眼";"눈";"Oko";"Szem";"Ochi";"ตา";"Око";"עין"
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 191 and column 95.
|
@@ -1,124 +0,0 @@
|
||||
# Nameset - Russian
|
||||
# Data taken from www.behindthename.com
|
||||
|
||||
NAMESET_RUSSIAN_MALE_001=Abram
|
||||
NAMESET_RUSSIAN_MALE_002=Adam
|
||||
NAMESET_RUSSIAN_MALE_003=Adrian
|
||||
NAMESET_RUSSIAN_MALE_004=Albert
|
||||
NAMESET_RUSSIAN_MALE_005=Alexey
|
||||
NAMESET_RUSSIAN_MALE_006=Anton
|
||||
NAMESET_RUSSIAN_MALE_007=Artur
|
||||
NAMESET_RUSSIAN_MALE_008=Benedikt
|
||||
NAMESET_RUSSIAN_MALE_009=Boris
|
||||
NAMESET_RUSSIAN_MALE_010=David
|
||||
NAMESET_RUSSIAN_MALE_011=Denis
|
||||
NAMESET_RUSSIAN_MALE_012=Dmitriy
|
||||
NAMESET_RUSSIAN_MALE_013=Eduard
|
||||
NAMESET_RUSSIAN_MALE_014=Fyodor
|
||||
NAMESET_RUSSIAN_MALE_015=Genya
|
||||
NAMESET_RUSSIAN_MALE_016=Grigoriy
|
||||
NAMESET_RUSSIAN_MALE_017=Igor
|
||||
NAMESET_RUSSIAN_MALE_018=Iona
|
||||
NAMESET_RUSSIAN_MALE_019=Iosif
|
||||
NAMESET_RUSSIAN_MALE_020=Isaak
|
||||
NAMESET_RUSSIAN_MALE_021=Isidor
|
||||
NAMESET_RUSSIAN_MALE_022=Ivan
|
||||
NAMESET_RUSSIAN_MALE_023=Kenya
|
||||
NAMESET_RUSSIAN_MALE_024=Konstantin
|
||||
NAMESET_RUSSIAN_MALE_025=Luka
|
||||
NAMESET_RUSSIAN_MALE_026=Maks
|
||||
NAMESET_RUSSIAN_MALE_027=Maksim
|
||||
NAMESET_RUSSIAN_MALE_028=Mark
|
||||
NAMESET_RUSSIAN_MALE_029=Marlen
|
||||
NAMESET_RUSSIAN_MALE_030=Martin
|
||||
NAMESET_RUSSIAN_MALE_031=Maxim
|
||||
NAMESET_RUSSIAN_MALE_032=Mikhail
|
||||
NAMESET_RUSSIAN_MALE_033=Milan
|
||||
NAMESET_RUSSIAN_MALE_034=Nestor
|
||||
NAMESET_RUSSIAN_MALE_035=Nika
|
||||
NAMESET_RUSSIAN_MALE_036=Nikita
|
||||
NAMESET_RUSSIAN_MALE_037=Nikolay
|
||||
NAMESET_RUSSIAN_MALE_038=Pavel
|
||||
NAMESET_RUSSIAN_MALE_039=Pyotr
|
||||
NAMESET_RUSSIAN_MALE_040=Robert
|
||||
NAMESET_RUSSIAN_MALE_041=Roma
|
||||
NAMESET_RUSSIAN_MALE_042=Roman
|
||||
NAMESET_RUSSIAN_MALE_043=Rudolf
|
||||
NAMESET_RUSSIAN_MALE_044=Sasha
|
||||
NAMESET_RUSSIAN_MALE_045=Sergey
|
||||
NAMESET_RUSSIAN_MALE_046=Stas
|
||||
NAMESET_RUSSIAN_MALE_047=Vadim
|
||||
NAMESET_RUSSIAN_MALE_048=Valentin
|
||||
NAMESET_RUSSIAN_MALE_049=Valeriy
|
||||
NAMESET_RUSSIAN_MALE_050=Viktor
|
||||
NAMESET_RUSSIAN_MALE_051=Vladimir
|
||||
NAMESET_RUSSIAN_MALE_052=Yegor
|
||||
NAMESET_RUSSIAN_MALE_053=Yuriy
|
||||
NAMESET_RUSSIAN_MALE_054=Zhenya
|
||||
|
||||
|
||||
NAMESET_RUSSIAN_FEMALE_001=Agata
|
||||
NAMESET_RUSSIAN_FEMALE_002=Aleksandra
|
||||
NAMESET_RUSSIAN_FEMALE_003=Alisa
|
||||
NAMESET_RUSSIAN_FEMALE_004=Alla
|
||||
NAMESET_RUSSIAN_FEMALE_005=Anastasia
|
||||
NAMESET_RUSSIAN_FEMALE_006=Angela
|
||||
NAMESET_RUSSIAN_FEMALE_007=Angelina
|
||||
NAMESET_RUSSIAN_FEMALE_008=Anna
|
||||
NAMESET_RUSSIAN_FEMALE_009=Antonina
|
||||
NAMESET_RUSSIAN_FEMALE_010=Anya
|
||||
NAMESET_RUSSIAN_FEMALE_011=Adriana
|
||||
NAMESET_RUSSIAN_FEMALE_012=Asya
|
||||
NAMESET_RUSSIAN_FEMALE_013=Diana
|
||||
NAMESET_RUSSIAN_FEMALE_014=Dominika
|
||||
NAMESET_RUSSIAN_FEMALE_015=Dunya
|
||||
NAMESET_RUSSIAN_FEMALE_016=Elena
|
||||
NAMESET_RUSSIAN_FEMALE_017=Eva
|
||||
NAMESET_RUSSIAN_FEMALE_018=Filippa
|
||||
NAMESET_RUSSIAN_FEMALE_019=Gala
|
||||
NAMESET_RUSSIAN_FEMALE_020=Inga
|
||||
NAMESET_RUSSIAN_FEMALE_021=Ira
|
||||
NAMESET_RUSSIAN_FEMALE_022=Irina
|
||||
NAMESET_RUSSIAN_FEMALE_023=Isidora
|
||||
NAMESET_RUSSIAN_FEMALE_024=Ivanna
|
||||
NAMESET_RUSSIAN_FEMALE_025=Karina
|
||||
NAMESET_RUSSIAN_FEMALE_026=Katerina
|
||||
NAMESET_RUSSIAN_FEMALE_027=Katia
|
||||
NAMESET_RUSSIAN_FEMALE_028=Kira
|
||||
NAMESET_RUSSIAN_FEMALE_029=Klara
|
||||
NAMESET_RUSSIAN_FEMALE_030=Kristina
|
||||
NAMESET_RUSSIAN_FEMALE_031=Lana
|
||||
NAMESET_RUSSIAN_FEMALE_032=Lara
|
||||
NAMESET_RUSSIAN_FEMALE_033=Larisa
|
||||
NAMESET_RUSSIAN_FEMALE_034=Lena
|
||||
NAMESET_RUSSIAN_FEMALE_035=Lilia
|
||||
NAMESET_RUSSIAN_FEMALE_036=Lilya
|
||||
NAMESET_RUSSIAN_FEMALE_037=Liza
|
||||
NAMESET_RUSSIAN_FEMALE_038=Margarita
|
||||
NAMESET_RUSSIAN_FEMALE_039=Marina
|
||||
NAMESET_RUSSIAN_FEMALE_040=Milena
|
||||
NAMESET_RUSSIAN_FEMALE_041=Natalya
|
||||
NAMESET_RUSSIAN_FEMALE_042=Natasha
|
||||
NAMESET_RUSSIAN_FEMALE_043=Nika
|
||||
NAMESET_RUSSIAN_FEMALE_044=Nina
|
||||
NAMESET_RUSSIAN_FEMALE_045=Olga
|
||||
NAMESET_RUSSIAN_FEMALE_046=Roksana
|
||||
NAMESET_RUSSIAN_FEMALE_047=Sabina
|
||||
NAMESET_RUSSIAN_FEMALE_048=Sasha
|
||||
NAMESET_RUSSIAN_FEMALE_049=Selena
|
||||
NAMESET_RUSSIAN_FEMALE_050=Sonya
|
||||
NAMESET_RUSSIAN_FEMALE_051=Susanna
|
||||
NAMESET_RUSSIAN_FEMALE_052=Tamara
|
||||
NAMESET_RUSSIAN_FEMALE_053=Tanya
|
||||
NAMESET_RUSSIAN_FEMALE_054=Tasha
|
||||
NAMESET_RUSSIAN_FEMALE_055=Tatiana
|
||||
NAMESET_RUSSIAN_FEMALE_056=Tatyana
|
||||
NAMESET_RUSSIAN_FEMALE_057=Toma
|
||||
NAMESET_RUSSIAN_FEMALE_058=Valentina
|
||||
NAMESET_RUSSIAN_FEMALE_059=Vera
|
||||
NAMESET_RUSSIAN_FEMALE_060=Veronika
|
||||
NAMESET_RUSSIAN_FEMALE_061=Violetta
|
||||
NAMESET_RUSSIAN_FEMALE_062=Yana
|
||||
NAMESET_RUSSIAN_FEMALE_063=Yuliana
|
||||
NAMESET_RUSSIAN_FEMALE_064=Zina
|
||||
NAMESET_RUSSIAN_FEMALE_065=Zoya
|
||||
@@ -1,334 +0,0 @@
|
||||
# Nameset - Scandinavian
|
||||
# Data taken from www.behindthename.com
|
||||
# Translator note: this nameset does not contain name that has [ɹ](american english 'r') sound (except '-er'). i.e. for Korean, 'Carl' should be '카를', 'Aleksander' should be '알렉산더'.
|
||||
|
||||
NAMESET_SCANDINAVIAN_MALE_1=Adam
|
||||
NAMESET_SCANDINAVIAN_MALE_2=Adrian
|
||||
NAMESET_SCANDINAVIAN_MALE_3=Aksel
|
||||
NAMESET_SCANDINAVIAN_MALE_4=Albert
|
||||
NAMESET_SCANDINAVIAN_MALE_5=Albin
|
||||
NAMESET_SCANDINAVIAN_MALE_6=Alek
|
||||
NAMESET_SCANDINAVIAN_MALE_7=Alexander
|
||||
NAMESET_SCANDINAVIAN_MALE_8=Alfred
|
||||
NAMESET_SCANDINAVIAN_MALE_9=Amund
|
||||
NAMESET_SCANDINAVIAN_MALE_10=Andreas
|
||||
NAMESET_SCANDINAVIAN_MALE_11=Anton
|
||||
NAMESET_SCANDINAVIAN_MALE_12=Aron
|
||||
NAMESET_SCANDINAVIAN_MALE_13=Alvard
|
||||
NAMESET_SCANDINAVIAN_MALE_14=August
|
||||
NAMESET_SCANDINAVIAN_MALE_15=Axel
|
||||
NAMESET_SCANDINAVIAN_MALE_16=Björn
|
||||
NAMESET_SCANDINAVIAN_MALE_17=Bjørn
|
||||
NAMESET_SCANDINAVIAN_MALE_18=Carl
|
||||
NAMESET_SCANDINAVIAN_MALE_19=Casper
|
||||
NAMESET_SCANDINAVIAN_MALE_20=Christian
|
||||
NAMESET_SCANDINAVIAN_MALE_21=Christoffer
|
||||
NAMESET_SCANDINAVIAN_MALE_22=Daniel
|
||||
NAMESET_SCANDINAVIAN_MALE_23=David
|
||||
# pronounced as [dɑvid], not [deivɪd]
|
||||
NAMESET_SCANDINAVIAN_MALE_24=Edmund
|
||||
NAMESET_SCANDINAVIAN_MALE_25=Edvard
|
||||
NAMESET_SCANDINAVIAN_MALE_26=Edvin
|
||||
NAMESET_SCANDINAVIAN_MALE_27=Eirik
|
||||
NAMESET_SCANDINAVIAN_MALE_28=Elias
|
||||
NAMESET_SCANDINAVIAN_MALE_29=Elis
|
||||
NAMESET_SCANDINAVIAN_MALE_30=Emanuel
|
||||
NAMESET_SCANDINAVIAN_MALE_31=Emil
|
||||
NAMESET_SCANDINAVIAN_MALE_32=Endre
|
||||
NAMESET_SCANDINAVIAN_MALE_33=Erik
|
||||
NAMESET_SCANDINAVIAN_MALE_34=Erlend
|
||||
NAMESET_SCANDINAVIAN_MALE_35=Espen
|
||||
NAMESET_SCANDINAVIAN_MALE_36=Fabian
|
||||
NAMESET_SCANDINAVIAN_MALE_37=Felix
|
||||
NAMESET_SCANDINAVIAN_MALE_38=Filip
|
||||
NAMESET_SCANDINAVIAN_MALE_39=Frederik
|
||||
NAMESET_SCANDINAVIAN_MALE_40=Gabriel
|
||||
NAMESET_SCANDINAVIAN_MALE_41=Gustav
|
||||
NAMESET_SCANDINAVIAN_MALE_42=Haakon
|
||||
NAMESET_SCANDINAVIAN_MALE_43=Hákon
|
||||
NAMESET_SCANDINAVIAN_MALE_44=Håkon
|
||||
NAMESET_SCANDINAVIAN_MALE_45=Hampus
|
||||
NAMESET_SCANDINAVIAN_MALE_46=Hanne
|
||||
NAMESET_SCANDINAVIAN_MALE_47=Hans
|
||||
NAMESET_SCANDINAVIAN_MALE_48=Håvard
|
||||
NAMESET_SCANDINAVIAN_MALE_49=Henrik
|
||||
NAMESET_SCANDINAVIAN_MALE_50=Herman
|
||||
NAMESET_SCANDINAVIAN_MALE_51=Hjalmar
|
||||
NAMESET_SCANDINAVIAN_MALE_52=Hugo
|
||||
NAMESET_SCANDINAVIAN_MALE_53=Isak
|
||||
NAMESET_SCANDINAVIAN_MALE_54=Ivar
|
||||
NAMESET_SCANDINAVIAN_MALE_55=Jacob
|
||||
NAMESET_SCANDINAVIAN_MALE_56=Jakob
|
||||
NAMESET_SCANDINAVIAN_MALE_57=Jan
|
||||
NAMESET_SCANDINAVIAN_MALE_58=Jens
|
||||
NAMESET_SCANDINAVIAN_MALE_59=Jeppe
|
||||
NAMESET_SCANDINAVIAN_MALE_60=Jesper
|
||||
NAMESET_SCANDINAVIAN_MALE_61=Joakim
|
||||
# pronounced as [joakim], not [hoakim] as this is scandinavian section.
|
||||
NAMESET_SCANDINAVIAN_MALE_62=Joel
|
||||
NAMESET_SCANDINAVIAN_MALE_63=Johan
|
||||
NAMESET_SCANDINAVIAN_MALE_64=Jóhannes
|
||||
NAMESET_SCANDINAVIAN_MALE_65=Jón
|
||||
NAMESET_SCANDINAVIAN_MALE_66=Jon
|
||||
NAMESET_SCANDINAVIAN_MALE_67=Jónas
|
||||
NAMESET_SCANDINAVIAN_MALE_68=Jonas
|
||||
NAMESET_SCANDINAVIAN_MALE_69=Jonathan
|
||||
NAMESET_SCANDINAVIAN_MALE_70=Jörgen
|
||||
NAMESET_SCANDINAVIAN_MALE_71=Jørgen
|
||||
NAMESET_SCANDINAVIAN_MALE_72=Josef
|
||||
NAMESET_SCANDINAVIAN_MALE_73=Kalle
|
||||
NAMESET_SCANDINAVIAN_MALE_74=Kasper
|
||||
NAMESET_SCANDINAVIAN_MALE_75=Kevin
|
||||
NAMESET_SCANDINAVIAN_MALE_76=Kim
|
||||
NAMESET_SCANDINAVIAN_MALE_77=Knut
|
||||
# pronounced as [knut]
|
||||
NAMESET_SCANDINAVIAN_MALE_78=Kristian
|
||||
NAMESET_SCANDINAVIAN_MALE_79=Kristoffer
|
||||
NAMESET_SCANDINAVIAN_MALE_80=Lars
|
||||
NAMESET_SCANDINAVIAN_MALE_81=Lasse
|
||||
NAMESET_SCANDINAVIAN_MALE_82=Laurits
|
||||
NAMESET_SCANDINAVIAN_MALE_83=Leo
|
||||
NAMESET_SCANDINAVIAN_MALE_84=Linus
|
||||
# pronounced as [linus], not [lainəs] as this is scandinavian section.
|
||||
NAMESET_SCANDINAVIAN_MALE_85=Loke
|
||||
NAMESET_SCANDINAVIAN_MALE_86=Love
|
||||
# NOT pronounced as [ləv]!
|
||||
NAMESET_SCANDINAVIAN_MALE_87=Ludvig
|
||||
NAMESET_SCANDINAVIAN_MALE_88=Lukas
|
||||
NAMESET_SCANDINAVIAN_MALE_89=Mads
|
||||
NAMESET_SCANDINAVIAN_MALE_90=Magnus
|
||||
NAMESET_SCANDINAVIAN_MALE_91=Malte
|
||||
NAMESET_SCANDINAVIAN_MALE_92=Malthe
|
||||
NAMESET_SCANDINAVIAN_MALE_93=Marcus
|
||||
NAMESET_SCANDINAVIAN_MALE_94=Maria
|
||||
NAMESET_SCANDINAVIAN_MALE_95=Marius
|
||||
NAMESET_SCANDINAVIAN_MALE_96=Markus
|
||||
NAMESET_SCANDINAVIAN_MALE_97=Martin
|
||||
NAMESET_SCANDINAVIAN_MALE_98=Cyrus
|
||||
# need more exotic name starting with 'C'...
|
||||
NAMESET_SCANDINAVIAN_MALE_99=Mats
|
||||
NAMESET_SCANDINAVIAN_MALE_100=Mattias
|
||||
NAMESET_SCANDINAVIAN_MALE_101=Max
|
||||
NAMESET_SCANDINAVIAN_MALE_102=Maximillian
|
||||
NAMESET_SCANDINAVIAN_MALE_103=Melker
|
||||
NAMESET_SCANDINAVIAN_MALE_104=Michael
|
||||
NAMESET_SCANDINAVIAN_MALE_105=Mikael
|
||||
NAMESET_SCANDINAVIAN_MALE_106=Mikkel
|
||||
NAMESET_SCANDINAVIAN_MALE_107=Morten
|
||||
NAMESET_SCANDINAVIAN_MALE_108=Niklas
|
||||
NAMESET_SCANDINAVIAN_MALE_109=Nikolaj
|
||||
NAMESET_SCANDINAVIAN_MALE_110=Nils
|
||||
NAMESET_SCANDINAVIAN_MALE_111=Odin
|
||||
NAMESET_SCANDINAVIAN_MALE_112=Ola
|
||||
NAMESET_SCANDINAVIAN_MALE_113=Olaf
|
||||
NAMESET_SCANDINAVIAN_MALE_114=Olav
|
||||
NAMESET_SCANDINAVIAN_MALE_115=Ole
|
||||
NAMESET_SCANDINAVIAN_MALE_116=Oliver
|
||||
NAMESET_SCANDINAVIAN_MALE_117=Olle
|
||||
NAMESET_SCANDINAVIAN_MALE_118=Olof
|
||||
NAMESET_SCANDINAVIAN_MALE_119=Oscar
|
||||
NAMESET_SCANDINAVIAN_MALE_120=Óskar
|
||||
NAMESET_SCANDINAVIAN_MALE_121=Oskar
|
||||
NAMESET_SCANDINAVIAN_MALE_122=Otto
|
||||
NAMESET_SCANDINAVIAN_MALE_123=Patrik
|
||||
NAMESET_SCANDINAVIAN_MALE_124=Peder
|
||||
NAMESET_SCANDINAVIAN_MALE_125=Per
|
||||
NAMESET_SCANDINAVIAN_MALE_126=Petter
|
||||
NAMESET_SCANDINAVIAN_MALE_127=Philip
|
||||
NAMESET_SCANDINAVIAN_MALE_128=Pontus
|
||||
NAMESET_SCANDINAVIAN_MALE_129=Preben
|
||||
NAMESET_SCANDINAVIAN_MALE_130=Rafael
|
||||
NAMESET_SCANDINAVIAN_MALE_131=Reid
|
||||
NAMESET_SCANDINAVIAN_MALE_132=Robert
|
||||
NAMESET_SCANDINAVIAN_MALE_133=Robin
|
||||
NAMESET_SCANDINAVIAN_MALE_134=Samuel
|
||||
NAMESET_SCANDINAVIAN_MALE_135=Sander
|
||||
NAMESET_SCANDINAVIAN_MALE_136=Sebastian
|
||||
NAMESET_SCANDINAVIAN_MALE_137=Sigge
|
||||
NAMESET_SCANDINAVIAN_MALE_138=Sigurd
|
||||
NAMESET_SCANDINAVIAN_MALE_139=Simen
|
||||
NAMESET_SCANDINAVIAN_MALE_140=Simon
|
||||
NAMESET_SCANDINAVIAN_MALE_141=Sindre
|
||||
NAMESET_SCANDINAVIAN_MALE_142=Sixten
|
||||
NAMESET_SCANDINAVIAN_MALE_143=Stefan
|
||||
NAMESET_SCANDINAVIAN_MALE_144=Steffen
|
||||
NAMESET_SCANDINAVIAN_MALE_145=Stian
|
||||
NAMESET_SCANDINAVIAN_MALE_146=Svante
|
||||
NAMESET_SCANDINAVIAN_MALE_147=Sven
|
||||
NAMESET_SCANDINAVIAN_MALE_148=Teodor
|
||||
NAMESET_SCANDINAVIAN_MALE_149=Theodor
|
||||
NAMESET_SCANDINAVIAN_MALE_150=Thomas
|
||||
NAMESET_SCANDINAVIAN_MALE_151=Tim
|
||||
NAMESET_SCANDINAVIAN_MALE_152=Tobias
|
||||
NAMESET_SCANDINAVIAN_MALE_153=Tor
|
||||
NAMESET_SCANDINAVIAN_MALE_154=Truls
|
||||
NAMESET_SCANDINAVIAN_MALE_155=Ulrik
|
||||
NAMESET_SCANDINAVIAN_MALE_156=Valdemar
|
||||
NAMESET_SCANDINAVIAN_MALE_157=Valter
|
||||
NAMESET_SCANDINAVIAN_MALE_158=Vidar
|
||||
NAMESET_SCANDINAVIAN_MALE_159=Viggo
|
||||
NAMESET_SCANDINAVIAN_MALE_160=Viktor
|
||||
NAMESET_SCANDINAVIAN_MALE_161=Ville
|
||||
NAMESET_SCANDINAVIAN_MALE_162=Vincent
|
||||
|
||||
# feminine names
|
||||
|
||||
NAMESET_SCANDINAVIAN_FEMALE_1=Agnes
|
||||
NAMESET_SCANDINAVIAN_FEMALE_2=Alberte
|
||||
NAMESET_SCANDINAVIAN_FEMALE_3=Alexandra
|
||||
NAMESET_SCANDINAVIAN_FEMALE_4=Alva
|
||||
NAMESET_SCANDINAVIAN_FEMALE_5=Amanda
|
||||
NAMESET_SCANDINAVIAN_FEMALE_6=Andrea
|
||||
NAMESET_SCANDINAVIAN_FEMALE_7=Ane
|
||||
NAMESET_SCANDINAVIAN_FEMALE_8=Anna
|
||||
NAMESET_SCANDINAVIAN_FEMALE_9=Anne
|
||||
NAMESET_SCANDINAVIAN_FEMALE_10=Anniken
|
||||
NAMESET_SCANDINAVIAN_FEMALE_11=Asta
|
||||
NAMESET_SCANDINAVIAN_FEMALE_12=Astrid
|
||||
NAMESET_SCANDINAVIAN_FEMALE_13=Beatrice
|
||||
NAMESET_SCANDINAVIAN_FEMALE_14=Camilla
|
||||
NAMESET_SCANDINAVIAN_FEMALE_15=Carolina
|
||||
NAMESET_SCANDINAVIAN_FEMALE_16=Caroline
|
||||
NAMESET_SCANDINAVIAN_FEMALE_17=Cecilia
|
||||
NAMESET_SCANDINAVIAN_FEMALE_18=Celina
|
||||
NAMESET_SCANDINAVIAN_FEMALE_19=Charlotte
|
||||
NAMESET_SCANDINAVIAN_FEMALE_20=Christina
|
||||
NAMESET_SCANDINAVIAN_FEMALE_21=Christine
|
||||
NAMESET_SCANDINAVIAN_FEMALE_22=Ebba
|
||||
NAMESET_SCANDINAVIAN_FEMALE_23=Edith
|
||||
NAMESET_SCANDINAVIAN_FEMALE_24=Elin
|
||||
NAMESET_SCANDINAVIAN_FEMALE_25=Elina
|
||||
NAMESET_SCANDINAVIAN_FEMALE_26=Elisabeth
|
||||
NAMESET_SCANDINAVIAN_FEMALE_27=Elise
|
||||
NAMESET_SCANDINAVIAN_FEMALE_28=Ella
|
||||
NAMESET_SCANDINAVIAN_FEMALE_29=Ellinor
|
||||
NAMESET_SCANDINAVIAN_FEMALE_30=Elsa
|
||||
NAMESET_SCANDINAVIAN_FEMALE_31=Emelie
|
||||
NAMESET_SCANDINAVIAN_FEMALE_32=Emilia
|
||||
NAMESET_SCANDINAVIAN_FEMALE_33=Emilie
|
||||
NAMESET_SCANDINAVIAN_FEMALE_34=Emma
|
||||
NAMESET_SCANDINAVIAN_FEMALE_35=Erika
|
||||
NAMESET_SCANDINAVIAN_FEMALE_36=Erle
|
||||
NAMESET_SCANDINAVIAN_FEMALE_37=Ester
|
||||
NAMESET_SCANDINAVIAN_FEMALE_38=Eva
|
||||
NAMESET_SCANDINAVIAN_FEMALE_39=Evelina
|
||||
NAMESET_SCANDINAVIAN_FEMALE_40=Felicia
|
||||
NAMESET_SCANDINAVIAN_FEMALE_41=Filippa
|
||||
NAMESET_SCANDINAVIAN_FEMALE_42=Frederikke
|
||||
NAMESET_SCANDINAVIAN_FEMALE_43=Freja
|
||||
NAMESET_SCANDINAVIAN_FEMALE_44=Frida
|
||||
NAMESET_SCANDINAVIAN_FEMALE_45=Gabriella
|
||||
NAMESET_SCANDINAVIAN_FEMALE_46=Greta
|
||||
NAMESET_SCANDINAVIAN_FEMALE_47=Hanna
|
||||
NAMESET_SCANDINAVIAN_FEMALE_48=Hanne
|
||||
NAMESET_SCANDINAVIAN_FEMALE_49=Hedda
|
||||
NAMESET_SCANDINAVIAN_FEMALE_50=Hedvig
|
||||
NAMESET_SCANDINAVIAN_FEMALE_51=Helena
|
||||
NAMESET_SCANDINAVIAN_FEMALE_52=Helene
|
||||
NAMESET_SCANDINAVIAN_FEMALE_53=Helle
|
||||
NAMESET_SCANDINAVIAN_FEMALE_54=Henriette
|
||||
NAMESET_SCANDINAVIAN_FEMALE_55=Hilda
|
||||
NAMESET_SCANDINAVIAN_FEMALE_56=Ida
|
||||
NAMESET_SCANDINAVIAN_FEMALE_57=Ina
|
||||
NAMESET_SCANDINAVIAN_FEMALE_58=Ingeborg
|
||||
NAMESET_SCANDINAVIAN_FEMALE_59=Ingrid
|
||||
NAMESET_SCANDINAVIAN_FEMALE_60=Ingvild
|
||||
NAMESET_SCANDINAVIAN_FEMALE_61=Iris
|
||||
NAMESET_SCANDINAVIAN_FEMALE_62=Isabella
|
||||
NAMESET_SCANDINAVIAN_FEMALE_63=Jessica
|
||||
NAMESET_SCANDINAVIAN_FEMALE_64=Jóhanna
|
||||
NAMESET_SCANDINAVIAN_FEMALE_65=Johanna
|
||||
NAMESET_SCANDINAVIAN_FEMALE_66=Johanne
|
||||
NAMESET_SCANDINAVIAN_FEMALE_67=Jonna
|
||||
NAMESET_SCANDINAVIAN_FEMALE_68=Julia
|
||||
# pronounced as [julia], not [d͡ʒulia]
|
||||
NAMESET_SCANDINAVIAN_FEMALE_69=Kaja
|
||||
NAMESET_SCANDINAVIAN_FEMALE_70=Kajsa
|
||||
NAMESET_SCANDINAVIAN_FEMALE_71=Kamilla
|
||||
NAMESET_SCANDINAVIAN_FEMALE_72=Karen
|
||||
NAMESET_SCANDINAVIAN_FEMALE_73=Karin
|
||||
NAMESET_SCANDINAVIAN_FEMALE_74=Karoline
|
||||
NAMESET_SCANDINAVIAN_FEMALE_75=Katrine
|
||||
NAMESET_SCANDINAVIAN_FEMALE_76=Klara
|
||||
NAMESET_SCANDINAVIAN_FEMALE_77=Kristín
|
||||
NAMESET_SCANDINAVIAN_FEMALE_78=Kristin
|
||||
NAMESET_SCANDINAVIAN_FEMALE_79=Kristina
|
||||
NAMESET_SCANDINAVIAN_FEMALE_80=Kristine
|
||||
NAMESET_SCANDINAVIAN_FEMALE_81=Lærke
|
||||
NAMESET_SCANDINAVIAN_FEMALE_82=Laura
|
||||
NAMESET_SCANDINAVIAN_FEMALE_83=Lea
|
||||
NAMESET_SCANDINAVIAN_FEMALE_84=Lene
|
||||
NAMESET_SCANDINAVIAN_FEMALE_85=Lilly
|
||||
NAMESET_SCANDINAVIAN_FEMALE_86=Lina
|
||||
NAMESET_SCANDINAVIAN_FEMALE_87=Linda
|
||||
NAMESET_SCANDINAVIAN_FEMALE_88=Line
|
||||
NAMESET_SCANDINAVIAN_FEMALE_89=Linn
|
||||
NAMESET_SCANDINAVIAN_FEMALE_90=Linnéa
|
||||
NAMESET_SCANDINAVIAN_FEMALE_91=Lisa
|
||||
NAMESET_SCANDINAVIAN_FEMALE_92=Liv
|
||||
NAMESET_SCANDINAVIAN_FEMALE_93=Lotte
|
||||
NAMESET_SCANDINAVIAN_FEMALE_94=Lovisa
|
||||
NAMESET_SCANDINAVIAN_FEMALE_95=Lykke
|
||||
NAMESET_SCANDINAVIAN_FEMALE_96=Maiken
|
||||
NAMESET_SCANDINAVIAN_FEMALE_97=Maja
|
||||
NAMESET_SCANDINAVIAN_FEMALE_98=Majken
|
||||
NAMESET_SCANDINAVIAN_FEMALE_99=Malene
|
||||
NAMESET_SCANDINAVIAN_FEMALE_100=Malin
|
||||
NAMESET_SCANDINAVIAN_FEMALE_101=Maren
|
||||
NAMESET_SCANDINAVIAN_FEMALE_102=Mari
|
||||
NAMESET_SCANDINAVIAN_FEMALE_103=Maria
|
||||
NAMESET_SCANDINAVIAN_FEMALE_104=Marie
|
||||
NAMESET_SCANDINAVIAN_FEMALE_105=Märta
|
||||
NAMESET_SCANDINAVIAN_FEMALE_106=Marta
|
||||
NAMESET_SCANDINAVIAN_FEMALE_107=Marte
|
||||
NAMESET_SCANDINAVIAN_FEMALE_108=Mathilde
|
||||
NAMESET_SCANDINAVIAN_FEMALE_109=Matilda
|
||||
NAMESET_SCANDINAVIAN_FEMALE_110=Mia
|
||||
NAMESET_SCANDINAVIAN_FEMALE_111=Mikaela
|
||||
NAMESET_SCANDINAVIAN_FEMALE_112=Milla
|
||||
NAMESET_SCANDINAVIAN_FEMALE_113=Moa
|
||||
NAMESET_SCANDINAVIAN_FEMALE_114=My
|
||||
NAMESET_SCANDINAVIAN_FEMALE_115=Nanna
|
||||
NAMESET_SCANDINAVIAN_FEMALE_116=Nora
|
||||
NAMESET_SCANDINAVIAN_FEMALE_117=Olivia
|
||||
NAMESET_SCANDINAVIAN_FEMALE_118=Paulina
|
||||
NAMESET_SCANDINAVIAN_FEMALE_119=Pernille
|
||||
NAMESET_SCANDINAVIAN_FEMALE_120=Pia
|
||||
NAMESET_SCANDINAVIAN_FEMALE_121=Ragnhild
|
||||
NAMESET_SCANDINAVIAN_FEMALE_122=Rebecca
|
||||
NAMESET_SCANDINAVIAN_FEMALE_123=Rebecka
|
||||
NAMESET_SCANDINAVIAN_FEMALE_124=Rebekka
|
||||
NAMESET_SCANDINAVIAN_FEMALE_125=Rikke
|
||||
NAMESET_SCANDINAVIAN_FEMALE_126=Robin
|
||||
NAMESET_SCANDINAVIAN_FEMALE_127=Ronja
|
||||
NAMESET_SCANDINAVIAN_FEMALE_128=Rosa
|
||||
NAMESET_SCANDINAVIAN_FEMALE_129=Rut
|
||||
NAMESET_SCANDINAVIAN_FEMALE_130=Saga
|
||||
NAMESET_SCANDINAVIAN_FEMALE_131=Sandra
|
||||
NAMESET_SCANDINAVIAN_FEMALE_132=Sanna
|
||||
NAMESET_SCANDINAVIAN_FEMALE_133=Sara
|
||||
NAMESET_SCANDINAVIAN_FEMALE_134=Semla
|
||||
NAMESET_SCANDINAVIAN_FEMALE_135=Signe
|
||||
NAMESET_SCANDINAVIAN_FEMALE_136=Sigrid
|
||||
NAMESET_SCANDINAVIAN_FEMALE_137=Silje
|
||||
NAMESET_SCANDINAVIAN_FEMALE_138=Sille
|
||||
NAMESET_SCANDINAVIAN_FEMALE_139=Siri
|
||||
NAMESET_SCANDINAVIAN_FEMALE_140=Sofia
|
||||
NAMESET_SCANDINAVIAN_FEMALE_141=Sofie
|
||||
NAMESET_SCANDINAVIAN_FEMALE_142=Solveig
|
||||
NAMESET_SCANDINAVIAN_FEMALE_143=Stina
|
||||
NAMESET_SCANDINAVIAN_FEMALE_144=Stine
|
||||
NAMESET_SCANDINAVIAN_FEMALE_145=Sunniva
|
||||
NAMESET_SCANDINAVIAN_FEMALE_146=Susanne
|
||||
NAMESET_SCANDINAVIAN_FEMALE_147=Svea
|
||||
NAMESET_SCANDINAVIAN_FEMALE_148=Thea
|
||||
NAMESET_SCANDINAVIAN_FEMALE_149=Therese
|
||||
NAMESET_SCANDINAVIAN_FEMALE_150=Tilda
|
||||
NAMESET_SCANDINAVIAN_FEMALE_151=Tova
|
||||
NAMESET_SCANDINAVIAN_FEMALE_152=Tove
|
||||
NAMESET_SCANDINAVIAN_FEMALE_153=Tuva
|
||||
NAMESET_SCANDINAVIAN_FEMALE_154=Tyra
|
||||
NAMESET_SCANDINAVIAN_FEMALE_155=Vendela
|
||||
NAMESET_SCANDINAVIAN_FEMALE_156=Vera
|
||||
NAMESET_SCANDINAVIAN_FEMALE_157=Viktoria
|
||||
NAMESET_SCANDINAVIAN_FEMALE_158=Ylva
|
||||
@@ -1,335 +0,0 @@
|
||||
# Nameset - Scandinavian
|
||||
# Data taken from www.behindthename.com
|
||||
# Translator note: this nameset does not contain name that has [ɹ](american english 'r') sound (except '-er'). i.e. for Korean, 'Carl' should be '카를', 'Aleksander' should be '알렉산더'.
|
||||
# Hangul version author: Torvald (main dev) 한글 전사: 토르발드 (개발진)
|
||||
|
||||
NAMESET_SCANDINAVIAN_MALE_1=아담
|
||||
NAMESET_SCANDINAVIAN_MALE_2=아드리안
|
||||
NAMESET_SCANDINAVIAN_MALE_3=악셀
|
||||
NAMESET_SCANDINAVIAN_MALE_4=알베르
|
||||
NAMESET_SCANDINAVIAN_MALE_5=알빈
|
||||
NAMESET_SCANDINAVIAN_MALE_6=알렉
|
||||
NAMESET_SCANDINAVIAN_MALE_7=알렉산더
|
||||
NAMESET_SCANDINAVIAN_MALE_8=알프레드
|
||||
NAMESET_SCANDINAVIAN_MALE_9=아문드
|
||||
NAMESET_SCANDINAVIAN_MALE_10=안드레아스
|
||||
NAMESET_SCANDINAVIAN_MALE_11=안톤
|
||||
NAMESET_SCANDINAVIAN_MALE_12=아론
|
||||
NAMESET_SCANDINAVIAN_MALE_13=알바르
|
||||
NAMESET_SCANDINAVIAN_MALE_14=아우구스트
|
||||
NAMESET_SCANDINAVIAN_MALE_15=악셀
|
||||
NAMESET_SCANDINAVIAN_MALE_16=비외른
|
||||
NAMESET_SCANDINAVIAN_MALE_17=비외른
|
||||
NAMESET_SCANDINAVIAN_MALE_18=카를
|
||||
NAMESET_SCANDINAVIAN_MALE_19=카스퍼
|
||||
NAMESET_SCANDINAVIAN_MALE_20=크리스티안
|
||||
NAMESET_SCANDINAVIAN_MALE_21=크리스토퍼
|
||||
NAMESET_SCANDINAVIAN_MALE_22=다니엘
|
||||
NAMESET_SCANDINAVIAN_MALE_23=다비드
|
||||
# pronounced as [dɑvid], not [deivɪd]
|
||||
NAMESET_SCANDINAVIAN_MALE_24=에드문드
|
||||
NAMESET_SCANDINAVIAN_MALE_25=에드바르
|
||||
NAMESET_SCANDINAVIAN_MALE_26=에드빈
|
||||
NAMESET_SCANDINAVIAN_MALE_27=에릭
|
||||
NAMESET_SCANDINAVIAN_MALE_28=엘리아스
|
||||
NAMESET_SCANDINAVIAN_MALE_29=엘리스
|
||||
NAMESET_SCANDINAVIAN_MALE_30=에마누엘
|
||||
NAMESET_SCANDINAVIAN_MALE_31=에밀
|
||||
NAMESET_SCANDINAVIAN_MALE_32=에인드리
|
||||
NAMESET_SCANDINAVIAN_MALE_33=에릭
|
||||
NAMESET_SCANDINAVIAN_MALE_34=에를렌드
|
||||
NAMESET_SCANDINAVIAN_MALE_35=에스펜
|
||||
NAMESET_SCANDINAVIAN_MALE_36=파비안
|
||||
NAMESET_SCANDINAVIAN_MALE_37=펠릭스
|
||||
NAMESET_SCANDINAVIAN_MALE_38=필립
|
||||
NAMESET_SCANDINAVIAN_MALE_39=프레데릭
|
||||
NAMESET_SCANDINAVIAN_MALE_40=가브리엘
|
||||
NAMESET_SCANDINAVIAN_MALE_41=구스타프
|
||||
NAMESET_SCANDINAVIAN_MALE_42=하콘
|
||||
NAMESET_SCANDINAVIAN_MALE_43=하콘
|
||||
NAMESET_SCANDINAVIAN_MALE_44=호콘
|
||||
NAMESET_SCANDINAVIAN_MALE_45=함푸스
|
||||
NAMESET_SCANDINAVIAN_MALE_46=한네
|
||||
NAMESET_SCANDINAVIAN_MALE_47=한스
|
||||
NAMESET_SCANDINAVIAN_MALE_48=호바르
|
||||
NAMESET_SCANDINAVIAN_MALE_49=헨릭
|
||||
NAMESET_SCANDINAVIAN_MALE_50=헤르만
|
||||
NAMESET_SCANDINAVIAN_MALE_51=히알마르
|
||||
NAMESET_SCANDINAVIAN_MALE_52=휴고
|
||||
NAMESET_SCANDINAVIAN_MALE_53=이삭
|
||||
NAMESET_SCANDINAVIAN_MALE_54=이바르
|
||||
NAMESET_SCANDINAVIAN_MALE_55=야콥
|
||||
NAMESET_SCANDINAVIAN_MALE_56=야콥
|
||||
NAMESET_SCANDINAVIAN_MALE_57=얀
|
||||
NAMESET_SCANDINAVIAN_MALE_58=옌스
|
||||
NAMESET_SCANDINAVIAN_MALE_59=예프
|
||||
NAMESET_SCANDINAVIAN_MALE_60=예스퍼
|
||||
NAMESET_SCANDINAVIAN_MALE_61=요아킴
|
||||
# pronounced as [joakim], not [hoakim] as this is scandinavian section.
|
||||
NAMESET_SCANDINAVIAN_MALE_62=요엘
|
||||
NAMESET_SCANDINAVIAN_MALE_63=요한
|
||||
NAMESET_SCANDINAVIAN_MALE_64=요한네스
|
||||
NAMESET_SCANDINAVIAN_MALE_65=욘
|
||||
NAMESET_SCANDINAVIAN_MALE_66=욘
|
||||
NAMESET_SCANDINAVIAN_MALE_67=요나스
|
||||
NAMESET_SCANDINAVIAN_MALE_68=요나스
|
||||
NAMESET_SCANDINAVIAN_MALE_69=요나단
|
||||
NAMESET_SCANDINAVIAN_MALE_70=이외르겐
|
||||
NAMESET_SCANDINAVIAN_MALE_71=이외르겐
|
||||
NAMESET_SCANDINAVIAN_MALE_72=요세프
|
||||
NAMESET_SCANDINAVIAN_MALE_73=칼
|
||||
NAMESET_SCANDINAVIAN_MALE_74=카스퍼
|
||||
NAMESET_SCANDINAVIAN_MALE_75=케빈
|
||||
NAMESET_SCANDINAVIAN_MALE_76=킴
|
||||
NAMESET_SCANDINAVIAN_MALE_77=크누트
|
||||
# pronounced as [knut]
|
||||
NAMESET_SCANDINAVIAN_MALE_78=크리스티안
|
||||
NAMESET_SCANDINAVIAN_MALE_79=크리스토퍼
|
||||
NAMESET_SCANDINAVIAN_MALE_80=라르스
|
||||
NAMESET_SCANDINAVIAN_MALE_81=라세
|
||||
NAMESET_SCANDINAVIAN_MALE_82=라우리츠
|
||||
NAMESET_SCANDINAVIAN_MALE_83=레오
|
||||
NAMESET_SCANDINAVIAN_MALE_84=리누스
|
||||
# pronounced as [linus], not [lainəs] as this is scandinavian section.
|
||||
NAMESET_SCANDINAVIAN_MALE_85=로케
|
||||
NAMESET_SCANDINAVIAN_MALE_86=로베
|
||||
# NOT pronounced as [ləv]!
|
||||
NAMESET_SCANDINAVIAN_MALE_87=루드빅
|
||||
NAMESET_SCANDINAVIAN_MALE_88=루카스
|
||||
NAMESET_SCANDINAVIAN_MALE_89=마드스
|
||||
NAMESET_SCANDINAVIAN_MALE_90=마그누스
|
||||
NAMESET_SCANDINAVIAN_MALE_91=말테
|
||||
NAMESET_SCANDINAVIAN_MALE_92=말테
|
||||
NAMESET_SCANDINAVIAN_MALE_93=마르쿠스
|
||||
NAMESET_SCANDINAVIAN_MALE_94=마리아
|
||||
NAMESET_SCANDINAVIAN_MALE_95=마리우스
|
||||
NAMESET_SCANDINAVIAN_MALE_96=마르쿠스
|
||||
NAMESET_SCANDINAVIAN_MALE_97=마르틴
|
||||
NAMESET_SCANDINAVIAN_MALE_98=키루스
|
||||
# need more exotic name starting with 'C'...
|
||||
NAMESET_SCANDINAVIAN_MALE_99=마츠
|
||||
NAMESET_SCANDINAVIAN_MALE_100=마티아스
|
||||
NAMESET_SCANDINAVIAN_MALE_101=막스
|
||||
NAMESET_SCANDINAVIAN_MALE_102=막시밀리안
|
||||
NAMESET_SCANDINAVIAN_MALE_103=멜케르
|
||||
NAMESET_SCANDINAVIAN_MALE_104=미카엘
|
||||
NAMESET_SCANDINAVIAN_MALE_105=미카엘
|
||||
NAMESET_SCANDINAVIAN_MALE_106=미켈
|
||||
NAMESET_SCANDINAVIAN_MALE_107=모르텐
|
||||
NAMESET_SCANDINAVIAN_MALE_108=니클라스
|
||||
NAMESET_SCANDINAVIAN_MALE_109=니콜라이
|
||||
NAMESET_SCANDINAVIAN_MALE_110=닐스
|
||||
NAMESET_SCANDINAVIAN_MALE_111=오딘
|
||||
NAMESET_SCANDINAVIAN_MALE_112=올라
|
||||
NAMESET_SCANDINAVIAN_MALE_113=올라프
|
||||
NAMESET_SCANDINAVIAN_MALE_114=올라브
|
||||
NAMESET_SCANDINAVIAN_MALE_115=올레
|
||||
NAMESET_SCANDINAVIAN_MALE_116=올리버
|
||||
NAMESET_SCANDINAVIAN_MALE_117=올레
|
||||
NAMESET_SCANDINAVIAN_MALE_118=올로프
|
||||
NAMESET_SCANDINAVIAN_MALE_119=오스카르
|
||||
NAMESET_SCANDINAVIAN_MALE_120=오스카르
|
||||
NAMESET_SCANDINAVIAN_MALE_121=오스카르
|
||||
NAMESET_SCANDINAVIAN_MALE_122=오토
|
||||
NAMESET_SCANDINAVIAN_MALE_123=파트릭
|
||||
NAMESET_SCANDINAVIAN_MALE_124=페더
|
||||
NAMESET_SCANDINAVIAN_MALE_125=페르
|
||||
NAMESET_SCANDINAVIAN_MALE_126=페터
|
||||
NAMESET_SCANDINAVIAN_MALE_127=필립
|
||||
NAMESET_SCANDINAVIAN_MALE_128=폰투스
|
||||
NAMESET_SCANDINAVIAN_MALE_129=프레벤
|
||||
NAMESET_SCANDINAVIAN_MALE_130=라파엘
|
||||
NAMESET_SCANDINAVIAN_MALE_131=리드
|
||||
NAMESET_SCANDINAVIAN_MALE_132=로베르트
|
||||
NAMESET_SCANDINAVIAN_MALE_133=로빈
|
||||
NAMESET_SCANDINAVIAN_MALE_134=사무엘
|
||||
NAMESET_SCANDINAVIAN_MALE_135=산더
|
||||
NAMESET_SCANDINAVIAN_MALE_136=세바스티안
|
||||
NAMESET_SCANDINAVIAN_MALE_137=시게
|
||||
NAMESET_SCANDINAVIAN_MALE_138=시구르
|
||||
NAMESET_SCANDINAVIAN_MALE_139=시멘
|
||||
NAMESET_SCANDINAVIAN_MALE_140=시몬
|
||||
NAMESET_SCANDINAVIAN_MALE_141=신드레
|
||||
NAMESET_SCANDINAVIAN_MALE_142=시그스텐
|
||||
NAMESET_SCANDINAVIAN_MALE_143=스테판
|
||||
NAMESET_SCANDINAVIAN_MALE_144=스테펜
|
||||
NAMESET_SCANDINAVIAN_MALE_145=스티안
|
||||
NAMESET_SCANDINAVIAN_MALE_146=스반테
|
||||
NAMESET_SCANDINAVIAN_MALE_147=스벤
|
||||
NAMESET_SCANDINAVIAN_MALE_148=테오도르
|
||||
NAMESET_SCANDINAVIAN_MALE_149=테오도르
|
||||
NAMESET_SCANDINAVIAN_MALE_150=토마스
|
||||
NAMESET_SCANDINAVIAN_MALE_151=팀
|
||||
NAMESET_SCANDINAVIAN_MALE_152=토비아스
|
||||
NAMESET_SCANDINAVIAN_MALE_153=토드
|
||||
NAMESET_SCANDINAVIAN_MALE_154=트룰스
|
||||
NAMESET_SCANDINAVIAN_MALE_155=울프릭
|
||||
NAMESET_SCANDINAVIAN_MALE_156=발데마르
|
||||
NAMESET_SCANDINAVIAN_MALE_157=발터
|
||||
NAMESET_SCANDINAVIAN_MALE_158=비다르
|
||||
NAMESET_SCANDINAVIAN_MALE_159=비고
|
||||
NAMESET_SCANDINAVIAN_MALE_160=빅토르
|
||||
NAMESET_SCANDINAVIAN_MALE_161=빌레
|
||||
NAMESET_SCANDINAVIAN_MALE_162=빈센트
|
||||
|
||||
# feminine names
|
||||
|
||||
NAMESET_SCANDINAVIAN_FEMALE_1=아그네스
|
||||
NAMESET_SCANDINAVIAN_FEMALE_2=알베르테
|
||||
NAMESET_SCANDINAVIAN_FEMALE_3=알렉산드라
|
||||
NAMESET_SCANDINAVIAN_FEMALE_4=알바
|
||||
NAMESET_SCANDINAVIAN_FEMALE_5=아만다
|
||||
NAMESET_SCANDINAVIAN_FEMALE_6=안드레아
|
||||
NAMESET_SCANDINAVIAN_FEMALE_7=아네
|
||||
NAMESET_SCANDINAVIAN_FEMALE_8=안나
|
||||
NAMESET_SCANDINAVIAN_FEMALE_9=안네
|
||||
NAMESET_SCANDINAVIAN_FEMALE_10=안니켄
|
||||
NAMESET_SCANDINAVIAN_FEMALE_11=아스타
|
||||
NAMESET_SCANDINAVIAN_FEMALE_12=아스트리드
|
||||
NAMESET_SCANDINAVIAN_FEMALE_13=베아트리케
|
||||
NAMESET_SCANDINAVIAN_FEMALE_14=카밀라
|
||||
NAMESET_SCANDINAVIAN_FEMALE_15=카롤리나
|
||||
NAMESET_SCANDINAVIAN_FEMALE_16=카롤리네
|
||||
NAMESET_SCANDINAVIAN_FEMALE_17=세실리아
|
||||
NAMESET_SCANDINAVIAN_FEMALE_18=첼리나
|
||||
NAMESET_SCANDINAVIAN_FEMALE_19=카를로테
|
||||
NAMESET_SCANDINAVIAN_FEMALE_20=크리스티나
|
||||
NAMESET_SCANDINAVIAN_FEMALE_21=크리스티네
|
||||
NAMESET_SCANDINAVIAN_FEMALE_22=에바
|
||||
NAMESET_SCANDINAVIAN_FEMALE_23=에디스
|
||||
NAMESET_SCANDINAVIAN_FEMALE_24=엘린
|
||||
NAMESET_SCANDINAVIAN_FEMALE_25=엘리나
|
||||
NAMESET_SCANDINAVIAN_FEMALE_26=엘리사베스
|
||||
NAMESET_SCANDINAVIAN_FEMALE_27=엘리세
|
||||
NAMESET_SCANDINAVIAN_FEMALE_28=엘라
|
||||
NAMESET_SCANDINAVIAN_FEMALE_29=엘리노르
|
||||
NAMESET_SCANDINAVIAN_FEMALE_30=엘사
|
||||
NAMESET_SCANDINAVIAN_FEMALE_31=에밀리에
|
||||
NAMESET_SCANDINAVIAN_FEMALE_32=에밀리아
|
||||
NAMESET_SCANDINAVIAN_FEMALE_33=에밀리에
|
||||
NAMESET_SCANDINAVIAN_FEMALE_34=엠마
|
||||
NAMESET_SCANDINAVIAN_FEMALE_35=에리카
|
||||
NAMESET_SCANDINAVIAN_FEMALE_36=에를레
|
||||
NAMESET_SCANDINAVIAN_FEMALE_37=에스테르
|
||||
NAMESET_SCANDINAVIAN_FEMALE_38=에바
|
||||
NAMESET_SCANDINAVIAN_FEMALE_39=에벨리나
|
||||
NAMESET_SCANDINAVIAN_FEMALE_40=펠리시아
|
||||
NAMESET_SCANDINAVIAN_FEMALE_41=필리파
|
||||
NAMESET_SCANDINAVIAN_FEMALE_42=프레데리케
|
||||
NAMESET_SCANDINAVIAN_FEMALE_43=프레야
|
||||
NAMESET_SCANDINAVIAN_FEMALE_44=프리다
|
||||
NAMESET_SCANDINAVIAN_FEMALE_45=가브리엘라
|
||||
NAMESET_SCANDINAVIAN_FEMALE_46=그레타
|
||||
NAMESET_SCANDINAVIAN_FEMALE_47=한나
|
||||
NAMESET_SCANDINAVIAN_FEMALE_48=한네
|
||||
NAMESET_SCANDINAVIAN_FEMALE_49=헤다
|
||||
NAMESET_SCANDINAVIAN_FEMALE_50=헤드비그
|
||||
NAMESET_SCANDINAVIAN_FEMALE_51=헬레나
|
||||
NAMESET_SCANDINAVIAN_FEMALE_52=헬레네
|
||||
NAMESET_SCANDINAVIAN_FEMALE_53=헬레
|
||||
NAMESET_SCANDINAVIAN_FEMALE_54=헨리에트
|
||||
NAMESET_SCANDINAVIAN_FEMALE_55=힐다
|
||||
NAMESET_SCANDINAVIAN_FEMALE_56=이다
|
||||
NAMESET_SCANDINAVIAN_FEMALE_57=이나
|
||||
NAMESET_SCANDINAVIAN_FEMALE_58=잉게보리
|
||||
NAMESET_SCANDINAVIAN_FEMALE_59=잉그리
|
||||
NAMESET_SCANDINAVIAN_FEMALE_60=잉그빌드
|
||||
NAMESET_SCANDINAVIAN_FEMALE_61=이리스
|
||||
NAMESET_SCANDINAVIAN_FEMALE_62=이사벨라
|
||||
NAMESET_SCANDINAVIAN_FEMALE_63=예시카
|
||||
NAMESET_SCANDINAVIAN_FEMALE_64=요한나
|
||||
NAMESET_SCANDINAVIAN_FEMALE_65=요한나
|
||||
NAMESET_SCANDINAVIAN_FEMALE_66=요한네
|
||||
NAMESET_SCANDINAVIAN_FEMALE_67=요나
|
||||
NAMESET_SCANDINAVIAN_FEMALE_68=율리아
|
||||
# pronounced as [julia], not [d͡ʒulia]
|
||||
NAMESET_SCANDINAVIAN_FEMALE_69=카야
|
||||
NAMESET_SCANDINAVIAN_FEMALE_70=카트리나
|
||||
NAMESET_SCANDINAVIAN_FEMALE_71=카밀라
|
||||
NAMESET_SCANDINAVIAN_FEMALE_72=카렌
|
||||
NAMESET_SCANDINAVIAN_FEMALE_73=카린
|
||||
NAMESET_SCANDINAVIAN_FEMALE_74=카롤리네
|
||||
NAMESET_SCANDINAVIAN_FEMALE_75=카트리네
|
||||
NAMESET_SCANDINAVIAN_FEMALE_76=클라라
|
||||
NAMESET_SCANDINAVIAN_FEMALE_77=크리스틴
|
||||
NAMESET_SCANDINAVIAN_FEMALE_78=크리스틴
|
||||
NAMESET_SCANDINAVIAN_FEMALE_79=크리스티나
|
||||
NAMESET_SCANDINAVIAN_FEMALE_80=크리스티네
|
||||
NAMESET_SCANDINAVIAN_FEMALE_81=레르케
|
||||
NAMESET_SCANDINAVIAN_FEMALE_82=라우라
|
||||
NAMESET_SCANDINAVIAN_FEMALE_83=레아
|
||||
NAMESET_SCANDINAVIAN_FEMALE_84=레네
|
||||
NAMESET_SCANDINAVIAN_FEMALE_85=릴리
|
||||
NAMESET_SCANDINAVIAN_FEMALE_86=리나
|
||||
NAMESET_SCANDINAVIAN_FEMALE_87=린다
|
||||
NAMESET_SCANDINAVIAN_FEMALE_88=리네
|
||||
NAMESET_SCANDINAVIAN_FEMALE_89=린
|
||||
NAMESET_SCANDINAVIAN_FEMALE_90=린네아
|
||||
NAMESET_SCANDINAVIAN_FEMALE_91=리사
|
||||
NAMESET_SCANDINAVIAN_FEMALE_92=리브
|
||||
NAMESET_SCANDINAVIAN_FEMALE_93=로테
|
||||
NAMESET_SCANDINAVIAN_FEMALE_94=로비사
|
||||
NAMESET_SCANDINAVIAN_FEMALE_95=리케
|
||||
NAMESET_SCANDINAVIAN_FEMALE_96=마이켄
|
||||
NAMESET_SCANDINAVIAN_FEMALE_97=마야
|
||||
NAMESET_SCANDINAVIAN_FEMALE_98=마이켄
|
||||
NAMESET_SCANDINAVIAN_FEMALE_99=말레네
|
||||
NAMESET_SCANDINAVIAN_FEMALE_100=말린
|
||||
NAMESET_SCANDINAVIAN_FEMALE_101=마렌
|
||||
NAMESET_SCANDINAVIAN_FEMALE_102=마리
|
||||
NAMESET_SCANDINAVIAN_FEMALE_103=마리아
|
||||
NAMESET_SCANDINAVIAN_FEMALE_104=마리에
|
||||
NAMESET_SCANDINAVIAN_FEMALE_105=메르타
|
||||
NAMESET_SCANDINAVIAN_FEMALE_106=마르타
|
||||
NAMESET_SCANDINAVIAN_FEMALE_107=마르테
|
||||
NAMESET_SCANDINAVIAN_FEMALE_108=마틸데
|
||||
NAMESET_SCANDINAVIAN_FEMALE_109=마틸다
|
||||
NAMESET_SCANDINAVIAN_FEMALE_110=미아
|
||||
NAMESET_SCANDINAVIAN_FEMALE_111=미카엘라
|
||||
NAMESET_SCANDINAVIAN_FEMALE_112=밀라
|
||||
NAMESET_SCANDINAVIAN_FEMALE_113=모아
|
||||
NAMESET_SCANDINAVIAN_FEMALE_114=미
|
||||
NAMESET_SCANDINAVIAN_FEMALE_115=난나
|
||||
NAMESET_SCANDINAVIAN_FEMALE_116=노라
|
||||
NAMESET_SCANDINAVIAN_FEMALE_117=올리비아
|
||||
NAMESET_SCANDINAVIAN_FEMALE_118=파울리나
|
||||
NAMESET_SCANDINAVIAN_FEMALE_119=페르닐레
|
||||
NAMESET_SCANDINAVIAN_FEMALE_120=피아
|
||||
NAMESET_SCANDINAVIAN_FEMALE_121=라그닐드
|
||||
NAMESET_SCANDINAVIAN_FEMALE_122=레베카
|
||||
NAMESET_SCANDINAVIAN_FEMALE_123=레베카
|
||||
NAMESET_SCANDINAVIAN_FEMALE_124=레베카
|
||||
NAMESET_SCANDINAVIAN_FEMALE_125=리케
|
||||
NAMESET_SCANDINAVIAN_FEMALE_126=로빈
|
||||
NAMESET_SCANDINAVIAN_FEMALE_127=로냐
|
||||
NAMESET_SCANDINAVIAN_FEMALE_128=로사
|
||||
NAMESET_SCANDINAVIAN_FEMALE_129=루트
|
||||
NAMESET_SCANDINAVIAN_FEMALE_130=사가
|
||||
NAMESET_SCANDINAVIAN_FEMALE_131=산드리아
|
||||
NAMESET_SCANDINAVIAN_FEMALE_132=산나
|
||||
NAMESET_SCANDINAVIAN_FEMALE_133=사라
|
||||
NAMESET_SCANDINAVIAN_FEMALE_134=세믈라
|
||||
NAMESET_SCANDINAVIAN_FEMALE_135=시그네
|
||||
NAMESET_SCANDINAVIAN_FEMALE_136=시그리드
|
||||
NAMESET_SCANDINAVIAN_FEMALE_137=실리에
|
||||
NAMESET_SCANDINAVIAN_FEMALE_138=실레
|
||||
NAMESET_SCANDINAVIAN_FEMALE_139=시리
|
||||
NAMESET_SCANDINAVIAN_FEMALE_140=소피아
|
||||
NAMESET_SCANDINAVIAN_FEMALE_141=소피에
|
||||
NAMESET_SCANDINAVIAN_FEMALE_142=솔비그
|
||||
NAMESET_SCANDINAVIAN_FEMALE_143=스티나
|
||||
NAMESET_SCANDINAVIAN_FEMALE_144=스티네
|
||||
NAMESET_SCANDINAVIAN_FEMALE_145=순니바
|
||||
NAMESET_SCANDINAVIAN_FEMALE_146=수잔네
|
||||
NAMESET_SCANDINAVIAN_FEMALE_147=스베아
|
||||
NAMESET_SCANDINAVIAN_FEMALE_148=테아
|
||||
NAMESET_SCANDINAVIAN_FEMALE_149=테레세
|
||||
NAMESET_SCANDINAVIAN_FEMALE_150=틸다
|
||||
NAMESET_SCANDINAVIAN_FEMALE_151=토바
|
||||
NAMESET_SCANDINAVIAN_FEMALE_152=토베
|
||||
NAMESET_SCANDINAVIAN_FEMALE_153=투바
|
||||
NAMESET_SCANDINAVIAN_FEMALE_154=티라
|
||||
NAMESET_SCANDINAVIAN_FEMALE_155=벤델라
|
||||
NAMESET_SCANDINAVIAN_FEMALE_156=베라
|
||||
NAMESET_SCANDINAVIAN_FEMALE_157=빅토리아
|
||||
NAMESET_SCANDINAVIAN_FEMALE_158=일바
|
||||
@@ -7,7 +7,7 @@
|
||||
"strength" : 1000,
|
||||
"strengthvariable" : [100,100,100,100,100,100,100],
|
||||
|
||||
"accel" : 0.2,
|
||||
"accel" : 0.32,
|
||||
|
||||
"speed" : 3.0,
|
||||
"speedvariable" : [100,100,100,100,100,100,100],
|
||||
@@ -18,15 +18,13 @@
|
||||
"scale" : 1,
|
||||
"scalevariable" : [100,100,100,100,100,100,100],
|
||||
|
||||
"speed" : 2.0,
|
||||
"speedvariable" : [100,100,100,100,100,100,100],
|
||||
|
||||
"physiquemult" : [100,100,100,100,100,100,100],
|
||||
|
||||
"encumbrance" : 1000,
|
||||
"basedefence" : "work in progress",
|
||||
|
||||
"toolsize" : 15,
|
||||
|
||||
"intelligent" : true
|
||||
|
||||
}
|
||||
29
res/raw/Creature_raw_doc.txt
Normal file
@@ -0,0 +1,29 @@
|
||||
Creature raw documentation
|
||||
|
||||
== string values ==
|
||||
|
||||
racename(plural) : Racename token in language CSV
|
||||
|
||||
baseheight : base height for hitbox. [px] (24 px == 1 metre)
|
||||
basemass : base mass for creature. [kg]
|
||||
|
||||
== number values ==
|
||||
|
||||
strength : strength value, no significant unit is given. The value for regular human is fixed to 1 000.
|
||||
accel : acceleration for walking. [px / TARGET_FPS^2]
|
||||
speed : walk speed. [px / TARGET_FPS]
|
||||
jumppower : self-explanatory. [-px / TARGET_FPS^2]
|
||||
scale : creature body scale. Mass/strength/accel/etc. will be changed accordingly, hence the prefix “base” for some raw tokens.
|
||||
|
||||
-variable : variability factor. [array of percentiles]
|
||||
|
||||
physiquemult : variable scale. Used for wild creatures ONLY.
|
||||
|
||||
encumbrance : capacity of carrying. [kg]
|
||||
basedefence : base defence value of body. Sterner body material == higher value
|
||||
|
||||
toolsize : base tool size for the creature. See MECHANICS file for more information.
|
||||
|
||||
== boolean values ==
|
||||
|
||||
intelligent : can speak and talk.
|
||||
@@ -2,7 +2,7 @@
|
||||
"factionname" : "player",
|
||||
|
||||
"factionamicable" : ["follower"],
|
||||
"factionneutral" : [],
|
||||
"factionneutral" : ["controlledvillager"],
|
||||
"factionhostile" : ["wildlifehostile"],
|
||||
"factionfearful" : ["wildlifeflee"]
|
||||
}
|
||||
8
res/raw/FactionWildHamletTemplate.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"factionname" : "wildhamlet_template",
|
||||
|
||||
"factionamicable" : [],
|
||||
"factionneutral" : ["player", "thisvillager", "thiscontroller"],
|
||||
"factionhostile" : [],
|
||||
"factionfearful" : []
|
||||
}
|
||||
@@ -1,3 +1,5 @@
|
||||
Faction documentation
|
||||
|
||||
{
|
||||
"factionname" : "player",
|
||||
|
||||
@@ -10,12 +12,12 @@
|
||||
factionname : Identifier of the faction data
|
||||
|
||||
factionamicable : Amicable faction. Players can give/take items of actors of this faction, in plus
|
||||
to the ability of trading. Assigned actors (usually follower) will follow players
|
||||
to the ability of barter. Assigned actors (usually follower) will follow players
|
||||
in game.
|
||||
|
||||
factionneutral : Explicit neutrality. If the assigned actor is intelligent (NPC AV), players can
|
||||
trade with them. Unassigned faction will be treated like neutral, but players can
|
||||
not make any trade with them.
|
||||
barter with them. Unassigned faction will be treated like neutral, but players
|
||||
cannot barter with them.
|
||||
|
||||
factionhostile : Assigned faction will attack players on the sight. e.g. 'wildlifehostile'
|
||||
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
# An adjacency matrix of religion sphere relationship
|
||||
# 0: neutral, 1: amicable (welcoming), -1: hostile (will not barter == explicit neutrality)
|
||||
# 0: neutral, 1: amicable (welcoming), -1: hostile (will not barter, like 'unassigned' neutral)
|
||||
# -2: enemy (this is the holy war! WAAAGH!!)
|
||||
|
||||
# war: WAAAGH!!
|
||||
# randomness: All hail the Random Number God!
|
||||
# strength: tranees; disciplinants
|
||||
# brute: mostly "brute" wild mobs, or spheres that fond of bruteness
|
||||
# brute: mostly "brute" wild mobs, or spheres that is fond of brute-ness
|
||||
|
||||
"↓from to→";"strength";"harmony";"war";"randomness";"wealth";"brute";"helix"
|
||||
"strength" ; "1"; "1"; "-1"; "0"; "0"; "-1"
|
||||
"harmony" ; "0"; "1"; "-1"; "-1"; "0"; "0"
|
||||
"war" ; "-2"; "-2"; "1"; "-2"; "-2"; "-2"
|
||||
"randomness"; "0"; "0"; "0"; "1"; "0"; "0"
|
||||
"strength" ; "1"; "1"; "0"; "0"; "0"; "0"; "0"
|
||||
"harmony" ; "0"; "1"; "-1"; "0"; "0"; "0"; "0"
|
||||
"war" ; "-2"; "-2"; "1"; "-2"; "-2"; "-2"; "0"
|
||||
"randomness"; "0"; "0"; "0"; "1"; "0"; "0"; "0"
|
||||
"wealth" ;
|
||||
"brute" ;
|
||||
"brute" ; "0"; "0"; "-1"; "0"; "0"; "-1"; "0"
|
||||
"helix" ;
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 8 and column 17.
|
@@ -21,6 +21,7 @@ public class GameFontBase implements Font {
|
||||
static SpriteSheet cyrilic;
|
||||
static SpriteSheet cyrilicEF;
|
||||
static SpriteSheet fullwidthForms;
|
||||
static SpriteSheet uniPunct;
|
||||
|
||||
static final int JUNG_COUNT = 21;
|
||||
static final int JONG_COUNT = 28;
|
||||
@@ -46,6 +47,7 @@ public class GameFontBase implements Font {
|
||||
static final int SHEET_CYRILIC_EM = 9;
|
||||
static final int SHEET_CYRILIC_EF = 10;
|
||||
static final int SHEET_FW_UNI = 11;
|
||||
static final int SHEET_UNI_PUNCT = 12;
|
||||
|
||||
static SpriteSheet[] sheetKey;
|
||||
static final Character[] asciiEFList = {
|
||||
@@ -139,9 +141,15 @@ public class GameFontBase implements Font {
|
||||
}
|
||||
|
||||
private boolean isFullwidthUni(char c) {
|
||||
return (c >= 0xFF00 && c < 0xFF60);
|
||||
return (c >= 0xFF00 && c < 0xFF20);
|
||||
}
|
||||
|
||||
private boolean isUniPunct(char c) {
|
||||
return (c >= 0x2000 && c < 0x2070);
|
||||
}
|
||||
|
||||
/** */
|
||||
|
||||
private int asciiEFindexX(char c) {
|
||||
return (Arrays.asList(asciiEFList).indexOf(c) % 16);
|
||||
}
|
||||
@@ -214,6 +222,14 @@ public class GameFontBase implements Font {
|
||||
return (c - 0xFF00) / 16;
|
||||
}
|
||||
|
||||
private int uniPunctIndexX(char c) {
|
||||
return (c - 0x2000) % 16;
|
||||
}
|
||||
|
||||
private int uniPunctIndexY(char c) {
|
||||
return (c - 0x2000) / 16;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getWidth(String s) {
|
||||
return getWidthSubstr(s, s.length());
|
||||
@@ -269,12 +285,7 @@ public class GameFontBase implements Font {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drawString(float v, float v1, String s) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drawString(float x, float y, String s, Color color) {
|
||||
public void drawString(float x, float y, String s) {
|
||||
// hangul fonts first
|
||||
hangulSheet.startUse();
|
||||
for (int i = 0; i < s.length(); i++) {
|
||||
@@ -368,6 +379,10 @@ public class GameFontBase implements Font {
|
||||
sheetX = fullwidthUniIndexX(ch);
|
||||
sheetY = fullwidthUniIndexY(ch);
|
||||
break;
|
||||
case SHEET_UNI_PUNCT:
|
||||
sheetX = uniPunctIndexX(ch);
|
||||
sheetY = uniPunctIndexY(ch);
|
||||
break;
|
||||
default:
|
||||
sheetX = ch % 16;
|
||||
sheetY = ch / 16;
|
||||
@@ -378,11 +393,11 @@ public class GameFontBase implements Font {
|
||||
int glyphW = getWidth("" + ch);
|
||||
sheetKey[prevInstance].renderInUse(
|
||||
Math.round(x + getWidthSubstr(s, i + 1) - glyphW)
|
||||
// Interchar: pull punct right next to hangul to the left
|
||||
+ ((i > 0 && isHangul(s.charAt(i - 1))) ? -3 : 0)
|
||||
// Interchar: pull punct right next to hangul to the left
|
||||
+ ((i > 0 && isHangul(s.charAt(i - 1))) ? -3 : 0)
|
||||
, Math.round(y)
|
||||
+ ((prevInstance == SHEET_CJK_PUNCT) ? -1 :
|
||||
(prevInstance == SHEET_FW_UNI) ? (H - H_HANGUL) / 2 : 0)
|
||||
+ ((prevInstance == SHEET_CJK_PUNCT) ? -1 :
|
||||
(prevInstance == SHEET_FW_UNI) ? (H - H_HANGUL) / 2 : 0)
|
||||
, sheetX
|
||||
, sheetY
|
||||
);
|
||||
@@ -403,6 +418,11 @@ public class GameFontBase implements Font {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drawString(float x, float y, String s, Color color) {
|
||||
drawString(x, y, s);
|
||||
}
|
||||
|
||||
private int getSheetType(char c) {
|
||||
// EFs
|
||||
if (isAsciiEF(c)) return SHEET_ASCII_EF;
|
||||
@@ -416,6 +436,7 @@ public class GameFontBase implements Font {
|
||||
else if (isAscii(c)) return SHEET_ASCII_EM;
|
||||
else if (isExtA(c)) return SHEET_EXTA_EM;
|
||||
else if (isCyrilic(c)) return SHEET_CYRILIC_EM;
|
||||
else if (isUniPunct(c)) return SHEET_UNI_PUNCT;
|
||||
// fixed width punctuations
|
||||
else if (isCJKPunct(c)) return SHEET_CJK_PUNCT;
|
||||
else if (isFullwidthUni(c)) return SHEET_FW_UNI;
|
||||
@@ -423,9 +444,22 @@ public class GameFontBase implements Font {
|
||||
else return SHEET_ASCII_EM; // fallback
|
||||
}
|
||||
|
||||
/**
|
||||
* Draw part of a string to the screen. Note that this will still position the text as though
|
||||
* it's part of the bigger string.
|
||||
* @param x
|
||||
* @param y
|
||||
* @param s
|
||||
* @param color
|
||||
* @param startIndex
|
||||
* @param endIndex
|
||||
*/
|
||||
@Override
|
||||
public void drawString(float v, float v1, String s, Color color, int i, int i1) {
|
||||
|
||||
public void drawString(float x, float y, String s, Color color, int startIndex, int endIndex) {
|
||||
String unprintedHead = s.substring(0, startIndex);
|
||||
String printedBody = s.substring(startIndex, endIndex);
|
||||
int xoff = getWidth(unprintedHead);
|
||||
drawString(x + xoff, y, printedBody, color);
|
||||
}
|
||||
|
||||
public void reloadUnihan() throws SlickException {
|
||||
|
||||
@@ -62,6 +62,10 @@ public class GameFontWhite extends GameFontBase {
|
||||
"./res/graphics/fonts/fullwidth_forms.png"
|
||||
, W_UNIHAN, H_UNIHAN
|
||||
);
|
||||
uniPunct = new SpriteSheet(
|
||||
"./res/graphics/fonts/unipunct.png"
|
||||
, W_LATIN_WIDE, H
|
||||
);
|
||||
|
||||
SpriteSheet[] shk = {
|
||||
asciiSheet
|
||||
@@ -76,6 +80,7 @@ public class GameFontWhite extends GameFontBase {
|
||||
, cyrilic
|
||||
, cyrilicEF
|
||||
, fullwidthForms
|
||||
, uniPunct
|
||||
};
|
||||
sheetKey = shk;
|
||||
}
|
||||
|
||||
@@ -33,6 +33,22 @@ public class FudgeDice {
|
||||
return diceResult;
|
||||
}
|
||||
|
||||
/**
|
||||
* Roll dice and get result, for array index
|
||||
* @return Normal distributed integer [0 , N] for N = 2 × DiceCounts + 1. 0 is the most frequent return.
|
||||
*/
|
||||
public int rollForArray() {
|
||||
return roll() + diceCounts;
|
||||
}
|
||||
|
||||
public int getDiceCounts() {
|
||||
return diceCounts;
|
||||
}
|
||||
|
||||
public int getSizeOfProbabilityRange() {
|
||||
return 2 * diceCounts + 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return integer randomly picked from {-1, 0, 1}
|
||||
*/
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.Torvald.Terrarum.Actors;
|
||||
import com.Torvald.Rand.HQRNG;
|
||||
import com.Torvald.Terrarum.MapDrawer.MapDrawer;
|
||||
import com.Torvald.Terrarum.Terrarum;
|
||||
import com.Torvald.Terrarum.TileProperties.TilePropCodex;
|
||||
import com.Torvald.spriteAnimation.SpriteAnimation;
|
||||
import com.jme3.math.FastMath;
|
||||
import com.sun.istack.internal.NotNull;
|
||||
@@ -58,7 +59,7 @@ public class ActorWithBody implements Actor, Visible, Glowing {
|
||||
private volatile float mass = 1f;
|
||||
|
||||
private static final int TSIZE = MapDrawer.TILE_SIZE;
|
||||
private static final int AUTO_CLIMB_RATE = TSIZE / 4;
|
||||
private static int AUTO_CLIMB_RATE = TSIZE / 8;
|
||||
|
||||
/**
|
||||
* Gravitational Constant G. Load from GameMap.
|
||||
@@ -86,7 +87,7 @@ public class ActorWithBody implements Actor, Visible, Glowing {
|
||||
|
||||
private final int UD_COMPENSATOR_MAX = TSIZE;
|
||||
private final int LR_COMPENSATOR_MAX = TSIZE;
|
||||
private final int TILE_CLIMB_RATE = 4;
|
||||
private final int TILE_AUTOCLIMB_RATE = 4;
|
||||
|
||||
/**
|
||||
* A constant to make falling faster so that the game is more playable
|
||||
@@ -95,11 +96,24 @@ public class ActorWithBody implements Actor, Visible, Glowing {
|
||||
|
||||
long referenceID;
|
||||
|
||||
private final int EVENT_COLLIDE_TOP = 0;
|
||||
private final int EVENT_COLLIDE_RIGHT = 1;
|
||||
private final int EVENT_COLLIDE_BOTTOM = 2;
|
||||
private final int EVENT_COLLIDE_LEFT = 3;
|
||||
private final int EVENT_COLLIDE_NONE = -1;
|
||||
|
||||
int collisionEvent = EVENT_COLLIDE_NONE; // cannot collide both X-axis and Y-axis, or else jump control breaks up.
|
||||
|
||||
/**
|
||||
* in milliseconds
|
||||
*/
|
||||
public final int COOLTIME = 500;
|
||||
|
||||
/**
|
||||
* Give new random ReferenceID and initialise ActorValue
|
||||
*/
|
||||
public ActorWithBody() {
|
||||
referenceID = new HQRNG(0x7E22A211AAL).nextLong();
|
||||
referenceID = new HQRNG().nextLong();
|
||||
actorValue = new ActorValue();
|
||||
}
|
||||
|
||||
@@ -152,8 +166,9 @@ public class ActorWithBody implements Actor, Visible, Glowing {
|
||||
baseSpriteHeight = sprite.getHeight();
|
||||
baseSpriteWidth = sprite.getWidth();
|
||||
gravitation = Terrarum.game.map.getGravitation();
|
||||
AUTO_CLIMB_RATE = (int) Math.min(TSIZE / 8 * FastMath.sqrt(scale), TSIZE);
|
||||
|
||||
if (!playerNoClip()) {
|
||||
if (!isPlayerNoClip()) {
|
||||
applyGravitation();
|
||||
}
|
||||
|
||||
@@ -162,16 +177,21 @@ public class ActorWithBody implements Actor, Visible, Glowing {
|
||||
if (veloY > VELO_HARD_LIMIT) veloY = VELO_HARD_LIMIT;
|
||||
|
||||
// Set 'next' positions to fiddle with
|
||||
updateNextHitboxY();
|
||||
updateVerticalPos();
|
||||
clampNextHitbox();
|
||||
updateHitboxY();
|
||||
// updateNextHitboxYFromVelo();
|
||||
// updateNextHitboxXFromVelo();
|
||||
updateNextHitboxFromVelo();
|
||||
|
||||
updateNextHitboxX();
|
||||
updateHorizontalPos();
|
||||
clampNextHitbox();
|
||||
|
||||
// do horizontal collision detection first!
|
||||
// updateHorizontalPos();
|
||||
updateHitboxX();
|
||||
|
||||
|
||||
updateVerticalPos();
|
||||
updateHitboxY();
|
||||
|
||||
|
||||
clampNextHitbox();
|
||||
clampHitbox();
|
||||
}
|
||||
}
|
||||
@@ -182,8 +202,7 @@ public class ActorWithBody implements Actor, Visible, Glowing {
|
||||
* Apply only if not grounded; normal force is not implemented (and redundant)
|
||||
* so we manually reset G to zero (not applying G. force) if grounded.
|
||||
*/
|
||||
// FIXME abnormal jump behaviour if mass == 1, same thing happens if mass == 0 but zero mass
|
||||
// is invalid anyway.
|
||||
// FIXME abnormal jump behaviour if mass == 1, same thing happens if mass == 0 (but zero mass is invalid anyway).
|
||||
private void applyGravitation() {
|
||||
if (!isGrounded()) {
|
||||
/**
|
||||
@@ -205,84 +224,101 @@ public class ActorWithBody implements Actor, Visible, Glowing {
|
||||
}
|
||||
|
||||
private void updateVerticalPos() {
|
||||
if (!playerNoClip()) {
|
||||
if (collidedBottomAndAdjusted()) {
|
||||
grounded = true;
|
||||
veloY = 0;
|
||||
if (!isPlayerNoClip()) {
|
||||
// check downward
|
||||
if (veloY >= 0) { // use TERNARY for L/R!
|
||||
// order of the if-elseif chain is IMPORTANT
|
||||
if (isColliding(CONTACT_AREA_BOTTOM)) {
|
||||
adjustHitBottom();
|
||||
veloY = 0;
|
||||
grounded = true;
|
||||
}
|
||||
else if (isColliding(CONTACT_AREA_BOTTOM, 0, 1)) {
|
||||
veloY = 0;
|
||||
grounded = true;
|
||||
}
|
||||
else {
|
||||
grounded = false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
else if (veloY < 0) {
|
||||
grounded = false;
|
||||
}
|
||||
|
||||
if (collidedTopAndAdjusted()) {
|
||||
veloY = 0;
|
||||
// order of the if-elseif chain is IMPORTANT
|
||||
if (isColliding(CONTACT_AREA_TOP)) {
|
||||
adjustHitTop();
|
||||
veloY = 0;
|
||||
}
|
||||
else if (isColliding(CONTACT_AREA_TOP, 0, -1)) {
|
||||
veloY = 0; // for reversed gravity
|
||||
}
|
||||
else {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
boolean collidedBottomAndAdjusted() {
|
||||
if (getContactArea(CONTACT_AREA_BOTTOM, 0, 1) == 0) {
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* seemingly adjusted and one pixel below has ground
|
||||
*
|
||||
* seemingly adjusted: adjustHitBottom sets position one pixel above the ground
|
||||
* (stepping on ground in-game look, as the sprite render is one pixel offseted to Y)
|
||||
*/
|
||||
else if (getContactArea(CONTACT_AREA_BOTTOM, 0, 1) > 0
|
||||
&& getContactArea(CONTACT_AREA_BOTTOM, 0, 0) == 0) {
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
adjustHitBottom();
|
||||
return true;
|
||||
}
|
||||
private void adjustHitBottom() {
|
||||
float newX = nextHitbox.getPointedX();
|
||||
// int-ify posY of nextHitbox
|
||||
nextHitbox.setPositionYFromPoint( FastMath.floor(nextHitbox.getPointedY()) );
|
||||
|
||||
int newYOff = 0; // always positive
|
||||
|
||||
boolean colliding;
|
||||
do {
|
||||
colliding = isColliding(CONTACT_AREA_BOTTOM, 0, -newYOff);
|
||||
newYOff += 1;
|
||||
} while (colliding);
|
||||
|
||||
float newY = nextHitbox.getPointedY() - newYOff;
|
||||
nextHitbox.setPositionFromPoint(newX, newY + 1);
|
||||
}
|
||||
|
||||
boolean collidedTopAndAdjusted() {
|
||||
if (getContactArea(CONTACT_AREA_TOP, 0, -1) == 0) {
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* seemingly adjusted and one pixel below has ground
|
||||
*
|
||||
* seemingly adjusted: adjustHitBottom sets position one pixel above the ground
|
||||
* (stepping on ground in-game look, as the sprite render is one pixel offseted to Y)
|
||||
*/
|
||||
else if (getContactArea(CONTACT_AREA_TOP, 0, -1) > 0
|
||||
&& getContactArea(CONTACT_AREA_TOP, 0, 0) == 0) {
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
adjustHitTop();
|
||||
return true;
|
||||
}
|
||||
private void adjustHitTop() { // FIXME jump to teleport to ceiling
|
||||
float newX = nextHitbox.getPointedX();
|
||||
// int-ify posY of nextHitbox
|
||||
nextHitbox.setPositionY( FastMath.floor(nextHitbox.getPosY()) );
|
||||
|
||||
int newYOff = 0; // always positive
|
||||
|
||||
boolean colliding;
|
||||
do {
|
||||
colliding = isColliding(CONTACT_AREA_TOP, 0, newYOff);
|
||||
newYOff += 1;
|
||||
} while (colliding);
|
||||
|
||||
float newY = nextHitbox.getPosY() + newYOff;
|
||||
nextHitbox.setPositionFromPoint(newX, newY - 1);
|
||||
}
|
||||
|
||||
private void updateHorizontalPos() {
|
||||
if (!playerNoClip()) {
|
||||
if (collidedRightAndAdjusted()) { // treat as 'event--collided right'
|
||||
if (!isPlayerNoClip()) {
|
||||
resetCollisionEventFlag();
|
||||
collidedRightAndAdjusted();
|
||||
|
||||
if (collisionEvent == EVENT_COLLIDE_RIGHT) {
|
||||
veloX = 0;
|
||||
walledRight = true;
|
||||
|
||||
// TODO remove above two lines and implement tile climb (multi-frame calculation.)
|
||||
// Use variable TILE_CLIMB_RATE
|
||||
}
|
||||
else if (collidedLeftAndAdjusted()) { // treat as 'event--collided left'
|
||||
|
||||
collidedLeftAndAdjusted();
|
||||
|
||||
if (collisionEvent == EVENT_COLLIDE_LEFT) {
|
||||
veloX = 0;
|
||||
walledLeft = true;
|
||||
}
|
||||
else {
|
||||
|
||||
if (collisionEvent != EVENT_COLLIDE_LEFT && collisionEvent != EVENT_COLLIDE_RIGHT) {
|
||||
walledRight = false;
|
||||
walledLeft = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
boolean collidedRightAndAdjusted() {
|
||||
if (getContactArea(CONTACT_AREA_RIGHT, 1, 0) == 0) {
|
||||
return false;
|
||||
void collidedRightAndAdjusted() {
|
||||
if (getContactingArea(CONTACT_AREA_RIGHT, 1, 0) == 0) {
|
||||
resetCollisionEventFlag();
|
||||
}
|
||||
/**
|
||||
* seemingly adjusted and one pixel below has ground
|
||||
@@ -290,19 +326,19 @@ public class ActorWithBody implements Actor, Visible, Glowing {
|
||||
* seemingly adjusted: adjustHitBottom sets position one pixel above the ground
|
||||
* (stepping on ground in-game look, as the sprite render is one pixel offseted to Y)
|
||||
*/
|
||||
else if (getContactArea(CONTACT_AREA_RIGHT, 1, 0) > 0
|
||||
&& getContactArea(CONTACT_AREA_RIGHT, 0, 0) == 0) {
|
||||
return true;
|
||||
else if (getContactingArea(CONTACT_AREA_RIGHT, 1, 0) > 0
|
||||
&& getContactingArea(CONTACT_AREA_RIGHT, 0, 0) == 0) {
|
||||
collisionEvent = EVENT_COLLIDE_RIGHT;
|
||||
}
|
||||
else {
|
||||
adjustHitRight();
|
||||
return true;
|
||||
collisionEvent = EVENT_COLLIDE_RIGHT;
|
||||
}
|
||||
}
|
||||
|
||||
boolean collidedLeftAndAdjusted() {
|
||||
if (getContactArea(CONTACT_AREA_LEFT, -1, 0) == 0) {
|
||||
return false;
|
||||
void collidedLeftAndAdjusted() {
|
||||
if (getContactingArea(CONTACT_AREA_LEFT, -1, 0) == 0) {
|
||||
resetCollisionEventFlag();
|
||||
}
|
||||
/**
|
||||
* seemingly adjusted and one pixel below has ground
|
||||
@@ -310,95 +346,19 @@ public class ActorWithBody implements Actor, Visible, Glowing {
|
||||
* seemingly adjusted: adjustHitBottom sets position one pixel above the ground
|
||||
* (stepping on ground in-game look, as the sprite render is one pixel offseted to Y)
|
||||
*/
|
||||
else if (getContactArea(CONTACT_AREA_LEFT, -1, 0) > 0
|
||||
&& getContactArea(CONTACT_AREA_LEFT, 0, 0) == 0) {
|
||||
return true;
|
||||
else if (getContactingArea(CONTACT_AREA_LEFT, -1, 0) > 0
|
||||
&& getContactingArea(CONTACT_AREA_LEFT, 0, 0) == 0) {
|
||||
collisionEvent = EVENT_COLLIDE_LEFT;
|
||||
}
|
||||
else {
|
||||
adjustHitLeft();
|
||||
return true;
|
||||
collisionEvent = EVENT_COLLIDE_LEFT;
|
||||
}
|
||||
}
|
||||
|
||||
private void updateNextHitboxX() {
|
||||
nextHitbox.set(
|
||||
hitbox.getPosX() + veloX
|
||||
, hitbox.getPosY()
|
||||
, baseHitboxW * scale
|
||||
, baseHitboxH * scale
|
||||
);
|
||||
}
|
||||
|
||||
private void updateNextHitboxY() {
|
||||
nextHitbox.set(
|
||||
hitbox.getPosX()
|
||||
, hitbox.getPosY() + veloY
|
||||
, baseHitboxW * scale
|
||||
, baseHitboxH * scale
|
||||
);
|
||||
}
|
||||
|
||||
private void updateHitboxX() {
|
||||
hitbox.set(
|
||||
nextHitbox.getPosX()
|
||||
, hitbox.getPosY()
|
||||
, baseHitboxW * scale
|
||||
, baseHitboxH * scale
|
||||
);
|
||||
}
|
||||
|
||||
private void updateHitboxY() {
|
||||
hitbox.set(
|
||||
hitbox.getPosX()
|
||||
, nextHitbox.getPosY()
|
||||
, baseHitboxW * scale
|
||||
, baseHitboxH * scale
|
||||
);
|
||||
}
|
||||
|
||||
private void adjustHitBottom() {
|
||||
int tY = 0;
|
||||
int contactArea = getContactArea(CONTACT_AREA_BOTTOM, 0, 0);
|
||||
for (int lim = 0; lim < UD_COMPENSATOR_MAX; lim++) {
|
||||
/**
|
||||
* get contact area and move up and get again.
|
||||
* keep track of this value, and some point they will be set as lowest
|
||||
* and become static. The very point where the value first became lowest
|
||||
* is the value what we want.
|
||||
*/
|
||||
int newContactArea = getContactArea(CONTACT_AREA_BOTTOM, 0, -lim);
|
||||
|
||||
if (newContactArea < contactArea) {
|
||||
tY = -lim;
|
||||
}
|
||||
contactArea = newContactArea;
|
||||
}
|
||||
nextHitbox.setPositionYFromPoint(FastMath.ceil(nextHitbox.getPointedY() + tY));
|
||||
}
|
||||
|
||||
private void adjustHitTop() {
|
||||
int tY = 0;
|
||||
int contactArea = getContactArea(CONTACT_AREA_TOP, 0, 0);
|
||||
for (int lim = 0; lim < UD_COMPENSATOR_MAX; lim++) {
|
||||
/**
|
||||
* get contact area and move up and get again.
|
||||
* keep track of this value, and some point they will be set as lowest
|
||||
* and become static. The very point where the value first became lowest
|
||||
* is the value what we want.
|
||||
*/
|
||||
int newContactArea = getContactArea(CONTACT_AREA_TOP, 0, lim);
|
||||
|
||||
if (newContactArea < contactArea) {
|
||||
tY = lim;
|
||||
}
|
||||
contactArea = newContactArea;
|
||||
}
|
||||
nextHitbox.setPositionYFromPoint(FastMath.floor(nextHitbox.getPointedY() + tY));
|
||||
}
|
||||
|
||||
private void adjustHitRight() {
|
||||
int tX = 0;
|
||||
int contactArea = getContactArea(CONTACT_AREA_RIGHT, 0, 0);
|
||||
int contactArea = getContactingArea(CONTACT_AREA_RIGHT, 0, 0);
|
||||
for (int lim = 0; lim < LR_COMPENSATOR_MAX; lim++) {
|
||||
/**
|
||||
* get contact area and move up and get again.
|
||||
@@ -406,7 +366,7 @@ public class ActorWithBody implements Actor, Visible, Glowing {
|
||||
* and become static. The very point where the value first became lowest
|
||||
* is the value what we want.
|
||||
*/
|
||||
int newContactArea = getContactArea(CONTACT_AREA_RIGHT, -lim, 0);
|
||||
int newContactArea = getContactingArea(CONTACT_AREA_RIGHT, -lim, 0);
|
||||
|
||||
if (newContactArea < contactArea) {
|
||||
tX = -lim;
|
||||
@@ -424,7 +384,7 @@ public class ActorWithBody implements Actor, Visible, Glowing {
|
||||
|
||||
private void adjustHitLeft() {
|
||||
int tX = 0;
|
||||
int contactArea = getContactArea(CONTACT_AREA_LEFT, 0, 0);
|
||||
int contactArea = getContactingArea(CONTACT_AREA_LEFT, 0, 0);
|
||||
for (int lim = 0; lim < LR_COMPENSATOR_MAX; lim++) {
|
||||
/**
|
||||
* get contact area and move up and get again.
|
||||
@@ -432,7 +392,7 @@ public class ActorWithBody implements Actor, Visible, Glowing {
|
||||
* and become static. The very point where the value first became lowest
|
||||
* is the value what we want.
|
||||
*/
|
||||
int newContactArea = getContactArea(CONTACT_AREA_LEFT, lim, 0);
|
||||
int newContactArea = getContactingArea(CONTACT_AREA_LEFT, lim, 0);
|
||||
|
||||
if (newContactArea < contactArea) {
|
||||
tX = lim;
|
||||
@@ -441,14 +401,26 @@ public class ActorWithBody implements Actor, Visible, Glowing {
|
||||
}
|
||||
//nextHitbox.setPositionYFromPoint(nextHitbox.getPointedX() + tX);
|
||||
nextHitbox.set(
|
||||
FastMath.floor(nextHitbox.getPosX() + tX)
|
||||
FastMath.floor(nextHitbox.getPosX() + tX + 1)
|
||||
, nextHitbox.getPosY()
|
||||
, nextHitbox.getWidth()
|
||||
, nextHitbox.getHeight()
|
||||
);
|
||||
}
|
||||
|
||||
private int getContactArea(int side, int translateX, int translateY) {
|
||||
private boolean isColliding(int side) {
|
||||
return getContactingArea(side) > 0;
|
||||
}
|
||||
|
||||
private boolean isColliding(int side, int tx, int ty) {
|
||||
return getContactingArea(side, tx, ty) > 0;
|
||||
}
|
||||
|
||||
private int getContactingArea(int side) {
|
||||
return getContactingArea(side, 0, 0);
|
||||
}
|
||||
|
||||
private int getContactingArea(int side, int translateX, int translateY) {
|
||||
int contactAreaCounter = 0;
|
||||
for (int i = 0
|
||||
; i < Math.round((side % 2 == 0) ? nextHitbox.getWidth() : nextHitbox.getHeight())
|
||||
@@ -484,7 +456,7 @@ public class ActorWithBody implements Actor, Visible, Glowing {
|
||||
}
|
||||
|
||||
// evaluate
|
||||
if (Terrarum.game.map.getTileFromTerrain(tileX, tileY) > 0) {
|
||||
if (TilePropCodex.getProp(Terrarum.game.map.getTileFromTerrain(tileX, tileY)).isSolid()) {
|
||||
contactAreaCounter += 1;
|
||||
}
|
||||
}
|
||||
@@ -492,6 +464,10 @@ public class ActorWithBody implements Actor, Visible, Glowing {
|
||||
return contactAreaCounter;
|
||||
}
|
||||
|
||||
private void resetCollisionEventFlag() {
|
||||
collisionEvent = EVENT_COLLIDE_NONE;
|
||||
}
|
||||
|
||||
private void clampHitbox() {
|
||||
hitbox.setPositionFromPoint(
|
||||
clampW(hitbox.getPointedX())
|
||||
@@ -506,6 +482,50 @@ public class ActorWithBody implements Actor, Visible, Glowing {
|
||||
);
|
||||
}
|
||||
|
||||
private void updateNextHitboxXFromVelo() {
|
||||
nextHitbox.set(
|
||||
hitbox.getPosX() + veloX
|
||||
, hitbox.getPosY()
|
||||
, baseHitboxW * scale
|
||||
, baseHitboxH * scale
|
||||
);
|
||||
}
|
||||
|
||||
private void updateNextHitboxYFromVelo() {
|
||||
nextHitbox.set(
|
||||
hitbox.getPosX()
|
||||
, hitbox.getPosY() + veloY
|
||||
, baseHitboxW * scale
|
||||
, baseHitboxH * scale
|
||||
);
|
||||
}
|
||||
|
||||
private void updateNextHitboxFromVelo() {
|
||||
nextHitbox.set(
|
||||
hitbox.getPosX() + veloX
|
||||
, hitbox.getPosY() + veloY
|
||||
, baseHitboxW * scale
|
||||
, baseHitboxH * scale
|
||||
);
|
||||
}
|
||||
|
||||
private void updateHitboxX() {
|
||||
hitbox.setDimension(
|
||||
nextHitbox.getWidth()
|
||||
, nextHitbox.getHeight()
|
||||
);
|
||||
hitbox.setPositionX(nextHitbox.getPosX());
|
||||
}
|
||||
|
||||
private void updateHitboxY() {
|
||||
hitbox.setDimension(
|
||||
nextHitbox.getWidth()
|
||||
, nextHitbox.getHeight()
|
||||
);
|
||||
hitbox.setPositionY(nextHitbox.getPosY());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void drawGlow(GameContainer gc, Graphics g) {
|
||||
if (visible && spriteGlow != null) {
|
||||
@@ -624,7 +644,7 @@ public class ActorWithBody implements Actor, Visible, Glowing {
|
||||
}
|
||||
}
|
||||
|
||||
private boolean playerNoClip() {
|
||||
private boolean isPlayerNoClip() {
|
||||
return (this instanceof Player && ((Player) this).isNoClip());
|
||||
}
|
||||
|
||||
@@ -744,7 +764,7 @@ public class ActorWithBody implements Actor, Visible, Glowing {
|
||||
this.update = update;
|
||||
}
|
||||
|
||||
private int clampMulOfTSize(float v) {
|
||||
return (Math.round(v) / TSIZE) * TSIZE;
|
||||
private int quantiseTSize(float v) {
|
||||
return FastMath.floor(v / TSIZE) * TSIZE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -76,7 +76,7 @@ public class CreatureBuildFactory {
|
||||
for (String s : elemSet) {
|
||||
float baseValue = jsonObject.get(s).getAsFloat();
|
||||
// roll fudge dice and get value [-3, 3] as [0, 6]
|
||||
int varSelected = new Fudge3(new HQRNG()).roll() + 3;
|
||||
int varSelected = new Fudge3(new HQRNG()).rollForArray();
|
||||
// get multiplier from json. Assuming percentile
|
||||
int multiplier = jsonObject.get(s + "variable").getAsJsonArray().get(varSelected).getAsInt();
|
||||
float realValue = baseValue * multiplier / 100f;
|
||||
@@ -121,7 +121,7 @@ public class CreatureBuildFactory {
|
||||
for (String s : elemSet) {
|
||||
float baseValue = 1f;
|
||||
// roll fudge dice and get value [-3, 3] as [0, 6]
|
||||
int varSelected = new Fudge3(new HQRNG()).roll() + 3;
|
||||
int varSelected = new Fudge3(new HQRNG()).rollForArray();
|
||||
// get multiplier from json. Assuming percentile
|
||||
int multiplier = jsonObject.get(s).getAsJsonArray().get(varSelected).getAsInt();
|
||||
float realValue = baseValue * multiplier / 100f;
|
||||
|
||||
@@ -11,17 +11,12 @@ public class Hitbox {
|
||||
private Point2f hitboxEnd;
|
||||
private float width;
|
||||
private float height;
|
||||
private float pointX;
|
||||
private float pointY;
|
||||
|
||||
public Hitbox(float x1, float y1, float width, float height) {
|
||||
hitboxStart = new Point2f(x1, y1);
|
||||
hitboxEnd = new Point2f(x1 + width, y1 + height);
|
||||
this.width = width;
|
||||
this.height = height;
|
||||
|
||||
pointX = x1 + (width / 2);
|
||||
pointY = y1 + height;
|
||||
}
|
||||
|
||||
public Point2f getHitboxStart() {
|
||||
@@ -45,7 +40,7 @@ public class Hitbox {
|
||||
* @return pointX
|
||||
*/
|
||||
public float getPointedX() {
|
||||
return pointX;
|
||||
return hitboxStart.getX() + (width / 2);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -53,7 +48,7 @@ public class Hitbox {
|
||||
* @return pointY
|
||||
*/
|
||||
public float getPointedY() {
|
||||
return pointY;
|
||||
return hitboxEnd.getY();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -68,30 +63,45 @@ public class Hitbox {
|
||||
hitboxEnd = new Point2f(x1 + width, y1 + height);
|
||||
this.width = width;
|
||||
this.height = height;
|
||||
}
|
||||
|
||||
pointX = x1 + (width / 2);
|
||||
pointY = y1 + height;
|
||||
public void setPosition(float x1, float y1) {
|
||||
hitboxStart = new Point2f(x1, y1);
|
||||
hitboxEnd = new Point2f(x1 + width, y1 + height);
|
||||
}
|
||||
|
||||
public void setPositionX(float x) {
|
||||
setPosition(x, getPosY());
|
||||
}
|
||||
|
||||
public void setPositionY(float y) {
|
||||
setPosition(getPosX(), y);
|
||||
}
|
||||
|
||||
public void setPositionFromPoint(float x1, float y1) {
|
||||
hitboxStart = new Point2f(x1 - (width / 2), y1 - height);
|
||||
hitboxEnd = new Point2f(hitboxStart.getX() + width, hitboxStart.getY() + height);
|
||||
pointX = x1;
|
||||
pointY = y1;
|
||||
}
|
||||
|
||||
public void setPositionXFromPoint(float x1) {
|
||||
float y1 = pointY;
|
||||
hitboxStart = new Point2f(x1 - (width / 2), y1 - height);
|
||||
hitboxEnd = new Point2f(hitboxStart.getX() + width, hitboxStart.getY() + height);
|
||||
pointX = x1;
|
||||
public void setPositionXFromPoint(float x) {
|
||||
setPositionFromPoint(x, getPointedY());
|
||||
}
|
||||
|
||||
public void setPositionYFromPoint(float y1) {
|
||||
float x1 = pointX;
|
||||
hitboxStart = new Point2f(x1 - (width / 2), y1 - height);
|
||||
hitboxEnd = new Point2f(hitboxStart.getX() + width, hitboxStart.getY() + height);
|
||||
pointY = y1;
|
||||
public void setPositionYFromPoint(float y) {
|
||||
setPositionFromPoint(getPointedX(), y);
|
||||
}
|
||||
|
||||
public void translatePosX(float d) {
|
||||
setPositionX(getPosX() + d);
|
||||
}
|
||||
|
||||
public void translatePosY(float d) {
|
||||
setPositionY(getPosY() + d);
|
||||
}
|
||||
|
||||
public void setDimension(float w, float h) {
|
||||
width = w;
|
||||
height = h;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -109,4 +119,12 @@ public class Hitbox {
|
||||
public float getPosY() {
|
||||
return hitboxStart.getY();
|
||||
}
|
||||
|
||||
public float getCenteredX() {
|
||||
return (hitboxStart.getX() + hitboxEnd.getX()) * 0.5f;
|
||||
}
|
||||
|
||||
public float getCenteredY() {
|
||||
return (hitboxStart.getY() + hitboxEnd.getY()) * 0.5f;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,6 +60,8 @@ public class PBFSigrid {
|
||||
|
||||
p.actorValue.set("intelligent", true);
|
||||
|
||||
p.actorValue.set("luminosity", 22819);
|
||||
|
||||
p.setHitboxDimension(17, 46, 9, 0);
|
||||
|
||||
p.inventory = new ActorInventory(0x7FFFFFFF, true);
|
||||
|
||||
@@ -46,7 +46,7 @@ public class Player extends ActorWithBody implements Controllable, Pocketed, Fac
|
||||
private int prevVMoveKey = -1;
|
||||
private final int KEY_NULL = -1;
|
||||
|
||||
static final float ACCEL_MULT_IN_FLIGHT = 0.22f;
|
||||
static final float ACCEL_MULT_IN_FLIGHT = 0.48f;
|
||||
static final float WALK_STOP_ACCEL = 0.32f;
|
||||
static final float WALK_ACCEL_BASE = 0.32f;
|
||||
|
||||
@@ -59,10 +59,9 @@ public class Player extends ActorWithBody implements Controllable, Pocketed, Fac
|
||||
|
||||
private final int TSIZE = MapDrawer.TILE_SIZE;
|
||||
|
||||
private char LUMINANCE_RGB = 31399;
|
||||
|
||||
private HashSet<Faction> factionSet = new HashSet<>();
|
||||
|
||||
|
||||
/**
|
||||
* Creates new Player instance with empty elements (sprites, actorvalue, etc.). <br />
|
||||
*
|
||||
@@ -452,7 +451,8 @@ public class Player extends ActorWithBody implements Controllable, Pocketed, Fac
|
||||
float timedJumpCharge = init - (init / len) * jumpCounter;
|
||||
if (timedJumpCharge < 0) timedJumpCharge = 0;
|
||||
|
||||
float jumpAcc = pwr * timedJumpCharge * JUMP_ACCELERATION_MOD;
|
||||
float jumpAcc = pwr * timedJumpCharge * JUMP_ACCELERATION_MOD
|
||||
* FastMath.sqrt(getScale());
|
||||
|
||||
super.setVeloY(super.getVeloY()
|
||||
- jumpAcc
|
||||
@@ -567,11 +567,12 @@ public class Player extends ActorWithBody implements Controllable, Pocketed, Fac
|
||||
|
||||
@Override
|
||||
public void setLuminance(char RGB) {
|
||||
LUMINANCE_RGB = RGB;
|
||||
actorValue.set("luminosity", (int) RGB);
|
||||
}
|
||||
|
||||
@Override
|
||||
public char getLuminance() {
|
||||
return LUMINANCE_RGB;
|
||||
return actorValue.hasKey("luminosity") ?
|
||||
(char) actorValue.getAsInt("luminosity") : 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ public class PlayerDebugger {
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* Delegates for Player instances
|
||||
*/
|
||||
|
||||
@@ -42,4 +42,5 @@ public class PlayerDebugger {
|
||||
public ActorValue actorValue() { return getPlayer().getActorValue(); }
|
||||
public float mass() { return getPlayer().getMass(); }
|
||||
public boolean noClip() { return getPlayer().isNoClip(); }
|
||||
public int collisionEvent() { return getPlayer().collisionEvent; }
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.Torvald.Terrarum.ConsoleCommand;
|
||||
|
||||
import com.Torvald.Terrarum.Terrarum;
|
||||
|
||||
import java.util.Hashtable;
|
||||
|
||||
/**
|
||||
@@ -30,6 +32,7 @@ public class CommandDict {
|
||||
dict.put("gsontest", new GsonTest());
|
||||
dict.put("setgl", new SetGlobalLightLevel());
|
||||
dict.put("getfaction", new GetFactioning());
|
||||
dict.put("auth", Terrarum.game.auth);
|
||||
}
|
||||
|
||||
public static ConsoleCommand getCommand(String commandName) {
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.Torvald.Terrarum.LangPack.Lang;
|
||||
import com.Torvald.Terrarum.Terrarum;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Formatter;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
@@ -13,26 +14,16 @@ import java.util.regex.Pattern;
|
||||
*/
|
||||
public class CommandInterpreter {
|
||||
|
||||
private static String[] commandsAvailableWOAuth = {"auth", "qqq", "zoom", "setlocale", "getlocale"};
|
||||
|
||||
public static void execute(String command) {
|
||||
CommandInput[] cmd = parse(command);
|
||||
|
||||
for (CommandInput single_command : cmd) {
|
||||
ConsoleCommand commandObj = null;
|
||||
try {
|
||||
if (single_command.getName().equalsIgnoreCase("auth")) {
|
||||
Terrarum.game.auth.execute(single_command.toStringArray());
|
||||
}
|
||||
else if (single_command.getName().equalsIgnoreCase("qqq")) {
|
||||
new QuitApp().execute(single_command.toStringArray());
|
||||
}
|
||||
else if (single_command.getName().equalsIgnoreCase("zoom")) {
|
||||
new Zoom().execute(single_command.toStringArray());
|
||||
}
|
||||
else if (single_command.getName().equalsIgnoreCase("setlocale")) {
|
||||
new SetLocale().execute(single_command.toStringArray());
|
||||
}
|
||||
else if (single_command.getName().equalsIgnoreCase("getlocale")) {
|
||||
new GetLocale().execute(single_command.toStringArray());
|
||||
if (Arrays.asList(commandsAvailableWOAuth).contains(single_command.getName().toLowerCase())) {
|
||||
commandObj = CommandDict.getCommand(single_command.getName().toLowerCase());
|
||||
}
|
||||
else {
|
||||
if (Terrarum.game.auth.b()) {
|
||||
@@ -41,20 +32,26 @@ public class CommandInterpreter {
|
||||
);
|
||||
}
|
||||
else {
|
||||
System.out.println("ee1");
|
||||
throw new NullPointerException(); // if not authorised, say "Unknown command"
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (NullPointerException e) {
|
||||
echoUnknownCmd(single_command.getName());
|
||||
|
||||
}
|
||||
finally {
|
||||
try {
|
||||
if (commandObj != null)
|
||||
if (commandObj != null) {
|
||||
commandObj.execute(single_command.toStringArray());
|
||||
}
|
||||
else {
|
||||
echoUnknownCmd(single_command.getName());
|
||||
System.out.println("ee3");
|
||||
}
|
||||
}
|
||||
catch (Exception e) {
|
||||
System.out.println("[CommandInterpreter] ");
|
||||
System.out.println("[CommandInterpreter] :");
|
||||
e.printStackTrace();
|
||||
new Echo().execute(Lang.get("ERROR_GENERIC_TEXT"));
|
||||
}
|
||||
|
||||
@@ -15,30 +15,43 @@ public class GetAV implements ConsoleCommand {
|
||||
public void execute(String[] args) {
|
||||
Echo echo = new Echo();
|
||||
|
||||
if (args.length == 1) {
|
||||
// print all actorvalue of player
|
||||
ActorValue av = Terrarum.game.getPlayer().getActorValue();
|
||||
Set keyset = av.getKeySet();
|
||||
try {
|
||||
if (args.length == 1) {
|
||||
// print all actorvalue of player
|
||||
ActorValue av = Terrarum.game.getPlayer().getActorValue();
|
||||
Set keyset = av.getKeySet();
|
||||
|
||||
keyset.forEach(
|
||||
elem -> echo.execute(elem + " = " + av.get((String)elem))
|
||||
);
|
||||
keyset.forEach(
|
||||
elem -> echo.execute(elem + " = " + av.get((String) elem))
|
||||
);
|
||||
|
||||
}
|
||||
else if (args.length != 3 && args.length != 2) {
|
||||
printUsage();
|
||||
}
|
||||
else if (args.length == 2) {
|
||||
echo.execute("player." + args[1] + " = "
|
||||
+ Terrarum.game.getPlayer().getActorValue().get(args[1])
|
||||
+ " ("
|
||||
+ Terrarum.game.getPlayer().getActorValue().get(args[1]).getClass()
|
||||
.getSimpleName()
|
||||
+ ")"
|
||||
);
|
||||
}
|
||||
else if (args.length == 3) {
|
||||
}
|
||||
else if (args.length != 3 && args.length != 2) {
|
||||
printUsage();
|
||||
}
|
||||
else if (args.length == 2) {
|
||||
echo.execute("player." + args[1] + " = "
|
||||
+ Terrarum.game.getPlayer().getActorValue().get(args[1])
|
||||
+ " ("
|
||||
+ Terrarum.game.getPlayer().getActorValue().get(args[1]).getClass()
|
||||
.getSimpleName()
|
||||
+ ")"
|
||||
);
|
||||
}
|
||||
else if (args.length == 3) {
|
||||
|
||||
}
|
||||
}
|
||||
catch (NullPointerException e) {
|
||||
if (args.length == 2) {
|
||||
echo.execute(args[1] + ": actor value does not exist.");
|
||||
}
|
||||
else if (args.length == 3) {
|
||||
echo.execute(args[2] + ": actor value does not exist.");
|
||||
}
|
||||
else {
|
||||
throw new NullPointerException();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -27,17 +27,24 @@ class SetAV implements ConsoleCommand {
|
||||
else if (args.length == 3) {
|
||||
Object val;
|
||||
|
||||
try { val = new Float(args[2]); } // try for number
|
||||
try {
|
||||
val = new Integer(args[2]); // try for integer
|
||||
}
|
||||
catch (NumberFormatException e) {
|
||||
|
||||
if (args[2].toLowerCase() == "true") {
|
||||
val = new Boolean(true);
|
||||
try {
|
||||
val = new Float(args[2]); // try for float
|
||||
}
|
||||
else if (args[2].toLowerCase() == "false") {
|
||||
val = new Boolean(false);
|
||||
}
|
||||
else {
|
||||
val = new String(args[2]); // string if not number
|
||||
catch (NumberFormatException ee) {
|
||||
if (args[2].equalsIgnoreCase("true")) {
|
||||
val = new Boolean(true);
|
||||
}
|
||||
else if (args[2].equalsIgnoreCase("false")) {
|
||||
val = new Boolean(false);
|
||||
}
|
||||
else {
|
||||
val = new String(args[2]); // string if not number
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -140,11 +140,17 @@ public class Game extends BasicGameState {
|
||||
public void update(GameContainer gc, StateBasedGame sbg, int delta_t) {
|
||||
setAppTitle();
|
||||
|
||||
GameController.processInput(gc.getInput());
|
||||
KeyToggler.update(gc);
|
||||
|
||||
TileStat.update();
|
||||
|
||||
/** Placed before actor update to give some dynamic view of player on screen,
|
||||
* or else player will always stay same spot, which is somewhat dull.
|
||||
*/
|
||||
MapDrawer.update(gc, delta_t);
|
||||
MapCamera.update(gc, delta_t);
|
||||
|
||||
GameController.processInput(gc.getInput());
|
||||
|
||||
actorContainer.forEach(actor -> actor.update(gc, delta_t));
|
||||
actorContainer.forEach(
|
||||
actor -> {
|
||||
@@ -159,11 +165,7 @@ public class Game extends BasicGameState {
|
||||
|
||||
uiContainer.forEach(ui -> ui.update(gc, delta_t));
|
||||
|
||||
KeyToggler.update(gc);
|
||||
|
||||
//bulletin.update(gc, delta_t);
|
||||
|
||||
TileStat.update();
|
||||
}
|
||||
|
||||
private void setAppTitle() {
|
||||
@@ -205,9 +207,10 @@ public class Game extends BasicGameState {
|
||||
MapDrawer.render(gc, g);
|
||||
|
||||
LightmapRenderer.renderLightMap();
|
||||
|
||||
setBlendModeMul();
|
||||
MapDrawer.drawEnvOverlay(g);
|
||||
LightmapRenderer.draw(g);
|
||||
// MapDrawer.drawEnvOverlay(g);
|
||||
setBlendModeNormal();
|
||||
|
||||
uiContainer.forEach(ui -> ui.render(gc, g));
|
||||
@@ -224,7 +227,7 @@ public class Game extends BasicGameState {
|
||||
int gradMapWidth = GRADIENT_IMAGE.getWidth();
|
||||
int phase = Math.round((timeSec / WorldTime.DAY_LENGTH) * gradMapWidth);
|
||||
|
||||
//update in every 60 frames
|
||||
//update in every INTERNAL_FRAME frames
|
||||
colourTable[0] = GRADIENT_IMAGE.getColor(phase, 0);
|
||||
colourTable[1] = GRADIENT_IMAGE.getColor(phase, 1);
|
||||
|
||||
|
||||
@@ -5,6 +5,8 @@ import com.Torvald.Terrarum.Actors.Player;
|
||||
import com.Torvald.Terrarum.MapDrawer.MapCamera;
|
||||
import com.Torvald.Terrarum.MapDrawer.MapDrawer;
|
||||
import com.Torvald.Terrarum.Terrarum;
|
||||
import com.Torvald.Terrarum.TileProperties.TileNameCode;
|
||||
import com.Torvald.Terrarum.TileProperties.TilePropCodex;
|
||||
import com.Torvald.Terrarum.UserInterface.UIHandler;
|
||||
import org.newdawn.slick.Input;
|
||||
|
||||
@@ -38,6 +40,30 @@ public class GameController {
|
||||
else {
|
||||
Terrarum.game.consoleHandler.processInput(input);
|
||||
}
|
||||
|
||||
|
||||
int mouseTileX = (int) ((MapCamera.getCameraX() + input.getMouseX() / Terrarum.game.screenZoom)
|
||||
/ MapDrawer.TILE_SIZE);
|
||||
int mouseTileY = (int) ((MapCamera.getCameraY() + input.getMouseY() / Terrarum.game.screenZoom)
|
||||
/ MapDrawer.TILE_SIZE);
|
||||
|
||||
if (input.isMouseButtonDown(Input.MOUSE_LEFT_BUTTON)) {
|
||||
// test tile remove
|
||||
try {
|
||||
Terrarum.game.map.setTileTerrain(mouseTileX, mouseTileY, TileNameCode.AIR);
|
||||
Terrarum.game.map.setTileWall(mouseTileX, mouseTileY, TileNameCode.AIR);
|
||||
}
|
||||
catch (ArrayIndexOutOfBoundsException e) {
|
||||
}
|
||||
}
|
||||
else if (input.isMouseButtonDown(Input.MOUSE_RIGHT_BUTTON)) {
|
||||
// test tile place
|
||||
try {
|
||||
Terrarum.game.map.setTileTerrain(mouseTileX, mouseTileY, TileNameCode.ICE_MAGICAL);
|
||||
}
|
||||
catch (ArrayIndexOutOfBoundsException e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void keyPressed(int key, char c) {
|
||||
@@ -77,16 +103,7 @@ public class GameController {
|
||||
}
|
||||
|
||||
public static void mousePressed(int button, int x, int y) {
|
||||
int mouseTileX = (int) ((MapCamera.getCameraX() + x / Terrarum.game.screenZoom)
|
||||
/ MapDrawer.TILE_SIZE);
|
||||
int mouseTileY = (int) ((MapCamera.getCameraY() + y / Terrarum.game.screenZoom)
|
||||
/ MapDrawer.TILE_SIZE);
|
||||
|
||||
try {
|
||||
Terrarum.game.map.setTileTerrain(mouseTileX, mouseTileY, (byte) 0);
|
||||
Terrarum.game.map.setTileWall(mouseTileX, mouseTileY, (byte) 0);
|
||||
}
|
||||
catch (ArrayIndexOutOfBoundsException e) {}
|
||||
}
|
||||
|
||||
public static void mouseReleased(int button, int x, int y) {
|
||||
|
||||
@@ -36,8 +36,14 @@ public class KVHashtable {
|
||||
return hashtable.get(key.toLowerCase());
|
||||
}
|
||||
|
||||
public int getAsInt(String key) {
|
||||
return (int) get(key);
|
||||
}
|
||||
|
||||
public float getAsFloat(String key) {
|
||||
return (float) get(key);
|
||||
Object value = get(key);
|
||||
if (value instanceof Integer) return ((Integer) value).floatValue();
|
||||
else return (float) value;
|
||||
}
|
||||
|
||||
public String getAsString(String key) {
|
||||
@@ -48,6 +54,10 @@ public class KVHashtable {
|
||||
return (boolean) get(key);
|
||||
}
|
||||
|
||||
public boolean hasKey(String key) {
|
||||
return hashtable.containsKey(key);
|
||||
}
|
||||
|
||||
public Set getKeySet() {
|
||||
return hashtable.keySet();
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ public class Lang {
|
||||
|
||||
private static final String PATH_TO_CSV = "./res/locales/";
|
||||
private static final String CSV_MAIN = "polyglot.csv";
|
||||
private static final String NAMESET_PREFIX = "nameset_";
|
||||
|
||||
private static final int[] HANGUL_POST_INDEX_ALPH = { // 0: 는, 가, ... 1: 은, 이, ...
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
@@ -57,7 +58,7 @@ public class Lang {
|
||||
FilenameFilter filter = new FilenameFilter() {
|
||||
@Override
|
||||
public boolean accept(File dir, String name) {
|
||||
return name.contains(".csv") && !name.contains(CSV_MAIN);
|
||||
return name.contains(".csv") && !name.contains(CSV_MAIN) && !name.contains(NAMESET_PREFIX);
|
||||
}
|
||||
};
|
||||
for (String csvfilename : file.list(filter)) {
|
||||
|
||||
@@ -133,16 +133,16 @@ public class MapCamera {
|
||||
public static void update(GameContainer gc, int delta_t) {
|
||||
Player player = Terrarum.game.getPlayer();
|
||||
|
||||
renderWidth = FastMath.ceil(Terrarum.WIDTH / Terrarum.game.screenZoom);
|
||||
renderWidth = FastMath.ceil(Terrarum.WIDTH / Terrarum.game.screenZoom); // div, not mul
|
||||
renderHeight = FastMath.ceil(Terrarum.HEIGHT / Terrarum.game.screenZoom);
|
||||
|
||||
// position - (WH / 2)
|
||||
cameraX = clamp(
|
||||
Math.round(player.getNextHitbox().getPointedX() - (renderWidth / 2))
|
||||
Math.round(player.getHitbox().getCenteredX() - (renderWidth / 2))
|
||||
, map.width * TSIZE - renderWidth
|
||||
);
|
||||
cameraY = clamp(
|
||||
Math.round(player.getNextHitbox().getPointedY() - (renderHeight / 2))
|
||||
Math.round(player.getHitbox().getCenteredY() - (renderHeight / 2))
|
||||
, map.height * TSIZE - renderHeight
|
||||
);
|
||||
}
|
||||
@@ -311,19 +311,19 @@ public class MapCamera {
|
||||
}
|
||||
}
|
||||
|
||||
private static int div16(int x) {
|
||||
public static int div16(int x) {
|
||||
return (x & 0x7FFF_FFFF) >> 4;
|
||||
}
|
||||
|
||||
private static int mod16(int x) {
|
||||
public static int mod16(int x) {
|
||||
return x & 0b1111;
|
||||
}
|
||||
|
||||
private static int quantise16(int x) {
|
||||
public static int quantise16(int x) {
|
||||
return (x & 0xFFFF_FFF0);
|
||||
}
|
||||
|
||||
private static int clampW(int x) {
|
||||
public static int clampW(int x) {
|
||||
if (x < 0) {
|
||||
return 0;
|
||||
}
|
||||
@@ -335,7 +335,7 @@ public class MapCamera {
|
||||
}
|
||||
}
|
||||
|
||||
private static int clampH(int x) {
|
||||
public static int clampH(int x) {
|
||||
if (x < 0) {
|
||||
return 0;
|
||||
}
|
||||
@@ -347,7 +347,7 @@ public class MapCamera {
|
||||
}
|
||||
}
|
||||
|
||||
private static int clampWTile(int x) {
|
||||
public static int clampWTile(int x) {
|
||||
if (x < 0) {
|
||||
return 0;
|
||||
}
|
||||
@@ -359,7 +359,7 @@ public class MapCamera {
|
||||
}
|
||||
}
|
||||
|
||||
private static int clampHTile(int x) {
|
||||
public static int clampHTile(int x) {
|
||||
if (x < 0) {
|
||||
return 0;
|
||||
}
|
||||
@@ -371,7 +371,7 @@ public class MapCamera {
|
||||
}
|
||||
}
|
||||
|
||||
private static int clamp(int x, int lim) {
|
||||
public static int clamp(int x, int lim) {
|
||||
if (x < 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -3,6 +3,9 @@ package com.Torvald.Terrarum.MapDrawer;
|
||||
import com.Torvald.Terrarum.*;
|
||||
import com.Torvald.Terrarum.Game;
|
||||
import com.Torvald.Terrarum.GameMap.GameMap;
|
||||
import com.Torvald.Terrarum.TileProperties.TileNameCode;
|
||||
import com.Torvald.Terrarum.TileStat.TileStat;
|
||||
import com.jme3.math.FastMath;
|
||||
import org.newdawn.slick.*;
|
||||
import org.newdawn.slick.geom.Rectangle;
|
||||
|
||||
@@ -11,22 +14,20 @@ import org.newdawn.slick.geom.Rectangle;
|
||||
*/
|
||||
public class MapDrawer {
|
||||
|
||||
private static SpriteSheet mapTileMap;
|
||||
private static SpriteSheet wallTileMap;
|
||||
|
||||
public static final int TILE_SIZE = 16;
|
||||
public static final int ENVCOLOUR_MAX = 128;
|
||||
|
||||
private static int envmap = 64;
|
||||
private static Rectangle envOverlay;
|
||||
private static Image envOverlayColourmap;
|
||||
|
||||
public MapDrawer(GameMap map) throws SlickException {
|
||||
mapTileMap = new SpriteSheet("./res/graphics/terrain/terrain.png", TILE_SIZE, TILE_SIZE);
|
||||
wallTileMap = new SpriteSheet("./res/graphics/terrain/wall.png", TILE_SIZE, TILE_SIZE);
|
||||
private static final int ENV_COLTEMP_LOWEST = 5500;
|
||||
private static final int ENV_COLTEMP_HIGHEST = 7500;
|
||||
|
||||
private static int colTemp;
|
||||
|
||||
public MapDrawer(GameMap map) throws SlickException {
|
||||
new MapCamera(map);
|
||||
|
||||
envOverlayColourmap = new Image("./res/graphics/black_body_col_1000_40000_K.png");
|
||||
|
||||
System.gc();
|
||||
}
|
||||
|
||||
@@ -37,13 +38,51 @@ public class MapDrawer {
|
||||
}
|
||||
|
||||
public static void drawEnvOverlay(Graphics g) {
|
||||
envOverlay.setX(MapCamera.getCameraX() * Terrarum.game.screenZoom);
|
||||
envOverlay.setY(MapCamera.getCameraY() * Terrarum.game.screenZoom);
|
||||
envOverlay.setSize(Terrarum.WIDTH * Terrarum.game.screenZoom
|
||||
, Terrarum.HEIGHT * Terrarum.game.screenZoom
|
||||
int onscreen_tiles_max = FastMath.ceil(Terrarum.HEIGHT * Terrarum.WIDTH / FastMath.sqr(TILE_SIZE))
|
||||
* 2;
|
||||
float onscreen_tiles_cap = onscreen_tiles_max / 4f;
|
||||
float onscreen_cold_tiles = TileStat.getCount(
|
||||
TileNameCode.ICE_MAGICAL
|
||||
, TileNameCode.ICE_FRAGILE
|
||||
, TileNameCode.ICE_NATURAL
|
||||
, TileNameCode.SNOW
|
||||
);
|
||||
|
||||
colTemp = colTempLinearFunc((onscreen_cold_tiles / onscreen_tiles_cap));
|
||||
float zoom = Terrarum.game.screenZoom;
|
||||
|
||||
g.setColor(getColourFromMap(colTemp));
|
||||
g.fillRect(MapCamera.getCameraX() * zoom
|
||||
, MapCamera.getCameraY() * zoom
|
||||
, Terrarum.WIDTH * ((zoom < 1) ? 1f / zoom : zoom)
|
||||
, Terrarum.HEIGHT * ((zoom < 1) ? 1f / zoom : zoom)
|
||||
);
|
||||
|
||||
// Color[] colourTable = getGradientColour(WorldTime.elapsedSeconds());
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param x [-1 , 1], 0 for 6500K (median of ENV_COLTEMP_HIGHEST and ENV_COLTEMP_LOWEST)
|
||||
* @return
|
||||
*/
|
||||
private static int colTempLinearFunc(float x) {
|
||||
int colTempMedian = (ENV_COLTEMP_HIGHEST + ENV_COLTEMP_LOWEST) / 2;
|
||||
|
||||
return Math.round((ENV_COLTEMP_HIGHEST - ENV_COLTEMP_LOWEST) / 2 * FastMath.clamp(x, -1f, 1f)
|
||||
+ colTempMedian);
|
||||
}
|
||||
|
||||
private static Color getColourFromMap(int K) {
|
||||
return envOverlayColourmap.getColor(colTempToImagePos(K), 0);
|
||||
}
|
||||
|
||||
private static int colTempToImagePos(int K) {
|
||||
if (K < 1000 || K >= 40000) throw new IllegalArgumentException("K: out of range. (" + K + ")");
|
||||
return (K - 1000) / 10;
|
||||
}
|
||||
|
||||
public static int getColTemp() {
|
||||
return colTemp;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@ public class Terrarum extends StateBasedGame {
|
||||
public static String defaultDir;
|
||||
public static String defaultSaveDir;
|
||||
|
||||
public static String gameLocale = "jaJP";
|
||||
public static String gameLocale = "isIC";
|
||||
|
||||
public static Font gameFontWhite;
|
||||
|
||||
|
||||
@@ -51,10 +51,6 @@ public class TilePropCodex {
|
||||
return tileProps[index];
|
||||
}
|
||||
|
||||
public static byte getTileID(String name) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
private static void setProp(TileProp prop, CSVRecord record) {
|
||||
prop.setName(record.get("name"));
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
"27";"TILE_SNOW" ; "8205"; "6"; "0"; "N/A"; "1"; "1"; "0"; "27"; "0";"16"
|
||||
"28";"TILE_ICE_FRAGILE" ; "3282"; "1"; "0"; "N/A"; "1"; "0"; "0"; "28"; "0";"16"
|
||||
"29";"TILE_ICE_NATURAL" ; "6564"; "25"; "0"; "N/A"; "1"; "1"; "0"; "29"; "0"; "8"
|
||||
"30";"TILE_ICE_CLEAR_MAGICAL" ; "8205"; "25"; "0"; "N/A"; "1"; "1";"14949"; "30"; "0"; "8"
|
||||
"30";"TILE_ICE_CLEAR_MAGICAL" ; "8205"; "25"; "0"; "N/A"; "1"; "1"; "5009"; "30"; "0"; "8"
|
||||
# see scandinavian name set female of this tile id!
|
||||
"31";"TILE_PLATFORM_STONE" ; "0"; "0"; "0"; "N/A"; "0"; "0"; "0"; "31"; "0";"16"
|
||||
"32";"TILE_PLATFORM_WOODEN" ; "0"; "0"; "0"; "N/A"; "0"; "0"; "0"; "32"; "0";"16"
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 1 and column 12.
|
@@ -1,22 +0,0 @@
|
||||
{
|
||||
"0": {
|
||||
"name": "TILE_AIR",
|
||||
"opacity": 0,
|
||||
"strength": 0,
|
||||
"isFluid": 0,
|
||||
"fluidViscocity": 0,
|
||||
"drop": "__null",
|
||||
"isSolid": 0,
|
||||
"isAlsoWall": 0
|
||||
},
|
||||
"1": {
|
||||
"name": "TILE_STONE",
|
||||
"opacity": 8,
|
||||
"strength": 25,
|
||||
"isFluid": 0,
|
||||
"fluidViscocity": 0,
|
||||
"drop": "item.stone",
|
||||
"isSolid": 0,
|
||||
"isAlsoWall": 0
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,12 @@
|
||||
package com.Torvald.Terrarum.TileStat;
|
||||
|
||||
import com.Torvald.Terrarum.Game;
|
||||
import com.Torvald.Terrarum.Actors.Player;
|
||||
import com.Torvald.Terrarum.GameMap.GameMap;
|
||||
import com.Torvald.Terrarum.GameMap.MapLayer;
|
||||
import com.Torvald.Terrarum.MapDrawer.MapCamera;
|
||||
import com.Torvald.Terrarum.MapDrawer.MapDrawer;
|
||||
import com.Torvald.Terrarum.Terrarum;
|
||||
import com.jme3.math.FastMath;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
@@ -14,30 +17,72 @@ public class TileStat {
|
||||
|
||||
private static short[] tilestat = new short[MapLayer.TILES_SUPPORTED];
|
||||
|
||||
private static final int TSIZE = MapDrawer.TILE_SIZE;
|
||||
|
||||
/**
|
||||
* Update tile stats from tiles on screen
|
||||
*/
|
||||
public static void update() {
|
||||
Arrays.fill(tilestat, (short) 0);
|
||||
|
||||
int for_x_start = MapCamera.getRenderStartX();
|
||||
int for_y_start = MapCamera.getRenderStartY();
|
||||
int for_x_end = MapCamera.getRenderEndX();
|
||||
int for_y_end = MapCamera.getRenderEndY();
|
||||
// Get stats on no-zoomed screen area. In other words, will behave as if screen zoom were 1.0
|
||||
// no matter how the screen is zoomed.
|
||||
GameMap map = Terrarum.game.map;
|
||||
Player player = Terrarum.game.getPlayer();
|
||||
|
||||
float zoom = Terrarum.game.screenZoom;
|
||||
|
||||
int renderWidth = FastMath.ceil(Terrarum.WIDTH);
|
||||
int renderHeight = FastMath.ceil(Terrarum.HEIGHT);
|
||||
|
||||
int noZoomCameraX = MapCamera.clamp(
|
||||
Math.round(player.getHitbox().getPointedX() - (renderWidth / 2))
|
||||
, map.width * TSIZE - renderWidth
|
||||
);
|
||||
int noZoomCameraY = MapCamera.clamp(
|
||||
Math.round(player.getHitbox().getPointedY() - (renderHeight / 2))
|
||||
, map.height * TSIZE - renderHeight
|
||||
);
|
||||
|
||||
int for_x_start = MapCamera.div16(noZoomCameraX);
|
||||
int for_y_start = MapCamera.div16(noZoomCameraY);
|
||||
int for_y_end = MapCamera.clampHTile(for_y_start + MapCamera.div16(renderHeight) + 2);
|
||||
int for_x_end = MapCamera.clampWTile(for_x_start + MapCamera.div16(renderWidth) + 2);
|
||||
|
||||
for (int y = for_y_start; y < for_y_end; y++) {
|
||||
for (int x = for_x_start; x < for_x_end; x++) {
|
||||
int tileWall = Terrarum.game.map.getTileFromWall(x, y);
|
||||
int tileTerrain = Terrarum.game.map.getTileFromTerrain(x, y);
|
||||
int tileWall = map.getTileFromWall(x, y);
|
||||
int tileTerrain = map.getTileFromTerrain(x, y);
|
||||
tilestat[tileWall] += 1;
|
||||
tilestat[tileTerrain] += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static int getCount(byte... tile) {
|
||||
int sum = 0;
|
||||
for (int i = 0; i < tile.length; i++) {
|
||||
int newArgs = Byte.toUnsignedInt(tile[i]);
|
||||
sum += Short.toUnsignedInt(tilestat[ newArgs ]);
|
||||
}
|
||||
|
||||
return sum;
|
||||
}
|
||||
|
||||
public static int getCount(int... tile) {
|
||||
int sum = 0;
|
||||
for (int i = 0; i < tile.length; i++) {
|
||||
sum += Short.toUnsignedInt(tilestat[tile[i]]);
|
||||
sum += Short.toUnsignedInt(tilestat[ tile[i] ]);
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return copy of the stat data
|
||||
*/
|
||||
public static short[] getStatCopy() {
|
||||
return Arrays.copyOf(tilestat, MapLayer.TILES_SUPPORTED);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -72,6 +72,7 @@ public class BasicDebugInfoWindow implements UICanvas {
|
||||
printLine(g, 7, "mass : " + String.valueOf(playerDbg.mass()) + " [kg]");
|
||||
|
||||
String lightVal;
|
||||
String mtX = String.valueOf(mouseTileX), mtY = String.valueOf(mouseTileY);
|
||||
try {
|
||||
char valRaw = LightmapRenderer.getValueFromMap(mouseTileX, mouseTileY);
|
||||
int rawR = LightmapRenderer.getRawR(valRaw);
|
||||
@@ -84,8 +85,11 @@ public class BasicDebugInfoWindow implements UICanvas {
|
||||
}
|
||||
catch (ArrayIndexOutOfBoundsException e) {
|
||||
lightVal = "out of bounds";
|
||||
mtX = "---";
|
||||
mtY = "---";
|
||||
}
|
||||
printLine(g, 8, "light at cursor : " + lightVal);
|
||||
printLine(g, 8, "light at cursor : " + lightVal
|
||||
);
|
||||
|
||||
String tileNo;
|
||||
try {
|
||||
@@ -94,7 +98,21 @@ public class BasicDebugInfoWindow implements UICanvas {
|
||||
catch (ArrayIndexOutOfBoundsException e) {
|
||||
tileNo = "out of bounds";
|
||||
}
|
||||
printLine(g, 9, "tile : " + tileNo);
|
||||
printLine(g, 9, "tile : " + tileNo + " (" + mtX + ", " + mtY + ")");
|
||||
|
||||
/**
|
||||
* Second column
|
||||
*/
|
||||
|
||||
String[] collisionFlagKey = {"top", "right", "bottom", "left"};
|
||||
int collisonFlag = playerDbg.collisionEvent();
|
||||
printLineColumn(g, 2, 1, "CollisionFlag : "
|
||||
+ ((collisonFlag == -1) ? "none" : collisionFlagKey[collisonFlag]));
|
||||
printLineColumn(g, 2, 2, "Env colour temp : " + MapDrawer.getColTemp());
|
||||
|
||||
/**
|
||||
* On screen
|
||||
*/
|
||||
|
||||
// Memory allocation
|
||||
long memInUse = Terrarum.game.memInUse;
|
||||
@@ -113,20 +131,21 @@ public class BasicDebugInfoWindow implements UICanvas {
|
||||
);
|
||||
|
||||
// Hitbox
|
||||
float zoom = Terrarum.game.screenZoom;
|
||||
g.setColor(new Color(0x007f00));
|
||||
g.drawRect(hitbox.getHitboxStart().getX()
|
||||
- MapCamera.getCameraX()
|
||||
, hitbox.getHitboxStart().getY()
|
||||
- MapCamera.getCameraY()
|
||||
, hitbox.getWidth()
|
||||
, hitbox.getHeight()
|
||||
g.drawRect(hitbox.getHitboxStart().getX() * zoom
|
||||
- MapCamera.getCameraX() * zoom
|
||||
, hitbox.getHitboxStart().getY() * zoom
|
||||
- MapCamera.getCameraY() * zoom
|
||||
, hitbox.getWidth() * zoom
|
||||
, hitbox.getHeight() * zoom
|
||||
);
|
||||
// ...and its point
|
||||
g.fillRect(
|
||||
hitbox.getPointedX() - 1
|
||||
- MapCamera.getCameraX()
|
||||
, hitbox.getPointedY() - 1
|
||||
- MapCamera.getCameraY()
|
||||
(hitbox.getPointedX() - 1) * zoom
|
||||
- MapCamera.getCameraX() * zoom
|
||||
, (hitbox.getPointedY() - 1) * zoom
|
||||
- MapCamera.getCameraY() * zoom
|
||||
, 3
|
||||
, 3
|
||||
);
|
||||
@@ -138,19 +157,19 @@ public class BasicDebugInfoWindow implements UICanvas {
|
||||
|
||||
// Next hitbox
|
||||
g.setColor(Color.blue);
|
||||
g.drawRect(nextHitbox.getHitboxStart().getX()
|
||||
- MapCamera.getCameraX()
|
||||
, nextHitbox.getHitboxStart().getY()
|
||||
- MapCamera.getCameraY()
|
||||
, nextHitbox.getWidth()
|
||||
, nextHitbox.getHeight()
|
||||
g.drawRect(nextHitbox.getHitboxStart().getX() * zoom
|
||||
- MapCamera.getCameraX() * zoom
|
||||
, nextHitbox.getHitboxStart().getY() * zoom
|
||||
- MapCamera.getCameraY() * zoom
|
||||
, nextHitbox.getWidth() * zoom
|
||||
, nextHitbox.getHeight() * zoom
|
||||
);
|
||||
// ...and its point
|
||||
g.fillRect(
|
||||
nextHitbox.getPointedX() - 1
|
||||
- MapCamera.getCameraX()
|
||||
, nextHitbox.getPointedY() - 1
|
||||
- MapCamera.getCameraY()
|
||||
(nextHitbox.getPointedX() - 1) * zoom
|
||||
- MapCamera.getCameraX() * zoom
|
||||
, (nextHitbox.getPointedY() - 1) * zoom
|
||||
- MapCamera.getCameraY() * zoom
|
||||
, 3
|
||||
, 3
|
||||
);
|
||||
@@ -165,10 +184,18 @@ public class BasicDebugInfoWindow implements UICanvas {
|
||||
g.drawString(s, 20, line(l));
|
||||
}
|
||||
|
||||
private static void printLineColumn(Graphics g, int col, int row, String s) {
|
||||
g.drawString(s, 20 + column(col), line(row));
|
||||
}
|
||||
|
||||
private static int line(int i) {
|
||||
return i * 20;
|
||||
}
|
||||
|
||||
private static int column(int i) {
|
||||
return (250 * (i - 1));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(GameContainer gc, int delta_t) {
|
||||
|
||||
|
||||
@@ -27,5 +27,5 @@ def intFromCol(r, g, b):
|
||||
def colFromNum(raw):
|
||||
return getR40(raw), getG40(raw), getB40(raw)
|
||||
|
||||
print(intFromCol(9,13,29))
|
||||
print(colFromNum(31399))
|
||||
print(colFromNum(9979))
|
||||
print(intFromCol(3,5,9))
|
||||
|
||||