diff --git a/app/src/main/java/com/pixelized/rplexicon/business/DiceThrowUseCase.kt b/app/src/main/java/com/pixelized/rplexicon/business/DiceThrowUseCase.kt index c683790..ff3c84f 100644 --- a/app/src/main/java/com/pixelized/rplexicon/business/DiceThrowUseCase.kt +++ b/app/src/main/java/com/pixelized/rplexicon/business/DiceThrowUseCase.kt @@ -28,6 +28,7 @@ import com.pixelized.rplexicon.utilitary.extentions.local.emphasis import com.pixelized.rplexicon.utilitary.extentions.local.fail import com.pixelized.rplexicon.utilitary.extentions.local.isBrutalCritical import com.pixelized.rplexicon.utilitary.extentions.local.isCritical +import com.pixelized.rplexicon.utilitary.extentions.local.isImprovedCritical import com.pixelized.rplexicon.utilitary.extentions.local.isSavageAttacks import com.pixelized.rplexicon.utilitary.extentions.local.primary import com.pixelized.rplexicon.utilitary.extentions.local.secondary @@ -738,7 +739,7 @@ class DiceThrowUseCase @Inject constructor( val emphasis = status[ability].emphasis // compute the amount of main dice to throw. - val amount = if (status.isCritical) { + val amount = if (status[ability].isCritical) { diceThrow?.dice?.count?.times(2)?.let { if (ability == Property.PHYSICAL_MELEE_DAMAGE && status.isSavageAttacks) it.plus( 1 @@ -774,9 +775,17 @@ class DiceThrowUseCase @Inject constructor( // check for flat dice bonus (ex: healing potion 2d4 + 2) val relatedFlatBonus = diceThrow.flatBonus(name = action) - // compute the final roll result + // if the roll can be a critical roll check if the roll is one. + val isCriticalSuccess = when { + canMakeCriticalRoll && result.value == 20 -> true + canMakeCriticalRoll && result.value == 19 && status.isImprovedCritical -> true + else -> false + } + + // compute the roll result. by default display a sum of everything except on a critical val rollResult = when { - canMakeCriticalRoll && result.value == 20 -> "20" + isCriticalSuccess && result.value == 20 -> "20" + isCriticalSuccess && result.value == 19 -> "19" canMakeCriticalRoll && result.value == 1 -> "1" else -> "${allValue.sum()}" } @@ -785,7 +794,7 @@ class DiceThrowUseCase @Inject constructor( return DiceThrowResult( dice = RollDiceUio( icon = diceThrow?.dice?.icon ?: R.drawable.ic_d20_24, - isCriticalSuccess = canMakeCriticalRoll && result.value == 20, + isCriticalSuccess = isCriticalSuccess, isCriticalFailure = canMakeCriticalRoll && result.value == 1, result = rollResult, ), @@ -794,7 +803,7 @@ class DiceThrowUseCase @Inject constructor( title = titleString.uppercase(), highlight = action.uppercase(), face = diceThrow?.dice?.faces ?: 20, - isCriticalSuccess = canMakeCriticalRoll && result.value == 20, + isCriticalSuccess = isCriticalSuccess, isCriticalFailure = canMakeCriticalRoll && result.value == 1, roll = allValue.toLabel(), result = rollResult, @@ -1070,7 +1079,7 @@ class DiceThrowUseCase @Inject constructor( return this?.flatMap { status -> status.dices.map { dice -> val localRoll = roll( - amount = if (this@ThrowScope.status.isCritical) dice.count * 2 else dice.count, + amount = if (isCritical) dice.count * 2 else dice.count, faces = dice.faces, advantage = dice.advantage, disadvantage = dice.disadvantage, diff --git a/app/src/main/java/com/pixelized/rplexicon/utilitary/ImageCache.kt b/app/src/main/java/com/pixelized/rplexicon/utilitary/ImageCache.kt index f280094..ea254be 100644 --- a/app/src/main/java/com/pixelized/rplexicon/utilitary/ImageCache.kt +++ b/app/src/main/java/com/pixelized/rplexicon/utilitary/ImageCache.kt @@ -224,7 +224,65 @@ object ImageCache { "https://bg3.wiki/w/images/f/f7/Magic_Initiate_Bard_Icon.webp" to R.drawable.icbg_magic_initiate_bard, "https://bg3.wiki/w/images/f/f9/Mage_Hand_Icon.webp" to R.drawable.icbg_mage_hand, "https://bg3.wiki/w/images/f/fb/Camp_Rich_B_Purple_Unfaded.png" to R.drawable.icbg_camp_rich_b_purple_unfaded, + "https://bg3.wiki/w/images/b/ba/Rakish_Audacity_Icon.webp" to R.drawable.icbg_rakish_audacity, + "https://bg3.wiki/w/images/4/4d/Action_Surge_Icon.webp" to R.drawable.icbg_action_surge_icon, + "https://bg3.wiki/w/images/a/a6/Lever_Handle_Unfaded_Icon.png" to R.drawable.icbg_lever_handle_unfaded_icon, + "https://bg3.wiki/w/images/a/a5/Pouch_A_Unfaded_Icon.webp" to R.drawable.icbg_pouch_a_unfaded_icon, + "https://bg3.wiki/w/images/8/8f/Knife_A_Unfaded_Icon.png" to R.drawable.icbg_knife_a_unfaded_icon, + "https://bg3.wiki/w/images/7/78/Studded_Leather_Unfaded_Icon.png" to R.drawable.icbg_studded_leather_unfaded_icon, + "https://bg3.wiki/w/images/3/34/Book_Parchment_A_Unfaded.png" to R.drawable.icbg_book_parchment_a_unfaded, + "https://bg3.wiki/w/images/2/21/Book_Note_H_Unfaded.png" to R.drawable.icbg_book_note_h_unfaded, + "https://bg3.wiki/w/images/7/7b/Book_Grimoire_Unfaded_Icon.png" to R.drawable.icbg_book_grimoire_unfaded_icon, + "https://bg3.wiki/w/images/0/02/Gnome_Cunning_Icon.webp" to R.drawable.icbg_gnome_cunning_icon, + "https://bg3.wiki/w/images/d/d2/Training_in_War_and_Song_Icon.webp" to R.drawable.icbg_training_in_war_and_song_icon, + "https://bg3.wiki/w/images/e/ed/Arcane_Recovery_Icon.webp" to R.drawable.icbg_arcane_recovery_icon, + "https://bg3.wiki/w/images/8/80/Bladesong_Icon.webp" to R.drawable.icbg_bladesong_icon, + "https://bg3.wiki/w/images/f/fd/Booming_Blade_Icon.webp" to R.drawable.icbg_booming_blade_icon, + "https://bg3.wiki/w/images/2/23/Fire_Bolt_Icon.webp" to R.drawable.icbg_fire_bolt_icon, + "https://bg3.wiki/w/images/7/7f/Command_Halt_Icon.webp" to R.drawable.icbg_command_halt_icon, + "https://bg3.wiki/w/images/0/0d/Mage_Armour_Icon.webp" to R.drawable.icbg_mage_armour_icon, + "https://bg3.wiki/w/images/1/17/Ice_Knife_Icon.webp" to R.drawable.icbg_ice_knife_icon, + "https://bg3.wiki/w/images/8/8d/Disguise_Self_Icon.webp" to R.drawable.icbg_disguise_self_icon, + "https://bg3.wiki/w/images/d/d4/Magic_Missile_Icon.webp" to R.drawable.icbg_magic_missile_icon, + "https://bg3.wiki/w/images/6/6e/Shadow_Blade_Icon.webp" to R.drawable.icbg_shadow_blade_icon, + "https://bg3.wiki/w/images/b/b9/Wild_Shape_Icon.webp" to R.drawable.icbg_wild_shape_icon, + "https://bg3.wiki/w/images/c/c3/See_Invisibility_Icon.webp" to R.drawable.icbg_see_invisibility_icon, + "https://bg3.wiki/w/images/5/50/Counterspell_Icon.webp" to R.drawable.icbg_counterspell_icon, + "https://bg3.wiki/w/images/0/0a/Unshackling_Strike_Icon.webp" to R.drawable.icbg_unshackling_strike_icon, + "https://bg3.wiki/w/images/7/7f/Remove_Curse_Icon.webp" to R.drawable.icbg_remove_curse_icon, + "https://bg3.wiki/w/images/4/46/Aberrant_Shape_Icon.webp" to R.drawable.icbg_aberrant_shape_icon, + "https://bg3.wiki/w/images/f/f6/Polymorph_Icon.webp" to R.drawable.icbg_polymorph_icon, + "https://bg3.wiki/w/images/8/8b/Dueller%27s_Enthusiasm_Icon.webp" to R.drawable.icbg_dueller_enthusiasm_icon, + "https://bg3.wiki/w/images/f/ff/Camp_Circus_B_Unfaded_Icon.webp" to R.drawable.icbg_camp_circus_b_unfaded_icon, + "https://bg3.wiki/w/images/f/f2/Camp_Aristocrat_Unfaded_Icon.webp" to R.drawable.icbg_camp_aristocrat_unfaded_icon, + "https://bg3.wiki/w/images/1/1d/Camp_Rich_C_Red_Unfaded_Icon.webp" to R.drawable.icbg_camp_rich_c_red_unfaded_icon, + "https://bg3.wiki/w/images/8/85/Strange_Chunk_of_Amber_Unfaded_Icon.png" to R.drawable.icbg_strange_chunk_of_amber_unfaded_icon, + "https://bg3.wiki/w/images/7/72/Toy_Block_A_Unfaded_Icon.png" to R.drawable.icbg_toy_block_a_unfaded_icon, + "https://bg3.wiki/w/images/f/f5/Keepsake_Locket_A_Unfaded.png" to R.drawable.icbg_keepsake_locket_a_unfaded, + "https://bg3.wiki/w/images/4/4e/Crystal_Fluorite_Shard_Unfaded.png" to R.drawable.icbg_crystal_fluorite_shard_unfaded, + "https://bg3.wiki/w/images/1/1b/Moondrop_Pendant_Unfaded.png" to R.drawable.icbg_moondrop_pendant_unfaded, + "https://bg3.wiki/w/images/4/47/Gortash%27s_Netherstone_Unfaded_Icon.png" to R.drawable.icbg_gortash_netherstone_unfaded_icon, "https://bg3.wiki/w/images/thumb/0/0a/Unshackling_Strike_Icon.webp/144px-Unshackling_Strike_Icon.webp.png" to R.drawable.icbg_unshackling_strike, + "https://bg3.wiki/w/images/thumb/e/e9/Poisoned_Condition_Icon.webp/45px-Poisoned_Condition_Icon.webp.png" to R.drawable.icbg_poisoned_condition_icon, + "https://bg3.wiki/w/images/thumb/0/09/Paralysed_Condition_Icon.webp/45px-Paralysed_Condition_Icon.webp.png" to R.drawable.icbg_paralysed_condition_icon, + "https://bg3.wiki/w/images/thumb/8/8e/Prone_Condition_Icon.webp/38px-Prone_Condition_Icon.webp.png" to R.drawable.icbg_prone_condition_icon, + "https://bg3.wiki/w/images/thumb/6/60/Grappled_Condition_Icon.webp/45px-Grappled_Condition_Icon.webp.png" to R.drawable.icbg_grappled_condition_icon, + "https://bg3.wiki/w/images/thumb/7/70/Blinded_Condition_Icon.webp/38px-Blinded_Condition_Icon.webp.png" to R.drawable.icbg_blinded_condition_icon, + "https://bg3.wiki/w/images/thumb/4/47/Charmed_Condition_Icon.webp/38px-Charmed_Condition_Icon.webp.png" to R.drawable.icbg_charmed_condition_icon, + "https://bg3.wiki/w/images/thumb/7/75/Frightened_Condition_Icon.webp/38px-Frightened_Condition_Icon.webp.png" to R.drawable.icbg_frightened_condition_icon, + "https://bg3.wiki/w/images/thumb/2/20/Restrained_Condition_Icon.webp/45px-Restrained_Condition_Icon.webp.png" to R.drawable.icbg_restrained_condition_icon, + "https://bg3.wiki/w/images/thumb/3/32/Stunned_Condition_Icon.webp/45px-Stunned_Condition_Icon.webp.png" to R.drawable.icbg_stunned_condition_icon, + "https://bg3.wiki/w/images/thumb/9/98/Incapacitated_Condition_Icon.webp/38px-Incapacitated_Condition_Icon.webp.png" to R.drawable.icbg_incapacitated_condition_icon, + "https://bg3.wiki/w/images/thumb/a/a6/Unconscious_Condition_Icon.webp/64px-Unconscious_Condition_Icon.webp.png?20231130005748" to R.drawable.icbg_unconscious_condition_icon, + "https://bg3.wiki/w/images/thumb/d/d7/Invisible_Condition_Icon.webp/45px-Invisible_Condition_Icon.webp.png" to R.drawable.icbg_invisible_condition_icon, + "https://bg3.wiki/w/images/thumb/c/c0/Petrified_Condition_Icon.webp/45px-Petrified_Condition_Icon.webp.png" to R.drawable.icbg_petrified_condition_icon, + "https://bg3.wiki/w/images/thumb/2/2e/Background_Sage_Icon.png/180px-Background_Sage_Icon.png" to R.drawable.icbg_background_sage_icon, + "https://static.wikia.nocookie.net/witcher/images/3/3d/Tw3_weapon_repair_kit_masters.png/revision/latest?cb=20160410121438" to R.drawable.tw_weapon_repair_kit_masters, + "https://static.wikia.nocookie.net/witcher/images/c/c3/Tw3_concealment_kit.png/revision/latest?cb=20170416212412" to R.drawable.tw_concealment_kit, + "https://static.wikia.nocookie.net/forgottenrealms/images/e/ee/Forgery_Kit.png/revision/latest?cb=20231120043151" to R.drawable.tw_forgery_kit, + "https://static.wikia.nocookie.net/witcher/images/1/1d/Tw3_cloth_doll.png/revision/latest?cb=20160519181719" to R.drawable.tw_cloth_doll, + "https://static.wikia.nocookie.net/gensin-impact/images/e/ee/Item_Sentry%27s_Wooden_Whistle.png/revision/latest?cb=20240826125031" to R.drawable.tw_item_sentry_wooden_whistle, + "https://s3.eu-west-2.amazonaws.com/www.partynutters.com/img/va093-frog-toad-deluxe-venetian-mask.jpg" to R.drawable.frog_toad_deluxe_venetian_mask, "https://drive.google.com/uc?export=view&id=15D3Jum_X_nw4tWfbaLbEvhTQQbmYCMwf" to R.drawable.ic_dice_advantage, "https://drive.google.com/uc?export=view&id=17MrL-HAlpqPI5c6APjz5arGYrfma42on" to R.drawable.ic_drive_orc_mask, "https://drive.google.com/uc?export=view&id=1AeSHg792EwVbkjCNjJaqzC4v0uNj9NRn" to R.drawable.ic_drive_fire_starter, @@ -247,9 +305,13 @@ object ImageCache { "https://drive.google.com/uc?export=view&id=1hPiuG7LQc4KVqBfytAXlo0QVLpWwoKdm" to R.drawable.ic_drive_copper_coin_pile, "https://drive.google.com/uc?export=view&id=1N73d_elaDPND3TVN2SgmBGOStSuY1aB9" to R.drawable.ic_drive_silver_coin_pile, "https://drive.google.com/uc?export=view&id=1N-Rp4d8gTctHE5ST2qzYmT-nqoX6iyjg" to R.drawable.ic_drive_electrum_coin_pile, - "https://drive.google.com/uc?export=view&id=1sKiDdIakpe1shE0zi-Ip0CineEe1M2H2" to R.drawable.ic_drive_gold_coin_pile + "https://drive.google.com/uc?export=view&id=1sKiDdIakpe1shE0zi-Ip0CineEe1M2H2" to R.drawable.ic_drive_gold_coin_pile, + "https://drive.google.com/uc?export=view&id=1Sk2-3paCI59ET9k28HSuZaQVcGb90-A_" to R.drawable.icbg_deafened, + "https://drive.google.com/uc?export=view&id=1Amdb2gHrS6SCOa34JlQijWi0u25z62QD" to R.drawable.icbg_green_flame_sword, ) + private val missingUri = mutableSetOf() + fun cache(uri: Uri?): ImageUio = when (uri) { null -> { R.drawable.icbg_generic_darkness_icon.toImage() @@ -261,8 +323,12 @@ object ImageCache { } else -> { - Log.v("ImageCache", "$uri") - uri.toImage() + uri.also { + if (missingUri.contains(it).not()) { + Log.v("ImageCache", "$it") + } + missingUri.add(it) + }.toImage() } } } diff --git a/app/src/main/java/com/pixelized/rplexicon/utilitary/extentions/local/AlterationEx.kt b/app/src/main/java/com/pixelized/rplexicon/utilitary/extentions/local/AlterationEx.kt index 13cc816..2f9f1da 100644 --- a/app/src/main/java/com/pixelized/rplexicon/utilitary/extentions/local/AlterationEx.kt +++ b/app/src/main/java/com/pixelized/rplexicon/utilitary/extentions/local/AlterationEx.kt @@ -37,22 +37,34 @@ val List?.mastery: Int } } ?: 0 -val List?.fail: Boolean - get() = this?.any { it.fail } ?: false - val List?.passivesBonus: Int get() = (if (advantage) 5 else 0) - (if (disadvantage) 5 else 0) -// force a roll to hit a 20 +val List?.isCritical: Boolean + get() = this?.any { it.name == CRITIQUE } == true + +// Force a roll to hit a 1 +val List?.fail: Boolean + get() = this?.any { it.fail } ?: false + +// Force a roll to hit a 20 val List?.critical: Boolean get() = this?.any { it.critical } ?: false +// Add a dice to a critical roll. val Map>.isSavageAttacks: Boolean - get() = this[Property.PHYSICAL_MELEE_DAMAGE]?.any { it.name == "Attaques sauvages" } == true + get() = this[Property.PHYSICAL_MELEE_DAMAGE]?.any { it.name == SAVAGE_ATTACK } == true +// Add a dice to a critical roll. val Map>.isBrutalCritical: Boolean - get() = this[Property.PHYSICAL_MELEE_DAMAGE]?.any { it.name == "Critique brutal" } == true + get() = this[Property.PHYSICAL_MELEE_DAMAGE]?.any { it.name == BRUTAL_CRITICAL } == true -// for damage roll, previous attack roll was critical -val Map>.isCritical: Boolean - get() = this[Property.PHYSICAL_MELEE_DAMAGE]?.any { it.name == "Critique" } == true +// for attack roll, can crit on an 19 or 20 +val Map>.isImprovedCritical: Boolean + get() = this[Property.PHYSICAL_MELEE_ATTACK]?.any { it.name == IMPROVED_CRITICAL } == true || + this[Property.PHYSICAL_RANGE_ATTACK]?.any { it.name == IMPROVED_CRITICAL } == true + +private const val CRITIQUE = "Critique" +private const val SAVAGE_ATTACK = "Attaques sauvages" +private const val BRUTAL_CRITICAL = "Critique brutal" +private const val IMPROVED_CRITICAL = "Critique amélioré" \ No newline at end of file diff --git a/app/src/main/res/drawable/frog_toad_deluxe_venetian_mask.webp b/app/src/main/res/drawable/frog_toad_deluxe_venetian_mask.webp new file mode 100644 index 0000000..cfe8bc6 Binary files /dev/null and b/app/src/main/res/drawable/frog_toad_deluxe_venetian_mask.webp differ diff --git a/app/src/main/res/drawable/icbg_aberrant_shape_icon.webp b/app/src/main/res/drawable/icbg_aberrant_shape_icon.webp new file mode 100644 index 0000000..828640e Binary files /dev/null and b/app/src/main/res/drawable/icbg_aberrant_shape_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_action_surge_icon.webp b/app/src/main/res/drawable/icbg_action_surge_icon.webp new file mode 100644 index 0000000..df282fa Binary files /dev/null and b/app/src/main/res/drawable/icbg_action_surge_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_arcane_recovery_icon.webp b/app/src/main/res/drawable/icbg_arcane_recovery_icon.webp new file mode 100644 index 0000000..1b208ac Binary files /dev/null and b/app/src/main/res/drawable/icbg_arcane_recovery_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_background_sage_icon.webp b/app/src/main/res/drawable/icbg_background_sage_icon.webp new file mode 100644 index 0000000..697ee23 Binary files /dev/null and b/app/src/main/res/drawable/icbg_background_sage_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_bladesong_icon.webp b/app/src/main/res/drawable/icbg_bladesong_icon.webp new file mode 100644 index 0000000..27b392e Binary files /dev/null and b/app/src/main/res/drawable/icbg_bladesong_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_blinded_condition_icon.webp b/app/src/main/res/drawable/icbg_blinded_condition_icon.webp new file mode 100644 index 0000000..1b16324 Binary files /dev/null and b/app/src/main/res/drawable/icbg_blinded_condition_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_book_grimoire_unfaded_icon.webp b/app/src/main/res/drawable/icbg_book_grimoire_unfaded_icon.webp new file mode 100644 index 0000000..862d2e7 Binary files /dev/null and b/app/src/main/res/drawable/icbg_book_grimoire_unfaded_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_book_note_h_unfaded.webp b/app/src/main/res/drawable/icbg_book_note_h_unfaded.webp new file mode 100644 index 0000000..543fd68 Binary files /dev/null and b/app/src/main/res/drawable/icbg_book_note_h_unfaded.webp differ diff --git a/app/src/main/res/drawable/icbg_book_parchment_a_unfaded.webp b/app/src/main/res/drawable/icbg_book_parchment_a_unfaded.webp new file mode 100644 index 0000000..68ff5d8 Binary files /dev/null and b/app/src/main/res/drawable/icbg_book_parchment_a_unfaded.webp differ diff --git a/app/src/main/res/drawable/icbg_booming_blade_icon.webp b/app/src/main/res/drawable/icbg_booming_blade_icon.webp new file mode 100644 index 0000000..c598cc5 Binary files /dev/null and b/app/src/main/res/drawable/icbg_booming_blade_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_camp_aristocrat_unfaded_icon.webp b/app/src/main/res/drawable/icbg_camp_aristocrat_unfaded_icon.webp new file mode 100644 index 0000000..0a25828 Binary files /dev/null and b/app/src/main/res/drawable/icbg_camp_aristocrat_unfaded_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_camp_circus_b_unfaded_icon.webp b/app/src/main/res/drawable/icbg_camp_circus_b_unfaded_icon.webp new file mode 100644 index 0000000..a835d98 Binary files /dev/null and b/app/src/main/res/drawable/icbg_camp_circus_b_unfaded_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_camp_rich_c_red_unfaded_icon.webp b/app/src/main/res/drawable/icbg_camp_rich_c_red_unfaded_icon.webp new file mode 100644 index 0000000..cdf1d60 Binary files /dev/null and b/app/src/main/res/drawable/icbg_camp_rich_c_red_unfaded_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_charmed_condition_icon.webp b/app/src/main/res/drawable/icbg_charmed_condition_icon.webp new file mode 100644 index 0000000..0343d88 Binary files /dev/null and b/app/src/main/res/drawable/icbg_charmed_condition_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_command_halt_icon.webp b/app/src/main/res/drawable/icbg_command_halt_icon.webp new file mode 100644 index 0000000..9b304eb Binary files /dev/null and b/app/src/main/res/drawable/icbg_command_halt_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_counterspell_icon.webp b/app/src/main/res/drawable/icbg_counterspell_icon.webp new file mode 100644 index 0000000..6d0fb5d Binary files /dev/null and b/app/src/main/res/drawable/icbg_counterspell_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_crystal_fluorite_shard_unfaded.webp b/app/src/main/res/drawable/icbg_crystal_fluorite_shard_unfaded.webp new file mode 100644 index 0000000..4a5066b Binary files /dev/null and b/app/src/main/res/drawable/icbg_crystal_fluorite_shard_unfaded.webp differ diff --git a/app/src/main/res/drawable/icbg_deafened.webp b/app/src/main/res/drawable/icbg_deafened.webp new file mode 100644 index 0000000..9bda63a Binary files /dev/null and b/app/src/main/res/drawable/icbg_deafened.webp differ diff --git a/app/src/main/res/drawable/icbg_disguise_self_icon.webp b/app/src/main/res/drawable/icbg_disguise_self_icon.webp new file mode 100644 index 0000000..2ae4e8c Binary files /dev/null and b/app/src/main/res/drawable/icbg_disguise_self_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_dueller_enthusiasm_icon.webp b/app/src/main/res/drawable/icbg_dueller_enthusiasm_icon.webp new file mode 100644 index 0000000..4c3443c Binary files /dev/null and b/app/src/main/res/drawable/icbg_dueller_enthusiasm_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_fire_bolt_icon.webp b/app/src/main/res/drawable/icbg_fire_bolt_icon.webp new file mode 100644 index 0000000..8bba6c3 Binary files /dev/null and b/app/src/main/res/drawable/icbg_fire_bolt_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_frightened_condition_icon.webp b/app/src/main/res/drawable/icbg_frightened_condition_icon.webp new file mode 100644 index 0000000..0fade62 Binary files /dev/null and b/app/src/main/res/drawable/icbg_frightened_condition_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_gnome_cunning_icon.webp b/app/src/main/res/drawable/icbg_gnome_cunning_icon.webp new file mode 100644 index 0000000..9c570c8 Binary files /dev/null and b/app/src/main/res/drawable/icbg_gnome_cunning_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_gortash_netherstone_unfaded_icon.webp b/app/src/main/res/drawable/icbg_gortash_netherstone_unfaded_icon.webp new file mode 100644 index 0000000..7d83e3a Binary files /dev/null and b/app/src/main/res/drawable/icbg_gortash_netherstone_unfaded_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_grappled_condition_icon.webp b/app/src/main/res/drawable/icbg_grappled_condition_icon.webp new file mode 100644 index 0000000..75953f0 Binary files /dev/null and b/app/src/main/res/drawable/icbg_grappled_condition_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_green_flame_sword.webp b/app/src/main/res/drawable/icbg_green_flame_sword.webp new file mode 100644 index 0000000..4078400 Binary files /dev/null and b/app/src/main/res/drawable/icbg_green_flame_sword.webp differ diff --git a/app/src/main/res/drawable/icbg_ice_knife_icon.webp b/app/src/main/res/drawable/icbg_ice_knife_icon.webp new file mode 100644 index 0000000..06d7394 Binary files /dev/null and b/app/src/main/res/drawable/icbg_ice_knife_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_incapacitated_condition_icon.webp b/app/src/main/res/drawable/icbg_incapacitated_condition_icon.webp new file mode 100644 index 0000000..4240326 Binary files /dev/null and b/app/src/main/res/drawable/icbg_incapacitated_condition_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_invisible_condition_icon.webp b/app/src/main/res/drawable/icbg_invisible_condition_icon.webp new file mode 100644 index 0000000..f6b4be1 Binary files /dev/null and b/app/src/main/res/drawable/icbg_invisible_condition_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_keepsake_locket_a_unfaded.webp b/app/src/main/res/drawable/icbg_keepsake_locket_a_unfaded.webp new file mode 100644 index 0000000..cfe889c Binary files /dev/null and b/app/src/main/res/drawable/icbg_keepsake_locket_a_unfaded.webp differ diff --git a/app/src/main/res/drawable/icbg_knife_a_unfaded_icon.webp b/app/src/main/res/drawable/icbg_knife_a_unfaded_icon.webp new file mode 100644 index 0000000..b542d59 Binary files /dev/null and b/app/src/main/res/drawable/icbg_knife_a_unfaded_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_lever_handle_unfaded_icon.webp b/app/src/main/res/drawable/icbg_lever_handle_unfaded_icon.webp new file mode 100644 index 0000000..6c16e23 Binary files /dev/null and b/app/src/main/res/drawable/icbg_lever_handle_unfaded_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_mage_armour_icon.webp b/app/src/main/res/drawable/icbg_mage_armour_icon.webp new file mode 100644 index 0000000..aae8288 Binary files /dev/null and b/app/src/main/res/drawable/icbg_mage_armour_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_magic_missile_icon.webp b/app/src/main/res/drawable/icbg_magic_missile_icon.webp new file mode 100644 index 0000000..19063c4 Binary files /dev/null and b/app/src/main/res/drawable/icbg_magic_missile_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_moondrop_pendant_unfaded.webp b/app/src/main/res/drawable/icbg_moondrop_pendant_unfaded.webp new file mode 100644 index 0000000..05f1703 Binary files /dev/null and b/app/src/main/res/drawable/icbg_moondrop_pendant_unfaded.webp differ diff --git a/app/src/main/res/drawable/icbg_paralysed_condition_icon.webp b/app/src/main/res/drawable/icbg_paralysed_condition_icon.webp new file mode 100644 index 0000000..76522a3 Binary files /dev/null and b/app/src/main/res/drawable/icbg_paralysed_condition_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_petrified_condition_icon.webp b/app/src/main/res/drawable/icbg_petrified_condition_icon.webp new file mode 100644 index 0000000..2043c0c Binary files /dev/null and b/app/src/main/res/drawable/icbg_petrified_condition_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_poisoned_condition_icon.webp b/app/src/main/res/drawable/icbg_poisoned_condition_icon.webp new file mode 100644 index 0000000..8c9cd9b Binary files /dev/null and b/app/src/main/res/drawable/icbg_poisoned_condition_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_polymorph_icon.webp b/app/src/main/res/drawable/icbg_polymorph_icon.webp new file mode 100644 index 0000000..cdff626 Binary files /dev/null and b/app/src/main/res/drawable/icbg_polymorph_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_pouch_a_unfaded_icon.webp b/app/src/main/res/drawable/icbg_pouch_a_unfaded_icon.webp new file mode 100644 index 0000000..ba5660d Binary files /dev/null and b/app/src/main/res/drawable/icbg_pouch_a_unfaded_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_prone_condition_icon.webp b/app/src/main/res/drawable/icbg_prone_condition_icon.webp new file mode 100644 index 0000000..5d6cf9a Binary files /dev/null and b/app/src/main/res/drawable/icbg_prone_condition_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_rakish_audacity.webp b/app/src/main/res/drawable/icbg_rakish_audacity.webp new file mode 100644 index 0000000..b9f710b Binary files /dev/null and b/app/src/main/res/drawable/icbg_rakish_audacity.webp differ diff --git a/app/src/main/res/drawable/icbg_remove_curse_icon.webp b/app/src/main/res/drawable/icbg_remove_curse_icon.webp new file mode 100644 index 0000000..72a1fe5 Binary files /dev/null and b/app/src/main/res/drawable/icbg_remove_curse_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_restrained_condition_icon.webp b/app/src/main/res/drawable/icbg_restrained_condition_icon.webp new file mode 100644 index 0000000..62a199b Binary files /dev/null and b/app/src/main/res/drawable/icbg_restrained_condition_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_see_invisibility_icon.webp b/app/src/main/res/drawable/icbg_see_invisibility_icon.webp new file mode 100644 index 0000000..5bc08d7 Binary files /dev/null and b/app/src/main/res/drawable/icbg_see_invisibility_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_shadow_blade_icon.webp b/app/src/main/res/drawable/icbg_shadow_blade_icon.webp new file mode 100644 index 0000000..53e1cba Binary files /dev/null and b/app/src/main/res/drawable/icbg_shadow_blade_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_strange_chunk_of_amber_unfaded_icon.webp b/app/src/main/res/drawable/icbg_strange_chunk_of_amber_unfaded_icon.webp new file mode 100644 index 0000000..07d5786 Binary files /dev/null and b/app/src/main/res/drawable/icbg_strange_chunk_of_amber_unfaded_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_studded_leather_unfaded_icon.webp b/app/src/main/res/drawable/icbg_studded_leather_unfaded_icon.webp new file mode 100644 index 0000000..d6d12e7 Binary files /dev/null and b/app/src/main/res/drawable/icbg_studded_leather_unfaded_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_stunned_condition_icon.webp b/app/src/main/res/drawable/icbg_stunned_condition_icon.webp new file mode 100644 index 0000000..b32c1f4 Binary files /dev/null and b/app/src/main/res/drawable/icbg_stunned_condition_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_toy_block_a_unfaded_icon.webp b/app/src/main/res/drawable/icbg_toy_block_a_unfaded_icon.webp new file mode 100644 index 0000000..a6749be Binary files /dev/null and b/app/src/main/res/drawable/icbg_toy_block_a_unfaded_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_training_in_war_and_song_icon.webp b/app/src/main/res/drawable/icbg_training_in_war_and_song_icon.webp new file mode 100644 index 0000000..12c8b4e Binary files /dev/null and b/app/src/main/res/drawable/icbg_training_in_war_and_song_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_unconscious_condition_icon.webp b/app/src/main/res/drawable/icbg_unconscious_condition_icon.webp new file mode 100644 index 0000000..e2fde46 Binary files /dev/null and b/app/src/main/res/drawable/icbg_unconscious_condition_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_unshackling_strike_icon.webp b/app/src/main/res/drawable/icbg_unshackling_strike_icon.webp new file mode 100644 index 0000000..7632537 Binary files /dev/null and b/app/src/main/res/drawable/icbg_unshackling_strike_icon.webp differ diff --git a/app/src/main/res/drawable/icbg_wild_shape_icon.webp b/app/src/main/res/drawable/icbg_wild_shape_icon.webp new file mode 100644 index 0000000..d8f3340 Binary files /dev/null and b/app/src/main/res/drawable/icbg_wild_shape_icon.webp differ diff --git a/app/src/main/res/drawable/tw_cloth_doll.webp b/app/src/main/res/drawable/tw_cloth_doll.webp new file mode 100644 index 0000000..c13d385 Binary files /dev/null and b/app/src/main/res/drawable/tw_cloth_doll.webp differ diff --git a/app/src/main/res/drawable/tw_concealment_kit.webp b/app/src/main/res/drawable/tw_concealment_kit.webp new file mode 100644 index 0000000..8140e9e Binary files /dev/null and b/app/src/main/res/drawable/tw_concealment_kit.webp differ diff --git a/app/src/main/res/drawable/tw_forgery_kit.webp b/app/src/main/res/drawable/tw_forgery_kit.webp new file mode 100644 index 0000000..d4c5930 Binary files /dev/null and b/app/src/main/res/drawable/tw_forgery_kit.webp differ diff --git a/app/src/main/res/drawable/tw_item_sentry_wooden_whistle.webp b/app/src/main/res/drawable/tw_item_sentry_wooden_whistle.webp new file mode 100644 index 0000000..4c9ee4a Binary files /dev/null and b/app/src/main/res/drawable/tw_item_sentry_wooden_whistle.webp differ diff --git a/app/src/main/res/drawable/tw_weapon_repair_kit_masters.webp b/app/src/main/res/drawable/tw_weapon_repair_kit_masters.webp new file mode 100644 index 0000000..1439f4e Binary files /dev/null and b/app/src/main/res/drawable/tw_weapon_repair_kit_masters.webp differ