public void ActionHandle(BuffHandlerVar buffHandlerVar) { Buff_DirectDamage buff = (Buff_DirectDamage)buffHandlerVar.data; if (!buffHandlerVar.GetBufferValue(out BufferValue_TargetUnits targetUnits)) { return; } GameCalNumericTool.DamageData damageData = new GameCalNumericTool.DamageData(); damageData.damageType = buff.damageType; damageData.damageValue = buff.damageValue; if (buffHandlerVar.bufferValues.TryGetValue(typeof(BufferValue_DamageAddPct), out var damageAddPct)) { damageData.damageValue = Mathf.RoundToInt((1 + ((BufferValue_DamageAddPct)damageAddPct).damageAddPct) * damageData.damageValue); } damageData.isCritical = false; SkillEffectComponent skillEffectComponent = buffHandlerVar.source.GetComponent <SkillEffectComponent>(); var effectData = skillEffectComponent.GetEffectData(buffHandlerVar.skillId); if (effectData != null) { damageData.damageValue = Mathf.RoundToInt((1 + effectData.coefficientAddPct) * damageData.damageValue); damageData.isCritical = effectData.critical; } if (!SkillHelper.tempData.ContainsKey((buffHandlerVar.source, buff.buffSignal))) { SkillHelper.tempData[(buffHandlerVar.source, buff.buffSignal)] = new Dictionary <Type, IBufferValue>();
public void ActionHandle(BuffHandlerVar buffHandlerVar) { Buff_EnhanceSkillEffect buff = (Buff_EnhanceSkillEffect)buffHandlerVar.data; if (!buffHandlerVar.GetBufferValue(out BufferValue_TargetUnits targetUnits)) { return; } foreach (var v in targetUnits.targets) { SkillEffectComponent skillEffectComponent = v.GetComponent <SkillEffectComponent>(); skillEffectComponent.AddEffectData(buff.skillId, buff.effectData); } }