コード例 #1
0
        public void LoadData_Buff(GameObject player)
        {
            BuffManager manager = player.GetComponent <BuffManager>();

            foreach (c2w_buff row in connection.Query <c2w_buff>("SELECT * FROM c2w_buff WHERE owner=?", player.name))
            {
                if (row.slot < manager.GetCapacity)
                {
                    if (String.IsNullOrWhiteSpace(row.name))
                    {
                        manager.AddEntry(row.slot, null, 0, 0, 0);
                    }
                    else if (BuffTemplate.dict.TryGetValue(row.name.GetDeterministicHashCode(), out BuffTemplate template))
                    {
                        manager.AddEntry(row.slot, template, row.state, row.timer, row.level);
                    }
                    else
                    {
                        Debug.LogWarning("Load: Skipped buff " + row.name + " for " + player.name + " as it was not found in Resources.");
                    }
                }
                else
                {
                    Debug.LogWarning("Skipped buff slot " + row.slot + " for " + player.name + " because it's bigger than size " + manager.GetCapacity);
                }
            }
        }
        // -------------------------------------------------------------------------------
        protected override void ThrottledUpdate()
        {
            if (manager == null)
            {
                manager = localPlayer.GetComponent <BuffManager>();
            }

            for (int i = 0; i < contentGroup.childCount; i++)
            {
                GameObject.Destroy(contentGroup.GetChild(i).gameObject);
            }

            foreach (BuffSyncStruct _entry in manager.GetEntries(true, SortOrder.None, category))
            {
                BuffSyncStruct entry  = _entry;
                GameObject     prefab = null;

                if (displayType == DisplayType.Horizontal)
                {
                    prefab = horizontalSlotPrefab.gameObject;
                }
                else if (displayType == DisplayType.Vertical)
                {
                    prefab = verticalSlotPrefab.gameObject;
                }
                else if (displayType == DisplayType.Grid)
                {
                    prefab = gridSlotPrefab.gameObject;
                }

                GameObject go = GameObject.Instantiate(prefab);
                go.transform.SetParent(contentGroup, false);
                go.GetComponent <UIPlayerListBuffSlot>().Init(localPlayer, ref entry);
            }
        }
コード例 #3
0
        public void SaveData_Buff(GameObject player)
        {
            connection.Execute("DELETE FROM c2w_buff WHERE owner=?", player.name);

            BuffManager manager = player.GetComponent <BuffManager>();

            List <BuffSyncStruct> list = manager.GetEntries(false);

            for (int i = 0; i < list.Count; i++)
            {
                BuffSyncStruct entry = list[i];

                connection.InsertOrReplace(new c2w_buff {
                    owner = player.name,
                    slot  = entry.slot,
                    name  = entry.name,
                    level = entry.level,
                    state = entry.state,
                    timer = entry.timer
                });
            }
        }
コード例 #4
0
        public void CreateDefaultData_Buff(GameObject player)
        {
            BuffManager manager = player.GetComponent <BuffManager>();

            manager.CreateDefaultData();
        }