diff --git a/src/frame_service/json_directory/tests/static/character_list.json b/src/frame_service/json_directory/tests/static/character_list.json index 86ef00d..a5c700f 100644 --- a/src/frame_service/json_directory/tests/static/character_list.json +++ b/src/frame_service/json_directory/tests/static/character_list.json @@ -24,6 +24,11 @@ "portrait": "https://wavu.wiki/t/Special:Redirect/file/ClaudioT8.png", "page": "https://wavu.wiki/t/Claudio" }, + { + "name": "clive", + "portrait": "https://wavu.wiki/t/Special:Redirect/file/CliveT8.png", + "page": "https://wavu.wiki/t/Clive" + }, { "name": "devil_jin", "portrait": "https://wavu.wiki/t/Special:Redirect/file/Devil_JinT8.png", diff --git a/src/frame_service/json_directory/tests/static/json_movelist/clive.json b/src/frame_service/json_directory/tests/static/json_movelist/clive.json new file mode 100644 index 0000000..e231aac --- /dev/null +++ b/src/frame_service/json_directory/tests/static/json_movelist/clive.json @@ -0,0 +1,1518 @@ +[ + { + "alias": [], + "alt": [], + "damage": "5", + "id": "Clive-1", + "image": "", + "input": "1", + "name": "Jab", + "notes": "Recovers 2f faster on hit or block (t27 r17)\n", + "on_block": "+1", + "on_ch": "+8", + "on_hit": "+8", + "parent": "", + "recovery": "r19", + "startup": "i10", + "target": "h", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "5,13", + "id": "Clive-1,1", + "image": "", + "input": "1,1", + "name": "Double Blow", + "notes": "* Jail from 1st attack\n* Enter PHX r23 with F or 4 on hit or block\n", + "on_block": "-3", + "on_ch": "+6", + "on_hit": "+6", + "parent": "Clive-1", + "recovery": "r23", + "startup": "i10", + "target": "h,h", + "video": "" + }, + { + "alias": [], + "alt": [ + "WS1+2" + ], + "damage": "24", + "id": "Clive-1+2", + "image": "", + "input": "1+2", + "name": "Flame Bash", + "notes": "* Heat Engager\n* Heat Dash +5, +43a (+35)\n* Balcony Break (airborne)\n* Weapon\n* On hit regain recoverable health\n", + "on_block": "-9", + "on_ch": "+2", + "on_hit": "+2", + "parent": "", + "recovery": "r33", + "startup": "i13", + "target": "m", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "5,20", + "id": "Clive-1,2", + "image": "", + "input": "1,2", + "name": "Finishing Steel", + "notes": "* Spike\n* Weapon\n* Combo from 1st hit with 2f delay\n* Increase Zantetsuken gauge on hit or block\n* Only deals recoverable damage\n* +11d on BT hit\n", + "on_block": "-14", + "on_ch": "+22a (+17)", + "on_hit": "+22a (+17)", + "parent": "Clive-1", + "recovery": "r33", + "startup": "i10", + "target": "h,M", + "video": "" + }, + { + "alias": [], + "alt": [ + "FC.D+1+2+3+4" + ], + "damage": "", + "id": "Clive-1+2+3+4", + "image": "", + "input": "1+2+3+4", + "name": "Ki Charge", + "notes": "* CH state for 5 seconds\n* Can't block for 5 seconds\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "parent": "", + "recovery": "", + "startup": "", + "target": "", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "35", + "id": "Clive-1+3", + "image": "", + "input": "1+3", + "name": "", + "notes": "* Homing\n* Throw break: 1 or 2\n* Can be done from FC\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "parent": "", + "recovery": "", + "startup": "i12~14", + "target": "t", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "5,22", + "id": "Clive-1,f+2", + "image": "", + "input": "1,f+2", + "name": "Rapid Assault", + "notes": "* Balcony Break\n* Weapon\n* Combo from 1st CH\n* Input can be delayed 2f\n* Chip damage on block\n* +20a (+11) on BT hit\n", + "on_block": "+1", + "on_ch": "+13g", + "on_hit": "+13g", + "parent": "Clive-1", + "recovery": "r29", + "startup": "i10", + "target": "h,h", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "11", + "id": "Clive-2", + "image": "", + "input": "2", + "name": "", + "notes": "Weapon\n", + "on_block": "+0", + "on_ch": "+7", + "on_hit": "+7", + "parent": "", + "recovery": "r23", + "startup": "i12", + "target": "h", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "11,20", + "id": "Clive-2,1", + "image": "", + "input": "2,1", + "name": "Magic Burst", + "notes": "* Balcony Break\n* Weapon\n* Jail from 1st attack\n* Input 1 during the 1st hit animation on frames 10~12 to add +3 damage\n", + "on_block": "-13", + "on_ch": "+8a (-1)", + "on_hit": "+8a (-1)", + "parent": "Clive-2", + "recovery": "r36", + "startup": "i12", + "target": "h,h", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "11,9", + "id": "Clive-2,2", + "image": "", + "input": "2,2", + "name": "", + "notes": "* Balcony Break (airborne)\n* Weapon\n* Combo from 1st hit\n* Enter PHX -1 +6 r25 with F or 4 on hit or block\n", + "on_block": "-8", + "on_ch": "-1", + "on_hit": "-1", + "parent": "Clive-2", + "recovery": "r32", + "startup": "i12", + "target": "h,m", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "11,9,18", + "id": "Clive-2,2,1", + "image": "", + "input": "2,2,1", + "name": "Assault Burst", + "notes": "* Balcony Break\n* Weapon\n* Combo from 1st CH\n* Combo from 2nd CH with 10f? delay\n* Input 1 during the 2nd hit animation on frames 21~23 to add +3 damage\n", + "on_block": "-13", + "on_ch": "+8a (-1)", + "on_hit": "+8a (-1)", + "parent": "Clive-2,2", + "recovery": "r36", + "startup": "i12", + "target": "h,m,m", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "11,9,10,18", + "id": "Clive-2,2,1+2", + "image": "", + "input": "2,2,1+2", + "name": "Gungnir Dance", + "notes": "* Balcony Break\n* Spike\n* Weapon\n* Increase Zantetsuken gauge on hit or block\n* Only deals recoverable damage\n* -4d on BT hit\n,js41~54\nfs55~57", + "on_block": "-13c", + "on_ch": "+1a", + "on_hit": "+1a", + "parent": "Clive-2,2", + "recovery": "r48", + "startup": "i12", + "target": "h,m,m,M", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "11,9,15,20", + "id": "Clive-2,2,2", + "image": "", + "input": "2,2,2", + "name": "Gleipnir-Cutter", + "notes": "* Tornado\n* Balcony Break\n* Weapon\n* Power up in Heat\n* Input can be delayed 6f?\n* Transition to PHX on hit only\n* Cancel PHX transition with B\n", + "on_block": "-9", + "on_ch": "+21a (+4)", + "on_hit": "+21a (+4)", + "parent": "Clive-2,2", + "recovery": "r35", + "startup": "i12", + "target": "h,m,M,m", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "11,9,", + "id": "Clive-2,2,H.2", + "image": "", + "input": "2,2,H.2", + "name": "", + "notes": "* ? Chip Damage on block\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "parent": "Clive-2,2", + "recovery": "", + "startup": "i12", + "target": "h,m,", + "video": "" + }, + { + "alias": [], + "alt": [ + "R1" + ], + "damage": "[12;12]", + "id": "Clive-2+3", + "image": "", + "input": "2+3", + "name": "Heat Burst", + "notes": "* Heat Burst\n* Cancel to r45 with b,b\n* 3 chip damage on block\n* 12 chip damage on hit\n* Only deals recoverable damage\n* Cannot cause a K.O.\n* Power Crush", + "on_block": "+1", + "on_ch": "+2c", + "on_hit": "+2c", + "parent": "", + "recovery": "r30", + "startup": "i16", + "target": "m", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "35", + "id": "Clive-2+4", + "image": "", + "input": "2+4", + "name": "", + "notes": "* Homing\n* Throw break: 1 or 2\n* Can be done from FC\n* Side switch on hit\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "parent": "", + "recovery": "", + "startup": "i12~14", + "target": "t", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "16", + "id": "Clive-3", + "image": "", + "input": "3", + "name": "", + "notes": "\n", + "on_block": "-13", + "on_ch": "-2", + "on_hit": "-2", + "parent": "", + "recovery": "r32", + "startup": "i16", + "target": "m", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "16,15,15", + "id": "Clive-3,2", + "image": "", + "input": "3,2", + "name": "Fine Hound", + "notes": "* Balcony Break\n* Weapon\n* Combo from 1st CH\n* Jail from 2nd block\n* 3rd hit never combos on standing hit\n* 3rd hit available only on hit or block\n* Interrupt with i4 from 1st block\n* +23a (+13) on BT hit\n* Power up in Heat\n", + "on_block": "-12~+0", + "on_ch": "+22a (+12)", + "on_hit": "+22a (+12)", + "parent": "Clive-3", + "recovery": "r53", + "startup": "i16", + "target": "m,m,m", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "16,20", + "id": "Clive-3,3", + "image": "", + "input": "3,3", + "name": "Bright Wing", + "notes": "* Tornado\n* Balcony Break\n* Input can be delayed 1f\n,fs31~", + "on_block": "-18~-16", + "on_ch": "+36a (+26)", + "on_hit": "+12a (-5)", + "parent": "Clive-3", + "recovery": "r36 WOL", + "startup": "i16", + "target": "m,M", + "video": "" + }, + { + "alias": [ + "WOL" + ], + "alt": [], + "damage": "", + "id": "Clive-3+4", + "image": "", + "input": "3+4", + "name": "Wings of Light", + "notes": "* Strong low parry effect (active while moving)\n* Move backward/forward with b_f\n* Cancel to r53 with db_d_df\nfs5~\nps9~", + "on_block": "", + "on_ch": "", + "on_hit": "", + "parent": "", + "recovery": "r37", + "startup": "", + "target": "", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": ",20", + "id": "Clive-3+4,P", + "image": "", + "input": "3+4,P", + "name": "Radiant Backflip (Parry)", + "notes": "* Tornado\nis1~27\nfs28~70", + "on_block": "", + "on_ch": "+61a (+45)", + "on_hit": "+61a (+45)", + "parent": "Clive-3+4", + "recovery": "r42", + "startup": "", + "target": ",M", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "8", + "id": "Clive-4", + "image": "", + "input": "4", + "name": "", + "notes": "\n", + "on_block": "-10", + "on_ch": "+1", + "on_hit": "+1", + "parent": "", + "recovery": "r29", + "startup": "i12", + "target": "m", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "8,17", + "id": "Clive-4,2", + "image": "", + "input": "4,2", + "name": "Mercenary Cut", + "notes": "* Weapon\n* Combo from 1st hit\n* Input can be delayed 3f\n", + "on_block": "-11", + "on_ch": "+3", + "on_hit": "+3", + "parent": "Clive-4", + "recovery": "r32", + "startup": "i12", + "target": "m,M", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "8,13", + "id": "Clive-4,4", + "image": "", + "input": "4,4", + "name": "Roundabout", + "notes": "* Combo from 1st hit\n* Input can be delayed 3f\n* Enter PHX +6 +14 r21 with F or 4 on hit or block\n", + "on_block": "-8", + "on_ch": "+0", + "on_hit": "+0", + "parent": "Clive-4", + "recovery": "r35", + "startup": "i12", + "target": "m,h", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "18", + "id": "Clive-b+1", + "image": "", + "input": "b+1", + "name": "Blue Bolt", + "notes": "* Homing\n* Balcony Break\n* Weapon\n", + "on_block": "-13", + "on_ch": "+57a", + "on_hit": "+10g", + "parent": "", + "recovery": "r32", + "startup": "i17~18", + "target": "m", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "25", + "id": "Clive-b+1+2", + "image": "", + "input": "b+1+2", + "name": "* Windup\n* Windup Counter", + "notes": "* Balcony Break\n* Reversal Break (after attack absorb)\n* 39 in total damage after absorbing an attack in power crush state\n* Damage taken during power crush state is recoverable\n* -7 on block if an attack is absorbed\n* 14 Chip Damage on block after absorbing an attack in power crush state\n* 17 Chip Damage on block while in heat after absorbing an attack in power crush state\n* Power Crush", + "on_block": "-14~-13", + "on_ch": "+20a (+10a)", + "on_hit": "+20a (+10a)", + "parent": "", + "recovery": "r34", + "startup": "i24~25", + "target": "m", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "20", + "id": "Clive-b+2", + "image": "", + "input": "b+2", + "name": "Executioner", + "notes": "* Strong Aerial Tailspin\n* Homing\n* Balcony Break\n* Weapon\n* Enter PHX +6 +23 +23c r24 with F or 4 on block or hit\n* +15a (+6) on BT hit\n", + "on_block": "-4", + "on_ch": "+9c", + "on_hit": "+9", + "parent": "", + "recovery": "r34", + "startup": "i20~21", + "target": "h", + "video": "" + }, + { + "alias": [], + "alt": [ + "ws.b+3" + ], + "damage": "", + "id": "Clive-b+3", + "image": "", + "input": "b+3", + "name": "Precision Dodge", + "notes": "\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "parent": "", + "recovery": "", + "startup": "", + "target": "", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "20", + "id": "Clive-b+4", + "image": "", + "input": "b+4", + "name": "Mercenary Kick", + "notes": "* Balcony Break\n* Steel pedal, opponent recovers in FUFT\n* Opponent recovers crouching on standing hit\n", + "on_block": "-9", + "on_ch": "+25a (+19a)", + "on_hit": "+16g", + "parent": "", + "recovery": "r33", + "startup": "i18~19", + "target": "M", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "", + "id": "Clive-Back Throw", + "image": "", + "input": "Back Throw", + "name": "", + "notes": "* Cannot break throw\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "parent": "", + "recovery": "", + "startup": "", + "target": "t", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "", + "id": "Clive-(back to wall).b,b,ub", + "image": "", + "input": "(back to wall).b,b,ub", + "name": "[Wall Jump Attack](https://wavu.wiki/t/Wall_jump_attack 'Wall Jump Attack')", + "notes": "\njs", + "on_block": "", + "on_ch": "", + "on_hit": "", + "parent": "", + "recovery": "", + "startup": "", + "target": "m", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "40", + "id": "Clive-b,B+1+4", + "image": "", + "input": "b,B+1+4", + "name": "Pulvervize", + "notes": "\n", + "on_block": "", + "on_ch": "+56a", + "on_hit": "+56a", + "parent": "", + "recovery": "r57?", + "startup": "i80~81", + "target": "m!", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "14", + "id": "Clive-d+1", + "image": "", + "input": "d+1", + "name": "Scorching Sweep", + "notes": "\ncs6~", + "on_block": "-13", + "on_ch": "+2", + "on_hit": "+2", + "parent": "", + "recovery": "r31 FC", + "startup": "i18~19", + "target": "L", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "23", + "id": "Clive-d+1+2", + "image": "", + "input": "d+1+2", + "name": "Pile Driver", + "notes": "* Tornado\n* Balcony Break\n* Weapon\n* 6 Chip Damage on block\n* 9 Chip Damage on block in heat\n", + "on_block": "-6", + "on_ch": "+63a (+47)", + "on_hit": "+9a (-8)", + "parent": "", + "recovery": "r40", + "startup": "i22~23", + "target": "M", + "video": "" + }, + { + "alias": [], + "alt": [ + "hFC.2" + ], + "damage": "8", + "id": "Clive-d+2", + "image": "", + "input": "d+2", + "name": "Crouch Straight", + "notes": "\ncs4~", + "on_block": "-4", + "on_ch": "+7", + "on_hit": "+7", + "parent": "", + "recovery": "r23 FC", + "startup": "i11", + "target": "sl", + "video": "" + }, + { + "alias": [], + "alt": [ + "hFC.3", + "db+3" + ], + "damage": "10", + "id": "Clive-d+3", + "image": "", + "input": "d+3", + "name": "Crouch Spin Kick", + "notes": "\ncs4~", + "on_block": "-17", + "on_ch": "-6", + "on_hit": "-6", + "parent": "", + "recovery": "r36 FC", + "startup": "i16", + "target": "L", + "video": "" + }, + { + "alias": [], + "alt": [ + "hFC.4" + ], + "damage": "6", + "id": "Clive-d+4", + "image": "", + "input": "d+4", + "name": "Crouch Shin Kick", + "notes": "\ncs4~", + "on_block": "-15", + "on_ch": "-4", + "on_hit": "-4", + "parent": "", + "recovery": "r34 FC", + "startup": "i12", + "target": "l", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "10", + "id": "Clive-db+1", + "image": "", + "input": "db+1", + "name": "", + "notes": "* Homing\n", + "on_block": "-8", + "on_ch": "+12a", + "on_hit": "+4", + "parent": "", + "recovery": "r35", + "startup": "i17~18", + "target": "h", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "10,7,20", + "id": "Clive-db+1,1", + "image": "", + "input": "db+1,1", + "name": "Tidal Surge", + "notes": "* Tornado\n* Homing\n* Balcony Break\n* Available only as combo from 1st hit\n* Input 1 during the 2nd hit animation on frames 18~21 to add +5 damage\n", + "on_block": "", + "on_ch": "+31d (+10d)", + "on_hit": "+31d (+10d)", + "parent": "Clive-db+1", + "recovery": "", + "startup": "i17~18", + "target": "h,m,m", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "12,10", + "id": "Clive-db+1+2", + "image": "", + "input": "db+1+2", + "name": "", + "notes": "* Weapon\n* 3,3 Chip damage on block\n* 5,4 Chip damage on block in heat\n", + "on_block": "-11", + "on_ch": "-2c", + "on_hit": "-2c", + "parent": "", + "recovery": "r38", + "startup": "i17~18 i23", + "target": "M,m", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "12,10,20", + "id": "Clive-db+1+2,1", + "image": "", + "input": "db+1+2,1", + "name": "Gouge", + "notes": "* Balcony Break (BT)\n* Weapon\n* Combo from 2nd CH\n* Transition to +41a (+23) GAR on airborne hit\n* Cancel GAR transition with B\n* 6 Chip damage on block\n* 8 Chip damage on block in heat\n", + "on_block": "-13", + "on_ch": "+24a (+9a)", + "on_hit": "+24a (+9a)", + "parent": "Clive-db+1+2", + "recovery": "r40", + "startup": "i17~18 i23", + "target": "M,m,M", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "10", + "id": "Clive-db+2", + "image": "", + "input": "db+2", + "name": "", + "notes": "* Weapon\n", + "on_block": "-12", + "on_ch": "-1", + "on_hit": "-1", + "parent": "", + "recovery": "r32", + "startup": "i17~18", + "target": "m", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "10,23", + "id": "Clive-db+2,1", + "image": "", + "input": "db+2,1", + "name": "Ice Spikes", + "notes": "* Tornado\n* Weapon\n* Combo from 1st hit\n", + "on_block": "-13", + "on_ch": "+27a (+12a)", + "on_hit": "+27a (+12a)", + "parent": "Clive-db+2", + "recovery": "r37", + "startup": "i17~18", + "target": "m,M", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "10,27", + "id": "Clive-db+2,1*", + "image": "", + "input": "db+2,1*", + "name": "Ice Spikes (Hold)", + "notes": "* Tornado\n* Weapon\n* 10 Chip damage on block\n* 12 Chip damage on block in heat\n", + "on_block": "-3", + "on_ch": "+27a (+12a)", + "on_hit": "+27a (+12a)", + "parent": "Clive-db+2", + "recovery": "r", + "startup": "i17~18", + "target": "m,M", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "20", + "id": "Clive-db+4", + "image": "", + "input": "db+4", + "name": "Cold Cyclone", + "notes": "* Homing\n", + "on_block": "-18", + "on_ch": "+67a (+51a)", + "on_hit": "+4c", + "parent": "", + "recovery": "r36", + "startup": "i19~20", + "target": "L", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "10", + "id": "Clive-df+1", + "image": "", + "input": "df+1", + "name": "Mid Check", + "notes": "\n", + "on_block": "-3", + "on_ch": "+4", + "on_hit": "+4", + "parent": "", + "recovery": "r21", + "startup": "i14~15", + "target": "m", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "10,13", + "id": "Clive-df+1,2", + "image": "", + "input": "df+1,2", + "name": "", + "notes": "* Strong Aerial Tailspin\n* Weapon\n* Combo from 1st hit\n* Enter PHX +6 +14 r21 with F or 4 on hit or block\n", + "on_block": "-16", + "on_ch": "-8", + "on_hit": "-8", + "parent": "Clive-df+1", + "recovery": "r43", + "startup": "i14~15", + "target": "m,h", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "10,13,15", + "id": "Clive-df+1,2,1", + "image": "", + "input": "df+1,2,1", + "name": "Outlaw Burst", + "notes": "* Balcony Break\n* Weapon\n* Combo from 1st hit\n* Input 1 during the 2nd hit animation on frames 21~23 to add +3 damage\n", + "on_block": "-15", + "on_ch": "+32a (+11)", + "on_hit": "+32a (+11)", + "parent": "Clive-df+1,2", + "recovery": "r38", + "startup": "i14~15", + "target": "m,h,m", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "10,12", + "id": "Clive-df+1,4", + "image": "", + "input": "df+1,4", + "name": "", + "notes": "* Knee\n* Combo from 1st hit\n", + "on_block": "-10", + "on_ch": "+1", + "on_hit": "+1", + "parent": "Clive-df+1", + "recovery": "r31", + "startup": "i14~15", + "target": "m,m", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "10,12,20", + "id": "Clive-df+1,4,3", + "image": "", + "input": "df+1,4,3", + "name": "Outlaw Wing", + "notes": "* Tornado\n* Balcony Break\n,fs28~", + "on_block": "-18~-16", + "on_ch": "+36a (+26)", + "on_hit": "+12a (-5)", + "parent": "Clive-df+1,4", + "recovery": "r36 WOL", + "startup": "i14~15", + "target": "m,m,M", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "10,", + "id": "Clive-df+1,H.1", + "image": "", + "input": "df+1,H.1", + "name": "", + "notes": "*\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "parent": "Clive-df+1", + "recovery": "", + "startup": "i14~15", + "target": "m,", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "10,,", + "id": "Clive-df+1,H.1,1", + "image": "", + "input": "df+1,H.1,1", + "name": "", + "notes": "*\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "parent": "Clive-df+1,H.1", + "recovery": "", + "startup": "i14~15", + "target": "m,,", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "5,10", + "id": "Clive-df+2", + "image": "", + "input": "df+2", + "name": "Wyrm Killer", + "notes": "* Weapon\n* 2nd hit available only on hit or block\n", + "on_block": "-13", + "on_ch": "+30a (+20)", + "on_hit": "+30a (+20)", + "parent": "", + "recovery": "r35", + "startup": "i15~16 i26~27", + "target": "m,m", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "5,10,20", + "id": "Clive-df+2,2", + "image": "", + "input": "df+2,2", + "name": "", + "notes": "* Weapon\n* Available only as combo from 2nd hit\n* Available on standing hit only\n,js9~", + "on_block": "", + "on_ch": "+5a (-2)", + "on_hit": "+5a (-2)", + "parent": "Clive-df+2", + "recovery": "", + "startup": "i15~16 i26~27", + "target": "m,m,m", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "5,10,20,6,25", + "id": "Clive-df+2,2,2", + "image": "", + "input": "df+2,2,2", + "name": "Aerial Combination", + "notes": "* Tornado\n* Weapon\n* Available only as combo from 3rd hit\n* Available on standing hit only\n", + "on_block": "", + "on_ch": "+60a (+44)", + "on_hit": "+60a (+44)", + "parent": "Clive-df+2,2", + "recovery": "PHX", + "startup": "i15~16 i26~27", + "target": "m,m,m,m,M", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "20", + "id": "Clive-df+3", + "image": "", + "input": "df+3", + "name": "", + "notes": "* Homing\ncs6~65", + "on_block": "-26", + "on_ch": "+3c", + "on_hit": "+3c", + "parent": "", + "recovery": "r35 FC", + "startup": "i29~30", + "target": "L", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "20,18,20", + "id": "Clive-df+3,1", + "image": "", + "input": "df+3,1", + "name": "Hydro Blast", + "notes": "* Available only as combo from 1st hit\n* 38 damage in total for the full string with scaling\n* Input 1 during the 1st hit animation on frames 25~28 to add +4 damage\n", + "on_block": "", + "on_ch": "+3c", + "on_hit": "+3c", + "parent": "Clive-df+3", + "recovery": "r45", + "startup": "i29~30", + "target": "L,M,M", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "13", + "id": "Clive-df+4", + "image": "", + "input": "df+4", + "name": "Door Knocker", + "notes": "\n", + "on_block": "-9", + "on_ch": "+5", + "on_hit": "+5", + "parent": "", + "recovery": "r29", + "startup": "i14", + "target": "m", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "10,18", + "id": "Clive-f+1+2", + "image": "", + "input": "f+1+2", + "name": "Prominence", + "notes": "* Heat Engager\n* Heat Dash +5, +45a (+35)\n* Balcony Break\n* Weapon\n* 5 Chip Damage on block\n* 7 Chip Damage on block in heat\n", + "on_block": "-8", + "on_ch": "+20a (+10)", + "on_hit": "+20a (+10)", + "parent": "", + "recovery": "r36", + "startup": ",16~17 i19", + "target": "m,m", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "10", + "id": "Clive-f+2", + "image": "", + "input": "f+2", + "name": "", + "notes": "* Weapon\n", + "on_block": "-12", + "on_ch": "-4", + "on_hit": "-4", + "parent": "", + "recovery": "r34", + "startup": "i15", + "target": "m", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "10,13", + "id": "Clive-f+2,1", + "image": "", + "input": "f+2,1", + "name": "Firewheel", + "notes": "* Balcony Break\n* Combo from 1st hit\n", + "on_block": "+1", + "on_ch": "+20g", + "on_hit": "+20g", + "parent": "Clive-f+2", + "recovery": "r22", + "startup": "i15", + "target": "m,h", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "10,7", + "id": "Clive-f+2,2", + "image": "", + "input": "f+2,2", + "name": "", + "notes": "* Weapon\n* Combo from 1st CH\n* Jail from 1st block\n* Enter PHX -5 +6 r30 with F or 4 on hit or block\n", + "on_block": "-8", + "on_ch": "+3", + "on_hit": "+3", + "parent": "Clive-f+2", + "recovery": "r33", + "startup": "i15", + "target": "m,m", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "10,7,20", + "id": "Clive-f+2,2,2", + "image": "", + "input": "f+2,2,2", + "name": "Burning Chain", + "notes": "* Heat Engager\n* Heat Dash +5, +67a {+50)\n* Balcony Break\n* Spike\n* Weapon\n* Combo from 1st CH\n* Interrupt with i8 from 2nd block\n", + "on_block": "-13", + "on_ch": "+9a", + "on_hit": "+9a", + "parent": "Clive-f+2,2", + "recovery": "r40", + "startup": "i15", + "target": "m,m,M", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "15", + "id": "Clive-f+3", + "image": "", + "input": "f+3", + "name": "Knight's Gambit", + "notes": "* Spike\n* Chip Damage on block\njs9~24\nfs25~27", + "on_block": "-14", + "on_ch": "+37a", + "on_hit": "+37a", + "parent": "", + "recovery": "r38", + "startup": "i20~31", + "target": "M", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "", + "id": "Clive-f+4", + "image": "", + "input": "f+4", + "name": "Phoenix Shift", + "notes": "\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "parent": "", + "recovery": "", + "startup": "", + "target": "", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "21", + "id": "Clive-f,F+2", + "image": "", + "input": "f,F+2", + "name": "Soul Cleave", + "notes": "* Floor Break on air hit\n* Weapon\n* Increases ZAN gauge by 1.2? bars on hit\n* Increases ZAN gauge by 0.4? bars on block\n", + "on_block": "-7", + "on_ch": "+38a", + "on_hit": "+6c", + "parent": "", + "recovery": "r38?", + "startup": "i21~22", + "target": "m", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "20", + "id": "Clive-f,f,F+2", + "image": "", + "input": "f,f,F+2", + "name": "Lunge", + "notes": "* Balcony Break\n* Weapon\n* Transition to +14/+43d(+22d) PHX with F or 4\n* 4 Chip Damage on block\n* 7 Chip Damage on block in heat\n", + "on_block": "+2", + "on_ch": "+31d(+10d)", + "on_hit": "+31d(+10d)", + "parent": "", + "recovery": "r38?", + "startup": "i24~26", + "target": "m", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "18", + "id": "Clive-GAR.1", + "image": "", + "input": "GAR.1", + "name": "Griffin Hunter", + "notes": "* Balcony Break\n* Spike\n* 21 damage with delayed input\n* Jump takes 17f, effective minimum startup i32~34\n* 3 (4) Chip damage on block\n* 6 (7) Chip damage on block in heat\n* -11 on block +3c on hit, 15 damage, 3 chip damage with input ub+1\njs9~32 fs33~35", + "on_block": "-12~-10", + "on_ch": "+17a", + "on_hit": "+17a", + "parent": "", + "recovery": "r26", + "startup": "i15~17", + "target": "m", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "20", + "id": "Clive-GAR.2", + "image": "", + "input": "GAR.2", + "name": "", + "notes": "* Weapon\n* 24 dmg with delayed input\n* Jump takes 17f, effective minimum startup i35~36\n* -15 on block -14 on hit, 12 damage with input ub+1\njs9~58", + "on_block": "-16", + "on_ch": "-14", + "on_hit": "-14", + "parent": "", + "recovery": "r54?", + "startup": "i18~19", + "target": "m", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "20,6,25", + "id": "Clive-GAR.2,2", + "image": "", + "input": "GAR.2,2", + "name": "", + "notes": "* Tornado\n* Weapon\n* Combo from 1st hit\n", + "on_block": "-17", + "on_ch": "+13d (-4d)", + "on_hit": "+13d (-4d)", + "parent": "Clive-GAR.2", + "recovery": "", + "startup": "i18~19", + "target": "m,m,M", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "12 (15)", + "id": "Clive-GAR.3", + "image": "", + "input": "GAR.3", + "name": "", + "notes": "* Balcony Break\n* 15 dmg with perfect input\n* ? dmg ? on hit with input ub3\njs9~", + "on_block": "-3", + "on_ch": "+21a(-4a)", + "on_hit": "+21a(-4a)", + "parent": "", + "recovery": "", + "startup": "i12", + "target": "h", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "10 (13)", + "id": "Clive-GAR.4", + "image": "", + "input": "GAR.4", + "name": "", + "notes": "* Balcony Break\n* 13 dmg with perfect input\n* ? dmg ? on hit with input ub4\njs9~", + "on_block": "-4", + "on_ch": "+2", + "on_hit": "+2", + "parent": "", + "recovery": "", + "startup": "i27", + "target": "h", + "video": "" + }, + { + "alias": [], + "alt": [ + "R1" + ], + "damage": "", + "id": "Clive-H.2+3", + "image": "", + "input": "H.2+3", + "name": "Infernal Flames of Rebirth", + "notes": "* Heat Smash\n* Transition to attack throw on hit\n* Transition to PHX on block?\n* ? Chip Damage on block\njs?\nfs?", + "on_block": "", + "on_ch": "", + "on_hit": "", + "parent": "", + "recovery": "", + "startup": "", + "target": "", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "", + "id": "Clive-Left Throw", + "image": "", + "input": "Left Throw", + "name": "", + "notes": "* Throw break 1\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "parent": "", + "recovery": "", + "startup": "", + "target": "t", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "", + "id": "Clive-OTG.d+1+2", + "image": "", + "input": "OTG.d+1+2", + "name": "", + "notes": "* Weapon\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "parent": "", + "recovery": "", + "startup": "", + "target": "", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "16,15,10", + "id": "Clive-PHX.1", + "image": "", + "input": "PHX.1", + "name": "Heatwave", + "notes": "* Transition to throw on hit\n* -9 on block if after absorbing an attack in power crush state\n* 6 Chip Damage on block after absorbing an attack in power crush state\n* 7 Chip Damage on block while in heat after absorbing an attack in power crush state\n* On hit regain recoverable health\n* Power Crush", + "on_block": "-14", + "on_ch": "+0d", + "on_hit": "+0d", + "parent": "", + "recovery": "r36?", + "startup": "i21", + "target": "m,m,t", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "", + "id": "Clive-PHX.1+2", + "image": "", + "input": "PHX.1+2", + "name": "Scarlet Cyclone", + "notes": "* Heat Engager\n* Heat Dash +? on hit, +5 on block\n* ? Chip Damage on block\n* ? Chip Damage on block in heat\n* On hit regain recoverable health\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "parent": "", + "recovery": "", + "startup": "", + "target": "", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "", + "id": "Clive-R.df+1+2", + "image": "", + "input": "R.df+1+2", + "name": "Hellfire", + "notes": "* Rage Art\n* Removes Recoverable Health\n* Base damage: 55\n* Damage increases with lower health, maximum 80 damage\n* Power Crush", + "on_block": "-15", + "on_ch": "", + "on_hit": "", + "parent": "", + "recovery": "r39?", + "startup": "i20", + "target": "m,t?", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "", + "id": "Clive-Right Throw", + "image": "", + "input": "Right Throw", + "name": "", + "notes": "* Throw break 2\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "parent": "", + "recovery": "", + "startup": "", + "target": "t", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "", + "id": "Clive-SS.2", + "image": "", + "input": "SS.2", + "name": "", + "notes": "\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "parent": "", + "recovery": "", + "startup": "", + "target": "m", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": ", ()", + "id": "Clive-SS.2,1", + "image": "", + "input": "SS.2,1", + "name": "Slash Burst", + "notes": "* Heat Engager\n* Heat Dash +? on hit, +5 on block\n* Perfect frame input to power up\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "parent": "Clive-SS.2", + "recovery": "", + "startup": "", + "target": "m,h?", + "video": "" + }, + { + "alias": [], + "alt": [ + "ub", + "u" + ], + "damage": "", + "id": "Clive-uf", + "image": "", + "input": "uf", + "name": "Updraft", + "notes": "\njs9~43", + "on_block": "", + "on_ch": "", + "on_hit": "", + "parent": "", + "recovery": "r17 GAR", + "startup": "", + "target": "", + "video": "" + }, + { + "alias": [], + "alt": [], + "damage": "", + "id": "Clive-uf+1+2", + "image": "", + "input": "uf+1+2", + "name": "", + "notes": "* Throw break 1+2\n* Can be done from FC\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "parent": "", + "recovery": "", + "startup": "i12", + "target": "t", + "video": "" + } +] diff --git a/src/frame_service/wavu/static/character_list.json b/src/frame_service/wavu/static/character_list.json index 86ef00d..a5c700f 100644 --- a/src/frame_service/wavu/static/character_list.json +++ b/src/frame_service/wavu/static/character_list.json @@ -24,6 +24,11 @@ "portrait": "https://wavu.wiki/t/Special:Redirect/file/ClaudioT8.png", "page": "https://wavu.wiki/t/Claudio" }, + { + "name": "clive", + "portrait": "https://wavu.wiki/t/Special:Redirect/file/CliveT8.png", + "page": "https://wavu.wiki/t/Clive" + }, { "name": "devil_jin", "portrait": "https://wavu.wiki/t/Special:Redirect/file/Devil_JinT8.png", diff --git a/src/framedb/const.py b/src/framedb/const.py index ceb547e..b7a2b55 100644 --- a/src/framedb/const.py +++ b/src/framedb/const.py @@ -1,7 +1,7 @@ import enum from typing import Callable, Dict, List -NUM_CHARACTERS = 35 +NUM_CHARACTERS = 36 class CharacterName(enum.Enum): @@ -10,6 +10,7 @@ class CharacterName(enum.Enum): AZUCENA = "azucena" BRYAN = "bryan" CLAUDIO = "claudio" + Clive = "clive" DEVIL_JIN = "devil_jin" DRAGUNOV = "dragunov" EDDY = "eddy" @@ -54,6 +55,7 @@ def url_encode(self) -> str: CharacterName.AZUCENA: ["azu", "cafe"], CharacterName.BRYAN: ["bry", "byron"], CharacterName.CLAUDIO: ["cld", "cla"], + CharacterName.Clive: ["cli", "clv"], CharacterName.DEVIL_JIN: ["dj", "deviljin", "dvj", "djin"], CharacterName.DRAGUNOV: ["drag", "sergei", "dragu"], CharacterName.EDDY: ["ed", "capo"], diff --git a/src/heihachi/bot.py b/src/heihachi/bot.py index ab84627..4b7c0b3 100644 --- a/src/heihachi/bot.py +++ b/src/heihachi/bot.py @@ -35,9 +35,10 @@ def __init__( self._add_bot_commands() char_names = [char.value for char in CharacterName] - flattened_aliases = [alias for sublist in CHARACTER_ALIAS.values() for alias in sublist] - char_names_and_alias = set(char_names + flattened_aliases) - for char in char_names_and_alias: + # flattened_aliases = [alias for sublist in CHARACTER_ALIAS.values() for alias in sublist] + # char_names_and_alias = set(char_names + flattened_aliases) + + for char in char_names: self.tree.command(name=char, description=f"Frame data from {char}")(self._character_command_factory(char)) logger.debug(f"Bot command tree: {[command.name for command in self.tree.get_commands()]}")