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) { }