Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / buff / buff / Buff_MaxShield.cs
@小李xl 小李xl on 22 Mar 2024 783 bytes 道具逻辑片段更新参数描述
  1.  
  2. using System.Collections.Generic;
  3. using System.Text.Json;
  4.  
  5. [BuffFragment(
  6. "MaxShield",
  7. "增加护盾上限buff",
  8. Arg1 = "(int)增加的护盾上限值"
  9. )]
  10. public class Buff_MaxShield : BuffFragment
  11. {
  12. private List<ulong> _cacheId = new List<ulong>();
  13. private int _maxShield;
  14. public override void InitParam(JsonElement[] args)
  15. {
  16. _maxShield = args[0].GetInt32();
  17. }
  18. public override void OnPickUpItem()
  19. {
  20. Role.MaxShield += _maxShield;
  21. var instanceId = Role.GetInstanceId();
  22. if (!_cacheId.Contains(instanceId))
  23. {
  24. _cacheId.Add(instanceId);
  25. Role.Shield += _maxShield;
  26. }
  27. }
  28.  
  29. public override void OnRemoveItem()
  30. {
  31. Role.MaxShield -= _maxShield;
  32. }
  33. }