public void EndSequence(SequenceEndMessage message) { var fighter = GetFighter(message.authorId); if (fighter == null) { throw new InvalidOperationException(string.Format("Fighter {0} not found, cannot end sequence", message.authorId)); } if (SequenceEnded != null) { SequenceEnded(this, fighter); } //if ((TimeLine.CurrentPlayer != null) && (message.authorId != TimeLine.CurrentPlayer.Id)) // throw new InvalidOperationException(string.Format("EndSequence authorId {0} is not current Player {1}", message.authorId, fighter.Id)); //if (CurrentPlayer is PlayedFighter) //{ // (CurrentPlayer as PlayedFighter).Character.SendMessage(String.Format("EndSequence : of fighter {0}, CurrentPlayer {1}, TimeLine.CurrentPlayer {2}", fighter, CurrentPlayer, TimeLine.CurrentPlayer), Color.Gray); //} if (CurrentPlayer != null && CurrentPlayer.Id == message.authorId) { CurrentPlayer.NotifySequenceEnded(); } }
private void HandleSequenceEndMessage(IAccount account, SequenceEndMessage message) { if (message.AuthorId != account.Character.Id) { return; } account.Network.SendToServer(new GameActionAcknowledgementMessage(true, (sbyte)message.ActionId)); }
public void HandleSequenceEndMessage(Bot bot, SequenceEndMessage message) { if (bot == null || bot.Character == null || bot.Character.Fight == null) { logger.Error("Fight is not properly initialized."); return; // Can't handle the message } bot.Character.Fight.EndSequence(message); }
public static Task HandleSequenceEndMessage(Account account, SequenceEndMessage message) => Task.Run(async() => { if (account.Game.Character.Id == message.AuthorId) { await Task.Delay(200 * (int)account.Extensions.Fights.Configuration.FightsSpeed); await account.Network.SendMessageAsync(new GameActionAcknowledgementMessage(true, (int)message.ActionId)); } await account.Extensions.Fights.Update(message); });
public static void SequenceEndMessageTreatment(Message message, byte[] packetDatas, AccountUC account) { SequenceEndMessage msg = (SequenceEndMessage)message; using (BigEndianReader reader = new BigEndianReader(packetDatas)) { msg.Deserialize(reader); } if ((account.Fight != null) && (account.Fight.Fighter != null) && (account.Fight.Fighter.Id == msg.authorId) && (!account.IsMITM)) { GameActionAcknowledgementMessage msg2 = new GameActionAcknowledgementMessage(true, msg.sequenceType); account.SocketManager.Send(msg2); account.Fight.PerformSpellsStack(); //account.Fight.PerformMove(); } }
public static void SequenceEndMessageTreatment(Message message, byte[] packetDatas, AccountUC account) { SequenceEndMessage msg = (SequenceEndMessage)message; using (BigEndianReader reader = new BigEndianReader(packetDatas)) { msg.Deserialize(reader); } if (!account.FightData.IsDead && account.FightData.Fighter.Id == msg.authorId && !account.IsMITM && account.Fight != null && account.FightData.IsFighterTurn) { GameActionAcknowledgementMessage msg2 = new GameActionAcknowledgementMessage(true, (sbyte)msg.actionId); account.SocketManager.Send(msg2); switch (account.Fight.flag) { case -1: account.Fight.EndTurn(); break; case 1: account.Fight.ExecutePlan(); break; } } }
public async Task Update(SequenceEndMessage message) { if (!_account.Game.Fight.IsOurTurn || message.AuthorId != _account.Game.Character.Id) { return; } // If all the ennemies are dead, avoid doing something if (_account.Game.Fight.AliveEnnemiesCount == 0) { return; } // If its the end of the turn if (_endTurn && message.SequenceType == 5) { await FinishTurn(400); return; } if (_awaitingSequenceEnd) { _awaitingSequenceEnd = false; } else { return; } // Otherwise handle the spells await Task.Delay(400); Console.WriteLine("3- Calling ProcessSpells"); await ProcessSpells(); }