Ejemplo n.º 1
0
        private void OnUnSelectAttackRoute(UserParty party)
        {
            var target    = AttackParties.SingleOrDefault(x => x.Id == party.Id);
            var userParty = UserParties.SingleOrDefault(x => x.Party.Value.Id == party.Id);

            //凸ルート編成後にユーザーパーティを消す場合があるので必ずチェックする
            if (userParty != null)
            {
                userParty.IsSelectedRoute.Value = false;
            }
            if (userParty == null)
            {
                var result = MessageBox.Show("マイパーティ一覧から既にこの編成が消えています。\nこの編成をマイパーティに追加して凸ルートから削除しますか?", "警告",
                                             MessageBoxButton.YesNoCancel);
                if (result == MessageBoxResult.Yes)
                {
                    var newParty = new UserParty(party.UserUnits, party.Comment, party.EstimateDamage);
                    Database.I.AddParty(newParty);
                }
                else if (result == MessageBoxResult.Cancel)
                {
                    return;
                }
            }
            AttackParties.Remove(target);
            CheckDoubling();
        }
Ejemplo n.º 2
0
 private void OnSelectAttackRoute(UserParty party, bool isSelect)
 {
     if (isSelect)
     {
         AttackParties.Add(new AttackRouteListElementViewModel(party, OnUnSelectAttackRoute));
     }
     else
     {
         var target = AttackParties.SingleOrDefault(x => x.Id == party.Id);
         AttackParties.Remove(target);
     }
     CheckDoubling();
 }
Ejemplo n.º 3
0
 private void SaveAttackRoute()
 {
     if (AttackParties.Count == 0)
     {
         MessageBox.Show("凸ルートを編成してください");
         return;
     }
     if (m_CurrentAttackRoute == null)
     {
         m_CurrentAttackRoute = new UserAttackRoute(AttackParties.ToArray().Select(x => x.Party), AttackRouteComment.Value);
         CurrentRouteId.Value = m_CurrentAttackRoute.Id;
     }
     else
     {
         m_CurrentAttackRoute.Save(AttackParties.Select(x => x.Party), AttackRouteComment.Value);
     }
     Database.I.SaveAttackRoute(new UserAttackRoute(m_CurrentAttackRoute));
     MessageBox.Show("保存しました");
 }
Ejemplo n.º 4
0
        private void CreateNewAttackRoute()
        {
            if (m_CurrentAttackRoute != null || AttackParties.Count > 0)
            {
                var res = MessageBox.Show("未保存の凸ルートは破棄されます。よろしいですか?", "確認", MessageBoxButton.OKCancel);
                if (res == MessageBoxResult.Cancel)
                {
                    return;
                }
            }

            AttackParties.Clear();
            m_CurrentAttackRoute     = null;
            CurrentRouteId.Value     = string.Empty;
            AttackRouteComment.Value = string.Empty;
            foreach (var vm in UserParties)
            {
                vm.IsSelectedRoute.Value = false;
            }
        }
Ejemplo n.º 5
0
        private void OnChangeUserParty(UserParty party)
        {
            var userPartyIndex = UserParties.ToList().FindIndex(x => x.Id == party.Id);

            if (userPartyIndex >= 0)
            {
                UserParties[userPartyIndex].UpdateParty(party);;
                var parties = UserParties.ToArray();
                UserParties.Clear();
                UserParties.AddRange(parties.OrderByDescending(x => x.Party.Value.CreateTime));
            }

            var attackRouteIndex = AttackParties.ToList().FindIndex(x => x.Id == party.Id);

            if (attackRouteIndex >= 0)
            {
                AttackParties[attackRouteIndex].UpdateParty(party);
                CheckDoubling();
            }
        }
Ejemplo n.º 6
0
        private void OpenAttackRoute(UserAttackRoute route)
        {
            if (m_CurrentAttackRoute != null || AttackParties.Count > 0)
            {
                var res = MessageBox.Show("未保存の凸ルートは破棄されます。よろしいですか?", "確認", MessageBoxButton.OKCancel);
                if (res == MessageBoxResult.Cancel)
                {
                    return;
                }
            }
            m_CurrentAttackRoute     = route;
            CurrentRouteId.Value     = route.Id;
            AttackRouteComment.Value = route.Comment ?? string.Empty;
            AttackParties.Clear();
            AttackParties.AddRange(route.RouteParties.Select(x => new AttackRouteListElementViewModel(x, OnUnSelectAttackRoute)));
            var routeIds = route.RouteParties.Select(x => x.Id).ToArray();

            foreach (var vm in UserParties)
            {
                vm.IsSelectedRoute.Value = routeIds.Contains(vm.Id);
            }
        }