using CommonAI.Zone;
using XmdsCommon.Plugin;
using XmdsCommonServer.Plugin;
using XmdsCommonSkill.Plugin.Buffs;
using XmdsCommonServer.XLS.Data;
using XmdsCommonServer.Plugin.XmdsSkillTemplate.DamageCalculator;
using CommonLang;
namespace XmdsCommonSkill.Plugin.Skills.Monster
{
///
/// 岩浆狂徒 - 熔岩重生:立即恢复自己x%生命,并在接下来5秒内总计恢复y点生命.
///
public class Monster_10690302 : XmdsSkillBase
{
///
/// 技能ID.
///
public static int ID = 10690302;
/// 回血(不可打断)
public static int Buff_ID = (int)XmdsBuffBase.XmdsBuffList.HUI_XUE_DA_DUAN;
public static XmdsSkillValue Buff_Value;
/// 立即恢复
public static XmdsSkillValue Buff_Value2;
public override int SkillID { get { return ID; } }
protected override void OnSkillDamagePerEvent(BattleParams param)
{
param.SkillDamagePer = 0;
}
protected override void OnskillDamageModifyEvent(BattleParams param)
{
float v = GetTargetFormulaValue(param.GameSkill.SkillLevel, Buff_Value) * 1.0f / XmdsDamageCalculator.PERER;
int ret = CUtils.CastInt(v * param.Attacker.mUnit.MaxHP);
param.SkillDamageModify = ret;
}
protected override void OnRegistEvent()
{
this.RegistEvent(EventType.UseFormluaType, OnUseFormluaTypeEvent);
base.OnRegistEvent();
}
private void OnUseFormluaTypeEvent(BattleParams param)
{
param.UseDamageType = CommonAI.Data.DamageType.Heal;
}
protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template)
{
XmdsBuffPack pack = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(Buff_ID);
XmdsBuff_AddHP buff = (XmdsBuff_AddHP)pack.GetXmdsBuff(XmdsBuffProperties.XmdsBuffAbility.AddHP);
buff.RemoveOnHit = false; // 不可打断
BuffTemplate bt = pack.mBuffTemplate;
bt.IsHarmful = false;
pack.BindTemplateAndDispose();
unit.RegistSendBuff(bt);
}
protected override void OnSkillLogicEvent(BattleParams param)
{
XmdsBuff_AddHP buff = (XmdsBuff_AddHP)param.Attacker.GetRegisBuffVirtual(Buff_ID);
int v = GetTargetFormulaValue(param.GameSkill.SkillLevel, Buff_Value2);
v = CUtils.CastInt(v / (5));
buff.ChangeValue = v;
BuffTemplate bt = param.Attacker.GetRegistBuff(Buff_ID);
bt.LifeTimeMS = 5000;
param.Attacker.mUnit.AddBuff(Buff_ID);
}
protected override void OnInitSkillParam()
{
XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID);
InitData(data, out Buff_Value, XmdsSkillData.XmdsSkillDataKey.ValueSet);
InitData(data, out Buff_Value2, XmdsSkillData.XmdsSkillDataKey.ValueSet2);
}
}
}