keycap font, edit on Thai font, actor can now flagged to despawn, draft for projectile "actor"

Former-commit-id: 5a46366ac1680f040fe6e5ace742b71a86982efa
Former-commit-id: 30e481f10cc8c09d4fc4ff1f52a4a45d91e3ab2d
This commit is contained in:
Song Minjae
2016-08-31 01:05:35 +09:00
parent 720df532aa
commit 6e51b0c751
59 changed files with 288 additions and 117 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 280 B

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -4,5 +4,6 @@
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Всички права запазени",
"APP_ADJUST_YOUR_MONITOR": "",
"APP_WARNING_HEALTH_AND_SAFETY": "ВНИМАНИЕ-ЗДРАВЕ И БЕЗОПАСНОСТ"
"APP_WARNING_HEALTH_AND_SAFETY": "ВНИМАНИЕ-ЗДРАВЕ И БЕЗОПАСНОСТ",
"MENU_LABEL_PRESS_START_SYMBOL": "атисни >"
}

View File

@@ -4,5 +4,6 @@
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Všechna práva vyhrazena",
"APP_ADJUST_YOUR_MONITOR": "",
"APP_WARNING_HEALTH_AND_SAFETY": "POZOR-ZDRAVÍ A BEZPEČNOST"
"APP_WARNING_HEALTH_AND_SAFETY": "POZOR-ZDRAVÍ A BEZPEČNOST",
"MENU_LABEL_PRESS_START_SYMBOL": "Stiskněte >"
}

View File

@@ -4,5 +4,6 @@
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Alle rettigheder forbeholdes",
"APP_ADJUST_YOUR_MONITOR": "",
"APP_WARNING_HEALTH_AND_SAFETY": "ADVARSEL-SUNDHED OG SIKKERHED"
"APP_WARNING_HEALTH_AND_SAFETY": "ADVARSEL-SUNDHED OG SIKKERHED",
"MENU_LABEL_PRESS_START_SYMBOL": "Tryk >"
}

View File

@@ -4,6 +4,7 @@
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Alle Rechte vorbehalten.",
"APP_ADJUST_YOUR_MONITOR": "",
"APP_WARNING_HEALTH_AND_SAFETY": "WARNUNG-GESUNDHEIT UND SICHERHEIT"
"APP_WARNING_HEALTH_AND_SAFETY": "WARNUNG-GESUNDHEIT UND SICHERHEIT",
"MENU_LABEL_PRESS_START_SYMBOL": "Drücke >"
}

View File

@@ -4,6 +4,7 @@
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Όλα τα δικαιώματα διατηρούνται",
"APP_ADJUST_YOUR_MONITOR": "",
"APP_WARNING_HEALTH_AND_SAFETY": "ΠΡΟΣΟΧΗ-ΥΓΕΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ"
"APP_WARNING_HEALTH_AND_SAFETY": "ΠΡΟΣΟΧΗ-ΥΓΕΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ",
"MENU_LABEL_PRESS_START_SYMBOL": "Πάτα >"
}

View File

@@ -4,6 +4,7 @@
"COPYRIGHT_ALL_RIGHTS_RESERVED": "All rights reserved.",
"APP_ADJUST_YOUR_MONITOR": "Best player experience can be achieved with properly adjusted monitor. If you have not, please do it before you play.",
"APP_WARNING_HEALTH_AND_SAFETY": "WARNING-HEALTH AND SAFETY"
"APP_WARNING_HEALTH_AND_SAFETY": "WARNING-HEALTH AND SAFETY",
"MENU_LABEL_PRESS_START_SYMBOL": "Press >"
}

View File

@@ -4,6 +4,6 @@
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Todos los derechos reservados.",
"APP_ADJUST_YOUR_MONITOR": "",
"APP_WARNING_HEALTH_AND_SAFETY": "ADVERTENCIA-SALUD Y SEGURIDAD"
"APP_WARNING_HEALTH_AND_SAFETY": "ADVERTENCIA-SALUD Y SEGURIDAD",
"MENU_LABEL_PRESS_START_SYMBOL": "Pulsa >"
}

View File

@@ -4,5 +4,6 @@
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Kaikki oikeudet pidätetään",
"APP_ADJUST_YOUR_MONITOR": "Paras pelikokemus saavutetaan on oikealla säädetty näytöllä. Jos et ole ollut, säädä ennen pelaamista.",
"APP_WARNING_HEALTH_AND_SAFETY": "VAROITUS-TERVEYS JA TURVALLISUUS"
"APP_WARNING_HEALTH_AND_SAFETY": "VAROITUS-TERVEYS JA TURVALLISUUS",
"MENU_LABEL_PRESS_START_SYMBOL": "Paina >"
}

View File

@@ -1,3 +1,3 @@
{
"GAME_TIPS_1": "Milloin ”heilutat” aseen, jos seisot yläpuolella vihollisten voit isket ne kovemmin, mutta varo: sama asia tapahtuu viholliset!"
"GAME_TIPS_1": "Milloin ”heilutat” aseen, jos seisot yläpuolella vastustajien voit isket ne kovemmin, mutta varo: sama asia tapahtuu vastustajat!"
}

View File

@@ -521,11 +521,11 @@
},
{
"n": "CONTEXT_MEDAL_GOLD",
"s": "Médaille dor"
"s": "Médaille d'or"
},
{
"n": "CONTEXT_MEDAL_SILVER",
"s": "Médaille dargent"
"s": "Médaille d'argent"
},
{
"n": "CONTEXT_METAL_BRONZE",
@@ -609,7 +609,7 @@
},
{
"n": "CREDITS_ANIMATION_DIRECTOR",
"s": "Directeur de lAnimation"
"s": "Directeur de l'Animation"
},
{
"n": "CREDITS_ANIMATOR",
@@ -737,7 +737,7 @@
},
{
"n": "CREDITS_INTERFACE_ARTIST",
"s": "Artiste dinterfaces"
"s": "Artiste d'interfaces"
},
{
"n": "CREDITS_JUNIOR",
@@ -905,7 +905,7 @@
},
{
"n": "ERROR_GENERIC_ERRCODE",
"s": "Code derreur :"
"s": "Code d'erreur :"
},
{
"n": "ERROR_GENERIC_INVALID_KEY",
@@ -917,7 +917,7 @@
},
{
"n": "ERROR_GENERIC_TEXT",
"s": "Une erreur sest produite."
"s": "Une erreur s'est produite."
},
{
"n": "ERROR_NETWORK_CONNECTION_LOST",
@@ -925,15 +925,15 @@
},
{
"n": "ERROR_NETWORK_DISCONNECTED_YOUR_OPPONENT",
"s": "Votre adversaire sest déconnecté."
"s": "Votre adversaire s'est déconnecté."
},
{
"n": "ERROR_NETWORK_DISCONNECTED_YOUR_PLAYER",
"s": "Lautre joueur sest déconnecté."
"s": "L'autre joueur s'est déconnecté."
},
{
"n": "ERROR_NETWORK_DISCONNECTED_YOUR_TEAMMATE",
"s": "Votre coéquipier sest déconnecté."
"s": "Votre coéquipier s'est déconnecté."
},
{
"n": "ERROR_NETWORK_SERVER",
@@ -997,7 +997,7 @@
},
{
"n": "GAME_ACTION_CROUCH",
"s": "Saccroupir"
"s": "S'accroupir"
},
{
"n": "GAME_ACTION_DODGE",
@@ -1073,7 +1073,7 @@
},
{
"n": "GAME_ACTION_RUN_AWAY",
"s": "Senfuir"
"s": "S'enfuir"
},
{
"n": "GAME_ACTION_SHOOT",
@@ -1117,7 +1117,7 @@
},
{
"n": "GAME_CHARACTER_EXP",
"s": "Points dexpérience"
"s": "Points d'expérience"
},
{
"n": "GAME_CHARACTER_FEMALE",
@@ -1181,7 +1181,7 @@
},
{
"n": "GAME_CHARACTER_SPAWN_POINT",
"s": "Point dApparition"
"s": "Point d'Apparition"
},
{
"n": "GAME_CHARACTER_TRANSGENDER",
@@ -1245,11 +1245,11 @@
},
{
"n": "GAME_GENRE_ACTION",
"s": "Jeu daction"
"s": "Jeu d'action"
},
{
"n": "GAME_GENRE_ADVENTURE",
"s": "Jeu daventure"
"s": "Jeu d'aventure"
},
{
"n": "GAME_GENRE_CARD",
@@ -1293,7 +1293,7 @@
},
{
"n": "GAME_GENRE_PUZZLE",
"s": "Jeu dénigmes"
"s": "Jeu d'énigmes"
},
{
"n": "GAME_GENRE_QUIZ",
@@ -1373,7 +1373,7 @@
},
{
"n": "GAME_INVENTORY_CAPACITY",
"s": "Capacité de linventaire"
"s": "Capacité de l'inventaire"
},
{
"n": "GAME_INVENTORY_DROP",
@@ -1425,7 +1425,7 @@
},
{
"n": "GAME_LABEL_PLEASE_BE_CAREFUL",
"s": "Sil vous plaît soyez prudent."
"s": "S'il vous plaît soyez prudent."
},
{
"n": "GAME_LABEL_TACTICS",
@@ -1477,7 +1477,7 @@
},
{
"n": "GAME_OBJECTIVE_ESCAPE",
"s": "Séchapper"
"s": "S'échapper"
},
{
"n": "GAME_OBJECTIVE_GAME_FINISHED",
@@ -2025,7 +2025,7 @@
},
{
"n": "MENU_LABEL_GALLERY",
"s": "Galerie dart"
"s": "Galerie d'art"
},
{
"n": "MENU_LABEL_GOODBYE",
@@ -2257,7 +2257,7 @@
},
{
"n": "MENU_LOGIN_REGISTER",
"s": "Sinscrire"
"s": "S'inscrire"
},
{
"n": "MENU_LOGIN_REMEMBER",
@@ -2337,7 +2337,7 @@
},
{
"n": "MENU_NAME_USER",
"s": "Nom dutilisateur"
"s": "Nom d'utilisateur"
},
{
"n": "MENU_OPTIONS",
@@ -2557,7 +2557,7 @@
},
{
"n": "MENU_VR_HMD_ORIENT_RESET",
"s": "Restaurer lorientation du HDM"
"s": "Restaurer l'orientation du HDM"
},
{
"n": "MENU_VR_VIRTUAL_REALITY",

View File

@@ -1,15 +1,15 @@
{
"MENU_MONITOR_CALI_TITLE": "Vérification décran",
"MENU_MONITOR_CALI_LABEL_1": "Vous devriez être capable de voir la barre 1 de larrière-plan",
"MENU_MONITOR_CALI_TITLE": "Vérification d'écran",
"MENU_MONITOR_CALI_LABEL_1": "Vous devriez être capable de voir la barre 1 de l'arrière-plan",
"MENU_MONITOR_CALI_LABEL_2": "et distinguer clairement la barre 30, 31 et 32",
"MENU_MONITOR_CALI_LABEL_3": " ",
"MENU_MONITOR_CALI_LABEL_4": "Un mauvais écran ne sera pas afficher quelques barres de lextrême gauche,",
"MENU_MONITOR_CALI_LABEL_4": "Un mauvais écran ne sera pas afficher quelques barres de l'extrême gauche,",
"MENU_MONITOR_CALI_LABEL_5": "ne sera pas afficher une différence entre la droite quelques-uns,",
"MENU_MONITOR_CALI_LABEL_6": "ou montre un assez grand saut entre barre 31 et 32",
"MENU_MONITOR_CALI_LABEL_7": " ",
"MENU_MONITOR_CALI_LABEL_8": "Sur un bon écran, vous devries voir les étapes à peu près égales de",
"MENU_MONITOR_CALI_LABEL_9": "luminosité sur toute la plate 1 à 32",
"MENU_MONITOR_CALI_LABEL_10": " ",
"MENU_MONITOR_CALI_LABEL_11": "Régler le contraste et luminosité de votre écran pour améliorer limage",
"MENU_MONITOR_CALI_LABEL_11": "Régler le contraste et luminosité de votre écran pour améliorer l'image",
"MENU_MONITOR_CALI_LABEL_12": " "
}

View File

@@ -4,6 +4,6 @@
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Tous les droits sont réservés.",
"APP_ADJUST_YOUR_MONITOR": "Meilleure expérience de joueur peut être réalisé avec écran correctement réglé. Si vous ne l'avez pas, s.v.p. le réglez avant de jouer.",
"APP_WARNING_HEALTH_AND_SAFETY": "ATTENTION-SANTÉ ET SÉCURITÉ"
"APP_WARNING_HEALTH_AND_SAFETY": "ATTENTION-SANTÉ ET SÉCURITÉ",
"MENU_LABEL_PRESS_START_SYMBOL": "Appuyez sur >"
}

View File

@@ -1,3 +1,3 @@
{
"GAME_TIPS_1": "Lorsque vous « balancez » une arme, si vous être debout en haut à ennemis, vous frapperez ils plus durs, mais faire attention : même truc applique à votre ennemis !"
"GAME_TIPS_1": "Lorsque vous « balancez » une arme, si vous être debout en haut à ennemis, vous frapperez ils plus durs, mais faites attention : même truc applique à votre ennemis !"
}

View File

@@ -4,6 +4,7 @@
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Minden jog fenntartva",
"APP_ADJUST_YOUR_MONITOR": "",
"APP_WARNING_HEALTH_AND_SAFETY": "VIGYÁZAT-EGÉSZSÉGÜGYI ÉS BIZTONSÁGI"
"APP_WARNING_HEALTH_AND_SAFETY": "VIGYÁZAT-EGÉSZSÉGÜGYI ÉS BIZTONSÁGI",
"MENU_LABEL_PRESS_START_SYMBOL": "Nyomd meg a >ot"
}

View File

@@ -2115,11 +2115,11 @@
},
{
"n": "MENU_LABEL_PRESS_START",
"s": "Ýttu Start"
"s": "Ýttu Start"
},
{
"n": "MENU_LABEL_PRESS_START_CONTINUE",
"s": "Ýttu Start til að halda áfram"
"s": "Ýttu Start til að halda áfram"
},
{
"n": "MENU_LABEL_PREVIOUS",

View File

@@ -4,6 +4,7 @@
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Öll réttindi áskilinn.",
"APP_ADJUST_YOUR_MONITOR": "Best leikmaður reynsla er getur náðist með rétt kvarðaður skjárinn. Ef þú ekki gerðir, gerðu svo vel að kvarða áður en þú leikur.",
"APP_WARNING_HEALTH_AND_SAFETY": "VIÐVÖRUN-HEILSA OG ÖRYGGI"
"APP_WARNING_HEALTH_AND_SAFETY": "VIÐVÖRUN-HEILSA OG ÖRYGGI",
"MENU_LABEL_PRESS_START_SYMBOL": "Ýttu >"
}

View File

@@ -325,7 +325,7 @@
},
{
"n": "CONTEXT_ITEM_GAUNTLETS",
"s": "Guanti darmatura"
"s": "Guanti d'armatura"
},
{
"n": "CONTEXT_ITEM_GEM",
@@ -521,11 +521,11 @@
},
{
"n": "CONTEXT_MEDAL_GOLD",
"s": "Medaglia doro"
"s": "Medaglia d'oro"
},
{
"n": "CONTEXT_MEDAL_SILVER",
"s": "Medaglia dargento"
"s": "Medaglia d'argento"
},
{
"n": "CONTEXT_METAL_BRONZE",
@@ -609,7 +609,7 @@
},
{
"n": "CREDITS_ANIMATION_DIRECTOR",
"s": "Direttore dellanimazione"
"s": "Direttore dell'animazione"
},
{
"n": "CREDITS_ANIMATOR",
@@ -737,7 +737,7 @@
},
{
"n": "CREDITS_INTERFACE_ARTIST",
"s": "Artista per linterfaccia"
"s": "Artista per l'interfaccia"
},
{
"n": "CREDITS_JUNIOR",
@@ -929,7 +929,7 @@
},
{
"n": "ERROR_NETWORK_DISCONNECTED_YOUR_PLAYER",
"s": "Laltro giocatore si è disconnesso."
"s": "L'altro giocatore si è disconnesso."
},
{
"n": "ERROR_NETWORK_DISCONNECTED_YOUR_TEAMMATE",
@@ -1245,11 +1245,11 @@
},
{
"n": "GAME_GENRE_ACTION",
"s": "Gioco dazione"
"s": "Gioco d'azione"
},
{
"n": "GAME_GENRE_ADVENTURE",
"s": "Gioco davventura"
"s": "Gioco d'avventura"
},
{
"n": "GAME_GENRE_CARD",
@@ -1373,7 +1373,7 @@
},
{
"n": "GAME_INVENTORY_CAPACITY",
"s": "Capacità dell inventario"
"s": "Capacità dell' inventario"
},
{
"n": "GAME_INVENTORY_DROP",
@@ -2025,7 +2025,7 @@
},
{
"n": "MENU_LABEL_GALLERY",
"s": "Galleria darte"
"s": "Galleria d'arte"
},
{
"n": "MENU_LABEL_GOODBYE",

View File

@@ -4,6 +4,7 @@
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Tutti i diritti riservati.",
"APP_ADJUST_YOUR_MONITOR": "",
"APP_WARNING_HEALTH_AND_SAFETY": "ATTENZIONE-SALUTE E SICUREZZA"
"APP_WARNING_HEALTH_AND_SAFETY": "ATTENZIONE-SALUTE E SICUREZZA",
"MENU_LABEL_PRESS_START_SYMBOL": "Premi >"
}

View File

@@ -4,6 +4,7 @@
"COPYRIGHT_ALL_RIGHTS_RESERVED": "全著作権所有。",
"APP_ADJUST_YOUR_MONITOR": "このゲームは、適切に調整したモニターから最高のプレイができます。調整していなかったら、プレイする前に調整してください。",
"APP_WARNING_HEALTH_AND_SAFETY": "警告ー健康と安全のために"
"APP_WARNING_HEALTH_AND_SAFETY": "警告ー健康と安全のために",
"MENU_LABEL_PRESS_START_SYMBOL": "> ボタンを押す"
}

View File

@@ -1,3 +1,3 @@
{
"GAME_TIPS_1": "武器を「振り回す」の時に、敵より上に立っていれば、もう強くな攻撃ができます。だが注意せよーそれは敵も同じでしょう!"
"GAME_TIPS_1": "武器を「振り回す」の時に、敵より上に立っていれば、もう強くな攻撃が入ります。だが注意せよーそれは敵も同じでしょう!"
}

View File

@@ -2113,19 +2113,19 @@
},
{
"n": "MENU_LABEL_PRESS_ANYKEY",
"s": "いずれかのキーをす"
"s": "いずれかのキーをす"
},
{
"n": "MENU_LABEL_PRESS_ANYKEY_CONTINUE",
"s": "けるにはいずれかのキーをす"
"s": "つづけるには いずれかのキーをす"
},
{
"n": "MENU_LABEL_PRESS_START",
"s": "STARTボタンをす"
"s": "STARTボタンをす"
},
{
"n": "MENU_LABEL_PRESS_START_CONTINUE",
"s": "けるにはSTARTボタンをす"
"s": "つづけるには STARTボタンをす"
},
{
"n": "MENU_LABEL_PREVIOUS",

View File

@@ -4,6 +4,7 @@
"COPYRIGHT_ALL_RIGHTS_RESERVED": "ぜんちょさくけん しょゆう。",
"APP_ADJUST_YOUR_MONITOR": "このゲームは、てきせつにちょうせいした モニターから さいこうのプレイができます。ちょうせいして いなかったら、プレイするまえに ちょうせいしてください。",
"APP_WARNING_HEALTH_AND_SAFETY": "けいこくーけんこうと あんぜんの ために"
"APP_WARNING_HEALTH_AND_SAFETY": "けいこくーけんこうと あんぜんの ために",
"MENU_LABEL_PRESS_START_SYMBOL": "> ボタンを おす"
}

View File

@@ -4,6 +4,7 @@
"COPYRIGHT_ALL_RIGHTS_RESERVED": "모든 권리 보유.",
"APP_ADJUST_YOUR_MONITOR": "본 게임은 적절히 조정된 모니터에서 최상으로 즐길 수 있습니다. 조정하지 않았다면 플레이하기 전에 조정해 주십시오.",
"APP_WARNING_HEALTH_AND_SAFETY": "경고—건강과 안전을 위하여"
"APP_WARNING_HEALTH_AND_SAFETY": "경고—건강과 안전을 위하여",
"MENU_LABEL_PRESS_START_SYMBOL": ">을 누르세요"
}

View File

@@ -4,6 +4,7 @@
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Alle rechten voorbehouden",
"APP_ADJUST_YOUR_MONITOR": "",
"APP_WARNING_HEALTH_AND_SAFETY": "WAARSCHUWING-GEZONDHEID EN VEILIGHEID"
"APP_WARNING_HEALTH_AND_SAFETY": "WAARSCHUWING-GEZONDHEID EN VEILIGHEID",
"MENU_LABEL_PRESS_START_SYMBOL": "Druk op >"
}

View File

@@ -4,6 +4,7 @@
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Alle rettigheter reservert",
"APP_ADJUST_YOUR_MONITOR": "",
"APP_WARNING_HEALTH_AND_SAFETY": "ADVARSEL-HELSE OG SIKKERHET"
"APP_WARNING_HEALTH_AND_SAFETY": "ADVARSEL-HELSE OG SIKKERHET",
"MENU_LABEL_PRESS_START_SYMBOL": "Trykk >"
}

View File

@@ -4,6 +4,7 @@
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Wszelkie prawa zastrzeżone",
"APP_ADJUST_YOUR_MONITOR": "",
"APP_WARNING_HEALTH_AND_SAFETY": "UWAGA-ZDROWIE I BEZPIECZEŃSTWO"
"APP_WARNING_HEALTH_AND_SAFETY": "UWAGA-ZDROWIE I BEZPIECZEŃSTWO",
"MENU_LABEL_PRESS_START_SYMBOL": "Naciśnij >"
}

View File

@@ -4,6 +4,7 @@
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Todos os direitos reservados",
"APP_ADJUST_YOUR_MONITOR": "",
"APP_WARNING_HEALTH_AND_SAFETY": "ATENÇÃO-SAÚDE E SEGURANÇA"
"APP_WARNING_HEALTH_AND_SAFETY": "ATENÇÃO-SAÚDE E SEGURANÇA",
"MENU_LABEL_PRESS_START_SYMBOL": "Pressione >"
}

View File

@@ -4,6 +4,7 @@
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Todos os direitos reservados",
"APP_ADJUST_YOUR_MONITOR": "",
"APP_WARNING_HEALTH_AND_SAFETY": "ATENÇÃO-SAÚDE E SEGURANÇA"
"APP_WARNING_HEALTH_AND_SAFETY": "ATENÇÃO-SAÚDE E SEGURANÇA",
"MENU_LABEL_PRESS_START_SYMBOL": "Carrega no >"
}

View File

@@ -4,6 +4,7 @@
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Toate drepturile rezervate",
"APP_ADJUST_YOUR_MONITOR": "",
"APP_WARNING_HEALTH_AND_SAFETY": "ATENȚIONARE-SĂNĂTATE ȘI SIGURANȚĂ"
"APP_WARNING_HEALTH_AND_SAFETY": "ATENȚIONARE-SĂNĂTATE ȘI SIGURANȚĂ",
"MENU_LABEL_PRESS_START_SYMBOL": "Apasă >"
}

View File

@@ -4,6 +4,7 @@
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Все права защищены",
"APP_ADJUST_YOUR_MONITOR": "",
"APP_WARNING_HEALTH_AND_SAFETY": "ПРЕДУПРЕЖДЕНИЕ-ЗДОРОВЬЕ И БЕЗОПАСНОСТЬ"
"APP_WARNING_HEALTH_AND_SAFETY": "ПРЕДУПРЕЖДЕНИЕ-ЗДОРОВЬЕ И БЕЗОПАСНОСТЬ",
"MENU_LABEL_PRESS_START_SYMBOL": "Нажмите >"
}

View File

@@ -4,6 +4,7 @@
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Alla rättigheter förbehållna",
"APP_ADJUST_YOUR_MONITOR": "",
"APP_WARNING_HEALTH_AND_SAFETY": "VARNING-HÄLSA OCH SÄKERHET"
"APP_WARNING_HEALTH_AND_SAFETY": "VARNING-HÄLSA OCH SÄKERHET",
"MENU_LABEL_PRESS_START_SYMBOL": "Tryck >"
}

View File

@@ -4,6 +4,7 @@
"COPYRIGHT_ALL_RIGHTS_RESERVED": "สงวนลิขสิทธิ์",
"APP_ADJUST_YOUR_MONITOR": "",
"APP_WARNING_HEALTH_AND_SAFETY": "คำเตือน-อนามัยและความปลอดภัย"
"APP_WARNING_HEALTH_AND_SAFETY": "คำเตือน-อนามัยและความปลอดภัย",
"MENU_LABEL_PRESS_START_SYMBOL": "กดปุ่ม >"
}

View File

@@ -4,6 +4,7 @@
"COPYRIGHT_ALL_RIGHTS_RESERVED": "Her hakkı saklıdır",
"APP_ADJUST_YOUR_MONITOR": "",
"APP_WARNING_HEALTH_AND_SAFETY": "UYARI-SAĞLIK VE GÜVENLİK"
"APP_WARNING_HEALTH_AND_SAFETY": "UYARI-SAĞLIK VE GÜVENLİK",
"MENU_LABEL_PRESS_START_SYMBOL": "> basınız"
}

View File

@@ -4,6 +4,7 @@
"COPYRIGHT_ALL_RIGHTS_RESERVED": "版权所有",
"APP_ADJUST_YOUR_MONITOR": "",
"APP_WARNING_HEALTH_AND_SAFETY": "警告ー健康和安全"
"APP_WARNING_HEALTH_AND_SAFETY": "警告ー健康和安全",
"MENU_LABEL_PRESS_START_SYMBOL": "按下 >"
}

View File

@@ -4,6 +4,7 @@
"COPYRIGHT_ALL_RIGHTS_RESERVED": "版權所有",
"APP_ADJUST_YOUR_MONITOR": "",
"APP_WARNING_HEALTH_AND_SAFETY": "警告ー健康和安全"
"APP_WARNING_HEALTH_AND_SAFETY": "警告ー健康和安全",
"MENU_LABEL_PRESS_START_SYMBOL": "按下 >"
}

View File

@@ -78,6 +78,7 @@ constructor() : Font {
|| (c.toInt() >= 0xE47 && c.toInt() <= 0xE4E)
|| (c.toInt() == 0xE31)
private fun isThaiEF(c: Char) = c.toInt() == 0xE40
private fun isKeycap(c: Char) = c.toInt() >= 0xE000 && c.toInt() <= 0xE07F
@@ -138,6 +139,9 @@ constructor() : Font {
private fun thaiEFIndexX(c: Char) = 3
private fun thaiEFIndexY(c: Char) = 0
private fun keycapIndexX(c: Char) = (c.toInt() - 0xE000) % 16
private fun keycapIndexY(c: Char) = (c.toInt() - 0xE000) / 16
private val narrowWidthSheets = arrayOf(
SHEET_ASCII_EF,
SHEET_EXTA_EF,
@@ -193,6 +197,8 @@ constructor() : Font {
len += W_UNIHAN
else if (isThaiDiacritics(s[i]))
len += 0 // set width of the glyph as -W_LATIN_WIDE
else if (ctype == SHEET_KEYCAP)
len += SIZE_KEYCAP
else
len += W_LATIN_WIDE
@@ -435,6 +441,10 @@ constructor() : Font {
sheetX = thaiIndexX(ch)
sheetY = thaiIndexY(ch)
}
SHEET_KEYCAP -> {
sheetX = keycapIndexX(ch)
sheetY = keycapIndexY(ch)
}
else -> {
sheetX = ch.toInt() % 16
sheetY = ch.toInt() / 16
@@ -455,9 +465,9 @@ constructor() : Font {
Math.round(x + getWidthSubstr(s, i + 1) - glyphW).toFloat(),
// to deal with the height difference of the sheets
Math.round(y).toFloat() + (if (prevInstance == SHEET_CJK_PUNCT) -1
else if (prevInstance == SHEET_FW_UNI) (H - H_HANGUL) / 2
Math.round(y).toFloat() + (if (prevInstance == SHEET_CJK_PUNCT) -1 // height hack
else if (prevInstance == SHEET_FW_UNI) (H - H_HANGUL) / 2 // completely legit height adjustment
else if (prevInstance == SHEET_KEYCAP) (H - SIZE_KEYCAP) / 2 // completely legit height adjustment
else 0).toFloat(),
scale.toFloat(), thisCol
@@ -522,6 +532,8 @@ constructor() : Font {
return SHEET_THAI_EM
else if (c.isColourCode())
return SHEET_COLOURCODE
else if (isKeycap(c))
return SHEET_KEYCAP
else
return SHEET_ASCII_EM// fixed width punctuations
// fixed width
@@ -584,6 +596,7 @@ constructor() : Font {
lateinit internal var romanianSheet: SpriteSheet
lateinit internal var romanianSheetEF: SpriteSheet
lateinit internal var thaiSheet: SpriteSheet
lateinit internal var keycapSheet: SpriteSheet
internal val JUNG_COUNT = 21
internal val JONG_COUNT = 28
@@ -600,6 +613,8 @@ constructor() : Font {
internal val H_UNIHAN = 16
internal val H_KANA = 20
internal val SIZE_KEYCAP = 18
internal val SHEET_ASCII_EM = 0
internal val SHEET_ASCII_EF = 1
internal val SHEET_HANGUL = 2
@@ -621,6 +636,7 @@ constructor() : Font {
internal val SHEET_EXTB_ROMANIAN_EF = 18
internal val SHEET_THAI_EM = 19
internal val SHEET_THAI_EF = 20
internal val SHEET_KEYCAP = 21
internal val SHEET_COLOURCODE = 255
lateinit internal var sheetKey: Array<SpriteSheet?>

View File

@@ -56,6 +56,8 @@ constructor() : GameFontBase() {
"./assets/graphics/fonts/romana_ef.png", GameFontBase.W_LATIN_NARROW, GameFontBase.H)
GameFontBase.thaiSheet = SpriteSheet(
"./assets/graphics/fonts/thai_fullwidth.png", GameFontBase.W_LATIN_WIDE, GameFontBase.H)
GameFontBase.keycapSheet = SpriteSheet(
"./assets/graphics/fonts/puae000-e07f.png", GameFontBase.SIZE_KEYCAP, GameFontBase.SIZE_KEYCAP)
val shk = arrayOf(
GameFontBase.asciiSheet,
@@ -78,7 +80,8 @@ constructor() : GameFontBase() {
GameFontBase.romanianSheet,
GameFontBase.romanianSheetEF,
GameFontBase.thaiSheet,
null // Filler
null, // Filler
GameFontBase.keycapSheet
)
GameFontBase.sheetKey = shk
}

View File

@@ -1,5 +1,8 @@
package net.torvald.serialise
import java.io.IOException
import java.io.InputStream
/**
* Created by minjaesong on 16-08-24.
*/

View File

@@ -18,6 +18,8 @@ object DefaultConfig {
jsonObject.addProperty("notificationshowuptime", 6500)
jsonObject.addProperty("multithread", true) // experimental!
// control-gamepad
jsonObject.addProperty("joypadkeyn", 4)
jsonObject.addProperty("joypadkeyw", 1)
@@ -34,6 +36,10 @@ object DefaultConfig {
jsonObject.addProperty("joypadrstickx", 2)
jsonObject.addProperty("joypadrsticky", 3) // logitech indices
jsonObject.addProperty("joypadlabelstyle", "generic") // "nwii", "logitech", "sonyps", "msxb360", "generic"
// control-keyboard (Java key codes. This is what Minecraft also uses)
jsonObject.addProperty("keyup", Key.E)
jsonObject.addProperty("keyleft", Key.S)

View File

@@ -31,4 +31,10 @@ Connect two or more tracker head to play the array of trackers play simultaneous
*int: (0-63) number of the note pitch that is struck. 32: Middle C (C3).
'A' just above of Middle C (A3) has base pitch of 440 Hz.
*speed: in BPM
*speed: in BPM
## Aimhack ##
- Include a valid way of obtaining Aimhack (possessed weapon shit?)
- Implement it on ```<item>.primaryUse(gc, delta)```

View File

@@ -227,8 +227,8 @@ constructor() : BasicGameState() {
private fun setAppTitle() {
Terrarum.appgc.setTitle(
"Simple Slick Game" +
" — FPS: ${Terrarum.appgc.fps} (${Terrarum.TARGET_INTERNAL_FPS})" +
"${memInUse}M / ${totalVMMem}M")
" — F: ${Terrarum.appgc.fps} (${Terrarum.TARGET_INTERNAL_FPS})" +
" M: ${memInUse}M / ${totalVMMem}M")
}
override fun render(gc: GameContainer, sbg: StateBasedGame, g: Graphics) {
@@ -431,7 +431,10 @@ constructor() : BasicGameState() {
val actor = actorContainer[i]
val actorIndex = i
if (actor is Visible && !actor.inUpdateRange()) {
actorContainerInactive.add(actor) // naïve add; duplicates are checked when the actor is re-activated
// inactive instead of delete, if not flagged to delete
if (!actor.flagDespawn)
actorContainerInactive.add(actor) // naïve add; duplicates are checked when the actor is re-activated
actorContainer.removeAt(actorIndex)
actorContainerSize -= 1
i-- // array removed 1 elem, so we also decrement counter by 1

View File

@@ -41,12 +41,7 @@ class StateMonitorCheck : BasicGameState() {
private val backgroundCol = Color(0x404040)
private val colourLUT = arrayOf(
0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38, 0x40,
0x48, 0x50, 0x58, 0x60, 0x68, 0x70, 0x78, 0x80,
0x88, 0x90, 0x98, 0xA0, 0xA8, 0xB0, 0xB8, 0xC0,
0xC8, 0xD0, 0xD8, 0xE0, 0xE8, 0xF0, 0xF8, 0xFF
)
private val colourLUT = IntArray(32, { 255.times(it + 1).div(32) })
val pictograms = ArrayList<Image>()
lateinit var imageGallery: ItemImageGallery
@@ -147,7 +142,7 @@ class StateMonitorCheck : BasicGameState() {
// anykey
Typography.printCentered(
g, Lang["MENU_LABEL_PRESS_ANYKEY_CONTINUE"],
g, Lang["MENU_LABEL_PRESS_ANYKEY"],
anykeyY,
this
)

View File

@@ -32,7 +32,7 @@ class StateSplash : BasicGameState() {
var opacity = 0f
val fadeTime = 500
var fadeTimer = 0
var fadeTimer = -1
var anykey_hit = false
@@ -67,13 +67,14 @@ class StateSplash : BasicGameState() {
override fun update(container: GameContainer, game: StateBasedGame, delta: Int) {
// next splash or load next scene
if (anykey_hit && opened) {
if (anykey_hit && opacity < 0.0001f) {
game.enterState(Terrarum.STATE_ID_GAME)
}
// fade-in
if (delta < deltathre) {
init = true
fadeTimer += delta
if (opacity < 1f && !anykey_hit) {
opacity = FastMath.interpolateLinear(
@@ -93,11 +94,9 @@ class StateSplash : BasicGameState() {
}
// auto dismiss
if (opened && fadeTimer >= auto_dismiss)
//doAnykeyThingy()
fadeTimer += delta
println(fadeTimer)
if (opened && fadeTimer >= auto_dismiss) {
doAnykeyThingy()
}
}
override fun getID(): Int = Terrarum.STATE_ID_SPLASH
@@ -111,7 +110,7 @@ class StateSplash : BasicGameState() {
Typography.printCentered(thisG, Lang["APP_WARNING_HEALTH_AND_SAFETY"],
thisG.font.lineHeight * 2)
Typography.printCentered(thisG, Lang["MENU_LABEL_PRESS_ANYKEY_CONTINUE"],
Typography.printCentered(thisG, Lang["MENU_LABEL_PRESS_ANYKEY"],
Terrarum.HEIGHT - thisG.font.lineHeight.times(3))
imageGallery.render(container, thisG)
@@ -119,13 +118,6 @@ class StateSplash : BasicGameState() {
g.drawImage(fadeSheet, 0f, 0f, Color(1f, 1f, 1f, opacity))
}
private fun knowYourPlace(i: Int): Int {
val gutter = (imageBoardHeight - virtualImageHeight.times(pictogramCollection.size)).toFloat().div(
pictogramCollection.size + 1f
)
return (gutter * i.plus(1) + virtualImageHeight * i).roundInt()
}
override fun keyPressed(key: Int, c: Char) {
doAnykeyThingy()
}

View File

@@ -34,6 +34,21 @@ constructor(gamename: String) : StateBasedGame(gamename) {
gameConfig = GameConfig()
joypadLabelStart = when (getConfigString("joypadlabelstyle")) {
"nwii" -> 0xE04B.toChar() // + mark
"logitech" -> 0xE05A.toChar() // number 10
else -> 0xE042.toChar() // > mark (sonyps, msxb360, generic)
}
joypadLableSelect = when (getConfigString("joypadlabelstyle")) {
"nwii" -> 0xE04D.toChar() // - mark
"logitech" -> 0xE059.toChar() // number 9
"sonyps" -> 0xE043.toChar() // solid rectangle
"msxb360" -> 0xE041.toChar() // < mark
else -> 0xE043.toChar() // solid rectangle
}
getDefaultDirectory()
createDirs()
@@ -69,6 +84,11 @@ constructor(gamename: String) : StateBasedGame(gamename) {
fontGame = GameFontWhite()
fontSmallNumbers = TinyAlphNum()
fontControlGuide = SpriteSheetFont(SpriteSheet(
"./assets/graphics/fonts/" +
if (environment == RunningEnvironment.CONSOLE) "keycaps_gamepad.png"
else "keycaps.png", 18, 18)
, ' ')
hasController = gc.input.controllerCount > 0
if (hasController) {
@@ -133,7 +153,7 @@ constructor(gamename: String) : StateBasedGame(gamename) {
lateinit var environment: RunningEnvironment
private val localeSimple = arrayOf("de", "en", "es", "it")
var gameLocale = "####" // locale override
var gameLocale = "####" // lateinit placeholder
set(value) {
if (localeSimple.contains(value.substring(0..1)))
field = value.substring(0..1)
@@ -145,6 +165,23 @@ constructor(gamename: String) : StateBasedGame(gamename) {
private set
lateinit var fontSmallNumbers: Font
private set
lateinit var fontControlGuide: Font
private set
var joypadLabelStart: Char = 0x00.toChar() // lateinit
var joypadLableSelect:Char = 0x00.toChar() // lateinit
var joypadLabelNinA: Char = 0x00.toChar() // lateinit TODO
var joypadLabelNinB: Char = 0x00.toChar() // lateinit TODO
var joypadLabelNinX: Char = 0x00.toChar() // lateinit TODO
var joypadLabelNinY: Char = 0x00.toChar() // lateinit TODO
var joypadLabelNinL: Char = 0x00.toChar() // lateinit TODO
var joypadLabelNinR: Char = 0x00.toChar() // lateinit TODO
var joypadLabelNinZL: Char = 0x00.toChar() // lateinit TODO
var joypadLabelNinZR: Char = 0x00.toChar() // lateinit TODO
val joypadLabelLEFT = 0xE068.toChar()
val joypadLabelDOWN = 0xE069.toChar()
val joypadLabelUP = 0xE06A.toChar()
val joypadLabelRIGHT = 0xE06B.toChar()
// 0x0 - 0xF: Game-related
// 0x10 - 0x1F: Config

View File

@@ -17,8 +17,8 @@ abstract class Actor : Comparable<Actor>, Runnable {
* @return Reference ID. (32768-0x7FFF_FFFF)
*/
abstract var referenceID: Int
abstract var actorValue: ActorValue
abstract var flagDespawn: Boolean
override fun equals(other: Any?) = referenceID == (other as Actor).referenceID
override fun hashCode() = referenceID

View File

@@ -127,7 +127,9 @@ open class ActorWithBody : Actor(), Visible {
* Flags and Properties
*/
var grounded = false
override var flagDespawn = false
/** Default to 'false' */
var isVisible = false
/** Default to 'true' */
@@ -269,7 +271,7 @@ open class ActorWithBody : Actor(), Visible {
}
override fun update(gc: GameContainer, delta: Int) {
if (isUpdate) {
if (isUpdate && !flagDespawn) {
/**
* Temporary variables to reset

View File

@@ -13,7 +13,7 @@ object PBCynthia {
CreatureRawInjector.inject(p.actorValue, "CreatureHuman.json")
p.actorValue[AVKey._PLAYER_QUICKBARSEL] = 0
p.actorValue["selectedtile"] = 16
p.actorValue["__selectedtile"] = 16
p.sprite = SpriteAnimation()

View File

@@ -58,7 +58,8 @@ object PBSigrid {
p.actorValue[AVKey.BASEDEFENCE] = 141
p.actorValue["selectedtile"] = 16
p.actorValue["__selectedtile"] = 16 // test code; replace with <tile_item>.primaryUse(gc, delta)
p.actorValue["__aimhelper"] = true
p.setHitboxDimension(15, p.actorValue.getAsInt(AVKey.BASEHEIGHT)!!, 10, 0)

View File

@@ -0,0 +1,13 @@
package net.torvald.terrarum.gameactors
import org.dyn4j.geometry.Vector2
/**
* Created by minjaesong on 16-08-29.
*/
class ProjectileHoming(type: Int, position: Vector2, velocity: Vector2, luminosity: Int = 0) :
ProjectileSimple(type, position, velocity, luminosity) {
}

View File

@@ -0,0 +1,61 @@
package net.torvald.terrarum.gameactors
import net.torvald.terrarum.gameactors.ActorWithBody
import org.dyn4j.geometry.Vector2
import org.newdawn.slick.Color
import org.newdawn.slick.GameContainer
import org.newdawn.slick.Graphics
import java.util.*
/**
* Created by minjaesong on 16-08-29.
*/
open class ProjectileSimple(
type: Int,
position: Vector2,
velocity: Vector2,
override var luminosity: Int = 0) : ActorWithBody(), Luminous {
val damage: Int
val displayColour: Color
/**
* Arguments:
*
* Hitbox(x-offset, y-offset, width, height)
* (Use ArrayList for normal circumstances)
*/
override val lightBoxList = ArrayList<Hitbox>()
init {
hitbox.set(position.x, position.y, 2.0, 2.0) // 2.0: size of the hitbox in pixels
lightBoxList.add(Hitbox(0.0, 0.0, 2.0, 2.0))
this.velocity.set(velocity)
damage = bulletDatabase[type][0] as Int
displayColour = bulletDatabase[type][1] as Color
}
override fun update(gc: GameContainer, delta: Int) {
// hit something and despawn! (use ```flagDespawn = true```)
super.update(gc, delta)
}
override fun drawBody(gc: GameContainer, g: Graphics) {
// draw trail of solid colour (Terraria style maybe?)
}
companion object {
val TYPE_BULLET_BASIC = 0
val bulletDatabase = arrayOf(
arrayOf(7, Color(0xFF5429)),
arrayOf(8, Color(0xFF5429))
// ...
)
}
}

View File

@@ -52,7 +52,10 @@ object GameController {
else if (input.isMouseButtonDown(Input.MOUSE_RIGHT_BUTTON)) {
// test tile place
try {
Terrarum.ingame.world.setTileTerrain(mouseTileX, mouseTileY, Terrarum.ingame.player.actorValue.getAsInt("selectedtile")!!)
Terrarum.ingame.world.setTileTerrain(
mouseTileX, mouseTileY,
Terrarum.ingame.player.actorValue.getAsInt("__selectedtile")!!
)
}
catch (e: ArrayIndexOutOfBoundsException) {
}

View File

@@ -113,9 +113,15 @@ object Lang {
operator fun get(key: String): String {
fun fallback(): String = langpack["${key}_$FALLBACK_LANG_CODE"] ?: "ERRNULL:$key"
val ret = langpack["${key}_${Terrarum.gameLocale}"]
return if (ret.isNullOrEmpty()) fallback() else ret!!
val ret = langpack["${key}_${Terrarum.gameLocale}"]
val ret2 = if (ret.isNullOrEmpty()) fallback() else ret!!
// special treatment
if (key.startsWith("MENU_LABEL_PRESS_START_SYMBOL"))
return ret2.replace('>', Terrarum.joypadLabelStart)
return ret2
}
fun pluraliseLang(key: String, count: Int): String {

View File

@@ -16,8 +16,7 @@ class ItemImageGallery(
val width: Int,
val height: Int,
val imageList: ArrayList<Image>,
val column: Int = 1
) : UIItem {
val column: Int = 1) : UIItem {
override fun update(gc: GameContainer, delta: Int) {
}

View File

@@ -5,9 +5,9 @@ import com.jme3.math.FastMath
/**
* Created by minjaesong on 16-03-22.
*/
object MovementInterpolator {
object Movement{
/**
* Pretty fast at the beginning, getting slow over time.
* Fast at the beginning, getting slow over time.
*/
fun fastPullOut(scale: Float, start: Float = 0f, end: Float = 1f): Float =
if (scale < 0f) start