/// <summary> /// 奖励物品 /// </summary> /// <param name="prize"></param> /// <returns></returns> public static void ChestGainTreasureInfo(GameUser user, DialInfo dialInfo, int count) { var treasure = new TreasureInfo(); treasure.UserID = user.UserID; treasure.Type = dialInfo.RewardType; treasure.ItemID = dialInfo.ItemID; treasure.Num = dialInfo.ItemNum; treasure.ItemLv = 1; UserDial userDial = new PersonalCacheStruct <UserDial>().FindKey(user.UserID); if (userDial == null) { userDial = new UserDial(); } userDial.GroupID = 0; userDial.RefreshDate = DateTime.Now; userDial.Treasure.Add(treasure); if (count == 0) { userDial.PrizeInfo = treasure; userDial.HeadID = dialInfo.HeadID; } if (GameConfigSet.Treasure > 0 && userDial.Treasure.Count > GameConfigSet.Treasure) { for (int i = 0; i < userDial.Treasure.Count - GameConfigSet.Treasure; i++) { userDial.Treasure.Remove(userDial.Treasure[i]); } } if (dialInfo.IsShow) { var cacheSet = new ShareCacheStruct <ServerEnvSet>(); var serverEnvSet = cacheSet.FindKey(ServerEnvKey.UserTreasure); if (serverEnvSet == null) { serverEnvSet = new ServerEnvSet(); serverEnvSet.EnvKey = ServerEnvKey.UserTreasure; cacheSet.Add(serverEnvSet); } var treasureInfoList = ServerEnvSetTreasure(treasure); serverEnvSet.EnvValue = JsonUtils.Serialize(treasureInfoList); } if (dialInfo.IsBroadcast && !string.IsNullOrEmpty(dialInfo.BroadContent)) { TjxChatService chatService = new TjxChatService(); chatService.SystemSend(ChatType.World, string.Format(dialInfo.BroadContent, user.NickName)); } if (dialInfo.RewardType == RewardType.Again || dialInfo.RewardType == RewardType.Mood || dialInfo.RewardType == RewardType.Recharge) { if (dialInfo.RewardType == RewardType.Recharge) { userDial.ReturnRatio = treasure.Num; } return; } ChestGetUserTake(treasure, user); }
/// <summary> /// 奖励配置 /// </summary> /// <param name="user"></param> public static void ChestGetUserTake(TreasureInfo prize, GameUser user) { switch (prize.Type) { case RewardType.GameGoin: user.GameCoin = MathUtils.Addition(user.GameCoin, prize.Num.ToInt()); break; case RewardType.Obtion: user.ObtainNum = MathUtils.Addition(user.ObtainNum, prize.Num.ToInt()); break; case RewardType.ExpNum: user.ExpNum = MathUtils.Addition(user.ExpNum, prize.Num.ToInt()); break; case RewardType.EnergyNum: user.EnergyNum = MathUtils.Addition(user.EnergyNum, prize.Num.ToShort()); break; case RewardType.Experience: break; case RewardType.Gold: user.GiftGold = MathUtils.Addition(user.GiftGold, prize.Num.ToInt()); break; case RewardType.Item: if (!UserAbilityHelper.UseUserItem(user.UserID, prize.ItemID)) { UserItemHelper.AddUserItem(user.UserID, prize.ItemID, prize.Num.ToInt()); } break; case RewardType.CrystalId: short crystalLv = prize.ItemLv > 0 ? prize.ItemLv : 1.ToShort(); CrystalHelper.AppendCrystal(user.UserID, prize.ItemID, crystalLv); break; case RewardType.Spare: AppendSpare(user, prize.ItemID); break; case RewardType.Enchant: short enchantLv = prize.ItemLv > 0 ? prize.ItemLv : 1.ToShort(); EnchantHelper.AppendEnchat(user.UserID, prize.ItemID, enchantLv); break; default: break; } }
public void InitiateTreasure(Vector2[] initialTreasures) { for (int i = 0; i < 7; i++) { Vector2 treasurePos = initialTreasures[i]; TreasureInfo newTreasureInfo = new TreasureInfo(); newTreasureInfo.mapPos = treasurePos; newTreasureInfo.value = i <= 2 ? 2 : (i <= 5 ? 3 : 5); newTreasureInfo.tileObject = Instantiate(i <= 2 ? treasure2Tile : (i <= 5 ? treasure3Tile : treasure5Tile), OnBoardPos(treasurePos), Quaternion.identity); treasures.Add(treasurePos, newTreasureInfo); map[(int)treasurePos.x, (int)treasurePos.y] = TileType.Treasure; } }
public static TreasureInfo GetTreasureInfo() { TreasureInfo ti = new TreasureInfo(); foreach (Treasure t in treasures.Values) { if (t.bigTreasure) { ti.bigTreasures.Add(t); } else if (t.found) { ti.littleTreasures.Add(t); } } return(ti); }
public void OpenPanel(TreasureInfo info, int steps) { CameraMovement.canBeMoved++; group.DOFade(1, 0.5f); group.interactable = true; group.blocksRaycasts = true; panel.DOAnchorPosY(-680, 0); panel.DOAnchorPosY(40, 0.5f); var level = LevelManager.me.levels.levels[MemoryCard.GetSelectedLevel()]; bigTreasure.text = "<color=red>" + info.bigTreasures.Count + "</color> de " + level.map.bigTreasures.Count; smallTreasures.text = "<color=red>" + info.littleTreasures.Count + "</color> de " + level.map.treasures.Count; this.steps.text = "<color=red>" + steps + "</color> de " + level.maxSteps; SaveProgress(info, steps); }
/// <summary> /// 트레저 목록을 가져옵니다. /// </summary> /// <returns></returns> public List <TreasureInfo> GetMaterialList() { if (this.Second == null) { return(new List <TreasureInfo>()); } List <TreasureInfo> output = new List <TreasureInfo>(); foreach (var selcted_item in this.MasterBullet.Where(x => x.FullName == this.Second).FirstOrDefault().MaterialList) { TreasureInfo temp = new TreasureInfo(); if (this.CurrentStatus == 0) { temp.Name = selcted_item.Name; temp.ItemID = selcted_item.ItemID; temp.max = selcted_item.max; } else { int calc_max = selcted_item.max; var idx = this.MasterBullet.Where(x => x.FullName == this.Second).FirstOrDefault().MasterID; List <Bullet> temp_lst = new List <Bullet>(this.MasterBullet.Where(x => x.MasterID == idx)); for (int i = 1; i <= this.CurrentStatus; i++) { List <TreasureInfo> mat_temp = new List <TreasureInfo>(temp_lst.Where(x => x.Rank == i).FirstOrDefault().MaterialList); foreach (var item in mat_temp) { if (selcted_item.ItemID == item.ItemID) { calc_max -= item.max; } } } temp.Name = selcted_item.Name; temp.ItemID = selcted_item.ItemID; temp.max = calc_max; } output.Add(temp); } return(output); }
///// <summary> ///// 获取大转盘列表ID ///// </summary> ///// <param name="userID"></param> ///// <returns></returns> //public static int DialGroupID(string userID) //{ // int groupID = 0; // int postion = 0; // var dialFreeList = new ShareCacheStruct<DialInfo>().FindAll(m => m.DialType == 1); // var dialGoldList = new ShareCacheStruct<DialInfo>().FindAll(m => m.DialType == 2); // if (dialFreeList.Count == 0 || dialGoldList.Count == 0) // { // return groupID; // } // UserDial userDial = new PersonalCacheStruct<UserDial>().FindKey(userID); // if (userDial != null) // { // int freeNum = GameConfigSet.FreeSweepstakes; // if (userDial.RefreshDate.Date == DateTime.Now.Date) // { // freeNum = MathUtils.Subtraction(freeNum, userDial.DialNum); // if (userDial.GroupID > 0) // { // groupID = userDial.GroupID; // } // else if (freeNum > 0 && userDial.GroupID == 0) // { // postion = RandomUtils.GetRandom(0, dialFreeList.Count); // var dialpostion = dialFreeList[postion]; // if (dialpostion != null) // { // groupID = dialpostion.GroupID; // } // } // else // { // postion = RandomUtils.GetRandom(0, dialGoldList.Count); // var dialpostion = dialGoldList[postion]; // if (dialpostion != null) // { // groupID = dialpostion.GroupID; // } // } // } // else // { // userDial.RefreshDate = DateTime.Now; // postion = RandomUtils.GetRandom(0, dialFreeList.Count); // var dialpostion = dialFreeList[postion]; // if (dialpostion != null) // { // groupID = dialpostion.GroupID; // } // } // userDial.GroupID = groupID; // } // else // { // var cacheSet = new PersonalCacheStruct<UserDial>(); // postion = RandomUtils.GetRandom(0, dialFreeList.Count); // var dialpostion = dialFreeList[postion]; // if (dialpostion != null) // { // groupID = dialpostion.GroupID; // } // userDial = new UserDial(); // userDial.UserID = userID; // userDial.HeadID = string.Empty; // userDial.ReturnRatio = 0; // userDial.DialNum = 0; // cacheSet.Add(userDial); // } // userDial.GroupID = groupID; // userDial.RefreshDate = DateTime.Now; // return groupID; //} ///// <summary> ///// 奖励物品 ///// </summary> ///// <param name="prize"></param> ///// <returns></returns> //public static void GainTreasureInfo(string userID, DialInfo dialInfo, int count) //{ // var treasure = new TreasureInfo(); // treasure.UserID = userID; // treasure.Type = dialInfo.RewardType; // treasure.ItemID = dialInfo.ItemID; // treasure.Num = dialInfo.ItemNum; // treasure.ItemLv = 1; // UserDial userDial = new PersonalCacheStruct<UserDial>().FindKey(userID); // if (userDial == null) // { // userDial = new UserDial(); // } // userDial.GroupID = 0; // userDial.RefreshDate = DateTime.Now; // userDial.Treasure.Add(treasure); // if (count == 0) // { // userDial.PrizeInfo = treasure; // userDial.HeadID = dialInfo.HeadID; // } // if (GameConfigSet.Treasure > 0 && userDial.Treasure.Count > GameConfigSet.Treasure) // { // for (int i = 0; i < userDial.Treasure.Count - GameConfigSet.Treasure; i++) // { // userDial.Treasure.Remove(userDial.Treasure[i]); // } // } // if (dialInfo.IsShow) // { // var cacheSet = new ShareCacheStruct<ServerEnvSet>(); // var serverEnvSet = cacheSet.FindKey(ServerEnvKey.UserTreasure); // if (serverEnvSet == null) // { // serverEnvSet = new ServerEnvSet(); // serverEnvSet.EnvKey = ServerEnvKey.UserTreasure; // cacheSet.Add(serverEnvSet); // } // var treasureInfoList = ServerEnvSetTreasure(treasure); // serverEnvSet.EnvValue = JsonUtils.Serialize(treasureInfoList); // } // if (dialInfo.IsBroadcast && !string.IsNullOrEmpty(dialInfo.BroadContent)) // { // GameUser user = new PersonalCacheStruct<GameUser>().FindKey(userID); // if (user != null) // { // TjxChatService chatService = new TjxChatService(); // chatService.SystemSend(ChatType.World, string.Format(dialInfo.BroadContent, user.NickName)); // } // } // if (dialInfo.RewardType == RewardType.Again || dialInfo.RewardType == RewardType.Mood || dialInfo.RewardType == RewardType.Recharge) // { // if (dialInfo.RewardType == RewardType.Recharge) // { // userDial.ReturnRatio = treasure.Num; // } // return; // } // var cachePrize = new ShareCacheStruct<UserTakePrize>(); // var takePrize = GetUserTake(treasure, userID); // cachePrize.Add(takePrize); //} private static List <TreasureInfo> ServerEnvSetTreasure(TreasureInfo treasure) { List <TreasureInfo> treasureList = new List <TreasureInfo>(); var cacheSet = new ShareCacheStruct <ServerEnvSet>(); var serverEnvSet = cacheSet.FindKey(ServerEnvKey.UserTreasure); if (serverEnvSet != null && !string.IsNullOrEmpty(serverEnvSet.EnvValue)) { treasureList = JsonUtils.Deserialize <List <TreasureInfo> >(serverEnvSet.EnvValue); } treasureList.Add(treasure); if (GameConfigSet.UserTreasureNum > 0 && treasureList.Count > GameConfigSet.UserTreasureNum) { for (int i = 0; i < treasureList.Count - GameConfigSet.UserTreasureNum; i++) { treasureList.Remove(treasureList[i]); } } return(treasureList); }
public IEnumerator OpenPanel(TreasureInfo info, int steps) { CameraMovement.canBeMoved++; header.transform.DOScale(0, 0); stepPanel.Hide(); diamondPanel.Hide(); foreach (var button in buttons) { button.GetComponent <RectTransform>().DOAnchorPosY(-buttonsY, 0); } group.DOFade(1, 0.5f); group.interactable = true; group.blocksRaycasts = true; yield return(new WaitForSeconds(0.5f)); header.transform.DOScale(1f, 0.5f); var level = LevelManager.me.levels.levels[MemoryCard.GetSelectedLevel()]; yield return(diamondPanel.Appear(info.littleTreasures.Count, level.map.treasures.Count)); yield return(stepPanel.Appear(steps, level.maxSteps)); SaveProgress(info, steps); bool thereIsANextLevel = MemoryCard.Load().levels.Count - 1 > MemoryCard.GetSelectedLevel(); foreach (var button in buttons) { if (!(button == nextLevel && thereIsANextLevel)) { button.GetComponent <RectTransform>().DOAnchorPosY(buttonsY, 0.1f); yield return(new WaitForSeconds(0.1f)); } } }
public void SaveProgress(TreasureInfo info, int steps) { /* * var memory = MemoryCard.Load(); * print("A: " + memory.levels[MemoryCard.GetSelectedLevel()].bigTreasures); * if (memory.levels[MemoryCard.GetSelectedLevel()].bigTreasures == 0) * { * print("NEW LEVEL UNLOCKED"); * memory.levels.Add(new LevelProgress()); * } * * memory.levels[MemoryCard.GetSelectedLevel()].steps = steps < memory.levels[MemoryCard.GetSelectedLevel()].steps ? * steps : memory.levels[MemoryCard.GetSelectedLevel()].steps; * * memory.levels[MemoryCard.GetSelectedLevel()].treasures = info.littleTreasures.Count > memory.levels[MemoryCard.GetSelectedLevel()].treasures ? * info.littleTreasures.Count : memory.levels[MemoryCard.GetSelectedLevel()].treasures; * * memory.levels[MemoryCard.GetSelectedLevel()].bigTreasures = info.bigTreasures.Count > memory.levels[MemoryCard.GetSelectedLevel()].bigTreasures ? * info.bigTreasures.Count : memory.levels[MemoryCard.GetSelectedLevel()].bigTreasures; * * memory.Save(); */ }
public void ClearGame() { for (int i = 0; i < polices.Length; i++) { Destroy(polices[i].tileObject.gameObject); polices[i] = null; } if (treasures.Count != 0) { TreasureInfo[] remainings = new TreasureInfo[treasures.Count]; treasures.Values.CopyTo(remainings, 0); for (int i = 0; i < treasures.Count; i++) { Destroy(remainings[i].tileObject); } } treasures.Clear(); for (int i = 0; i < thieves.Length; i++) { if (thieves[i] != null) { Destroy(thieves[i].tileObject.gameObject); thieves[i] = null; } } for (int x = 0; x < mapSizeX; x++) { for (int y = 0; y < mapSizeY; y++) { if (map[x, y] == TileType.Empty || map[x, y] == TileType.Treasure) { tileMap.SetTile(new Vector3Int(x - mapSizeX / 2, y - mapSizeY / 2, 0), floorTile); } } } }
public void SaveProgress(TreasureInfo info, int steps) { var memory = MemoryCard.Load(); if (memory.levels[MemoryCard.GetSelectedLevel()].bigTreasures == 0) { // Desbloquear nova fase memory.levels.Add(new LevelProgress()); } memory.levels[MemoryCard.GetSelectedLevel()].steps = steps < memory.levels[MemoryCard.GetSelectedLevel()].steps ? steps : memory.levels[MemoryCard.GetSelectedLevel()].steps; memory.levels[MemoryCard.GetSelectedLevel()].treasures = info.littleTreasures.Count > memory.levels[MemoryCard.GetSelectedLevel()].treasures ? info.littleTreasures.Count : memory.levels[MemoryCard.GetSelectedLevel()].treasures; memory.levels[MemoryCard.GetSelectedLevel()].bigTreasures = info.bigTreasures.Count > memory.levels[MemoryCard.GetSelectedLevel()].bigTreasures ? info.bigTreasures.Count : memory.levels[MemoryCard.GetSelectedLevel()].bigTreasures; memory.Save(); }
///// <summary> ///// 当日是否有免费次数 ///// </summary> ///// <param name="userID"></param> ///// <returns></returns> //public static bool IsDialFree(string userID) //{ // UserDial userDial = new PersonalCacheStruct<UserDial>().FindKey(userID); // int freeNum = GameConfigSet.FreeSweepstakes; // if (userDial != null && userDial.RefreshDate.Date == DateTime.Now.Date && userDial.DialNum >= freeNum) // { // return false; // } // return true; //} /// <summary> /// 奖励物品名称 /// </summary> /// <param name="prize"></param> /// <returns></returns> public static string PrizeItemName(TreasureInfo treasure) { string name = string.Empty; switch (treasure.Type) { case RewardType.GameGoin: name = string.Format(LanguageManager.GetLang().St_GameCoin, (int)treasure.Num); break; case RewardType.Obtion: name = string.Format(LanguageManager.GetLang().St_ObtionNum, (int)treasure.Num); break; case RewardType.ExpNum: name = string.Format(LanguageManager.GetLang().St_ExpNum, (int)treasure.Num); break; case RewardType.EnergyNum: name = string.Format(LanguageManager.GetLang().St_EnergyNum, (int)treasure.Num); break; case RewardType.Experience: name = string.Format(LanguageManager.GetLang().St_Experience, (int)treasure.Num); break; case RewardType.Gold: name = string.Format(LanguageManager.GetLang().St_GiftGoldNum, (int)treasure.Num); break; case RewardType.CrystalId: CrystalInfo crystal = new ShareCacheStruct <CrystalInfo>().FindKey(treasure.ItemID); name = crystal == null ? string.Empty : crystal.CrystalName; break; case RewardType.Item: ItemBaseInfo itemInfo = new ShareCacheStruct <ItemBaseInfo>().FindKey(treasure.ItemID); name = itemInfo == null ? string.Empty : itemInfo.ItemName; break; case RewardType.Spare: SparePartInfo sparePartInfo = new ShareCacheStruct <SparePartInfo>().FindKey(treasure.ItemID); name = sparePartInfo == null ? string.Empty : sparePartInfo.Name; break; case RewardType.Enchant: EnchantInfo enchantInfo = new ShareCacheStruct <EnchantInfo>().FindKey(treasure.ItemID); name = enchantInfo == null ? string.Empty : enchantInfo.EnchantName; break; case RewardType.Again: name = LanguageManager.GetLang().St12004_RewardSweepstakes; break; case RewardType.Mood: name = LanguageManager.GetLang().St12004_DidNotAnyReward; break; case RewardType.Recharge: name = string.Format(LanguageManager.GetLang().St12004_RechargeReturn, GetTransformData(treasure.Num)); break; } return(name); }
public UserDial() : base(AccessLevel.ReadWrite) { PrizeInfo = new TreasureInfo(); Treasure = new CacheList <TreasureInfo>(); }
public void SetInfo(CliProto.SC_TREASURE_CHEST_NTF msg) { LoadScoreEffect(sdUICharacter.Instance.fightScore); if (sdUICharacter.Instance.GetBattleType() != (byte)HeaderProto.LEVEL_BATTLE_TYPE.LEVEL_BATTLE_TYPE_ABYSS) { sdUICharacter.Instance.fightScore = 1; } if (sdFriendMgr.Instance.fightFriend != null) { sdFriend fri = sdFriendMgr.Instance.fightFriend; friName.GetComponent <UILabel>().text = fri.name; petName.GetComponent <UILabel>().text = fri.petInfo.m_strName; petFrame.GetComponent <UISprite>().spriteName = sdConfDataMgr.Instance().GetPetQuilityBorder(fri.petInfo.m_iAbility); UIAtlas atlas = null; string headName; //sdConfDataMgr.Instance().SetHeadAtlas += new sdConfDataMgr.HeadAtlas(SetAtlas); sdConfDataMgr.Instance().SetHeadPic(fri.gender, fri.hairStyle, fri.color, friIcon.GetComponent <UISprite>()); //friIcon.GetComponent<UISprite>().atlas = atlas; //friIcon.GetComponent<UISprite>().spriteName = headName; petIcon.GetComponent <UISprite>().atlas = sdConfDataMgr.Instance().PetAtlas; petIcon.GetComponent <UISprite>().spriteName = fri.petInfo.m_strIcon; friLevel.GetComponent <UILabel>().text = "Lv." + fri.level; petLevel.GetComponent <UILabel>().text = "Lv." + fri.petInfo.m_iLevel.ToString(); } float expRate = 1; float moneyRate = 1; Hashtable militarylevelTable = sdConfDataMgr.Instance().GetTable("militarylevel"); if (militarylevelTable.ContainsKey(sdPVPManager.Instance.nMilitaryLevel.ToString())) { Hashtable military = militarylevelTable[(sdPVPManager.Instance.nMilitaryLevel).ToString()] as Hashtable; expRate = float.Parse(military["experience"].ToString()) / 100 + 1; moneyRate = float.Parse(military["money"].ToString()) / 100 + 1; } exp = (int)(((float)msg.m_Experience) * expRate); money = (int)(((float)msg.m_Money) * moneyRate); Hashtable table = sdSlotMgr.Instance.GetIconList(PanelType.Panel_Jiesuan); int slotNum = 0; int num = (int)msg.m_Items.m_ItemCount; List <sdGameItem> itemList = new List <sdGameItem>(); List <sdGamePetItem> petItemList = new List <sdGamePetItem>(); List <sdGameItem> petCardList = new List <sdGameItem>(); for (int i = 0; i < num; ++i) { sdGameItem item = sdGameItemMgr.Instance.getItem(msg.m_Items.m_Items[i].m_UID); if (item == null) { sdGamePetItem petItem = sdNewPetMgr.Instance.getPetItem(msg.m_Items.m_Items[i].m_UID); if (petItem == null) { sdGameItem temp = new sdGameItem(); temp.templateID = msg.m_Items.m_Items[i].m_TID; Hashtable tempInfo = sdConfDataMgr.Instance().GetItemById(msg.m_Items.m_Items[i].m_TID.ToString()); if (tempInfo == null) { continue; } if (int.Parse(tempInfo["Class"].ToString()) == (int)HeaderProto.EItemClass.ItemClass_Pet_Item) { petCardList.Add(temp); } else { itemList.Add(temp); } continue; } petItemList.Add(petItem); continue; } item.isNew = true; itemList.Add(item); } itemCount = num + msg.m_PetAboutCount; num = msg.m_PetAboutCount; for (int i = 0; i < num; ++i) { if (table.ContainsKey(slotNum) && table[slotNum] != null) { sdSlotIcon icon = table[slotNum] as sdSlotIcon; if (icon != null) { Hashtable pet = sdConfDataMgr.Instance().GetItemById(msg.m_PetAbout[i].ToString()); if (pet == null) { continue; } if (int.Parse(pet["Class"].ToString()) == (int)HeaderProto.EItemClass.ItemClass_Pet_Equip) { icon.jiesuanType = JiesuanSlotType.PetItem; icon.SetInfo(msg.m_PetAbout[i].ToString(), pet); icon.gameObject.SetActive(false); icon.GetComponent <BoxCollider>().enabled = true; } else if (int.Parse(pet["Class"].ToString()) == (int)HeaderProto.EItemClass.ItemClass_Pet_Item) { icon.jiesuanType = JiesuanSlotType.Pet; icon.SetInfo(msg.m_PetAbout[i].ToString(), pet); icon.gameObject.SetActive(false); icon.GetComponent <BoxCollider>().enabled = true; } } } ++slotNum; } foreach (sdGameItem item in petCardList) { if (table.ContainsKey(slotNum) && table[slotNum] != null) { sdSlotIcon icon = table[slotNum] as sdSlotIcon; if (icon != null) { if (item != null) { Hashtable info = sdConfDataMgr.Instance().GetItemById(item.templateID.ToString()); icon.panel = PanelType.Panel_Jiesuan; icon.jiesuanType = JiesuanSlotType.Pet; icon.SetInfo(item.instanceID.ToString(), info); icon.gameObject.SetActive(false); } icon.enable = false; icon.GetComponent <BoxCollider>().enabled = true; } } ++slotNum; } foreach (sdGamePetItem item in petItemList) { if (table.ContainsKey(slotNum) && table[slotNum] != null) { sdSlotIcon icon = table[slotNum] as sdSlotIcon; if (icon != null) { if (item != null) { Hashtable info = sdConfDataMgr.Instance().GetItemById(item.templateID.ToString()); icon.panel = PanelType.Panel_Jiesuan; icon.jiesuanType = JiesuanSlotType.PetItem; icon.SetInfo(item.instanceID.ToString(), info); icon.gameObject.SetActive(false); } icon.enable = false; icon.GetComponent <BoxCollider>().enabled = true; } } ++slotNum; } itemList.Sort(CompareItem); foreach (sdGameItem item in itemList) { if (table.ContainsKey(slotNum) && table[slotNum] != null) { sdSlotIcon icon = table[slotNum] as sdSlotIcon; if (icon != null) { if (item != null) { Hashtable info = sdConfDataMgr.Instance().GetItemById(item.templateID.ToString()); icon.panel = PanelType.Panel_Jiesuan; icon.SetInfo(item.instanceID.ToString(), info); icon.gameObject.SetActive(false); } icon.enable = false; icon.GetComponent <BoxCollider>().enabled = true; } } ++slotNum; } while (table.ContainsKey(slotNum) && table[slotNum] != null) { sdSlotIcon icon = table[slotNum] as sdSlotIcon; if (icon != null) { icon.SetInfo("0", null); icon.enable = false; icon.GetComponent <BoxCollider>().enabled = false; } ++slotNum; } int treasureNum = msg.m_GetCount; for (int i = 0; i < treasureNum; ++i) { TreasureInfo info = new TreasureInfo(); info.index = msg.m_CardInfos[i].m_IndexID; info.id = (int)msg.m_CardInfos[i].m_ItemID; info.count = (int)msg.m_CardInfos[i].m_Count; info.isTemp = false; realList.Add(info); } treasureNum = msg.m_TempCount; List <int> ranlist = new List <int>(); for (int i = 0; i < treasureNum; ++i) { ranlist.Add(i); } System.Random ran = new System.Random(); while (ranlist.Count > 0) { int index = ran.Next(ranlist.Count); int indexNum = ranlist[index]; TreasureInfo info = new TreasureInfo(); info.index = msg.m_TempCardInfos[indexNum].m_IndexID; info.id = (int)msg.m_TempCardInfos[indexNum].m_ItemID; info.count = (int)msg.m_TempCardInfos[indexNum].m_Count; info.isTemp = true; tempList.Add(info); ranlist.RemoveAt(index); } if (sdGameLevel.instance != null && sdGameLevel.instance.mainChar != null) { if (sdGameLevel.instance.mainChar.Property != null) { curExp = sdUICharacter.Instance.oldExp; m_level = sdUICharacter.Instance.oldLevel; m_job = int.Parse(sdGameLevel.instance.mainChar.Property["Job"].ToString()); int maxExp = sdConfDataMgr.Instance().GetLevelExp(m_job.ToString(), m_level.ToString()); if (maxExp == 0) { lvMax = true; } else { lvMax = false; } if (curLevel != null) { if (maxExp == 0) { curLevel.GetComponent <UILabel>().text = string.Format("Max"); } else { curLevel.GetComponent <UILabel>().text = string.Format("Lv.{0}", m_level.ToString()); } } if (nextLevel != null) { if (maxExp == 0) { nextLevel.GetComponent <UILabel>().text = string.Format(""); } else { nextLevel.GetComponent <UILabel>().text = string.Format("Lv.{0}", (m_level + 1).ToString()); } } if (lvPic != null) { if (maxExp == 0) { lvPic.GetComponent <UISprite>().fillAmount = 0; } else { lvPic.GetComponent <UISprite>().fillAmount = (float)((float)curExp / (float)maxExp); } } } } }
public void PopulateBasedOnOrder(bool first) { EnemyDepthInfo enemies = WorldManager.Instance.enemyInfo[myOrder]; EnemyDepthInfo floorEnemies = WorldManager.Instance.floorEnemies[myOrder]; TreasureDepthInfo treasures = WorldManager.Instance.treasureInfo[myOrder]; foreach (Transform t in enemySpawnLocations) { float random = UnityEngine.Random.value * 100; if (random <= enemies.myEnemies.Sum(x => x.percentSpawnChance)) { float sum = 0; EnemyInfo newEnemy = enemies.myEnemies.TakeWhile(x => { var temp = sum; sum += x.percentSpawnChance; return(temp < random); }).Last(); if (newEnemy != null) { GameObject enemy = Instantiate(newEnemy.enemyPrefab); enemy.transform.SetParent(transform); enemy.transform.localScale = new Vector3(1, 1, 1); enemy.transform.position = t.position; enemy.transform.SetLocalPosition(z: -1); if (enemy.GetComponent <Enemy>() != null) { enemy.GetComponent <Enemy>().SetLevel(myOrder); } } } } foreach (Transform t in floorEnemySpawnLocations) { float random = UnityEngine.Random.value * 100; if (first) { random = 1; } if (random <= floorEnemies.myEnemies.Sum(x => x.percentSpawnChance)) { float sum = 0; EnemyInfo newEnemy = floorEnemies.myEnemies.TakeWhile(x => { var temp = sum; sum += x.percentSpawnChance; return(temp < random); }).Last(); if (newEnemy != null) { GameObject enemy = Instantiate(newEnemy.enemyPrefab); enemy.transform.SetParent(transform); enemy.transform.localScale = new Vector3(1, 1, 1); enemy.transform.position = t.position; enemy.transform.SetLocalPosition(z: -1); if (enemy.GetComponent <Enemy>() != null) { enemy.GetComponent <Enemy>().SetLevel(myOrder); } } } } foreach (Transform t in treasureSpawnLocations) { float random = UnityEngine.Random.value * 100; if (first) { random = 1; } if (random <= treasures.myTreasures.Sum(x => x.percentSpawnChance)) { float sum = 0; TreasureInfo newTreasure = treasures.myTreasures.TakeWhile(x => { var temp = sum; sum += x.percentSpawnChance; return(temp < random); }).Last(); if (newTreasure != null) { GameObject enemy = Instantiate(newTreasure.treasurePrefab); enemy.transform.SetParent(transform); enemy.transform.localScale = new Vector3(1, 1, 1); enemy.transform.position = t.position; enemy.transform.SetLocalPosition(z: -1); if (enemy.GetComponent <Pickup>() != null) { enemy.GetComponent <Pickup>().SetValue(myOrder); } } } } }
protected override object this[string index] { get { #region switch (index) { case "UserID": return(UserID); case "PrizeInfo": return(PrizeInfo); case "ReturnRatio": return(ReturnRatio); case "HeadID": return(HeadID); case "DialNum": return(DialNum); case "RefreshDate": return(RefreshDate); case "Treasure": return(Treasure); case "GroupID": return(GroupID); default: throw new ArgumentException(string.Format("UserDial index[{0}] isn't exist.", index)); } #endregion } set { #region switch (index) { case "UserID": _UserID = value.ToNotNullString(); break; case "PrizeInfo": _PrizeInfo = ConvertCustomField <TreasureInfo>(value, index); break; case "ReturnRatio": _ReturnRatio = value.ToDecimal(); break; case "HeadID": _HeadID = value.ToNotNullString(); break; case "DialNum": _DialNum = value.ToShort(); break; case "RefreshDate": _RefreshDate = value.ToDateTime(); break; case "Treasure": _Treasure = ConvertCustomField <CacheList <TreasureInfo> >(value, index); break; case "GroupID": _GroupID = value.ToInt(); break; default: throw new ArgumentException(string.Format("UserDial index[{0}] isn't exist.", index)); } #endregion } }
private void CalcTreasure() { if (this.CustomList.Count < 1 || GrandcypherClient.Current.TreasureHooker.CurrentTreasureList == null) { return; } this.TreasureList = new List <TreasureInfo>(); List <TreasureInfo> temp_lst = new List <TreasureInfo>(); foreach (var item in this.CustomList) { var customtemp = item.GetMaterialList(); temp_lst = temp_lst.Concat(customtemp).ToList(); } foreach (var item in temp_lst) { TreasureInfo treasure_temp = new TreasureInfo(); if (TreasureList.Any(x => x.ItemID == item.ItemID)) { TreasureList.Find(x => x.ItemID == item.ItemID).max += item.max; } else { treasure_temp.Name = item.Name; treasure_temp.max = item.max; treasure_temp.ItemID = item.ItemID; TreasureList.Add(treasure_temp); } } List <TreasureInfo> calcList = new List <TreasureInfo>(); //GrandcypherClient.Current.TreasureHooker.CurrentTreasureList.Values= 현재 트래저 목록 //TreasureList= 설정에 따라 불러온 트래저 목록 foreach (var current in GrandcypherClient.Current.TreasureHooker.CurrentTreasureList.Values) { foreach (var target in TreasureList) { if (target.ItemID == current.ItemID) { TreasureInfo temp_t = new TreasureInfo(); temp_t.Name = current.Name; temp_t.result = target.max - current.count; temp_t.ItemID = current.ItemID; if (temp_t.result > 0) { calcList.Add(temp_t); } } } } List <TreasureInfo> modified_list = new List <TreasureInfo>(calcList); foreach (var item in TreasureList) { if (GrandcypherClient.Current.TreasureHooker.CurrentTreasureList.Values.Where(x => x.ItemID == item.ItemID).FirstOrDefault() == default(TreasureInfo)) { TreasureInfo temp_t = new TreasureInfo(); temp_t.Name = item.Name; temp_t.result = item.max; temp_t.ItemID = item.ItemID; if (temp_t.result > 0) { modified_list.Add(temp_t); } } } this.TreasureList = new List <TreasureInfo>(modified_list); }
private void RemoveCompleteTreasure() { if (GrandcypherClient.Current.TreasureHooker.CurrentTreasureList == null) { return; } if (GrandcypherClient.Current.TreasureHooker.CurrentTreasureList.Count < 1) { return; } List <TreasureInfo> temp = new List <TreasureInfo>(GrandcypherClient.Current.TreasureHooker.CurrentTreasureList.Values); List <TreasureInfo> result = new List <TreasureInfo>(); List <TenTreasureInfo> targetList = new List <TenTreasureInfo>(GrandcypherClient.Current.Translations.GetTreasureList()); List <TenTreasureInfo> ElementList = targetList.Where(x => x.ElementID != 0).ToList(); List <TenTreasureInfo> AnotherList = targetList.Where(x => x.ElementID == 0).ToList(); var Origin = ElementList.Where(x => x.Origin == 1).ToList(); var Magna = ElementList.Where(x => x.Origin == 2).ToList(); List <TenTreasureInfo> ProtoList = new List <TenTreasureInfo>(); for (int i = 0; i < Origin.Count; i++) { if (Origin[i].ElementID == ElementTable[this.SelectedElement]) { Origin[i].Element += 3; Origin[i].Second += 3; Origin[i].Fourth += 3; } } for (int i = 0; i < Magna.Count; i++) { if (Magna[i].ElementID == ElementTable[this.SelectedElement]) { Magna[i].Fifth += 60; } } ProtoList = ElementList.Where(x => x.Proto > 0).ToList(); switch (ElementTable[this.SelectedElement]) { case 1: ElementList = ElementList.Where(x => x.ElementID == 1 && x.Origin == 0).ToList(); break; case 2: ElementList = ElementList.Where(x => x.ElementID == 2 && x.Origin == 0).ToList(); break; case 3: ElementList = ElementList.Where(x => x.ElementID == 3 && x.Origin == 0).ToList(); break; case 4: ElementList = ElementList.Where(x => x.ElementID == 4 && x.Origin == 0).ToList(); break; case 5: ElementList = ElementList.Where(x => x.ElementID == 5 && x.Origin == 0).ToList(); break; case 6: ElementList = ElementList.Where(x => x.ElementID == 6 && x.Origin == 0).ToList(); break; } targetList = new List <TenTreasureInfo>(AnotherList.Concat(ElementList).Concat(Magna).Concat(Origin).ToList()); if (ElementTable[this.SelectedElement] != 5) { List <TenTreasureInfo> outputList = new List <TenTreasureInfo>(); foreach (var item in ProtoList) { TenTreasureInfo tempoutput = new TenTreasureInfo { Name = item.Name, Proto = item.Proto }; outputList.Add(tempoutput); } targetList = new List <TenTreasureInfo>(outputList.Concat(targetList).ToList()); } //temp=현재 보유하고 있는 아이템목록 //targetlist=정리된 십천중 필요목록 targetList = new List <TenTreasureInfo>(GrandcypherClient.Current.Translations.SetItemIdxList(targetList)); foreach (var item in targetList) { var search = temp.Where(x => x.ItemID == item.idx).ToList(); TreasureInfo target = new TreasureInfo(); //아이템 보유목록에 필요목록에 있는 아이템이 존재하는 경우 if (search.Count > 0) { target = search[0]; } else //아이템이 비활성화인 경우 기초값으로 생성 { target = new TreasureInfo { Name = item.Name, count = 0, ItemID = -1, }; } if (target.Name == null || target.Name == string.Empty) { continue; } target.max = 0; //max값을 초기화 //max값에 필요 아이템값을 모두 합산 if (!Proto && item.Proto > 0) { target.max += item.Proto; } if (!Rust && item.Rust > 0) { target.max += item.Rust; } if (!Element && item.Element > 0) { target.max += item.Element; } if (!First && item.First > 0) { target.max += item.First; } if (!Second && item.Second > 0) { target.max += item.Second; } if (!Third && item.Third > 0) { target.max += item.Third; } if (!Fourth && item.Fourth > 0) { target.max += item.Fourth; } if (!Fifth && item.Fifth > 0) { target.max += item.Fifth; } target.max += item.Sixth; target.result = target.max - target.count; if (target.result > 0) { result.Add(target); } } this.TreasureList = new List <TreasureInfo>(result); }
public void OnChangeBg() { bg.spriteName = "k1"; bgGlow.spriteName = "js-d1"; bgGlow.gameObject.transform.localPosition = new Vector3(0, 108, 0); bgGlow.width = 20; bgGlow.height = 14; itemIcon.SetActive(true); cardEffect.transform.parent = cardEffect.transform.parent.parent; cardEffect.transform.localScale = new Vector3(300, 300, 1); cardEffect.SetActive(true); TreasureInfo info = sdUICharacter.Instance.GetTreasure(); sdUICharacter.Instance.selectTreasure++; if (info == null) { return; } int color = 0; if (info.id == (int)HeaderProto.ESpecialItemID.SPECIALITEMID_nonMoney) { //itemIcon.GetComponent<UISprite>().spriteName = ""; itemIcon.transform.Find("icon").GetComponent <UISprite>().spriteName = "icon_jinb"; itemIcon.transform.FindChild("name").GetComponent <UILabel>().text = info.count.ToString(); color = 1; } else if (info.id == (int)HeaderProto.ESpecialItemID.SPECIALITEMID_nonCash) { //itemIcon.GetComponent<UISprite>().spriteName = ""; itemIcon.transform.Find("icon").GetComponent <UISprite>().spriteName = "icon_xz"; itemIcon.transform.FindChild("name").GetComponent <UILabel>().text = info.count.ToString(); color = 4; } else if (info.id == (int)HeaderProto.ESpecialItemID.SPECIALITEMID_cash) { //itemIcon.GetComponent<UISprite>().spriteName = ""; itemIcon.transform.Find("icon").GetComponent <UISprite>().spriteName = "icon_xzb"; itemIcon.transform.FindChild("name").GetComponent <UILabel>().text = info.count.ToString(); color = 3; } else { Hashtable item = sdConfDataMgr.Instance().GetItemById(info.id.ToString()); if (item == null) { return; } color = int.Parse(item["Quility"].ToString()); itemIcon.GetComponent <sdSlotIcon>().SetInfo(info.id.ToString(), item); string name = item["ShowName"].ToString(); itemIcon.transform.FindChild("name").GetComponent <UILabel>().text = name; sdNewInfoMgr.Instance.CreateNewInfo(NewInfoType.Type_Item); } itemIcon.GetComponentInChildren <UILabel>().color = sdConfDataMgr.Instance().GetItemQuilityColor(color); if (!info.isTemp) { CliProto.CS_OPEN_TREASURE_CHEST_REQ refMSG = new CliProto.CS_OPEN_TREASURE_CHEST_REQ(); refMSG.m_ItemIndexID = (byte)info.index; SDNetGlobal.SendMessage(refMSG); } else { itemIcon.transform.FindChild("Label").gameObject.SetActive(false); } color = color - 1; if (color < 0) { color = 0; } }