Implement passive relics and six-family defense towers

This commit is contained in:
2026-09-23 18:11:38 +09:00
parent 5d11288a6f
commit c94cbda1e6
21 changed files with 2882 additions and 152 deletions
@@ -12,6 +12,14 @@ namespace BumpCombat.Constants
[Min(0)] public int DirectTowerCost = 30;
[Min(0)] public int SummonTowerCost = 40;
[Min(0)] public int PortalRewardCurrency = 20;
[Min(0)] public int EnemyKillCurrency = 15;
[Min(0)] public int LightningTowerCost = 35;
[Min(0)] public int ColdTowerCost = 35;
[Min(0)] public int SeismicTowerCost = 35;
[Min(0)] public int EmpoweringTowerCost = 35;
[Min(0)] public int Tier2UpgradeCost = 20;
[Min(0)] public int Tier3UpgradeCost = 30;
[Min(0)] public int Tier4UpgradeCost = 40;
[Min(0.1f)] public float BuildInteractionRadius = 1.5f;
[Header("Prototype arena")]
@@ -39,6 +47,10 @@ namespace BumpCombat.Constants
{
new(-3.25f, 3.25f),
new(3.25f, -3.25f),
new(-3.25f, -3.25f),
new(3.25f, 3.25f),
new(0f, 3.25f),
new(0f, -3.25f),
};
[Tooltip("Two ordered waypoints per lane, indexed by lane * 2 + waypoint.")]
public Vector2[] WaypointPositions =
@@ -65,6 +77,23 @@ namespace BumpCombat.Constants
[Min(0.1f)] public float SummonAreaRadius = 2.25f;
[Min(0.1f)] public float SummonUnitMoveSpeed = 2.5f;
[Min(0.1f)] public float SummonAttackRange = 1.2f;
[Header("Six tower family comparison values")]
[Min(0.1f)] public float LightningDamage = 6f;
[Min(0.05f)] public float LightningInterval = 1.1f;
[Min(0.1f)] public float LightningRadius = 1.3f;
[Min(0.1f)] public float ColdDamage = 3f;
[Min(0.05f)] public float ColdInterval = 1.2f;
[Min(0f)] public float ColdSlowFraction = 0.35f;
[Min(0f)] public float ColdSlowSeconds = 1.5f;
[Min(0.1f)] public float SeismicDamage = 2f;
[Min(0.05f)] public float SeismicInterval = 2f;
[Min(0f)] public float SeismicStunSeconds = 0.45f;
[Min(0.1f)] public float SeismicRadius = 1.4f;
[Min(0.1f)] public float SupportRadius = 3.5f;
[Min(0f)] public float SupportDamageBonusPerTier = 0.1f;
[Min(0f)] public float SmotheringDamageBonus = 0.3f;
[Range(0.1f, 1f)] public float ImbuingAttackIntervalMultiplier = 0.75f;
[Min(0f)] public float TowerDamageBonusPerTier = 0.25f;
[Header("Prototype player recovery")]
[Min(0f)] public float PlayerReviveDelaySeconds = 5f;