From 361518e5f9ad44464dbae863e65fd99134405d27 Mon Sep 17 00:00:00 2001 From: Vryst Date: Mon, 30 Dec 2024 13:22:41 +0700 Subject: [PATCH] Upgrading dynamic translations --- main/game/classes.py | 87 ++++++--- main/game/fun.py | 317 ++++++++++++++++++++++++-------- main/game/playerData/aja.json | 5 +- main/game/playerData/otong.json | 3 + main/game/prep.py | 75 +++++++- main/game/view.py | 48 +---- main/translation/en.json | 59 +++++- main/translation/ina.json | 57 +++++- 8 files changed, 499 insertions(+), 152 deletions(-) diff --git a/main/game/classes.py b/main/game/classes.py index edbe105..a8ba1a7 100644 --- a/main/game/classes.py +++ b/main/game/classes.py @@ -9,6 +9,8 @@ from game.prep import random from game.prep import json from game.prep import os +from game.prep import printf + roles_index = [ 1, @@ -27,13 +29,16 @@ "archer", "mage", "assassin", -"hero", -"bandit", "cleric", "alchemist", "monk" ] +subroles = [ +"hero", +"bandit" + +] special_shop = [ "hero", "assassin", @@ -124,17 +129,37 @@ def get_loot(enemy): #============={{HERO}}=============== class Hero: - def __init__(self,name=None,role=None,health=1,attack=0,defend=0,crate=0,cdamage=0,strength=1,vitality=1,intelligence=1,agility=1,coin=0,ctime=datetime.now().strftime('%Y-%m-%d %H:%M:%S'),guard=False,inventory=[],reputation=0): + def __init__(self, + name="Dummy", + role="Dummy", + subroles=[], + health=1, + attack=0, + defend=0, + crate=0, + cdamage=0, + strength=1, + vitality=1, + agility=1, + intelligence=1, + coin=0, + reputation=0, + inventory=[], + + ctime=datetime.now().strftime('%Y-%m-%d %H:%M:%S'), + guard=False): + self.name = name self.role = role + self.subroles = subroles self.strength = strength self.vitality = vitality - self.intelligence = intelligence self.agility = agility + self.intelligence = intelligence self.health = int(health * (self.vitality * 0.5)) - self.attack = attack + self.attack = int(attack * (self.strength * 0.8)) self.defend = defend self.crate = crate self.cdamage = cdamage @@ -152,9 +177,9 @@ def __init__(self,name=None,role=None,health=1,attack=0,defend=0,crate=0,cdamage self.minute = ctime[14:16] self.second = ctime[17:19] - if role == "hero": + if "hero" in self.subroles: - self.reputation = 100 + self.reputation = reputation + 100 else: self.reputation = reputation @@ -178,18 +203,22 @@ def __str__(self): Second : {self.second} ==================== PROFILE Name = {self.name} -Class = {self.role} -Coins = {self.coin} + Class = {self.role} + Sub-class = {" ".join(i for i in subroles)} + Coins = {self.coin} + Reputation = {self.reputation} ==================== STATS HP = {self.health} ATK = {self.attack} DEF = {self.defend} - AGI = {self.agility} - CRIT RATE = {self.crate}% - CRIT DAMAGE = {int(self.cdamage*100)}% - + CRIT RATE = {self.crate}% + CRIT DAMAGE = {int(self.cdamage*100)}% +==================== MULTIPLIER +STR = {self.strength} + VIT = {self.vitality} + AGI = {self.agility} + INT = {self.intelligence} ==================== INVENTORY - """) self.getInv() return "" @@ -244,7 +273,10 @@ def loadData(cls, json_file): health=data['health'], attack=data['attack'], defend=data['defend'], + strength=data['strength'], + vitality=data['vitality'], agility=data['agility'], + intelligence=data['intelligence'], crate=data['crate'], cdamage=data['cdamage'], guard=data['guard'], @@ -252,6 +284,7 @@ def loadData(cls, json_file): ctime=data['ctime'], reputation=data['reputation'] + ) @@ -269,15 +302,17 @@ def getInv(self): counter = 1 if self.inventory == []: - print("You didn't have anything! :D\n") + + print(f"{tsl['noitem']}") + for item in self.inventory: + index = 1 if buah in Makanan.buah: print(f"{counter:>2}. {Makanan.detail_buah[item]['name']}") counter+=1 else: - pass - dash() + print(f"{printf(index,item)}") def getStat(self): @@ -292,23 +327,23 @@ def getStat(self): CRIT DAMAGE = {self.cdamage} """) - def Attack(self, target): + def Attack(self, target, tsl=tsl): clear() total_damage = self.attack crit = critical(self) if target.health <=0 and self.health <= 0: - print(f"{self.name} dan {target.name} telah mati\n") + print(f"{self.name} & {target.name} {tsl['encounter']['battle']['dead']}\n") elif target.health <= 0: - print(f"{target.name} sudah mati :v") + print(f"{target.name} {tsl['encounter']['battle']['dead']}") print(f"{self.name} HP = {self.health}\n{target.name} HP = {target.health}") pass elif self.health <= 0: - print(f"{self.name} sudah mati :v") + print(f"{self.name} {tsl['encounter']['battle']['dead']}") print(f"{self.name} HP = {self.health}\n{target.name} HP = {target.health}") pass @@ -324,7 +359,7 @@ def Attack(self, target): if crit: - total_damage += int(self.attack * self.cdamage) + total_damage += int(self.attack * percent(self.cdamage)) target.health -= total_damage @@ -342,12 +377,14 @@ def Attack(self, target): print(f"{self.name} HP = {self.health}\n{target.name} HP = {target.health}") - print(f"\n\n{self.name} telah memberikan damage {total_damage} ke {target.name}") + print(f"\n\n{self.name} {tsl['encounter']['battle']['dealt']} {total_damage} {tsl['to']} {target.name}") + total_damage = self.attack - def Guard(self): + def Guard(self,tsl=tsl): self.guard = True - print(f"Defend milik {self.name} telah meningkat 2x lipat!") + print(f"{tsl['encounter']['battle']['guard1']} {self.name} {tsl['encounter']['battle']['guard2']}") + #print(f"Defend milik {self.name} telah meningkat 2x lipat!") def Run(self): return random.randint(1, 100) <= self.agility diff --git a/main/game/fun.py b/main/game/fun.py index 43f26e0..e6c5599 100644 --- a/main/game/fun.py +++ b/main/game/fun.py @@ -6,49 +6,145 @@ def maintenance(): - print("Fitur maintenance! :v") + print(f"{tsl['maintenance']}") loading(1) - -def create_hero(hero_name, hero_class): +# this gonna be the longest function later +def dialogue(player): + return False + + + +def create_hero(hero_name, hero_class, subroles=[]): + """ + ("role", + [subroles], + HP, + ATK, + DEF, + CRATE, + CDMG, + STR, + VIT, + AGI, + INT, + COIN, + REPUTATION, + ,INVENTORY (list) + ) + """ + roles = [ - #("role", HP ATK DEF AGI CRATE CDMG) - ("warrior", 1000, 130, 30, 15, 35, 80), - ("mage", 400, 270, 15, 10, 10, 120), - ("archer", 700, 80, 25, 45, 50, 100), - ("hero", 2000, 100, 70, 10, 30, 100), - ("thief", 450, 50, 15, 70, 75, 200), - ("bandit", 900, 95, 20, 5, 25, 70) + ("warrior", + subroles, + 1000, + 130, + 30, + 35, + 80, + 5, + 8, + 15, + 3, + 0, + 0, + ["sword","light helmet","medium armor","medium legging","leather boots"]), + + ("archer", + subroles, + 700, + 80, + 25, + 50, + 100, + 4, + 2, + 45, + 4, + 0, + 0, + ["bow","light ranger suit","light legging","swift boots"]), + + ("mage", + subroles, + 400, + 270, + 15, + 10, + 120, + 1, + 2, + 15, + 8, + 0, + 0, + ["staff","medium robe","light legging","arcane boots"]), + + ("assassin", + subroles, + 450, + 50, + 15, + 75, + 200, + 3, + 4, + 70, + 4, + 0, + 0, + ["dagger","cloak","light legging","sneak boots"]), + + ("cleric", + subroles, + 500, + 30, + 70, + 10, + 20, + 1, + 3, + 15, + 5, + 0, + 0, + ["grimoire","light robe","medium legging","medium boots"]) ] - role, health, attack, defend, agility, crit_rate, crit_dmg = roles[hero_class - 1] - return Hero(hero_name, role, health, attack, defend, agility, crit_rate, percent(crit_dmg)) + role, subroles, health, attack, defend, crit_rate, crit_dmg, strength, vitality, agility, intelligence, coin, reputation, inventory = roles[hero_class - 1] + return Hero(hero_name, role, subroles, health, attack, defend, crit_rate, percent(crit_dmg), strength, vitality, agility, intelligence, coin, reputation, inventory) -def main(load=False): +def main(load=False,translate=tsl): clear() if load == False: - hero_name, hero_class = pilih_role() # Pass directly + hero_name, hero_class = pilih_role(translate) # Pass directly hero = create_hero(hero_name, hero_class) elif load != False: hero = Hero.loadData(load) dash() - print("LOADED CHAR") + print(f"{printf('LOADED CHAR')}") dashn() print(hero) + confirm() loading(0.5) - + else: + dash() + print(f"{printf('NOT FOUND')}") + dashn() + raise Exception + confirm() while True: - encounter(hero) + encounter(hero,translate) confirm() @@ -56,14 +152,25 @@ def main(load=False): #pilih role -def pilih_role(): +def pilih_role(tsl): + + dash() + print(f"{printf(tsl['welcome'])}") + dashn() - print(f"Selamat datang di Athanor :v\n\n\n") - hero_name = str(input("masukkan nama hero: ")) + hero_name = str(input(f"{tsl['inputname']}: ")) while True: + + clear() try: - hero_class = int(input("\npilih role :\n 1. Warrior\n 2. Mage\n 3. Archer\n 4. Hero\n 5. Thief\n 6. Bandit\n\npilihan: ")) + dash() + for i,role in enumerate(roles,1): + + print(f"{printf(i,role)}") + + dashn() + hero_class = int(input(f"{tsl['inputrole']}")) if hero_class in roles_index: break @@ -73,7 +180,7 @@ def pilih_role(): except: - print("Harap pilih role yang tersedia!") + print(f"{tsl['errinputrole']}") pass @@ -81,7 +188,7 @@ def pilih_role(): -def battle(player,enemy): +def battle(player,enemy,tsl=tsl): clear() print(f"Kamu bertarung melawan {enemy.name}!\n") @@ -95,36 +202,36 @@ def battle(player,enemy): while True: try: - print(""" + print(f""" Pilih aksi yang tersedia: - 1. Serang - 2. Bertahan - 3. Item - 4. Kabur\n""") + 1. {tsl['encounter']['battle']['atkopt']} + 2. {tsl['encounter']['battle']['guardopt']} + 3. {tsl['encounter']['battle']['itemopt']} + 4. {tsl['encounter']['battle']['runopt']}\n""") aksi_battle = int(input("Pilihan(1/2/3/4): ")) if aksi_battle in [1, 2, 3, 4]: break # Exit the loop if valid input is given else: clear() - print("Pilihan tidak valid. Silakan pilih 1, 2, 3, atau 4.") + print(f"{tsl['invalid']}") loading(1) except ValueError: clear() - print("Harap masukkan angka yang valid (1/2/3/4).") + print(f"{tsl['invalidnum']}") loading(1) if aksi_battle == 1: - player.Attack(enemy) + player.Attack(enemy,tsl) loading(1) - enemy.Attack(player) + enemy.Attack(player,tsl) loading(1) if aksi_battle == 2: clear() - player.Guard() + player.Guard(tsl) loading(1) - enemy.Attack(player) + enemy.Attack(player,tsl) loading(1) pass @@ -135,18 +242,30 @@ def battle(player,enemy): while True: try: + + if not player.inventory: + + dash() + print(f"{printf({tsl['encounter']['battle']['empty']})}") + dashn() + break + a = 1 for i in player.inventory : - print(f"{a:>2}. {Makanan.detail_buah[i]['name']}") + if i in Makanan.buah: + print(f"{printf(a,Makanan.detail_buah[i]['name'])}") + continue + print(f"{printf(a,i)}") + print a += 1 - pilih_item = int(input("Pilih item yang ingin digunakan: ")) + pilih_item = int(input(f"{tsl['encounter']['battle']['itempick']} ")) #fungsi_item maintenance() break except ValueError: clear() - print("Harap masukkan index yang valid!") + print(f"{tsl['invalidnum']}") loading(1) if aksi_battle == 4: @@ -158,11 +277,15 @@ def battle(player,enemy): try: kabur = player.Run() if kabur: - print("kamu kabur") + + dash() + print("{printf(tsl['encounter']['battle']['escape'])}") + dashn() + loading(1) break else: - print("gagal") + print(f"{tsl['encounter']['battle']['escapefail']}") loading(1) clear() except TypeError: @@ -173,7 +296,11 @@ def battle(player,enemy): pass except ValueError: clear() - print("Harap masukkan input yang valid(1/2/3/4)!\n") + + dash() + print(f"{printf(tsl['invalidnum'])}") + dashn() + if player.health <= 0: return False @@ -193,7 +320,7 @@ def pergi(): #encounter -def encounter(hero): +def encounter(hero,tsl=tsl): berjalan = pergi() @@ -202,15 +329,23 @@ def encounter(hero): if berjalan == 1: while on: - enemy = Enemy(randomizer(musuh),randomizer(roles),randomizer(),randomizer(),randomizer(),randomizer(),randomizer(),randomizer()) - - enemy.getStat() - lanjut = input("Serang? (y/n) : ").lower() + enemy = Enemy(randomizer(musuh),randomizer(roles),randomizer(subroles),randomizer(),randomizer(),randomizer(),randomizer(),percent(randomizer()),randomizer(),randomizer(),randomizer(),randomizer()) - if lanjut == "y": - hasil_pertarungan = battle(hero,enemy) + #enemy.getStat() + while True: + + clear() + + dash() + print(f"{printf(tsl['encounter']['meet'])}{printf(enemy.name)}") + dashn() + + lanjut = input(f"{tsl['encounter']['battle']['atkopt']} (y/n) : ").lower() + + if lanjut == "y": + hasil_pertarungan = battle(hero,enemy,tsl) if hasil_pertarungan == "kabur": - print("\nKamu berhasil melarikan diri") + print(f"{printf(tsl['encounter']['battle']['escape'])}") loading(1) break if hasil_pertarungan == True: @@ -221,24 +356,38 @@ def encounter(hero): print("Game over") loading(1) break - if lanjut == 'n': - print(f"\nKamu menghiraukan {enemy.name}\n\n") - enemy = None - loading(1) + elif lanjut == 'n': + print(f"\n{tsl['encounter']['ignore']}{enemy.name}\n\n") + enemy = None + loading(1) + break + + else: + clear() + + dash() + print(f"{printf(tsl['invalid'])}") + dashn() + + confirm() + continue + break - + if berjalan == 2: - shop(hero) + shop(hero,tsl) clear() else: clear() - print("Kamu berjalan tanpa arah") - + + dash() + print(f"{printf(tsl['walk'])}") + dashn() #special shop interaction checker -def isSpecialShop(player): +def isSpecialShop(player,tsl=tsl): if player.role == "thief": print(f"\n0)Mencuri? :v") pass @@ -257,15 +406,27 @@ def isSpecialShop(player): pass #shop -def shop(player): - - aksi = True +def shop(player,tsl=tsl): + encounter = 0 pilihan = None - while aksi: + + while True: clear() + + if dialogue(encounter): + pass + + else: + + dash() + print(f"{tsl['shop']['greet']}") + dashn() + + + print(f"Your balance: {player.coin}G") - print(f"Selamat datang di toko, orang asing! heheh..\n") + isSpecialShop(player) print("1)Beli\n2)Jual\n3)Pergi") try: @@ -285,16 +446,17 @@ def shop(player): break if pilihan == 1: - buy(player) + buy(player,tsl) pass if pilihan == 2: - sell(player) #not stable + sell(player,tsl) pass if pilihan == 3: - aksi = False + encounter+=1 #adds how many you encounter the shop + break else: pass @@ -320,7 +482,7 @@ def eat(player,item): Apple(player) #buy -def buy(player): +def buy(player,tsl=tsl): keranjang = [] receipt = {} while True: @@ -332,7 +494,7 @@ def buy(player): dash() - print(f"{'DAFTAR KERANJANG':^36}") + print(f"{printf(tsl['shop']['cart'])}") dash() @@ -351,12 +513,11 @@ def buy(player): print(f""" {dash(r=True)} -Jangan input apapun jika lanjut beli -Input "0" untuk melakukan pembayaran +{tsl['shop']['confirm']} {dash(r=True)} -0. Bayar -k. kembali -h. hapus item +0. {tsl['shop']['pay']} +k. {tsl['shop']['back']} +h. {tsl['shop']['delete']} """) buah = input("Buah yang ingin dibeli : ") @@ -375,7 +536,7 @@ def buy(player): if keranjang == []: dash() print("KAMU BELUM MEMBELI APAPUN") - dash() + dashn() pass else: @@ -421,13 +582,17 @@ def buy(player): -def sell(player): +def sell(player,tsl=tsl): daftar_buah, daftar_harga = Makanan.getDaftarBuah() while True: if not player.inventory: # Check if inventory is empty clear() - print("You don't have anything to sell :D\n\n") + + dash() + print(f"{printf(tsl['shop']['empty'])}") + dashn() + confirm() loading(0.5) break @@ -471,6 +636,8 @@ def sell(player): elif membeli == "n": print("\nCanceled the selling.") + loading(1) + break else: print(f"{tsl['invalid']}") diff --git a/main/game/playerData/aja.json b/main/game/playerData/aja.json index 8d96ebf..8423cd4 100644 --- a/main/game/playerData/aja.json +++ b/main/game/playerData/aja.json @@ -1,10 +1,13 @@ { - "name": "a", + "name": "Otong", "role": "thief", "health": 900, "attack": 100, "defend": 20, + "strength":3, + "vitality":4, "agility": 5, + "intelligence":2, "crate": 100, "cdamage": 1.0, "guard": false, diff --git a/main/game/playerData/otong.json b/main/game/playerData/otong.json index e313f10..fcf4994 100644 --- a/main/game/playerData/otong.json +++ b/main/game/playerData/otong.json @@ -4,7 +4,10 @@ "health": 900, "attack": 100, "defend": 20, + "strength":3, + "vitality":4, "agility": 5, + "intelligence":2, "crate": 100, "cdamage": 1.0, "guard": false, diff --git a/main/game/prep.py b/main/game/prep.py index 826de1a..d8e3c90 100644 --- a/main/game/prep.py +++ b/main/game/prep.py @@ -11,10 +11,10 @@ MAXIMUM_WIDTH = 60 STANDARD_WIDTH = 37 user_width = STANDARD_WIDTH -warning = True # button for terminal_warning() +warning = True # switch for refresh_width() dot = "." # just in case -nl = "\n" -d = '-' +nl = "\n" #nEW lINE +d = '-' #dASH lang = { 'en':'English', @@ -148,11 +148,13 @@ def loading(duration=3): # printing (prettifier) # print(index,text) for num list # printf(text) for plain centered text -def printf(index=None,text=None): +def printf(index=None,text="error"): if text == False: + dash() print("This is a function i built because i get sick of repeating long format print :)") dashn() + elif index: if type(index) == str: return f"{f'{index}':^{refresh_width()}}" @@ -172,7 +174,9 @@ def load_translations(language="en"): except FileNotFoundError: print(f"Error: Translation file for '{language}' not found.") return None - except json.JSONDecodeError: + except json.JSONDecodeError as e: + + print(e) print(f"Error: Invalid JSON in the translation file '{language}.json'.") return None @@ -188,7 +192,64 @@ def get_translation(key, translations, *args): - +def choose_language(default="en",debug=False): + # Language selection + lang_list = [i.split(dot)[0] for i in os.listdir("../translation/") if i.endswith(".json")] + + tsl = load_translations() + + if debug: + return tsl + + while True: + clear() + index = 1 + + dash() + print(f"{printf('LANGUAGE')}") + dashn() + + for i in lang_list: + + if i in lang.keys(): + print(f"{printf(index,lang[i])}") + index +=1 + + else: + dash() + print(f"{printf('NO TRANSLATE FOUND')}") + dashn() + + pass + + try: + language_choice = int(input(f"\n{printf(tsl['chooselang'])} ")) + if language_choice <= 0 or language_choice > len(lang_list): + dash() + print(f"{printf(tsl['invalid'])}") + dashn() + + loading(1) + else: + choosed = lang_list[language_choice - 1] + tsl = load_translations(choosed) + + dash() + print(f"{printf(tsl['langs'])}{printf(lang[choosed])}") + dashn() + loading(1) + + return tsl + + break + except ValueError: + + dash() + print(f"{printf(tsl['invalidnum'])}") + dashn() + + loading(1) -tsl = load_translations() + +tsl = choose_language(debug=1) \ No newline at end of file diff --git a/main/game/view.py b/main/game/view.py index 251bc02..5fbd56f 100644 --- a/main/game/view.py +++ b/main/game/view.py @@ -16,7 +16,7 @@ def new_game(): dashn() loading(1) - main() + main(translate=tsl) # Load an existing game def load_game(filename): @@ -79,6 +79,8 @@ def show_main_menu(): file_choice -= 1 if 0 <= file_choice < len(json_files): load_game(json_files[file_choice]) + print('error') + confirm() break else: dash() @@ -101,7 +103,9 @@ def show_main_menu(): print(f"{printf(tsl['exits'])}") dashn() loading(0.3) - sys.exit('Thanks for playing! :D') + + + sys.exit(f"{printf(tsl['quit'])}") else: dash() print(f"{printf(tsl['invalid'])}") @@ -110,45 +114,7 @@ def show_main_menu(): # Main execution if __name__ == "__main__": - # Language selection - lang_list = [i.split(dot)[0] for i in os.listdir("../translation/") if i.endswith(".json")] + tsl = choose_language() #choosing language when starting the game - while True: - clear() - index = 1 - dash() - print(f"{printf('LANGUAGE')}") - dashn() - for i in lang_list: - if i in lang.keys(): - print(f"{printf(index,lang[i])}") - index +=1 - else: - dash() - print(f"{printf('NO TRANSLATE FOUND')}") - dashn() - pass - - try: - language_choice = int(input(f"\n{printf(tsl['chooselang'])} ")) - if language_choice <= 0 or language_choice > len(lang_list): - dash() - print(f"{printf(tsl['invalid'])}") - dashn() - loading(1) - else: - choosed = lang_list[language_choice - 1] - tsl = load_translations(choosed) - dash() - print(f"{printf(tsl['langs'])}{printf(lang[choosed])}") - dashn() - loading(1) - break - except ValueError: - dash() - print(f"{printf(tsl['invalidnum'])}") - dashn() - loading(1) - if tsl: show_main_menu() \ No newline at end of file diff --git a/main/translation/en.json b/main/translation/en.json index 53b29f8..4fa4075 100644 --- a/main/translation/en.json +++ b/main/translation/en.json @@ -1,30 +1,85 @@ { "startnew": "Start New Game", "new": "Starting a new game...", + "maintenance":"Feature on maintenance!", + "startload": "Load Game", "loads": "Loading game from ", "successload": "Character loaded successfully.", "errload": "File corrupted or modified.\nDon't ever try to cheat! git gut noob :D", "chooseload": "Choose a file to load", "indexload": "Pick one of those files", + + "exit": "Exit", "exits": "Exiting the game...", + "quit": "Thanks for playing! :D", + "option": "Please choose an option", "invalid": "That was never an option :D", "invalidnum": "Please input a number", + + "loading": "Now Loading...", "errloading": "Error loading game: {error}", + + "lang":"Language", "chooselang":"Please choose a language", "langs":"Language choosed", + + "process": "Processing...", "success":"Success!", "fail": "Failed...", + + "inputname": "Please input your name: ", "inputrole": "Choose your role :", "errinputrole": "Role not found!", + + "welcome": "Welcome to Flandyr!", + "continue": "Input anything to continue", "name":"Name", - "nosave": "No saved games found." -} + "nosave": "No saved games found.", + "noitem": "You didn't have anything! :D", + + + "walk":"You're walking where the wind flows", + "to":"to", + + + "shop":{ + "greet":"Welcome to my shop, stranger! huhah! :v", + "empty":"You didn't have anything to sell :D", + "cart":"CART LIST", + "confirm":"Do not input anything if you still adding items\nInput '0' to proceed buying", + "pay":"Bayar", + "back":"Kembali", + "delete":"Hapus item" + }, + + "encounter":{ + "ignore":"You're ignoring ", + "meet":"You meet", + "battle":{ + "atkopt":"Attack", + "dead":"already dead", + "dealt":"dealt damage", + + "guardopt":"Defend", + "guard1":"The", + "guard2":"'s defend has increased 2x !", + + "itemopt":"Item", + "empty":"You didn't have anything! :D", + "itempick":"Pick an item to use:", + + "runopt":"Escape", + "escape":"You managed to escape!", + "escapefail":"Failed to escape..." + } + } +} \ No newline at end of file diff --git a/main/translation/ina.json b/main/translation/ina.json index 443a922..6b5b098 100644 --- a/main/translation/ina.json +++ b/main/translation/ina.json @@ -1,30 +1,85 @@ { "startnew": "Mulai Game Baru", "new": "Memulai game baru...", + "maintenance":"Fitur dalam pengembangan!", + "startload": "Muat Game", "loads": "Memuat game dari ", "successload": "Karakter berhasil dimuat.", "errload": "File rusak atau telah dimodifikasi.\nJangan coba-coba curang! Belajarlah, noob :D", "chooseload": "File tersedia", "indexload": "Masukkan nomor file (0 untuk kembali)", + "exit": "Keluar", "exits": "Keluar dari game...", + "quit": "Terimakasih telah bermain! :D", + + "option": "Silakan pilih opsi", "invalid": "Itu bukan opsi yang tersedia :D", "invalidnum": "Silakan masukkan angka", + + "loading": "Sedang Memuat...", "errloading": "Kesalahan saat memuat game: {error}", + + "lang":"Bahasa", "chooselang":"Pilih bahasa", "langs":"Bahasa dipilih", + + "process": "Sedang Memproses...", "success":"Berhasil!", "fail": "Gagal...", + + "inputname": "Silakan masukkan nama Anda: ", "inputrole": "Pilih peran Anda: ", "errinputrole": "Peran tidak ditemukan!", + + "welcome": "Selamat datang di Flandyr!", + "continue": "Masukkan apa saja untuk melanjutkan", "name":"Nama", - "nosave": "Tidak ada game yang tersimpan." + "nosave":"Tidak ada game yang tersimpan.", + "noitem":"Kamu tidak memiliki apapun! :D", + + + "walk":"Kamu berjalan tanpa arah", + "to":"ke", + + "shop":{ + "greet":"Selamat datang di toko, orang asing! heheh..", + "empty":"Kamu tidak memiliki sesuatu untuk dijual :D", + "cart":"DAFTAR KERANJANG", + "confirm":"Jangan input apapun jika lanjut beli\nInput '0' untuk melakukan pembayaran", + "pay":"Bayar", + "back":"Kembali", + "delete":"Hapus item" + }, + + "encounter":{ + + "ignore":"Kamu mengabaikan ", + "meet":"Kamu bertemu dengan", + "battle":{ + "atkopt":"Serang", + "dead":"sudah mati", + "dealt":"memberikan damage", + + "guardopt":"Bertahan", + "guard1":"Pertahanan milik", + "guard2":"telah meningkat 2x lipat!", + + "itemopt":"Item", + "empty":"Kamu tidak mempunyai apapun! :D", + "itempick":"Pilih item yang ingin digunakan:", + + "runopt":"Kabur", + "escape":"Kamu berhasil kabur!", + "escapefail":"Kamu gagal kabur..." + } + } } \ No newline at end of file