diff --git a/IWantToHeal-Thor-v1.0.51.apk b/IWantToHeal-Thor-v1.0.51.apk new file mode 100644 index 0000000..236df01 Binary files /dev/null and b/IWantToHeal-Thor-v1.0.51.apk differ diff --git a/android/app/build.gradle b/android/app/build.gradle index 9cc0cd1..4ef0881 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -7,8 +7,8 @@ android { applicationId "com.warren.iwanttoheal" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 69 - versionName "1.0.50" + versionCode 70 + versionName "1.0.51" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" aaptOptions { // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. diff --git a/src/App.css b/src/App.css index d37b9fa..0d95640 100644 --- a/src/App.css +++ b/src/App.css @@ -621,6 +621,7 @@ textarea:focus-visible, min-height: 120px; outline: 2px solid #3a3944; padding: 14px; + position: relative; } .dual-top-member.selected { @@ -5254,6 +5255,7 @@ h2 { .member-health .health-text { color: var(--ink); + display: none; font-family: 'Press Start 2P', monospace; font-size: 7px; font-style: normal; @@ -5302,6 +5304,7 @@ h2 { inset: 0; pointer-events: none; position: absolute; + z-index: 3; } .floating-heal { diff --git a/src/components/CombatScreen.tsx b/src/components/CombatScreen.tsx index e7c8ca5..4ccf468 100644 --- a/src/components/CombatScreen.tsx +++ b/src/components/CombatScreen.tsx @@ -1375,6 +1375,7 @@ export function CombatScreen({ encounterIndex, encounterCount: encounters.length, party, + floatingTexts, partySize: dungeon.partySize, selectedId, log, @@ -1430,6 +1431,7 @@ export function CombatScreen({ selectedId, spells, freeCastReady, + floatingTexts, roguelikeUpgrades, speedMultiplier, status, diff --git a/src/components/PvpRoguelikeScreen.tsx b/src/components/PvpRoguelikeScreen.tsx index 9bb19c0..2801656 100644 --- a/src/components/PvpRoguelikeScreen.tsx +++ b/src/components/PvpRoguelikeScreen.tsx @@ -1212,6 +1212,9 @@ export function PvPRoguelikeScreen({ encounterIndex, encounterCount: encounters.length, party: playerSide.party, + floatingTexts: floatingTexts + .filter((entry) => entry.side === 'player') + .map(({ id, memberId, value }) => ({ id, memberId, value })), partySize: playerSide.party.length, selectedId, log, @@ -1243,6 +1246,7 @@ export function PvPRoguelikeScreen({ encounter.maxHealth, encounterIndex, encounters.length, + floatingTexts, gameClass.resourceName, lastDevice, log, diff --git a/src/dualScreen.tsx b/src/dualScreen.tsx index ff7380e..cac1c4d 100644 --- a/src/dualScreen.tsx +++ b/src/dualScreen.tsx @@ -39,6 +39,11 @@ export type DualScreenCombatState = { encounterIndex: number encounterCount: number party: PartyMember[] + floatingTexts: Array<{ + id: number + memberId: string + value: number + }> partySize: number selectedId: string log: CombatLogEntry[] @@ -599,6 +604,11 @@ export function DualScreenTopCombat({ )} {Math.ceil(member.health)} / {member.maxHealth} +
{state.directPartyTargeting && targetBinding && (