package input import ( "blazing/logic/service/fight/action" "blazing/logic/service/fight/info" ) type Effect interface { Compare_Pre(fattack, sattack *action.SelectSkillAction) bool //比较前对优先级的修改 Fight_Start(ctx Ctx) bool //战斗开始 Turn_Start(ctx Ctx) //回合开始,注入特性 //技能命中前的返回值代表是否可以出手 ,对命中本身的修改应该是对上下文本身的修改 Skill_Hit_Pre(ctx Ctx) bool //对技能修改 行动开始前,注入视为等参数在这里实现 Skill_Hit(ctx Ctx) bool //这是是命中后的对技能的修改,比如变威力 Skill_Hit_to(ctx Ctx) bool // 技能命中前触发//预处理受击技能 被攻击方效果,比如受击时无效技能这样 Calculate_Pre(ctx Ctx) bool //视为 无视效果,相当于这里对敌方的修改 OnSkill(ctx Ctx) bool // 触发on miss onhit //Skill_Can(ctx Ctx) bool //使用技能 可以取消用技能节点 技能无效节点锁定伤害加上 Damage_ADD(ctx Ctx) bool // 攻击前触发 ,这时候就是+区间 Damage_Mul(ctx Ctx) bool // 攻击触发 Damage_Floor(ctx Ctx) bool // 保底伤害 Damage_DIV(ctx Ctx) bool //受击前触发 这时候就是百分比减伤区间 Damage_SUB(ctx Ctx) bool // 受击触发 这时候就是点数减伤 Damage_Lock(ctx Ctx) bool //锁定伤害 Damage_Locked(ctx Ctx) bool //被动方锁定伤害 Damage_Shield(ctx Ctx) bool // 护盾值变化时触发 //Damage_Use(ctx Ctx) bool // 伤害作用 Skill_Use(ctx Ctx) bool //技能PP减少节点 Skill_Useed(ctx Ctx) bool //技能PP减少节点 //OnDefeat(opp *Input) bool // 精灵被击败时触发 OnSwitchIn(ctx Ctx) bool // 精灵出战 / 上场时触发 OnSwitchOut(ctx Ctx) bool // 精灵下场时触发 // OnOwnerSwitchIn(ctx Ctx) bool // 所属玩家精灵出战时触发 // OnOwnerSwitchOut(ctx Ctx) bool // 所属玩家精灵下场时触发 Turn_End(ctx Ctx) //回合结束计算 PreBattleEnd(ctx Ctx) bool //战斗结束前 OnBattleEnd(ctx Ctx) bool //战斗结束 Prop_Befer(in *Input, prop, level int8, ptype info.EnumAbilityOpType) bool //锁定属性 //效果添加时候应该区分主动方和被动方来确认是主动添加的还是受击添加的 //boss是进入防守方才被添加抵御异常状态效果的,boss免疫的实质是给挑战者挂载一个阻止添加给对手的debuff EFFect_Befer() SetArgs(input *Input, param ...int) GetArgs() []int // 治疗相关触发 Heal_Pre(action.BattleActionI, *int) bool // 治疗前触发 回复翻倍效果 //Heal(action.BattleActionI) bool // 治疗生效时触发 药剂反噬 //回合数,然后次数另外维护 Duration(...int) int Hit(...bool) bool Alive(...bool) bool Stack(...int) int MaxStack(...int) int //Owner(...bool) bool // 技能属主,比如寄生和镇魂歌,属主是对方) GetInput() *Input ID(...int) int //GetSkill() *BattleSkillEntity //获得技能ctx }