diff --git a/Assets/PlayFabEditorExtensions/Editor/Resources/.CloudScript.js b/Assets/PlayFabEditorExtensions/Editor/Resources/.CloudScript.js index c5f018dd1..b10ea9ba3 100644 --- a/Assets/PlayFabEditorExtensions/Editor/Resources/.CloudScript.js +++ b/Assets/PlayFabEditorExtensions/Editor/Resources/.CloudScript.js @@ -550,7 +550,17 @@ handlers.Save_Init = function(args) isInit = true; urod.Common[3] = dayofyear; - add_farmshop = urod.Farm.Shop = Get_UniqueFarmShopList(Get_FarmShopTable(), 8); + add_farmshop = Get_UniqueFarmShopList(Get_FarmShopTable(), 8); + urod.Farm.Shop = {}; + for (var i = 0; i < add_farmshop.length; ++i) + { + var index = add_farmshop[i][0]; + if (!urod.Farm.Shop[index]) + urod.Farm.Shop[index] = {}; + + urod.Farm.Shop[index].Buy = 0; + urod.Farm.Shop[index].Time = Get_CurKoreaTime(); + } Init_DungeonTicket(table, itemtable, urod); Init_Mission(table, urod, 1); Init_Shop(urod, 1); @@ -635,7 +645,7 @@ function Init_Shop(urod, type) { const key = lst[i].n_ShopItemID; if (urod.Shop[key]) - urod.Shop[key][1] = 0; + urod.Shop[key].Buy = 0; } } @@ -2388,11 +2398,13 @@ handlers.Save_Buff = function(args) if (error < 0) return Get_Return(error); var urod = Get_JsonUserData(readonlydata); + var now = Get_CurKoreaTime(); + var buffTime = new Date(urod.Buff.Time[args.Index]); - if (urod.Buff.Infinity > 0 || urod.Buff.Time[args.Index] <= 0) + if (urod.Buff.Infinity > 0 || buffTime <= now) { if (urod.Buff.Infinity <= 0) - urod.Buff.Time[args.Index] = 600; + urod.Buff.Time[args.Index] = Get_TimeAddSec(600); var table = Get_MissionTable(); Add_MissionCount(table, urod, "WATCH_AD_ALL", 0, 1); @@ -2401,6 +2413,7 @@ handlers.Save_Buff = function(args) Set_JsonUserData(urod); return Get_Return(0); } + return Get_Return(1); } @@ -2410,6 +2423,42 @@ handlers.Save_Farm_PlantSeed = function(args) var error = Get_Error(readonlydata, args.Token); if (error < 0) return Get_Return(error); + var urod = Get_JsonUserData(readonlydata); + var curSlot = urod.Farm.Slot.find(f=>f.Slot == args.Slot); + if (curSlot.Slot > urod.Farm.MaxSlot) return Get_Return(2); + var slotTime = new Date(curSlot.Time); + if (slotTime - Get_CurKoreaTime() > 0 || curSlot.Grade > 0 || curSlot.EnchantID > 0) return Get_Return(1); + + var seedid = Get_GlobalValue_nValue("n_FarmSeedID"); + var needseed = Get_GlobalValue_nValue("n_FarmPlantingSeedAmount"); + if (Check_ItemAmount(urod, seedid, needseed) && Check_ItemAmount(urod, args.EnchantID, 1)) + { + var table = Get_MissionTable(); + Use_Item(table, urod, seedid, needseed); + Use_Item(table, urod, args.EnchantID, 1); + + var harvestdata = Get_RandomHarvestData(); + var farmerval = Get_FarmerValue(urod, "ReduceHarvestTime"); + var harvestTime = harvestdata.n_HarvestTime - harvestdata.n_HarvestTime * farmerval; + + curSlot.Grade = Number(harvestdata.n_Grade); + curSlot.Time = Get_TimeAddSec(harvestTime); + curSlot.EnchantID = args.EnchantID; + + Add_MissionCount(table, urod, "PLANTING_CROPS_GRADE_ALL", 0, 1); + Add_MissionCount(table, urod, "PLANTING_CROPS_GRADE_ACC", curSlot.Grade, 1); + + Set_JsonUserData(urod); + return Get_Return(0, { harvestTime : curSlot.Time, grade : curSlot.Grade }); + } + return Get_Return(3); +} +handlers.Save_Farm_Harvest = function(args) +{ + var readonlydata = Get_UserReadOnlyData(); + var error = Get_Error(readonlydata, args.Token); + if (error < 0) return Get_Return(error); + var urod = Get_JsonUserData(readonlydata); var curSlot = urod.Farm.Slot.find(f=>f.Slot == args.Slot); if (curSlot.Slot > urod.Farm.MaxSlot) return Get_Return(2); @@ -24555,7 +24604,12 @@ function Add_Amount(...args) { function Get_CurKoreaTime() { var curServerTime = new Date(); - return new Date(curServerTime.setHours(curServerTime.getHours() + 9)); + return new Date(curServerTime.getTime() + 9 * 60 * 60 * 1000); +} + +function Get_TimeAddSec(sec) +{ + return new Date(Get_CurKoreaTime().getTime() + sec * 1000); } function Get_DayOfYear() { diff --git a/Assets/Script/Server/ServerClass.cs b/Assets/Script/Server/ServerClass.cs index 990093fc7..61c7b5081 100644 --- a/Assets/Script/Server/ServerClass.cs +++ b/Assets/Script/Server/ServerClass.cs @@ -95,7 +95,7 @@ public partial class ServerData /// /// { 상품ID, 0 총 구매횟수, 1 이번 구매횟수, 2 광고 남은 시간 } /// - public Dictionary> Shop = new Dictionary>(); + public Dictionary Shop = new Dictionary(); public List Book; @@ -225,9 +225,8 @@ public partial class ServerData temp.Dungeon = DSUtil.Get_T_Dic(Dungeon); temp.Mission = DSUtil.Get_T_Dic(Mission); temp.Gacha = DSUtil.Get_T_Dic(Gacha); - - temp.Common = DSUtil.Get_T_List(Common); + foreach (var item in Shop) temp.Shop.Add(item.Key, item.Value.Get()); temp.Book = new List(); for (int i = 0; i < Book.Count; i++) @@ -243,7 +242,6 @@ public partial class ServerData foreach (var item in Inven) temp.Inven.Add(item.Key, item.Value); - temp.Shop = DSUtil.Get_T_Dic(Shop); temp.Potion = DSUtil.Get_T_Dic(Potion); if (Event != null) temp.Event = DSUtil.Get_T_Dic(Event); @@ -273,6 +271,7 @@ public class ServerData_Read public Dictionary MobKill; public SD_Farm_Read Farm; public Dictionary>> Mission = new Dictionary>>(); + public Dictionary Shop = new Dictionary(); public List Book; public List ChapterQuest; @@ -280,7 +279,7 @@ public class ServerData_Read public List Money; public List> Title, Pass; public Dictionary Inven = new Dictionary(); - public Dictionary> Shop, Potion; + public Dictionary> Potion; public Dictionary Event; public Dictionary>> TotalAdd = new Dictionary>>(); // 아이템, 0 ID, 1 획득개수 @@ -327,9 +326,8 @@ public class ServerData_Read temp.Dungeon = DSUtil.Get_T_Dic(Dungeon); temp.Mission = DSUtil.Get_T_Dic(Mission); temp.Gacha = DSUtil.Get_T_Dic(Gacha); - - temp.Common = DSUtil.Get_T_List(Common); + foreach (var item in Shop) temp.Shop.Add(item.Key, item.Value.Get()); temp.Book = new List(); for (int i = 0; i < Book.Count; i++) @@ -345,7 +343,6 @@ public class ServerData_Read foreach (var item in Inven) temp.Inven.Add(item.Key, item.Value); - temp.Shop = DSUtil.Get_T_Dic(Shop); temp.Potion = DSUtil.Get_T_Dic(Potion); if (Event != null) temp.Event = DSUtil.Get_T_Dic(Event); @@ -893,30 +890,17 @@ public partial class ServerData Farm.MaxSlot.RandomizeCryptoKey(); } public int Get_FarmMaxSlot() { return Farm.MaxSlot; } - public void Set_FarmSlot(int slot, int grade, double time, int enchantid) + public void Set_FarmSlot(int slot, int grade, DateTime time, int enchantid) { var sSlot = Farm.Slot.Find(f => f.Slot == slot); sSlot.Grade = grade; sSlot.Grade.RandomizeCryptoKey(); - sSlot.Time = Math.Round(time, 3); // 소수점 셋째 자리에서 반올림 - sSlot.Time.RandomizeCryptoKey(); + sSlot.Time = time; sSlot.EnchantID = enchantid; sSlot.EnchantID.RandomizeCryptoKey(); } - public void Sub_AllFarmSlotTime(int sec = 1) - { - for (int i = 0; i < Farm.Slot.Count; i++) - { - if (Farm.Slot[i].Time > 0) - { - Farm.Slot[i].Time -= sec; - if (Farm.Slot[i].Time < 0) Farm.Slot[i].Time = 0; - Farm.Slot[i].Time.RandomizeCryptoKey(); - } - } - } public int Get_EatFruitCount(int fruitid) { var key = Get_Key(fruitid); @@ -939,28 +923,8 @@ public partial class ServerData Farm.Eat[key] += amount; Farm.Eat[key].RandomizeCryptoKey(); } - public void Buy_FarmShopItem(int shopid, int time) - { - var data = Get_FarmShopData(shopid); - ++data[1]; data[1].RandomizeCryptoKey(); // 구매 횟수 증가 - data[2] = time; data[2].RandomizeCryptoKey(); // 구매 딜레이 시간 - } - public List Get_FarmShopData(int shopid) - { - return Farm.Shop.Find(f => f[0] == shopid); - } - public void Sub_AllFarmShopTime(int sec = 1) - { - for (int i = 0; i < Farm.Shop.Count; i++) - { - if (Farm.Shop[i][2] > 0) - { - Farm.Shop[i][2] -= sec; - if (Farm.Shop[i][2] < 0) Farm.Shop[i][2] = 0; - Farm.Shop[i][2].RandomizeCryptoKey(); - } - } - } + public void Buy_FarmShopItem(int shopid, int time) { Get_FarmShopData(shopid).Add_Buy(time); } + public SD_FarmShop Get_FarmShopData(int shopid) { return Farm.Shop[Get_Key(shopid)]; } #endregion #region 던전 Dictionary dic_dungeonkey = new Dictionary @@ -1287,7 +1251,7 @@ public partial class ServerData { var key = Get_Key(_id); if (!Shop.ContainsKey(key)) - Shop.Add(key, new List { 0, 0, 0 }); + Shop.Add(key, new SD_Shop()); } void Init_Shop() { @@ -1297,8 +1261,8 @@ public partial class ServerData var key = Get_Key(lst_day[i].n_ShopItemID); if (Shop.ContainsKey(key)) { - Shop[key][1] = 0; - Shop[key][1].RandomizeCryptoKey(); + Shop[key].Buy = 0; + Shop[key].Buy.RandomizeCryptoKey(); } } } @@ -1310,8 +1274,8 @@ public partial class ServerData var key = Get_Key(lst_week[i].n_ShopItemID); if (Shop.ContainsKey(key)) { - Shop[key][1] = 0; - Shop[key][1].RandomizeCryptoKey(); + Shop[key].Buy = 0; + Shop[key].Buy.RandomizeCryptoKey(); } } } @@ -1323,8 +1287,8 @@ public partial class ServerData var key = Get_Key(lst_month[i].n_ShopItemID); if (Shop.ContainsKey(key)) { - Shop[key][1] = 0; - Shop[key][1].RandomizeCryptoKey(); + Shop[key].Buy = 0; + Shop[key].Buy.RandomizeCryptoKey(); } } } @@ -1344,7 +1308,7 @@ public partial class ServerData public void Buy_ShopItem(ShopItemListTableData data, Action afterbuy) { if (isShopItemSoldOut(data)) return; - if (Get_ShopADTime(data.n_ShopItemID) > 0) return; + if (Get_ShopADRemainTime(data.n_ShopItemID) > 0) return; switch (data.n_PriceItemID) { @@ -1397,14 +1361,14 @@ public partial class ServerData public int Get_ShopBuyCount(int _id) { var key = Get_Key(_id); - return Shop.ContainsKey(key) ? Shop[key][1] : 0; + return Shop.ContainsKey(key) ? Shop[key].Buy : 0; } public void Add_ShopBuyCount(int _id) { Check_ShopData(_id); var key = Get_Key(_id); - ++Shop[key][0]; Shop[key][0].RandomizeCryptoKey(); - ++Shop[key][1]; Shop[key][1].RandomizeCryptoKey(); + ++Shop[key].Buy_Total; Shop[key].Buy_Total.RandomizeCryptoKey(); + ++Shop[key].Buy; Shop[key].Buy.RandomizeCryptoKey(); } // 상점 UI 관련 @@ -1431,47 +1395,26 @@ public partial class ServerData } // 상점 광고 관련 - public int Get_ShopADTime(int _id) + public int Get_ShopADRemainTime(int _id) { var key = Get_Key(_id); - return Shop.ContainsKey(key) ? Shop[key][2] : 0; + return Shop.ContainsKey(key) ? (int)(Shop[key].Time - ServerInfo.ServerTime).TotalSeconds : 0; } public void Add_ShopADTime(int _id, int _sec = 1) { Check_ShopData(_id); var key = Get_Key(_id); - Shop[key][2] = _sec; - Shop[key][2].RandomizeCryptoKey(); - } - public void Sub_ShopADTime(int _id, int _sec = 1) - { - int index = 2; - if (_id == -1) - { - foreach (var item in Shop) - { - Shop[item.Key][index] -= _sec; - if (Shop[item.Key][index] < 0) Shop[item.Key][index] = 0; - Shop[item.Key][index].RandomizeCryptoKey(); - } - } - else - { - var key = Get_Key(_id); - if (Shop.ContainsKey(key) && Shop[key][index] > 0) - { - Shop[key][index] -= _sec; - Shop[key][index].RandomizeCryptoKey(); - } - } + Shop[key].Time = ServerInfo.ServerTime.AddSeconds(_sec); } #endregion #region Common - public void Init_Daily(List> farmshop) + public void Init_Daily(List> farmshop) { Set_Common(eCommon.DOY_Day, ServerInfo.ServerTime.DayOfYear); - Farm.Shop = farmshop; + Farm.Shop.Clear(); + for (int i = 0; i < farmshop.Count; i++) + Farm.Shop.Add(Get_Key(farmshop[i][0]), new SD_FarmShop()); Init_DungeonTicket(); Init_Mission(1); Init_Shop(); @@ -2605,53 +2548,39 @@ public class SD_MapData_Read public class SD_Buff { public ObscuredInt Infinity; // 1 이상이면 무한 버프 - public List Time; // 버프 남은 시간들 + public List Time; // 버프 off 시간 public SD_Buff() { Infinity = 0; Infinity.RandomizeCryptoKey(); - Time = new List { 0, 0, 0 }; - Time.ForEach(f => f.RandomizeCryptoKey()); + Time = new List { new DateTime(), new DateTime(), new DateTime() }; } public SD_Buff_Read Get() { var rtn = new SD_Buff_Read(); rtn.Infinity = Infinity; - rtn.Time = DSUtil.Get_T_List(Time); + rtn.Time = Time; return rtn; } - public bool ApplyBuff(int index) { return isInfinity() || Get_RemainTime(index) > 0; } + public bool ApplyBuff(int index) { return isInfinity() || Get_RemainTime(index).TotalSeconds > 0; } public bool isInfinity() { return Infinity > 0; } - public int Get_RemainTime(int index) { return isInfinity() ? 1 : Time[index]; } - public void Set_Time(int index, int time) { Time[index] = time; Time[index].RandomizeCryptoKey(); } - public void Sub_Time() - { - if (isInfinity()) return; - - for (int i = 0; i < Time.Count; i++) - { - if (Time[i] > 0) - { - --Time[i]; - Time[i].RandomizeCryptoKey(); - } - } - } + public TimeSpan Get_RemainTime(int index) { return Time[index] - ServerInfo.ServerTime; } + public void Set_Time(int index, int time) { Time[index] = ServerInfo.ServerTime.AddSeconds(time); } } public class SD_Buff_Read { public int Infinity; - public List Time; + public List Time; public SD_Buff Get() { var rtn = new SD_Buff(); rtn.Infinity = Infinity; rtn.Infinity.RandomizeCryptoKey(); - rtn.Time = DSUtil.Get_T_List(Time); + rtn.Time = Time; return rtn; } @@ -2934,7 +2863,7 @@ public class SD_Farm public ObscuredInt MaxSlot; public List Slot; public Dictionary Eat = new Dictionary(); // 먹은 갯수 - public List> Shop; // 0 FarmShop ID, 1 구매 횟수, 2 남은 시간 + public Dictionary Shop = new Dictionary(); // FarmShop ID, 구매 횟수, 남은 시간 public SD_Farm() { @@ -2943,7 +2872,6 @@ public class SD_Farm Slot = new List(); for (int i = 0; i < 8; i++) Slot.Add(new SD_FarmSlot(i)); - Shop = table_farmshoplist.Ins.Get_ShopInit(); } public SD_Farm_Read Get() @@ -2957,7 +2885,7 @@ public class SD_Farm for (int i = 0; i < Slot.Count; i++) temp.Slot.Add(Slot[i].Get()); foreach (var item in Eat) temp.Eat.Add(item.Key, item.Value); - temp.Shop = DSUtil.Get_T_List(Shop); + foreach (var item in Shop) temp.Shop.Add(item.Key, item.Value.Get()); return temp; } @@ -2967,7 +2895,7 @@ public class SD_Farm_Read public int MaxSlot; public List Slot; public Dictionary Eat = new Dictionary(); // 먹은 갯수 - public List> Shop; // 0 FarmShop ID, 1 구매 횟수, 2 남은 시간 + public Dictionary Shop = new Dictionary(); // FarmShop ID, 구매 횟수, 남은 시간 public SD_Farm Get() { @@ -2981,7 +2909,7 @@ public class SD_Farm_Read for (int i = 0; i < Slot.Count; i++) temp.Slot.Add(Slot[i].Get()); foreach (var item in Eat) temp.Eat.Add(item.Key, item.Value); - temp.Shop = DSUtil.Get_T_List(Shop); + foreach (var item in Shop) temp.Shop.Add(item.Key, item.Value.Get()); return temp; } @@ -2989,7 +2917,7 @@ public class SD_Farm_Read public class SD_FarmSlot { public ObscuredInt Slot, Grade, EnchantID; - public ObscuredDouble Time; + public DateTime Time; public SD_FarmSlot() { } @@ -2998,24 +2926,70 @@ public class SD_FarmSlot Slot = slot; Slot.RandomizeCryptoKey(); Grade = 0; Grade.RandomizeCryptoKey(); EnchantID = 0; EnchantID.RandomizeCryptoKey(); - Time = 0; Time.RandomizeCryptoKey(); + Time = new DateTime(); } public SD_FarmSlot_Read Get() { return new SD_FarmSlot_Read { Slot = Slot, Grade = Grade, EnchantID = EnchantID, Time = Time }; } + + public int Get_RemainSec() + { + return (int)(Time - ServerInfo.ServerTime).TotalSeconds; + } } public class SD_FarmSlot_Read { public int Slot, Grade, EnchantID; - public double Time; + public DateTime Time; public SD_FarmSlot Get() { return new SD_FarmSlot { Slot = Slot, Grade = Grade, EnchantID = EnchantID, Time = Time }; } } +public class SD_FarmShop +{ + public ObscuredInt Buy; + public DateTime Time; + + public SD_FarmShop_Read Get() { return new SD_FarmShop_Read { Buy = Buy, Time = Time }; } + public void Add_Buy(int time) + { + ++Buy; Buy.RandomizeCryptoKey(); + Time = ServerInfo.ServerTime.AddSeconds(time); + } + public int Get_RemainTime() { return (int)(Time - ServerInfo.ServerTime).TotalSeconds; } +} +public class SD_FarmShop_Read +{ + public int Buy; + public DateTime Time; + + public SD_FarmShop Get() { return new SD_FarmShop { Buy = Buy, Time = Time }; } +} +public class SD_Shop +{ + // 총 구매횟수, 이번 구매횟수, 광고 남은 시간 + public ObscuredInt Buy_Total, Buy; + public DateTime Time; + + public SD_Shop_Read Get() + { + return new SD_Shop_Read { Buy = Buy, Time = Time, Buy_Total = Buy_Total }; + } +} +public class SD_Shop_Read +{ + public int Buy_Total, Buy; + public DateTime Time; + + public SD_Shop Get() + { + return new SD_Shop { Buy = Buy, Time = Time, Buy_Total = Buy_Total }; + } +} #endregion #region 서버 응답 클래스 @@ -3082,7 +3056,7 @@ public class SC_GachaResult } public class SC_FarmSlotPlantSeedResult { - public double harvestTime; + public DateTime harvestTime; public int grade; } #endregion \ No newline at end of file diff --git a/Assets/Script/UI/Buff/BuffADCard.cs b/Assets/Script/UI/Buff/BuffADCard.cs index 571dfc5ce..6acacd81a 100644 --- a/Assets/Script/UI/Buff/BuffADCard.cs +++ b/Assets/Script/UI/Buff/BuffADCard.cs @@ -40,9 +40,9 @@ public class BuffADCard : CardBase } else { - var time = ServerInfo.Ins.m_ServerData.Buff.Get_RemainTime(m_Index); - texts[4].text = DSUtil.Get_TimeText_MS(time); - if (time > 0) + var ts = ServerInfo.Ins.m_ServerData.Buff.Get_RemainTime(m_Index); + texts[4].text = DSUtil.Get_TimeText_MS(ts); + if (ts.TotalSeconds > 0) { gos[0].SetActive(false); if (DSUtil.CheckNull(m_Co_for1Sec)) @@ -58,7 +58,7 @@ public class BuffADCard : CardBase public void OnClick_AD() { var sdata = ServerInfo.Ins.m_ServerData; - if (sdata.Buff.Get_RemainTime(m_Index) > 0) return; + if (sdata.Buff.Get_RemainTime(m_Index).TotalSeconds > 0) return; ADInfo.Ins.Show_AD(() => { diff --git a/Assets/Script/UI/Buff/BuffCard.cs b/Assets/Script/UI/Buff/BuffCard.cs index 034d2a6c6..971b9e319 100644 --- a/Assets/Script/UI/Buff/BuffCard.cs +++ b/Assets/Script/UI/Buff/BuffCard.cs @@ -33,9 +33,9 @@ public class BuffCard : CardBase } else { - var time = ServerInfo.Ins.m_ServerData.Buff.Get_RemainTime(m_Index); - label_time.text = DSUtil.Get_TimeText_MS(time); - if (time > 0) + var ts = ServerInfo.Ins.m_ServerData.Buff.Get_RemainTime(m_Index); + label_time.text = DSUtil.Get_TimeText_MS(ts); + if (ts.TotalSeconds > 0) { if (!go_on.activeInHierarchy) go_on.SetActive(true); if (DSUtil.CheckNull(m_Co_for1Sec)) diff --git a/Assets/Script/UI/Farm/FarmShopCard.cs b/Assets/Script/UI/Farm/FarmShopCard.cs index c33b8caeb..c6e1f54f5 100644 --- a/Assets/Script/UI/Farm/FarmShopCard.cs +++ b/Assets/Script/UI/Farm/FarmShopCard.cs @@ -1,5 +1,3 @@ -using CodeStage.AntiCheat.ObscuredTypes; -using System.Collections.Generic; using TMPro; using UnityEngine.UI; @@ -8,15 +6,16 @@ public class FarmShopCard : CardBase public Image[] images; // 0 등급(null), 1 아이템, 2 필요 재화 public TextMeshProUGUI[] texts; // 0 아이템 이름, 1 일일 제한, 2 무료, 3 광고 or 가격, 4 지급양 - List m_Data; // 0 FarmShop ID, 1 구매 횟수, 2 남은 시간 + int m_FarmShopID; + SD_FarmShop m_Data; FarmShopListTableData m_Tdata; void Set_Time() { switch (m_Tdata.e_ShopType) { - case eShopType.AD: texts[2].text = m_Data[2] > 0 ? DSUtil.Get_TimeText_MS(m_Data[2]) : table_localtext.Ins.Get_Text(387); break; - case eShopType.Free: texts[2].text = m_Data[2] > 0 ? DSUtil.Get_TimeText_MS(m_Data[2]) : table_localtext.Ins.Get_Text(433); break; + case eShopType.AD: texts[2].text = m_Data.Get_RemainTime() > 0 ? DSUtil.Get_TimeText_MS(m_Data.Get_RemainTime()) : table_localtext.Ins.Get_Text(387); break; + case eShopType.Free: texts[2].text = m_Data.Get_RemainTime() > 0 ? DSUtil.Get_TimeText_MS(m_Data.Get_RemainTime()) : table_localtext.Ins.Get_Text(433); break; } } @@ -24,14 +23,16 @@ public class FarmShopCard : CardBase { base.Set(_base); Set_Repeat_for1sec(Set_Time); - m_Data = _base as List; - m_Tdata = table_farmshoplist.Ins.Get_Data(m_Data[0]); + var sdata = ServerInfo.Ins.m_ServerData; + m_FarmShopID = int.Parse(_base.ToString()); + m_Data = sdata.Get_FarmShopData(m_FarmShopID); + m_Tdata = table_farmshoplist.Ins.Get_Data(m_FarmShopID); var itemData = table_itemlist.Ins.Get_Data(m_Tdata.n_ItemID); //images[0].sprite = itemData.Get_GradeSprite(); images[1].sprite = itemData.Get_IconSprite(); images[2].enabled = true; texts[0].text = table_itemlist.Ins.Get_ItemName(itemData.n_ItemID); - texts[1].text = DSUtil.Format(392, m_Data[1], m_Tdata.n_DayLimit); + texts[1].text = DSUtil.Format(392, m_Data.Buy, m_Tdata.n_DayLimit); texts[2].text = texts[3].text = ""; texts[4].text = m_Tdata.n_ItemAmount.ToString(); @@ -54,7 +55,7 @@ public class FarmShopCard : CardBase public void OnClick_Buy() { - if (m_Data[1] < m_Tdata.n_DayLimit && m_Data[2] <= 0) + if (m_Data.Buy < m_Tdata.n_DayLimit && m_Data.Get_RemainTime() <= 0) { switch (m_Tdata.e_ShopType) { @@ -76,7 +77,7 @@ public class FarmShopCard : CardBase { var sdata = ServerInfo.Ins.m_ServerData; sdata.Add_Item(m_Tdata.n_ItemID, m_Tdata.n_ItemAmount); - sdata.Buy_FarmShopItem(m_Data[0], m_Tdata.n_GapTime); + sdata.Buy_FarmShopItem(m_FarmShopID, m_Tdata.n_GapTime); ObtainItemUI.Ins.Set(new ItemSimpleData { itemid = m_Tdata.n_ItemID, amount = m_Tdata.n_ItemAmount }); FarmShopUI.Ins.Set(); } diff --git a/Assets/Script/UI/Farm/FarmShopUI.cs b/Assets/Script/UI/Farm/FarmShopUI.cs index f16557113..7330a80c7 100644 --- a/Assets/Script/UI/Farm/FarmShopUI.cs +++ b/Assets/Script/UI/Farm/FarmShopUI.cs @@ -1,3 +1,4 @@ +using System.Collections.Generic; using TMPro; public class FarmShopUI : BotMenuBase @@ -12,7 +13,10 @@ public class FarmShopUI : BotMenuBase { base.Set(); Set_Repeat_for1sec(Set_NextTime); - Set_ScrollView(ServerInfo.Ins.m_ServerData.Farm.Shop); + var lst = new List(); + foreach (var item in ServerInfo.Ins.m_ServerData.Farm.Shop) + lst.Add(int.Parse(item.Key)); + Set_ScrollView(lst); Set_NextTime(); Set_Money(1, 2); } diff --git a/Assets/Script/UI/Farm/FarmSlotCard.cs b/Assets/Script/UI/Farm/FarmSlotCard.cs index 103a005f7..15c752d22 100644 --- a/Assets/Script/UI/Farm/FarmSlotCard.cs +++ b/Assets/Script/UI/Farm/FarmSlotCard.cs @@ -44,7 +44,7 @@ public class FarmSlotCard : CardBase if (!DSUtil.CheckNull(m_Data)) { var sdata = ServerInfo.Ins.m_ServerData; - var time = m_Data.Time; + var time = m_Data.Get_RemainSec(); if (time > 0) { // 자라는 중 texts[0].text = DSUtil.Format(128, DSUtil.Get_TimeText_HMS(false, time)); @@ -70,7 +70,7 @@ public class FarmSlotCard : CardBase int Get_ImmPrice() { var ainfo = MyValue.Get_ActorStatInfoorNull(eRole.PC); - int price = (int)m_Data.Time * 10; + int price = m_Data.Get_RemainSec() * 10; return price - (int)(price * ainfo.Get_Stat(eStat.Reduction_in_Immediate_Harvest_Cost)); } @@ -149,7 +149,7 @@ public class FarmSlotCard : CardBase sdata.Add_MissionCount(ePurpose.HARVESTING_CROPS_ALL); ObtainItemUI.Ins.Set(items); - sdata.Set_FarmSlot(m_Data.Slot, 0, 0, 0); + sdata.Set_FarmSlot(m_Data.Slot, 0, ServerInfo.ServerTime, 0); FarmSlotUI.Ins.Set(); } } diff --git a/Assets/Script/UI/Shop_old/ShopCardBase.cs b/Assets/Script/UI/Shop_old/ShopCardBase.cs index b0c2f3227..e83fd1608 100644 --- a/Assets/Script/UI/Shop_old/ShopCardBase.cs +++ b/Assets/Script/UI/Shop_old/ShopCardBase.cs @@ -209,7 +209,7 @@ public class ShopCardBase : CardBase { var sdata = ServerInfo.Ins.m_ServerData; Add_BuyCount(); - sdata.Sub_ShopADTime(m_ShopTableData.ID, -m_ShopTableData.ADGapTime); + //sdata.Sub_ShopADTime(m_ShopTableData.ID, -m_ShopTableData.ADGapTime); GetItemUI.Ins.Set(sdata.Add_Item(new ItemData(m_ShopTableData.Item, m_ShopTableData.ItemID, m_ShopTableData.Amount, "shop ad", eUICardType.GetItem))); GetItemUI.Ins.Show_Items(); Set_ADTime(); diff --git a/Assets/Script/UI/Util/CardTimeUI.cs b/Assets/Script/UI/Util/CardTimeUI.cs index 5a13bba61..624c533bd 100644 --- a/Assets/Script/UI/Util/CardTimeUI.cs +++ b/Assets/Script/UI/Util/CardTimeUI.cs @@ -13,7 +13,7 @@ public class CardTimeUI : MyCoroutine m_ShopID = shopid; var sdata = ServerInfo.Ins.m_ServerData; - go_time.SetActive(!issoldout && sdata.Get_ShopADTime(m_ShopID) > 0); + go_time.SetActive(!issoldout && sdata.Get_ShopADRemainTime(m_ShopID) > 0); if (go_time.activeSelf) { Set_Time(); @@ -26,6 +26,6 @@ public class CardTimeUI : MyCoroutine void Set_Time() { - t_time.text = DSUtil.Get_TimeText_MS(ServerInfo.Ins.m_ServerData.Get_ShopADTime(m_ShopID)); + t_time.text = DSUtil.Get_TimeText_MS(ServerInfo.Ins.m_ServerData.Get_ShopADRemainTime(m_ShopID)); } } \ No newline at end of file diff --git a/Assets/Script/Util/DataCheckMgr.cs b/Assets/Script/Util/DataCheckMgr.cs index 62232bb8b..1e9ae5db5 100644 --- a/Assets/Script/Util/DataCheckMgr.cs +++ b/Assets/Script/Util/DataCheckMgr.cs @@ -68,7 +68,7 @@ public class DataCheckMgr : MyCoroutine switch (result.error) { case 0: - sdata.Init_Daily(DSUtil.Get_T_List(result.farmshop)); + sdata.Init_Daily(result.farmshop); break; case 1: sdata.Init_Week(SamplesCalendar.Get_WeekOfYear(ServerInfo.ServerTime)); @@ -83,16 +83,11 @@ public class DataCheckMgr : MyCoroutine yield return new WaitForSeconds(1f); // 실제 사용 데이터 - sdata.Sub_AllFarmSlotTime(); - sdata.Sub_AllFarmShopTime(); sdata.Add_Common(eCommon.PlayTime); /////////////////// - sdata.Sub_ShopADTime(-1); sdata.Sub_AllPotionTime(); sdata.Sub_Common(eCommon.CloverShopResetTime); - - sdata.Buff.Sub_Time(); } }