-
- /// <summary>
- /// 道具基类
- /// </summary>
- public abstract partial class Prop : ActivityObject, IPackageItem
- {
- public Role Master { get; set; }
-
- public int PackageIndex { get; set; } = -1;
-
- /// <summary>
- /// 当被动被道具被拾起时调用
- /// </summary>
- /// <param name="master">拾起该道具的角色</param>
- protected abstract void OnPickUp(Role master);
-
- /// <summary>
- /// 当被动道具被移除时调用
- /// </summary>
- /// <param name="master">移除该道具的角色</param>
- protected abstract void OnRemove(Role master);
-
-
- /// <summary>
- /// 如果道具放入了角色背包中, 则每帧调用
- /// </summary>
- public virtual void PackProcess(float delta)
- {
- }
-
- public override void Interactive(ActivityObject master)
- {
- if (master is Role role)
- {
- Pickup();
- Master = role;
- role.PushProp(this);
- OnPickUp(role);
- }
- }
-
- public override CheckInteractiveResult CheckInteractive(ActivityObject master)
- {
- if (master is Player)
- {
- return new CheckInteractiveResult(this, true, ResourcePath.resource_sprite_ui_icon_icon_pickup_png);
- }
- return base.CheckInteractive(master);
- }
-
- public void OnRemoveItem()
- {
-
- }
-
- public void OnPickUpItem()
- {
-
- }
-
- public void OnActiveItem()
- {
-
- }
-
- public void OnConcealItem()
- {
-
- }
-
- public void OnOverflowItem()
- {
-
- }
- }