2.5d test
This commit is contained in:
@@ -96,11 +96,13 @@ namespace BumpCombat.Defense
|
||||
["Effects/Fire/Meteor-Impact"] = new[] { 40, 50, 60, 70, 60, 60, 60, 80 },
|
||||
["Sources/BlackKnight-NoSkull"] = new[] { 125, 125, 125, 125, 125, 125, 125 },
|
||||
["Effects/Fire/Flamethrower"] = new[] { 80, 80, 80, 70, 65, 65, 70 },
|
||||
["Effects/Fire/Eyeball Monster_Beam-Clean"] = new[] { 100, 100, 120 },
|
||||
["Effects/Lightning/T1-Bolt"] = new[] { 30, 40, 30, 30, 40, 40, 40, 50 },
|
||||
["Effects/Lightning/T2-Bolt"] = new[] { 30, 40, 30, 30, 40, 40, 40, 50 },
|
||||
["Effects/Lightning/T3-Bolt"] = new[] { 30, 40, 30, 30, 40, 40, 40, 50 },
|
||||
["Effects/Lightning/Arc"] = new[] { 30, 40, 30, 30, 40, 40, 40, 50 },
|
||||
["Effects/Lightning/ImpactWave"] = new[] { 40, 40, 50, 50, 60, 60 },
|
||||
["Effects/Ice/Blizzard-Wave-v1"] = new[] { 40, 40, 50, 50, 60, 60 },
|
||||
["Effects/Lightning/LightningStorm"] = new[] { 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 },
|
||||
["Effects/Ice/T1-Volley"] = new[] { 125 },
|
||||
["Effects/Ice/T2-Volley"] = new[] { 125 },
|
||||
@@ -167,6 +169,58 @@ namespace BumpCombat.Constants
|
||||
/// <summary>Offline pixel measurements for non-readable defense art and original shadows.</summary>
|
||||
public static class DefenseTowerArtBounds
|
||||
{
|
||||
public const float TowerBillboardScale = 0.72f * 2.1f;
|
||||
public static readonly Vector2 LightningStormGroundCenterPixels = new(61f, 34f);
|
||||
public const float LightningStormGroundRadiusPixels = 55.362442f;
|
||||
public const float SeismicGroundMarkerWidthPixels = 18f;
|
||||
public const int FireBeamStartX = 1;
|
||||
public const int FireBeamEndX = 99;
|
||||
public const float FireBeamCenterY = 49.5f;
|
||||
public const float FireBeamIgnitionSeconds = 0.1f;
|
||||
public const float FireBeamExtinguishSeconds = 0.12f;
|
||||
public const float FireT4BeamBaseWidthMultiplier = 1f;
|
||||
public static Vector2 StaffTipPixels(bool attack, int frame)
|
||||
{
|
||||
frame = Mathf.Clamp(frame, 0, 5);
|
||||
if (attack)
|
||||
{
|
||||
return frame switch
|
||||
{
|
||||
0 => new Vector2(56.5f, 44.5f),
|
||||
1 => new Vector2(57.5f, 43.5f),
|
||||
_ => new Vector2(58.5f, 42.5f),
|
||||
};
|
||||
}
|
||||
return frame < 2
|
||||
? new Vector2(56.5f, 44.5f)
|
||||
: new Vector2(56.5f, 43.5f);
|
||||
}
|
||||
public const int TowerHitSortingOffset = 102;
|
||||
public const int BlizzardShardCount = 8;
|
||||
public const float BlizzardLaunchIntervalSeconds = 0.04f;
|
||||
public const float BlizzardLandingSeconds = 0.24f;
|
||||
public const float BlizzardLastLandingSeconds = BlizzardLandingSeconds
|
||||
+ (BlizzardShardCount - 1) * BlizzardLaunchIntervalSeconds;
|
||||
public const float BlizzardLandingRadiusFraction = 0.65f;
|
||||
public const float BlizzardRangeAlpha = 0.15f;
|
||||
public const float BlizzardImpactRadiusAlpha = 0.18f;
|
||||
public const float BlizzardShardScale = 0.52f;
|
||||
public const float BlizzardTrailScale = 0.3f;
|
||||
public const float BlizzardTrailAlpha = 0.32f;
|
||||
public const float BlizzardTrailOffset = 0.12f;
|
||||
public const float BlizzardImpactScale = 0.16f;
|
||||
public const float BlizzardWaveScale = 0.7f;
|
||||
// Maximum visible half-extents measured from Blizzard-Wave-v1's alpha frames.
|
||||
public const float BlizzardWaveHalfWidthPixels = 22.5f;
|
||||
public const float BlizzardWaveHalfHeightPixels = 11f;
|
||||
public const float BlizzardWavePixelsPerUnit = 32f;
|
||||
public const float BlizzardWaveRadiusX = BlizzardWaveHalfWidthPixels
|
||||
/ BlizzardWavePixelsPerUnit * BlizzardWaveScale;
|
||||
public const float BlizzardWaveRadiusY = BlizzardWaveHalfHeightPixels
|
||||
/ BlizzardWavePixelsPerUnit * BlizzardWaveScale;
|
||||
public const float BlizzardDropHeight = 1.2f;
|
||||
public const float BlizzardDropHeightStep = 0.22f;
|
||||
|
||||
private static readonly Vector2Int[] LightningBeamBounds =
|
||||
{
|
||||
new(8, 56), new(8, 89), new(8, 89), new(8, 89),
|
||||
@@ -181,6 +235,14 @@ namespace BumpCombat.Constants
|
||||
public static Vector2Int LightningBeamXBounds(int frame) =>
|
||||
LightningBeamBounds[Mathf.Clamp(frame, 0, LightningBeamBounds.Length - 1)];
|
||||
|
||||
public static Vector2 BlizzardLandingOffset(int index, float radius)
|
||||
{
|
||||
float fraction = BlizzardLandingRadiusFraction
|
||||
* Mathf.Sqrt((index + 0.5f) / BlizzardShardCount);
|
||||
float angle = index * 2.39996323f;
|
||||
return radius * fraction * new Vector2(Mathf.Cos(angle), Mathf.Sin(angle));
|
||||
}
|
||||
|
||||
public static Vector2 ImpactWaveCenterPixels(int frame, Sprite sprite)
|
||||
{
|
||||
return frame >= ImpactWaveCenters.Length
|
||||
|
||||
Reference in New Issue
Block a user