Initial Commit
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
using Model.Entity.Data;
|
||||
|
||||
namespace Model.Entity.Parts;
|
||||
|
||||
public class EntityFactionModel : IEntityPartInterface
|
||||
{
|
||||
public string Type { get; set; } = "EntityFactionModel";
|
||||
public string Faction { get; set; } = DataType.FACTION_QRath;
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
using Model.Types;
|
||||
|
||||
namespace Model.Entity.Parts;
|
||||
|
||||
public class EntityHarvestModel : IEntityPartInterface
|
||||
{
|
||||
public string Type { get; set; } = "EntityHarvestModel";
|
||||
public ResourceType Resource { get; set; } = ResourceType.Alloy;
|
||||
public float Slots { get; set; }
|
||||
public float HarvestedPerInterval { get; set; }
|
||||
public float HarvestDelay { get; set; } = 1;
|
||||
public int TotalAmount { get; set; }
|
||||
public bool RequiresWorker { get; set; }
|
||||
|
||||
|
||||
public bool IsDepleted(float interval, float startedAt)
|
||||
{
|
||||
var lifeTime = interval - startedAt;
|
||||
|
||||
var totalHarvested = lifeTime * HarvestedPerInterval;
|
||||
|
||||
return totalHarvested > TotalAmount;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Model.Entity.Parts;
|
||||
|
||||
public class EntityHotkeyModel : IEntityPartInterface
|
||||
{
|
||||
public string Type { get; set; } = "EntityHotkeyModel";
|
||||
public string Hotkey { get; set; }
|
||||
public bool HoldSpace { get; set; } = false;
|
||||
public string HotkeyGroup { get; set; }
|
||||
|
||||
|
||||
public bool IsSelectedHotkey(List<string> keys)
|
||||
{
|
||||
return keys.Contains(Hotkey.ToUpper());
|
||||
}
|
||||
|
||||
public bool IsSelectedHotkeyGroup(List<string> keys)
|
||||
{
|
||||
return keys.Contains(HotkeyGroup.ToUpper());
|
||||
}
|
||||
|
||||
|
||||
public bool IsSelectedHoldSpace(List<string> keys)
|
||||
{
|
||||
return (keys.Contains("SPACE") || keys.Contains(" ")) == HoldSpace;
|
||||
}
|
||||
|
||||
|
||||
public bool IsSelectedHotkeyGroupWithSpace(List<string> keys)
|
||||
{
|
||||
var foundKey = false;
|
||||
var foundHold = false;
|
||||
foreach (var key in keys)
|
||||
{
|
||||
if (key.ToUpper().Equals(HotkeyGroup.ToUpper())) foundKey = true;
|
||||
if (key.ToUpper().Equals("SPACE") || key.ToUpper().Equals(" ")) foundHold = true;
|
||||
}
|
||||
|
||||
if (foundKey && foundHold == HoldSpace) return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace Model.Entity.Parts;
|
||||
|
||||
public class EntityIdAbilityModel : IEntityPartInterface
|
||||
{
|
||||
public string Type { get; set; } = "EntityIdAbilityModel";
|
||||
public string Id { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace Model.Entity.Parts;
|
||||
|
||||
public class EntityIdArmyModel : IEntityPartInterface
|
||||
{
|
||||
public string Type { get; set; } = "EntityIdArmyModel";
|
||||
public string Id { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace Model.Entity.Parts;
|
||||
|
||||
public class EntityIdPassiveModel : IEntityPartInterface
|
||||
{
|
||||
public string Type { get; set; } = "EntityIdPassiveModel";
|
||||
public string Id { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace Model.Entity.Parts;
|
||||
|
||||
public class EntityIdPyreSpellModel : IEntityPartInterface
|
||||
{
|
||||
public string Type { get; set; } = "EntityIdPyreSpellModel";
|
||||
public string Id { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
namespace Model.Entity.Parts;
|
||||
|
||||
public class EntityIdUpgradeModel : IEntityPartInterface
|
||||
{
|
||||
public string Type { get; set; } = "EntityIdUpgradeModel";
|
||||
|
||||
public string Id { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace Model.Entity.Parts;
|
||||
|
||||
public class EntityIdVanguardModel : IEntityPartInterface
|
||||
{
|
||||
public string Type { get; set; } = "EntityIdVanguardModel";
|
||||
public string Id { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
using Model.Types;
|
||||
|
||||
namespace Model.Entity.Parts;
|
||||
|
||||
public class EntityInfoModel : IEntityPartInterface
|
||||
{
|
||||
public string Type { get; set; } = "EntityInfoModel";
|
||||
public string Name { get; set; } = "";
|
||||
public string Descriptive { get; set; } = DescriptiveType.None;
|
||||
public string Description { get; set; } = "";
|
||||
public string Notes { get; set; } = "";
|
||||
public string FlavorText { get; set; } = "";
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
namespace Model.Entity.Parts;
|
||||
|
||||
public class EntityMechanicModel : IEntityPartInterface
|
||||
{
|
||||
public string Type { get; set; } = "EntityMechanicModel";
|
||||
public string Name { get; set; } = "";
|
||||
public string Description { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
using Model.Types;
|
||||
|
||||
namespace Model.Entity.Parts;
|
||||
|
||||
public class EntityMovementModel : IEntityPartInterface
|
||||
{
|
||||
public string Type { get; set; } = "EntityMovementModel";
|
||||
public float Speed { get; set; } = 0;
|
||||
public string Movement { get; set; } = MovementType.Ground;
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
namespace Model.Entity.Parts;
|
||||
|
||||
public class EntityPassiveModel : IEntityPartInterface
|
||||
{
|
||||
public string Type { get; set; } = "EntityPassiveModel";
|
||||
public string Name { get; set; } = "";
|
||||
public string Description { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
#nullable enable
|
||||
namespace Model.Entity.Parts;
|
||||
|
||||
public class EntityProductionModel : IEntityPartInterface
|
||||
{
|
||||
public int Alloy { get; set; } = 0;
|
||||
public int Ether { get; set; } = 0;
|
||||
public int Pyre { get; set; } = 0;
|
||||
public int Energy { get; set; } = 0;
|
||||
public int DefensiveLayer { get; set; } = 0;
|
||||
public int BuildTime { get; set; } = 0;
|
||||
public float Cooldown { get; set; } = 0;
|
||||
public bool RequiresWorker { get; set; } = false;
|
||||
public bool ConsumesWorker { get; set; } = false;
|
||||
|
||||
//public string ProductionType { get; set; }
|
||||
public string? ProducedBy { get; set; } = null;
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
namespace Model.Entity.Parts;
|
||||
|
||||
public class EntityPyreRewardModel : IEntityPartInterface
|
||||
{
|
||||
public string Type { get; set; } = "EntityPyreRewardModel";
|
||||
|
||||
public int BaseReward { get; set; } = 0;
|
||||
public float OverTimeReward { get; set; } = 0;
|
||||
public int OverTimeRewardDuration { get; set; } = 0;
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
using Model.Types;
|
||||
|
||||
namespace Model.Entity.Parts;
|
||||
|
||||
public class EntityRequirementModel : IEntityPartInterface
|
||||
{
|
||||
public string Type { get; set; } = "EntityRequirementModel";
|
||||
public string Id { get; set; }
|
||||
public string Requirement { get; set; } = RequirementType.Production_Building;
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace Model.Entity.Parts;
|
||||
|
||||
public class EntityResearchCapacityModel : IEntityPartInterface
|
||||
{
|
||||
public int Slots { get; set; } = 16;
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace Model.Entity.Parts;
|
||||
|
||||
public class EntityStrategyModel : IEntityPartInterface
|
||||
{
|
||||
public string Type { get; set; } = "EntityStrategyModel";
|
||||
public string Notes { get; set; } = "";
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
namespace Model.Entity.Parts;
|
||||
|
||||
public class EntitySupplyModel : IEntityPartInterface
|
||||
{
|
||||
public string Type { get; set; } = "EntitySupplyModel";
|
||||
public int Takes { get; set; } = 0;
|
||||
public int Grants { get; set; } = 0;
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace Model.Entity.Parts;
|
||||
|
||||
public class EntityTierModel : IEntityPartInterface
|
||||
{
|
||||
public string Type { get; set; } = "EntityTierModel";
|
||||
public float Tier { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace Model.Entity.Parts;
|
||||
|
||||
public class EntityTrainingCapacityModel : IEntityPartInterface
|
||||
{
|
||||
public int Slots { get; set; } = 16;
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
using Model.Entity.Data;
|
||||
|
||||
namespace Model.Entity.Parts;
|
||||
|
||||
public class EntityVanguardAddedModel : IEntityPartInterface
|
||||
{
|
||||
public string Type { get; set; } = "EntityVanguardAddedModel";
|
||||
|
||||
public string ImmortalId { get; set; } = DataType.IMMORTAL_Ajari;
|
||||
|
||||
public string ReplaceId { get; set; } = "";
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
using Model.Entity.Data;
|
||||
|
||||
namespace Model.Entity.Parts;
|
||||
|
||||
public class EntityVanguardReplacedModel : IEntityPartInterface
|
||||
{
|
||||
public string Type { get; set; } = "EntityVanguardReplacedModel";
|
||||
public string ImmortalId { get; set; } = DataType.IMMORTAL_Xol;
|
||||
public string ReplacedById { get; set; } = "";
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
using Model.Types;
|
||||
|
||||
namespace Model.Entity.Parts;
|
||||
|
||||
public class EntityVitalityModel : IEntityPartInterface
|
||||
{
|
||||
public string Type { get; set; } = "EntityVitalityModel";
|
||||
public int Health { get; set; } = 0;
|
||||
public int DefenseLayer { get; set; } = 0;
|
||||
|
||||
public int Lasts { get; set; } = 0;
|
||||
public string Defense { get; set; } = DefenseType.None;
|
||||
public string Armor { get; set; } = ArmorType.Light;
|
||||
public bool IsEtheric { get; set; } = false;
|
||||
public bool IsStructure { get; set; } = false;
|
||||
|
||||
public int Energy { get; set; } = 0;
|
||||
|
||||
public int Vision { get; set; } = 0;
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
using Model.Entity.Types;
|
||||
|
||||
namespace Model.Entity.Parts;
|
||||
|
||||
public class EntityWeaponModel : IEntityPartInterface
|
||||
{
|
||||
public int Id { get; set; } = 1;
|
||||
public int EntityModelId { get; set; }
|
||||
public virtual EntityModel EntityModel { get; set; }
|
||||
|
||||
public int Range { get; set; } = 40;
|
||||
public int MinimumRange { get; set; } = 0;
|
||||
public float AttacksPerSecond { get; set; } = 0;
|
||||
public float SecondsBetweenAttacks { get; set; } = 0;
|
||||
|
||||
public float Cooldown { get; set; } = 0;
|
||||
public float Charges { get; set; } = 0;
|
||||
|
||||
public int Damage { get; set; } = 0;
|
||||
|
||||
public string ComplexDamage { get; set; } = "deals 126 over 6 seconds";
|
||||
|
||||
|
||||
public bool HasSplash { get; set; }
|
||||
|
||||
public int LightDamage { get; set; } = 0;
|
||||
public int MediumDamage { get; set; } = 0;
|
||||
public int HeavyDamage { get; set; } = 0;
|
||||
|
||||
|
||||
public int StructureDamageBonus { get; set; } = 0;
|
||||
public int EthericDamageBonus { get; set; } = 0;
|
||||
public string Targets { get; set; } = TargetType.All;
|
||||
public string Attack { get; set; } = AttackType.DPS;
|
||||
|
||||
public float DamagePerSecond()
|
||||
{
|
||||
if (SecondsBetweenAttacks == 0) return Damage * AttacksPerSecond;
|
||||
|
||||
return Damage / SecondsBetweenAttacks;
|
||||
}
|
||||
|
||||
public float DamagePerSecondLight()
|
||||
{
|
||||
var damage = LightDamage != 0 ? LightDamage : Damage;
|
||||
|
||||
if (SecondsBetweenAttacks == 0) return damage * AttacksPerSecond;
|
||||
|
||||
return damage / SecondsBetweenAttacks;
|
||||
}
|
||||
|
||||
public float DamagePerSecondMedium()
|
||||
{
|
||||
var damage = MediumDamage != 0 ? MediumDamage : Damage;
|
||||
|
||||
if (SecondsBetweenAttacks == 0) return damage * AttacksPerSecond;
|
||||
|
||||
return damage / SecondsBetweenAttacks;
|
||||
}
|
||||
|
||||
public float DamagePerSecondHeavy()
|
||||
{
|
||||
var damage = HeavyDamage != 0 ? HeavyDamage : Damage;
|
||||
|
||||
if (SecondsBetweenAttacks == 0) return damage * AttacksPerSecond;
|
||||
|
||||
return damage / SecondsBetweenAttacks;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace Model.Entity.Parts;
|
||||
|
||||
public class IEntityPartInterface
|
||||
{
|
||||
public EntityModel Parent { get; set; }
|
||||
}
|
||||
Reference in New Issue
Block a user