示例#1
0
        public void ForceDrop()
        {
            _holdResetTime = 0;

            if (MyBuff != null)
            {
                MyBuff.BuffHasExpired = true;
                MyBuff = null;
            }
        }
示例#2
0
        public virtual void HoldObjectCallback(NewBuff b)
        {
            if (b == null)
            {
                HolderDied();
            }

            else if (Holder != null)
            {
                MyBuff            = (HoldObjectBuff)b;
                MyBuff.HeldObject = this;
                OnBuffCallback?.Invoke(b);
            }
        }
        public void FlagBuffAssigned(NewBuff b)
        {
            HoldObjectBuff hB = (HoldObjectBuff)b;

            switch (hB.HeldObject.RealmCapturableFor)
            {
            case Realms.REALMS_REALM_ORDER:
                hB.FlagEffect = FLAG_EFFECTS.Red;
                break;

            case Realms.REALMS_REALM_DESTRUCTION:
                hB.FlagEffect = FLAG_EFFECTS.Blue;
                break;

            default:
                hB.FlagEffect = FLAG_EFFECTS.Mball1;
                break;
            }

            hB.Target.BuffInterface.QueueBuff(new BuffQueueInfo(hB.Target, 40, AbilityMgr.GetBuffInfo(14323)));
        }
示例#4
0
        public void ResetTo(EHeldState newState)
        {
            if (MyBuff != null)
            {
                MyBuff.BuffHasExpired = true;
                MyBuff = null;
            }

            if (HeldState == newState)
            {
                return;
            }

            SetHeldState(newState);

            if (Holder == null)
            {
                ClearRange();
            }

            X = Zone.CalculPin((uint)HomePosition.X, true);
            Y = Zone.CalculPin((uint)HomePosition.Y, false);
            Z = HomePosition.Z;

            WorldPosition.X = HomePosition.X;
            WorldPosition.Y = HomePosition.Y;
            WorldPosition.Z = HomePosition.Z;

            SetOffset((ushort)(WorldPosition.X >> 12), (ushort)(WorldPosition.Y >> 12));

            Region.UpdateRange(this, true);

            OnResetAction?.Invoke(this);

            Holder = null;
        }