+ )
+ }
+ }
+
+ function opusImage(index: number) {
+ const baseUrl = `${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/weapon-keys/`
+
+ // If there is a grid weapon, it is a Dark Opus Weapon and it has keys
+ if (props.gridWeapon.object.series === 2 && props.gridWeapon.weapon_keys) {
+ const weaponKey = props.gridWeapon.weapon_keys[index]
+ const altText = weaponKey.name[locale]
+ let filename = weaponKey.slug
+
+ if (weaponKey.slot === 1) {
+ const element = props.gridWeapon.object.element
+ const mod = props.gridWeapon.object.name.en.includes('Repudiation')
+ ? 'primal'
+ : 'magna'
+ const suffixes = [
+ 'pendulum-strength',
+ 'pendulum-zeal',
+ 'pendulum-strife',
+ 'chain-temperament',
+ 'chain-restoration',
+ 'chain-glorification',
+ ]
+
+ if (suffixes.includes(weaponKey.slug)) {
+ filename += `-${mod}-${element}`
+ }
+ }
+
+ return (
+
+ )
+ }
+ }
+
+ function ultimaImage(index: number) {
+ const baseUrl = `${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/weapon-keys/`
+
+ // If there is a grid weapon, it is a Dark Opus Weapon and it has keys
+ if (props.gridWeapon.object.series === 17 && props.gridWeapon.weapon_keys) {
+ const weaponKey = props.gridWeapon.weapon_keys[index]
+ const altText = weaponKey.name[locale]
+ let filename = weaponKey.slug
+
+ if (weaponKey.slot === 0) {
+ filename += `-${props.gridWeapon.object.proficiency}`
+ }
+
+ return (
+
+ )
+ }
+ }
+
const createPrimaryAxSkillString = () => {
const primaryAxSkills = ax[props.gridWeapon.object.ax_type - 1]
@@ -135,27 +233,27 @@ const WeaponHovercard = (props: Props) => {
const keysSection = (