Android build v1.1.23
This commit is contained in:
@@ -305,7 +305,6 @@ function IWantToHeal1App({
|
||||
const characterLevel = profile?.character.level ?? 0
|
||||
const savedTier = tierOptions.find((candidate) => (
|
||||
candidate.droppedItemLevel === savedDifficulty?.droppedItemLevel
|
||||
&& characterLevel >= candidate.unlockLevel
|
||||
))
|
||||
if (savedTier) return savedTier
|
||||
for (let index = tierOptions.length - 1; index >= 0; index -= 1) {
|
||||
@@ -500,7 +499,7 @@ function IWantToHeal1App({
|
||||
|
||||
function dungeonEntries() {
|
||||
const difficulty = selectedDifficultyOption ?? selectedActivityOption?.difficulties[0]
|
||||
const locked = profile && difficulty ? profile.character.level < difficulty.unlockLevel : true
|
||||
const locked = !profile || !difficulty
|
||||
const entries: DungeonNavEntry[] = [
|
||||
{ kind: 'back' },
|
||||
]
|
||||
@@ -522,7 +521,7 @@ function IWantToHeal1App({
|
||||
entries.push({
|
||||
kind: 'activity',
|
||||
index,
|
||||
disabled: !profile || profile.character.level < candidateDifficulty.unlockLevel,
|
||||
disabled: !profile || !candidateDifficulty,
|
||||
})
|
||||
})
|
||||
entries.push(
|
||||
@@ -533,7 +532,7 @@ function IWantToHeal1App({
|
||||
entries.push({
|
||||
kind: 'tier',
|
||||
index,
|
||||
disabled: !profile || profile.character.level < difficultyOption.unlockLevel,
|
||||
disabled: !profile || !difficultyOption,
|
||||
})
|
||||
})
|
||||
entries.push({ kind: 'loot' })
|
||||
@@ -592,7 +591,6 @@ function IWantToHeal1App({
|
||||
(option) => option.droppedItemLevel === selectedDifficultyOption.droppedItemLevel,
|
||||
) ?? candidate.difficulties[0]
|
||||
: candidate.difficulties[0]
|
||||
if (profile && profile.character.level < difficulty.unlockLevel) return
|
||||
if (screen === 'raids') setSelectedRaidId(candidate.id)
|
||||
else setSelectedDungeonId(candidate.id)
|
||||
setSelectedDifficultyId(difficulty.id)
|
||||
@@ -601,7 +599,7 @@ function IWantToHeal1App({
|
||||
function selectTierByIndex(index: number) {
|
||||
const difficulty = tierOptions[index]
|
||||
const activity = selectedActivityOption ?? activityOptions[0]
|
||||
if (!difficulty || !activity || (profile && profile.character.level < difficulty.unlockLevel)) return
|
||||
if (!difficulty || !activity) return
|
||||
setActivityPage(0)
|
||||
const nextActivity = activity.difficulties.some(
|
||||
(candidate) => candidate.droppedItemLevel === difficulty.droppedItemLevel,
|
||||
@@ -622,7 +620,7 @@ function IWantToHeal1App({
|
||||
function startSelectedRun(marathon: boolean) {
|
||||
const activity = selectedActivityOption ?? activityOptions[0]
|
||||
const difficulty = selectedDifficultyOption ?? activity?.difficulties[0]
|
||||
if (!activity || !difficulty || (profile && profile.character.level < difficulty.unlockLevel)) return
|
||||
if (!activity || !difficulty) return
|
||||
setSelectedMarathonMode(marathon)
|
||||
setCombatContentId(activity.id)
|
||||
setSelectedDifficultyId(difficulty.id)
|
||||
@@ -787,7 +785,6 @@ function IWantToHeal1App({
|
||||
|| !selectedActivityOption
|
||||
|| !selectedDifficultyOption
|
||||
) return null
|
||||
const locked = profile.character.level < selectedDifficultyOption.unlockLevel
|
||||
return {
|
||||
contentType: selectedActivityOption.contentType,
|
||||
title: selectedActivityOption.name,
|
||||
@@ -797,7 +794,7 @@ function IWantToHeal1App({
|
||||
difficultyName: selectedDifficultyOption.name,
|
||||
itemLevel: selectedDifficultyOption.droppedItemLevel,
|
||||
experience: Math.round(selectedActivityOption.experienceReward * selectedDifficultyOption.experienceMultiplier),
|
||||
lockedReason: locked ? `Unlocks at level ${selectedDifficultyOption.unlockLevel}` : undefined,
|
||||
lockedReason: undefined,
|
||||
stats: {
|
||||
health: `${selectedDifficultyOption.healthMultiplier.toFixed(2)}x`,
|
||||
damage: `${selectedDifficultyOption.damageMultiplier.toFixed(2)}x`,
|
||||
@@ -917,7 +914,6 @@ function IWantToHeal1App({
|
||||
const activityPageEnd = Math.min(activityOptions.length, (currentActivityPage + 1) * ACTIVITY_PAGE_SIZE)
|
||||
const activity = selectedActivityOption ?? dungeon
|
||||
const selectedDifficulty = selectedDifficultyOption ?? activity.difficulties[0]
|
||||
const difficultyLocked = profile.character.level < selectedDifficulty.unlockLevel
|
||||
return (
|
||||
<main className={`game-shell ${screen === 'dungeons' || screen === 'raids' ? 'dungeon-shell' : ''} ${screen === 'customize' ? 'workshop-shell' : ''} ${screen === 'settings' ? 'settings-shell' : ''}`}>
|
||||
{screen !== 'hunter-profile' && (
|
||||
@@ -1271,13 +1267,11 @@ function IWantToHeal1App({
|
||||
const difficulty = candidate.difficulties.find(
|
||||
(option) => option.droppedItemLevel === selectedDifficulty.droppedItemLevel,
|
||||
) ?? candidate.difficulties[0]
|
||||
const locked = profile.character.level < difficulty.unlockLevel
|
||||
const selected = candidate.id === activity.id
|
||||
return (
|
||||
<button
|
||||
className={`activity-card ${selected ? 'selected' : ''} ${locked ? 'locked' : ''} ${dungeonEntrySelected('activity', index) ? 'game-selected' : ''}`}
|
||||
className={`activity-card ${selected ? 'selected' : ''} ${dungeonEntrySelected('activity', index) ? 'game-selected' : ''}`}
|
||||
data-controller-nav="skip"
|
||||
disabled={locked}
|
||||
key={candidate.id}
|
||||
onClick={() => {
|
||||
if (screen === 'raids') setSelectedRaidId(candidate.id)
|
||||
@@ -1310,16 +1304,13 @@ function IWantToHeal1App({
|
||||
<h2>Run</h2>
|
||||
</div>
|
||||
<small>
|
||||
{difficultyLocked
|
||||
? `Unlocks at level ${selectedDifficulty.unlockLevel}`
|
||||
: 'Pick a hunt or marathon.'}
|
||||
Pick a hunt or marathon.
|
||||
</small>
|
||||
</div>
|
||||
<div className="part-picker">
|
||||
<button
|
||||
className={`primary-button selected-part ${dungeonEntrySelected('start') ? 'game-selected' : ''}`}
|
||||
data-controller-nav="skip"
|
||||
disabled={difficultyLocked}
|
||||
onClick={() => {
|
||||
setSelectedMarathonMode(false)
|
||||
setCombatContentId(activity.id)
|
||||
@@ -1334,7 +1325,6 @@ function IWantToHeal1App({
|
||||
<button
|
||||
className={`primary-button ${selectedMarathonMode ? 'selected-part' : ''} ${dungeonEntrySelected('marathon') ? 'game-selected' : ''}`}
|
||||
data-controller-nav="skip"
|
||||
disabled={difficultyLocked}
|
||||
onClick={() => {
|
||||
setSelectedMarathonMode(true)
|
||||
setCombatContentId(activity.id)
|
||||
@@ -1355,17 +1345,15 @@ function IWantToHeal1App({
|
||||
<p className="eyebrow">Item Level</p>
|
||||
<h2>Tier</h2>
|
||||
</div>
|
||||
<small>{screen === 'raids' ? 'Raid' : 'Dungeon'} tiers unlock by level.</small>
|
||||
<small>{screen === 'raids' ? 'Raid' : 'Dungeon'} tiers are available at every level.</small>
|
||||
</div>
|
||||
<div className="tier-grid">
|
||||
{tierOptions.map((difficulty, index) => {
|
||||
const locked = profile.character.level < difficulty.unlockLevel
|
||||
const selected = difficulty.droppedItemLevel === selectedDifficulty.droppedItemLevel
|
||||
return (
|
||||
<button
|
||||
className={`${selected ? 'selected' : ''} ${locked ? 'locked' : ''} ${dungeonEntrySelected('tier', index) ? 'game-selected' : ''}`}
|
||||
className={`${selected ? 'selected' : ''} ${dungeonEntrySelected('tier', index) ? 'game-selected' : ''}`}
|
||||
data-controller-nav="skip"
|
||||
disabled={locked}
|
||||
key={difficulty.id}
|
||||
onClick={() => {
|
||||
setActivityPage(0)
|
||||
@@ -1389,7 +1377,7 @@ function IWantToHeal1App({
|
||||
type="button"
|
||||
>
|
||||
<strong>iLvl {difficulty.droppedItemLevel}</strong>
|
||||
<span>{locked ? `Level ${difficulty.unlockLevel}` : difficulty.name}</span>
|
||||
<span>{difficulty.name}</span>
|
||||
</button>
|
||||
)
|
||||
})}
|
||||
|
||||
Reference in New Issue
Block a user