You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

204 lines
4.7 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/*
*
@author: sre
@date: 2022/11/6 0006
@desc: todo
*
*/
package main
import (
"fmt"
)
// bloodDmg出血DPH
func bloodDmg(dps, speed, ap float64) float64 {
//https://www.gamersky.com/neta/200701/53511.shtml
//剑普攻或出血DPH公式强度/14+武器DPS*武器速度=(1000/14+59)*2.9≈380
return speed * (dps + ap/14)
}
// evilDmg邪恶攻击
func evilDmg(dps, speed, ap float64) float64 {
speed = 2.4
return speed * (dps + ap/14)
}
// boneDmg骨骼攻击
func boneDmg(point int, ap float64) float64 {
//https://ngabbs.com/read.php?tid=24062151
//8级剔骨技能伤害=(技能描述伤害值+0.15×AP)×伤害系数
low, high := 0.0, 0.0
switch point {
case 2:
low, high = 350, 446
case 3:
low, high = 501, 597
case 4:
low, high = 652, 748
case 5:
low, high = 803, 899
default:
// point = 1
low, high = 199, 295
}
// 伤害系数 天赋强化剔骨15% 5t2.5 15%
dmgRate := BONERATE
dmgLow := (low + 0.15*ap) * dmgRate
dmgHigh := (high + 0.15*ap) * dmgRate
return (dmgLow + dmgHigh) / 2
}
func DesirBoneDmg(dmg, crit float64) float64 {
//谋杀增加了2%的所有伤害
if crit > 100 {
crit = 100
}
baseDmg := (100-crit)/100*dmg + crit/100*dmg*2
return baseDmg * 1.02
}
func DesirBloodDmg(dmg, crit float64) float64 {
//恶意 致命偷袭 增加了 5% 30% 的暴击伤害
crit = crit + 5
critDmg := 2 + 0.3
//谋杀增加了2%的所有伤害
if crit > 100 {
crit = 100
}
baseDmg := (100-crit)/100*dmg + crit/100*dmg*critDmg
return baseDmg * 1.02
}
func DesirAttackDmg(dmg, crit float64) float64 {
//恶意 增加了 5% 的暴击
crit = crit + 5
critDmg := 2.0
//谋杀增加了2%的所有伤害
if crit > 100 {
crit = 100
}
baseDmg := (100-crit)/100*dmg + crit/100*dmg*critDmg
return baseDmg * 1.02
}
func main() {
fmt.Println("4t3 =========================================")
dmg4t3()
fmt.Println("9t3 =============================================")
dmg9t3()
}
func dmg4t3() {
// 5t2.5 4t3 萨迪斯的项圈 堕落神明披风 灵魂之弦 清算戒指 冰龙爪
// 护甲2213防御300 未命中5% 闪避18.85%招架5%
// ap 846
// crit 28.85
// hit 7%
myAP := 846.0
myCrit := 28.85
fmt.Println("剔骨最大DPH")
boneDPH(myAP, 100.0)
fmt.Println("出血DPH")
bloodDPH(myAP, myCrit)
fmt.Println("平砍DPH")
attackDPH(myAP, myCrit)
//fmt.Println("出血最大DPH")
//bloodDPH(myAP, 100.0)
//fmt.Println("剔骨DPH")
//boneDPH(myAP, myCrit)
//
//fmt.Println("邪恶DPH")
//evilDPH()
}
func dmg9t3() {
// 9t3 萨迪斯的项圈 堕落神明披风 灵魂之弦 清算戒指 冰龙爪
// 护甲2236防御300 未命中5% 闪避24.62%招架5%
// ap 951
// crit 26.31
// hit 8%
myAP := 951.0
myCrit := 26.31
fmt.Println("剔骨最大DPH")
boneDPH(myAP, 100.0)
fmt.Println("出血DPH")
bloodDPH(myAP, myCrit)
fmt.Println("平砍DPH")
attackDPH(myAP, myCrit)
//fmt.Println("出血最大DPH")
//bloodDPH(myAP, 100.0)
//fmt.Println("剔骨DPH")
//boneDPH(myAP, myCrit)
//
//fmt.Println("邪恶DPH")
//evilDPH()
}
func boneDPH(myAP, myCrit float64) {
//大王剑
fmt.Println("大王剑 ", DesirBoneDmg(boneDmg(5, myAP+40), myCrit))
//大元帅
fmt.Println("大元帅 ", DesirBoneDmg(boneDmg(5, myAP+28), myCrit+1))
//电锤
fmt.Println("电锤 ", DesirBoneDmg(boneDmg(5, myAP), myCrit))
//咸鱼
fmt.Println("咸鱼 ", DesirBoneDmg(boneDmg(5, myAP+20), myCrit+1))
//谴责着
fmt.Println("谴责着 ", DesirBoneDmg(boneDmg(5, myAP+16), myCrit+1))
//多彩
fmt.Println("多彩 ", DesirBoneDmg(boneDmg(5, myAP+20), myCrit+1))
}
func attackDPH(myAP, myCrit float64) {
//大王剑
fmt.Println("大王剑 ", DesirAttackDmg(evilDmg(73.1, 2.7, myAP+40), myCrit))
//大元帅
fmt.Println("大元帅 ", DesirAttackDmg(evilDmg(59.5, 2.9, myAP+28), myCrit+1))
//电锤
fmt.Println("电锤 ", DesirAttackDmg(evilDmg(65.4, 2.8, myAP), myCrit))
//咸鱼
fmt.Println("咸鱼 ", DesirAttackDmg(evilDmg(59.5, 2.8, myAP+20), myCrit+1))
//谴责着
fmt.Println("谴责着 ", DesirAttackDmg(evilDmg(65.4, 2.6, myAP+16), myCrit+1))
//多彩
fmt.Println("多彩 ", DesirAttackDmg(evilDmg(58.5, 2.6, myAP+28), myCrit+0.5))
}
func bloodDPH(myAP, myCrit float64) {
//大王剑
fmt.Println("大王剑 ", DesirBloodDmg(bloodDmg(73.1, 2.7, myAP+40), myCrit))
//大元帅
fmt.Println("大元帅 ", DesirBloodDmg(bloodDmg(59.5, 2.9, myAP+28), myCrit+1))
//电锤
fmt.Println("电锤 ", DesirBloodDmg(bloodDmg(65.4, 2.8, myAP), myCrit))
//咸鱼
fmt.Println("咸鱼 ", DesirBloodDmg(bloodDmg(59.5, 2.8, myAP+20), myCrit+1))
//谴责着
fmt.Println("谴责着 ", DesirBloodDmg(bloodDmg(65.4, 2.6, myAP+16), myCrit+1))
//多彩
fmt.Println("多彩 ", DesirBloodDmg(bloodDmg(58.5, 2.6, myAP+28), myCrit+0.5))
//提布
fmt.Println("提布 ", DesirBloodDmg(bloodDmg(47.2, 2.9, myAP), myCrit))
}