/// <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; }
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(); }
/// <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; }
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; } }
public void SendWeenieError(WeenieError error) { Session.Network.EnqueueSend(new GameEventWeenieError(Session, error)); }
public void add_to_queue(int contextID, uint motion, WeenieError jumpErrorCode) { PendingMotions.AddLast(new MotionNode(contextID, motion, jumpErrorCode)); }
public void OnMoveComplete(WeenieError status) { WorldObject.OnMoveComplete(status); }
public GameEventTradeFailure(Session session, ObjectGuid item, WeenieError reason) : base(GameEventType.TradeFailure, GameMessageGroup.UIQueue, session) { Writer.WriteGuid(item); Writer.Write((uint)reason); }
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); }
// 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? }
public GameEventAttackDone(Session session, WeenieError errorType = WeenieError.None) : base(GameEventType.AttackDone, GameMessageGroup.UIQueue, session) { Writer.Write((uint)errorType); }
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); }
public GameEventWeenieError(Session session, WeenieError errorType) : base(GameEventType.WeenieError, GameMessageGroup.UIQueue, session) { Writer.Write((uint)errorType); }
public MotionNode(int contextID, uint motion, WeenieError jumpErrorCode) { ContextID = contextID; Motion = motion; JumpErrorCode = jumpErrorCode; }
/// <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)); }
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); }