using System.Collections; using System.Collections.Generic; using UnityEngine; [CreateAssetMenu(fileName = "Awakening", menuName = "RiftMayhem/AwakeningSystem/Awakenings/new BaseAwakening", order = 0)] public class Awakening : ScriptableObject { public AwakeningData data; public bool AllRequirementsMet(List unlockedAwakenings) { for (int i = 0; i < data.requiredAwakenings.Count; i++) { if (!unlockedAwakenings.Contains(data.requiredAwakenings[i])) return false; } return true; } } [System.Serializable] public class AwakeningInstance { public AwakeningData data; public bool AllRequirementsMet(List unlockedAwakenings) { for (int i = 0; i < data.requiredAwakenings.Count; i++) { if (!unlockedAwakenings.Contains(data.requiredAwakenings[i])) return false; } return true; } } [System.Serializable] public class AwakeningData { public string Name; public string Description; public int CurrentPoints; public int MaxPoints; public List requiredAwakenings = new List(); [Space] public int StrengthBonus; public int AgilityBonus; public int IntelligenceBonus; public int SpiritBonus; public int VitalityBonus; [Space] public float StrengthPercentBonus; public float AgilityPercentBonus; public float IntelligencePercentBonus; public float SpiritPercentBonus; public float VitalityPercentBonus; [Space] public int AttackDamageBonus; public int SpellDamageBonus; public int CritChanceBonus; public int CritDamageBonus; public int MaxHealthBonus; public int ArmorBonus; public int MagicResistanceBonus; [Space] public float AttackDamagePercentBonus; public float SpellDamagePercentBonus; public float CritChancePercentBonus; public float CritDamagePercentBonus; public float MaxHealthPercentBonus; public float ArmorPercentBonus; public float MagicResistancePercentBonus; public AwakeningData() { Name = ""; Description = ""; CurrentPoints = 0; MaxPoints = 1; requiredAwakenings = new List(); } public AwakeningData(string name, string description) { Name = name; Description = description; CurrentPoints = 0; MaxPoints = 1; requiredAwakenings = new List(); } public AwakeningData(string name, string description, int currentPoints, int totalPoints, List requirements) { Name = name; Description = description; CurrentPoints = currentPoints; MaxPoints = totalPoints; requiredAwakenings = requirements; } public AwakeningData(AwakeningData data) { this.Name = data.Name; this.Description = data.Description; this.CurrentPoints = data.CurrentPoints; this.MaxPoints = data.MaxPoints; this.requiredAwakenings = data.requiredAwakenings; this.StrengthBonus = data.StrengthBonus; this.AgilityBonus = data.AgilityBonus; this.IntelligenceBonus = data.IntelligenceBonus; this.SpiritBonus = data.SpiritBonus; this.VitalityBonus = data.VitalityBonus; this.StrengthPercentBonus = data.StrengthPercentBonus; this.AgilityPercentBonus = data.AgilityPercentBonus; this.IntelligencePercentBonus = data.IntelligencePercentBonus; this.SpiritPercentBonus = data.SpiritPercentBonus; this.VitalityPercentBonus = data.VitalityPercentBonus; this.AttackDamageBonus = data.AttackDamageBonus; this.SpellDamageBonus = data.SpellDamageBonus; this.CritChanceBonus = data.CritChanceBonus; this.CritDamageBonus = data.CritDamageBonus; this.MaxHealthBonus = data.MaxHealthBonus; this.ArmorBonus = data.ArmorBonus; this.MagicResistanceBonus = data.MagicResistanceBonus; this.AttackDamagePercentBonus = data.AttackDamagePercentBonus; this.SpellDamagePercentBonus = data.SpellDamagePercentBonus; this.CritChancePercentBonus = data.CritChancePercentBonus; this.CritDamagePercentBonus = data.CritDamagePercentBonus; this.MaxHealthPercentBonus = data.MaxHealthPercentBonus; this.ArmorPercentBonus = data.ArmorPercentBonus; this.MagicResistancePercentBonus = data.MagicResistancePercentBonus; } }