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