Commit 8ebe6475 authored by fallenstardust's avatar fallenstardust

添加日语&切换

parent 51a15740
#bots list
# !name
# command
# description
# flags (avail flags: SUPPORT_MASTER_RULE_3, SUPPORT_NEW_MASTER_RULE, SUPPORT_MASTER_RULE_2020, SELECT_DECKFILE)
!ランダムLV1
Random=AI_LV1
弱いデッキ
SUPPORT_MASTER_RULE_2020
!ランダムLV2
Random=AI_LV2
中堅デッキ
SUPPORT_MASTER_RULE_2020
!ランダムLV3
Random=AI_LV3
環境デッキ
SUPPORT_MASTER_RULE_2020
!ランダムLVメタ
Random=AI_ANTI_META
メタデッキ
SUPPORT_MASTER_RULE_2020
!AI自由デッキ
Name=AI Deck=Lucky Dialog=default
AIデッキを選択して遊ぶ、ランダムでカードを発動する
SELECT_DECKFILE SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!サイバース
Name=サイバース Deck=ST1732 Dialog=default
サイバース族のみで構成された、リンク召喚中心のデッキ
AI_LV2 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!オールドスクール
Name=オールドスクール Deck=OldSchool Dialog=default
通常モンスターデッキ
AI_LV1 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!もけもけ
Name=もけもけ Deck=MokeyMokey Dialog=default
もけもけを中心に、通常モンスターのみで構成されたデッキ
AI_LV1 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!もけもけキング
Name=もけもけキング Deck=MokeyMokeyKing Dialog=default
通常モンスターを中心にリンクやエクシーズを展開するデッキ
AI_LV1 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!バーン
Name=バーン Deck=Burn Dialog=default
バーン効果を中心としたデッキ
AI_LV1 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!チェインバーン
Name=チェインバーン Deck=ChainBurn Dialog=default
チェインバーン効果を中心としたデッキ
AI_LV1 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!カエル
Name=カエル Deck=Frog Dialog=default
カエルデッキ
AI_LV1 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!ホルスの黒炎竜
Name=ホルスの黒炎竜 Deck=Horus Dialog=default
ホルスの黒炎竜を中心としたデッキ
AI_LV1 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!レベル4N
Name=レベル4バニラ Deck=Rainbow Dialog=default
通常モンスターでエクシーズとシンクロを展開するデッキ
AI_LV1 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!ランク5X
Name=ランク5エクシーズ Deck='Rank V' Dialog=default
ランク5エクシーズモンスターをを中心としたデッキ
AI_LV2 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!レベル8S
Name=レベル8シンクロ Deck='Level VIII' Dialog=default
レベル8シンクロモンスターを中心としたデッキ
AI_LV2 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!ブラック・マジシャン
Name=ブラック・マジシャン Deck=DarkMagician Dialog=default
ブラック・マジシャンを中心としたデッキ
AI_LV2 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!ブルーアイズ
Name=ブルーアイズ Deck=Blue-Eyes Dialog=default
青眼の白龍を中心としたデッキ
AI_LV2 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!ドラグニティ
Name=ドラグニティ Deck=Dragunity Dialog=default
スターダスト・ドラゴン/バスターを中心としたデッキ
AI_LV2 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!クロノダイバー
Name=クロノダイバー Deck=TimeThief Dialog=default
クロノダイバーデッキ
AI_LV2 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!サイバー・ドラゴン
Name=サイバー・ドラゴン Deck='CyberDragon' Dialog=default
サイバー・ドラゴン・インフィニティを中心としたデッキ
AI_LV2 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!ヴェルズ
Name=ヴェルズ Deck=Evilswarm Dialog=default
ヴェルズデッキ
AI_LV2 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!グレイドル
Name=グレイドル Deck=Graydle Dialog=default
グレイドルデッキ
AI_LV2 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!クリフォート
Name=クリフォート Deck=Qliphort Dialog=default
クリフォートデッキ
AI_LV2 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!ライトロード
Name=ライトロード Deck=Lightsworn Dialog=default
ライトロードを中心としたリンク召喚も扱うデッキ
AI_LV2 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!シャドール・ティラノ
Name=シャドール・ティラノ Deck=LightswornShaddoldinosour Dialog=default
ライトロードを使用しシャドールと究極伝導恐獣を中心としたリンク召喚も扱うデッキ
AI_LV2 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!希望皇ホープ
Name=ゼアルウェポン Deck='Zexal Weapons' Dialog=default
希望皇ホープとZWを中心としたデッキ
AI_LV2 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!影霊衣
Name=影霊衣 Deck=Nekroz Dialog=default
影霊衣デッキ
AI_LV2 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!斬機
Name=斬機 Deck=MathMech Dialog=default
斬機デッキ
AI_LV2 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!BF
Name=BF Deck=Blackwing Dialog=default
ブラックフェザーデッキ
AI_LV2 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!WW
Name=WW Deck=PureWinds Dialog=default
ウィンド・ウィッチデッキ
AI_LV2 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!トリックスター
Name=トリックスター Deck=Trickstar Dialog=default
トリックスターデッキ。
AI_LV3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!オルフェゴール
Name=オルフェゴール Deck=Orcust Dialog=default
オルフェゴールデッキ
AI_LV3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!ウィッチクラフト
Name=ウィッチクラフト Deck=Witchcraft Dialog=default
ウィッチクラフトデッキ
AI_LV3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!オルターガイスト
Name=オルターガイスト Deck=Altergeist Dialog=default
オルターガイストデッキ
AI_LV3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!ブルーアイズ・カオス・MAX・ドラゴン
Name=ブルーアイズ・カオス・MAX・ドラゴン Deck=BlueEyesMaxDragon Dialog=default
ブルーアイズ・カオス・MAX・ドラゴンを中心としたデッキ
AI_LV3 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!勇者
Name=勇者 Deck=Brave Dialog=default
勇者トークンデッキ
AI_LV3 SUPPORT_MASTER_RULE_2020
!HAT
Name=HAT Deck=HAT Dialog=default
HATデッキ
AI_LV3 SUPPORT_NEW_MASTER_RULE
!十二獣
Name=十二獣 Deck=Zoodiac Dialog=default
壊獣と十二獣を中心としたデッキ
AI_LV3 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!閃刀姫
Name=閃刀姫 Deck=SkyStriker Dialog=default
閃刀姫のデッキ
AI_LV3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!転生炎獣
Name=転生炎獣 Deck=Salamangreat Dialog=default
サラマングレイトデッキ
AI_LV3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!餅カエル
Name=餅カエル Deck='Toadally Awesome' Dialog=default
氷結界とカエルを使用して、餅カエルを中心としたランク2を展開するデッキ
AI_LV3 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!超魔導竜騎士
Name=超魔導竜騎士 Deck=Dragun Dialog=default
超魔導竜騎士-ドラグーン・オブ・レッドアイズを中心としたデッキ
AI_LV3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!紅蓮魔獣サンダーボーダー
Name=紅蓮魔獣サンダーボーダー Deck=GrenMajuThunderBoarder Dialog=default
フィールドに存在する効果が中心のデッキ
AI_ANTI_META SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!墓守
Name=墓守 Deck=Gravekeeper Dialog=default
墓守デッキ
AI_ANTI_META SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!幻煌龍
Name=幻煌龍 Deck=Phantasm Dialog=default
幻煌龍デッキ
AI_ANTI_META SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!妖仙獣
Name=妖仙獣 Deck=Yosenju Dialog=default
妖仙獣を中心としたメタデッキ
AI_ANTI_META SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!憑依装着
Name=憑依装着 Deck=FamiliarPossessed Dialog=default
憑依装着を中心としたメタデッキ
AI_ANTI_META SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!クシャトリラ
Name=クシャトリラ Deck=Kashtira Dialog=default
クシャトリラデッキ
AI_LV3 SUPPORT_MASTER_RULE_2020
!サンダー・ドラゴン
Name=サンダー・ドラゴン Deck=ThunderDragon Dialog=default
サンダー・ドラゴンデッキ
AI_LV3 SUPPORT_MASTER_RULE_2020
!ティアラメンツ
Name=ティアラメンツ Deck=Tearlaments Dialog=default
ティアラメンツデッキ
AI_LV3 SUPPORT_MASTER_RULE_2020
!セフィラ
Name=セフィラ Deck=Zefra Dialog=default
セフィラデッキ
AI_LV3 SUPPORT_MASTER_RULE_2020
!エクソシスター
Name=エクソシスター Deck=Exosister Dialog=default
エクソシスターデッキ
AI_LV3 SUPPORT_MASTER_RULE_3 SUPPORT_MASTER_RULE_2020
!相剣
Name=相剣 Deck=Swordsoul Dialog=default
相剣デッキ
AI_LV3 SUPPORT_MASTER_RULE_3 SUPPORT_MASTER_RULE_2020
This diff is collapsed.
......@@ -2,6 +2,7 @@ package cn.garymb.ygomobile;
import static cn.garymb.ygomobile.Constants.ASSETS_EN;
import static cn.garymb.ygomobile.Constants.ASSETS_ES;
import static cn.garymb.ygomobile.Constants.ASSETS_JP;
import static cn.garymb.ygomobile.Constants.ASSETS_KOR;
import static cn.garymb.ygomobile.Constants.BOT_CONF;
import static cn.garymb.ygomobile.Constants.CORE_BOT_CONF_PATH;
......@@ -745,7 +746,8 @@ public class AppsSettings {
Chinese(0, "zh"),
Korean(1, "ko"),
English(2, "en"),
Spanish(3, "es");
Spanish(3, "es"),
Japanese(4,"jp");
public Integer code;
public String name;
......@@ -819,6 +821,23 @@ public class AppsSettings {
setDataLanguage(languageEnum.Spanish.code);
}
public void copyJpData() throws IOException {
String jpStringConf = ASSETS_JP + getDatapath("conf") + "/" + CORE_STRING_PATH;
String jpBotConf = ASSETS_JP + getDatapath("conf") + "/" + CORE_BOT_CONF_PATH;
String jpCdb = ASSETS_JP + getDatapath(DATABASE_NAME);
//复制数据库
copyCdbFile(jpCdb);
//复制人机资源
IOUtils.copyFilesFromAssets(context, getDatapath(Constants.WINDBOT_PATH), getResourcePath(), true);
//复制游戏配置文件
IOUtils.copyFilesFromAssets(context, jpStringConf, getResourcePath(), true);
IOUtils.copyFilesFromAssets(context, jpBotConf, getResourcePath(), true);
//替换换行符
replaceLineFeed();
//设置语言为4=Japanese
setDataLanguage(languageEnum.Japanese.code);
}
private void replaceLineFeed(){
//替换换行符
String stringConfPath = new File(getResourcePath(), CORE_STRING_PATH).getAbsolutePath();
......
......@@ -59,6 +59,7 @@ public interface Constants {
String ASSETS_EN = "en/";
String ASSETS_KOR = "kor/";
String ASSETS_ES = "es/";
String ASSETS_JP = "jp/";
String ASSETS_PATH = "data/";
String ASSET_SERVER_LIST = "serverlist.xml";
String ASSET_LIMIT_PNG = ASSETS_PATH + "textures/lim.png";
......
......@@ -146,7 +146,6 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
AnimationShake2(layoutView);
initView(layoutView);
preLoadFile();
restoreDeck();
//event
if (!EventBus.getDefault().isRegistered(this)) {//加上判断
EventBus.getDefault().register(this);
......@@ -196,24 +195,6 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
mContext = (BaseActivity) getActivity();
}
private void restoreDeck() {
File oriDeckFiles = new File(ORI_DECK);
File deckFiles = new File(AppsSettings.get().getDeckDir());
if (oriDeckFiles.exists() && deckFiles.list().length <= 1) {
DialogPlus dialogplus = new DialogPlus(mContext);
dialogplus.setTitle(R.string.tip);
dialogplus.setMessage(R.string.restore_deck);
dialogplus.setLeftButtonText(R.string.Cancel);
dialogplus.setLeftButtonListener((dlg, i) -> {
dialogplus.dismiss();
});
dialogplus.setRightButtonText(R.string.deck_restore);
dialogplus.setRightButtonListener((dlg, i) -> {
mContext.startPermissionsActivity();
dialogplus.dismiss();
});
}
}
public void preLoadFile() {
String preLoadFile = "";
if (getArguments() != null) {
......@@ -235,6 +216,22 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
_file = new File(path);
}
}
File oriDeckFiles = new File(ORI_DECK);
File deckFiles = new File(AppsSettings.get().getDeckDir());
if (oriDeckFiles.exists() && deckFiles.list().length <= 1) {
DialogPlus dialogplus = new DialogPlus(mContext);
dialogplus.setTitle(R.string.tip);
dialogplus.setMessage(R.string.restore_deck);
dialogplus.setLeftButtonText(R.string.Cancel);
dialogplus.setLeftButtonListener((dlg, i) -> {
dialogplus.dismiss();
});
dialogplus.setRightButtonText(R.string.deck_restore);
dialogplus.setRightButtonListener((dlg, i) -> {
mContext.startPermissionsActivity();
dialogplus.dismiss();
});
}
init(_file);
}
......
......@@ -2,6 +2,7 @@ package cn.garymb.ygomobile.ui.home;
import static cn.garymb.ygomobile.Constants.ASSETS_EN;
import static cn.garymb.ygomobile.Constants.ASSETS_ES;
import static cn.garymb.ygomobile.Constants.ASSETS_JP;
import static cn.garymb.ygomobile.Constants.ASSETS_KOR;
import static cn.garymb.ygomobile.Constants.ASSETS_PATH;
import static cn.garymb.ygomobile.Constants.BOT_CONF;
......@@ -297,6 +298,8 @@ public class ResCheckTask extends AsyncTask<Void, Integer, Integer> {
copyKorData(true);
} else if (language.equals(languageEnum.Spanish.name)) {
copyEsData(true);
} else if (language.equals(languageEnum.Japanese)){
copyJpData(true);
} else {
copyEnData(true);
}
......@@ -305,6 +308,7 @@ public class ResCheckTask extends AsyncTask<Void, Integer, Integer> {
if (mSettings.getDataLanguage() == languageEnum.Korean.code) copyKorData(true);
if (mSettings.getDataLanguage() == languageEnum.English.code) copyEnData(true);
if (mSettings.getDataLanguage() == languageEnum.Spanish.code) copyEsData(true);
if (mSettings.getDataLanguage() == languageEnum.Japanese.code) copyJpData(true);
}
}
han.sendEmptyMessage(0);
......@@ -379,6 +383,23 @@ public class ResCheckTask extends AsyncTask<Void, Integer, Integer> {
return ERROR_NONE;
}
public int copyJpData(Boolean needsUpdate) throws IOException {
String jpStringConf = ASSETS_JP + getDatapath("conf") + "/" + CORE_STRING_PATH;
String jpBotConf = ASSETS_JP + getDatapath("conf") + "/" + CORE_BOT_CONF_PATH;
String jpCdb = ASSETS_JP + getDatapath(DATABASE_NAME);
String enSingle = ASSETS_EN + getDatapath(CORE_SINGLE_PATH);
//复制数据库
copyCdbFile(jpCdb, true);
//复制残局
setMessage(mContext.getString(R.string.check_things, mContext.getString(R.string.single_lua)));
IOUtils.copyFilesFromAssets(mContext, enSingle, mSettings.getSingleDir(), needsUpdate);
//复制游戏配置文件
copyCoreConfig(jpStringConf, jpBotConf, mSettings.getResourcePath(), needsUpdate);
mSettings.setDataLanguage(languageEnum.Spanish.code);
mSettings.setDataLanguage(languageEnum.Japanese.code);
return ERROR_NONE;
}
private void loadData() {
setMessage(mContext.getString(R.string.loading));
DataManager.get().load(false);
......
......@@ -637,6 +637,8 @@ public class SettingFragment extends PreferenceFragmentPlus {
mSettings.copyKorData();
} else if (language.equals(AppsSettings.languageEnum.Spanish.name)) {
mSettings.copyEsData();
} else if (language.equals(AppsSettings.languageEnum.Japanese.name)) {
mSettings.copyJpData();
} else {
mSettings.copyEnData();
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment