Fix weapon element logic
We had broken null weapons changing sprites when the element was changed, and the change detection was also broken. Some more stringent logic checks fixed both.
This commit is contained in:
parent
88b795cbd3
commit
a54f1b4c46
3 changed files with 17 additions and 9 deletions
|
|
@ -342,6 +342,7 @@ const Party = (props: Props) => {
|
||||||
appState.party.element = gridObject.object.element
|
appState.party.element = gridObject.object.element
|
||||||
} else if (!gridObject.mainhand && gridObject.position !== null) {
|
} else if (!gridObject.mainhand && gridObject.position !== null) {
|
||||||
let weapon = clonedeep(gridObject)
|
let weapon = clonedeep(gridObject)
|
||||||
|
if (weapon.object.element === 0 && weapon.element < 1)
|
||||||
weapon.element = gridObject.object.element
|
weapon.element = gridObject.object.element
|
||||||
|
|
||||||
appState.grid.weapons.allWeapons[gridObject.position] = weapon
|
appState.grid.weapons.allWeapons[gridObject.position] = weapon
|
||||||
|
|
|
||||||
|
|
@ -100,6 +100,12 @@ const WeaponModal = ({
|
||||||
setAwakening(gridWeapon.awakening.type)
|
setAwakening(gridWeapon.awakening.type)
|
||||||
setAwakeningLevel(gridWeapon.awakening.level)
|
setAwakeningLevel(gridWeapon.awakening.level)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (gridWeapon.object.ax || gridWeapon.object.awakenings) {
|
||||||
|
setFormValid(false)
|
||||||
|
} else {
|
||||||
|
setFormValid(true)
|
||||||
|
}
|
||||||
}, [gridWeapon])
|
}, [gridWeapon])
|
||||||
|
|
||||||
// Methods: Data retrieval
|
// Methods: Data retrieval
|
||||||
|
|
@ -126,6 +132,7 @@ const WeaponModal = ({
|
||||||
// Receive values from AwakeningSelectWithInput
|
// Receive values from AwakeningSelectWithInput
|
||||||
function receiveAwakeningValues(id: string, level: number) {
|
function receiveAwakeningValues(id: string, level: number) {
|
||||||
setAwakening(gridWeapon.object.awakenings.find((a) => a.id === id))
|
setAwakening(gridWeapon.object.awakenings.find((a) => a.id === id))
|
||||||
|
console.log(level)
|
||||||
setAwakeningLevel(level)
|
setAwakeningLevel(level)
|
||||||
setFormValid(true)
|
setFormValid(true)
|
||||||
}
|
}
|
||||||
|
|
@ -233,12 +240,6 @@ const WeaponModal = ({
|
||||||
if (modalOpen && hasBeenModified()) {
|
if (modalOpen && hasBeenModified()) {
|
||||||
setAlertOpen(true)
|
setAlertOpen(true)
|
||||||
} else {
|
} else {
|
||||||
if (gridWeapon.object.ax || gridWeapon.object.awakenings) {
|
|
||||||
setFormValid(false)
|
|
||||||
} else {
|
|
||||||
setFormValid(true)
|
|
||||||
}
|
|
||||||
|
|
||||||
onOpenChange(open)
|
onOpenChange(open)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -264,7 +265,6 @@ const WeaponModal = ({
|
||||||
}
|
}
|
||||||
|
|
||||||
function elementChanged() {
|
function elementChanged() {
|
||||||
if (gridWeapon.object.element === 0 && gridWeapon.element) return false
|
|
||||||
return element !== gridWeapon.element
|
return element !== gridWeapon.element
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -329,6 +329,12 @@ const WeaponModal = ({
|
||||||
!isEqual(gridWeapon.awakening.type, awakening) ||
|
!isEqual(gridWeapon.awakening.type, awakening) ||
|
||||||
gridWeapon.awakening.level !== awakeningLevel
|
gridWeapon.awakening.level !== awakeningLevel
|
||||||
|
|
||||||
|
console.log(
|
||||||
|
gridWeapon.awakening.type,
|
||||||
|
awakening,
|
||||||
|
gridWeapon.awakening.level,
|
||||||
|
awakeningLevel
|
||||||
|
)
|
||||||
// Return true if the awakening has been modified and is not empty
|
// Return true if the awakening has been modified and is not empty
|
||||||
return awakeningChanged
|
return awakeningChanged
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -154,6 +154,7 @@ const WeaponUnit = ({
|
||||||
appState.party.element = gridWeapon.object.element
|
appState.party.element = gridWeapon.object.element
|
||||||
} else if (!gridWeapon.mainhand && gridWeapon.position !== null) {
|
} else if (!gridWeapon.mainhand && gridWeapon.position !== null) {
|
||||||
let weapon = clonedeep(gridWeapon)
|
let weapon = clonedeep(gridWeapon)
|
||||||
|
if (weapon.object.element === 0 && weapon.element < 1)
|
||||||
weapon.element = gridWeapon.object.element
|
weapon.element = gridWeapon.object.element
|
||||||
|
|
||||||
appState.grid.weapons.allWeapons[gridWeapon.position] = weapon
|
appState.grid.weapons.allWeapons[gridWeapon.position] = weapon
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue