Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / buff / charge / Cha_Hurt.cs
@小李xl 小李xl on 22 Mar 2024 1012 bytes 道具逻辑片段更新参数描述
  1.  
  2. using System.Text.Json;
  3.  
  4. [ChargeFragment(
  5. "Hurt",
  6. "造成伤害充能",
  7. Arg1 = "(int)充满能量需要造成的伤害值"
  8. )]
  9. public class Cha_Hurt : ChargeFragment
  10. {
  11. private int _value = 100;
  12.  
  13. public override void InitParam(JsonElement[] arg)
  14. {
  15. _value = arg[0].GetInt32();
  16. }
  17.  
  18. public override void OnUse()
  19. {
  20. }
  21.  
  22. public override void Process(float delta)
  23. {
  24. if (Master.IsUsing)
  25. {
  26. Master.ChargeProgress = 1 - Master.UsingProgress;
  27. }
  28. }
  29.  
  30. public override void OnUsingFinish()
  31. {
  32. Master.ChargeProgress = 0;
  33. }
  34.  
  35. public override void OnPickUpItem()
  36. {
  37. Role.OnDamageEvent += OnDamageEvent;
  38. }
  39.  
  40. public override void OnRemoveItem()
  41. {
  42. Role.OnDamageEvent -= OnDamageEvent;
  43. }
  44.  
  45. private void OnDamageEvent(Role role, int value)
  46. {
  47. if (Master.IsUsing)
  48. {
  49. return;
  50. }
  51. Master.ChargeProgress += 1f / _value * value;
  52. }
  53. }