/** * Grasscutter Tools * Copyright (C) 2022 jie65535 * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published * by the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . * **/ using Newtonsoft.Json; namespace GrasscutterTools.GOOD { /// /// Artifact data representation /// Doc: https://frzyc.github.io/genshin-optimizer/#/doc /// Modified from https://github.com/Andrewthe13th/Inventory_Kamera/blob/master/InventoryKamera/game/Artifact.cs /// public class Artifact { /// /// e.g. "GladiatorsFinale" /// [JsonProperty("setKey")] public string SetName { get; set; } /// /// //e.g. "plume" /// type SlotKey = "flower" | "plume" | "sands" | "goblet" | "circlet" /// [JsonProperty("slotKey")] public string GearSlot { get; set; } /// /// 1-5 inclusive /// [JsonProperty("rarity")] public int Rarity { get; set; } /// /// mainStatKey /// [JsonProperty("mainStatKey")] public string MainStat { get; set; } /// /// 0-20 inclusive /// [JsonProperty("level")] public int Level { get; set; } /// /// substats /// [JsonProperty("substats")] public SubStat[] SubStats { get; set; } /// /// where "" means not equipped. /// [JsonProperty("location")] public string EquippedCharacter { get; set; } /// /// Whether the artifact is locked in game. /// [JsonProperty("lock")] public bool Lock { get; set; } public struct SubStat { /// /// e.g. "critDMG_" /// [JsonProperty("key")] public string Stat { get; set; } /// /// e.g. 19.4 /// [JsonProperty("value")] public double Value { get; set; } } } }