keycap font, edit on Thai font, actor can now flagged to despawn, draft for projectile "actor"
Former-commit-id: 5a46366ac1680f040fe6e5ace742b71a86982efa Former-commit-id: 30e481f10cc8c09d4fc4ff1f52a4a45d91e3ab2d
BIN
assets/graphics/fonts/keycaps.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
assets/graphics/fonts/keycaps_gamepad.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
assets/graphics/fonts/puae000-e07f.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 280 B After Width: | Height: | Size: 16 KiB |
@@ -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": "атисни >"
|
||||
}
|
||||
@@ -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 >"
|
||||
}
|
||||
@@ -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 >"
|
||||
}
|
||||
@@ -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 >"
|
||||
|
||||
}
|
||||
@@ -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": "Πάτα >"
|
||||
|
||||
}
|
||||
@@ -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 >"
|
||||
|
||||
}
|
||||
@@ -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 >"
|
||||
}
|
||||
@@ -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 >"
|
||||
}
|
||||
@@ -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!"
|
||||
}
|
||||
@@ -521,11 +521,11 @@
|
||||
},
|
||||
{
|
||||
"n": "CONTEXT_MEDAL_GOLD",
|
||||
"s": "Médaille d’or"
|
||||
"s": "Médaille d'or"
|
||||
},
|
||||
{
|
||||
"n": "CONTEXT_MEDAL_SILVER",
|
||||
"s": "Médaille d’argent"
|
||||
"s": "Médaille d'argent"
|
||||
},
|
||||
{
|
||||
"n": "CONTEXT_METAL_BRONZE",
|
||||
@@ -609,7 +609,7 @@
|
||||
},
|
||||
{
|
||||
"n": "CREDITS_ANIMATION_DIRECTOR",
|
||||
"s": "Directeur de l’Animation"
|
||||
"s": "Directeur de l'Animation"
|
||||
},
|
||||
{
|
||||
"n": "CREDITS_ANIMATOR",
|
||||
@@ -737,7 +737,7 @@
|
||||
},
|
||||
{
|
||||
"n": "CREDITS_INTERFACE_ARTIST",
|
||||
"s": "Artiste d’interfaces"
|
||||
"s": "Artiste d'interfaces"
|
||||
},
|
||||
{
|
||||
"n": "CREDITS_JUNIOR",
|
||||
@@ -905,7 +905,7 @@
|
||||
},
|
||||
{
|
||||
"n": "ERROR_GENERIC_ERRCODE",
|
||||
"s": "Code d’erreur :"
|
||||
"s": "Code d'erreur :"
|
||||
},
|
||||
{
|
||||
"n": "ERROR_GENERIC_INVALID_KEY",
|
||||
@@ -917,7 +917,7 @@
|
||||
},
|
||||
{
|
||||
"n": "ERROR_GENERIC_TEXT",
|
||||
"s": "Une erreur s’est 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 s’est déconnecté."
|
||||
"s": "Votre adversaire s'est déconnecté."
|
||||
},
|
||||
{
|
||||
"n": "ERROR_NETWORK_DISCONNECTED_YOUR_PLAYER",
|
||||
"s": "L’autre joueur s’est déconnecté."
|
||||
"s": "L'autre joueur s'est déconnecté."
|
||||
},
|
||||
{
|
||||
"n": "ERROR_NETWORK_DISCONNECTED_YOUR_TEAMMATE",
|
||||
"s": "Votre coéquipier s’est déconnecté."
|
||||
"s": "Votre coéquipier s'est déconnecté."
|
||||
},
|
||||
{
|
||||
"n": "ERROR_NETWORK_SERVER",
|
||||
@@ -997,7 +997,7 @@
|
||||
},
|
||||
{
|
||||
"n": "GAME_ACTION_CROUCH",
|
||||
"s": "S’accroupir"
|
||||
"s": "S'accroupir"
|
||||
},
|
||||
{
|
||||
"n": "GAME_ACTION_DODGE",
|
||||
@@ -1073,7 +1073,7 @@
|
||||
},
|
||||
{
|
||||
"n": "GAME_ACTION_RUN_AWAY",
|
||||
"s": "S’enfuir"
|
||||
"s": "S'enfuir"
|
||||
},
|
||||
{
|
||||
"n": "GAME_ACTION_SHOOT",
|
||||
@@ -1117,7 +1117,7 @@
|
||||
},
|
||||
{
|
||||
"n": "GAME_CHARACTER_EXP",
|
||||
"s": "Points d’expérience"
|
||||
"s": "Points d'expérience"
|
||||
},
|
||||
{
|
||||
"n": "GAME_CHARACTER_FEMALE",
|
||||
@@ -1181,7 +1181,7 @@
|
||||
},
|
||||
{
|
||||
"n": "GAME_CHARACTER_SPAWN_POINT",
|
||||
"s": "Point d’Apparition"
|
||||
"s": "Point d'Apparition"
|
||||
},
|
||||
{
|
||||
"n": "GAME_CHARACTER_TRANSGENDER",
|
||||
@@ -1245,11 +1245,11 @@
|
||||
},
|
||||
{
|
||||
"n": "GAME_GENRE_ACTION",
|
||||
"s": "Jeu d’action"
|
||||
"s": "Jeu d'action"
|
||||
},
|
||||
{
|
||||
"n": "GAME_GENRE_ADVENTURE",
|
||||
"s": "Jeu d’aventure"
|
||||
"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 l’inventaire"
|
||||
"s": "Capacité de l'inventaire"
|
||||
},
|
||||
{
|
||||
"n": "GAME_INVENTORY_DROP",
|
||||
@@ -1425,7 +1425,7 @@
|
||||
},
|
||||
{
|
||||
"n": "GAME_LABEL_PLEASE_BE_CAREFUL",
|
||||
"s": "S’il 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 d’art"
|
||||
"s": "Galerie d'art"
|
||||
},
|
||||
{
|
||||
"n": "MENU_LABEL_GOODBYE",
|
||||
@@ -2257,7 +2257,7 @@
|
||||
},
|
||||
{
|
||||
"n": "MENU_LOGIN_REGISTER",
|
||||
"s": "S’inscrire"
|
||||
"s": "S'inscrire"
|
||||
},
|
||||
{
|
||||
"n": "MENU_LOGIN_REMEMBER",
|
||||
@@ -2337,7 +2337,7 @@
|
||||
},
|
||||
{
|
||||
"n": "MENU_NAME_USER",
|
||||
"s": "Nom d’utilisateur"
|
||||
"s": "Nom d'utilisateur"
|
||||
},
|
||||
{
|
||||
"n": "MENU_OPTIONS",
|
||||
@@ -2557,7 +2557,7 @@
|
||||
},
|
||||
{
|
||||
"n": "MENU_VR_HMD_ORIENT_RESET",
|
||||
"s": "Restaurer l’orientation du HDM"
|
||||
"s": "Restaurer l'orientation du HDM"
|
||||
},
|
||||
{
|
||||
"n": "MENU_VR_VIRTUAL_REALITY",
|
||||
|
||||
@@ -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 l’arriè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 l’extrê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 l’image",
|
||||
"MENU_MONITOR_CALI_LABEL_11": "Régler le contraste et luminosité de votre écran pour améliorer l'image",
|
||||
"MENU_MONITOR_CALI_LABEL_12": " "
|
||||
}
|
||||
@@ -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 >"
|
||||
}
|
||||
@@ -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 !"
|
||||
}
|
||||
@@ -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"
|
||||
|
||||
}
|
||||
@@ -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",
|
||||
|
||||
@@ -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 >"
|
||||
|
||||
}
|
||||
@@ -325,7 +325,7 @@
|
||||
},
|
||||
{
|
||||
"n": "CONTEXT_ITEM_GAUNTLETS",
|
||||
"s": "Guanti d’armatura"
|
||||
"s": "Guanti d'armatura"
|
||||
},
|
||||
{
|
||||
"n": "CONTEXT_ITEM_GEM",
|
||||
@@ -521,11 +521,11 @@
|
||||
},
|
||||
{
|
||||
"n": "CONTEXT_MEDAL_GOLD",
|
||||
"s": "Medaglia d’oro"
|
||||
"s": "Medaglia d'oro"
|
||||
},
|
||||
{
|
||||
"n": "CONTEXT_MEDAL_SILVER",
|
||||
"s": "Medaglia d’argento"
|
||||
"s": "Medaglia d'argento"
|
||||
},
|
||||
{
|
||||
"n": "CONTEXT_METAL_BRONZE",
|
||||
@@ -609,7 +609,7 @@
|
||||
},
|
||||
{
|
||||
"n": "CREDITS_ANIMATION_DIRECTOR",
|
||||
"s": "Direttore dell’animazione"
|
||||
"s": "Direttore dell'animazione"
|
||||
},
|
||||
{
|
||||
"n": "CREDITS_ANIMATOR",
|
||||
@@ -737,7 +737,7 @@
|
||||
},
|
||||
{
|
||||
"n": "CREDITS_INTERFACE_ARTIST",
|
||||
"s": "Artista per l’interfaccia"
|
||||
"s": "Artista per l'interfaccia"
|
||||
},
|
||||
{
|
||||
"n": "CREDITS_JUNIOR",
|
||||
@@ -929,7 +929,7 @@
|
||||
},
|
||||
{
|
||||
"n": "ERROR_NETWORK_DISCONNECTED_YOUR_PLAYER",
|
||||
"s": "L’altro 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 d’azione"
|
||||
"s": "Gioco d'azione"
|
||||
},
|
||||
{
|
||||
"n": "GAME_GENRE_ADVENTURE",
|
||||
"s": "Gioco d’avventura"
|
||||
"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 d’arte"
|
||||
"s": "Galleria d'arte"
|
||||
},
|
||||
{
|
||||
"n": "MENU_LABEL_GOODBYE",
|
||||
|
||||
@@ -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 >"
|
||||
|
||||
}
|
||||
@@ -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": "> ボタンを押す"
|
||||
|
||||
}
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"GAME_TIPS_1": "武器を「振り回す」の時に、敵より上に立っていれば、もう強くな攻撃ができます。だが注意せよーそれは敵も同じでしょう!"
|
||||
"GAME_TIPS_1": "武器を「振り回す」の時に、敵より上に立っていれば、もう強くな攻撃が入ります。だが注意せよーそれは敵も同じでしょう!"
|
||||
}
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "> ボタンを おす"
|
||||
|
||||
}
|
||||
@@ -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": ">을 누르세요"
|
||||
|
||||
}
|
||||
@@ -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 >"
|
||||
|
||||
}
|
||||
@@ -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 >"
|
||||
|
||||
}
|
||||
@@ -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 >"
|
||||
|
||||
}
|
||||
@@ -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 >"
|
||||
|
||||
}
|
||||
@@ -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 >"
|
||||
|
||||
}
|
||||
@@ -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ă >"
|
||||
|
||||
}
|
||||
@@ -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": "Нажмите >"
|
||||
|
||||
}
|
||||
@@ -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 >"
|
||||
|
||||
}
|
||||
@@ -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": "กดปุ่ม >"
|
||||
|
||||
}
|
||||
@@ -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"
|
||||
|
||||
}
|
||||
@@ -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": "按下 >"
|
||||
|
||||
}
|
||||
@@ -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": "按下 >"
|
||||
|
||||
}
|
||||
@@ -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?>
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
package net.torvald.serialise
|
||||
|
||||
import java.io.IOException
|
||||
import java.io.InputStream
|
||||
|
||||
/**
|
||||
* Created by minjaesong on 16-08-24.
|
||||
*/
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)```
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
)
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
13
src/net/torvald/terrarum/gameactors/ProjectileHoming.kt
Normal 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) {
|
||||
|
||||
|
||||
|
||||
}
|
||||
61
src/net/torvald/terrarum/gameactors/ProjectileSimple.kt
Normal 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))
|
||||
// ...
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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) {
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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) {
|
||||
}
|
||||
|
||||
@@ -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
|
||||