Tempo

API

바깥에 보이는 클래스와 멤버 정리.

게임 쪽은 보통 DirectorBrain 을 상속해 동작 목록만 바꾸고, 세 개의 Tick 을 자기 루프에서 부릅니다.

Achieve.Tempo.World

WorldReaction

멤버시그니처설명
ActiveEventsIReadOnlyList<ReactionEvent>지금 벌어지는 일 목록
BurningCellsint지금 불타는 칸 수
ApplyElement(Vector3 pos, float radius, ElementTag e, float power)한 영역에 요소 끼얹기
SetWind(Vector2 dir, float strength)바람 설정
Fill / SetCell(string material) / (int x, int y, string material)격자 깔기
GetCell(int x, int y) → ElementalState칸 상태 읽기
Tick(float dt)번짐 + 목록 갱신

값 타입

  • ElementalState (struct) — MaterialId, Temperature, Wetness, Charge, OnFire, Frozen
  • ReactionEvent (struct) — Position, Magnitude, Ttl, Kind
  • MaterialDefName, Flammability, Conductivity, IgnitionPoint, FreezePoint, WaterAbsorption
  • ReactionRuleTrigger, TargetMaterials(;), Effect, Probability, Threshold, TargetMaterialList, MatchesMaterial, 정적 Split
  • enum ElementTagNone, Fire, Water, Ice, Electric, Wind
  • enum StateEffectIgnite, Extinguish, Wet, Dry, Freeze, Thaw, Charge, Discharge

Achieve.Tempo.Director

DirectorBrain (abstract)

멤버시그니처설명
CurrentPhasePhase지금 국면
Tick(WorldReaction, TensionModel, Vector3 playerPos, float dt)국면 정하고 조건 깖
ActionPoolvirtual IReadOnlyList<SeedAction>동작 목록 (오버라이드)
PickActionsvirtual IEnumerable<SeedAction>동작 고르기 정책 (오버라이드)
MaxActiveEventsvirtual int동시 이벤트 상한
  • DefaultDirectorBrain — 오버라이드 없이 쓰는 기본 구현.
  • SeedAction (abstract) — Cost, Intent, CanSeed, Seed.
  • 기본 동작: DryUpwind, IgniteUpwind, ChargeStorm, SummonRain.
  • enum SeedIntentPrepare, Trigger, Calm.
  • enum PhaseBuildUp, Peak, Relax.
  • PhaseFsmEvaluate(float tension, float dt) → Phase, Current, Reset().

Achieve.Tempo.Tension

TensionModel

멤버시그니처설명
Currentfloat디렉터가 읽는 긴장도 0~1
PlayerStressfloat플레이어 스트레스 0~1
OnPlayerDamaged(float dmg, float maxHp)피격 즉발 상승
Tick(Vector3 playerPos, WorldReaction, float dt)긴장도 갱신
SampleThreatprotected virtual (Vector3) → float위협 신호 (갈아끼움)
SampleAroundprotected virtual (Vector3, WorldReaction) → float주변 신호 (갈아끼움)

Achieve.Tempo.Config

  • DataService<T>GetDataCenter(), Register(T), Reset().
  • TensionConfig — 세기·반경·가중치·속도·기준값.
  • PhaseDataPeakEnter/RelaxEnter/BuildUpEnter/MinRelax, 국면별 예산, BudgetFor(Phase).
  • ActionDataActions, Add(SeedAction).
  • RuleDataMaterials, Rules, ResolveMaterialId, GetMaterial, AddMaterial, AddRule, 번짐 기준값.

Achieve.Tempo.Editor

  • RuleValidatorValidate(RuleData) → List<Issue>, 메뉴 Tools/Tempo/Validate Rules, 빌드 전 자동 검사.
  • DebugWindowBind(TensionModel, DirectorBrain, WorldReaction), 메뉴 Tools/Tempo/Debug Window.

목차