예제 #1
0
 public void SetOption(FightOptionsEnum option, FightTeam team)
 {
     bool setted = false;
     switch (option)
     {
         case FightOptionsEnum.FIGHT_OPTION_SET_SECRET:
             team.TeamOptions.isSecret = !team.TeamOptions.isSecret;
             setted = team.TeamOptions.isSecret;
             break;
         case FightOptionsEnum.FIGHT_OPTION_SET_TO_PARTY_ONLY:
             team.TeamOptions.isRestrictedToPartyOnly = !team.TeamOptions.isRestrictedToPartyOnly;
             setted = team.TeamOptions.isRestrictedToPartyOnly;
             break;
         case FightOptionsEnum.FIGHT_OPTION_SET_CLOSED:
             team.TeamOptions.isClosed = !team.TeamOptions.isClosed;
             setted = team.TeamOptions.isClosed;
             break;
         case FightOptionsEnum.FIGHT_OPTION_ASK_FOR_HELP:
             team.TeamOptions.isAskingForHelp = !team.TeamOptions.isAskingForHelp;
             setted = team.TeamOptions.isAskingForHelp;
             break;
     }
     GameFightOptionStateUpdateMessage message = new GameFightOptionStateUpdateMessage((short)Id, team.Id, (sbyte)option, setted);
     Map.Instance.Send(message);
     this.Send(message);
 }
예제 #2
0
 public void Update(GameFightOptionStateUpdateMessage msg)
 {
     if (msg == null)
     {
         throw new ArgumentNullException("msg");
     }
     Id = msg.fightId;
     GetTeam(msg.teamId).Update(msg);
 }
예제 #3
0
 public void HandleGameFightOptionStateUpdateMessage(Bot bot, GameFightOptionStateUpdateMessage 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.Update(message);
 }
예제 #4
0
        public static void GameFightOptionStateUpdateMessageTreatment(Message message, byte[] packetDatas, AccountUC account)
        {
            GameFightOptionStateUpdateMessage msg = (GameFightOptionStateUpdateMessage)message;

            using (BigEndianReader reader = new BigEndianReader(packetDatas))
            {
                msg.Deserialize(reader);
            }
            account.FightData.SetOption(msg.state, msg.option);
        }
예제 #5
0
파일: FightData.cs 프로젝트: Teles1/Cookie
 private void HandleGameFightOptionStateUpdateMessage(IAccount account, GameFightOptionStateUpdateMessage message)
 {
     if (!message.State && Options.Contains((FightOptionsEnum)message.Option))
     {
         Options.Remove((FightOptionsEnum)message.Option);
     }
     if (message.State && !Options.Contains((FightOptionsEnum)message.Option))
     {
         Options.Add((FightOptionsEnum)message.Option);
     }
 }
예제 #6
0
        public void Update(GameFightOptionStateUpdateMessage message)
        {
            FightOptionsEnum option = (FightOptionsEnum)message.Option;

            if (!message.State && Options.Contains(option))
            {
                Options.Remove(option);
            }
            else if (message.State && !Options.Contains(option))
            {
                Options.Add(option);
            }
        }
예제 #7
0
        public static void GameFightOptionStateUpdateMessageTreatment(Message message, byte[] packetDatas, AccountUC account)
        {
            GameFightOptionStateUpdateMessage msg = (GameFightOptionStateUpdateMessage)message;

            using (BigEndianReader reader = new BigEndianReader(packetDatas))
            {
                msg.Deserialize(reader);
            }
            if (account.Fight == null)
            {
                return;
            }
            if (!msg.state && account.Fight.Options.Contains((FightOptionEnum)msg.option))
            {
                account.Fight.Options.Remove((FightOptionEnum)msg.option);
            }
            if (msg.state && !account.Fight.Options.Contains((FightOptionEnum)msg.option))
            {
                account.Fight.Options.Add((FightOptionEnum)msg.option);
            }
        }
예제 #8
0
        public void Update(GameFightOptionStateUpdateMessage msg)
        {
            if (msg == null)
            {
                throw new ArgumentNullException("msg");
            }

            if (msg.fightId != Fight.Id)
            {
                logger.Warn("(GameFightOptionStateUpdateMessage) Incorrect fightid {0} instead of {1}", msg.fightId, Id);
                return;
            }

            if (msg.teamId != (int)Id)
            {
                logger.Warn("(GameFightOptionStateUpdateMessage) Incorrect teamid {0} instead of {1}", msg.fightId, Id);
                return;
            }


            switch ((FightOptionsEnum)msg.option)
            {
            case FightOptionsEnum.FIGHT_OPTION_SET_SECRET:
                IsSecret = msg.state;
                break;

            case FightOptionsEnum.FIGHT_OPTION_ASK_FOR_HELP:
                IsHelpRequested = msg.state;
                break;

            case FightOptionsEnum.FIGHT_OPTION_SET_CLOSED:
                IsClosed = msg.state;
                break;

            case FightOptionsEnum.FIGHT_OPTION_SET_TO_PARTY_ONLY:
                IsRestrictedToParty = msg.state;
                break;
            }
        }
예제 #9
0
        public void ToggleOption(FightOptionsEnum option)
        {
            bool state;

            switch (option)
            {
            case FightOptionsEnum.FIGHT_OPTION_SET_SECRET:
                IsSecret = !IsSecret;
                state    = IsSecret;
                break;

            case FightOptionsEnum.FIGHT_OPTION_SET_TO_PARTY_ONLY:
                RestrictedToParty = !RestrictedToParty;
                state             = RestrictedToParty;
                break;

            case FightOptionsEnum.FIGHT_OPTION_SET_CLOSED:
                Closed = !Closed;
                state  = Closed;
                break;

            case FightOptionsEnum.FIGHT_OPTION_ASK_FOR_HELP:
                AskingForHelp = !AskingForHelp;
                state         = AskingForHelp;
                break;

            default:
                state = false;
                break;
            }

            GameFightOptionStateUpdateMessage message = new GameFightOptionStateUpdateMessage((short)Team.Fight.Id, Team.Id, (sbyte)option, state);

            Team.Fight.Map.Instance.Send(message);
            Team.Send(message);
        }
예제 #10
0
 public static Task HandleGameFightOptionStateUpdateMessage(Account account, GameFightOptionStateUpdateMessage message)
 => Task.Run(() => account.Game.Fight.Update(message));
예제 #11
0
 public static void HandleGameFightOptionStateUpdateMessage(Bot bot, GameFightOptionStateUpdateMessage message)
 {
 }
예제 #12
0
 private void GameFightOptionStateUpdateMessageHandler(DofusClient client,
                                                       GameFightOptionStateUpdateMessage message)
 {
     //
 }