public void Hide() { if (m_Ready == false) { return; } m_Ready = false; SoundUtil.PlaySE(SEID.SE_MENU_RET); if (AndroidBackKeyManager.HasInstance) { //バックキーが押された時のアクションを解除 AndroidBackKeyManager.Instance.StackPop(gameObject); } if (hideAction != null) { hideAction(scoreInfo); } gameObject.transform.DOScaleY(WindowHideScale, AnimationTime).OnComplete(() => { RewardList.Clear(); UnityUtil.SetObjectEnabledOnce(gameObject, false); m_Show = false; }); }
/// <summary> /// 根据时间创建RewardList表,第一次写入的时候判断是否同一天,然后删除三个月前的数据表 /// </summary> /// <param name="reward"></param> public void Insert(RewardList reward) { string network = Framework.GlobalParameters.IsTestnet ? "miningpooltest" : "miningpool"; string tableName = "RewardList" + System.DateTime.Now.ToString("yyyyMMdd"); StringBuilder SQL_STATEMENT = new StringBuilder(); //创建表 SQL_STATEMENT.Append($"CREATE TABLE IF NOT EXISTS `{tableName}`("); SQL_STATEMENT.Append("`Id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT 'Id',"); SQL_STATEMENT.Append("`BlockHash` VARCHAR(64) NOT NULL COMMENT '区块Hash',"); SQL_STATEMENT.Append("`MinerAddress` VARCHAR(64) NOT NULL COMMENT '钱包地址',"); SQL_STATEMENT.Append("`Hashes` BIGINT NOT NULL DEFAULT '0' COMMENT 'Hash个数',"); SQL_STATEMENT.Append("`OriginalReward` BIGINT NOT NULL DEFAULT '0' COMMENT '原始奖励',"); SQL_STATEMENT.Append("`ActualReward` BIGINT NOT NULL DEFAULT '0' COMMENT '实际奖励',"); SQL_STATEMENT.Append("`Paid` INT NOT NULL DEFAULT '0' COMMENT '是否支付 0:未支付,1已支付',"); SQL_STATEMENT.Append("`GenerateTime` BIGINT NOT NULL DEFAULT '0' COMMENT '生成时间时间戳',"); SQL_STATEMENT.Append("`PaidTime` BIGINT NOT NULL DEFAULT '0' COMMENT '支付时间时间戳',"); SQL_STATEMENT.Append("`TransactionHash` VARCHAR(64) NOT NULL COMMENT '交易Hash',"); SQL_STATEMENT.Append("`Commission` BIGINT NOT NULL DEFAULT '0' COMMENT '提成奖励',"); SQL_STATEMENT.Append("`IsCommissionProcessed` INT NOT NULL DEFAULT '0' COMMENT '提成是否发放',"); SQL_STATEMENT.Append("`CommissionProcessedTime` BIGINT COMMENT '提成发放时间'"); SQL_STATEMENT.Append(")ENGINE = InnoDB DEFAULT CHARSET = utf8 COMMENT = '奖励信息表';"); //插入数据 SQL_STATEMENT.Append($"INSERT INTO {tableName} "); SQL_STATEMENT.Append("(BlockHash, MinerAddress, Hashes, OriginalReward, ActualReward, Paid, GenerateTime, PaidTime, TransactionHash, IsCommissionProcessed, CommissionProcessedTime) "); SQL_STATEMENT.Append($"VALUES ('{reward.BlockHash}', '{reward.MinerAddress}', {reward.Hashes}, {reward.OriginalReward}, {reward.ActualReward}, {reward.Paid}, {reward.GenerateTime}, {reward.PaidTime}, '{reward.TransactionHash}', {reward.IsCommissionProcessed}, {reward.CommissionProcessedTime});"); using (MySqlConnection conn = new MySqlConnection(CacheConnectionString)) using (MySqlCommand cmd = new MySqlCommand(SQL_STATEMENT.ToString(), conn)) { cmd.Connection.Open(); cmd.CommandTimeout = 1200; cmd.ExecuteNonQuery(); } }
public void Initialize() { if (SaveManager.Instance.IsLoadedData) { InitializeByInGameSaveData(); } else { InitializeByDefault(); } currentBonusCoin = GetBonusCoin(); rewardList = new RewardList(); InGameManager.instance.gameState.OnPrepare += IncreaseCoinByPrepare; InGameManager.instance.gameState.OnComplete += IncreaseExpByBattleWin; InGameManager.instance.gameState.OnComplete += IncreaseRewardsByBattleWin; }
public List <RewardList> GetCustomUnPaidReward(int count) { string SQL_STATEMENT = "PREPARE s1 FROM 'SELECT Id, BlockHash, MinerAddress, Hashes, OriginalReward, ActualReward, Paid, GenerateTime, PaidTime, TransactionHash, IsCommissionProcessed, CommissionProcessedTime " + "FROM RewardList " + "WHERE Paid = 0 AND BlockHash IN(SELECT Hash FROM Blocks WHERE Confirmed = 1 AND IsDiscarded = 0) ORDER BY Id LIMIT ?';" + "SET @Count = 3;" + "EXECUTE s1 USING @Count;"; List <RewardList> result = null; using (MySqlConnection conn = new MySqlConnection(CacheConnectionString)) using (MySqlCommand cmd = new MySqlCommand(SQL_STATEMENT, conn)) { cmd.Connection.Open(); cmd.CommandTimeout = 1200; using (MySqlDataReader dr = cmd.ExecuteReader()) { result = new List <RewardList>(); while (dr.Read()) { RewardList reward = new RewardList(); reward.Id = GetDataValue <long>(dr, "Id"); reward.BlockHash = GetDataValue <string>(dr, "BlockHash"); reward.MinerAddress = GetDataValue <string>(dr, "MinerAddress"); reward.Hashes = GetDataValue <long>(dr, "Hashes"); reward.OriginalReward = GetDataValue <long>(dr, "OriginalReward"); reward.ActualReward = GetDataValue <long>(dr, "ActualReward"); reward.Paid = GetDataValue <int>(dr, "Paid"); reward.GenerateTime = GetDataValue <long>(dr, "GenerateTime"); reward.PaidTime = GetDataValue <long>(dr, "PaidTime"); reward.TransactionHash = GetDataValue <string>(dr, "TransactionHash"); reward.IsCommissionProcessed = GetDataValue <int>(dr, "IsCommissionProcessed"); reward.CommissionProcessedTime = GetDataValue <long?>(dr, "CommissionProcessedTime"); result.Add(reward); } } } return(result); }
//public List<Blocks> GetAllBlocks() //{ // BlocksDac dac = new BlocksDac(); // return dac.SelectAll(); //} //public Blocks GetBlockById(long id) //{ // BlocksDac dac = new BlocksDac(); // return dac.SelectById(id); //} //public Blocks GetBlockByHash(string hash) //{ // BlocksDac dac = new BlocksDac(); // return dac.SelectByHash(hash); //} //public Blocks SaveBlock(Blocks entity) //{ // BlocksDac dac = new BlocksDac(); // Blocks block = new Blocks(); // List<RewardList> list = new List<RewardList>(); // //组织Block数据 // DateTime now = Time.GetLocalDateTime(entity.Timstamp); // block.Confirmed = 0; // block.Generator = entity.Generator; // block.Hash = entity.Hash; // block.Height = entity.Height; // block.Nonce = entity.Nonce; // block.Timstamp = entity.Timstamp; // block.TotalHash = entity.TotalHash; // block.TotalReward = entity.TotalReward; // //组织RewradList数据 // ConfigurationTool tool = new ConfigurationTool(); // AwardSetting setting = tool.GetAppSettings<AwardSetting>("AwardSetting"); // double extractProportion = setting.ExtractProportion; // double serviceFeeProportion = setting.ServiceFeeProportion; // dac.Insert(block, list, now); // return block; //} public Blocks SaveBlockAndRewardLists(Blocks entity, List <RewardList> rewardLists) { BlocksDac dac = new BlocksDac(); Blocks block = new Blocks(); List <RewardList> list = new List <RewardList>(); //组织Block数据 long epoTime = Time.EpochTime; DateTime now = Time.GetLocalDateTime(epoTime); block.Confirmed = 0; block.Generator = entity.Generator; block.Hash = entity.Hash; block.Height = entity.Height; block.Nonce = entity.Nonce; block.Timstamp = epoTime; block.TotalHash = entity.TotalHash; block.TotalReward = entity.TotalReward; block.IsRewardSend = 0; //组织RewradList数据 foreach (var item in rewardLists) { RewardList reward = new RewardList(); reward.BlockHash = item.BlockHash; reward.GenerateTime = item.GenerateTime; reward.Hashes = item.Hashes; reward.MinerAddress = item.MinerAddress; reward.OriginalReward = item.OriginalReward; reward.ActualReward = item.ActualReward; reward.Paid = 0; reward.PaidTime = Time.EpochStartTime.Millisecond; reward.IsCommissionProcessed = 0; reward.CommissionProcessedTime = 0; //此处transaction为"",需要奖励真正发放后才会更新奖励的交易Hash reward.TransactionHash = ""; reward.RewardType = item.RewardType; reward.DepositTotalAmount = item.DepositTotalAmount; reward.AddressDepositTotalAmount = item.AddressDepositTotalAmount; reward.DepositTransactionHash = item.DepositTransactionHash; list.Add(reward); } dac.Insert(block, list, now); return(block); }
public RewardList InsertRewardList(RewardList entity) { RewardListDac dac = new RewardListDac(); //if (dac.IsExisted(entity.BlockHash)) //{ // throw new Exception("block hash has existed"); //} //调接口获取奖励 //AuthenticationHeaderValue authHeaderValue = null; //RpcClient client = new RpcClient(new Uri(MiningPoolSetting.API_URI), authHeaderValue, null, null, "application/json"); //RpcRequest request = RpcRequest.WithParameterList("GetBlockReward", new List<object> { entity.BlockHash }, 1); //RpcResponse response = await client.SendRequestAsync(request); //if (response.HasError) //{ // throw new ApiCustomException(response.Error.Code, response.Error.Message); //} //long totalReward = response.GetResult<long>(); RewardList reward = new RewardList(); AwardSetting setting = ConfigurationTool.GetAppSettings <AwardSetting>("OmniCoin.MiningPool.Business.conf.json", "AwardSetting"); //double extractProportion = setting.ExtractProportion; //double serviceFeeProportion = setting.ServiceFeeProportion; reward.BlockHash = entity.BlockHash; reward.GenerateTime = entity.GenerateTime; reward.Hashes = entity.Hashes; reward.MinerAddress = entity.MinerAddress; reward.OriginalReward = entity.OriginalReward; //reward.ActualReward = Convert.ToInt64(entity.OriginalReward * extractProportion); reward.ActualReward = Convert.ToInt64(entity.OriginalReward); reward.Paid = 0; reward.PaidTime = Framework.Time.EpochStartTime.Millisecond; reward.IsCommissionProcessed = 0; reward.CommissionProcessedTime = 0; //此市transaction为“”,需要同步后才能写数据进去 reward.TransactionHash = entity.TransactionHash; dac.Insert(reward); return(reward); }
public List <RewardList> GetUnPaidRewardBlock() { const string SQL_STATEMENT = "SELECT Id, BlockHash, MinerAddress, Hashes, OriginalReward, ActualReward, Paid, GenerateTime, PaidTime, TransactionHash, IsCommissionProcessed, CommissionProcessedTime " + "FROM RewardList " + "WHERE Paid = 0 AND BlockHash = (SELECT BlockHash FROM RewardList WHERE Paid = 0 LIMIT 1) ORDER BY Id;"; List <RewardList> result = null; using (MySqlConnection conn = new MySqlConnection(CacheConnectionString)) using (MySqlCommand cmd = new MySqlCommand(SQL_STATEMENT, conn)) { cmd.Connection.Open(); cmd.CommandTimeout = 1200; using (MySqlDataReader dr = cmd.ExecuteReader()) { result = new List <RewardList>(); while (dr.Read()) { RewardList reward = new RewardList(); reward.Id = GetDataValue <long>(dr, "Id"); reward.BlockHash = GetDataValue <string>(dr, "BlockHash"); reward.MinerAddress = GetDataValue <string>(dr, "MinerAddress"); reward.Hashes = GetDataValue <long>(dr, "Hashes"); reward.OriginalReward = GetDataValue <long>(dr, "OriginalReward"); reward.ActualReward = GetDataValue <long>(dr, "ActualReward"); reward.Paid = GetDataValue <int>(dr, "Paid"); reward.GenerateTime = GetDataValue <long>(dr, "GenerateTime"); reward.PaidTime = GetDataValue <long>(dr, "PaidTime"); reward.TransactionHash = GetDataValue <string>(dr, "TransactionHash"); reward.IsCommissionProcessed = GetDataValue <int>(dr, "IsCommissionProcessed"); reward.CommissionProcessedTime = GetDataValue <long?>(dr, "CommissionProcessedTime"); result.Add(reward); } } } return(result); }
public override Empty AddRewardList(RewardList input) { AssertSenderIsAdmin(); foreach (var map in input.RewardMap) { State.RewardMap[map.Key] = map.Value; } if (State.RewardCodeList.Value == null) { State.RewardCodeList.Value = new StringList { Value = { input.RewardMap.Keys } }; } else { State.RewardCodeList.Value.Value.AddRange(input.RewardMap.Keys); } return(new Empty()); }
/// <summary> /// 固定地址的发奖励,测试发消息队列专用 /// </summary> /// <param name="tableName"></param> /// <param name="blockHashes"></param> /// <param name="addresses"></param> /// <returns></returns> public List <RewardList> GetAllUnPaidRewardByAddresses(string tableName, string blockHashes, string addresses) { string SQL_STATEMENT = $"SELECT Id, BlockHash, MinerAddress, Hashes, OriginalReward, ActualReward, Paid, GenerateTime, PaidTime, TransactionHash, IsCommissionProcessed, CommissionProcessedTime FROM {tableName} WHERE Paid = 0 AND BlockHash IN ({blockHashes}) AND MinerAddress IN ({addresses});"; List <RewardList> result = null; using (MySqlConnection conn = new MySqlConnection(CacheConnectionString)) using (MySqlCommand cmd = new MySqlCommand(SQL_STATEMENT, conn)) { cmd.Connection.Open(); cmd.CommandTimeout = 1200; using (MySqlDataReader dr = cmd.ExecuteReader()) { result = new List <RewardList>(); while (dr.Read()) { RewardList reward = new RewardList(); reward.Id = GetDataValue <long>(dr, "Id"); reward.BlockHash = GetDataValue <string>(dr, "BlockHash"); reward.MinerAddress = GetDataValue <string>(dr, "MinerAddress"); reward.Hashes = GetDataValue <long>(dr, "Hashes"); reward.OriginalReward = GetDataValue <long>(dr, "OriginalReward"); reward.ActualReward = GetDataValue <long>(dr, "ActualReward"); reward.Paid = GetDataValue <int>(dr, "Paid"); reward.GenerateTime = GetDataValue <long>(dr, "GenerateTime"); reward.PaidTime = GetDataValue <long>(dr, "PaidTime"); reward.TransactionHash = GetDataValue <string>(dr, "TransactionHash"); reward.IsCommissionProcessed = GetDataValue <int>(dr, "IsCommissionProcessed"); reward.CommissionProcessedTime = GetDataValue <long?>(dr, "CommissionProcessedTime"); result.Add(reward); } } } return(result); }
public RewardList SelectByHash(string hash) { const string SQL_STATEMENT = "SELECT Id, BlockHash, MinerAddress, Hashes, OriginalReward, ActualReward, Paid, GenerateTime, PaidTime, TransactionHash, IsCommissionProcessed, CommissionProcessedTime " + "FROM RewardList WHERE BlockHash=@Hash LIMIT 1;"; RewardList reward = null; using (MySqlConnection conn = new MySqlConnection(CacheConnectionString)) using (MySqlCommand cmd = new MySqlCommand(SQL_STATEMENT, conn)) { cmd.Parameters.AddWithValue("@Hash", hash); cmd.Connection.Open(); cmd.CommandTimeout = 1200; using (MySqlDataReader dr = cmd.ExecuteReader()) { while (dr.Read()) { reward = new RewardList(); reward.Id = GetDataValue <long>(dr, "Id"); reward.BlockHash = GetDataValue <string>(dr, "BlockHash"); reward.MinerAddress = GetDataValue <string>(dr, "MinerAddress"); reward.Hashes = GetDataValue <long>(dr, "Hashes"); reward.OriginalReward = GetDataValue <long>(dr, "OriginalReward"); reward.ActualReward = GetDataValue <long>(dr, "ActualReward"); reward.Paid = GetDataValue <int>(dr, "Paid"); reward.GenerateTime = GetDataValue <long>(dr, "GenerateTime"); reward.PaidTime = GetDataValue <long>(dr, "PaidTime"); reward.TransactionHash = GetDataValue <string>(dr, "TransactionHash"); reward.IsCommissionProcessed = GetDataValue <int>(dr, "IsCommissionProcessed"); reward.CommissionProcessedTime = GetDataValue <long?>(dr, "CommissionProcessedTime"); } } } return(reward); }
private void ShowNextReward(CUIEvent firstIfNull) { if ((firstIfNull != null) || ((this._rewardShowList == null) && (this._rewardQueueIndex <= -1))) { if (this._rewardShowList == null) { this._rewardQueueIndex++; if (this._rewardQueueIndex >= this._rewardListQueue.Count) { Singleton <CUIEventManager> .GetInstance().RemoveUIEventListener(enUIEventID.Common_NewHeroOrSkinFormClose, new CUIEventManager.OnUIEventHandler(this.ShowNextReward)); Singleton <CUIEventManager> .GetInstance().RemoveUIEventListener(enUIEventID.Mall_Get_AWARD_CLOSE_FORM, new CUIEventManager.OnUIEventHandler(this.ShowNextReward)); this._rewardListQueue.Clear(); this._rewardQueueIndex = -1; this._rewardShowIndex = -1; return; } this._rewardShowList = this._rewardListQueue[this._rewardQueueIndex]; this._rewardShowIndex = -1; this._rewardHasSpecial = false; } while ((((++this._rewardShowIndex < this._rewardShowList.usabList.Count) && (this._rewardShowList.usabList[this._rewardShowIndex].MapRewardType != COM_REWARDS_TYPE.COM_REWARDS_TYPE_HERO)) && (this._rewardShowList.usabList[this._rewardShowIndex].MapRewardType != COM_REWARDS_TYPE.COM_REWARDS_TYPE_SKIN)) && ((this._rewardShowList.usabList[this._rewardShowIndex].MapRewardType != COM_REWARDS_TYPE.COM_REWARDS_TYPE_ITEM) || ((this._rewardShowList.usabList[this._rewardShowIndex].ExtraFromType != 1) && (this._rewardShowList.usabList[this._rewardShowIndex].ExtraFromType != 2)))) { } if (this._rewardShowIndex < this._rewardShowList.usabList.Count) { CUseable useable = this._rewardShowList.usabList[this._rewardShowIndex]; if (useable.MapRewardType == COM_REWARDS_TYPE.COM_REWARDS_TYPE_ITEM) { if (useable.ExtraFromType == 1) { CUICommonSystem.ShowNewHeroOrSkin((uint)useable.ExtraFromData, 0, enUIEventID.None, true, COM_REWARDS_TYPE.COM_REWARDS_TYPE_HERO, true, null, enFormPriority.Priority1, (uint)useable.m_stackCount, 0); } else if (useable.ExtraFromType == 2) { int extraFromData = useable.ExtraFromData; CUICommonSystem.ShowNewHeroOrSkin(0, (uint)extraFromData, enUIEventID.None, true, COM_REWARDS_TYPE.COM_REWARDS_TYPE_SKIN, true, null, enFormPriority.Priority1, (uint)useable.m_stackCount, 0); } } else if (useable is CHeroSkin) { CHeroSkin skin = useable as CHeroSkin; CUICommonSystem.ShowNewHeroOrSkin(skin.m_heroId, skin.m_skinId, enUIEventID.None, true, COM_REWARDS_TYPE.COM_REWARDS_TYPE_SKIN, true, null, enFormPriority.Priority1, 0, 0); } else { CUICommonSystem.ShowNewHeroOrSkin(useable.m_baseID, 0, enUIEventID.None, true, COM_REWARDS_TYPE.COM_REWARDS_TYPE_HERO, true, null, enFormPriority.Priority1, 0, 0); } this._rewardHasSpecial = true; } else if ((this._rewardShowList.usabList.Count > 1) || !this._rewardHasSpecial) { bool flag = (this._rewardShowList.flags & 2) > 0; Singleton <CUIManager> .GetInstance().OpenAwardTip(LinqS.ToArray <CUseable>(this._rewardShowList.usabList), Singleton <CTextManager> .GetInstance().GetText(!flag ? "gotAward" : "gotExtraAward"), true, enUIEventID.None, false, false, "Form_Award"); this._rewardShowList = null; } else { this._rewardShowList = null; this.ShowNextReward(new CUIEvent()); } } }
public static void SaveRewards(string startMsgId, long nonce, int height) { try { var block = RedisManager.Current.GetDataInRedis <BlockMsg>(startMsgId); if (block == null || block.Header.Height == 0) { return; } var miners = GetAllMiners(); var rewardAddresses = miners.Select(x => x.Address); Blocks blocks = new Blocks(); blocks.Generator = block.Header.GeneratorId; blocks.Hash = block.Header.GetHash(); blocks.Height = block.Header.Height; blocks.Nonce = nonce; var baseReward = POC.GetNewBlockReward(block.Header.Height); var totalReward = block.Transactions[0].Outputs[0].Amount; if (totalReward < baseReward) { totalReward = baseReward; } var totalRewardAllMiner = totalReward * 0.4; var totalRewardSuperNode = totalReward * 0.2; var totalRewardDepositInterest = totalReward * 0.4;//存币利息,需要派分到当前存币大于1的地址 var rewards = new List <RewardList>(); //矿工部分 long totalEffort = 0; foreach (var address in rewardAddresses) { var key = "Pool:MinerMaxNonce:" + address; var maxNonce = RedisManager.Current.GetDataInRedis <string>(key); if (string.IsNullOrEmpty(maxNonce)) { continue; } var effort = int.Parse(maxNonce); RewardList rewardList = new RewardList(); rewardList.BlockHash = blocks.Hash; rewardList.GenerateTime = blocks.Timstamp; rewardList.MinerAddress = address; rewardList.Hashes = effort; rewardList.TransactionHash = ""; rewardList.RewardType = 0; rewards.Add(rewardList); totalEffort += effort; } rewards.ForEach(x => { x.OriginalReward = (long)Math.Floor(totalRewardAllMiner * ((double)x.Hashes / (double)totalEffort)); x.ActualReward = x.OriginalReward; }); blocks.TotalHash = totalEffort; blocks.TotalReward = totalReward; //SuperNode部分 AwardSetting setting = ConfigurationTool.GetAppSettings <AwardSetting>("OmniCoin.MiningPool.Business.conf.json", "AwardSetting"); var superNodeReward = (long)totalRewardSuperNode; rewards.Add(new RewardList { OriginalReward = superNodeReward, ActualReward = superNodeReward, BlockHash = blocks.Hash, GenerateTime = blocks.Timstamp, MinerAddress = setting.SuperNodeAddress, Hashes = 0, TransactionHash = "", RewardType = 1 }); //DepositInterest部分 var currentDepositLists = new RewardListComponent().GetAllNotExpiredDeposit(); if (currentDepositLists != null && currentDepositLists.Any()) { var totalDepositAmount = currentDepositLists.Sum(x => x.Amount); currentDepositLists.ForEach(x => { //利息 = 当前数量 / 总数量 * (Coinbase * 40 % 奖励) var interest = (long)Math.Floor(totalRewardDepositInterest * ((double)x.Amount / (double)totalDepositAmount)); rewards.Add(new RewardList { OriginalReward = interest, ActualReward = interest, BlockHash = blocks.Hash, GenerateTime = blocks.Timstamp, MinerAddress = x.Address, Hashes = 0, TransactionHash = "", AddressDepositTotalAmount = x.Amount, DepositTotalAmount = totalDepositAmount, RewardType = 2, DepositTransactionHash = x.TransactionHash }); }); } var blockComponent = new BlocksComponent(); blockComponent.SaveBlockAndRewardLists(blocks, rewards); } catch (Exception ex) { LogHelper.Error(ex.ToString()); } }
private void updateRewardList() { if (scoreInfo == null) { return; } RewardList.Clear(); achieveList.Clear(); List <PacketStructUserScoreReward> viewList = new List <PacketStructUserScoreReward>(); List <PacketStructUserScoreReward> getList = new List <PacketStructUserScoreReward>(); if (scoreInfo.reward_list != null) { for (int i = 0; i < scoreInfo.reward_list.Length; i++) { if (scoreInfo.reward_list[i] == null) { continue; } if (scoreInfo.reward_list[i].type - 1 != TabIndex) { continue; } bool bAchieve = false; switch (scoreInfo.reward_list[i].type) { case 1: { if (scoreInfo.hi_score >= scoreInfo.reward_list[i].score) { bAchieve = true; } } break; case 2: { if (scoreInfo.total_score >= scoreInfo.reward_list[i].score) { bAchieve = true; } } break; } if (bAchieve) { achieveList.Add(scoreInfo.reward_list[i]); } else { viewList.Add(scoreInfo.reward_list[i]); } } } if (scoreInfo.get_list != null) { for (int i = 0; i < scoreInfo.get_list.Length; i++) { if (scoreInfo.get_list[i] == null) { continue; } if (scoreInfo.get_list[i].type - 1 != TabIndex) { continue; } getList.Add(scoreInfo.get_list[i]); } } IsActiveGetAll = false; if (achieveList.Count != 0) { achieveList.Sort((a, b) => a.score - b.score); for (int i = 0; i < achieveList.Count; i++) { ScoreRewardContext scoreReward = new ScoreRewardContext(); scoreReward.setData(achieveList[i], ScoreRewardContext.REWARD_ACHIIEVE); RewardList.Add(scoreReward); } IsActiveGetAll = true; } if (viewList.Count != 0) { viewList.Sort((a, b) => a.score - b.score); for (int i = 0; i < viewList.Count; i++) { ScoreRewardContext scoreReward = new ScoreRewardContext(); scoreReward.setData(viewList[i], ScoreRewardContext.REWARD_SHOW); RewardList.Add(scoreReward); } } if (getList.Count != 0) { getList.Sort((a, b) => a.score - b.score); for (int i = 0; i < getList.Count; i++) { ScoreRewardContext scoreReward = new ScoreRewardContext(); scoreReward.setData(getList[i], ScoreRewardContext.REWARD_GET); RewardList.Add(scoreReward); } } scrollContent.Initialize(this); }