Encounter / Assets / Scripts / DataManagement / AspectReference.cs
AspectReference.cs
Raw
using JetBrains.Annotations;
using System;
using System.Collections.Generic;

/// <summary>
/// Collector for the Json files for the ID's and Paths
/// </summary>
[Serializable]
public struct AspectReference
{
    public int id;              // Aspect ID, seperate for each aspect
    public string path;         // Path ID, seperate for each aspect, but each type leads to same folder

    /// <summary>
    /// Constructor for struct
    /// </summary>
    /// <param name="id">Aspect ID</param>
    /// <param name="path">Aspect Path</param>
    public AspectReference(int id, string path)
    {
        this.id = id;
        this.path = path;
    }
}

[Serializable]
public struct AspectReferenceExpanded
{
    public int stockId;
    public string shopName;
    public string ownerName;
    public int[] weaponIds;
    public int[] weaponAmounts;
    public int[] apparelIds;
    public int[] apparelAmounts;
    public int[] consumableIds;
    public int[] consumableAmounts;
    public int[] generalIds;
    public int[] generalAmounts;
    public int[] relicIds;
    public int[] relicAmounts;

    public AspectReferenceExpanded(int stockId, string shopName, string ownerName, int[] weaponIds, int[] weaponAmounts, int[] apparelIds, 
        int[] apparelAmounts, int[] consumableIds, int[] consumableAmounts, int[] generalIds, int[] generalAmounts, int[] relicIds, int[] relicAmounts)
    {
        this.stockId                = stockId;
        this.shopName               = shopName;
        this.ownerName              = ownerName;
        this.weaponIds              = weaponIds;
        this.weaponAmounts          = weaponAmounts;
        this.apparelIds             = apparelIds;
        this.apparelAmounts         = apparelAmounts;
        this.consumableIds          = consumableIds;
        this.consumableAmounts      = consumableAmounts;
        this.generalIds             = generalIds;
        this.generalAmounts         = generalAmounts;
        this.relicIds               = relicIds;
        this.relicAmounts           = relicAmounts;
    }
}

/// <summary>
/// Wrapper for the Object Arrays in each of the Json files
/// </summary>
[Serializable]
public class AspectReferenceCollection
{
    public List<AspectReference> references;
    public AspectReferenceCollection() 
        => references = new List<AspectReference>();
}

[Serializable]
public class AspectReferenceCollectionExpanded
{
    public List<AspectReferenceExpanded> referencesExpanded;
    public AspectReferenceCollectionExpanded()
        => referencesExpanded = new List<AspectReferenceExpanded>();
}