Add core content definitions

This commit is contained in:
2026-04-21 19:47:25 +02:00
parent d4b3c221b2
commit efcc1ba209
74 changed files with 1196 additions and 13 deletions

View File

@@ -0,0 +1,5 @@
#nullable enable
namespace SideScrollerGame.Content.Definitions;
public sealed record BehaviorEventDefinition(BehaviorEventKind Kind, double StartSeconds, double DurationSeconds, string? ReferenceId = null);

View File

@@ -0,0 +1 @@
uid://bfhvtjvxbesyr

View File

@@ -0,0 +1,12 @@
namespace SideScrollerGame.Content.Definitions;
public enum BehaviorEventKind
{
Wait,
MovePath,
RotatePath,
FireProjectile,
ChangeSpeed,
SpawnChild,
TriggerEffect
}

View File

@@ -0,0 +1 @@
uid://b3k6pfrvkik72

View File

@@ -0,0 +1,5 @@
using System.Collections.Generic;
namespace SideScrollerGame.Content.Definitions;
public sealed record BehaviorTrackDefinition(string Id, BehaviorTrackMode Mode, IReadOnlyList<BehaviorEventDefinition> Events);

View File

@@ -0,0 +1 @@
uid://b8sossiey58sy

View File

@@ -0,0 +1,7 @@
namespace SideScrollerGame.Content.Definitions;
public enum BehaviorTrackMode
{
Serial,
Parallel
}

View File

@@ -0,0 +1 @@
uid://cj7orw08m62rq

View File

@@ -0,0 +1,5 @@
using System.Collections.Generic;
namespace SideScrollerGame.Content.Definitions;
public sealed record CameraPathDefinition(string Id, string DisplayName, IReadOnlyList<CameraPathPointDefinition> Points, double DefaultSpeed);

View File

@@ -0,0 +1 @@
uid://1sohi8c0b4p4

View File

@@ -0,0 +1,3 @@
namespace SideScrollerGame.Content.Definitions;
public sealed record CameraPathPointDefinition(double TimeSeconds, double X, double Y, double Speed);

View File

@@ -0,0 +1 @@
uid://n5yggkiyqu3u

View File

@@ -0,0 +1,8 @@
namespace SideScrollerGame.Content.Definitions;
public enum ClusterEscapeRule
{
PreventReward,
AllowReward,
RespawnUntilDestroyed
}

View File

@@ -0,0 +1 @@
uid://bo12ujllh0vko

View File

@@ -0,0 +1,5 @@
#nullable enable
namespace SideScrollerGame.Content.Definitions;
public sealed record CollectibleDefinition(string Id, string DisplayName, CollectibleKind Kind, int Value, string? ReferencedContentId = null);

View File

@@ -0,0 +1 @@
uid://dojpxw2gdr0yo

View File

@@ -0,0 +1,12 @@
namespace SideScrollerGame.Content.Definitions;
public enum CollectibleKind
{
Points,
PrimaryWeapon,
SecondaryWeapon,
ClearScreen,
ShieldCharge,
SpecialAmmo,
SquadronMate
}

View File

@@ -0,0 +1 @@
uid://bbuwcsopsg4on

View File

@@ -0,0 +1,3 @@
namespace SideScrollerGame.Content.Definitions;
public sealed record DifficultyDefinition(string Id, string DisplayName, DifficultyModifierSet Modifiers, int HeroStartingShieldCharges, int HeroRetryCount);

View File

@@ -0,0 +1 @@
uid://8lf15cyl337v

View File

@@ -0,0 +1,3 @@
namespace SideScrollerGame.Content.Definitions;
public sealed record DifficultyModifierSet(double EnemyHealthMultiplier, double EnemyProjectileSpeedMultiplier, double EnemyFireCadenceMultiplier, double EnemySpawnDensityMultiplier, double ClusterSpawnIntervalMultiplier, double BossHealthMultiplier, double BossPhaseTimingMultiplier, double CollectibleDropRateMultiplier, double SpecialWeaponInitialAmmoMultiplier, double ScoreMultiplier);

View File

@@ -0,0 +1 @@
uid://c3wiaioy3cj2l

View File

@@ -0,0 +1,5 @@
using System.Collections.Generic;
namespace SideScrollerGame.Content.Definitions;
public sealed record EnemyBehaviorDefinition(string Id, string DisplayName, IReadOnlyList<BehaviorTrackDefinition> Tracks);

View File

@@ -0,0 +1 @@
uid://b7qggd0xsyl8v

View File

@@ -0,0 +1,5 @@
using System.Collections.Generic;
namespace SideScrollerGame.Content.Definitions;
public sealed record EnemyClusterDefinition(string Id, string DisplayName, IReadOnlyList<SpawnScheduleEntryDefinition> Spawns, int CompletionRewardPoints, ClusterEscapeRule EscapeRule);

View File

@@ -0,0 +1 @@
uid://c5lqrpv5gc753

View File

@@ -0,0 +1,5 @@
using System.Collections.Generic;
namespace SideScrollerGame.Content.Definitions;
public sealed record EnemyTypeDefinition(string Id, string DisplayName, int Health, int ScoreValue, IReadOnlyList<string> BehaviorIds, IReadOnlyList<string> DropCollectibleIds);

View File

@@ -0,0 +1 @@
uid://cgsajqr5fvw5g

View File

@@ -0,0 +1,8 @@
namespace SideScrollerGame.Content.Definitions;
public enum LayerKind
{
Background,
Interactive,
Foreground
}

View File

@@ -0,0 +1 @@
uid://dp41dwk68qlin

View File

@@ -0,0 +1,3 @@
namespace SideScrollerGame.Content.Definitions;
public sealed record LevelLayerDefinition(string Id, string DisplayName, LayerKind Kind, double ScrollFactor, bool Repeats);

View File

@@ -0,0 +1 @@
uid://dfikxuceq8ros

View File

@@ -0,0 +1,5 @@
using System.Collections.Generic;
namespace SideScrollerGame.Content.Definitions;
public sealed record MissionDefinition(string Id, string DisplayName, string DefaultDifficultyId, string CameraPathId, IReadOnlyList<string> BackgroundLayerIds, IReadOnlyList<string> ForegroundLayerIds, IReadOnlyList<string> ClusterIds, IReadOnlyList<string> CollectibleIds, IReadOnlyList<string> SpecialWeaponIds, IReadOnlyList<string> TimelineMarkers);

View File

@@ -0,0 +1 @@
uid://d1gwpoe4obx5t

View File

@@ -0,0 +1,3 @@
namespace SideScrollerGame.Content.Definitions;
public sealed record SpawnScheduleEntryDefinition(string EnemyTypeId, double SpawnTimeSeconds, double AnchorX, double AnchorY);

View File

@@ -0,0 +1 @@
uid://crrtalqhddqc3

View File

@@ -0,0 +1,3 @@
namespace SideScrollerGame.Content.Definitions;
public sealed record SpecialWeaponDefinition(string Id, string DisplayName, SpecialWeaponKind Kind, int InitialAmmo, int AmmoPickupAmount, int Damage);

View File

@@ -0,0 +1 @@
uid://b7rncbmm228x6

View File

@@ -0,0 +1,9 @@
namespace SideScrollerGame.Content.Definitions;
public enum SpecialWeaponKind
{
Bomb,
Crawler,
Napalm,
BlackHole
}

View File

@@ -0,0 +1 @@
uid://cr8u8s2r2vlj5

View File

@@ -0,0 +1,10 @@
namespace SideScrollerGame.Content.Definitions;
public enum SquadronMateFormationKind
{
Hug,
Orbit,
LineFormation,
VFormation,
Follow
}

View File

@@ -0,0 +1 @@
uid://trmmvv4tfq0l

View File

@@ -0,0 +1,3 @@
namespace SideScrollerGame.Content.Definitions;
public sealed record SquadronMateTypeDefinition(string Id, string DisplayName, SquadronMateFormationKind Formation, double Spacing, double MovementSmoothing);

View File

@@ -0,0 +1 @@
uid://b0n4orx2ffcu2

View File

@@ -0,0 +1,3 @@
namespace SideScrollerGame.Content.Definitions;
public sealed record WeaponDefinition(string Id, string DisplayName, WeaponKind Kind, int Damage, double FireCadenceSeconds, double ProjectileSpeed, int ProjectileCount, bool ConsumesEnemyProjectiles);

View File

@@ -0,0 +1 @@
uid://br35s1xq4dspu

View File

@@ -0,0 +1,12 @@
namespace SideScrollerGame.Content.Definitions;
public enum WeaponKind
{
PrimaryBallistic,
PrimarySeeking,
PrimaryLaser,
PrimaryGrenadeCluster,
SecondaryVertical,
SecondaryDiagonal,
SecondaryBackward
}

View File

@@ -0,0 +1 @@
uid://bbc7rfx8wc610