using CommonAI.Zone;
using XmdsCommonServer.Plugin;
using XmdsCommonSkill.Plugin.Buffs;
using XmdsCommonServer.XLS.Data;
using XmdsCommon.Plugin;
namespace XmdsCommonSkill.Plugin.Skills.Assassin
{
///
/// 毁伤: 对单个敌人造成x倍物攻伤害。每次攻击有几率获得x个连击点数,最多x点.
/// 刺客可通过施展其他技能消耗连击点数来造成更多伤害.
///
public class Assassin_200010 : XmdsSkillBase
{
public static int ID = 200010;
public static XmdsSkillValue DP_1;
public static int Buff_1 = (int)XmdsBuffBase.XmdsBuffList.LIAN_JI_DIAN;
/// 每次产生连击点数量.
public static XmdsSkillValue BuffCreateNum;
/// 连击点数最多点数.
/// nana: 程序特效方面已写死最高5个,故为了不误导后续维护人员,此处也写死.
public static byte BuffMaxNum = 5;
public override int SkillID { get { return ID; } }
protected override void OnSkillDamagePerEvent(BattleParams param)
{
int ret = CalDamagePer(DP_1, param.GameSkill.SkillLevel);
param.SkillDamagePer = ret;
}
protected override void OnSkillLogicEvent(BattleParams param)
{
addLianJiDian(param);
}
protected void addLianJiDian(BattleParams param)
{
BuffTemplate bt = param.Attacker.GetRegistBuff(Buff_1);
bt.LifeTimeMS = 5000;
bt.MaxOverlay = BuffMaxNum;
int count = GetTargetFormulaValue(param.GameSkill.SkillLevel, BuffCreateNum);
for (int i = 0; i < count; i++)
{
param.Attacker.mUnit.AddBuff(Buff_1, param.Attacker.mUnit);
}
}
protected override void OnInitSkillParam()
{
XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID);
InitData(data, out DP_1, XmdsSkillData.XmdsSkillDataKey.DmgRate);
InitData(data, out BuffCreateNum, XmdsSkillData.XmdsSkillDataKey.ValueSet);
}
///
/// 初始化.
///
protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template)
{
//技能技能初始化,常用作为修改BUFF能力等等.
XmdsBuffPack pack = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(Buff_1);
BuffTemplate bt = pack.mBuffTemplate;
bt.IsHarmful = false;
pack.BindTemplateAndDispose();
unit.RegistSendBuff(bt);
}
}
}