Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / buff / fragment / Buff_OffsetInjury.cs
@小李xl 小李xl on 14 Mar 2024 730 bytes 重构buff中
  1.  
  2. [Buff("OffsetInjury", "受伤时有概率抵消伤害的buff, 参数‘1’为抵消伤害概率百分比(小数)")]
  3. public class Buff_OffsetInjury : BuffFragment
  4. {
  5. private float _value;
  6.  
  7. public override void InitParam(float arg1)
  8. {
  9. _value = arg1;
  10. }
  11.  
  12. public override void OnPickUpItem()
  13. {
  14. Role.RoleState.CalcHurtDamageEvent += CalcHurtDamageEvent;
  15. }
  16.  
  17. public override void OnRemoveItem()
  18. {
  19. Role.RoleState.CalcHurtDamageEvent -= CalcHurtDamageEvent;
  20. }
  21.  
  22. private void CalcHurtDamageEvent(int originDamage, RefValue<int> refValue)
  23. {
  24. if (refValue.Value > 0 && Utils.Random.RandomBoolean(_value))
  25. {
  26. refValue.Value = 0;
  27. }
  28. }
  29. }