diff --git a/app/build.gradle b/app/build.gradle index f0c0bc73..5f65a282 100755 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,13 +10,13 @@ android { keyPassword System.getenv('ANDROID_KEY_PASSWORD') } } - compileSdkVersion 31 + compileSdkVersion 33 defaultConfig { applicationId "dnd.jon.spellbook" minSdkVersion 24 - targetSdkVersion 31 - versionCode 300050 - versionName "3.0.5" + targetSdkVersion 33 + versionCode 300060 + versionName "3.0.6" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" signingConfig signingConfigs.release } diff --git a/app/src/main/assets/Spells.json b/app/src/main/assets/Spells.json index 125ceefe..8120d3df 100644 --- a/app/src/main/assets/Spells.json +++ b/app/src/main/assets/Spells.json @@ -16251,5 +16251,34 @@ "page": 22 } ] + }, + { + "casting_time": "1 action", + "classes": [ + "Wizard" + ], + "components": [ + "S" + ], + "concentration": false, + "desc": "You pull a memory, an idea, or a message from your mind and transform it into a tangible string of glowing energy called a thought strand, which persists for the duration or until you cast this spell again. The thought strand appears in an unoccupied space within 5 feet of you as a Tiny, weightless, semisolid object that can be held and carried like a ribbon. It is otherwise stationary.\n\nIf you cast this spell while concentrating on a spell or an ability that allows you to read or manipulate the thoughts of others (such as detect thoughts or modify memory), you can transform the thoughts or memories you read, rather than your own, into a thought strand.\n\nCasting this spell while holding a thought strand allows you to instantly receive whatever memory, idea, or message the thought strand contains. (Casting detect thoughts on the strand has the same effect.)\n\nThis spell can be used by any character with the Dimir Operative background.", + "duration": "8 hours", + "higher_level": "", + "id": 523, + "level": 0, + "material": "", + "name": "Encode Thoughts", + "range": "Self", + "ritual": false, + "school": "Enchantment", + "subclasses": [ + "Dimir Operative" + ], + "locations": [ + { + "sourcebook": "GGR", + "page": 47 + } + ] } ] \ No newline at end of file diff --git a/app/src/main/assets/Spells_pt.json b/app/src/main/assets/Spells_pt.json index f8918491..46365046 100644 --- a/app/src/main/assets/Spells_pt.json +++ b/app/src/main/assets/Spells_pt.json @@ -15052,5 +15052,34 @@ "page": 22 } ] + }, + { + "casting_time": "1 ação", + "classes": [ + "Mago" + ], + "components": [ + "S" + ], + "concentration": false, + "desc": "Você puxa uma memória, uma ideia ou uma mensagem de sua mente e a transforma em um fio tangível de energia brilhante chamado fio de pensamento, que persiste pela duração ou até que você lance esse feitiço novamente. O fio de pensamento aparece em um espaço desocupado a até 1,5 metro de você como um objeto minúsculo, sem peso e semissólido que pode ser segurado e carregado como uma fita. Caso contrário, ele é estacionário.\n\nSe você conjurar esta magia enquanto se concentra em uma magia ou habilidade que lhe permite ler ou manipular os pensamentos dos outros (como detectar pensamentos ou modificar a memória), você pode transformar os pensamentos ou memórias que você leia, em vez do seu próprio, em um fio de pensamento.\n\nLançar este feitiço enquanto segura um fio de pensamento permite que você receba instantaneamente qualquer memória, ideia ou mensagem que o fio de pensamento contenha. (Lançar detectar pensamentos no fio tem o mesmo efeito.)\n\nEste feitiço pode ser usado por qualquer personagem com antecedente Operativo Dimir.", + "duration": "8 horas", + "higher_level": "", + "id": 523, + "level": 0, + "material": "", + "name": "Codificar Pensamentos", + "range": "Pessoal", + "ritual": false, + "school": "Encantamento", + "subclasses": [ + "Dimir Operative" + ], + "locations": [ + { + "sourcebook": "GGR", + "page": 47 + } + ] } -] \ No newline at end of file +] diff --git a/app/src/main/java/dnd/jon/spellbook/GlobalInfo.java b/app/src/main/java/dnd/jon/spellbook/GlobalInfo.java index 711b4988..aa810d5b 100644 --- a/app/src/main/java/dnd/jon/spellbook/GlobalInfo.java +++ b/app/src/main/java/dnd/jon/spellbook/GlobalInfo.java @@ -2,13 +2,13 @@ class GlobalInfo { - static final Version VERSION = new Version(3,0,5); + static final Version VERSION = new Version(3,0,6); static final String VERSION_CODE = VERSION.string(); // We don't always want to show an update message // i.e. for updates that are pure bugfixes, the old message may be // more useful to users - static final Version UPDATE_LOG_VERSION = new Version(3,0,4); + static final Version UPDATE_LOG_VERSION = new Version(3,0,6); static final String UPDATE_LOG_CODE = UPDATE_LOG_VERSION.string(); static final int ANDROID_VERSION = android.os.Build.VERSION.SDK_INT; diff --git a/app/src/main/java/dnd/jon/spellbook/MainActivity.java b/app/src/main/java/dnd/jon/spellbook/MainActivity.java index 5bd41a7b..1dfa95a2 100755 --- a/app/src/main/java/dnd/jon/spellbook/MainActivity.java +++ b/app/src/main/java/dnd/jon/spellbook/MainActivity.java @@ -1247,8 +1247,8 @@ private void showUpdateDialog(boolean checkIfNecessary) { final boolean noCharacters = (characterNames == null) || characterNames.size() <= 0; final boolean toShow = !checkIfNecessary || !(prefs.contains(key) || noCharacters); if (toShow) { - final int titleID = string.update_03_00_04_title; - final int descriptionID = string.update_03_00_04_description; + final int titleID = string.update_03_00_06_title; + final int descriptionID = string.update_03_00_06_description; final Runnable onDismissAction = () -> { final SharedPreferences.Editor editor = prefs.edit(); editor.putBoolean(key, true).apply(); diff --git a/app/src/main/java/dnd/jon/spellbook/Source.java b/app/src/main/java/dnd/jon/spellbook/Source.java index db51ac1c..fb223261 100755 --- a/app/src/main/java/dnd/jon/spellbook/Source.java +++ b/app/src/main/java/dnd/jon/spellbook/Source.java @@ -27,7 +27,7 @@ public class Source implements NameDisplayable { static final Source FIZBANS_TOD = new Source(R.string.ftd_name, R.string.ftd_code, "Fizban's Treasury of Dragons", "FTD", false); static final Source STRIXHAVEN_COC = new Source(R.string.scc_name, R.string.scc_code, "Strixhaven: A Curriculum of Chaos", "SCC", false); static final Source ASTRAL_AG = new Source(R.string.aag_name, R.string.aag_code, "Astral Adventurer's Guide", "AAG", false); - //GUILDMASTERS_GTR(9, R.string.ggr_name, R.string.ggr_code, "Guildmaster's Guide to Ravnica", "GGR", false); + static final Source GUILDMASTERS_GTR = new Source(R.string.ggr_name, R.string.ggr_code, "Guildmaster's Guide to Ravnica", "GGR", false); // Constructor private Source(int value, int displayNameID, int codeID, String internalName, String internalCode, boolean core, boolean created) { diff --git a/app/src/main/java/dnd/jon/spellbook/Spellbook.java b/app/src/main/java/dnd/jon/spellbook/Spellbook.java index 67d9588c..3b3582a3 100755 --- a/app/src/main/java/dnd/jon/spellbook/Spellbook.java +++ b/app/src/main/java/dnd/jon/spellbook/Spellbook.java @@ -21,9 +21,10 @@ class Spellbook { static final Version V_2_13_0 = new Version(2, 13 ,0); static final Version V_3_0_0 = new Version(3, 0, 0); static final Version V_3_0_4 = new Version(3,0,4); + static final Version V_3_0_6 = new Version(3, 0, 6); - static final Version[] VERSIONS = { V_2_0_0, V_2_10_0, V_2_11_0, V_2_11_0, V_2_12_0, V_2_13_0, - V_3_0_4 }; + //static final Version[] VERSIONS = { V_2_0_0, V_2_10_0, V_2_11_0, V_2_11_0, V_2_12_0, V_2_13_0, + // V_3_0_4, V_3_0_6 }; static private final Map> SOURCES_NEW_IN_VERSION = new HashMap>() {{ put(V_2_0_0, Arrays.asList(Source.PLAYERS_HANDBOOK, Source.XANATHARS_GTE, Source.SWORD_COAST_AG)); put(V_2_10_0, Arrays.asList(Source.TASHAS_COE)); @@ -31,6 +32,7 @@ class Spellbook { put(V_2_12_0, Arrays.asList(Source.FIZBANS_TOD)); put(V_2_13_0, Arrays.asList(Source.STRIXHAVEN_COC)); put(V_3_0_4, Arrays.asList(Source.ASTRAL_AG)); + put(V_3_0_6, Arrays.asList(Source.GUILDMASTERS_GTR)); }}; static Collection newSourcesForVersion(Version version) { diff --git a/app/src/main/java/dnd/jon/spellbook/Subclass.java b/app/src/main/java/dnd/jon/spellbook/Subclass.java index 7855bef5..5809999e 100755 --- a/app/src/main/java/dnd/jon/spellbook/Subclass.java +++ b/app/src/main/java/dnd/jon/spellbook/Subclass.java @@ -24,7 +24,8 @@ enum Subclass { ARCANE_TRICKSTER(15, "Arcane Trickster"), CLOCKWORK_SOUL(16, "Clockwork Soul"), ABERRANT_MIND(17, "Aberrant Mind"), - DIVINE_SOUL(18, "Divine Soul"); + DIVINE_SOUL(18, "Divine Soul"), + DIMIR_OPERATIVE(19, "Dimir Operative"); private final int value; private final String displayName; diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index e1b815d5..605d0a00 100755 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -391,6 +391,8 @@ O grimório foi atualizado com os seguintes novos recursos de feitiços:\n\n\u2022A rastreador de slot de feitiço para acompanhar os slots de feitiço de cada personagem\n\n\u2022Novas opções de interface, que pode ser controlado em Configurações no menu à esquerda\n\n\u2022A capacidade de copiar, exportar e importar perfis de caracteres no formato JSON\n\nSe você gostou mais do layout anterior do que o novo, definir todas as opções (duas no telefone, uma no tablet) para \"Gaveta lateral\" nas configurações Atualização da versão 3.0.4 Esta atualização adiciona novamente os feitiços do Guia do Aventureiro Astral, que foram removidos por engano na v3.0.0.\n\nAlém disso, existem algumas pequenas correções de bugs. + Atualização da versão 3.0.4 + O livro de feitiços foi atualizado para incluir o feitiço do Guia do Mestre da Guilda para Ravnica.\n\nUm erro no conteúdo de Parede de Luz foi corrigido. Renomear diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 26803556..52f4166e 100755 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -309,7 +309,7 @@ Lost Laboratory of Kwalish Rime of the Frostmaiden Explorer\'s Guide to Wildemount - Guildmaster\'s Guide to Wildemount + Guildmaster\'s Guide to Ravnica Fizban\'s Treasury of Dragons Strixhaven: A Curriculum of Chaos Astral Adventurer\'s Guide @@ -392,6 +392,8 @@ The spellbook has been updated with the following new spell features:\n\n\u2022A spell slot tracker to keep track of each character\'s spell slots\n\n\u2022New UI options, which can be controlled from the Settings in the left menu\n\n\u2022The ability to copy, export, and import character profiles in JSON format\n\nIf you liked the previous layout better than the new one, set all options (two on phone, one on tablet) to \"Side drawer\" in the settings Version 3.0.4 update This update re-adds spells from the Astral Adventurer\'s Guide, which were mistakenly removed in v3.0.0.\n\nAdditionally, there are some small bugfixes. + Version 3.0.6 update + The spellbook has been updated to include the spell from the Guildmaster\'s Guide to Ravnica.\n\nA mistake in the content of Wall of Light has been corrected. Rename