40 lines
2.0 KiB
C#
40 lines
2.0 KiB
C#
using System;
|
|
using UnityEngine;
|
|
namespace DepthsOfGreed.HandbookUI
|
|
{
|
|
public enum BuildUse { Structure, Trap, Ability, RepairCrew }
|
|
public enum BuildRegion { WallRing, Interior, Gate }
|
|
public enum BaseShape { Circle, Rectangle }
|
|
public enum AmmoKind { None, Bullets, Explosives, Oil, ExplosivesAndOil, Energy }
|
|
public enum AttackShape { None, Line, Cone, Area, Contact }
|
|
public enum TargetMode { None, Single, Area, PlayerSelectedTarget, PlayerSelectedArea, Walls }
|
|
public enum RotationMode { Free, Fixed, PlayerAimed, NotApplicable }
|
|
public enum SpecialEffect { None, Ricochet, PushBack, Slow, Piercing, EnergyGeneration, CorpseCollection, Reflection, Repair, Bombardment, ContactTrap, PathBlock }
|
|
[Serializable] public sealed class CombatDefinition
|
|
{
|
|
public AmmoKind ammunition;
|
|
[Min(0)] public float ammoPerShot, energyPerSecond, damagePerHit, attacksPerSecond, range;
|
|
[Tooltip("Used for continuous weapons instead of damagePerHit / ammoPerShot.")]
|
|
[Min(0)] public float continuousDamagePerSecond, ammoPerSecond;
|
|
public bool continuousAttack, unlimitedRange;
|
|
public AttackShape attackShape;
|
|
public TargetMode targets;
|
|
public RotationMode rotation;
|
|
[Range(0, 180)] public float coneAngle = 45;
|
|
[Min(0)] public float areaRadius;
|
|
public SpecialEffect effect;
|
|
[Min(0)] public float effectStrength, effectDuration, attackCooldown;
|
|
[Min(0)] public float knockbackDistance, energyGeneratedPerSecond, energyCapacityBonus, repairHealthPerSecond, corpsesCollectedPerSecond;
|
|
[Range(0, 1)] public float slowFraction;
|
|
[Min(0)] public float reflectionDamageMultiplier = 1;
|
|
[Min(0)] public int ricochetCount;
|
|
}
|
|
[Serializable] public sealed class UpgradeDefinition
|
|
{
|
|
public string title;
|
|
[Min(0)] public int energyCost, entrailsCost;
|
|
[TextArea] public string description;
|
|
[Min(0)] public float damageMultiplier = 1, fireRateMultiplier = 1, rangeMultiplier = 1, effectMultiplier = 1;
|
|
}
|
|
}
|