134 lines
4.4 KiB
C#
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;
|
|
}
|
|
} |