diff --git a/src/json_movelist/claudio.json b/src/json_movelist/claudio.json index e991cc2..c5b318b 100644 --- a/src/json_movelist/claudio.json +++ b/src/json_movelist/claudio.json @@ -196,7 +196,7 @@ "target": "m" }, { - "damage": "14,22", + "damage": "21,22", "gif": "", "id": "Claudio-3,2", "input": "3,2", @@ -207,7 +207,7 @@ "on_hit": "", "recovery": "", "startup": "", - "target": "m,h" + "target": "h,h" }, { "damage": "20", diff --git a/src/json_movelist/reina.json b/src/json_movelist/reina.json new file mode 100644 index 0000000..ff6358d --- /dev/null +++ b/src/json_movelist/reina.json @@ -0,0 +1,1948 @@ +[ + { + "damage": "5", + "gif": "", + "id": "Reina-1", + "input": "1", + "name": "Jab", + "notes": "Alternate input: f+1", + "on_block": "+1", + "on_ch": "", + "on_hit": "+8", + "recovery": "", + "startup": "i10", + "target": "h" + }, + { + "damage": "5,6", + "gif": "", + "id": "Reina-1,1", + "input": "1,1", + "name": "Flash Punch Combo (2)", + "notes": "Combo from 1st hit", + "on_block": "-1", + "on_ch": "", + "on_hit": "+8", + "recovery": "44", + "startup": "", + "target": "h,h" + }, + { + "damage": "5,6,12", + "gif": "", + "id": "Reina-1,1,2", + "input": "1,1,2", + "name": "Flash Punch Combo", + "notes": "\n* Transition to SEN with B\n* Combo from 1st hit\n* Can be delayed 11F\n", + "on_block": "-17", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "", + "target": "h,h,m" + }, + { + "damage": "25", + "gif": "", + "id": "Reina-1+2", + "input": "1+2", + "name": "Demon Breath", + "notes": "", + "on_block": "", + "on_ch": "", + "on_hit": "+24 (+14)", + "recovery": "", + "startup": "i12~13", + "target": "m" + }, + { + "damage": "5,8", + "gif": "", + "id": "Reina-1,2", + "input": "1,2", + "name": "One Two Strike", + "notes": "", + "on_block": "", + "on_ch": "", + "on_hit": "+8", + "recovery": "", + "startup": ",i10", + "target": "h,h" + }, + { + "damage": "5,8,14", + "gif": "", + "id": "Reina-1,2,2", + "input": "1,2,2", + "name": "", + "notes": "\n", + "on_block": "", + "on_ch": "", + "on_hit": "+0", + "recovery": "", + "startup": ",i17", + "target": "h,h,h" + }, + { + "damage": "5,8,10", + "gif": "", + "id": "Reina-1,2,3", + "input": "1,2,3", + "name": "Sting the Works (1)", + "notes": "", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": ",i21", + "target": "h,h,m" + }, + { + "damage": "", + "gif": "", + "id": "Reina-1+2+3+4", + "input": "1+2+3+4", + "name": "Ki Charge", + "notes": "", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "", + "target": "sp" + }, + { + "damage": "5,8,10,21", + "gif": "", + "id": "Reina-1,2,3,4", + "input": "1,2,3,4", + "name": "Sting the Works", + "notes": "", + "on_block": "", + "on_ch": "", + "on_hit": "+21 (+12)", + "recovery": "", + "startup": "i22~23", + "target": "h,h,m,h" + }, + { + "damage": "", + "gif": "", + "id": "Reina-1+4", + "input": "1+4", + "name": "Fukuteki", + "notes": "Transition to WGS with DF", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "", + "target": "sp" + }, + { + "damage": "12", + "gif": "", + "id": "Reina-2", + "input": "2", + "name": "Right Jab", + "notes": "", + "on_block": "", + "on_ch": "", + "on_hit": "+7", + "recovery": "", + "startup": "i12", + "target": "h" + }, + { + "damage": "4,18", + "gif": "", + "id": "Reina-2~1", + "input": "2~1", + "name": "Ondeko", + "notes": "\n", + "on_block": "", + "on_ch": "", + "on_hit": "+31 (+23)", + "recovery": "", + "startup": "i11", + "target": "mm" + }, + { + "damage": "12,6", + "gif": "", + "id": "Reina-2,2", + "input": "2,2", + "name": "Ganzan Basara (1)", + "notes": "\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": ",i14~15", + "target": "h,h" + }, + { + "damage": "12,6,20", + "gif": "", + "id": "Reina-2,2,1", + "input": "2,2,1", + "name": "Ganzan Basara", + "notes": "\n* Balcony break\n", + "on_block": "", + "on_ch": "", + "on_hit": "KND", + "recovery": "", + "startup": ",i22~23", + "target": "h,h,m" + }, + { + "damage": "12,6,21", + "gif": "", + "id": "Reina-2,2,2", + "input": "2,2,2", + "name": "Bishamon Massacre (1)", + "notes": "\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": ",i29", + "target": "h,h,m" + }, + { + "damage": "12,6,21,20", + "gif": "", + "id": "Reina-2,2,2,1", + "input": "2,2,2,1", + "name": "Bishamon Massacre", + "notes": "\n* Tornado\n", + "on_block": "", + "on_ch": "", + "on_hit": "+30 (+20)", + "recovery": "", + "startup": ",i35~37", + "target": "h,h,m,m" + }, + { + "damage": "12,6,21,25", + "gif": "", + "id": "Reina-2,2,2,2", + "input": "2,2,2,2", + "name": "Raging Bishamon", + "notes": "\n* Balcony break\n* Extra damage with input qcf+2\n", + "on_block": "", + "on_ch": "", + "on_hit": "+21 (+0)", + "recovery": "", + "startup": ",i31", + "target": "h,h,m,m" + }, + { + "damage": "12", + "gif": "", + "id": "Reina-2+3", + "input": "2+3", + "name": "Heat Burst", + "notes": "\n* Heat Burst\n* Alternate input: R1\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "i16", + "target": "m" + }, + { + "damage": "", + "gif": "", + "id": "Reina-2+3+4", + "input": "2+3+4", + "name": "Taunt", + "notes": "", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "", + "target": "sp" + }, + { + "damage": "12", + "gif": "", + "id": "Reina-3", + "input": "3", + "name": "", + "notes": "Homing", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "i18~19", + "target": "h" + }, + { + "damage": "12,16", + "gif": "", + "id": "Reina-3,2", + "input": "3,2", + "name": "Senjo Zuki", + "notes": "Tornado", + "on_block": "", + "on_ch": "", + "on_hit": "+8", + "recovery": "", + "startup": "", + "target": "h,h" + }, + { + "damage": "15", + "gif": "", + "id": "Reina-3+4", + "input": "3+4", + "name": "", + "notes": "", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "i18", + "target": "mm" + }, + { + "damage": "12,20", + "gif": "", + "id": "Reina-3,4", + "input": "3,4", + "name": "Senjo-manji", + "notes": "", + "on_block": "", + "on_ch": "", + "on_hit": "+50 (+19)", + "recovery": "", + "startup": ",i20", + "target": "h,m" + }, + { + "damage": "15,20", + "gif": "", + "id": "Reina-3+4,4", + "input": "3+4,4", + "name": "Aerial Manji-geri", + "notes": "", + "on_block": "", + "on_ch": "", + "on_hit": "+50 (+19)", + "recovery": "", + "startup": ",i16", + "target": "mm,m" + }, + { + "damage": "20", + "gif": "", + "id": "Reina-4", + "input": "4", + "name": "Nobility Hunter", + "notes": "Balcony break", + "on_block": "", + "on_ch": "", + "on_hit": "+11g", + "recovery": "", + "startup": "i13~14", + "target": "h" + }, + { + "damage": "14", + "gif": "", + "id": "Reina-b+1", + "input": "b+1", + "name": "Hen-in 4 Hit Combo (1)", + "notes": "", + "on_block": "", + "on_ch": "", + "on_hit": "+6", + "recovery": "", + "startup": "i18", + "target": "h" + }, + { + "damage": "14,15", + "gif": "", + "id": "Reina-b+1,1", + "input": "b+1,1", + "name": "Hen-in 4 Hit Combo (2)", + "notes": "", + "on_block": "", + "on_ch": "", + "on_hit": "-4", + "recovery": "", + "startup": ",i22", + "target": "h,m" + }, + { + "damage": "14,15,13", + "gif": "", + "id": "Reina-b+1,1,3", + "input": "b+1,1,3", + "name": "Hen-in 4 Hit Combo (3)", + "notes": "Transition to SEN with F", + "on_block": "", + "on_ch": "", + "on_hit": "+3", + "recovery": "", + "startup": ",i15~17", + "target": "h,m,m" + }, + { + "damage": "14,15,13,20", + "gif": "", + "id": "Reina-b+1,1,3,3", + "input": "b+1,1,3,3", + "name": "Hen-in 4 Hit Combo", + "notes": "", + "on_block": "", + "on_ch": "", + "on_hit": "+48 (+17)", + "recovery": "", + "startup": ",i32", + "target": "h,m,m,m" + }, + { + "damage": "", + "gif": "", + "id": "Reina-b+1+3", + "input": "b+1+3", + "name": "Tatenashi", + "notes": "\n* Alternate input: b+2+4\n* Converts incoming damage to recoverable health\n* Partially restores Heat on successful parry\n* Transition to HRA on successful parry\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "", + "target": "" + }, + { + "damage": "50", + "gif": "", + "id": "Reina-b+1+4", + "input": "b+1+4", + "name": "Clairvoyant Fatal Violet", + "notes": "Balcony break", + "on_block": "+20 (-1)", + "on_ch": "", + "on_hit": "+20 (-1)", + "recovery": "", + "startup": "i64", + "target": "ub(m)" + }, + { + "damage": "14", + "gif": "", + "id": "Reina-b+2", + "input": "b+2", + "name": "Sin Smiter", + "notes": "Homing", + "on_block": "", + "on_ch": "", + "on_hit": "+3", + "recovery": "", + "startup": "i16~17", + "target": "m" + }, + { + "damage": "", + "gif": "", + "id": "Reina-b+3", + "input": "b+3", + "name": "Unsoku Gen", + "notes": "", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "", + "target": "sp" + }, + { + "damage": "20", + "gif": "", + "id": "Reina-b+4", + "input": "b+4", + "name": "Ebi-geri", + "notes": "\n* Tornado\n", + "on_block": "", + "on_ch": "", + "on_hit": "35", + "recovery": "", + "startup": "i18", + "target": "h" + }, + { + "damage": "20", + "gif": "", + "id": "Reina-BT.4", + "input": "BT.4", + "name": "Rear Manji-geri", + "notes": "", + "on_block": "", + "on_ch": "", + "on_hit": "+54", + "recovery": "", + "startup": "i17", + "target": "m" + }, + { + "damage": "6,35", + "gif": "", + "id": "Reina-CH.df+3+4", + "input": "CH.df+3+4", + "name": "Nen Dougarami", + "notes": "Alternate input: CH.d+3+4", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "i16", + "target": "m,th" + }, + { + "damage": "5", + "gif": "", + "id": "Reina-d+1", + "input": "d+1", + "name": "Crouch Jab", + "notes": "\n* Returns to standing when input F\n", + "on_block": "-5", + "on_ch": "", + "on_hit": "+6", + "recovery": "FC", + "startup": "i10", + "target": "sm" + }, + { + "damage": "", + "gif": "", + "id": "Reina-d+1+2", + "input": "d+1+2", + "name": "Heaven's Wrath", + "notes": "\n* Alternate input: db+1+2\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "", + "target": "sp" + }, + { + "damage": "", + "gif": "", + "id": "Reina-d+1+2", + "input": "d+1+2", + "name": "Heaven's Wrath", + "notes": "\n* Transition to SEN with f+3\n* Transition to WGS with DF\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "", + "target": "sp" + }, + { + "damage": "17", + "gif": "", + "id": "Reina-d+2", + "input": "d+2", + "name": "Tecchuu-ate", + "notes": "", + "on_block": "", + "on_ch": "", + "on_hit": "+3c", + "recovery": "", + "startup": "i15", + "target": "m" + }, + { + "damage": "", + "gif": "", + "id": "Reina-d+3", + "input": "d+3", + "name": "Unsoku", + "notes": "\n* Partially drains heat meter when in heat\n* Can transition to SEN with f+3\n* Can transition to WGS with DF\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "", + "target": "sp" + }, + { + "damage": "", + "gif": "", + "id": "Reina-d+3", + "input": "d+3", + "name": "Unsoku Kou", + "notes": "\n* Alternate input: db+3\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "", + "target": "sp" + }, + { + "damage": "7", + "gif": "", + "id": "Reina-d+4", + "input": "d+4", + "name": "Crouch Chin Kick", + "notes": "", + "on_block": "-13", + "on_ch": "", + "on_hit": "-2", + "recovery": "FC", + "startup": "i12", + "target": "l" + }, + { + "damage": "10,12", + "gif": "", + "id": "Reina-db+2", + "input": "db+2", + "name": "Eisaimon", + "notes": "", + "on_block": "", + "on_ch": "", + "on_hit": "-3", + "recovery": "", + "startup": "i20~21,i9~10", + "target": "l,l" + }, + { + "damage": "7", + "gif": "", + "id": "Reina-db+4", + "input": "db+4", + "name": "Un Oshi-kuzushi (1)", + "notes": "", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "i16", + "target": "l" + }, + { + "damage": "7,20", + "gif": "", + "id": "Reina-db+4,1+2", + "input": "db+4,1+2", + "name": "Un Oshi-kuzushi", + "notes": "Balcony break", + "on_block": "", + "on_ch": "", + "on_hit": "+39 (+19)", + "recovery": "", + "startup": ",i15", + "target": "l,m" + }, + { + "damage": "8", + "gif": "", + "id": "Reina-df+1", + "input": "df+1", + "name": "Muso Tensho (1)", + "notes": "\n* Transition to SEN with F\n", + "on_block": "", + "on_ch": "", + "on_hit": "+4", + "recovery": "", + "startup": "i13~14", + "target": "m" + }, + { + "damage": "8,10", + "gif": "", + "id": "Reina-df+1,1", + "input": "df+1,1", + "name": "Muso Tensho", + "notes": "\n", + "on_block": "", + "on_ch": "", + "on_hit": "+7", + "recovery": "", + "startup": ",i20", + "target": "m,h" + }, + { + "damage": "8,20", + "gif": "", + "id": "Reina-df+1,2", + "input": "df+1,2", + "name": "Muso Basara", + "notes": "\n* Heat Engager\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": ",i22~23", + "target": "m,m" + }, + { + "damage": "13", + "gif": "", + "id": "Reina-df+2", + "input": "df+2", + "name": "Queen Bee Stinger", + "notes": "\n", + "on_block": "", + "on_ch": "", + "on_hit": "+30 (+20)", + "recovery": "", + "startup": "i15~16", + "target": "m" + }, + { + "damage": "", + "gif": "", + "id": "Reina-df+3", + "input": "df+3", + "name": "Wind God Step", + "notes": "\n* Alternate input: f,n,d,df\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "", + "target": "sp" + }, + { + "damage": "5,10", + "gif": "", + "id": "Reina-df+3+4", + "input": "df+3+4", + "name": "Kasho Maki-manji (1)", + "notes": "Alternate input: d+3+4", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "i16,i5~9", + "target": "mh" + }, + { + "damage": "5,10,14", + "gif": "", + "id": "Reina-df+3+4,1", + "input": "df+3+4,1", + "name": "Kyogeki Goutsuiken (1)", + "notes": "\n* Chip damage when guarded\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "", + "target": "mh,m" + }, + { + "damage": "5,10,14,25", + "gif": "", + "id": "Reina-df+3+4,1,2", + "input": "df+3+4,1,2", + "name": "Kyogeki Goutsuiken", + "notes": "\n* Chip damage when guarded\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "", + "target": "mh,m,sm" + }, + { + "damage": "5,10,20", + "gif": "", + "id": "Reina-df+3+4,4", + "input": "df+3+4,4", + "name": "Kasho Maki-manji", + "notes": "", + "on_block": "", + "on_ch": "", + "on_hit": "+50 (+19)", + "recovery": "", + "startup": ",i20", + "target": "mh,m" + }, + { + "damage": "14", + "gif": "", + "id": "Reina-df+4", + "input": "df+4", + "name": "Gekirosatsu (1)", + "notes": "\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "i15", + "target": "m" + }, + { + "damage": "14,10", + "gif": "", + "id": "Reina-df+4,2", + "input": "df+4,2", + "name": "Gekirosatsu (2)", + "notes": "\n* Transition to HRA with D\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": ",i18", + "target": "m,m" + }, + { + "damage": "14,10,20", + "gif": "", + "id": "Reina-df+4,2,3", + "input": "df+4,2,3", + "name": "Gekirosatsu", + "notes": "\n* Tornado\n", + "on_block": "", + "on_ch": "", + "on_hit": "+35", + "recovery": "", + "startup": ",i27", + "target": "m,m,h" + }, + { + "damage": "22", + "gif": "", + "id": "Reina-f+1+2", + "input": "f+1+2", + "name": "Senshin-zuki", + "notes": "\n* Transition to UNS with 1+2\n", + "on_block": "", + "on_ch": "", + "on_hit": "+7", + "recovery": "", + "startup": "i32", + "target": "m" + }, + { + "damage": "22,26", + "gif": "", + "id": "Reina-f+1+2,3", + "input": "f+1+2,3", + "name": "Senshin Karami-ate", + "notes": "\n", + "on_block": "", + "on_ch": "", + "on_hit": "-4c", + "recovery": "", + "startup": "i22", + "target": "m,l" + }, + { + "damage": "22,33,18", + "gif": "", + "id": "Reina-f+1+2,CH.3", + "input": "f+1+2,CH.3", + "name": "Nen Ashigarami", + "notes": "\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": ",i22", + "target": "m,l" + }, + { + "damage": "22", + "gif": "", + "id": "Reina-f+1+2,uf", + "input": "f+1+2,uf", + "name": "Senshin Hiei", + "notes": "\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "", + "target": "m,sp" + }, + { + "damage": "22,22", + "gif": "", + "id": "Reina-f+1+2,uf+3", + "input": "f+1+2,uf,uf+3", + "name": "Senshin Chuten-geri", + "notes": "\n* Balcony break\n", + "on_block": "", + "on_ch": "", + "on_hit": "+32 (+24)", + "recovery": "", + "startup": "i30~33", + "target": "m,sp,m" + }, + { + "damage": "22,28", + "gif": "", + "id": "Reina-f+1+2,uf+4", + "input": "f+1+2,uf+4", + "name": "Senshin Tobi Kaijo-geri", + "notes": "\n* Homing\n* Balcony break\n* Transition to HRA with D\n", + "on_block": "", + "on_ch": "", + "on_hit": "+31 (+5)", + "recovery": "", + "startup": ",i32~33", + "target": "m,h" + }, + { + "damage": "8", + "gif": "", + "id": "Reina-f+2", + "input": "f+2", + "name": "Sousoku Rengeki (1)", + "notes": "", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "i13", + "target": "h" + }, + { + "damage": "8,16", + "gif": "", + "id": "Reina-f+2,3", + "input": "f+2,3", + "name": "Sousoku Rengeki", + "notes": "\n* Transition to SEN with F\n* Transition to UNS with u or d\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "i18~19", + "target": "h,m" + }, + { + "damage": "", + "gif": "", + "id": "Reina-f+3", + "input": "f+3", + "name": "Sentai", + "notes": "", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "r?? SEN", + "startup": "", + "target": "sp" + }, + { + "damage": "", + "gif": "", + "id": "Reina-f+3", + "input": "f+3", + "name": "Sentai", + "notes": "\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "", + "target": "sp" + }, + { + "damage": "25", + "gif": "", + "id": "Reina-f+3+4", + "input": "f+3+4", + "name": "Ouhen Manji-geri", + "notes": "\n* Alternate input: UNS.3+4\n* can be cancelled into crouch with D\n", + "on_block": "", + "on_ch": "", + "on_hit": "+50 (+19)", + "recovery": "", + "startup": "i43", + "target": "m" + }, + { + "damage": "30", + "gif": "", + "id": "Reina-f+3+4*", + "input": "f+3+4*", + "name": "Ouhen Fubi Manji-geri", + "notes": "\n* can be cancelled into crouch with D\n", + "on_block": "", + "on_ch": "", + "on_hit": "+50", + "recovery": "", + "startup": "i67", + "target": "m" + }, + { + "damage": "20", + "gif": "", + "id": "Reina-f+4", + "input": "f+4", + "name": "Kamadhatu Splits Kick", + "notes": "", + "on_block": "", + "on_ch": "", + "on_hit": "+5c", + "recovery": "", + "startup": "i19~20", + "target": "m" + }, + { + "damage": "25", + "gif": "", + "id": "Reina-FC.df+3", + "input": "FC.df+3", + "name": "Nen Hangetsu-ate", + "notes": "\n* Balcony break\n", + "on_block": "", + "on_ch": "", + "on_hit": "+54", + "recovery": "", + "startup": "i20", + "target": "m" + }, + { + "damage": "20", + "gif": "", + "id": "Reina-FC.df+4", + "input": "FC.df+4", + "name": "Manji-geri", + "notes": "\n* Balcony break\n", + "on_block": "", + "on_ch": "", + "on_hit": "+54", + "recovery": "", + "startup": "i15", + "target": "m" + }, + { + "damage": "14", + "gif": "", + "id": "Reina-f,F+2", + "input": "f,F+2", + "name": "Raiden", + "notes": "\n* Transition to SEN with F\n", + "on_block": "", + "on_ch": "", + "on_hit": "+1", + "recovery": "", + "startup": "i12", + "target": "m" + }, + { + "damage": "20", + "gif": "", + "id": "Reina-f,F+3", + "input": "f,F+3", + "name": "Trailokya Splits Kick", + "notes": "\n* Balcony break\n* Heat Engager\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "i20~22", + "target": "m" + }, + { + "damage": "22", + "gif": "", + "id": "Reina-f,F+3+4", + "input": "f,F+3+4", + "name": "Un Hien-geri", + "notes": "\n* Balcony break\n", + "on_block": "", + "on_ch": "", + "on_hit": "+49 (-9)", + "recovery": "", + "startup": "i16~19", + "target": "h" + }, + { + "damage": "22", + "gif": "", + "id": "Reina-f,f,F+3", + "input": "f,f,F+3", + "name": "Ten Chuten-geri", + "notes": "\n* Balcony break\n* Chip damage when guarded\n", + "on_block": "", + "on_ch": "", + "on_hit": "+32 (+24)", + "recovery": "", + "startup": "i24~27", + "target": "m" + }, + { + "damage": "28", + "gif": "", + "id": "Reina-f,f,F+4", + "input": "f,f,F+4", + "name": "Un Tobi Kaijo-geri", + "notes": "\n* Balcony break\n* Homing\n* Transition to HRA with D\n", + "on_block": "", + "on_ch": "", + "on_hit": "+31 (+5)", + "recovery": "", + "startup": "i26~27", + "target": "h" + }, + { + "damage": "", + "gif": "", + "id": "Reina-f,n", + "input": "f,n", + "name": "Wind Step", + "notes": "\n* Transition to WGS with DF\n* Transition to WGS on successful parry with +10\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "", + "target": "sp" + }, + { + "damage": "23", + "gif": "", + "id": "Reina-f,n,d,df:2", + "input": "f,n,d,df:2", + "name": "Electric Wind God Fist", + "notes": "\n* Chip damage when guarded\n", + "on_block": "+5", + "on_ch": "", + "on_hit": "+25 (+25)", + "recovery": "", + "startup": "i11", + "target": "h" + }, + { + "damage": "27", + "gif": "", + "id": "Reina-f,n,d,df:3", + "input": "f,n,d,df:3", + "name": "Electric War God Kick", + "notes": "\n* Balcony break\n* Chip damage when guarded\n", + "on_block": "", + "on_ch": "", + "on_hit": "+13 (-4)", + "recovery": "", + "startup": "i15~17", + "target": "m" + }, + { + "damage": "50", + "gif": "", + "id": "Reina-H.2+3", + "input": "H.2+3", + "name": "Divine Dominance of Annihilation", + "notes": "\n* Heat Smash\n* Alternate input: H.R1\n", + "on_block": "", + "on_ch": "Th", + "on_hit": "Th", + "recovery": "", + "startup": "i21", + "target": "m" + }, + { + "damage": "8,20", + "gif": "", + "id": "Reina-H.df+1,2,F", + "input": "H.df+1,2,F", + "name": "Muso Basara > Heat Dash", + "notes": "\n", + "on_block": "", + "on_ch": "", + "on_hit": "+17", + "recovery": "", + "startup": "i13", + "target": "m,m" + }, + { + "damage": "20", + "gif": "", + "id": "Reina-H.f,F+3,F", + "input": "H.f,F+3,F", + "name": "Trailokya Splits Kick > Heat Dash", + "notes": "\n", + "on_block": "", + "on_ch": "", + "on_hit": "+17", + "recovery": "", + "startup": "i20~22", + "target": "m" + }, + { + "damage": "40", + "gif": "", + "id": "Reina-H.HRA.2+3", + "input": "H.HRA.2+3", + "name": "Divine Wrath of Annihilation", + "notes": "\n* Heat Smash\n* Alternate input: H.HRA.R1\n", + "on_block": "", + "on_ch": "Th", + "on_hit": "Th", + "recovery": "", + "startup": "i18~19", + "target": "l" + }, + { + "damage": "30", + "gif": "", + "id": "Reina-H.HRA.2,F", + "input": "H.HRA.2,F", + "name": "Iron Hand > Heat Dash", + "notes": "\n", + "on_block": "", + "on_ch": "", + "on_hit": "+17", + "recovery": "", + "startup": "i15~16", + "target": "m" + }, + { + "damage": "12", + "gif": "", + "id": "Reina-HRA.1", + "input": "HRA.1", + "name": "Funkei Goma (1)", + "notes": "\n* Homing\n* Deals chip damage on block\n* Transition to SEN with F\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "i12", + "target": "h" + }, + { + "damage": "30", + "gif": "", + "id": "Reina-HRA.1+2", + "input": "HRA.1+2", + "name": "Demon Bolt", + "notes": "\n* Balcony break\n", + "on_block": "", + "on_ch": "", + "on_hit": "+16", + "recovery": "", + "startup": "i15~16", + "target": "m" + }, + { + "damage": "1222", + "gif": "", + "id": "Reina-HRA.1,4", + "input": "HRA.1,4", + "name": "Funkei Goma", + "notes": "\n* Balcony break\n", + "on_block": "", + "on_ch": "", + "on_hit": "+9", + "recovery": "", + "startup": "i25~26", + "target": "hm" + }, + { + "damage": "30", + "gif": "", + "id": "Reina-HRA.2", + "input": "HRA.2", + "name": "Iron Hand", + "notes": "\n* Balcony break\n* Heat Engager\n* Deals chip damage on block\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "i15~16", + "target": "m" + }, + { + "damage": "17", + "gif": "", + "id": "Reina-HRA.3", + "input": "HRA.3", + "name": "Hell Axle (1)", + "notes": "\n* Balcony break\n* Deals chip damage on block\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "i28", + "target": "m" + }, + { + "damage": "26", + "gif": "", + "id": "Reina-HRA.3+4", + "input": "HRA.3+4", + "name": "Goma Sai", + "notes": "\n* Deals chip damage on block\n", + "on_block": "", + "on_ch": "", + "on_hit": "+5", + "recovery": "", + "startup": "i18~19", + "target": "m" + }, + { + "damage": "17,14", + "gif": "", + "id": "Reina-HRA.3,4", + "input": "HRA.3,4", + "name": "Hell Axle", + "notes": "\n* Balcony break\n* Deals chip damage on block\n* Can transition to HRA with D\n", + "on_block": "", + "on_ch": "", + "on_hit": "+17 (+16)", + "recovery": "", + "startup": ",i18~19", + "target": "m,m" + }, + { + "damage": "6,8", + "gif": "", + "id": "Reina-HRA.4", + "input": "HRA.4", + "name": "Kongo Gekimetsujin (1)", + "notes": "\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "i17~18,i13", + "target": "m,m" + }, + { + "damage": "6,8,8", + "gif": "", + "id": "Reina-HRA.4,2", + "input": "HRA.4,2", + "name": "Kongo Gekimetsujin (2)", + "notes": "\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": ",i15", + "target": "m,m,m" + }, + { + "damage": "6,8,8,4", + "gif": "", + "id": "Reina-HRA.4,2,2", + "input": "HRA.4,2,2", + "name": "Kongo Gekimetsujin (3)", + "notes": "\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": ",i15", + "target": "m,m,m,h" + }, + { + "damage": "6,8,8,4,22", + "gif": "", + "id": "Reina-HRA.4,2,2,1+2", + "input": "HRA.4,2,2,1+2", + "name": "Kongo Gekimetsujin", + "notes": "\n* Balcony break\n* Alternate input: qcf+1+2 (extra damage)\n", + "on_block": "", + "on_ch": "", + "on_hit": "+24 (+3)", + "recovery": "", + "startup": ",i24~25", + "target": "m,m,m,h,m" + }, + { + "damage": "9", + "gif": "", + "id": "Reina-HRA.d+4", + "input": "HRA.d+4", + "name": "Harai Kuzushi-manji (1)", + "notes": "\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "i16~17", + "target": "l" + }, + { + "damage": "9,20", + "gif": "", + "id": "Reina-HRA.d+4,3", + "input": "HRA.d+4,3", + "name": "Harai Kuzushi-manji", + "notes": "\n", + "on_block": "", + "on_ch": "", + "on_hit": "+48 (+17)", + "recovery": "", + "startup": ",i21~22", + "target": "l,m" + }, + { + "damage": "22", + "gif": "", + "id": "Reina-H.SEN.3,F", + "input": "H.SEN.3,F", + "name": "Sen Kaijo-geri > Heat Dash", + "notes": "\n* Homing\n* Deals chip damage on block\n", + "on_block": "", + "on_ch": "", + "on_hit": "+17", + "recovery": "", + "startup": "i12~13", + "target": "h" + }, + { + "damage": "30", + "gif": "", + "id": "Reina-H.UNS.4,F", + "input": "H.UNS.4,F", + "name": "Unpu Tobi-Manji > Heat Dash", + "notes": "\n", + "on_block": "", + "on_ch": "", + "on_hit": "+17", + "recovery": "", + "startup": "i18~19", + "target": "m" + }, + { + "damage": "11", + "gif": "", + "id": "Reina-OTG.d+4", + "input": "OTG.d+4", + "name": "Totetsu Jyurin (1)", + "notes": "", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "i19", + "target": "l" + }, + { + "damage": "11,16", + "gif": "", + "id": "Reina-OTG.d+4,1", + "input": "OTG.d+4,1", + "name": "Totetsu Jyurin", + "notes": "Just Input", + "on_block": "", + "on_ch": "", + "on_hit": "-15 (-23)", + "recovery": "", + "startup": ",i20~21", + "target": "l,l" + }, + { + "damage": "55", + "gif": "", + "id": "Reina-R.df+1+2", + "input": "R.df+1+2", + "name": "Sacred Dismantle Spark", + "notes": "\n* Erases opponent's recoverable health on hit\n* Alternate input: R2\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "i20", + "target": "m" + }, + { + "damage": "12", + "gif": "", + "id": "Reina-SEN.1", + "input": "SEN.1", + "name": "Furin Kazan (1)", + "notes": "\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "i16", + "target": "m" + }, + { + "damage": "13,17", + "gif": "", + "id": "Reina-SEN.1+2", + "input": "SEN.1+2", + "name": "Inverse Deva Laser", + "notes": "\n* Tornado\n* Balcony break\n* Transition to HRA on hit\n", + "on_block": "", + "on_ch": "", + "on_hit": "+32 (+18)", + "recovery": "", + "startup": "i14~15,i12~13", + "target": "m,m" + }, + { + "damage": "12,25", + "gif": "", + "id": "Reina-SEN.1,2", + "input": "SEN.1,2", + "name": "Furin Kazan", + "notes": "\n* Balcony break\n* Alternate input: qcf+2 (extra damage)\n", + "on_block": "", + "on_ch": "", + "on_hit": "+21 (+0)", + "recovery": "", + "startup": ",i26", + "target": "m,m" + }, + { + "damage": "20", + "gif": "", + "id": "Reina-SEN.2", + "input": "SEN.2", + "name": "Rashomon", + "notes": "\n* Tornado\n", + "on_block": "", + "on_ch": "", + "on_hit": "+8", + "recovery": "", + "startup": "i13", + "target": "m" + }, + { + "damage": "22", + "gif": "", + "id": "Reina-SEN.3", + "input": "SEN.3", + "name": "Sen Kaijo-geri", + "notes": "\n* Homing\n* Heat Engager\n* Deals chip damage on block\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "i12~13", + "target": "h" + }, + { + "damage": "10,12", + "gif": "", + "id": "Reina-SEN.3+4", + "input": "SEN.3+4", + "name": "Yaksha Sweep", + "notes": "\n* Homing\n", + "on_block": "", + "on_ch": "", + "on_hit": "+4", + "recovery": "", + "startup": "i20~21,i35~36", + "target": "l,h" + }, + { + "damage": "24", + "gif": "", + "id": "Reina-SEN.4", + "input": "SEN.4", + "name": "Kandachi-geri", + "notes": "\n* Deals chip damage on block\n", + "on_block": "", + "on_ch": "", + "on_hit": "+12", + "recovery": "", + "startup": "i26~27", + "target": "m" + }, + { + "damage": "17", + "gif": "", + "id": "Reina-SS.4", + "input": "SS.4", + "name": "Jirin Sweep", + "notes": "", + "on_block": "", + "on_ch": "", + "on_hit": "+0", + "recovery": "", + "startup": "i18~19", + "target": "l" + }, + { + "damage": "", + "gif": "", + "id": "Reina-u+1+2", + "input": "u+1+2", + "name": "Swift Shadow", + "notes": "\n* Alternate input: UNS.u+1+2\n* Transition to Wind God Step with DF\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "", + "target": "sp" + }, + { + "damage": "", + "gif": "", + "id": "Reina-u+3", + "input": "u+3", + "name": "Unsoku Kou", + "notes": "Alternate input: ub+3", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "", + "target": "sp" + }, + { + "damage": "", + "gif": "", + "id": "Reina-ub+1+2", + "input": "ub+1+2", + "name": "Fading Shadow", + "notes": "\n* Alternate input: ub,b or UNS.ub+1+2\n* Transition to Wind God Step with DF\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "", + "target": "sp" + }, + { + "damage": "15", + "gif": "", + "id": "Reina-uf+1", + "input": "uf+1", + "name": "Seigan Ugachi", + "notes": "\n* Alternate input: ub+1 or u+1\n* Transition to HRA on hit\n", + "on_block": "", + "on_ch": "", + "on_hit": "+8", + "recovery": "", + "startup": "i13", + "target": "h" + }, + { + "damage": "10", + "gif": "", + "id": "Reina-uf+3", + "input": "uf+3", + "name": "Tobisenzuki (1)", + "notes": "\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "i21~22", + "target": "h" + }, + { + "damage": "10,15", + "gif": "", + "id": "Reina-uf+3,1", + "input": "uf+3,1", + "name": "Tobisenzuki", + "notes": "\n", + "on_block": "", + "on_ch": "", + "on_hit": "+5", + "recovery": "", + "startup": ",i16", + "target": "h,m" + }, + { + "damage": "10,10", + "gif": "", + "id": "Reina-uf+3+4", + "input": "uf+3+4", + "name": "Un Hiensatsu (1)", + "notes": "\n* Alternate input: ub+3+4 or u+3+4\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "i20,i4", + "target": "mm" + }, + { + "damage": "10,10,20", + "gif": "", + "id": "Reina-uf+3+4,1+2", + "input": "uf+3+4,1+2", + "name": "Un Hiensatsu", + "notes": "\n", + "on_block": "", + "on_ch": "", + "on_hit": "-4", + "recovery": "", + "startup": ",i17", + "target": "mm,m" + }, + { + "damage": "15", + "gif": "", + "id": "Reina-uf+4", + "input": "uf+4", + "name": "Silver Gleam", + "notes": "\n* Tornado\n* Alternate input: ub+4 or u+4\n", + "on_block": "", + "on_ch": "", + "on_hit": "+70 (+54)", + "recovery": "", + "startup": "i17~18", + "target": "m" + }, + { + "damage": "30", + "gif": "", + "id": "Reina-UNS.4", + "input": "UNS.4", + "name": "Unpu Tobi-Manji", + "notes": "\n* Balcony break\n* Heat Engager\n* Deals chip damage on block\n* Can be cancelled into crouch with D\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "i18~19", + "target": "m" + }, + { + "damage": "17", + "gif": "", + "id": "Reina-WDS.3", + "input": "WDS.3", + "name": "Fusenkyaku", + "notes": "\n", + "on_block": "", + "on_ch": "", + "on_hit": "+4", + "recovery": "", + "startup": "i16~17", + "target": "m" + }, + { + "damage": "20", + "gif": "", + "id": "Reina-WGS.1", + "input": "WGS.1", + "name": "Thunder God Fist", + "notes": "", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "i19~21", + "target": "m" + }, + { + "damage": "20,10", + "gif": "", + "id": "Reina-WGS.1,3", + "input": "WGS.1,3", + "name": "Lightning Splits Kick", + "notes": "Spike", + "on_block": "", + "on_ch": "", + "on_hit": "+18 (-17)", + "recovery": "", + "startup": "i26~30", + "target": "m,m" + }, + { + "damage": "20,12", + "gif": "", + "id": "Reina-WGS.1,4", + "input": "WGS.1,4", + "name": "Lightning Wheel", + "notes": "Balcony break", + "on_block": "", + "on_ch": "", + "on_hit": "+1 (+0)", + "recovery": "", + "startup": "i23~27", + "target": "m,h" + }, + { + "damage": "15", + "gif": "", + "id": "Reina-WGS.2", + "input": "WGS.2", + "name": "Wind God Fist", + "notes": "Becomes Electric Wind God Fist during Heat (partially uses remaining Heat Time)", + "on_block": "", + "on_ch": "", + "on_hit": "+35 (+25)", + "recovery": "", + "startup": "i11~12", + "target": "h" + }, + { + "damage": "17", + "gif": "", + "id": "Reina-WGS.DF+3", + "input": "WGS.df+3", + "name": "War God Kick", + "notes": "\n* Alternate input: f,n,d,DF+3\n* Becomes Electric War God Kick during Heat (partially uses remaining Heat Time)\n", + "on_block": "", + "on_ch": "", + "on_hit": "+3", + "recovery": "", + "startup": "i15~17", + "target": "m" + }, + { + "damage": "6", + "gif": "", + "id": "Reina-WGS.DF+4", + "input": "WGS.DF+4", + "name": "Ruthless Demon (1)", + "notes": "\n* Alternate input: f,n,d,DF+4\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "i16", + "target": "l" + }, + { + "damage": "6,20", + "gif": "", + "id": "Reina-WGS.DF+4,2", + "input": "WGS.DF+4,2", + "name": "Ruthless Demon", + "notes": "\n* Transition to HRA with D\n", + "on_block": "", + "on_ch": "", + "on_hit": "-1", + "recovery": "", + "startup": ",i24", + "target": "l,h" + }, + { + "damage": "6,16", + "gif": "", + "id": "Reina-WGS.DF+4,4", + "input": "WGS.DF+4,4", + "name": "Spinning Demon", + "notes": "\n", + "on_block": "", + "on_ch": "", + "on_hit": "+2", + "recovery": "", + "startup": ",i17~18", + "target": "l,l" + }, + { + "damage": "", + "gif": "", + "id": "Reina-WGS.f+3", + "input": "WGS.f+3", + "name": "Sentai", + "notes": "\n", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "", + "target": ",sp" + }, + { + "damage": "12", + "gif": "", + "id": "Reina-ws1", + "input": "ws1", + "name": "Jewel Snatcher", + "notes": "Transition to SEN on hit", + "on_block": "", + "on_ch": "", + "on_hit": "+13", + "recovery": "", + "startup": "i13", + "target": "m" + }, + { + "damage": "20", + "gif": "", + "id": "Reina-ws2", + "input": "ws2", + "name": "Benten Thrust", + "notes": "Balcony break", + "on_block": "", + "on_ch": "", + "on_hit": "+9", + "recovery": "", + "startup": "i18", + "target": "m" + }, + { + "damage": "14", + "gif": "", + "id": "Reina-ws3", + "input": "ws3", + "name": "Twin Stingers (1)", + "notes": "\n", + "on_block": "", + "on_ch": "", + "on_hit": "+1", + "recovery": "", + "startup": "i15~16", + "target": "m" + }, + { + "damage": "14", + "gif": "", + "id": "Reina-ws3+4", + "input": "ws3+4", + "name": "Hen Gyakujo-geri", + "notes": "", + "on_block": "", + "on_ch": "", + "on_hit": "+14", + "recovery": "", + "startup": "i14~15", + "target": "m" + }, + { + "damage": "14,21", + "gif": "", + "id": "Reina-ws3,4", + "input": "ws3,4", + "name": "Twin Stingers", + "notes": "\n* Balcony break\n", + "on_block": "", + "on_ch": "", + "on_hit": "+21 (+12)", + "recovery": "", + "startup": ",i22~23", + "target": "m,h" + }, + { + "damage": "10", + "gif": "", + "id": "Reina-ws4", + "input": "ws4", + "name": "Seven Seas Splits Kick (1)", + "notes": "", + "on_block": "", + "on_ch": "", + "on_hit": "", + "recovery": "", + "startup": "i11~12", + "target": "m" + }, + { + "damage": "10,15", + "gif": "", + "id": "Reina-ws4,4", + "input": "ws4,4", + "name": "Seven Seas Splits Kick", + "notes": "\n* Transition to HRA with D\n", + "on_block": "", + "on_ch": "", + "on_hit": "-1c", + "recovery": "", + "startup": ",i17~18", + "target": "m,m" + } +] \ No newline at end of file diff --git a/src/main.py b/src/main.py index 3c48367..473fffc 100644 --- a/src/main.py +++ b/src/main.py @@ -1,12 +1,10 @@ import datetime, logging, os, discord, sched, time, sys +import threading from src.module import configurator from src.module import json_movelist_reader from src.module import embed from src.module import util -from src.module import button - -from threading import Thread sys.path.insert(0, (os.path.dirname(os.path.dirname(__file__)))) @@ -108,12 +106,11 @@ async def self(interaction: discord.Interaction, message: str): try: character_list = util.create_json_movelists(CHARACTER_LIST_PATH) - print("Character jsons are successfully created") scheduler = sched.scheduler(time.time, time.sleep) # Repeat importing move list of all character from wavu.wiki once an hour - scheduler.enter(3600, 1, util.schedule_create_json_movelists, (CHARACTER_LIST_PATH, scheduler,)) - Thread(target=scheduler.run).start() + scheduler_thread = threading.Thread(target=util.periodic_function, args=(scheduler, 3600, util.create_json_movelists, CHARACTER_LIST_PATH)) + scheduler_thread.start() hei.run(discord_token) diff --git a/src/module/util.py b/src/module/util.py index 9d32cb5..54cf2d4 100644 --- a/src/module/util.py +++ b/src/module/util.py @@ -53,16 +53,14 @@ def create_json_movelists(character_list_path: str) -> List[character.Character] cha = wavu_importer.import_character(character_meta) cha.export_movelist_as_json() cha_list.append(cha) - + print("Character jsons are successfully created") return cha_list -def schedule_create_json_movelists(character_list_path: str, scheduler): - try: - create_json_movelists(character_list_path) - scheduler.enter(3600, 1, create_json_movelists, (character_list_path, scheduler,)) +def periodic_function(scheduler, interval, function, character_list_path: str): + while True: + scheduler.enter(interval, 1, function, (character_list_path,)) + scheduler.run() - except Exception as e: - raise Exception("Error when importing character from wavu" + str(e)) diff --git a/src/resources/const.py b/src/resources/const.py index dab8cdd..80ddd95 100644 --- a/src/resources/const.py +++ b/src/resources/const.py @@ -15,23 +15,25 @@ 'jin': ['jim'], 'kazuya': ['kaz', 'kazze', 'masku'], 'king': ['kin'], - 'kuma': ['panda', 'karhu', 'bear'], + 'kuma': ['karhu'], 'lars': ['lar'], 'law': ['marshall'], 'lee': ['violet'], 'leo': [], 'lili': ['lil'], - 'raven': ['masterraven', 'mraven', 'maven', 'mrv', 'raven', 'mr'], + 'raven': ['masterraven', 'mraven', 'maven', 'mrv', 'raven', 'rav'], 'reina': ['rei'], 'nina': ['nin'], + 'panda': ['pan'], 'paul': [], 'shaheen': ['sha'], 'steve': ['stv', 'ste', 'fox'], 'yoshimitsu': ['yoshi', 'manji', 'yos'], 'xiaoyu': ['xiao', 'ling'], 'zafina': ['zaffy', 'zaf'], - "leroy": ['ler'], - "generic": [] + 'leroy': ['ler'], + 'victor': ['vic'], + 'generic': [] } MOVE_TYPES = {