go_dreamfactory/modules/game/fight/logic/FightRole.go

66 lines
1.6 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 logic
//角色可序列化数据
type FightRoleData struct {
Hp int //血量
Atk int //攻击
Def int //防御
Speed int //速度
Crit int //暴击
OperateValue float64 //行动值
Side byte //阵营 1=我 2=敌
Pos byte //站位 1~5
Rid byte //唯一标记同时也是List FightBase.Roles的索引
ALive bool //是否活着
SkillsInfo map[int]int
Skills map[int]*FightSkill
AfterSkills map[int]*FightAfterSkill
PassiveSkills []*FightPassiveSkill
Buffs []*FightBuff
}
type FightRole struct {
Data *FightRoleData
//战斗实例
FightBase FightBase
}
/// <summary>
/// 修改行动值
/// </summary>
/// <param name="num">变化到多少</param>
/// <returns>变化后新的行动值</returns>
func (this *FightRole) ModifyOperateValue(newNum float64) float64 {
this.Data.OperateValue = newNum
//记录战报
com := new(ComModifyOperate)
com.from = this.Data.Rid
com.nv = newNum
this.FightBase.FightLog.AddCommand(com)
return this.Data.OperateValue
}
/// <summary>
/// 当前是否能进行攻击行为
/// 如果有行动类控制buff如昏迷冰冻等则不能攻击
/// </summary>
/// <returns></returns>
func (this *FightRole) CanAtk() bool {
if this.Data.ALive == false {
return false
} else {
return true
}
}
/// <summary>
/// 触发SkillId技能选择的目标是TargetRid
/// </summary>
/// <param name="skillid">技能ID</param>
/// <param name="targetRid">选择的目标rid</param>
func (this *FightRole) EmitSkill(skillId int, targetRid string) {
}