Beispiel #1
0
    public void loadIAP()
    {
        if (File.Exists(Application.persistentDataPath + "/purchases.dat"))
        {
            BinaryFormatter bf   = new BinaryFormatter();
            FileStream      file = File.Open(Application.persistentDataPath + "/purchases.dat", FileMode.Open);
            IAPData         data = null;
            try {
                data = (IAPData)bf.Deserialize(file);
            }
            catch (Exception e) {
                Debug.LogError("Failed to load IAP: " + e.Message);
            }
            file.Close();

            knifeCollectionPurchased = data.knifeCollectionPurchased;
            knifeID    = data.knifeID;
            saberColor = data.saberColor;
            x3Time     = data.x3Time;
            x7Time     = data.x7Time;
            x2Time     = data.x2Time;

            saveVersion();
        }
    }
Beispiel #2
0
    public void saveIAP()
    {
        BinaryFormatter bf   = new BinaryFormatter();
        FileStream      file = File.Create(Application.persistentDataPath + "/purchases.dat");

        IAPData data = new IAPData();

        data.knifeCollectionPurchased = knifeCollectionPurchased;
        data.knifeID    = knifeID;
        data.saberColor = saberColor;
        if (x3Time < 0)
        {
            x3Time = 0;
        }
        if (x7Time < 0)
        {
            x7Time = 0;
        }
        if (x2Time < 0)
        {
            x2Time = 0;
        }
        data.x3Time = x3Time;
        data.x7Time = x7Time;
        data.x2Time = x2Time;

        bf.Serialize(file, data);
        file.Close();
    }
Beispiel #3
0
    public override void Write(object obj, ES2Writer writer)
    {
        IAPData data = (IAPData)obj;

        writer.Write(data.Receipt);
        writer.Write(data.LocalItemId);
        writer.Write((int)data.State);
        writer.Write(data.UpdateTime);
        writer.Write(data.tokens);
        writer.Write(data.StoreSpecificId);
        writer.Write(data.TransactionId);
    }
Beispiel #4
0
 public void ResetData(IAPData newData)
 {
     data = newData;
     if (display_name != null)
     {
         display_name.text = newData.name;
     }
     if (price != null)
     {
         int pricebase = 100;
         price.text = "$ " + newData.price / pricebase + "." + newData.price % pricebase;
     }
     if (description != null)
     {
         description.text = "" + newData.description;
     }
     if (sprite != null)
     {
         sprite.sprite = CatfePlayerScript.script.GetDecorationSprite(newData.sprite);
     }
 }
    public static void DrawListOfIAPData(string caption, List <IAPData> list, ref bool dirty)
    {
        if (list == null)
        {
            return;
        }

        contentColor    = GUI.contentColor;
        backgroundColor = GUI.backgroundColor;

        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField(caption, GUILayout.Width(100));
        GUI.backgroundColor = greenColor;
        if (GUILayout.Button("Add", GUILayout.Width(60)))
        {
            list.Add(new IAPData(StoreType.All, ""));
            dirty = true;
        }
        GUI.backgroundColor = backgroundColor;
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal();
        GUILayout.Space(30);
        EditorGUILayout.BeginVertical();
        int removedIndex = -1;

        for (int i = 0; i < list.Count; ++i)
        {
            IAPData element = list[i];
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Store: ", GUILayout.Width(60));
            StoreType oldStore = element.store;
            element.store = (StoreType)EditorGUILayout.EnumPopup(element.store, GUILayout.Width(60));
            if (oldStore != element.store)
            {
                dirty = true;
            }
            string oldId = element.iapId;
            element.iapId = EditorGUILayout.TextField(element.iapId, GUILayout.Width(250));
            if (oldId != element.iapId)
            {
                dirty = true;
            }
            GUILayout.Space(20);
            GUI.backgroundColor = redColor;
            if (GUILayout.Button("Delete this entry", GUILayout.Width(100)))
            {
                removedIndex = i;
            }
            GUI.backgroundColor = backgroundColor;
            EditorGUILayout.EndHorizontal();
        }
        EditorGUILayout.EndVertical();
        EditorGUILayout.EndHorizontal();

        if (removedIndex != -1)
        {
            list.RemoveAt(removedIndex);
            dirty = true;
        }
    }
Beispiel #6
0
    bool DrawLoadService()
    {
        contentColor    = GUI.contentColor;
        backgroundColor = GUI.backgroundColor;

        EditorGUILayout.BeginHorizontal();
        GUI.backgroundColor = EditorHelpers.orangeColor;
        if (GUILayout.Button("Load", GUILayout.Width(60)))
        {
            LoadData();
        }

        GUI.backgroundColor = EditorHelpers.yellowColor;
        if (GUILayout.Button("New", GUILayout.Width(60)))
        {
            ItemConfigData newData = new ItemConfigData();
            newData.id = "New Item " + newItemNameSufix.ToString();
            ++newItemNameSufix;
            EditorHelpers.allItems.Insert(0, newData);
            EditorHelpers.InitItemConfigNames();
            selectedItemIndex = 0;
            itemData          = newData;
            ShowNotification(new GUIContent("New Item added."));
            dirty = true;
        }
        GUI.backgroundColor = EditorHelpers.greenColor;
        if (GUILayout.Button("Save", GUILayout.Width(60)))
        {
            Save();
        }
        GUI.backgroundColor = backgroundColor;
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.Separator(); EditorGUILayout.Separator(); EditorGUILayout.Separator();
        if (EditorHelpers.allItems == null)
        {
            EditorGUILayout.HelpBox("It seems that there is no data... try reopening the editor.", MessageType.Error);
            return(false);
        }

        iapCreatorSectionOpened = EditorGUILayout.Foldout(iapCreatorSectionOpened, "iAP Creator");

        if (iapCreatorSectionOpened)
        {
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("iAP Name:", GUILayout.Width(100));
            iapName = EditorGUILayout.TextField(iapName, GUILayout.Width(250));
            if (GUILayout.Button("Create", GUILayout.Width(70)))
            {
                if (iapName.Length > 0)
                {
                    bool exists = false;
                    foreach (var id in EditorHelpers.allIAPs)
                    {
                        if (id.id == iapName)
                        {
                            ShowNotification(new GUIContent("iAP with id (" + iapName + ") already exists."));
                            exists = true;
                            break;
                        }
                    }
                    if (!exists)
                    {
                        IAPConfigData newiAP = new IAPConfigData();
                        newiAP.id   = iapName;
                        newiAP.name = iapName;
                        var newIAPData = new IAPData(StoreType.All, iapName);
                        newiAP.iapData.Add(newIAPData);
                        EditorHelpers.allIAPs.Add(newiAP);
                        EditorHelpers.InitIAPNames(true);
                        ShowNotification(new GUIContent("New iAP created."));
                        if (EditorHelpers.allIAPs.Count > 0)
                        {
                            EditorHelpers.gameDB.DeleteAllConfigs(EditorHelpers.allIAPs[0].GetTableName());
                        }
                        foreach (var p in EditorHelpers.allIAPs)
                        {
                            EditorHelpers.gameDB.SaveConfig(p.GetTableName(), p.id, LitJson.JsonMapper.ToJson(p));
                        }
                        EditorHelpers.gameDB.IncrementLocalDBVersion();
                    }
                }
                else
                {
                    ShowNotification(new GUIContent("iAP must have a name."));
                }
            }
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.Separator(); EditorGUILayout.Separator();
        }

        if (EditorHelpers.DrawItemsFilter("Item Filter:"))
        {
            selectedItemIndex = -1;
            itemData          = null;
        }
        if (EditorHelpers.allItems.Count > 0)
        {
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Items:", GUILayout.Width(100));
            int oldIntValue = selectedItemIndex;
            selectedItemIndex = EditorGUILayout.Popup(oldIntValue, EditorHelpers.itemConfigNames, GUILayout.Width(250));
            if (oldIntValue != selectedItemIndex)
            {
                itemData = EditorHelpers.allItems[selectedItemIndex];
            }
            if (itemData != null)
            {
                GUI.backgroundColor = EditorHelpers.redColor;
                if (GUILayout.Button("Delete", GUILayout.Width(70)))
                {
                    if (EditorUtility.DisplayDialog("Deleting Item!", "Are you sure you want to delete parameter '" + itemData.id + "'?", "Yes, Delete it.", "No!"))
                    {
                        EditorHelpers.gameDB.DeleteConfig(itemData.GetTableName(), itemData.id);
                        EditorHelpers.allItems.Remove(itemData);
                        EditorHelpers.InitItemConfigNames();
                        selectedItemIndex = -1;
                        itemData          = null;
                        ShowNotification(new GUIContent("Item deleted."));
                        return(false);
                    }
                }
                GUI.backgroundColor = EditorHelpers.blueColor;
                if (GUILayout.Button("Duplicate", GUILayout.Width(100)))
                {
                    ItemConfigData newData = itemData.Clone() as ItemConfigData;
                    newData.id = itemData.id + "(Clone)";
                    EditorHelpers.allItems.Insert(0, newData);
                    EditorHelpers.InitItemConfigNames();
                    selectedItemIndex = 0;
                    itemData          = newData;
                    ShowNotification(new GUIContent("Item duplicated."));
                    dirty = true;
                }
                GUI.backgroundColor = backgroundColor;
            }
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.Separator(); EditorGUILayout.Separator(); EditorGUILayout.Separator();
        }

        return(itemData != null);
    }