134 lines
4.4 KiB
C#

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<Awakening> 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<Awakening> 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<Awakening> requiredAwakenings = new List<Awakening>();
[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<Awakening>();
}
public AwakeningData(string name, string description)
{
Name = name;
Description = description;
CurrentPoints = 0;
MaxPoints = 1;
requiredAwakenings = new List<Awakening>();
}
public AwakeningData(string name, string description, int currentPoints, int totalPoints, List<Awakening> 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;
}
}