Files
DepthsOfGreed/Assets/Scripts/HandbookUI/GameplayDefinitions.cs
T

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;
}
}