コード例 #1
0
        public static void AddActiveItem(List <ActiveItemData> activeItemList, ACTIVE_ITEM_TYPE itemType, string value)
        {
            string[] values    = value.Split(',');
            int      limitTime = int.Parse(values[0]);

            bool add = true;

            for (int i = 0; i < activeItemList.Count; ++i)
            {
                if ((ACTIVE_ITEM_TYPE)activeItemList[i].itemType == itemType && activeItemList[i].value == values[1])
                {
                    if (activeItemList[i].limitTime > 0)
                    {
                        activeItemList[i].limitTime += limitTime;
                    }

                    add = false;
                    break;
                }
            }

            if (add == true)
            {
                ActiveItemData activeItemData = new ActiveItemData();
                activeItemData.itemType  = (byte)itemType;
                activeItemData.startTime = DateTime.UtcNow.Ticks;
                activeItemData.limitTime = limitTime == 0 ? -1 : limitTime;
                activeItemData.value     = values[1];

                activeItemList.Add(activeItemData);
            }
        }
コード例 #2
0
        public static void UpdateActiveItem(List <ActiveItemData> activeItemList)
        {
            if (activeItemList == null)
            {
                return;
            }

            DateTime utcTime = DateTime.UtcNow;

            for (int i = activeItemList.Count - 1; i >= 0; --i)
            {
                ActiveItemData activeItemData = activeItemList[i];
                if (activeItemData.limitTime < 0)
                {
                    continue;
                }

                DateTime startTIme = new DateTime(activeItemData.startTime);
                TimeSpan subTime   = utcTime - startTIme;
                if (subTime.TotalMinutes >= activeItemData.limitTime)
                {
                    activeItemList.RemoveAt(i);
                }
            }
        }
コード例 #3
0
        public static List <ActiveItemData> ConvertActiveItemList(byte[] buffer)
        {
            List <ActiveItemData> activeItemList = new List <ActiveItemData>();

            if (buffer == null)
            {
                return(activeItemList);
            }

            MemoryStream ms = new MemoryStream(buffer);
            BinaryReader br = new BinaryReader(ms);

            int count = br.ReadInt32();

            for (int i = 0; i < count; ++i)
            {
                ActiveItemData activeItemData = new ActiveItemData();
                activeItemData.itemType  = br.ReadByte();
                activeItemData.limitTime = br.ReadInt32();
                activeItemData.startTime = br.ReadInt64();
                activeItemData.value     = br.ReadString();

                activeItemList.Add(activeItemData);
            }

            br.Close();
            ms.Close();

            return(activeItemList);
        }
コード例 #4
0
 public void ResetSlot()
 {
     desc              = null;
     coolTimeInst      = -1f;
     deltaTime         = 10000f;
     useItem           = false;
     itemIcon.texImage = null;
 }
コード例 #5
0
 public bool AddActiveItem(ActiveItemData item)
 {
     if (tools[1].AddActiveItem(item))
     {
         return(true);
     }
     if (tools[0].AddActiveItem(item))
     {
         return(true);
     }
     return(false);
 }
コード例 #6
0
 public bool AddActiveItem(ActiveItemData item)
 {
     if (desc == null)
     {
         desc              = item;
         deltaTime         = 10000f;
         useItem           = false;
         itemIcon.texImage = item.icon;
         uiEffect.Reset();
         return(true);
     }
     return(false);
 }
コード例 #7
0
 private void Update()
 {
     VerifyLocalController();
     for (int i = 0; i < tools.Length; i++)
     {
         if (tools[i] != null)
         {
             tools[i].Update();
         }
     }
     if (tools[1].UseAble() && !battleChat.IsChatting && custom_inputs.Instance.GetButtonDown(input[0]) && localController != null && localController.CanControl())
     {
         tools[1].Use();
         if (tools[0].UseAble())
         {
             tools[1].AddActiveItem(tools[0].GetActiveItem());
             tools[0].ResetSlot();
         }
     }
     if (tools[1].UseAble() && tools[0].UseAble() && !battleChat.IsChatting && custom_inputs.Instance.GetButtonDown(input[1]) && localController != null && localController.CanControl())
     {
         ActiveItemData activeItem = tools[1].GetActiveItem();
         tools[1].ResetSlot();
         tools[1].AddActiveItem(tools[0].GetActiveItem());
         tools[0].ResetSlot();
         tools[0].AddActiveItem(activeItem);
         GameObject gameObject = GameObject.Find("Me");
         if (null != gameObject)
         {
             AudioSource component = gameObject.GetComponent <AudioSource>();
             if (component != null)
             {
                 component.PlayOneShot(sndItemSwap);
             }
         }
     }
 }