fix(ama): isolate guided arrow maxTurn clamp and align magic arrow weaponless damage (#459)
This commit is contained in:
parent
88c57f7ed6
commit
52b0bbaf2b
|
|
@ -1143,14 +1143,18 @@ export class MissileEngine {
|
|||
if (closestTarget) {
|
||||
const speed = m.record.vel ? m.record.vel : 12
|
||||
const targetAngle = Math.atan2((closestTarget.y - m.y) / ISO_GROUND_ASPECT_RATIO, closestTarget.x - m.x)
|
||||
let diff = targetAngle - m.angleRad
|
||||
while (diff < -Math.PI) diff += Math.PI * 2
|
||||
while (diff > Math.PI) diff -= Math.PI * 2
|
||||
const maxTurn = 0.45
|
||||
if (Math.abs(diff) <= maxTurn) {
|
||||
m.angleRad = targetAngle
|
||||
if (m.name.toLowerCase() === 'guidedarrow' || m.sourceSkillId === 22) {
|
||||
let diff = targetAngle - m.angleRad
|
||||
while (diff < -Math.PI) diff += Math.PI * 2
|
||||
while (diff > Math.PI) diff -= Math.PI * 2
|
||||
const maxTurn = 0.45
|
||||
if (Math.abs(diff) <= maxTurn) {
|
||||
m.angleRad = targetAngle
|
||||
} else {
|
||||
m.angleRad += Math.sign(diff) * maxTurn
|
||||
}
|
||||
} else {
|
||||
m.angleRad += Math.sign(diff) * maxTurn
|
||||
m.angleRad = targetAngle
|
||||
}
|
||||
m.vx = Math.cos(m.angleRad) * speed
|
||||
m.vy = Math.sin(m.angleRad) * speed * ISO_GROUND_ASPECT_RATIO
|
||||
|
|
|
|||
|
|
@ -5844,9 +5844,12 @@ export function calculateSkillDamage(
|
|||
weaponDamage?: { min: number; max: number }
|
||||
): { min: number; max: number } {
|
||||
if (skillId === 6 || skillId === '6' || skillId === 'magicarrow' || skillId === 'magic arrow') {
|
||||
if (!weaponDamage) {
|
||||
return { min: 0, max: 0 }
|
||||
}
|
||||
const stats = calculateMagicArrowStats(slvl)
|
||||
const baseMin = weaponDamage?.min ?? 0
|
||||
const baseMax = weaponDamage?.max ?? 0
|
||||
const baseMin = weaponDamage.min ?? 0
|
||||
const baseMax = weaponDamage.max ?? 0
|
||||
return { min: baseMin + stats.flatMagicDamage, max: baseMax + stats.flatMagicDamage }
|
||||
}
|
||||
if (skillId === 7 || skillId === '7' || skillId === 'firearrow' || skillId === 'fire arrow') {
|
||||
|
|
|
|||
Loading…
Reference in New Issue