Esempio n. 1
0
        /// <summary>
        /// Called when the MoveTo process has completed
        /// </summary>
        public override void OnMoveComplete(WeenieError status)
        {
            //Console.WriteLine($"{Name}.OnMoveComplete({status})");

            if (!IsPassivePet)
            {
                base.OnMoveComplete(status);
                return;
            }

            if (status != WeenieError.None)
            {
                return;
            }

            PhysicsObj.CachedVelocity = Vector3.Zero;
            IsMoving = false;
        }
Esempio n. 2
0
        public void FinishCast(WeenieError useDone)
        {
            var castGesture = MagicState.CastGesture;

            MagicState.OnCastDone();

            //var queue = PropertyManager.GetBool("spellcast_recoil_queue").Item;

            //if (!queue)
            IsBusy = true;

            // return to magic ready stance

            /*var actionChain = new ActionChain();
             * EnqueueMotion_Force(actionChain, MotionStance.Magic, MotionCommand.Ready, castGesture);
             * actionChain.AddAction(this, () =>
             * {
             *  //if (!queue)
             *  IsBusy = false;
             *
             *  SendUseDoneEvent(useDone);
             *
             *  //Console.WriteLine("====================================");
             * });
             * actionChain.EnqueueChain();*/

            // temporarily old version:

            // return to magic combat stance
            var returnStance = new Motion(MotionStance.Magic, MotionCommand.Ready, 1.0f);

            EnqueueBroadcastMotion(returnStance);

            var actionChain = new ActionChain();

            actionChain.AddDelaySeconds(1.0f);   // TODO: get actual recoil timing
            actionChain.AddAction(this, () => {
                IsBusy = false;
                SendUseDoneEvent();
            });
            actionChain.EnqueueChain();
        }
Esempio n. 3
0
        /// <summary>
        /// Called when the MoveTo process has completed
        /// </summary>
        public virtual void OnMoveComplete(WeenieError status)
        {
            if (DebugMove)
            {
                Console.WriteLine($"{Name} ({Guid}) - OnMoveComplete({status})");
            }

            if (status != WeenieError.None)
            {
                return;
            }

            if (MonsterState == State.Return)
            {
                Sleep();
            }

            PhysicsObj.CachedVelocity = Vector3.Zero;   // ??
            IsMoving = false;
        }
Esempio n. 4
0
        public override void OnMoveComplete(WeenieError status)
        {
            //Console.WriteLine($"{Name}.OnMoveComplete({status})");
            IsMoving = false;

            if (IsPlayerMovingTo)
            {
                //OnMoveComplete_MoveTo(status);
                return;
            }

            switch (status)
            {
            case WeenieError.None:
                Attack(MeleeTarget, AttackSequence);
                break;

            default:
                Session.Network.EnqueueSend(new GameEventWeenieError(Session, status));
                HandleActionCancelAttack();
                break;
            }
        }
Esempio n. 5
0
 public void SendWeenieError(WeenieError error)
 {
     Session.Network.EnqueueSend(new GameEventWeenieError(Session, error));
 }
Esempio n. 6
0
 public void add_to_queue(int contextID, uint motion, WeenieError jumpErrorCode)
 {
     PendingMotions.AddLast(new MotionNode(contextID, motion, jumpErrorCode));
 }
Esempio n. 7
0
 public void OnMoveComplete(WeenieError status)
 {
     WorldObject.OnMoveComplete(status);
 }
Esempio n. 8
0
 public GameEventTradeFailure(Session session, ObjectGuid item, WeenieError reason)
     : base(GameEventType.TradeFailure, GameMessageGroup.UIQueue, session)
 {
     Writer.WriteGuid(item);
     Writer.Write((uint)reason);
 }
Esempio n. 9
0
        public bool TimedLogout(long timeInSeconds = 0, bool clientSessionTerminatedAbruptly = false, WeenieError weenieError = WeenieError.YouHaveBeenInPKBattleTooRecently)
        {
            Session.Network.EnqueueSend(new GameEventWeenieError(Session, weenieError));
            Session.Network.EnqueueSend(new GameMessageSystemChat($"Logging out in {timeInSeconds}s...", ChatMessageType.Magic));

            var actionChain = new ActionChain();

            actionChain.AddDelaySeconds((float)timeInSeconds);
            actionChain.AddAction(this, () =>
            {
                LogOut_Inner(clientSessionTerminatedAbruptly);
                Session.logOffRequestTime = DateTime.UtcNow;
            });
            actionChain.EnqueueChain();
            return(false);
        }
Esempio n. 10
0
 // outdated message, not found in end of retail?
 public GameEventFellowshipFellowUpdateDone(Session session, WeenieError errorType = WeenieError.None)
     : base(GameEventType.FellowshipFellowUpdateDone, GameMessageGroup.UIQueue, session)
 {
     //Writer.Write((uint)errorType);  // should this be here?
 }
Esempio n. 11
0
 public GameEventAttackDone(Session session, WeenieError errorType = WeenieError.None)
     : base(GameEventType.AttackDone, GameMessageGroup.UIQueue, session)
 {
     Writer.Write((uint)errorType);
 }
Esempio n. 12
0
 public void add_to_queue(int contextID, uint motion, WeenieError jumpErrorCode)
 {
     PendingMotions.AddLast(new MotionNode(contextID, motion, jumpErrorCode));
     PhysicsObj.IsAnimating = true;
 }
 public GameEventInventoryServerSaveFailed(Session session, WeenieError errorType = WeenieError.None)
     : base(GameEventType.InventoryServerSaveFailed, GameMessageGroup.UIQueue, session)
 {
     Writer.Write((uint)errorType);
 }
Esempio n. 14
0
 public GameEventWeenieError(Session session, WeenieError errorType)
     : base(GameEventType.WeenieError, GameMessageGroup.UIQueue, session)
 {
     Writer.Write((uint)errorType);
 }
Esempio n. 15
0
 public MotionNode(int contextID, uint motion, WeenieError jumpErrorCode)
 {
     ContextID     = contextID;
     Motion        = motion;
     JumpErrorCode = jumpErrorCode;
 }
Esempio n. 16
0
 /// <summary>
 /// Sends the GameEventUseDone network message for a player
 /// </summary>
 /// <param name="errorType">An optional error message</param>
 public void SendUseDoneEvent(WeenieError errorType = WeenieError.None)
 {
     Session.Network.EnqueueSend(new GameEventUseDone(Session, errorType));
 }
Esempio n. 17
0
    public override bool acceptMessageData(BinaryReader messageDataReader, TreeView outputTreeView)
    {
        bool handled = true;

        PacketOpcode opcode = Util.readOpcode(messageDataReader);

        switch (opcode)
        {
        case PacketOpcode.Evt_Communication__Talk_ID:     // 0x0015
        {
            var message = Talk.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Communication__PopUpString_ID:     // 0x0004
        {
            var message = PopUpString.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Communication__TalkDirect_ID:     // 0x0032
        {
            var message = TalkDirect.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Communication__TalkDirectByName_ID:     // 0x005D
        {
            var message = TalkDirectByName.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Communication__ChannelBroadcast_ID:     // 0x0147
        {
            var message = ChannelBroadcast.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        /*case PacketOpcode.Evt_Communication__SetSquelchDB_ID: // 0x01F4
         *  {
         *      var message = SetSquelchDB.read(messageDataReader);
         *      message.contributeToTreeView(outputTreeView);
         *      break;
         *  }*/
        case PacketOpcode.Evt_Communication__Emote_ID:     // 0x01DF
        {
            var message = Emote.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Communication__HearEmote_ID:     // 0x01E0
        {
            var message = HearEmote.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Communication__SoulEmote_ID:     // 0x01E1
        {
            var message = SoulEmote.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Communication__HearSoulEmote_ID:     // 0x01E2
        {
            var message = HearSoulEmote.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Communication__Recv_ChatRoomTracker_ID:     // 0x0295
        {
            var message = Recv_ChatRoomTracker.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Communication__WeenieError_ID:     // 0x028A
        {
            WeenieError message = WeenieError.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Communication__WeenieErrorWithString_ID:     // 0x028B
        {
            WeenieErrorWithString message = WeenieErrorWithString.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Communication__HearSpeech_ID:     // 0x02BB
        {
            var message = HearSpeech.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Communication__HearRangedSpeech_ID:     // 0x02BC
        {
            var message = HearRangedSpeech.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Communication__HearDirectSpeech_ID:     // 0x2BD
        {
            var message = HearDirectSpeech.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Communication__TransientString_ID:     // 0x2EB
        {
            var message = TransientString.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Communication__TextboxString_ID:     // 0xF7E0
        {
            var message = TextBoxString.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        default: {
            handled = false;
            break;
        }
        }

        return(handled);
    }