using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Xml; using Sfs2X.Entities.Data; using UnityEngine; public class ChestData { #region Config public int Value; public int Round; public int RemainValue; public int RemainRound; public int DatabaseRoomID; public long ID; public long Owner; public DateTime ActivatedTime; public ChestType ChestType; #endregion public ChestData(ISFSObject arg) { ID = arg.GetLong(gd_chest.ID); Value = arg.GetInt(gd_chest.Value); Round = arg.GetInt(gd_chest.Round); RemainValue = arg.GetInt(gd_chest.RemainValue); RemainRound = arg.GetInt(gd_chest.RemainRound); DatabaseRoomID = arg.GetInt(gd_chest.DatabaseRoomID); Owner = arg.GetLong(gd_chest.Owner); ActivatedTime = DateUtil.GetJavaTime(arg.GetLong(gd_chest.ActivatedTime).ToString()); ChestType = (ChestType) arg.GetInt(gd_chest.Type); } } public class ChestMge : Regist { #region Config private static string RefundNodeName = "Refund"; private static string ReceivedNodeName = "Received"; private static List RefundRoomIDs = new List(); private static List ReceivedChestIDs = new List(); #endregion public override void RegistValueA() { XmlNodeList RefundNodes = ManaData.PlayerNode.SelectNodes(RefundNodeName); XmlNodeList ReceivedNodes = ManaData.PlayerNode.SelectNodes(ReceivedNodeName); for (int i = 0; i < RefundNodes.Count; i++) { RefundRoomIDs.Add(int.Parse(RefundNodes[i].InnerText)); } for (int i = 0; i < ReceivedNodes.Count; i++) { ReceivedChestIDs.Add(long.Parse(ReceivedNodes[i].InnerText)); } CheckRefund(); //RefundRoomIDs.Add(1); //RefundRoomIDs.Add(98); //RefundRoomIDs.Add(99); //foreach (var VARIABLE in RefundRoomIDs) //{ // Debug.Log(VARIABLE); //} //foreach (var VARIABLE in ReceivedChestIDs) //{ // Debug.Log(VARIABLE); //} //RefundRoomIDs.Add(1); //RefundRoomIDs.Add(2); //ReceivedChestIDs.Add(100); //ReceivedChestIDs.Add(200); //RefundRoomIDs.Remove(1); //RefundRoomIDs.Remove(2); //ReceivedChestIDs.Remove(100); //ReceivedChestIDs.Remove(200); } private void CheckRefund() { if (RefundRoomIDs.Count == 0) { return; } else { SFSManager.GardenSmartFox.EventManager.PlazaRoomEvent.CheckChestRefund(RefundRoomIDs); } } public static void ReceiveAllChestData(List chestDatas) { } public static bool HasReceived(long chestID) { if (ReceivedChestIDs.Contains(chestID)) { return true; } else { return false; } } public static void ActivateSystemChest(long chestID) { ReceivedChestIDs.Remove(chestID); } public static void ReceiveChestAward(int award) { //ReceivedChestIDs.Add(chestID); if (award == 0) { Bubble.Show(null, Language.GetStr("UI", "Y_SoldOut")); } else { } } public static void ReceiveChestRefund(int refund, List databaseRoomIDs) { foreach (var databaseRoomID in databaseRoomIDs) { RefundRoomIDs.Remove(databaseRoomID); } if (refund > 0) { ManaCenter.AddDiamond(refund, StaticsManager.ItemID.获得钻石, StaticsManager.ConsumeModule.RoomChestRefund); ManaInfoBox.Show(InfoCategory.Garden, Language.GetStr("UI", "BB_Refund")+refund, 30); } } public static void Save() { XmlNode node = ManaData.PlayerNode.SelectSingleNode(RefundNodeName); while (node != null) { ManaData.PlayerNode.RemoveChild(node); node = ManaData.PlayerNode.SelectSingleNode(RefundNodeName); } node = ManaData.PlayerNode.SelectSingleNode(ReceivedNodeName); while (node != null) { ManaData.PlayerNode.RemoveChild(node); node = ManaData.PlayerNode.SelectSingleNode(ReceivedNodeName); } foreach (var id in RefundRoomIDs) { node = ManaData.PlayerDoc.CreateNode(XmlNodeType.Element, RefundNodeName, null); node.InnerText = id.ToString(); ManaData.PlayerNode.AppendChild(node); } foreach (var id in ReceivedChestIDs) { node = ManaData.PlayerDoc.CreateNode(XmlNodeType.Element, ReceivedNodeName, null); node.InnerText = id.ToString(); ManaData.PlayerNode.AppendChild(node); } } }