feat(fight): 增加Boss精灵特效索引解析与空列表校验
在挑战Boss逻辑中,新增对Boss怪物NewSeIdxs字段的解析,将其分割并转换为EffectInfo添加到宠物信息中。同时增加对PetList为空时的错误处理,返回精灵不存在错误码。 refactor(effect): 调整技能属性判断方式及方法命名 将部分战斗效果和技能实体中的Type()方法重命名为GetType(),统一接口调用方式,并修改属性类型比较逻辑,直接通过整型值进行判断,提升代码一致性与可维护性。 fix(xml): 补充地图Boss配置项Id字段 更新地图配置文件中Boss节点缺失的Id属性,确保Boss数据结构完整性和唯一标识正确加载。 chore(input): 增加技能实体非空检查防止panic 在输入处理模块中加入对SelectSkillAction.SkillEntity的空指针检查,避免因未初始化技能导致运行时异常。
This commit is contained in:
@@ -85,6 +85,12 @@ func (h Controller) PlayerFightBoss(data *fight.ChallengeBossInboundInfo, c *pla
|
||||
mo.MaxHp = uint32(bm.Hp)
|
||||
moinfo.PetList = append(moinfo.PetList, *mo)
|
||||
|
||||
for _, v := range strings.Split(bm.NewSeIdxs, " ") {
|
||||
mo.EffectInfo = append(mo.EffectInfo, model.PetEffectInfo{
|
||||
Idx: gconv.Uint16(v),
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
if bc.BossCatchable == 1 {
|
||||
cancpet = xmlres.PetMAP[int(mo.ID)].CatchRate
|
||||
@@ -94,7 +100,9 @@ func (h Controller) PlayerFightBoss(data *fight.ChallengeBossInboundInfo, c *pla
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if len(moinfo.PetList) == 0 {
|
||||
return nil, errorcode.ErrorCodes.ErrPokemonNotExists
|
||||
}
|
||||
c.Fightinfo.Status = info.BattleMode.FIGHT_WITH_NPC
|
||||
c.Fightinfo.Mode = info.BattleMode.MULTI_MODE
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ import (
|
||||
// 特性的ID=PET cacthtime+eid 这样保证不重复
|
||||
type NewSel0 struct {
|
||||
node.EffectNode
|
||||
Catchtime int //保存精灵的唯一指令,保证在上场时候正确注入
|
||||
//Catchtime int //保存精灵的唯一指令,保证在上场时候正确注入
|
||||
//Hide bool //是否隐藏 ,所属精灵下场后特性就应该消失
|
||||
//??如果2只精灵一个特性,怎么办,每次切精灵注入特性
|
||||
}
|
||||
@@ -27,7 +27,12 @@ type NewSel1 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func (e *NewSel0) BeferProp(in *input.Ctx, prop, level int8, ptype info.EnumAbilityOpType) bool {
|
||||
func (e *NewSel1) BeferProp(in *input.Ctx, prop, level int8, ptype info.EnumAbilityOpType) bool {
|
||||
|
||||
//魂印特性有不在场的情况,绑定时候将精灵和特性绑定
|
||||
if e.EffectIDCombiner.CatchTime() != e.Ctx().Our.CurrentPet.Info.CatchTime {
|
||||
return true
|
||||
}
|
||||
|
||||
//能力下降类
|
||||
if level > 0 && ptype == info.AbilityOpType.SUB {
|
||||
@@ -39,6 +44,6 @@ func (e *NewSel0) BeferProp(in *input.Ctx, prop, level int8, ptype info.EnumAbil
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 1, &NewSel0{})
|
||||
input.InitEffect(input.EffectType.NewSel, 1, &NewSel1{})
|
||||
|
||||
}
|
||||
|
||||
15
logic/service/fight/boss/NewSeIdx_10.go
Normal file
15
logic/service/fight/boss/NewSeIdx_10.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 10. 无限PP值;
|
||||
// TODO: 实现无限PP值;的核心逻辑
|
||||
type NewSel10 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 10, &NewSel10{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_11.go
Normal file
15
logic/service/fight/boss/NewSeIdx_11.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 11. 受到任何攻击都会反弹1/n的伤害给对方;(a1: n)
|
||||
// TODO: 实现受到任何攻击都会反弹1/n的伤害给对方;(a1: n)的核心逻辑
|
||||
type NewSel11 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 11, &NewSel11{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_12.go
Normal file
15
logic/service/fight/boss/NewSeIdx_12.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 12. 受到特殊攻击时使自身的一种 battle_lv 提升1个等级,可提升n次;(a1: which blv, a2: max_blv_up_times)
|
||||
// TODO: 实现受到特殊攻击时使自身的一种 battle_lv 提升1个等级,可提升n次;(a1: which blv, a2: max_blv_up_times)的核心逻辑
|
||||
type NewSel12 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 12, &NewSel12{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_13.go
Normal file
15
logic/service/fight/boss/NewSeIdx_13.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 13. n 回合逃跑;(a1: n, a2: 不逃跑精灵ID, a3/a4: 不逃跑系精灵)
|
||||
// TODO: 实现n 回合逃跑;(a1: n, a2: 不逃跑精灵ID, a3/a4: 不逃跑系精灵)的核心逻辑
|
||||
type NewSel13 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 13, &NewSel13{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_14.go
Normal file
15
logic/service/fight/boss/NewSeIdx_14.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 14. 若遇到天敌, 则战斗开始时连续害怕 n 回合;(a1: n)
|
||||
// TODO: 实现若遇到天敌, 则战斗开始时连续害怕 n 回合;(a1: n)的核心逻辑
|
||||
type NewSel14 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 14, &NewSel14{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_15.go
Normal file
15
logic/service/fight/boss/NewSeIdx_15.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 15. 若遇到天敌, 则整个战斗中对天敌的伤害减少 n%;(a1: 0-100 百分比)
|
||||
// TODO: 实现若遇到天敌, 则整个战斗中对天敌的伤害减少 n%;(a1: 0-100 百分比)的核心逻辑
|
||||
type NewSel15 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 15, &NewSel15{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_16.go
Normal file
15
logic/service/fight/boss/NewSeIdx_16.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 16. hp 与 battle_lv 的某一种绑定, 自身体力每减少1/8, 则该battle_lv上升1个等级, 最高到12;(a1: which blv)
|
||||
// TODO: 实现hp 与 battle_lv 的某一种绑定, 自身体力每减少1/8, 则该battle_lv上升1个等级, 最高到12;(a1: which blv)的核心逻辑
|
||||
type NewSel16 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 16, &NewSel16{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_17.go
Normal file
15
logic/service/fight/boss/NewSeIdx_17.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 17. 自身体力降到N以下时,每次攻击必定致命一击;(a1: high 32, a2: low 32)
|
||||
// TODO: 实现自身体力降到N以下时,每次攻击必定致命一击;(a1: high 32, a2: low 32)的核心逻辑
|
||||
type NewSel17 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 17, &NewSel17{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_18.go
Normal file
15
logic/service/fight/boss/NewSeIdx_18.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 18. 自身所有技能必中;
|
||||
// TODO: 实现自身所有技能必中;的核心逻辑
|
||||
type NewSel18 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 18, &NewSel18{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_19.go
Normal file
15
logic/service/fight/boss/NewSeIdx_19.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 19. 自身所有技能必先出手;
|
||||
// TODO: 实现自身所有技能必先出手;的核心逻辑
|
||||
type NewSel19 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 19, &NewSel19{})
|
||||
}
|
||||
30
logic/service/fight/boss/NewSeIdx_2.go
Normal file
30
logic/service/fight/boss/NewSeIdx_2.go
Normal file
@@ -0,0 +1,30 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 2. 免疫 "异常状态"
|
||||
type NewSel2 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func (e *NewSel2) EFFect_Befer(in *input.Input, effEffect input.Effect) bool {
|
||||
//魂印特性有不在场的情况,绑定时候将精灵和特性绑定
|
||||
if e.EffectIDCombiner.CatchTime() != e.Ctx().Our.CurrentPet.Info.CatchTime {
|
||||
return true
|
||||
}
|
||||
|
||||
if in != e.Ctx().Opp {
|
||||
return true
|
||||
}
|
||||
if e.Ctx().Our.IS_Stat(effEffect) {
|
||||
return false
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 2, &NewSel2{})
|
||||
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_20.go
Normal file
15
logic/service/fight/boss/NewSeIdx_20.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 20. 在被ID为xxx的技能命中前,任何技能都不能伤害自身;(a1-a8: 有效技能ID)
|
||||
// TODO: 实现在被ID为xxx的技能命中前,任何技能都不能伤害自身;(a1-a8: 有效技能ID)的核心逻辑
|
||||
type NewSel20 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 20, &NewSel20{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_21.go
Normal file
15
logic/service/fight/boss/NewSeIdx_21.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 21. 除ID为xxx的技能外,任何能将自身体力降为 0 的技能都会使自身余下 1 体力;(a1-a8: 有效技能ID)
|
||||
// TODO: 实现除ID为xxx的技能外,任何能将自身体力降为 0 的技能都会使自身余下 1 体力;(a1-a8: 有效技能ID)的核心逻辑
|
||||
type NewSel21 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 21, &NewSel21{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_22.go
Normal file
15
logic/service/fight/boss/NewSeIdx_22.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 22. 被打时受到直接攻击伤害提高至n倍;(a1: n)
|
||||
// TODO: 实现被打时受到直接攻击伤害提高至n倍;(a1: n)的核心逻辑
|
||||
type NewSel22 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 22, &NewSel22{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_23.go
Normal file
15
logic/service/fight/boss/NewSeIdx_23.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 23. 自身体力降到N以下时, 每次(针对多宠)攻击必定秒杀对方, 且必定先手;(a1: high 16, a2: low 16)
|
||||
// TODO: 实现自身体力降到N以下时, 每次(针对多宠)攻击必定秒杀对方, 且必定先手;(a1: high 16, a2: low 16)的核心逻辑
|
||||
type NewSel23 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 23, &NewSel23{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_24.go
Normal file
15
logic/service/fight/boss/NewSeIdx_24.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 24. 对方用这些技能时, 对自身的命中率为0 (最多8个 / 不要与必中技能一起配置);(a1-a8: 有效技能ID)
|
||||
// TODO: 实现对方用这些技能时, 对自身的命中率为0 (最多8个 / 不要与必中技能一起配置);(a1-a8: 有效技能ID)的核心逻辑
|
||||
type NewSel24 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 24, &NewSel24{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_25.go
Normal file
15
logic/service/fight/boss/NewSeIdx_25.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 25. 如果 hp 被打成 0, 则立刻增加一些hp
|
||||
// TODO: 实现如果 hp 被打成 0, 则立刻增加一些hp的核心逻辑
|
||||
type NewSel25 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 25, &NewSel25{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_26.go
Normal file
15
logic/service/fight/boss/NewSeIdx_26.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 26. 给一种 battle_attr 增加固定 n 点属性值;(a1: battle_attr, a2: n)
|
||||
// TODO: 实现给一种 battle_attr 增加固定 n 点属性值;(a1: battle_attr, a2: n)的核心逻辑
|
||||
type NewSel26 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 26, &NewSel26{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_27.go
Normal file
15
logic/service/fight/boss/NewSeIdx_27.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 27. 按一定的属性顺序出招的技能才能对去血(a1-a8: mon_type)
|
||||
// TODO: 实现按一定的属性顺序出招的技能才能对去血(a1-a8: mon_type)的核心逻辑
|
||||
type NewSel27 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 27, &NewSel27{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_28.go
Normal file
15
logic/service/fight/boss/NewSeIdx_28.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 28. XX系技能伤害增加n%(a1: mon_type, a2: n 百分比)
|
||||
// TODO: 实现XX系技能伤害增加n%(a1: mon_type, a2: n 百分比)的核心逻辑
|
||||
type NewSel28 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 28, &NewSel28{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_29.go
Normal file
15
logic/service/fight/boss/NewSeIdx_29.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 29. 自身的所有技能命中率增加 n%;(a1: n 百分比)
|
||||
// TODO: 实现自身的所有技能命中率增加 n%;(a1: n 百分比)的核心逻辑
|
||||
type NewSel29 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 29, &NewSel29{})
|
||||
}
|
||||
28
logic/service/fight/boss/NewSeIdx_3.go
Normal file
28
logic/service/fight/boss/NewSeIdx_3.go
Normal file
@@ -0,0 +1,28 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/info"
|
||||
"blazing/logic/service/fight/input"
|
||||
|
||||
"github.com/shopspring/decimal"
|
||||
)
|
||||
|
||||
// 3. 受到任何伤害减免 n%(a1: 0-100 百分比)
|
||||
// TODO: 实现受到任何伤害减免 n%(a1: 0-100 百分比)的核心逻辑
|
||||
type NewSel3 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func (e *NewSel3) Damage_DIV_ex(t *info.DamageZone) bool {
|
||||
//魂印特性有不在场的情况,绑定时候将精灵和特性绑定
|
||||
if e.EffectIDCombiner.CatchTime() != e.Ctx().Our.CurrentPet.Info.CatchTime {
|
||||
return true
|
||||
}
|
||||
|
||||
t.Damage = t.Damage.Div(decimal.NewFromInt(int64(e.Args()[0])))
|
||||
|
||||
return true
|
||||
}
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 3, &NewSel3{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_30.go
Normal file
15
logic/service/fight/boss/NewSeIdx_30.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 30. 所有技能的致命一击率增加n/16;(a1: n 1-16)
|
||||
// TODO: 实现所有技能的致命一击率增加n/16;(a1: n 1-16)的核心逻辑
|
||||
type NewSel30 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 30, &NewSel30{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_31.go
Normal file
15
logic/service/fight/boss/NewSeIdx_31.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 31. 受到致死攻击时有n%几率余下 m 点体力;(a1: n 百分比, a2: m 体力值)
|
||||
// TODO: 实现受到致死攻击时有n%几率余下 m 点体力;(a1: n 百分比, a2: m 体力值)的核心逻辑
|
||||
type NewSel31 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 31, &NewSel31{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_32.go
Normal file
15
logic/service/fight/boss/NewSeIdx_32.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 32. 进攻类技能有n%几率秒杀对方;(a1: n 千分比)
|
||||
// TODO: 实现进攻类技能有n%几率秒杀对方;(a1: n 千分比)的核心逻辑
|
||||
type NewSel32 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 32, &NewSel32{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_33.go
Normal file
15
logic/service/fight/boss/NewSeIdx_33.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 33. 精灵体力降低到 1/n 时有 m% 几率体力回满;(a1: n, a2: m 百分比)
|
||||
// TODO: 实现精灵体力降低到 1/n 时有 m% 几率体力回满;(a1: n, a2: m 百分比)的核心逻辑
|
||||
type NewSel33 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 33, &NewSel33{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_34.go
Normal file
15
logic/service/fight/boss/NewSeIdx_34.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 34. 受到特殊攻击时有 n% 几率使 对方 battle_lv 降低1个等级;(a1: battle_lv类型, a2: n 百分比)
|
||||
// TODO: 实现受到特殊攻击时有 n% 几率使 对方 battle_lv 降低1个等级;(a1: battle_lv类型, a2: n 百分比)的核心逻辑
|
||||
type NewSel34 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 34, &NewSel34{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_35.go
Normal file
15
logic/service/fight/boss/NewSeIdx_35.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 35. 受到任何攻击时有 n% 几率使 自身 battle_lv 提升1个等级;(a1: battle_lv类型, a2: n 百分比)
|
||||
// TODO: 实现受到任何攻击时有 n% 几率使 自身 battle_lv 提升1个等级;(a1: battle_lv类型, a2: n 百分比)的核心逻辑
|
||||
type NewSel35 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 35, &NewSel35{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_36.go
Normal file
15
logic/service/fight/boss/NewSeIdx_36.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 36. 按5回合轮换属性顺序出招的技能才能对去血(a1-a8: btl_stat/elem_type)
|
||||
// TODO: 实现按5回合轮换属性顺序出招的技能才能对去血(a1-a8: btl_stat/elem_type)的核心逻辑
|
||||
type NewSel36 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 36, &NewSel36{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_37.go
Normal file
15
logic/service/fight/boss/NewSeIdx_37.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 37. 自身 一次受到大于n 的伤害时直接将对方体力降至0;(a1: high 16, a2: low 16)
|
||||
// TODO: 实现自身 一次受到大于n 的伤害时直接将对方体力降至0;(a1: high 16, a2: low 16)的核心逻辑
|
||||
type NewSel37 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 37, &NewSel37{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_38.go
Normal file
15
logic/service/fight/boss/NewSeIdx_38.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 38. 自身造成的伤害增加n%;(a1: n 百分比)
|
||||
// TODO: 实现自身造成的伤害增加n%;(a1: n 百分比)的核心逻辑
|
||||
type NewSel38 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 38, &NewSel38{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_39.go
Normal file
15
logic/service/fight/boss/NewSeIdx_39.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 39. 偶数伤害(dmg) 提升到 n * dmg;(a1: n)
|
||||
// TODO: 实现偶数伤害(dmg) 提升到 n * dmg;(a1: n)的核心逻辑
|
||||
type NewSel39 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 39, &NewSel39{})
|
||||
}
|
||||
34
logic/service/fight/boss/NewSeIdx_4.go
Normal file
34
logic/service/fight/boss/NewSeIdx_4.go
Normal file
@@ -0,0 +1,34 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/action"
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 4. 受到与自身相同系属的攻击会恢复自身相应体力
|
||||
// TODO: 实现受到与自身相同系属的攻击会恢复自身相应体力的核心逻辑
|
||||
type NewSel4 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func (e *NewSel4) Skill_Use_ex() bool {
|
||||
|
||||
//魂印特性有不在场的情况,绑定时候将精灵和特性绑定
|
||||
if e.EffectIDCombiner.CatchTime() != e.Ctx().Our.CurrentPet.Info.CatchTime {
|
||||
return true
|
||||
}
|
||||
|
||||
if e.Ctx().SkillEntity == nil {
|
||||
return true
|
||||
}
|
||||
|
||||
if e.Ctx().SkillEntity.Type == e.Ctx().Our.CurrentPet.Type {
|
||||
|
||||
e.Ctx().Our.Heal(e.Ctx().Our, &action.SelectSkillAction{}, e.Ctx().Opp.SumDamage)
|
||||
|
||||
}
|
||||
return true
|
||||
}
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 4, &NewSel4{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_40.go
Normal file
15
logic/service/fight/boss/NewSeIdx_40.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 40. 奇数伤害(dmg) 改为 1/n * dmg;(a1: n)
|
||||
// TODO: 实现奇数伤害(dmg) 改为 1/n * dmg;(a1: n)的核心逻辑
|
||||
type NewSel40 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 40, &NewSel40{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_401.go
Normal file
15
logic/service/fight/boss/NewSeIdx_401.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 401. n%几率攻击技能的伤害翻倍(a1: n)
|
||||
// TODO: 实现n%几率攻击技能的伤害翻倍(a1: n)的核心逻辑
|
||||
type NewSel401 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 401, &NewSel401{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_41.go
Normal file
15
logic/service/fight/boss/NewSeIdx_41.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 41. 每回合恢复自身n点体力;(a1: n)
|
||||
// TODO: 实现每回合恢复自身n点体力;(a1: n)的核心逻辑
|
||||
type NewSel41 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 41, &NewSel41{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_410.go
Normal file
15
logic/service/fight/boss/NewSeIdx_410.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 410. 伤害提升n%(PVP无效)(a1: n)
|
||||
// TODO: 实现伤害提升n%(PVP无效)(a1: n)的核心逻辑
|
||||
type NewSel410 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 410, &NewSel410{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_42.go
Normal file
15
logic/service/fight/boss/NewSeIdx_42.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 42. 自身所有技能先制改变n(+/-);(a1: n)
|
||||
// TODO: 实现自身所有技能先制改变n(+/-);(a1: n)的核心逻辑
|
||||
type NewSel42 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 42, &NewSel42{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_43.go
Normal file
15
logic/service/fight/boss/NewSeIdx_43.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 43. 遇到天敌自身所有技能先制减少n;(a1: n)
|
||||
// TODO: 实现遇到天敌自身所有技能先制减少n;(a1: n)的核心逻辑
|
||||
type NewSel43 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 43, &NewSel43{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_44.go
Normal file
15
logic/service/fight/boss/NewSeIdx_44.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 44. 重生 (hp和btl_maxhp 恢复到 maxhp + maxhp_adj, 技能PP值回满)(a1: 可重生次数)
|
||||
// TODO: 实现重生 (hp和btl_maxhp 恢复到 maxhp + maxhp_adj, 技能PP值回满)(a1: 可重生次数)的核心逻辑
|
||||
type NewSel44 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 44, &NewSel44{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_45.go
Normal file
15
logic/service/fight/boss/NewSeIdx_45.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 45. 自身所有技能致命一击率固定是 1/n(a1: n 16/n)
|
||||
// TODO: 实现自身所有技能致命一击率固定是 1/n(a1: n 16/n)的核心逻辑
|
||||
type NewSel45 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 45, &NewSel45{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_46.go
Normal file
15
logic/service/fight/boss/NewSeIdx_46.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 46. 若自身5回合内体力被降到0会余下1点体力,并且体力全恢复,恢复后回合数重新计算。
|
||||
// TODO: 实现若自身5回合内体力被降到0会余下1点体力,并且体力全恢复,恢复后回合数重新计算。的核心逻辑
|
||||
type NewSel46 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 46, &NewSel46{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_47.go
Normal file
15
logic/service/fight/boss/NewSeIdx_47.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 47. 敌我双方伤害降低n%(a1: n)
|
||||
// TODO: 实现敌我双方伤害降低n%(a1: n)的核心逻辑
|
||||
type NewSel47 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 47, &NewSel47{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_48.go
Normal file
15
logic/service/fight/boss/NewSeIdx_48.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 48. 对方某种攻击类型无效(a1: 攻击类型)
|
||||
// TODO: 实现对方某种攻击类型无效(a1: 攻击类型)的核心逻辑
|
||||
type NewSel48 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 48, &NewSel48{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_49.go
Normal file
15
logic/service/fight/boss/NewSeIdx_49.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 49. 受到物理攻击或特殊攻击后,下n回合受物理攻击或特殊攻击伤害减免m%(a1: n, a2: m)
|
||||
// TODO: 实现受到物理攻击或特殊攻击后,下n回合受物理攻击或特殊攻击伤害减免m%(a1: n, a2: m)的核心逻辑
|
||||
type NewSel49 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 49, &NewSel49{})
|
||||
}
|
||||
40
logic/service/fight/boss/NewSeIdx_5.go
Normal file
40
logic/service/fight/boss/NewSeIdx_5.go
Normal file
@@ -0,0 +1,40 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/info"
|
||||
"blazing/logic/service/fight/input"
|
||||
|
||||
"github.com/samber/lo"
|
||||
"github.com/shopspring/decimal"
|
||||
)
|
||||
|
||||
// 5. 只受到来自普通属性和某类属性的攻击伤害(a1-a8: mon_type)
|
||||
// TODO: 实现只受到来自普通属性和某类属性的攻击伤害(a1-a8: mon_type)的核心逻辑
|
||||
type NewSel5 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func (e *NewSel5) Damage_Lock_ex(t *info.DamageZone) bool {
|
||||
//魂印特性有不在场的情况,绑定时候将精灵和特性绑定
|
||||
if e.EffectIDCombiner.CatchTime() != e.Ctx().Our.CurrentPet.Info.CatchTime {
|
||||
return true
|
||||
}
|
||||
if e.Ctx().SkillEntity == nil {
|
||||
return true
|
||||
}
|
||||
|
||||
_, ok := lo.Find(append(e.Args(), 8), func(item int) bool {
|
||||
return item == e.Ctx().SkillEntity.Type
|
||||
})
|
||||
if !ok {
|
||||
return true
|
||||
}
|
||||
|
||||
t.Damage = decimal.NewFromInt(0)
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 5, &NewSel5{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_50.go
Normal file
15
logic/service/fight/boss/NewSeIdx_50.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 50. 免疫某类特效(a1-an: 被免疫的特效ID)
|
||||
// TODO: 实现免疫某类特效(a1-an: 被免疫的特效ID)的核心逻辑
|
||||
type NewSel50 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 50, &NewSel50{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_501.go
Normal file
15
logic/service/fight/boss/NewSeIdx_501.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 501. g1. 最后一个死 (只要有队友没死, 则自己又恢复hp和pp)
|
||||
// TODO: 实现g1. 最后一个死 (只要有队友没死, 则自己又恢复hp和pp)的核心逻辑
|
||||
type NewSel501 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 501, &NewSel501{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_503.go
Normal file
15
logic/service/fight/boss/NewSeIdx_503.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 503. g3. 群体攻击技能可额外增加一个目标(最多不超过5个目标)
|
||||
// TODO: 实现g3. 群体攻击技能可额外增加一个目标(最多不超过5个目标)的核心逻辑
|
||||
type NewSel503 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 503, &NewSel503{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_51.go
Normal file
15
logic/service/fight/boss/NewSeIdx_51.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 51. 如果mon被打到BurstRecoverHP以下, 且没有挂掉, 则马上恢复到满HP和PP值;(a1: burst_hp high-32, a2: burst_hp low-32)
|
||||
// TODO: 实现如果mon被打到BurstRecoverHP以下, 且没有挂掉, 则马上恢复到满HP和PP值;(a1: burst_hp high-32, a2: burst_hp low-32)的核心逻辑
|
||||
type NewSel51 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 51, &NewSel51{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_52.go
Normal file
15
logic/service/fight/boss/NewSeIdx_52.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 52. 第3n+1回合免疫特殊攻击,第3n+2回合免疫物理攻击,第3n+3回合免疫属性攻击
|
||||
// TODO: 实现第3n+1回合免疫特殊攻击,第3n+2回合免疫物理攻击,第3n+3回合免疫属性攻击的核心逻辑
|
||||
type NewSel52 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 52, &NewSel52{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_53.go
Normal file
15
logic/service/fight/boss/NewSeIdx_53.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 53. 敌我双方每回合恢复n%HP(不超过最大血量)(a1: n)
|
||||
// TODO: 实现敌我双方每回合恢复n%HP(不超过最大血量)(a1: n)的核心逻辑
|
||||
type NewSel53 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 53, &NewSel53{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_54.go
Normal file
15
logic/service/fight/boss/NewSeIdx_54.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 54. 每回合结束后,敌我双方扣除n体力值(a1: n)
|
||||
// TODO: 实现每回合结束后,敌我双方扣除n体力值(a1: n)的核心逻辑
|
||||
type NewSel54 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 54, &NewSel54{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_55.go
Normal file
15
logic/service/fight/boss/NewSeIdx_55.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 55. 每回合敌我双方造成的伤害为原来的n倍(a1: n)
|
||||
// TODO: 实现每回合敌我双方造成的伤害为原来的n倍(a1: n)的核心逻辑
|
||||
type NewSel55 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 55, &NewSel55{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_56.go
Normal file
15
logic/service/fight/boss/NewSeIdx_56.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 56. 第n回合秒杀敌人(a1: 回合数)
|
||||
// TODO: 实现第n回合秒杀敌人(a1: 回合数)的核心逻辑
|
||||
type NewSel56 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 56, &NewSel56{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_57.go
Normal file
15
logic/service/fight/boss/NewSeIdx_57.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 57. 如果对方存在某异常状态,则自己攻击的致命一击率提高n/16(a1: 异常状态类型, a2: n)
|
||||
// TODO: 实现如果对方存在某异常状态,则自己攻击的致命一击率提高n/16(a1: 异常状态类型, a2: n)的核心逻辑
|
||||
type NewSel57 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 57, &NewSel57{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_58.go
Normal file
15
logic/service/fight/boss/NewSeIdx_58.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 58. 按一定条件触发魔王的愤怒,触发时,战斗等级提升至一定状态,可以被消强化(SideEffect="33")恢复至正常状态(+6)(a1-a6: atk/def/sp_atk/sp_def/spd/accuracy,-1为不设置)
|
||||
// TODO: 实现按一定条件触发魔王的愤怒,触发时,战斗等级提升至一定状态,可以被消强化(SideEffect="33")恢复至正常状态(+6)(a1-a6: atk/def/sp_atk/sp_def/spd/accuracy,-1为不设置)的核心逻辑
|
||||
type NewSel58 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 58, &NewSel58{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_59.go
Normal file
15
logic/service/fight/boss/NewSeIdx_59.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 59. 按一定条件触发魔王的附身,触发时,受到伤害时n回合内反弹m%伤害给玩家(a1: 持续回合数, a2: 反弹百分比)
|
||||
// TODO: 实现按一定条件触发魔王的附身,触发时,受到伤害时n回合内反弹m%伤害给玩家(a1: 持续回合数, a2: 反弹百分比)的核心逻辑
|
||||
type NewSel59 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 59, &NewSel59{})
|
||||
}
|
||||
46
logic/service/fight/boss/NewSeIdx_6.go
Normal file
46
logic/service/fight/boss/NewSeIdx_6.go
Normal file
@@ -0,0 +1,46 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/info"
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 6. 受到`普通属性'(128)伤害时以n%的概率使对方进入`异常状态'(仅一个异常状态)(a1: 异常状态类型, a2: 百分比)
|
||||
// TODO: 实现受到`普通属性'(128)伤害时以n%的概率使对方进入`异常状态'(仅一个异常状态)(a1: 异常状态类型, a2: 百分比)的核心逻辑
|
||||
type NewSel6 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func (e *NewSel6) Damage_Lock_ex(t *info.DamageZone) bool {
|
||||
//魂印特性有不在场的情况,绑定时候将精灵和特性绑定
|
||||
if e.EffectIDCombiner.CatchTime() != e.Ctx().Our.CurrentPet.Info.CatchTime {
|
||||
return true
|
||||
}
|
||||
if e.Ctx().SkillEntity == nil {
|
||||
return true
|
||||
}
|
||||
|
||||
// 3. 概率判定(Args()[1]为触发概率)
|
||||
success, _, _ := e.Input.Player.Roll(e.Args()[1], 100)
|
||||
if !success {
|
||||
return true
|
||||
}
|
||||
|
||||
duration := int(e.Input.FightC.GetRand().Int31n(2)) // 默认随机 2~3 回合
|
||||
duration++
|
||||
// 5. 获取状态效果实例并设置参数
|
||||
statusEffect := input.Geteffect(input.EffectType.Status, int(e.Args()[0]))
|
||||
if statusEffect == nil {
|
||||
return true
|
||||
}
|
||||
statusEffect.Duration(duration)
|
||||
statusEffect.SetArgs(e.Ctx().Our) // 目标为对手
|
||||
|
||||
// 6. 给对手添加状态
|
||||
e.Ctx().Opp.AddEffect(e.Ctx().Our, statusEffect)
|
||||
|
||||
return true
|
||||
}
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 6, &NewSel6{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_60.go
Normal file
15
logic/service/fight/boss/NewSeIdx_60.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 60. 受到攻击时n%几率使受到的伤害降低m点(a1: n, a2: m)
|
||||
// TODO: 实现受到攻击时n%几率使受到的伤害降低m点(a1: n, a2: m)的核心逻辑
|
||||
type NewSel60 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 60, &NewSel60{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_61.go
Normal file
15
logic/service/fight/boss/NewSeIdx_61.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 61. n%几率完全抵挡一次伤害(a1: n)
|
||||
// TODO: 实现n%几率完全抵挡一次伤害(a1: n)的核心逻辑
|
||||
type NewSel61 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 61, &NewSel61{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_62.go
Normal file
15
logic/service/fight/boss/NewSeIdx_62.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 62. 物理攻击有n%几率使伤害提高m点(a1: n, a2: m)
|
||||
// TODO: 实现物理攻击有n%几率使伤害提高m点(a1: n, a2: m)的核心逻辑
|
||||
type NewSel62 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 62, &NewSel62{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_63.go
Normal file
15
logic/service/fight/boss/NewSeIdx_63.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 63. 特殊攻击有n%几率使伤害提高m点(a1: n, a2: m)
|
||||
// TODO: 实现特殊攻击有n%几率使伤害提高m点(a1: n, a2: m)的核心逻辑
|
||||
type NewSel63 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 63, &NewSel63{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_64.go
Normal file
15
logic/service/fight/boss/NewSeIdx_64.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 64. 受到致命一击的概率降低n/16(a1: n)
|
||||
// TODO: 实现受到致命一击的概率降低n/16(a1: n)的核心逻辑
|
||||
type NewSel64 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 64, &NewSel64{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_65.go
Normal file
15
logic/service/fight/boss/NewSeIdx_65.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 65. 物理攻击或特殊攻击伤害增加m%(a1: 1=物理/3=特殊, a2: m)
|
||||
// TODO: 实现物理攻击或特殊攻击伤害增加m%(a1: 1=物理/3=特殊, a2: m)的核心逻辑
|
||||
type NewSel65 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 65, &NewSel65{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_66.go
Normal file
15
logic/service/fight/boss/NewSeIdx_66.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 66. 自身的物理攻击有n%几率使对方处于异常状态(a1: n, a2: 异常状态类型)
|
||||
// TODO: 实现自身的物理攻击有n%几率使对方处于异常状态(a1: n, a2: 异常状态类型)的核心逻辑
|
||||
type NewSel66 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 66, &NewSel66{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_67.go
Normal file
15
logic/service/fight/boss/NewSeIdx_67.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 67. 自身的特殊攻击有n%几率使对方处于异常状态(a1: n, a2: 异常状态类型)
|
||||
// TODO: 实现自身的特殊攻击有n%几率使对方处于异常状态(a1: n, a2: 异常状态类型)的核心逻辑
|
||||
type NewSel67 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 67, &NewSel67{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_68.go
Normal file
15
logic/service/fight/boss/NewSeIdx_68.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 68. 受到特定系的攻击会恢复自身相应体力(a1: 特定系)
|
||||
// TODO: 实现受到特定系的攻击会恢复自身相应体力(a1: 特定系)的核心逻辑
|
||||
type NewSel68 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 68, &NewSel68{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_69.go
Normal file
15
logic/service/fight/boss/NewSeIdx_69.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 69. 目标为n性别时,所有攻击伤害增加m%(a1: n, a2: m)
|
||||
// TODO: 实现目标为n性别时,所有攻击伤害增加m%(a1: n, a2: m)的核心逻辑
|
||||
type NewSel69 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 69, &NewSel69{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_7.go
Normal file
15
logic/service/fight/boss/NewSeIdx_7.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 7. 任何技能对自身的命中率下降 n%;(a1: 0-100 百分比)
|
||||
// TODO: 实现任何技能对自身的命中率下降 n%;(a1: 0-100 百分比)的核心逻辑
|
||||
type NewSel7 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 7, &NewSel7{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_70.go
Normal file
15
logic/service/fight/boss/NewSeIdx_70.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 70. 对手的能力提升效果会同时作用到自己身上
|
||||
// TODO: 实现对手的能力提升效果会同时作用到自己身上的核心逻辑
|
||||
type NewSel70 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 70, &NewSel70{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_71.go
Normal file
15
logic/service/fight/boss/NewSeIdx_71.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 71. 每回合结束时,对手降低n体力,自身恢复m体力(a1: n, a2: m)
|
||||
// TODO: 实现每回合结束时,对手降低n体力,自身恢复m体力(a1: n, a2: m)的核心逻辑
|
||||
type NewSel71 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 71, &NewSel71{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_72.go
Normal file
15
logic/service/fight/boss/NewSeIdx_72.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 72. 受到的伤害低于n时,则在受到伤害后恢复自身n点体力值(a1: n)
|
||||
// TODO: 实现受到的伤害低于n时,则在受到伤害后恢复自身n点体力值(a1: n)的核心逻辑
|
||||
type NewSel72 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 72, &NewSel72{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_73.go
Normal file
15
logic/service/fight/boss/NewSeIdx_73.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 73. 给对方造成的伤害会恢复自身n%体力;(a1: n)
|
||||
// TODO: 实现给对方造成的伤害会恢复自身n%体力;(a1: n)的核心逻辑
|
||||
type NewSel73 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 73, &NewSel73{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_74.go
Normal file
15
logic/service/fight/boss/NewSeIdx_74.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 74. 每次物理或特殊攻击命中对手后,有百分之n的概率给对手叠加一层衰弱(a1: n)
|
||||
// TODO: 实现每次物理或特殊攻击命中对手后,有百分之n的概率给对手叠加一层衰弱(a1: n)的核心逻辑
|
||||
type NewSel74 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 74, &NewSel74{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_75.go
Normal file
15
logic/service/fight/boss/NewSeIdx_75.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 75. 每回合敌方恢复m%HP, 我方恢复n%HP(不超过最大血量)(a1: m, a2: n)
|
||||
// TODO: 实现每回合敌方恢复m%HP, 我方恢复n%HP(不超过最大血量)(a1: m, a2: n)的核心逻辑
|
||||
type NewSel75 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 75, &NewSel75{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_8.go
Normal file
15
logic/service/fight/boss/NewSeIdx_8.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 8. 自身的会心一击率为 n/16;(a1: n 0-16)
|
||||
// TODO: 实现自身的会心一击率为 n/16;(a1: n 0-16)的核心逻辑
|
||||
type NewSel8 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 8, &NewSel8{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_83.go
Normal file
15
logic/service/fight/boss/NewSeIdx_83.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 83. 受到超过n的伤害时,反弹m%伤害(a1: n, a2: m)
|
||||
// TODO: 实现受到超过n的伤害时,反弹m%伤害(a1: n, a2: m)的核心逻辑
|
||||
type NewSel83 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 83, &NewSel83{})
|
||||
}
|
||||
15
logic/service/fight/boss/NewSeIdx_9.go
Normal file
15
logic/service/fight/boss/NewSeIdx_9.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package effect
|
||||
|
||||
import (
|
||||
"blazing/logic/service/fight/input"
|
||||
)
|
||||
|
||||
// 9. 如果mon被打到BurstRecoverHP以下, 且没有挂掉, 则马上恢复到满HP;(a1: burst_hp high-32, a2: burst_hp low-32)
|
||||
// TODO: 实现如果mon被打到BurstRecoverHP以下, 且没有挂掉, 则马上恢复到满HP;(a1: burst_hp high-32, a2: burst_hp low-32)的核心逻辑
|
||||
type NewSel9 struct {
|
||||
NewSel0
|
||||
}
|
||||
|
||||
func init() {
|
||||
input.InitEffect(input.EffectType.NewSel, 9, &NewSel9{})
|
||||
}
|
||||
@@ -44,10 +44,8 @@ func (e *Effect41) Damage_DIV_ex(t *info.DamageZone) bool {
|
||||
if e.Ctx().SkillEntity.Category() == info.Category.STATUS {
|
||||
return true
|
||||
}
|
||||
if e.Ctx().SkillEntity.Type().Secondary != nil {
|
||||
return true
|
||||
}
|
||||
if e.Ctx().SkillEntity.Type().Primary != element.ElementTypeFire {
|
||||
|
||||
if e.Ctx().SkillEntity.Type != int(element.ElementTypeFire) {
|
||||
return true
|
||||
}
|
||||
if t.Type == info.DamageType.Red {
|
||||
|
||||
@@ -22,10 +22,8 @@ func (e *Effect42) Damage_Mul(t *info.DamageZone) bool {
|
||||
if e.Ctx().SkillEntity == nil {
|
||||
return true
|
||||
}
|
||||
if e.Ctx().SkillEntity.Type().Secondary != nil {
|
||||
return true
|
||||
}
|
||||
if e.Ctx().SkillEntity.Type().Primary != element.ElementTypeElectric {
|
||||
|
||||
if e.Ctx().SkillEntity.Type != int(element.ElementTypeElectric) {
|
||||
return true
|
||||
}
|
||||
//fmt.Println("Effect42_o", t.Damage)
|
||||
|
||||
@@ -131,10 +131,8 @@ func (e *Flammable) Skill_Use_ex() bool {
|
||||
if e.Ctx().SkillEntity == nil {
|
||||
return true
|
||||
}
|
||||
if e.Ctx().SkillEntity.Type().Secondary != nil {
|
||||
return true
|
||||
}
|
||||
if e.Ctx().SkillEntity.Type().Primary != element.ElementTypeFire {
|
||||
|
||||
if e.Ctx().SkillEntity.Type != int(element.ElementTypeFire) {
|
||||
return true
|
||||
}
|
||||
// 获取状态效果
|
||||
|
||||
@@ -89,7 +89,7 @@ func (u *BattlePetEntity) GetMaxHP() decimal.Decimal {
|
||||
return decimal.NewFromInt(int64(u.Info.MaxHp))
|
||||
|
||||
}
|
||||
func (u *BattlePetEntity) Type() *element.ElementCombination {
|
||||
func (u *BattlePetEntity) GetType() *element.ElementCombination {
|
||||
// 1. 遍历宠物配置,查找对应元素类型ID
|
||||
|
||||
// 3. 从预加载的组合池中获取实例(无需创建,直接读取)
|
||||
|
||||
@@ -103,7 +103,7 @@ func (s *SkillEntity) Category() EnumCategory {
|
||||
}
|
||||
|
||||
// 获取技能属性
|
||||
func (s *SkillEntity) Type() *element.ElementCombination {
|
||||
func (s *SkillEntity) GetType() *element.ElementCombination {
|
||||
ret, _ := element.Calculator.GetCombination(s.Move.Type)
|
||||
return ret
|
||||
}
|
||||
@@ -168,8 +168,8 @@ func (s *SkillEntity) CriticalsameTypeBonus() decimal.Decimal {
|
||||
// 同系加成默认倍率为1.0
|
||||
sameTypeBonus := decimal.NewFromFloat(1.0)
|
||||
|
||||
skillType := s.Type()
|
||||
petType := s.Pet.Type()
|
||||
skillType := s.GetType()
|
||||
petType := s.Pet.GetType()
|
||||
|
||||
// 收集技能的所有属性(主属性必存在,次属性可能为nil)
|
||||
skillAttrs := []element.ElementType{skillType.Primary}
|
||||
|
||||
@@ -310,7 +310,7 @@ func (our *Input) CalculatePower(deftype *Input, skill *info.SkillEntity) decima
|
||||
|
||||
var typeRate decimal.Decimal
|
||||
//fmt.Println(skill.Type().ID, deftype.CurrentPet.Type().ID)
|
||||
t, _ := element.Calculator.GetOffensiveMultiplier(skill.Type().ID, deftype.CurrentPet.Type().ID)
|
||||
t, _ := element.Calculator.GetOffensiveMultiplier(skill.GetType().ID, deftype.CurrentPet.GetType().ID)
|
||||
|
||||
typeRate = decimal.NewFromFloat(t)
|
||||
// 8. DmgBindLv: 使对方受到的伤害值等于等级; 默认: 0
|
||||
|
||||
@@ -175,6 +175,9 @@ func (our *Input) Parseskill(skill *action.SelectSkillAction) {
|
||||
if skill == nil {
|
||||
return
|
||||
}
|
||||
if skill.SkillEntity == nil {
|
||||
return
|
||||
}
|
||||
|
||||
our.EffectCache = make([]Effect, 0) //先把上一回合数据清空,但是应该把本身延续类效果集成过来
|
||||
our.Effect_Lost = make([]Effect, 0)
|
||||
|
||||
@@ -205,9 +205,12 @@ func (f *FightC) resolveRound(p1Action, p2Action action.BattleActionI) {
|
||||
f.GetInputByAction(a, false).CurrentPet.Info.Hp = 1
|
||||
}
|
||||
if b2k, ok := b2.(*action.SelectSkillAction); ok {
|
||||
if b2k.SkillEntity != nil {
|
||||
if b2k.CD != nil {
|
||||
f.waittime = *b2k.CD
|
||||
}
|
||||
}
|
||||
|
||||
f.enterturn(b2.(*action.SelectSkillAction), nil)
|
||||
} else {
|
||||
if a1, ok := b2.(*action.UseItemAction); ok {
|
||||
|
||||
@@ -3869,16 +3869,16 @@ eg:
|
||||
|
||||
<Map ID="348" Name="龙王圣殿" InitX="500" InitY="470" StarExplorationID="17">
|
||||
<Bosses>
|
||||
<Boss TaskID="315" AppearTime="0 23" BossVisible="0" Name="SPT塔克林"
|
||||
<Boss Id="0" TaskID="315" AppearTime="0 23" BossVisible="0" Name="SPT塔克林"
|
||||
BonusProbability="20" BonusTotalProbability="1000" BonusID="5017" ItemBonusOutID="3" SptLevel="1">
|
||||
<BossMon MonID="274" Hp="10000" Lv="80" NewSeIdxs="1 132 113 124 58 131"/>
|
||||
<!--<BossMon MonID="274" Hp="10000" Lv="60" NewSeIdxs="1 132 113 124 58 131"/>-->
|
||||
</Boss>
|
||||
<Boss TaskID="314" AppearTime="0 23" BossVisible="0" Name="SPT塔西亚"
|
||||
<Boss Id="1" TaskID="314" AppearTime="0 23" BossVisible="0" Name="SPT塔西亚"
|
||||
BonusProbability="20" BonusTotalProbability="1000" BonusID="5017" ItemBonusOutID="4" SptLevel="1">
|
||||
<BossMon MonID="391" Hp="5000" Lv="70" NewSeIdxs="2 48 53 58 79 110"/>
|
||||
</Boss>
|
||||
<Boss TaskID="311" AppearTime="0 23" BossVisible="0" Name="SPT哈莫雷特"
|
||||
<Boss Id="2" TaskID="311" AppearTime="0 23" BossVisible="0" Name="SPT哈莫雷特"
|
||||
BonusProbability="20" BonusTotalProbability="1000" BonusID="5017" ItemBonusOutID="2" SptLevel="1">
|
||||
<BossMon MonID="216" Hp="10000" Lv="80" NewSeIdxs="1 2 10 89 90"/>
|
||||
<!--<BossMon MonID="216" Hp="8000" Lv="70" NewSeIdxs="1 2 89 90"/>-->
|
||||
|
||||
Reference in New Issue
Block a user