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 Xworld 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 whendx²/r² + dy²/(k·r)² ≤ 1(boundary included), withk= range Y scale. The horizontal semi-axis isrand the vertical semi-axis isk·r, sok < 1flattens 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.