Archived on 2026-10-24. The Godot rewrite is cancelled. This handoff is historical evidence, not an active Unity task or verified runtime behavior. See the current documentation.
Audit correction (2026-10-24): material GUID a97c105638bdf8b4a8650670310a4cd3 resolves to URP Runtime/Materials/Sprite-Lit-Default.mat.meta in the installed package cache. The unresolved-material claim below is superseded.
Phase 9 Soldier Frenzy migration manifest¶
Scope: evidence-only extraction for production Soldier (SOLDIER) starting ability Frenzy. No Unity source or binary content is included.
Asset and GUID map¶
| Evidence | GUID / identity | Confirmed use | Receiving field(s) |
|---|---|---|---|
Assets/Resources/Character/Soldier.asset |
character id SOLDIER |
References Frenzy GUID; max stamina 100; literal ability name; localized description; availability fields; icon; Soldier weapon | character_id, source_name, description_key, icon_guid, clean formulas, notes |
Assets/Scriptable Object/Ability/Character/Frenzy.asset.meta |
9db9a838493ecca429eacc1008a8aa56 |
Exact fixed GUID resolution | source_guid, source_path |
Assets/Scriptable Object/Ability/Character/Frenzy.asset |
type enum value 3 / Frenzy |
cooldown 30, stamina 0, mutable cooldown fields | cooldown/cost/runtime move list |
Assets/Script/Shared/ScriptableObjects/Ability.cs |
script GUID b84e1e85621e6324a8b921c1399e7029 |
Declares Ability, AbilityType.Frenzy, and all serialized fields |
stable id and ownership split |
Assets/Language/Table/Character/Character Shared Data.asset |
table GUID 39e307ac92f4d5c48b7d378f1218c10e |
key id 18032062464 resolves to Skill_Soldier |
description_key=Character/Skill_Soldier |
Assets/Sprites/Icons/Icon_Characters-Ability.png |
b67cdf844d626d24d8d0b8a7c9ea6b67 |
Soldier asset icon reference | icon_guid, feedback provenance |
Assets/Prefab/Player/Player.prefab |
Frenzy child fileID 9152161303192489000 |
Initially inactive child used as base Frenzy visual | feedback and cleanup |
Assets/Sprites/CharacterMainSkills/Soldier_Frenzy.png |
e4455ba13d64ed7439fe73bd71c9c8fe |
Frenzy child sprite | feedback provenance |
Assets/Animation/Character/Soldier/Soldier_Skill_Frenzy_Animator.controller |
f25de0cd40e3d9f4b964b71b6ba8e028 |
Frenzy child animator | feedback provenance |
Assets/Animation/Character/Soldier/Soldier_Character_Animator.controller |
ca270ce45dbe2894bb828308985081e5 |
Contains a Frenzy state, but runtime does not trigger it | feedback note / unresolved animation |
Assets/Prefab/Player/Soldier/Soldier_Gun.prefab |
52b0d040dc8b2bf478cadb6aea14369c |
attack rate 1.5, reload rate 0.4, ammo 10 | clean Soldier formulas |
The Player prefab's Frenzy renderer references material GUID a97c105638bdf8b4a8650670310a4cd3; no matching .meta was found, so it is provenance-only and unresolved rather than promoted.
Script, method, event, and formula map¶
| Evidence | Confirmed behavior | Receiving field(s) |
|---|---|---|
AbilityHolder.PlayerSettingsAbilityFirstTime |
Adds selected character ability and clears isOnCooldown; no explicit currentCooldownTime reset |
tags, runtime fields, pooling notes |
AbilityHolder.Update -> FrenzyActivator |
Per-frame automatic dispatch; no input or combat event | trigger_type, activation requirements/sequence |
AbilityFunction.UseAbility |
Silent return if absent/on cooldown; starts cooldown before behavior | cooldown start/failure behavior |
AbilityFunction.CooldownTimer |
Sets flag immediately; scaled waits total 30 seconds at modifier 1 | cooldown and pause semantics |
AbilityFunction.CurrentCooldownTimer |
Sets 30, decrements 0.1 after scaled ticks | AbilityInstance ownership |
AbilityHolder.Frenzy |
flag true -> VFX on -> scaled duration -> VFX off -> flag false | activation, duration, cleanup |
PlayerModifier Frenzy attack formula |
interval divided by 2 + SoldierFrenzyASBonus; clean bonus 0 |
attack modifier/formulas |
PlayerModifier Frenzy reload formula |
interval divided by 4 | reload modifier/formulas |
PlayerWeapon.WeaponTimer / ReloadAmmo |
timers use scaled delta; reload coroutine snapshots argument | active behavior/interruption notes |
PlayerWeapon.UIUpdate |
reload UI denominator multiplies by 2 during Frenzy | feedback inconsistency/unresolved |
GameStateService.UpdateTimeScale |
pause, reward, or game-over sets Time.timeScale=0 |
pause_time_behavior |
Player.Death / OnDisable |
disables player; no Frenzy-specific restoration | interruption and pooling/reset notes |
Serialized field classification¶
| Field | Evidence value | Ownership |
|---|---|---|
Ability.type |
Frenzy |
immutable AbilityData |
Ability.cooldownTime |
30 | immutable AbilityData |
Ability.staminaCost |
0 | immutable AbilityData |
Ability.isOnCooldown |
serialized true, initialization clears false | per-player AbilityInstance |
Ability.currentCooldownTime |
serialized 2.699998 | per-player AbilityInstance |
AbilityHolder.SoldierIsFrenzy |
runtime bool | Frenzy behavior state |
AbilityHolder.soldierFrenzyEffect |
prefab child reference | feedback-only reference/state controlled by behavior |
SoldierFrenzyCDModif |
clean initialization 1 | excluded upgrade extension point |
SoldierFrenzyASBonus |
clean initialization 0 | excluded upgrade extension point |
SoldierDashReloadPercentage |
clean initialization 0 | excluded dash upgrade extension point |
No base Frenzy gameplay event signal, animation trigger, audio call, projectile modifier, dash event, hit/kill event, resource spend, charge, or stack operation was found.