示例#1
0
    public void Apply()
    {
        TargetStorage = GetComponent <StorageObject>();

        if (TargetStorage.GetType() == typeof(PlayerInventory))
        {
            VariableName = "PlayerInventory";
        }
        else
        {
            VariableName = "Chest " + TargetStorage.Level + " " + transform.position.x.ToString() + "," + transform.position.y.ToString();
        }

        //        print(VariableName);
        int slotAmount = DialogueLua.GetVariable(VariableName + "SlotAmount").asInt;

        TargetStorage.Init = DialogueLua.GetVariable(VariableName + "Init").asBool;


        for (int i = 0; i < slotAmount; i++)
        {
            int    itemAmount         = DialogueLua.GetVariable(VariableName + "StackAmount" + i).asInt;
            string itemName           = DialogueLua.GetVariable(VariableName + "StackItem" + i).asString;
            string itemType           = DialogueLua.GetVariable(VariableName + "StackItemType" + i).asString;
            ItemSystem.ItemTypes type = (ItemSystem.ItemTypes)System.Enum.Parse(typeof(ItemSystem.ItemTypes), itemType);

            ItemBase item        = ItemSystem.Instance.GetItemClone(itemName);
            int      amountAdded = TargetStorage.Add(item, (uint)itemAmount);
            int      amountLeft  = itemAmount - amountAdded;
            if (amountLeft > 0)
            {
                Debug.LogWarning("Saver could not add all items to storage: " + TargetStorage.Name);
            }
        }
    }
示例#2
0
    public override void Start()
    {
        base.Start();
        TargetStorage = GetComponent <StorageObject>();

        if (TargetStorage.GetType() == typeof(PlayerInventory))
        {
            VariableName = "PlayerInventory";
        }
        else
        {
            VariableName = "Chest " + TargetStorage.Level + " " + transform.position.x.ToString() + "," + transform.position.y.ToString();
        }
    }
示例#3
0
    public void OnRecordPersistentData()
    {
        TargetStorage = GetComponent <StorageObject>();

        if (TargetStorage.GetType() == typeof(PlayerInventory))
        {
            VariableName = "PlayerInventory";
        }
        else
        {
            VariableName = "Chest " + TargetStorage.Level + " " + transform.position.x.ToString() + "," + transform.position.y.ToString();
        }
        //        print(VariableName);

        DialogueLua.SetVariable(VariableName + "SlotAmount", TargetStorage.ContainedStacks.Count);
        DialogueLua.SetVariable(VariableName + "Init", TargetStorage.Init);

        for (int i = 0; i < TargetStorage.ContainedStacks.Count; i++)
        {
            DialogueLua.SetVariable(VariableName + "StackAmount" + i, TargetStorage.ContainedStacks[i].Amount);
            DialogueLua.SetVariable(VariableName + "StackItem" + i, TargetStorage.ContainedStacks[i].ContainedItem.Name);
            DialogueLua.SetVariable(VariableName + "StackItemType" + i, TargetStorage.ContainedStacks[i].ContainedItem.Type.ToString());
        }
    }