Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / buff / buff / Buff_BulletDeviationAngle.cs
@小李xl 小李xl on 22 Mar 2024 969 bytes 道具逻辑片段更新参数描述
  1.  
  2. using System.Text.Json;
  3.  
  4. [BuffFragment(
  5. "BulletDeviationAngle",
  6. "子弹偏移角度 buff, 单位角度制, 会从上限和下限随机抽取值",
  7. Arg1 = "(float)增加子弹偏移角度下限",
  8. Arg2 = "(float)增加子弹偏移角度上限"
  9. )]
  10. public class Buff_BulletDeviationAngle : BuffFragment
  11. {
  12. private float _min;
  13. private float _max;
  14.  
  15. public override void InitParam(JsonElement[] args)
  16. {
  17. _min = args[0].GetSingle();
  18. _max = args[1].GetSingle();
  19. }
  20.  
  21. public override void OnPickUpItem()
  22. {
  23. Role.RoleState.CalcBulletDeviationAngleEvent += CalcBulletDeviationAngleEvent;
  24. }
  25. public override void OnRemoveItem()
  26. {
  27. Role.RoleState.CalcBulletDeviationAngleEvent -= CalcBulletDeviationAngleEvent;
  28. }
  29. private void CalcBulletDeviationAngleEvent(float originAngle, RefValue<float> refValue)
  30. {
  31. refValue.Value += Utils.Random.RandomRangeFloat(_min, _max);
  32. }
  33. }