|
@@ -0,0 +1,179 @@
|
|
|
+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<int> RefundRoomIDs = new List<int>();
|
|
|
+ private static List<long> ReceivedChestIDs = new List<long>();
|
|
|
+
|
|
|
+ #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<ChestData> 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<int> 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);
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|