Merge pull request #201 from jedmund/fix-weapon-conflicts

Fix weapon conflicts
This commit is contained in:
Justin Edmund 2023-01-29 23:39:14 -08:00 committed by GitHub
commit 7a87b066ff
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -152,19 +152,38 @@ const WeaponGrid = (props: Props) => {
if (weapon.uncap.ulb) uncapLevel = 5
else if (weapon.uncap.flb) uncapLevel = 4
return await api.endpoints.weapons.create({
weapon: {
party_id: partyId,
weapon_id: weapon.id,
position: position,
mainhand: position == -1,
uncap_level: uncapLevel,
},
})
let post = false
if (
position === -1 &&
(!appState.grid.weapons.mainWeapon ||
(appState.grid.weapons.mainWeapon &&
appState.grid.weapons.mainWeapon.object.id !== weapon.id))
) {
post = true
} else if (
position !== -1 &&
(!appState.grid.weapons.allWeapons[position] ||
(appState.grid.weapons.allWeapons[position] &&
appState.grid.weapons.allWeapons[position]?.object.id !== weapon.id))
) {
post = true
}
if (post) {
return await api.endpoints.weapons.create({
weapon: {
party_id: partyId,
weapon_id: weapon.id,
position: position,
mainhand: position == -1,
uncap_level: uncapLevel,
},
})
}
}
function storeGridWeapon(gridWeapon: GridWeapon) {
if (gridWeapon.position == -1) {
if (gridWeapon.position === -1) {
appState.grid.weapons.mainWeapon = gridWeapon
appState.party.element = gridWeapon.object.element
} else {
@ -183,9 +202,6 @@ const WeaponGrid = (props: Props) => {
position: position,
})
.then((response) => {
// Store new character in state
storeGridWeapon(response.data)
// Remove conflicting characters from state
conflicts.forEach((c) => {
if (appState.grid.weapons.mainWeapon?.object.id === c.id) {
@ -196,6 +212,9 @@ const WeaponGrid = (props: Props) => {
}
})
// Store new character in state
storeGridWeapon(response.data.grid_weapon)
// Reset conflict
resetConflict()