// ***********************************************************************
// Assembly : Game
// Author : Kimch
// Created : 2021-01-03
// Description :
// Last Modified By :
// Last Modified On :
// ***********************************************************************
//
//
// ***********************************************************************
using F;
using F.Network;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace G
{
///
/// 排行榜
///
public class RankingProxy : F.GameProxy
{
#if UNITY_IOS
public static int ENDLESS_RANKING_ID = 1;
public static int PET_RANKING_ID = 2;
public static int BATTLE_RANKING_ID = 3;
public static int RICH_RANKING_ID = 4;
public static int SWORD_RANKING_ID = 5;
#elif UNITY_ANDROID
public static int ENDLESS_RANKING_ID = 101;
public static int PET_RANKING_ID = 102;
public static int BATTLE_RANKING_ID = 103;
public static int RICH_RANKING_ID = 104;
public static int SWORD_RANKING_ID = 105;
#else
public static int ENDLESS_RANKING_ID = 201;
public static int PET_RANKING_ID = 202;
public static int BATTLE_RANKING_ID = 203;
public static int RICH_RANKING_ID = 204;
public static int SWORD_RANKING_ID = 205;
#endif
public class RankingInfo
{
///
///
///
public string userId;
///
/// 排名
///
public int ranking;
///
/// 值
///
public int value;
///
/// 名字
///
public string name;
///
/// 签名
///
public string signature;
///
/// 头像
///
public string avatar;
public bool isMy;
public string userKey
{
get { return name + ",0," + avatar; }
set
{
if (string.IsNullOrEmpty(value))
return;
var splits = value.Split(',');
if (splits != null && splits.Length >= 2)
{
name = splits[0];
signature = splits[1];
if (splits.Length >= 3)
{
avatar = splits[2];
}
isMy = userId == UserProxy.AccountID;
}
}
}
}
#region Field
private readonly Dictionary> _rankingInfos = new Dictionary>();
private readonly RankingInfo _myRankingInfo = new RankingInfo();
#endregion
#region Property
#endregion
#region Method
public RankingInfo GetMyRankingInfo(int id)
{
_myRankingInfo.isMy = true;
_myRankingInfo.userId = UserProxy.AccountID;
_myRankingInfo.name = PlayerProxy.Instance.nickName;
_myRankingInfo.avatar = PlayerProxy.Instance.headURL;
_myRankingInfo.ranking = 1000;
if (id == ENDLESS_RANKING_ID)
{
_myRankingInfo.value = LevelProxy.Instance.highestEndlessStage;
}
else if (id == PET_RANKING_ID)
{
_myRankingInfo.value = PetProxy.Instance.GetPetCombatValue();
}
else if (id == BATTLE_RANKING_ID)
{
_myRankingInfo.value = PlayerProxy.Instance.combatValue;
}
else if (id == RICH_RANKING_ID)
{
_myRankingInfo.value = MoneyProxy.Instance.coin;
}
else if (id == SWORD_RANKING_ID)
{
_myRankingInfo.value = SwordProxy.Instance.swordLevel;
}
return _myRankingInfo;
}
public IList GetRankingInfos(int id)
{
return _rankingInfos[id];
}
public RankingInfo UpdateMy(int id, int score)
{
var userInfo = ArchiveProxy.Instance.userInfo;
if (userInfo != null && userInfo.god_rank)
{
ENDLESS_RANKING_ID = 1001;
PET_RANKING_ID = 1002;
BATTLE_RANKING_ID = 1003;
RICH_RANKING_ID = 1004;
SWORD_RANKING_ID = 1005;
}
_myRankingInfo.isMy = true;
_myRankingInfo.userId = UserProxy.AccountID;
_myRankingInfo.name = PlayerProxy.Instance.nickName;
_myRankingInfo.avatar = PlayerProxy.Instance.headURL;
_myRankingInfo.ranking = 1000;
_myRankingInfo.value = score;
return _myRankingInfo;
}
///
///
///
///
public void UploadEndless(int score)
{
var rankingInfo = UpdateMy(ENDLESS_RANKING_ID, score);
ServerProxy.Instance.UploadScore(ENDLESS_RANKING_ID, score, rankingInfo.userKey);
}
///
///
///
///
public void UploadPetRanking(int score)
{
var rankingInfo = UpdateMy(PET_RANKING_ID, score);
ServerProxy.Instance.UploadScore(PET_RANKING_ID, rankingInfo.value, rankingInfo.userKey);
}
///
///
///
///
public void UploadBattleRanking(int score)
{
var rankingInfo = UpdateMy(BATTLE_RANKING_ID, score);
ServerProxy.Instance.UploadScore(BATTLE_RANKING_ID, rankingInfo.value, rankingInfo.userKey);
}
///
///
///
///
public void UploadRichRanking(int score)
{
var rankingInfo = UpdateMy(RICH_RANKING_ID, score);
ServerProxy.Instance.UploadScore(RICH_RANKING_ID, rankingInfo.value, rankingInfo.userKey);
}
public void UploadSwordRanking(int score)
{
var rankingInfo = UpdateMy(SWORD_RANKING_ID, score);
ServerProxy.Instance.UploadScore(SWORD_RANKING_ID, rankingInfo.value, rankingInfo.userKey);
}
IList