Initial import
This commit is contained in:
47
Assets/Scripts/Data/BuildingDataSO.cs
Normal file
47
Assets/Scripts/Data/BuildingDataSO.cs
Normal file
@@ -0,0 +1,47 @@
|
||||
using UnityEngine;
|
||||
using EE2Clone.Core;
|
||||
|
||||
namespace EE2Clone.Data
|
||||
{
|
||||
[CreateAssetMenu(fileName = "NewBuildingData", menuName = "EE2Clone/Building Data")]
|
||||
public class BuildingDataSO : ScriptableObject
|
||||
{
|
||||
[Header("Identity")]
|
||||
public int Id;
|
||||
public string BuildingName;
|
||||
public BuildingType BuildingType;
|
||||
public Epoch RequiredEpoch;
|
||||
|
||||
[Header("Stats")]
|
||||
public float MaxHealth = 500;
|
||||
public float LineOfSightRange = 8f;
|
||||
public float BuildTime = 20f;
|
||||
|
||||
[Header("Territory")]
|
||||
public float TerritoryRadius;
|
||||
|
||||
[Header("Population")]
|
||||
public int ProvidesPopulation;
|
||||
|
||||
[Header("Resource Dropoff")]
|
||||
public bool IsDropoff;
|
||||
public ResourceType[] AcceptedResourceTypes;
|
||||
|
||||
[Header("Production")]
|
||||
public int[] ProducibleUnitIds;
|
||||
public int[] ResearchableTechIds;
|
||||
|
||||
[Header("Cost")]
|
||||
public int FoodCost;
|
||||
public int WoodCost;
|
||||
public int StoneCost;
|
||||
public int GoldCost;
|
||||
public int TinCost;
|
||||
|
||||
[Header("Footprint")]
|
||||
public Vector2Int FootprintSize = new(3, 3);
|
||||
|
||||
[Header("Visuals")]
|
||||
public GameObject Prefab;
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/Data/BuildingDataSO.cs.meta
Normal file
2
Assets/Scripts/Data/BuildingDataSO.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ba7586487d870fb4dbfd31fee37961d4
|
||||
27
Assets/Scripts/Data/CivilizationDataSO.cs
Normal file
27
Assets/Scripts/Data/CivilizationDataSO.cs
Normal file
@@ -0,0 +1,27 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace EE2Clone.Data
|
||||
{
|
||||
[CreateAssetMenu(fileName = "NewCivilizationData", menuName = "EE2Clone/Civilization Data")]
|
||||
public class CivilizationDataSO : ScriptableObject
|
||||
{
|
||||
[Header("Identity")]
|
||||
public int Id;
|
||||
public string CivilizationName;
|
||||
public string Description;
|
||||
|
||||
[Header("Starting Bonuses")]
|
||||
public int BonusFood;
|
||||
public int BonusWood;
|
||||
public int BonusStone;
|
||||
public int BonusGold;
|
||||
|
||||
[Header("Stat Modifiers")]
|
||||
public float InfantryAttackModifier = 1f;
|
||||
public float RangedAttackModifier = 1f;
|
||||
public float CavalryAttackModifier = 1f;
|
||||
public float GatherSpeedModifier = 1f;
|
||||
public float BuildSpeedModifier = 1f;
|
||||
public float ResearchSpeedModifier = 1f;
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/Data/CivilizationDataSO.cs.meta
Normal file
2
Assets/Scripts/Data/CivilizationDataSO.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d5e0e074c1ddf1743bdf4ea4688e7441
|
||||
28
Assets/Scripts/Data/EpochDataSO.cs
Normal file
28
Assets/Scripts/Data/EpochDataSO.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using UnityEngine;
|
||||
using EE2Clone.Core;
|
||||
|
||||
namespace EE2Clone.Data
|
||||
{
|
||||
[CreateAssetMenu(fileName = "NewEpochData", menuName = "EE2Clone/Epoch Data")]
|
||||
public class EpochDataSO : ScriptableObject
|
||||
{
|
||||
[Header("Identity")]
|
||||
public Epoch Epoch;
|
||||
public string EpochName;
|
||||
public string Description;
|
||||
|
||||
[Header("Advance Requirements")]
|
||||
public int FoodCost;
|
||||
public int WoodCost;
|
||||
public int StoneCost;
|
||||
public int GoldCost;
|
||||
public int TinCost;
|
||||
public int[] RequiredTechIds;
|
||||
public float AdvanceTime = 60f;
|
||||
|
||||
[Header("Unlocks")]
|
||||
public int[] UnlockedBuildingIds;
|
||||
public int[] UnlockedUnitIds;
|
||||
public int[] UnlockedTechIds;
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/Data/EpochDataSO.cs.meta
Normal file
2
Assets/Scripts/Data/EpochDataSO.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1a02854ba574df84d84820e3f8feb651
|
||||
48
Assets/Scripts/Data/TechDataSO.cs
Normal file
48
Assets/Scripts/Data/TechDataSO.cs
Normal file
@@ -0,0 +1,48 @@
|
||||
using UnityEngine;
|
||||
using EE2Clone.Core;
|
||||
|
||||
namespace EE2Clone.Data
|
||||
{
|
||||
[CreateAssetMenu(fileName = "NewTechData", menuName = "EE2Clone/Tech Data")]
|
||||
public class TechDataSO : ScriptableObject
|
||||
{
|
||||
[Header("Identity")]
|
||||
public int Id;
|
||||
public string TechName;
|
||||
public string Description;
|
||||
public Epoch RequiredEpoch;
|
||||
|
||||
[Header("Prerequisites")]
|
||||
public int[] PrerequisiteTechIds;
|
||||
|
||||
[Header("Research")]
|
||||
public float ResearchTime = 30f;
|
||||
public int FoodCost;
|
||||
public int WoodCost;
|
||||
public int StoneCost;
|
||||
public int GoldCost;
|
||||
public int TinCost;
|
||||
|
||||
[Header("Effects")]
|
||||
public TechEffect[] Effects;
|
||||
}
|
||||
|
||||
[System.Serializable]
|
||||
public struct TechEffect
|
||||
{
|
||||
public TechEffectType EffectType;
|
||||
public UnitClass AffectedUnitClass;
|
||||
public float Value;
|
||||
}
|
||||
|
||||
public enum TechEffectType
|
||||
{
|
||||
AttackBonus,
|
||||
ArmorBonus,
|
||||
SpeedBonus,
|
||||
HealthBonus,
|
||||
GatherSpeedBonus,
|
||||
BuildSpeedBonus,
|
||||
TrainSpeedBonus
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/Data/TechDataSO.cs.meta
Normal file
2
Assets/Scripts/Data/TechDataSO.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 93cdf2b99ef6a4340ab0635822ff6b95
|
||||
51
Assets/Scripts/Data/UnitDataSO.cs
Normal file
51
Assets/Scripts/Data/UnitDataSO.cs
Normal file
@@ -0,0 +1,51 @@
|
||||
using UnityEngine;
|
||||
using EE2Clone.Core;
|
||||
|
||||
namespace EE2Clone.Data
|
||||
{
|
||||
[CreateAssetMenu(fileName = "NewUnitData", menuName = "EE2Clone/Unit Data")]
|
||||
public class UnitDataSO : ScriptableObject
|
||||
{
|
||||
[Header("Identity")]
|
||||
public int Id;
|
||||
public string UnitName;
|
||||
public UnitClass UnitClass;
|
||||
public Epoch RequiredEpoch;
|
||||
|
||||
[Header("Stats")]
|
||||
public float MaxHealth = 100;
|
||||
public float MoveSpeed = 4f;
|
||||
public float AttackDamage = 10f;
|
||||
public float AttackRange = 1.5f;
|
||||
public float AttackCooldown = 1f;
|
||||
public float Armor = 1f;
|
||||
public float LineOfSightRange = 10f;
|
||||
|
||||
[Header("Gathering (Citizens only)")]
|
||||
public int MaxCarryCapacity = 10;
|
||||
public float GatherSpeed = 1f;
|
||||
public float BuildSpeed = 1f;
|
||||
|
||||
[Header("Cost")]
|
||||
public int FoodCost;
|
||||
public int WoodCost;
|
||||
public int StoneCost;
|
||||
public int GoldCost;
|
||||
public int TinCost;
|
||||
public float TrainTime = 10f;
|
||||
public int PopulationCost = 1;
|
||||
|
||||
[Header("Counter Bonuses")]
|
||||
public CounterBonus[] CounterBonuses;
|
||||
|
||||
[Header("Visuals")]
|
||||
public GameObject Prefab;
|
||||
}
|
||||
|
||||
[System.Serializable]
|
||||
public struct CounterBonus
|
||||
{
|
||||
public UnitClass TargetClass;
|
||||
public float Multiplier;
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/Data/UnitDataSO.cs.meta
Normal file
2
Assets/Scripts/Data/UnitDataSO.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c618988cd6fa6fe43a54b0e26bfd691d
|
||||
Reference in New Issue
Block a user