47 lines
1.9 KiB
PowerShell
47 lines
1.9 KiB
PowerShell
$ErrorActionPreference = "Stop"
|
|
|
|
$repoRoot = git rev-parse --show-toplevel 2>$null
|
|
if (-not $repoRoot) {
|
|
throw "Not inside a git repository."
|
|
}
|
|
$repoRoot = [System.IO.Path]::GetFullPath($repoRoot.Trim())
|
|
|
|
$sakuyaPath = Join-Path $repoRoot "Unity/Assets/Scripts/TH1_Logic/Skill/AllSkill/SakuyaGuardSkill.cs"
|
|
$synergyPath = Join-Path $repoRoot "Unity/Assets/Scripts/TH1_Logic/Skill/AllSkill/KaguyaFrenchSynergySkill.cs"
|
|
|
|
$sakuyaText = Get-Content -Raw $sakuyaPath
|
|
$synergyText = Get-Content -Raw $synergyPath
|
|
|
|
if ($sakuyaText -notmatch 'DamageSettlement\s*\(\s*mapData\s*,\s*info\.DamageOrigin\s*,\s*unit\s*,[\s\S]*?DamageType\.Splash') {
|
|
throw "SakuyaGuard guardrail failed: guard damage should keep the legacy nested DamageSettlement(..., DamageType.Splash) settlement model."
|
|
}
|
|
|
|
foreach ($required in @(
|
|
'TryGetTransferredDamageOriginalTarget',
|
|
'_guardTransferContexts.Push',
|
|
'_guardTransferContexts.Pop',
|
|
'info.DamageValue = 0'
|
|
)) {
|
|
if (-not $sakuyaText.Contains($required)) {
|
|
throw "SakuyaGuard guardrail failed: missing required snippet '$required'."
|
|
}
|
|
}
|
|
|
|
if ($sakuyaText.Contains('info.DamageBearer = unit')) {
|
|
throw "SakuyaGuard guardrail failed: Sakuya guard must not use DamageBearer because it changes legacy settlement side effects."
|
|
}
|
|
|
|
if (-not $synergyText.Contains('SakuyaGuardSkill.TryGetTransferredDamageOriginalTarget')) {
|
|
throw "KaguyaFrenchSynergy guardrail failed: synergy debuff must redirect Sakuya-guard transferred damage to the original target."
|
|
}
|
|
|
|
if ($synergyText.Contains('DamageType.CounterAttack')) {
|
|
throw "KaguyaFrenchSynergy guardrail failed: do not globally add counterattack synergy debuffs as part of the Sakuya guard fix."
|
|
}
|
|
|
|
if (-not $synergyText.Contains('debuffTarget.AddSkill_Legacy')) {
|
|
throw "KaguyaFrenchSynergy guardrail failed: synergy debuff must be applied through the selected debuffTarget."
|
|
}
|
|
|
|
Write-Host "SakuyaGuard transferred-debuff guardrail passed."
|