Example #1
0
    protected void TryAddNode(Member member)
    {
        if (!CurrentNodes.Contains(member.Name))
        {
            string rankName = LeadershipRank.GetRankName(member.GetRankId());

            JObject properties = new JObject();

            properties.Add(new JProperty("id", member.Name));
            properties.Add(new JProperty("rank", rankName));
            properties.Add(new JProperty("image", Page.ResolveUrl(member.AvatarUrl)));
            properties.Add(new JProperty("flag", Page.ResolveUrl(@"~/Images/Flags/" + member.CountryCode.ToLower() + ".png")));
            properties.Add(new JProperty("countryName", member.Country));
            properties.Add(new JProperty("name", member.Name));
            properties.Add(new JProperty("status", "occupied"));


            JObject node = new JObject(
                new JProperty("data", properties));

            Nodes.Add(node);

            CurrentNodes.Add(member.Name);
        }
    }
Example #2
0
    private void AddNode(Member member)
    {
        string rankName = LeadershipRank.GetRankName(member.GetRankId());

        JObject properties = new JObject();

        properties.Add(new JProperty("id", member.MatrixId.ToString()));
        properties.Add(new JProperty("userId", member.Id));
        properties.Add(new JProperty("rank", rankName));
        properties.Add(new JProperty("image", Page.ResolveUrl(member.AvatarUrl)));
        properties.Add(new JProperty("flag", Page.ResolveUrl(@"~/Images/Flags/" + member.CountryCode.ToLower() + ".png")));
        properties.Add(new JProperty("countryName", member.Country));
        properties.Add(new JProperty("name", member.Name));
        properties.Add(new JProperty("status", "occupied"));

        string sponsor = Member.GetMemberUsername(member.ReferrerId);

        properties.Add(new JProperty("sponsor", string.IsNullOrWhiteSpace(sponsor) ? "-" : sponsor));

        properties.Add(new JProperty("leftPoints", member.MatrixBonusMoneyFromLeftLeg.ToClearString()));
        properties.Add(new JProperty("rightPoints", member.MatrixBonusMoneyFromRightLeg.ToClearString()));

        FriendshipRequest friendRequest = FriendshipRequest.Get(Member.CurrentId, member.Id);
        bool areFriends =
            Member.CurrentInCache.IsFriendsWith(member) ||
            (friendRequest != null && friendRequest.Status != FriendshipRequestStatus.Rejected);

        properties.Add(new JProperty("areNotFriends", AppSettings.TitanFeatures.SocialNetworkEnabled && !areFriends));

        JObject node = new JObject(
            new JProperty("data", properties));

        Nodes.Add(node);
    }
Example #3
0
        /// <summary>
        /// ランクを統率補正に変換
        /// </summary>
        /// <param name="rank">ランク</param>
        /// <returns>統率補正 (倍)</returns>
        private double RankToPercentage(LeadershipRank rank)
        {
            switch (rank)
            {
            case LeadershipRank.F:
                return(0.8);

            case LeadershipRank.E:
                return(0.85);

            case LeadershipRank.D:
                return(0.9);

            case LeadershipRank.C:
                return(0.95);

            case LeadershipRank.B:
                return(1.0);

            case LeadershipRank.A:
                return(1.05);

            case LeadershipRank.S:
                return(1.1);

            case LeadershipRank.SS:
                return(1.15);

            case LeadershipRank.SSS:
                return(1.20);

            default:
                return(0);
            }
        }
Example #4
0
    public void InitizlizeLeadershipInfo()
    {
        if (!AppSettings.TitanFeatures.LeaderShipSystemEnabled)
        {
            return;
        }

        var userRank = RanksUsers.GetCurrentUserRank(Member.CurrentId);

        if (userRank == null)
        {
            return;
        }

        LeadershipSystemPlaceHolder.Visible = true;

        var rank = new LeadershipRank(userRank.RankId);

        if (string.IsNullOrEmpty(rank.RankName))
        {
            LeadershipSystemRankDetailLiteral.Text = rank.Rank.ToString();
        }
        else
        {
            LeadershipSystemRankDetailLiteral.Text = string.Format("{0} ({1})", rank.RankName, rank.Rank);
        }
    }
Example #5
0
        public static LeadershipRank GetRank(int userId)
        {
            LeadershipRank result     = null;
            RanksUsers     ranksUsers = RanksUsers.GetCurrentUserRank(userId);

            if (ranksUsers != null)
            {
                result = new LeadershipRank(ranksUsers.RankId);
            }

            return(result);
        }
Example #6
0
 public static LeadershipRank GetMaxRank(int userId)
 {
     return(LeadershipRank.GetMaxUserRank(userId));
 }
Example #7
0
        /// <summary>
        /// 統率力をランクに従い足し算する
        /// </summary>
        /// <param name="rank">武将が持つ統率</param>
        /// <param name="up">ランクアップ数</param>
        /// <returns>ランクアップ後統率</returns>
        private LeadershipRank AddRankLeadership(LeadershipRank rank, int up)
        {
            int upedRank = (int)rank + up;

            return((LeadershipRank)upedRank > LeadershipRank.SSS ? LeadershipRank.SSS : (LeadershipRank)upedRank);
        }
Example #8
0
    private void CreditAncestor(Member ancestor, Money servicePrice, decimal percentage, MatrixLeg leg)
    {
        try
        {
            if (percentage <= 0)
            {
                return;
            }

            Money bonus = Money.MultiplyPercent(servicePrice, percentage);

            //We are adding to left or right leg
            if (leg == MatrixLeg.Left)
            {
                ancestor.MatrixBonusMoneyFromLeftLeg += bonus;
            }
            else
            {
                ancestor.MatrixBonusMoneyFromRightLeg += bonus;
            }

            if (ancestor.MatrixBonusMoneyFromLeftLeg > AppSettings.Matrix.MatrixCyclesBonusMoneyFromLeg &&
                ancestor.MatrixBonusMoneyFromRightLeg > AppSettings.Matrix.MatrixCyclesBonusMoneyFromLeg)
            {
                int cyclesPerDay = -1;

                if (AppSettings.Matrix.MatrixCyclesFromRank)
                {
                    LeadershipRank rank = ancestor.GetRank();

                    cyclesPerDay = rank != null ? rank.MatrixCyclesPerDay : cyclesPerDay;
                }
                else
                {
                    cyclesPerDay = AppSettings.Matrix.MatrixCyclesPerDay;
                }

                //We cycle or flush out
                if (ancestor.MatrixBonusMoneyCyclesToday < cyclesPerDay)
                {
                    ancestor.MatrixBonusMoneyCyclesToday++;
                    ancestor.MatrixBonusMoneyFromLeftLeg  -= AppSettings.Matrix.MatrixCyclesBonusMoneyFromLeg;
                    ancestor.MatrixBonusMoneyFromRightLeg -= AppSettings.Matrix.MatrixCyclesBonusMoneyFromLeg;

                    if (TitanFeatures.IsTrafficThunder)
                    {
                        ancestor.AddToCommissionBalance(AppSettings.Matrix.MatrixCyclesPrizeMoney, "Matrix Cycle bonus");
                    }
                    else
                    {
                        ancestor.AddToMainBalance(AppSettings.Matrix.MatrixCyclesPrizeMoney, "Matrix Cycle bonus");
                    }

                    ancestor.IncreaseMetrixBonusEarnings(AppSettings.Matrix.MatrixCyclesPrizeMoney);
                    ancestor.Save();
                }
                else
                {
                    //We flush
                    ancestor.MatrixBonusMoneyFromLeftLeg  = Money.Zero;
                    ancestor.MatrixBonusMoneyFromRightLeg = Money.Zero;
                    ancestor.SaveMatrixId();
                }
            }
            else
            {
                ancestor.SaveMatrixId();
            }
        }
        catch (Exception ex)
        {
            ErrorLogger.Log(ex);
        }
    }