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
}
///
/// 修改行动值
///
/// 变化到多少
/// 变化后新的行动值
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
}
///
/// 当前是否能进行攻击行为
/// 如果有行动类控制buff,如昏迷,冰冻等,则不能攻击
///
///
func (this *FightRole) CanAtk() bool {
if this.Data.ALive == false {
return false
} else {
return true
}
}
///
/// 触发SkillId技能,选择的目标是TargetRid
///
/// 技能ID
/// 选择的目标rid
func (this *FightRole) EmitSkill(skillId int, targetRid string) {
}