private void HandleGameActionFightDispellableEffectMessage(IAccount account, GameActionFightDispellableEffectMessage message) { if (message.Effect is FightTemporaryBoostStateEffect ftbse) { if (ftbse.TargetId != Fighter.Id) { return; } if (DurationByEffect.ContainsKey(ftbse.StateId)) { DurationByEffect.Remove(ftbse.StateId); } DurationByEffect.Add(ftbse.StateId, ftbse.TurnDuration); } else if (message.Effect is FightTemporaryBoostEffect ftbe) { switch (message.ActionId) { case 168: ((Fighter)Fighter).ActionPoints = (short)(Fighter.ActionPoints - ftbe.Delta); break; case 169: ((Fighter)Fighter).MovementPoints = (short)(Fighter.MovementPoints - ftbe.Delta); break; } } }
public void HandleGameActionFightDispellableEffectMessage(Bot bot, GameActionFightDispellableEffectMessage 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.AddEffect(message.effect, message.actionId); }
public static void GameActionFightDispellableEffectMessageTreatment(Message message, byte[] packetDatas, AccountUC account) { GameActionFightDispellableEffectMessage msg = (GameActionFightDispellableEffectMessage)message; using (BigEndianReader reader = new BigEndianReader(packetDatas)) { msg.Deserialize(reader); } account.FightData.SetEffect(msg.effect, msg.actionId); }
public void Update(GameActionFightDispellableEffectMessage message) { if (message.Effect is FightTemporaryBoostStateEffect ftbse) { if (ftbse.TargetId == PlayedFighter?.ContextualId) { if (_effectsDurations.ContainsKey(ftbse.StateId)) { _effectsDurations.Remove(ftbse.StateId); } //_account.Logger.LogWarning("", $"Added state{ftbse.StateId} for {ftbse.TurnDuration} turns."); _effectsDurations.Add(ftbse.StateId, ftbse.TurnDuration); } } else if (message.Effect is FightTemporaryBoostEffect ftbe) { if (ftbe.TargetId == PlayedFighter?.ContextualId) { PlayedFighter.Update(message.ActionId, ftbe); } } }
public static void GameActionFightDispellableEffectMessageTreatment(Message message, byte[] packetDatas, AccountUC account) { GameActionFightDispellableEffectMessage msg = (GameActionFightDispellableEffectMessage)message; using (BigEndianReader reader = new BigEndianReader(packetDatas)) { msg.Deserialize(reader); } if (account.Fight != null) { if (msg.effect is FightTemporaryBoostStateEffect) { FightTemporaryBoostStateEffect effect = (FightTemporaryBoostStateEffect)msg.effect; if (effect.targetId == account.Fight.Fighter.Id) { if (account.Fight.DurationByEffect.ContainsKey(effect.stateId)) { account.Fight.DurationByEffect.Remove(effect.stateId); } account.Fight.DurationByEffect.Add(effect.stateId, effect.turnDuration); } } else if (msg.effect is FightTemporaryBoostEffect) { FightTemporaryBoostEffect effect = (FightTemporaryBoostEffect)msg.effect; if (msg.actionId == 168) { ((BFighter)account.Fight.Fighter).ActionPoints = account.Fight.Fighter.ActionPoints - effect.delta; } else if (msg.actionId == 169) { ((BFighter)account.Fight.Fighter).MovementPoints = account.Fight.Fighter.MovementPoints - effect.delta; } } } }
public static Task HandleGameActionFightDispellableEffectMessage(Account account, GameActionFightDispellableEffectMessage message) => Task.Run(() => account.Game.Fight.Update(message));
public static void HandleGameActionFightDispellableEffectMessage(Bot bot, GameActionFightDispellableEffectMessage message) { }