Namespace TDMaker.Unity.Authoring

Classes

AbilityActionAsset

Base class for ScriptableObjects that provide a custom IAbilityAction to an ability, skill or behavior action (customAction). The created action is shared by every entity using the asset, so keep it immutable and store per-entity state in a custom component.

AbilityActionData

One timed action channel of an ability rank, baked into AbilityActionDef. Payloads can be combined.

AbilityData

A purchasable tower ability or a hero skill with one or more ranks.

AbilityRankData

The complete payload of one ability or skill rank. Each rank replaces the previous rank's payload.

AreaEffectData

A timed region that attaches an effect to occupants and/or pulses damage or healing, baked into AreaEffectDef. Leave effect empty and enable pulse for a pulse-only region.

AreaPulseData

A direct damage and/or healing pulse on every occupant of a region, baked into AreaPulseDef. A region whose status effect is empty becomes a pulse-only region.

AudioCue

A sound hook: one of several clips played with a random pitch. Empty cues are silent, so every slot is optional. Cues are routed through TDMaker.Unity.View.AudioCuePlayer (pooled AudioSources).

BakedLevel

The result of baking a level: core inputs plus lookups back to authoring assets for the view.

BasicDamageData

A damage packet without an impact payload, baked into DamageDef. Used where a payload would nest (secondary blasts, region pulses); attacks use DamageData, which adds impact.

BeamData

A continuous single-target channel with an exact total damage budget split over pulses, baked into BeamDef. Use it as an ability action (useBeam). The view draws a pooled line for its whole duration.

BuildSlotAuthoring

Scene authoring for a construction slot. The rally point is stored as an offset from the slot.

BuildSlotData

A construction slot with its default barracks rally point.

CameraFramingData

Per-level camera framing for maps larger than the screen: how much of the map one screen shows, where the view starts and an optional intro pan along the first path. Read by TDCameraController; presentation only (no simulation effect).

ChainAttackData

A chained attack that jumps from target to nearby target without revisiting, baked into ChainAttackDef. Use it as an ability action (useChain).

ClickAreaSettings

Per-content override of the HUD's click target: an axis-aligned world rectangle around the entity position (the interior is clickable, the border is not) and a priority added to the kind's default (heroes 1, everything else 0). When several targets contain the click, the higher priority wins, then the lower world reference point.

CombatModifierData

Reversible combat changes carried by a status effect or passive, baked into CombatModifierDef.

CompanionData

Owner-bound companion slots on a hero or tower, baked into a CompanionDef (template custom data). Each slot keeps one child alive: a ground escort (an ordinary soldier that blocks and follows the owner's move or rally orders) or a flying follower (keeps near the owner, never blocks, attacks from where it is). A fallen child is replaced after refillDelay, counted from its death. Child damage earns the owner experience.

CompositeAbilityAction

Runs several custom actions as one channel payload; succeeds when any of them succeeds.

DamageData

Serializable damage packet baked into DamageDef, with an optional impact payload.

DeathSuccessionData

Extra rules for the enemies released by deathSummon (successors), baked with WithDeathSuccession(int, float, SuccessorBountyPolicy, bool, bool): a shared chain budget (successors of successors), a rise time and the bounty rule. A lineage never pays its bounty twice and leaks only once.

EnemyAsset

A path-following hostile unit.

EngagementGuestData

Where this soldier or hero stands when it blocks an enemy (the engagement guest): its share of the horizontal gap, added to the enemy's share. See EngagementHostData.

EngagementHostData

Where blockers stand around this enemy (the engagement host). Blockers stand on the side the enemy is walking toward, host X + guest X world units away horizontally, shifted by the summed Y values. The second and third blocker take rows at −/+ rowSpacing on Y (pulled back by half of it on X); later blockers repeat the three places. Independent of melee range. Typical X: half the enemy's drawn body width plus a small gap.

EntityAssetBase

Base class for ScriptableObjects that bake into a core EntityTemplate.

HealingData

Health restoration, baked into HealingDef. Not affected by damage multipliers or defenses.

HeroAsset

A player-controlled hero: base stats, growth rows (experience → level → skill points), skills and respawn. Add it to heroes; the runner spawns it at the level's hero spawn point.

HeroLevelData

One hero growth row. Values scale the hero's base stats to produce the absolute row the simulation uses.

ImpactPayloadData

Extra work after a resolved hit, baked into ImpactPayloadDef: a secondary blast, a residual region (which may be pulse-only) and/or a path displacement (negative distance = knockback toward the entry).

LaneBuilder

Generates parallel sub-lanes by offsetting a center line along mitred normals.

LevelAsset

A complete level: geometry, waves, economy and the towers the player may build. Call Bake() to produce a TemplateRegistry and LevelDef.

LevelAuthoring

Combines a LevelAsset (waves, economy, towers) with scene geometry from PathAuthoring and BuildSlotAuthoring components. Empty lists are filled from children in hierarchy order.

LevelMusicData

Music of one level, played by TDMaker.Unity.View.MusicPlayer: a battle loop, an optional intense loop for late or boss waves, and victory / defeat stingers that stop or duck the loop. Empty clips fall back to the music player's defaults, so every field is optional.

LevelRulesData

Level-wide economy and flow rules, baked into LevelRulesDef.

LifeStealData

Heals the attacker (or the hero credited with the hit) by a share of the health this packet actually removed, baked into LifeStealDef.

MechanicTargetData

Extra recipient eligibility for mechanic actions, baked into MechanicTargetDef. Defaults accept everyone.

MechanicVisual

View-side look of a keyed mechanic (chain, multi-target attack, region pulse, trap, mines, beam, transfer, reflection, life steal, body raising), collected while baking.

MeleeData

Serializable melee attack; disabled data bakes to no melee slot.

MineFieldData

Automatic mine laying, baked into a DeploymentPlanDef with a TrapDef payload. Each activation picks one lane node of a level path inside the distance band around the producer (seeded, deterministic), reserves it, throws the mine (flight, landing, then the arm delay) and leaves a trap that bursts under the first eligible unit. The lifetime counts from the throw. Use it as an ability action (useMines); it fails, without a fallback spot, when no node fits.

MultiTargetAttackData

One activation that hits several distinct targets at once, baked into MultiTargetAttackDef. Towers pick targets by their current priority; other actors pick the nearest first.

PathAuthoring

Scene authoring for an enemy path. Points are in local space; sub-lanes are generated from the center line using laneCount and laneSpacing. In curve mode (curve) the user edits a few controlPoints and points is regenerated as a smooth curve sampled every curveNodeSpacing units (see RebuildFromCurve()).

PathData

A path authored as a center line; parallel sub-lanes are generated from it.

PathDestinationData

An exact point on a level path, baked into PathDestinationDef. Validated against the level when used: an invalid destination (path, lane or node outside the path's entry..exit range) moves nothing.

PathGeometry

Authoring geometry helpers: smooth curves (centripetal Catmull-Rom) sampled into simulation nodes, and nearest-point queries on path center lines. Used by PathAuthoring curve mode and the editor's Map Editor.

PathTransferData

Moves nearby path-following enemies to an exact path destination (a rift, a recall), baked into PathTransferDef. Use it as an ability action (useTransfer); hits can transfer through useTransfer.

PeriodicDamageData

Damage over time with integer rolls, baked into PeriodicDamageDef.

PeriodicHealingData

Periodic healing carried by a status effect, baked into PeriodicHealingDef.

PointRuleData

Shared placement validation for spells and hero movement, baked into PointRuleDef.

PresentationHooks

Optional per-template presentation hooks: VFX prefabs (pooled) and audio cues for the standard moments of a unit's life. Every field may be left empty.

ProjectileAsset

Projectile travel and presentation data shared by ranged attacks.

RaiseRemainsData

Raises new units from the bodies the fallen leave behind, baked into a RaiseRemainsDef. Each activation reserves the closest eligible bodies (ties by body order), casts for castDelay, then consumes each body and creates unit there (an enemy continues the body's path; a soldier fights for the player). A moved, stunned or dead caster releases its reservations. Bodies decay after the runner's Remains Lifetime. Use it as an ability action (useRaise).

RangeShape

The single source of the range ellipse used by every view, gizmo and editor preview. It matches the simulation (Simulation.RangeDistanceSquared): a point is inside when dx²/r² + dy²/(k·r)² ≤ 1 (boundary included), with k = range Y scale. The horizontal semi-axis is r and the vertical semi-axis is k·r, so k < 1 flattens the ellipse vertically (an oblique top-down look).

RangedAttackData

Serializable ranged attack channel.

RecoveryData

Health recovery, baked into RecoveryDef.

ReflectionData

Returns a share of the health actually lost by this unit to its attacker as a single hit, baked into ReflectionDef. Shield absorption and overkill do not count; reflected hits never reflect again or steal life.

ReviveData

Same-unit return on the spot, baked into a ReviveDef (template custom data): a killed unit lies down, then gets returnShare of its health back, rises and walks on with the same identity. Its bounty is paid once, on the first death. Pending returns hold victory.

ShieldData

A damage-absorbing shield carried by a status effect, baked into ShieldDef.

SoldierAsset

A friendly unit produced by a barracks tower to block enemies.

SpawnEntryData

A timed run of identical enemies inside a wave group.

SpellAsset

A player spell with a cooldown and a target point. Bakes to SpellDef; list it in spells. The point rule is shared by the HUD preview and the cast command.

StarRatingData

Legacy (0.x) view-side star rule, kept only so older level assets load. The rating is now computed by the core from victoryRating; LevelAsset migrates these values into it on load.

StatModifierData

Reversible stat changes, baked into StatModifierDef. Identity values bake to no modifier.

StatusEffectAsset

An attached status effect (slow, stun, armor shift, damage over time ...). Bakes to StatusEffectDef. Reference it from attack damage (effects), area effects, abilities or spells.

StrikeData

Scattered, individually timed area strikes for one cast, baked into StrikeSequenceDef.

SummonData

A unit sequence for spells, abilities and death emissions, baked into SummonDef.

TagMask

Converts the 32-bit tag masks shown in the Inspector to the core's 64-bit tag bits.

TemplateExtensionAsset

Base class for ScriptableObjects that decorate a baked template, for example with WithCustomData. List them in an entity asset's extensions; they run in list order during the level bake.

TowerAsset

A buildable tower tier. Each tier is its own asset; upgrades lists the next tiers (more than one entry is a branch). A tower with a soldier acts as a barracks.

TrapData

A fixed-position deployment (mine, snare, glyph) placed by an ability action, baked into TrapDef. It arms after a delay, then hits the nearest eligible unit inside its detection radius until its triggers or lifetime run out. Use it as an ability action (useTrap).

VictoryRatingData

Victory star bands by the share of starting lives left (inclusive): at or above threeStarLifeRatio = 3 stars, at or above twoStarLifeRatio = 2 stars, otherwise 1. Bakes to VictoryRatingDef.

ViewSettings

How an entity is presented. A prefab wins; otherwise a generated primitive sprite is used.

WaveData

One wave and its call timing.

WaveGroupData

Spawn entries that share a path and a start delay.

WaveSetAsset

An ordered list of waves.

Enums

AudioChannel

Volume channel of a sound. Every cue and music track is scaled by Master and its own channel (see TDMaker.Unity.View.TDGameSettings), and routed to that channel's optional AudioMixerGroup.

CameraFramingMode

How the game camera frames a level on start (see CameraFramingData).

CameraStartFocus

Where the camera looks when the level starts.

FacingMode

How a view mirrors itself to face its movement direction.

MechanicVisualKind

What a MechanicVisual belongs to, where the view treats it specially.

PrimitiveShape

Generated placeholder shapes used when no prefab is assigned.

SpellKind

Main payload of a player spell.