go_dreamfactory/modules/battle/fight/skill/fightskill.go
2022-10-12 10:13:04 +08:00

66 lines
1.5 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package skill
import (
"go_dreamfactory/modules/battle/fight/core"
cfg "go_dreamfactory/sys/configure/structs"
)
func NewFightSkill(role core.IFightRole, skillConf *cfg.GameSkillAtkData, skillLv int32) *FightSkill {
return &FightSkill{
fight: role.GetFight(),
ownerRole: role,
skillConf: skillConf,
skillLv: skillLv,
childSkillsId: skillConf.ChildSkill.Id,
}
}
/// <summary>
/// 主动/队长技能
/// </summary>
type FightSkill struct {
SkillBase
fight core.IFight
/// 本技能归属于哪个Role
ownerRole core.IFightRole
/// skillAtk 技能配置
skillConf *cfg.GameSkillAtkData
/// 技能等级
skillLv int32
/// 子技能id
childSkillsId []int32
}
/// 发送技能日志
func (this *FightSkill) GetSkillConf() *cfg.GameSkillAtkData {
return this.skillConf
}
/// 触发
/// 遍历所有ChildSkills生成对应的实例并Emit触发
func (this *FightSkill) Emit() {
this.fight.Debugf("主技能触发:%d", this.skillConf.Id)
var (
askill core.IAfterSkill
)
for _, v := range this.childSkillsId {
askill = this.ownerRole.GetAfterAtk(v)
askill.SetSourceSkillId(this.skillConf.Id)
for i := 0; i < int(askill.GetDoVal()); i++ {
askill.Emit()
//不管有没有释放成功都需要推送日志
this.AddSkillLog(askill.GetSkillLog())
}
}
}
///添加子技能日志
func (this *FightSkill) AddSkillLog(afterAtk *core.ComSkillAfterAtk) {
this.AfterSkillList = append(this.AfterSkillList, afterAtk)
}
/// 发送技能日志
func (this *FightSkill) SendSkillLog() {
}