Ejemplo n.º 1
0
 /// <summary>
 /// コンストラクタ
 /// </summary>
 /// <param name="origin">武将データベースの武将</param>
 /// <param name="type">現在の兵種</param>
 public DeckedBusho(Busho origin, SoldierTypes type)
 {
     _originBusho        = origin;
     _currentSoldierType = type;
     _rank = 0;
     this.UpdateDeckedInfo();
 }
Ejemplo n.º 2
0
        /// <summary>
        /// すでにデッキに武将が入っているかを調べる
        /// </summary>
        /// <param name="cmpBusho">調査対象武将</param>
        /// <returns>入っていればtrue</returns>
        public bool IsContain(Busho cmpBusho)
        {
            bool cond = false;

            foreach (var decked in DeckedBushos)
            {
                if (decked.OriginBusho.Id == cmpBusho.Id)
                {
                    cond = true;
                    break;
                }
            }

            return(cond);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// デッキに武将を入れる
        /// </summary>
        /// <param name="busho">追加する武将</param>
        public void Add(Busho busho, int index = -1)
        {
            if (DeckedBushos.Count < 4 && !this.IsContain(busho))
            {
                var decked = new DeckedBusho(busho, _currentSoldierType);
                if (index >= 0)
                {
                    DeckedBushos.Insert(index, decked);
                }
                else
                {
                    DeckedBushos.Add(decked);
                }

                this.CalculateTotalStatus();
                UpdateDeckVisibility();
                OnPropertyChanged("DeckedBushos");
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 統率力補正と該当兵種の統率を計算
        /// TODO persentageを1st,2ndから計算
        /// </summary>
        /// <param name="busho">該当武将</param>
        /// <returns>統率力補正</returns>
        private double CalculatePercent(Busho busho)
        {
            var    type       = _currentSoldierType;
            double percentage = 1.0;

            if (type == SoldierTypes.Spear || type == SoldierTypes.LongSpear)
            {
                percentage             = RankToPercentage(busho.Lance) + (Rank * 0.05);
                ActualLeadershipFirst  = AddRankLeadership(busho.Lance, Rank);
                ActualLeadershipSecond = LeadershipRank.Nothing;
            }
            else if (type == SoldierTypes.Bow || type == SoldierTypes.LongBow)
            {
                percentage             = RankToPercentage(busho.Bow) + (Rank * 0.05);
                ActualLeadershipFirst  = AddRankLeadership(busho.Bow, Rank);
                ActualLeadershipSecond = LeadershipRank.Nothing;
            }
            else if (type == SoldierTypes.Horse || type == SoldierTypes.EliteHorse)
            {
                percentage             = RankToPercentage(busho.Horse) + (Rank * 0.05);
                ActualLeadershipFirst  = AddRankLeadership(busho.Horse, Rank);
                ActualLeadershipSecond = LeadershipRank.Nothing;
            }
            else if (type == SoldierTypes.Hammer)
            {
                percentage             = RankToPercentage(busho.Weapon) + (Rank * 0.05);
                ActualLeadershipFirst  = AddRankLeadership(busho.Weapon, Rank);
                ActualLeadershipSecond = LeadershipRank.Nothing;
            }
            else if (type == SoldierTypes.MountArcher)
            {
                percentage             = (RankToPercentage(busho.Horse) + RankToPercentage(busho.Bow) + (Rank * 0.05)) / 2;
                ActualLeadershipFirst  = AddRankLeadership(busho.Bow, Rank);
                ActualLeadershipSecond = busho.Horse;
            }
            else if (type == SoldierTypes.RedArms)
            {
                percentage             = (RankToPercentage(busho.Horse) + RankToPercentage(busho.Lance) + (Rank * 0.05)) / 2;
                ActualLeadershipFirst  = AddRankLeadership(busho.Horse, Rank);
                ActualLeadershipSecond = busho.Lance;
            }
            else if (type == SoldierTypes.Samurai)
            {
                percentage             = (RankToPercentage(busho.Bow) + RankToPercentage(busho.Lance) + (Rank * 0.05)) / 2;
                ActualLeadershipFirst  = AddRankLeadership(busho.Lance, Rank);
                ActualLeadershipSecond = busho.Bow;
            }
            else if (type == SoldierTypes.Gun)
            {
                percentage             = (RankToPercentage(busho.Weapon) + RankToPercentage(busho.Lance) + (Rank * 0.05)) / 2;
                ActualLeadershipFirst  = AddRankLeadership(busho.Weapon, Rank);
                ActualLeadershipSecond = busho.Lance;
            }
            else if (type == SoldierTypes.Dragoon)
            {
                percentage             = (RankToPercentage(busho.Weapon) + RankToPercentage(busho.Horse) + (Rank * 0.05)) / 2;
                ActualLeadershipFirst  = AddRankLeadership(busho.Weapon, Rank);
                ActualLeadershipSecond = busho.Horse;
            }

            if (percentage >= 1.20)
            {
                percentage = 1.20;
            }

            return(percentage);
        }