From 6e51b0c751e6fdf11166abf59428defba341ad39 Mon Sep 17 00:00:00 2001 From: Song Minjae Date: Wed, 31 Aug 2016 01:05:35 +0900 Subject: [PATCH] keycap font, edit on Thai font, actor can now flagged to despawn, draft for projectile "actor" Former-commit-id: 5a46366ac1680f040fe6e5ace742b71a86982efa Former-commit-id: 30e481f10cc8c09d4fc4ff1f52a4a45d91e3ab2d --- assets/graphics/fonts/keycaps.png | Bin 0 -> 1053 bytes assets/graphics/fonts/keycaps_gamepad.png | Bin 0 -> 1213 bytes assets/graphics/fonts/puae000-e07f.png | Bin 0 -> 18376 bytes assets/graphics/fonts/thai_fullwidth.png | Bin 1939 -> 1937 bytes assets/graphics/weathers/generic_light.png | Bin 280 -> 16103 bytes assets/locales/bgBG/game.json | 3 +- assets/locales/csCZ/game.json | 3 +- assets/locales/daDK/game.json | 3 +- assets/locales/de/game.json | 3 +- assets/locales/elGR/game.json | 3 +- assets/locales/en/game.json | 3 +- assets/locales/es/game.json | 4 +- assets/locales/fiFI/game.json | 3 +- assets/locales/fiFI/tips.json | 2 +- assets/locales/frFR/Polyglot-100_frFR.json | 46 ++++++------- assets/locales/frFR/configurator.json | 8 +-- assets/locales/frFR/game.json | 4 +- assets/locales/frFR/tips.json | 2 +- assets/locales/huHU/game.json | 3 +- assets/locales/isIC/Polyglot-100_isIC.json | 4 +- assets/locales/isIC/game.json | 3 +- assets/locales/it/Polyglot-100_it.json | 20 +++--- assets/locales/it/game.json | 3 +- assets/locales/jaJP/game.json | 3 +- assets/locales/jaJP/tips.json | 2 +- .../jakanaJP/Polyglot-100_jakanaJP.json | 8 +-- assets/locales/jakanaJP/game.json | 3 +- assets/locales/koKR/game.json | 3 +- assets/locales/nlNL/game.json | 3 +- assets/locales/noNB/game.json | 3 +- assets/locales/plPL/game.json | 3 +- assets/locales/ptBR/game.json | 3 +- assets/locales/ptPT/game.json | 3 +- assets/locales/roRO/game.json | 3 +- assets/locales/ruRU/game.json | 3 +- assets/locales/svSE/game.json | 3 +- assets/locales/thTH/game.json | 3 +- assets/locales/trTR/game.json | 3 +- assets/locales/zhCN/game.json | 3 +- assets/locales/zhTW/game.json | 3 +- src/net/torvald/imagefont/GameFontBase.kt | 22 ++++++- src/net/torvald/imagefont/GameFontWhite.kt | 5 +- src/net/torvald/serialise/ReadGameMapData.kt | 3 + src/net/torvald/terrarum/DefaultConfig.kt | 6 ++ src/net/torvald/terrarum/MISC_FEATURES.md | 8 ++- src/net/torvald/terrarum/StateInGame.kt | 9 ++- src/net/torvald/terrarum/StateMonitorCheck.kt | 9 +-- src/net/torvald/terrarum/StateSplash.kt | 22 ++----- src/net/torvald/terrarum/Terrarum.kt | 39 ++++++++++- src/net/torvald/terrarum/gameactors/Actor.kt | 2 +- .../terrarum/gameactors/ActorWithBody.kt | 4 +- .../torvald/terrarum/gameactors/PBCynthia.kt | 2 +- .../torvald/terrarum/gameactors/PBSigrid.kt | 3 +- .../terrarum/gameactors/ProjectileHoming.kt | 13 ++++ .../terrarum/gameactors/ProjectileSimple.kt | 61 ++++++++++++++++++ .../terrarum/gamecontroller/GameController.kt | 5 +- src/net/torvald/terrarum/langpack/Lang.kt | 10 ++- .../torvald/terrarum/ui/ItemImageGallery.kt | 3 +- .../{MovementInterpolator.kt => Movement.kt} | 4 +- 59 files changed, 288 insertions(+), 117 deletions(-) create mode 100644 assets/graphics/fonts/keycaps.png create mode 100644 assets/graphics/fonts/keycaps_gamepad.png create mode 100644 assets/graphics/fonts/puae000-e07f.png create mode 100644 src/net/torvald/terrarum/gameactors/ProjectileHoming.kt create mode 100644 src/net/torvald/terrarum/gameactors/ProjectileSimple.kt rename src/net/torvald/terrarum/ui/{MovementInterpolator.kt => Movement.kt} (90%) diff --git a/assets/graphics/fonts/keycaps.png b/assets/graphics/fonts/keycaps.png new file mode 100644 index 0000000000000000000000000000000000000000..eeb1cc0eec4ba8b5de21827cd0ea9e9744ee3843 GIT binary patch literal 1053 zcmV+&1mgRNP)z>$FBSH800001bW%=J06^y0W&i*Kzez+vRCr#!mcee@I1q-59{VVLA33NN z#-0{MCg{=1(TjZtxhErgFyD#A zU4Y#q9J)@ZvtlgBb;lD#*xzQtx2pmtPDX%s-6M2epbp?Z+!yS|fld{h7XoD=-$c$!ymamj#vl+V+>(58-Bla|GXn zO*R`1%5p6YJ_t6L^wR$SHZq;DCHW>spp%MBj3_qg@p*9$ggXK|LB&CU0Imx_a}viG zIt%i1U@xe+4F<|`pgoBqhR%ZOt-xoY7cMWr<=_Mrl{7JQ7SuS=yp1||sV@s`eyhzM{yhwgW z<3)T!a!?yoVNWmVXW|jZ{DcNfI9(G#)M|q&TsDI`6P-ywZ3OYv=^6v=1sb(M6N0VI zixhN~TPPe)AkB&(v%!^$2$EF_`Xmv={z{7-g1qLZAX3l*3tbl}sBgsKA*NZgAHiK& z*CVJMg6g{=h@d@=AZs?b%L3|)A*jGW^8%Wupf1E7r=>M%X>%;}=@hyif?QT$`OO)S zg+7Xf{y2s9Ly+csGsf6;^GpMoRl3VC{Meg5D}uDyEc0Gyvm12AKxUOrilMJ>)mIf% z$qLFDP>PBwo52d3SyciXvr1i@NiQ^13X@&h$!uggW1GMjbxcr^jtP3KBN}5A@!y|_ z=$W4MRXH?96XorHg31el+CY3Bf`-OufL zrnuHun}LcHH1N8$E{Gsk7|72757DM*o(Fx@H>lt{jL_g1%G_c)-! zT4S$T57Zb4|15~5c{a;jK_(1j4jE52Y|@i$HaLr32RVr_haA2$(a>aA$72T00000NkvXXu0mjf{fXCG literal 0 HcmV?d00001 diff --git a/assets/graphics/fonts/keycaps_gamepad.png b/assets/graphics/fonts/keycaps_gamepad.png new file mode 100644 index 0000000000000000000000000000000000000000..508177bda9fac4957230fd5a241c365c3536c490 GIT binary patch literal 1213 zcmV;u1Va0XP)z>$FBSH800004bW%=J|Ns90Kq{&9000DBNkloe3B*X^FL4*bYVYMkd>&FXp1Wq0(kJ1)blfEX>uVyMZPFMW(% zP>Z21Xa3@ip`Jrf0nqZ*7gBP4NGSQb%kt_US^tUz}yq=WSp zT4R_sM<)!m!-Q5G^|6r|iGj~%4}~B{3$*oE>s*w2e8gCDLV1STVZ4*|oJAsaH*kI~ zDFiuEARf)CA+#zo43WjIkJDW8=@bm)P=Row&wOa~F zp~Lf#H~gR|VK|#Wncq>_OJTUpa)4kCQ+WzW;U_HeexcQn9?wjpvuAV%jNip=o&zLP zHJ3tGB6yyZ_r}etlaAuZ?`(HC>zHVF%s0%OcT6|TfKUIfj7#rmFzrV(sW((j&f^ph z<2iMUyy0h`p^PX@&*un%l*_4oOXLK~dxL@jof%0Kre|}6Krl8==;w(pF)PIdF#>^8 zZ!iQygVOQmY3ib~a!z7GFg_07$NKHY&>g1>;;cY!xqe4@dR&LP3q&aCnViH(FqUIo zCroIqCtai%fxv=5r>!Zi(CYw!ye!PD5Vk~}K;BeByu3gmrHd5j1qycp-RA475A$fu zn0bM=+R_E_nLuXJAQ>D)FX$Vi#&m&vlMWG|3G@YbvEX#YO|VeO_x0LAC~6p+8t$c!hV!=z>5cz`yWM6 z#UMwX0S(NP0@0_{O%~dKK=k)bWnje_Gesc!w1&p7rvbwAIMWr+3lwS+sILKnS82=) zfiTbd2t?cjS0hmVmj#kSOOrr-9U|m#$tEo^g?b6ZXA@YefOx_l)JGsJv|gL^c!BC) z^Gp3X$e2b8jiqWQta-2bdV!SSOt*vLe1RSw8W!sOR>S?w6i#S03|F&S5a_Zy3Ibh* b*-!ifp!~QLq!y@Y00000NkvXXu0mjfkbg3T literal 0 HcmV?d00001 diff --git a/assets/graphics/fonts/puae000-e07f.png b/assets/graphics/fonts/puae000-e07f.png new file mode 100644 index 0000000000000000000000000000000000000000..580131f32b6d5718a823c8ab094f88c30ac9348b GIT binary patch literal 18376 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 delta 1124 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 VoKw5|T9Our&RBPJ|ALhp{{^b9GdTbN delta 176 zcmV;h08jtteV77}BqMlGOjJeEe1y7fh@xbOk6wp-SA%I$eO60#MMY~gK4C08Sd(Qt zB$JFgFn#BaegFUeY@NwZ00016Nkl2y1dN9+N1zpZYWhaj6;sB|Hm e5z2C2yxTk|E*2q(5)&2x0000" } \ No newline at end of file diff --git a/assets/locales/csCZ/game.json b/assets/locales/csCZ/game.json index 62d6956d5..0ca319cb3 100644 --- a/assets/locales/csCZ/game.json +++ b/assets/locales/csCZ/game.json @@ -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 >" } \ No newline at end of file diff --git a/assets/locales/daDK/game.json b/assets/locales/daDK/game.json index 70a520aa2..735863a01 100644 --- a/assets/locales/daDK/game.json +++ b/assets/locales/daDK/game.json @@ -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 >" } \ No newline at end of file diff --git a/assets/locales/de/game.json b/assets/locales/de/game.json index 830c9aa90..b2aeed987 100644 --- a/assets/locales/de/game.json +++ b/assets/locales/de/game.json @@ -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 >" } \ No newline at end of file diff --git a/assets/locales/elGR/game.json b/assets/locales/elGR/game.json index 5abcffabf..5d2a7833d 100644 --- a/assets/locales/elGR/game.json +++ b/assets/locales/elGR/game.json @@ -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": "Πάτα >" } \ No newline at end of file diff --git a/assets/locales/en/game.json b/assets/locales/en/game.json index 9abe7e574..73436e6cc 100644 --- a/assets/locales/en/game.json +++ b/assets/locales/en/game.json @@ -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 >" } \ No newline at end of file diff --git a/assets/locales/es/game.json b/assets/locales/es/game.json index 98313e554..9a92d8f5c 100644 --- a/assets/locales/es/game.json +++ b/assets/locales/es/game.json @@ -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 >" } \ No newline at end of file diff --git a/assets/locales/fiFI/game.json b/assets/locales/fiFI/game.json index 1a0dcfaad..923db585a 100644 --- a/assets/locales/fiFI/game.json +++ b/assets/locales/fiFI/game.json @@ -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 >" } \ No newline at end of file diff --git a/assets/locales/fiFI/tips.json b/assets/locales/fiFI/tips.json index fff14425a..3ea078599 100644 --- a/assets/locales/fiFI/tips.json +++ b/assets/locales/fiFI/tips.json @@ -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!" } \ No newline at end of file diff --git a/assets/locales/frFR/Polyglot-100_frFR.json b/assets/locales/frFR/Polyglot-100_frFR.json index e90ca0bc0..72a79f6c0 100644 --- a/assets/locales/frFR/Polyglot-100_frFR.json +++ b/assets/locales/frFR/Polyglot-100_frFR.json @@ -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", diff --git a/assets/locales/frFR/configurator.json b/assets/locales/frFR/configurator.json index c8dc88664..06cc2d90f 100644 --- a/assets/locales/frFR/configurator.json +++ b/assets/locales/frFR/configurator.json @@ -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": " " } \ No newline at end of file diff --git a/assets/locales/frFR/game.json b/assets/locales/frFR/game.json index b6d1b7db6..64f425cca 100644 --- a/assets/locales/frFR/game.json +++ b/assets/locales/frFR/game.json @@ -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 >" } \ No newline at end of file diff --git a/assets/locales/frFR/tips.json b/assets/locales/frFR/tips.json index c0caa4a0c..5b34e7cab 100644 --- a/assets/locales/frFR/tips.json +++ b/assets/locales/frFR/tips.json @@ -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 !" } \ No newline at end of file diff --git a/assets/locales/huHU/game.json b/assets/locales/huHU/game.json index 9f49789f8..ef7037e5e 100644 --- a/assets/locales/huHU/game.json +++ b/assets/locales/huHU/game.json @@ -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" } \ No newline at end of file diff --git a/assets/locales/isIC/Polyglot-100_isIC.json b/assets/locales/isIC/Polyglot-100_isIC.json index 1b7d98156..2567ff907 100644 --- a/assets/locales/isIC/Polyglot-100_isIC.json +++ b/assets/locales/isIC/Polyglot-100_isIC.json @@ -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", diff --git a/assets/locales/isIC/game.json b/assets/locales/isIC/game.json index 487cd7330..722592021 100644 --- a/assets/locales/isIC/game.json +++ b/assets/locales/isIC/game.json @@ -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 >" } \ No newline at end of file diff --git a/assets/locales/it/Polyglot-100_it.json b/assets/locales/it/Polyglot-100_it.json index f92babd6c..a38509524 100644 --- a/assets/locales/it/Polyglot-100_it.json +++ b/assets/locales/it/Polyglot-100_it.json @@ -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", diff --git a/assets/locales/it/game.json b/assets/locales/it/game.json index 2ee873d4f..97ab2823c 100644 --- a/assets/locales/it/game.json +++ b/assets/locales/it/game.json @@ -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 >" } \ No newline at end of file diff --git a/assets/locales/jaJP/game.json b/assets/locales/jaJP/game.json index 01aa3548e..7897255fc 100644 --- a/assets/locales/jaJP/game.json +++ b/assets/locales/jaJP/game.json @@ -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": "> ボタンを押す" } \ No newline at end of file diff --git a/assets/locales/jaJP/tips.json b/assets/locales/jaJP/tips.json index be51cd7df..4bdd43bff 100644 --- a/assets/locales/jaJP/tips.json +++ b/assets/locales/jaJP/tips.json @@ -1,3 +1,3 @@ { - "GAME_TIPS_1": "武器を「振り回す」の時に、敵より上に立っていれば、もう強くな攻撃ができます。だが注意せよーそれは敵も同じでしょう!" + "GAME_TIPS_1": "武器を「振り回す」の時に、敵より上に立っていれば、もう強くな攻撃が入ります。だが注意せよーそれは敵も同じでしょう!" } \ No newline at end of file diff --git a/assets/locales/jakanaJP/Polyglot-100_jakanaJP.json b/assets/locales/jakanaJP/Polyglot-100_jakanaJP.json index 03ecf2586..a5f4274de 100644 --- a/assets/locales/jakanaJP/Polyglot-100_jakanaJP.json +++ b/assets/locales/jakanaJP/Polyglot-100_jakanaJP.json @@ -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", diff --git a/assets/locales/jakanaJP/game.json b/assets/locales/jakanaJP/game.json index c8e097621..65dee068c 100644 --- a/assets/locales/jakanaJP/game.json +++ b/assets/locales/jakanaJP/game.json @@ -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": "> ボタンを おす" } \ No newline at end of file diff --git a/assets/locales/koKR/game.json b/assets/locales/koKR/game.json index 1b834949a..71a4bb305 100644 --- a/assets/locales/koKR/game.json +++ b/assets/locales/koKR/game.json @@ -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": ">을 누르세요" } \ No newline at end of file diff --git a/assets/locales/nlNL/game.json b/assets/locales/nlNL/game.json index fb1d55b1e..7a6f00e4d 100644 --- a/assets/locales/nlNL/game.json +++ b/assets/locales/nlNL/game.json @@ -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 >" } \ No newline at end of file diff --git a/assets/locales/noNB/game.json b/assets/locales/noNB/game.json index 7da5e7e34..61675adc4 100644 --- a/assets/locales/noNB/game.json +++ b/assets/locales/noNB/game.json @@ -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 >" } \ No newline at end of file diff --git a/assets/locales/plPL/game.json b/assets/locales/plPL/game.json index 64e53e282..9ce85c557 100644 --- a/assets/locales/plPL/game.json +++ b/assets/locales/plPL/game.json @@ -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 >" } \ No newline at end of file diff --git a/assets/locales/ptBR/game.json b/assets/locales/ptBR/game.json index 0eb6f556a..f653e8f7b 100644 --- a/assets/locales/ptBR/game.json +++ b/assets/locales/ptBR/game.json @@ -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 >" } \ No newline at end of file diff --git a/assets/locales/ptPT/game.json b/assets/locales/ptPT/game.json index 0eb6f556a..1a554aa00 100644 --- a/assets/locales/ptPT/game.json +++ b/assets/locales/ptPT/game.json @@ -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 >" } \ No newline at end of file diff --git a/assets/locales/roRO/game.json b/assets/locales/roRO/game.json index 047a9a837..ba5497b9a 100644 --- a/assets/locales/roRO/game.json +++ b/assets/locales/roRO/game.json @@ -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ă >" } \ No newline at end of file diff --git a/assets/locales/ruRU/game.json b/assets/locales/ruRU/game.json index 5e3939bf1..58ef0c708 100644 --- a/assets/locales/ruRU/game.json +++ b/assets/locales/ruRU/game.json @@ -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": "Нажмите >" } \ No newline at end of file diff --git a/assets/locales/svSE/game.json b/assets/locales/svSE/game.json index 3b00017b3..4a1d54a30 100644 --- a/assets/locales/svSE/game.json +++ b/assets/locales/svSE/game.json @@ -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 >" } \ No newline at end of file diff --git a/assets/locales/thTH/game.json b/assets/locales/thTH/game.json index 32200e6fa..975bfbfcd 100644 --- a/assets/locales/thTH/game.json +++ b/assets/locales/thTH/game.json @@ -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": "กดปุ่ม >" } \ No newline at end of file diff --git a/assets/locales/trTR/game.json b/assets/locales/trTR/game.json index 5b706d1eb..d93f835bd 100644 --- a/assets/locales/trTR/game.json +++ b/assets/locales/trTR/game.json @@ -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" } \ No newline at end of file diff --git a/assets/locales/zhCN/game.json b/assets/locales/zhCN/game.json index 5ed9fbee6..001d962a5 100644 --- a/assets/locales/zhCN/game.json +++ b/assets/locales/zhCN/game.json @@ -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": "按下 >" } \ No newline at end of file diff --git a/assets/locales/zhTW/game.json b/assets/locales/zhTW/game.json index c96bcc488..c669d4d7c 100644 --- a/assets/locales/zhTW/game.json +++ b/assets/locales/zhTW/game.json @@ -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": "按下 >" } \ No newline at end of file diff --git a/src/net/torvald/imagefont/GameFontBase.kt b/src/net/torvald/imagefont/GameFontBase.kt index f812adef2..924eabe60 100644 --- a/src/net/torvald/imagefont/GameFontBase.kt +++ b/src/net/torvald/imagefont/GameFontBase.kt @@ -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 diff --git a/src/net/torvald/imagefont/GameFontWhite.kt b/src/net/torvald/imagefont/GameFontWhite.kt index ea6f2be4a..b75ee908b 100644 --- a/src/net/torvald/imagefont/GameFontWhite.kt +++ b/src/net/torvald/imagefont/GameFontWhite.kt @@ -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 } diff --git a/src/net/torvald/serialise/ReadGameMapData.kt b/src/net/torvald/serialise/ReadGameMapData.kt index fa9975fe5..03ccc6bed 100644 --- a/src/net/torvald/serialise/ReadGameMapData.kt +++ b/src/net/torvald/serialise/ReadGameMapData.kt @@ -1,5 +1,8 @@ package net.torvald.serialise +import java.io.IOException +import java.io.InputStream + /** * Created by minjaesong on 16-08-24. */ diff --git a/src/net/torvald/terrarum/DefaultConfig.kt b/src/net/torvald/terrarum/DefaultConfig.kt index 6b754364d..f21fbf8c8 100644 --- a/src/net/torvald/terrarum/DefaultConfig.kt +++ b/src/net/torvald/terrarum/DefaultConfig.kt @@ -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) diff --git a/src/net/torvald/terrarum/MISC_FEATURES.md b/src/net/torvald/terrarum/MISC_FEATURES.md index 9513c310e..bc67c1857 100644 --- a/src/net/torvald/terrarum/MISC_FEATURES.md +++ b/src/net/torvald/terrarum/MISC_FEATURES.md @@ -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 \ No newline at end of file + *speed: in BPM + + +## Aimhack ## + +- Include a valid way of obtaining Aimhack (possessed weapon shit?) +- Implement it on ```.primaryUse(gc, delta)``` diff --git a/src/net/torvald/terrarum/StateInGame.kt b/src/net/torvald/terrarum/StateInGame.kt index 9306995a3..bfa904a42 100644 --- a/src/net/torvald/terrarum/StateInGame.kt +++ b/src/net/torvald/terrarum/StateInGame.kt @@ -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 diff --git a/src/net/torvald/terrarum/StateMonitorCheck.kt b/src/net/torvald/terrarum/StateMonitorCheck.kt index 3f6901bfc..31ff25bb5 100644 --- a/src/net/torvald/terrarum/StateMonitorCheck.kt +++ b/src/net/torvald/terrarum/StateMonitorCheck.kt @@ -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() 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 ) diff --git a/src/net/torvald/terrarum/StateSplash.kt b/src/net/torvald/terrarum/StateSplash.kt index b561dc7ca..bdad69b01 100644 --- a/src/net/torvald/terrarum/StateSplash.kt +++ b/src/net/torvald/terrarum/StateSplash.kt @@ -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() } diff --git a/src/net/torvald/terrarum/Terrarum.kt b/src/net/torvald/terrarum/Terrarum.kt index 63f386818..5c45ab273 100644 --- a/src/net/torvald/terrarum/Terrarum.kt +++ b/src/net/torvald/terrarum/Terrarum.kt @@ -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 diff --git a/src/net/torvald/terrarum/gameactors/Actor.kt b/src/net/torvald/terrarum/gameactors/Actor.kt index 537efeb31..0ddc4208c 100644 --- a/src/net/torvald/terrarum/gameactors/Actor.kt +++ b/src/net/torvald/terrarum/gameactors/Actor.kt @@ -17,8 +17,8 @@ abstract class Actor : Comparable, 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 diff --git a/src/net/torvald/terrarum/gameactors/ActorWithBody.kt b/src/net/torvald/terrarum/gameactors/ActorWithBody.kt index cd82204c6..59705986f 100644 --- a/src/net/torvald/terrarum/gameactors/ActorWithBody.kt +++ b/src/net/torvald/terrarum/gameactors/ActorWithBody.kt @@ -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 diff --git a/src/net/torvald/terrarum/gameactors/PBCynthia.kt b/src/net/torvald/terrarum/gameactors/PBCynthia.kt index ae1f797b9..596aad0f0 100644 --- a/src/net/torvald/terrarum/gameactors/PBCynthia.kt +++ b/src/net/torvald/terrarum/gameactors/PBCynthia.kt @@ -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() diff --git a/src/net/torvald/terrarum/gameactors/PBSigrid.kt b/src/net/torvald/terrarum/gameactors/PBSigrid.kt index 4812c9441..e7ec5c570 100644 --- a/src/net/torvald/terrarum/gameactors/PBSigrid.kt +++ b/src/net/torvald/terrarum/gameactors/PBSigrid.kt @@ -58,7 +58,8 @@ object PBSigrid { p.actorValue[AVKey.BASEDEFENCE] = 141 - p.actorValue["selectedtile"] = 16 + p.actorValue["__selectedtile"] = 16 // test code; replace with .primaryUse(gc, delta) + p.actorValue["__aimhelper"] = true p.setHitboxDimension(15, p.actorValue.getAsInt(AVKey.BASEHEIGHT)!!, 10, 0) diff --git a/src/net/torvald/terrarum/gameactors/ProjectileHoming.kt b/src/net/torvald/terrarum/gameactors/ProjectileHoming.kt new file mode 100644 index 000000000..5ab32b6f8 --- /dev/null +++ b/src/net/torvald/terrarum/gameactors/ProjectileHoming.kt @@ -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) { + + + +} \ No newline at end of file diff --git a/src/net/torvald/terrarum/gameactors/ProjectileSimple.kt b/src/net/torvald/terrarum/gameactors/ProjectileSimple.kt new file mode 100644 index 000000000..3a961b94f --- /dev/null +++ b/src/net/torvald/terrarum/gameactors/ProjectileSimple.kt @@ -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() + + 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)) + // ... + ) + } + +} \ No newline at end of file diff --git a/src/net/torvald/terrarum/gamecontroller/GameController.kt b/src/net/torvald/terrarum/gamecontroller/GameController.kt index 0508faa86..51850d173 100644 --- a/src/net/torvald/terrarum/gamecontroller/GameController.kt +++ b/src/net/torvald/terrarum/gamecontroller/GameController.kt @@ -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) { } diff --git a/src/net/torvald/terrarum/langpack/Lang.kt b/src/net/torvald/terrarum/langpack/Lang.kt index 4f502cb8c..f86e4e48f 100644 --- a/src/net/torvald/terrarum/langpack/Lang.kt +++ b/src/net/torvald/terrarum/langpack/Lang.kt @@ -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 { diff --git a/src/net/torvald/terrarum/ui/ItemImageGallery.kt b/src/net/torvald/terrarum/ui/ItemImageGallery.kt index 7cf0b3fe7..c0dadc72b 100644 --- a/src/net/torvald/terrarum/ui/ItemImageGallery.kt +++ b/src/net/torvald/terrarum/ui/ItemImageGallery.kt @@ -16,8 +16,7 @@ class ItemImageGallery( val width: Int, val height: Int, val imageList: ArrayList, - val column: Int = 1 -) : UIItem { + val column: Int = 1) : UIItem { override fun update(gc: GameContainer, delta: Int) { } diff --git a/src/net/torvald/terrarum/ui/MovementInterpolator.kt b/src/net/torvald/terrarum/ui/Movement.kt similarity index 90% rename from src/net/torvald/terrarum/ui/MovementInterpolator.kt rename to src/net/torvald/terrarum/ui/Movement.kt index 5b0ce0168..b35b980d9 100644 --- a/src/net/torvald/terrarum/ui/MovementInterpolator.kt +++ b/src/net/torvald/terrarum/ui/Movement.kt @@ -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