Skip to content

Commit fbd19ab

Browse files
Clean up existing boss content, part 1 (V3 Milestone 5)
From the two-wiki review (Fextralife and Fandom): - True Corrupted Monk: phase 2 keeps every phase-1 move alongside the illusion summoning; the illusion text no longer gives a shadow count or the misleading Bite Down tip, and adds the tree aerial-Deathblow - Guardian Ape: add the phase-2 Jumping Sweep from the Fextralife attack table; the rolling body slam can be blocked - Owl (Father): Shadowfall is the Mushin combat art 秘传·巨型忍者落杀 (both wikis say so); the firecracker dodge mistake moves to the 5-slash firecracker combo where the source puts it - Isshin: deflecting Ichimonji Double leads into a force-wave follow-up Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 parent 5ed730e commit fbd19ab

2 files changed

Lines changed: 144 additions & 32 deletions

File tree

‎backend/seed/bosses.json‎

Lines changed: 141 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -658,9 +658,9 @@
658658
{
659659
"id": "shadowfall",
660660
"name": "Shadowfall",
661-
"name_zh": "巨型忍者落杀",
662-
"name_zh_source": "translation",
663-
"name_zh_source_url": null,
661+
"name_zh": "秘传·巨型忍者落杀",
662+
"name_zh_source": "wiki",
663+
"name_zh_source_url": "https://wiki.biligame.com/sekiro/%E7%A7%98%E4%BC%A0%C2%B7%E5%B7%A8%E5%9E%8B%E5%BF%8D%E8%80%85%E8%90%BD%E6%9D%80",
664664
"move_type": "thrust",
665665
"description": "Unblockable thrust; if it hits, he jumps off and comes down with two huge slashes.",
666666
"description_zh": "无法防御的突刺;如果命中,他会跳起再落下,接两记巨大的斩击。",
@@ -743,13 +743,13 @@
743743
"name_zh_source_url": null,
744744
"move_type": "ranged",
745745
"description": "Throws blinding firecrackers followed by an explosion; can chain into Shuriken Throw, Shadowfall, or Shuriken Slash.",
746-
"description_zh": "扔出致盲的爆竹并引发爆炸;之后可能接投掷手里剑、巨型忍者落杀或手里剑 + 斩击。",
746+
"description_zh": "扔出致盲的爆竹并引发爆炸;之后可能接投掷手里剑、秘传·巨型忍者落杀或手里剑 + 斩击。",
747747
"telegraph": null,
748748
"telegraph_zh": null,
749749
"counter": "Dodge backwards to avoid.",
750750
"counter_zh": "向后闪避躲开。",
751-
"common_mistakes": "Dodging too quickly after the throw lets his follow-up slash hit you.",
752-
"common_mistakes_zh": "他扔出爆竹后闪避得太快,会被他接下来的斩击命中。"
751+
"common_mistakes": null,
752+
"common_mistakes_zh": null
753753
},
754754
{
755755
"id": "running-slash",
@@ -780,8 +780,8 @@
780780
"telegraph_zh": null,
781781
"counter": "Deflect/block the slashes, then dodge right when the firecrackers are thrown for a counter opportunity.",
782782
"counter_zh": "弹开或防御前几刀,在他扔出爆竹时向右闪避,寻找反击机会。",
783-
"common_mistakes": "Getting pushed back into a corner by the combo, where there is no chance of survival.",
784-
"common_mistakes_zh": "被这套连击逼进角落,那里几乎没有活路。"
783+
"common_mistakes": "Dodging too quickly after the firecrackers are thrown - the follow-up slash will hit you. The combo can also easily push you back into a corner, where there is little chance of survival.",
784+
"common_mistakes_zh": "爆竹扔出后闪避得太快——会被接下来的斩击命中。这套连击也很容易把你逼进角落,那里几乎没有活路。"
785785
},
786786
{
787787
"id": "double-slash-perilous-sweep",
@@ -873,9 +873,9 @@
873873
{
874874
"id": "shadowfall",
875875
"name": "Shadowfall",
876-
"name_zh": "巨型忍者落杀",
877-
"name_zh_source": "translation",
878-
"name_zh_source_url": null,
876+
"name_zh": "秘传·巨型忍者落杀",
877+
"name_zh_source": "wiki",
878+
"name_zh_source_url": "https://wiki.biligame.com/sekiro/%E7%A7%98%E4%BC%A0%C2%B7%E5%B7%A8%E5%9E%8B%E5%BF%8D%E8%80%85%E8%90%BD%E6%9D%80",
879879
"move_type": "thrust",
880880
"description": "Unblockable thrust; if it hits, he jumps off and comes down with two huge slashes.",
881881
"description_zh": "无法防御的突刺;如果命中,他会跳起再落下,接两记巨大的斩击。",
@@ -958,13 +958,13 @@
958958
"name_zh_source_url": null,
959959
"move_type": "ranged",
960960
"description": "Throws blinding firecrackers followed by an explosion; can chain into Shuriken Throw, Shadowfall, or Shuriken Slash.",
961-
"description_zh": "扔出致盲的爆竹并引发爆炸;之后可能接投掷手里剑、巨型忍者落杀或手里剑 + 斩击。",
961+
"description_zh": "扔出致盲的爆竹并引发爆炸;之后可能接投掷手里剑、秘传·巨型忍者落杀或手里剑 + 斩击。",
962962
"telegraph": null,
963963
"telegraph_zh": null,
964964
"counter": "Dodge backwards to avoid.",
965965
"counter_zh": "向后闪避躲开。",
966-
"common_mistakes": "Dodging too quickly after the throw lets his follow-up slash hit you.",
967-
"common_mistakes_zh": "他扔出爆竹后闪避得太快,会被他接下来的斩击命中。"
966+
"common_mistakes": null,
967+
"common_mistakes_zh": null
968968
},
969969
{
970970
"id": "running-slash",
@@ -995,8 +995,8 @@
995995
"telegraph_zh": null,
996996
"counter": "Deflect/block the slashes, then dodge right when the firecrackers are thrown for a counter opportunity.",
997997
"counter_zh": "弹开或防御前几刀,在他扔出爆竹时向右闪避,寻找反击机会。",
998-
"common_mistakes": "Getting pushed back into a corner by the combo, where there is no chance of survival.",
999-
"common_mistakes_zh": "被这套连击逼进角落,那里几乎没有活路。"
998+
"common_mistakes": "Dodging too quickly after the firecrackers are thrown - the follow-up slash will hit you. The combo can also easily push you back into a corner, where there is little chance of survival.",
999+
"common_mistakes_zh": "爆竹扔出后闪避得太快——会被接下来的斩击命中。这套连击也很容易把你逼进角落,那里几乎没有活路。"
10001000
},
10011001
{
10021002
"id": "double-slash-perilous-sweep",
@@ -1065,12 +1065,12 @@
10651065
{
10661066
"id": "fire-owl-shadowfall",
10671067
"name": "Fire Owl + Shadowfall",
1068-
"name_zh": "火枭 + 巨型忍者落杀",
1068+
"name_zh": "火枭 + 秘传·巨型忍者落杀",
10691069
"name_zh_source": "translation",
10701070
"name_zh_source_url": null,
10711071
"move_type": "combo",
10721072
"description": "Summons his owl and throws an unblockable fire owl projectile, then follows up with Shadowfall.",
1073-
"description_zh": "召唤出枭并扔出一只无法防御的火枭,然后接巨型忍者落杀。",
1073+
"description_zh": "召唤出枭并扔出一只无法防御的火枭,然后接秘传·巨型忍者落杀。",
10741074
"telegraph": null,
10751075
"telegraph_zh": null,
10761076
"counter": "Jump over the fire owl and Mikiri the thrust.",
@@ -1449,7 +1449,7 @@
14491449
"name_zh": "翻滚压击",
14501450
"name_zh_source": "translation",
14511451
"name_zh_source_url": null,
1452-
"move_type": "unblockable",
1452+
"move_type": "combo",
14531453
"description": "The ape jumps onto its back and thrashes the ground.",
14541454
"description_zh": "狮子猿仰面倒地,在地上翻滚拍打。",
14551455
"telegraph": null,
@@ -1482,6 +1482,22 @@
14821482
"common_mistakes": "Staying on top of it and attacking for too long.",
14831483
"common_mistakes_zh": "一直贴着它攻击太久。"
14841484
},
1485+
{
1486+
"id": "jumping-sweep",
1487+
"name": "Jumping Sweep",
1488+
"name_zh": "跳跃横扫",
1489+
"name_zh_source": "translation",
1490+
"name_zh_source_url": null,
1491+
"move_type": "sweep",
1492+
"description": "Jumps high into the air and does a sweep attack upon landing.",
1493+
"description_zh": "高高跃起,落地时发动一记横扫。",
1494+
"telegraph": null,
1495+
"telegraph_zh": null,
1496+
"counter": "Jump into it as it lands and kick it, dealing posture damage and forcing it into an overhead slam.",
1497+
"counter_zh": "在它落地时跳起踩它,能造成躯干伤害,并迫使它接一记高举砸地。",
1498+
"common_mistakes": null,
1499+
"common_mistakes_zh": null
1500+
},
14851501
{
14861502
"id": "diving-lunge",
14871503
"name": "Diving Lunge",
@@ -1790,12 +1806,108 @@
17901806
"name_zh_source": "translation",
17911807
"name_zh_source_url": null,
17921808
"move_type": "summon",
1793-
"description": "She disappears and the area fills with mist, then summons three shadow illusions of herself that each attack the player three times. The shadows disappear between attacks, making lock-on difficult. Standing near a wall before the shadows spawn limits them to one direction, repeating the same three moves.",
1794-
"description_zh": "她消失后场地充满雾气,接着召唤三个自己的影子幻影,每个都会攻击玩家三次。影子在攻击间隙会消失,很难锁定。影子出现前站在墙边,可以让它们只从一个方向出现,重复同样的三招。",
1809+
"description": "She disappears and the area fills with mist, then summons multiple shadow illusions of herself that attack the player. The shadows disappear between attacks, making lock-on difficult. Standing near a wall before the shadows spawn limits them to one direction.",
1810+
"description_zh": "她消失后场地充满雾气,接着召唤多个自己的影子幻影攻击玩家。影子在攻击间隙会消失,很难锁定。影子出现前站在墙边,可以让它们只从一个方向出现。",
17951811
"telegraph": null,
17961812
"telegraph_zh": null,
1797-
"counter": "The shadows don't need to be defeated - she eventually ends the illusion and returns on her own. A Bite Down pill instantly dispels them too.",
1798-
"counter_zh": "不需要击败影子——她最终会自己结束幻影并回来。咬破药丸也能立即驱散它们。",
1813+
"counter": "The shadows don't need to be defeated - she eventually ends the illusion and returns on her own. Alternatively, grapple up to the tallest tree near the temple; when she appears crouched as she casts or ends the illusion, drop down for an aerial Deathblow, which ends this phase immediately. The branch also keeps you out of reach of most of the shadows.",
1814+
"counter_zh": "不需要击败影子——她最终会自己结束幻影并回来。也可以用钩绳爬到神社旁最高的树上,等她施放或结束幻影、蹲下现身时跳下来发动空中忍杀,可以直接结束这个阶段。待在树枝上也能躲开大部分影子。",
1815+
"common_mistakes": null,
1816+
"common_mistakes_zh": null
1817+
},
1818+
{
1819+
"id": "sweep-attack",
1820+
"name": "Sweep Attack",
1821+
"name_zh": "横扫攻击",
1822+
"name_zh_source": "translation",
1823+
"name_zh_source_url": null,
1824+
"move_type": "sweep",
1825+
"description": "Perilous sweep attack variant, used more often here than in the Mibu Village fight. More telegraphed and predictable in Phase 3.",
1826+
"description_zh": "横扫类的危攻击,这里比水生村那一战用得更频繁。第三阶段的预兆更明显,也更好预判。",
1827+
"telegraph": null,
1828+
"telegraph_zh": null,
1829+
"counter": "Jump over it.",
1830+
"counter_zh": "跳过去。",
1831+
"common_mistakes": null,
1832+
"common_mistakes_zh": null
1833+
},
1834+
{
1835+
"id": "thrust-attack",
1836+
"name": "Thrust Attack",
1837+
"name_zh": "突刺攻击",
1838+
"name_zh_source": "translation",
1839+
"name_zh_source_url": null,
1840+
"move_type": "thrust",
1841+
"description": "Perilous thrust attack variant, used more often here than in the Mibu Village fight.",
1842+
"description_zh": "突刺类的危攻击,这里比水生村那一战用得更频繁。",
1843+
"telegraph": null,
1844+
"telegraph_zh": null,
1845+
"counter": "Mikiri Counter.",
1846+
"counter_zh": "识破。",
1847+
"common_mistakes": null,
1848+
"common_mistakes_zh": null
1849+
},
1850+
{
1851+
"id": "jump-attack-sweep",
1852+
"name": "Jump Attack (Sweep Variant)",
1853+
"name_zh": "跳跃攻击(横扫)",
1854+
"name_zh_source": "translation",
1855+
"name_zh_source_url": null,
1856+
"move_type": "sweep",
1857+
"description": "Jumping attack that sweeps during the jump.",
1858+
"description_zh": "跳跃攻击,在跳跃过程中横扫。",
1859+
"telegraph": null,
1860+
"telegraph_zh": null,
1861+
"counter": "Sidestep and strike as she lands.",
1862+
"counter_zh": "向侧面闪避,在她落地时出手攻击。",
1863+
"common_mistakes": null,
1864+
"common_mistakes_zh": null
1865+
},
1866+
{
1867+
"id": "jump-attack-overhead",
1868+
"name": "Jump Attack (Overhead Variant)",
1869+
"name_zh": "跳跃攻击(下劈)",
1870+
"name_zh_source": "translation",
1871+
"name_zh_source_url": null,
1872+
"move_type": "overhead",
1873+
"description": "Jumping attack that ends in an overhead slash. In Phase 3 it tends to be used as a finishing move.",
1874+
"description_zh": "跳跃攻击,最后以一记下劈收尾。第三阶段她常用这招收尾。",
1875+
"telegraph": null,
1876+
"telegraph_zh": null,
1877+
"counter": "Run below and attack her exposed back.",
1878+
"counter_zh": "跑到她身下,攻击她露出的背后。",
1879+
"common_mistakes": null,
1880+
"common_mistakes_zh": null
1881+
},
1882+
{
1883+
"id": "upwards-slash",
1884+
"name": "Upwards Slash",
1885+
"name_zh": "上挑斩",
1886+
"name_zh_source": "translation",
1887+
"name_zh_source_url": null,
1888+
"move_type": "unblockable",
1889+
"description": "An upward slash that goes through Sekiro's normal defenses and cannot be blocked.",
1890+
"description_zh": "一记上挑斩,会穿透狼的常规防御,无法防御。",
1891+
"telegraph": null,
1892+
"telegraph_zh": null,
1893+
"counter": "Can be deflected, though the timing is very precise.",
1894+
"counter_zh": "可以弹刀,但时机要求非常精确。",
1895+
"common_mistakes": null,
1896+
"common_mistakes_zh": null
1897+
},
1898+
{
1899+
"id": "mid-range-combo",
1900+
"name": "Mid-Range Combo",
1901+
"name_zh": "中距离连击",
1902+
"name_zh_source": "translation",
1903+
"name_zh_source_url": null,
1904+
"move_type": "combo",
1905+
"description": "One jumping air hit followed by two ground hits at mid-range.",
1906+
"description_zh": "先跳起在空中攻击一次,接着在中距离落地连续攻击两次。",
1907+
"telegraph": null,
1908+
"telegraph_zh": null,
1909+
"counter": "Let the landing cancel the air-attack lag, then jump away to mid-range.",
1910+
"counter_zh": "利用落地抵消空中攻击的硬直,然后跳开拉到中距离。",
17991911
"common_mistakes": null,
18001912
"common_mistakes_zh": null
18011913
}
@@ -2310,8 +2422,8 @@
23102422
"description_zh": "连续两次下劈。",
23112423
"telegraph": "Raises his blade into a ready stance.",
23122424
"telegraph_zh": "举刀摆出架势。",
2313-
"counter": "Dodge or block; the attack can also be sidestepped. Deflecting triggers a stagger.",
2314-
"counter_zh": "闪避或防御;也可以向侧面躲开。弹刀会让他硬直。",
2425+
"counter": "Dodge or block; the attack can also be sidestepped. Deflecting the first strike staggers him, but he follows up with a force-wave attack, so dodging or blocking is safer.",
2426+
"counter_zh": "闪避或防御;也可以向侧面躲开。弹开第一击会让他硬直,但他接着会发动一记剑气类攻击,所以闪避或防御更稳妥。",
23152427
"common_mistakes": null,
23162428
"common_mistakes_zh": null
23172429
},
@@ -2477,8 +2589,8 @@
24772589
"description_zh": "连续两次下劈。",
24782590
"telegraph": "Raises his blade into a ready stance.",
24792591
"telegraph_zh": "举刀摆出架势。",
2480-
"counter": "Dodge or block; the attack can also be sidestepped. Deflecting triggers a stagger.",
2481-
"counter_zh": "闪避或防御;也可以向侧面躲开。弹刀会让他硬直。",
2592+
"counter": "Dodge or block; the attack can also be sidestepped. Deflecting the first strike staggers him, but he follows up with a force-wave attack, so dodging or blocking is safer.",
2593+
"counter_zh": "闪避或防御;也可以向侧面躲开。弹开第一击会让他硬直,但他接着会发动一记剑气类攻击,所以闪避或防御更稳妥。",
24822594
"common_mistakes": null,
24832595
"common_mistakes_zh": null
24842596
},
@@ -2708,8 +2820,8 @@
27082820
"description_zh": "连续两次下劈。",
27092821
"telegraph": "Raises his blade into a ready stance.",
27102822
"telegraph_zh": "举刀摆出架势。",
2711-
"counter": "Dodge or block; the attack can also be sidestepped. Deflecting triggers a stagger.",
2712-
"counter_zh": "闪避或防御;也可以向侧面躲开。弹刀会让他硬直。",
2823+
"counter": "Dodge or block; the attack can also be sidestepped. Deflecting the first strike staggers him, but he follows up with a force-wave attack, so dodging or blocking is safer.",
2824+
"counter_zh": "闪避或防御;也可以向侧面躲开。弹开第一击会让他硬直,但他接着会发动一记剑气类攻击,所以闪避或防御更稳妥。",
27132825
"common_mistakes": null,
27142826
"common_mistakes_zh": null
27152827
},

‎backend/tests/test_bosses.py‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ def test_get_fifth_boss_has_a_single_phase(client):
9090
assert "whirlwind-attack" in move_ids
9191

9292

93-
def test_get_sixth_boss_has_a_gimmick_middle_phase(client):
93+
def test_get_sixth_boss_adds_illusions_in_the_middle_phase(client):
9494
resp = client.get("/api/bosses/true-corrupted-monk")
9595
assert resp.status_code == 200
9696
data = resp.json()
@@ -101,8 +101,8 @@ def test_get_sixth_boss_has_a_gimmick_middle_phase(client):
101101
phase_2_move_ids = {m["id"] for m in data["phases"][1]["moves"]}
102102
phase_3_move_ids = {m["id"] for m in data["phases"][2]["moves"]}
103103

104-
# Phase 2 is a short illusion-summoning gimmick, not an extension of Phase 1.
105-
assert phase_2_move_ids == {"illusion-summoning"}
104+
# Phase 2 keeps her Phase 1 moveset and adds the illusion summoning.
105+
assert phase_2_move_ids == phase_1_move_ids | {"illusion-summoning"}
106106
# Phase 1 doesn't have the whirlwind attack yet; it's regained in Phase 3
107107
# along with the new centipede moves.
108108
assert "whirlwind-attack" not in phase_1_move_ids

0 commit comments

Comments
 (0)