using System; using System.Collections.Generic; using Sirenix.OdinInspector; using UnityEngine; // ReSharper disable once CheckNamespace namespace BlueWaterProject { [Serializable] public class PirateUnitStat : IIdx { #region Property and variable [field: Tooltip("고유 인덱스")] [field: SerializeField] public string Idx { get; set; } [field: Tooltip("선장의 인덱스")] [field: SerializeField] public string CaptainStatIdx { get; set; } [field: Tooltip("선원의 인덱스")] [field: SerializeField] public string SailorStatIdx { get; set; } [field: Tooltip("부대의 이름 또는 선장의 이름")] [field: SerializeField] public string UnitName { get; set; } [field: Tooltip("선원의 수")] [field: Range(0, GlobalValue.ONE_UNIT_CAPACITY - 1)] [field: SerializeField] public int SailorCount { get; set; } [field: EnumToggleButtons] [field: SerializeField] public EAttackerType AttackerType { get; set; } [field: EnumToggleButtons] [field: SerializeField] public EOffenseType OffenseType { get; set; } [field: EnumToggleButtons] [field: SerializeField] public EDefenseType DefenseType { get; set; } [field: Tooltip("부대 병력 리스트")] [field: SerializeField] public List PirateAiList { get; set; } #endregion #region Constructor public PirateUnitStat() { Idx = null; CaptainStatIdx = null; SailorStatIdx = null; UnitName = null; SailorCount = 0; AttackerType = EAttackerType.NONE; OffenseType = EOffenseType.NONE; DefenseType = EDefenseType.NONE; PirateAiList = new List(GlobalValue.ONE_UNIT_CAPACITY); } public PirateUnitStat(string idx, string captainIdx, string sailorIdx, string unitName, int sailorCount, EAttackerType attackerType, EOffenseType offenseType, EDefenseType defenseType, List pirateAiList) { Idx = idx; CaptainStatIdx = captainIdx; SailorStatIdx = sailorIdx; UnitName = unitName; SailorCount = sailorCount; OffenseType = offenseType; DefenseType = defenseType; PirateAiList = pirateAiList; if (AttackerType == EAttackerType.NONE) return; AttackerType = attackerType; } public PirateUnitStat(PirateUnitStat pirateUnitStat) { Idx = pirateUnitStat.Idx; CaptainStatIdx = pirateUnitStat.CaptainStatIdx; SailorStatIdx = pirateUnitStat.SailorStatIdx; UnitName = pirateUnitStat.UnitName; SailorCount = pirateUnitStat.SailorCount; AttackerType = pirateUnitStat.AttackerType; OffenseType = pirateUnitStat.OffenseType; DefenseType = pirateUnitStat.DefenseType; PirateAiList = pirateUnitStat.PirateAiList; } #endregion } }