using XGame.Database; namespace FL.Battle { /// /// 战斗数值结算 /// public interface ICombatCalculation { /// /// 结算伤害 /// /// /// /// void Damage(int damage, long attackerId, SkillTable skill); /// /// 结算伤害 /// /// /// void Damage(int damage, EElementType elementType); /// /// 根据技能的目标类型返回技能的触发者 /// 受击者调用 /// /// /// /// ICombatCalculation GetSkillTrigger(long skillId, ICombatCalculation attacker); /// /// 根据buff的目标类型返回buff的触发者 /// 受击者调用 /// /// /// /// ICombatCalculation GetBuffTrigger(long buffId, ICombatCalculation attacker); /// /// 触发技能 /// /// /// /// 触发概率, 默认100%触发 void TickSkill(long skillId, long targetId, int probability = 10000); /// /// 触发buff /// /// /// buff触发概率, 默认100%触发 /// 叠加层数,默认为1 /// 触发buff的技能伤害值 void TickBuff(long buffId, int probability = 10000, int addLayer = 1, int damage = 0); /// /// 攻击者触发铭文 /// 只有随从有铭文 /// /// /// /// void TickEpigraph(long targetId, EElementType skillElementType, int damage); } }