Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / activity / prop / buff / Buff.cs
@小李xl 小李xl on 26 Jun 2023 1 KB 移速道具
  1.  
  2. /// <summary>
  3. /// 增益被动道具
  4. /// </summary>
  5. public abstract partial class Buff : Prop
  6. {
  7. /// <summary>
  8. /// buff的拥有者
  9. /// </summary>
  10. public Role Master { get; private set; }
  11. /// <summary>
  12. /// 当被动被道具被拾起时调用
  13. /// </summary>
  14. /// <param name="master">拾起该buff的角色</param>
  15. protected abstract void OnPickUp(Role master);
  16.  
  17. /// <summary>
  18. /// 当被动道具被移除时调用
  19. /// </summary>
  20. /// <param name="master">移除该buff的角色</param>
  21. protected abstract void OnRemove(Role master);
  22.  
  23. public override void Interactive(ActivityObject master)
  24. {
  25. if (master is Role role)
  26. {
  27. Pickup();
  28. Master = role;
  29. role.PushBuff(this);
  30. OnPickUp(role);
  31. }
  32. }
  33.  
  34. public override CheckInteractiveResult CheckInteractive(ActivityObject master)
  35. {
  36. if (master is Player)
  37. {
  38. return new CheckInteractiveResult(this, true, "拾起道具", ResourcePath.resource_sprite_ui_icon_icon_pickup_png);
  39. }
  40. return base.CheckInteractive(master);
  41. }
  42. }