]> Skullheadx's Git Forge - fruit-ninja.git/commitdiff
yeah
authorSkullheadx <94652084+Skullheadx@users.noreply.github.com>
Sat, 1 Jul 2023 17:43:40 +0000 (13:43 -0400)
committerSkullheadx <94652084+Skullheadx@users.noreply.github.com>
Sat, 1 Jul 2023 17:43:40 +0000 (13:43 -0400)
403 files changed:
.gitattributes [new file with mode: 0644]
.gitignore [new file with mode: 0644]
.idea/fruit-ninja.iml
.idea/misc.xml
LICENSE [new file with mode: 0644]
README.md [new file with mode: 0644]
assets/background.png [new file with mode: 0644]
assets/bomb.png [new file with mode: 0644]
assets/dark_background.png [new file with mode: 0644]
assets/effects/blood1/0.png [new file with mode: 0644]
assets/effects/blood1/1.png [new file with mode: 0644]
assets/effects/blood1/10.png [new file with mode: 0644]
assets/effects/blood1/11.png [new file with mode: 0644]
assets/effects/blood1/12.png [new file with mode: 0644]
assets/effects/blood1/13.png [new file with mode: 0644]
assets/effects/blood1/14.png [new file with mode: 0644]
assets/effects/blood1/15.png [new file with mode: 0644]
assets/effects/blood1/16.png [new file with mode: 0644]
assets/effects/blood1/2.png [new file with mode: 0644]
assets/effects/blood1/3.png [new file with mode: 0644]
assets/effects/blood1/4.png [new file with mode: 0644]
assets/effects/blood1/5.png [new file with mode: 0644]
assets/effects/blood1/6.png [new file with mode: 0644]
assets/effects/blood1/7.png [new file with mode: 0644]
assets/effects/blood1/8.png [new file with mode: 0644]
assets/effects/blood1/9.png [new file with mode: 0644]
assets/effects/blood2/0.png [new file with mode: 0644]
assets/effects/blood2/1.png [new file with mode: 0644]
assets/effects/blood2/10.png [new file with mode: 0644]
assets/effects/blood2/11.png [new file with mode: 0644]
assets/effects/blood2/12.png [new file with mode: 0644]
assets/effects/blood2/13.png [new file with mode: 0644]
assets/effects/blood2/14.png [new file with mode: 0644]
assets/effects/blood2/15.png [new file with mode: 0644]
assets/effects/blood2/16.png [new file with mode: 0644]
assets/effects/blood2/2.png [new file with mode: 0644]
assets/effects/blood2/3.png [new file with mode: 0644]
assets/effects/blood2/4.png [new file with mode: 0644]
assets/effects/blood2/5.png [new file with mode: 0644]
assets/effects/blood2/6.png [new file with mode: 0644]
assets/effects/blood2/7.png [new file with mode: 0644]
assets/effects/blood2/8.png [new file with mode: 0644]
assets/effects/blood2/9.png [new file with mode: 0644]
assets/effects/blood3/0.png [new file with mode: 0644]
assets/effects/blood3/1.png [new file with mode: 0644]
assets/effects/blood3/10.png [new file with mode: 0644]
assets/effects/blood3/11.png [new file with mode: 0644]
assets/effects/blood3/12.png [new file with mode: 0644]
assets/effects/blood3/13.png [new file with mode: 0644]
assets/effects/blood3/14.png [new file with mode: 0644]
assets/effects/blood3/15.png [new file with mode: 0644]
assets/effects/blood3/16.png [new file with mode: 0644]
assets/effects/blood3/2.png [new file with mode: 0644]
assets/effects/blood3/3.png [new file with mode: 0644]
assets/effects/blood3/4.png [new file with mode: 0644]
assets/effects/blood3/5.png [new file with mode: 0644]
assets/effects/blood3/6.png [new file with mode: 0644]
assets/effects/blood3/7.png [new file with mode: 0644]
assets/effects/blood3/8.png [new file with mode: 0644]
assets/effects/blood3/9.png [new file with mode: 0644]
assets/effects/splatter/BlueRoseSonata Blood FX Pack/bloodslash1.png [new file with mode: 0644]
assets/effects/splatter/BlueRoseSonata Blood FX Pack/bloodslash2.png [new file with mode: 0644]
assets/effects/splatter/bloodslash1.png [new file with mode: 0644]
assets/effects/splatter/bloodslash2.png [new file with mode: 0644]
assets/effects/sword_slashes/Blue Group Slashes/.DS_Store [new file with mode: 0644]
assets/effects/sword_slashes/Blue Group Slashes/File1.png [new file with mode: 0644]
assets/effects/sword_slashes/Blue Group Slashes/File10.png [new file with mode: 0644]
assets/effects/sword_slashes/Blue Group Slashes/File11.png [new file with mode: 0644]
assets/effects/sword_slashes/Blue Group Slashes/File12.png [new file with mode: 0644]
assets/effects/sword_slashes/Blue Group Slashes/File13.png [new file with mode: 0644]
assets/effects/sword_slashes/Blue Group Slashes/File14.png [new file with mode: 0644]
assets/effects/sword_slashes/Blue Group Slashes/File15.png [new file with mode: 0644]
assets/effects/sword_slashes/Blue Group Slashes/File16.png [new file with mode: 0644]
assets/effects/sword_slashes/Blue Group Slashes/File17.png [new file with mode: 0644]
assets/effects/sword_slashes/Blue Group Slashes/File18.png [new file with mode: 0644]
assets/effects/sword_slashes/Blue Group Slashes/File19.png [new file with mode: 0644]
assets/effects/sword_slashes/Blue Group Slashes/File2.png [new file with mode: 0644]
assets/effects/sword_slashes/Blue Group Slashes/File20.png [new file with mode: 0644]
assets/effects/sword_slashes/Blue Group Slashes/File3.png [new file with mode: 0644]
assets/effects/sword_slashes/Blue Group Slashes/File4.png [new file with mode: 0644]
assets/effects/sword_slashes/Blue Group Slashes/File5.png [new file with mode: 0644]
assets/effects/sword_slashes/Blue Group Slashes/File6.png [new file with mode: 0644]
assets/effects/sword_slashes/Blue Group Slashes/File7.png [new file with mode: 0644]
assets/effects/sword_slashes/Blue Group Slashes/File8.png [new file with mode: 0644]
assets/effects/sword_slashes/Blue Group Slashes/File9.png [new file with mode: 0644]
assets/effects/sword_slashes/Blue Slash Thin/.DS_Store [new file with mode: 0644]
assets/effects/sword_slashes/Blue Slash Thin/File1.png [new file with mode: 0644]
assets/effects/sword_slashes/Blue Slash Thin/File2.png [new file with mode: 0644]
assets/effects/sword_slashes/Blue Slash Thin/File3.png [new file with mode: 0644]
assets/effects/sword_slashes/Blue Slash Thin/File4.png [new file with mode: 0644]
assets/effects/sword_slashes/Blue Slash Thin/File5.png [new file with mode: 0644]
assets/effects/sword_slashes/Blue Slash Thin/File6.png [new file with mode: 0644]
assets/effects/sword_slashes/Blue Slash Wide/.DS_Store [new file with mode: 0644]
assets/effects/sword_slashes/Blue Slash Wide/File1.png [new file with mode: 0644]
assets/effects/sword_slashes/Blue Slash Wide/File2.png [new file with mode: 0644]
assets/effects/sword_slashes/Blue Slash Wide/File3.png [new file with mode: 0644]
assets/effects/sword_slashes/Blue Slash Wide/File4.png [new file with mode: 0644]
assets/effects/sword_slashes/Blue Slash Wide/File5.png [new file with mode: 0644]
assets/effects/sword_slashes/Blue Slash Wide/File6.png [new file with mode: 0644]
assets/effects/sword_slashes/Pure White Slash Thin/.DS_Store [new file with mode: 0644]
assets/effects/sword_slashes/Pure White Slash Thin/File1.png [new file with mode: 0644]
assets/effects/sword_slashes/Pure White Slash Thin/File2.png [new file with mode: 0644]
assets/effects/sword_slashes/Pure White Slash Thin/File3.png [new file with mode: 0644]
assets/effects/sword_slashes/Pure White Slash Thin/File4.png [new file with mode: 0644]
assets/effects/sword_slashes/Pure White Slash Thin/File5.png [new file with mode: 0644]
assets/effects/sword_slashes/Pure White Slash Thin/File6.png [new file with mode: 0644]
assets/effects/sword_slashes/Pure White Slash Wide/.DS_Store [new file with mode: 0644]
assets/effects/sword_slashes/Pure White Slash Wide/File1.png [new file with mode: 0644]
assets/effects/sword_slashes/Pure White Slash Wide/File2.png [new file with mode: 0644]
assets/effects/sword_slashes/Pure White Slash Wide/File3.png [new file with mode: 0644]
assets/effects/sword_slashes/Pure White Slash Wide/File4.png [new file with mode: 0644]
assets/effects/sword_slashes/Pure White Slash Wide/File5.png [new file with mode: 0644]
assets/effects/sword_slashes/Pure White Slash Wide/File6.png [new file with mode: 0644]
assets/effects/sword_slashes/Purple Slash Thin/.DS_Store [new file with mode: 0644]
assets/effects/sword_slashes/Purple Slash Thin/File1.png [new file with mode: 0644]
assets/effects/sword_slashes/Purple Slash Thin/File2.png [new file with mode: 0644]
assets/effects/sword_slashes/Purple Slash Thin/File3.png [new file with mode: 0644]
assets/effects/sword_slashes/Purple Slash Thin/File4.png [new file with mode: 0644]
assets/effects/sword_slashes/Purple Slash Thin/File5.png [new file with mode: 0644]
assets/effects/sword_slashes/Purple Slash Thin/File6.png [new file with mode: 0644]
assets/effects/sword_slashes/Purple Slash Wide/.DS_Store [new file with mode: 0644]
assets/effects/sword_slashes/Purple Slash Wide/File1.png [new file with mode: 0644]
assets/effects/sword_slashes/Purple Slash Wide/File2.png [new file with mode: 0644]
assets/effects/sword_slashes/Purple Slash Wide/File3.png [new file with mode: 0644]
assets/effects/sword_slashes/Purple Slash Wide/File4.png [new file with mode: 0644]
assets/effects/sword_slashes/Purple Slash Wide/File5.png [new file with mode: 0644]
assets/effects/sword_slashes/Purple Slash Wide/File6.png [new file with mode: 0644]
assets/effects/sword_slashes/Red Slash Thin/.DS_Store [new file with mode: 0644]
assets/effects/sword_slashes/Red Slash Thin/File1.png [new file with mode: 0644]
assets/effects/sword_slashes/Red Slash Thin/File2.png [new file with mode: 0644]
assets/effects/sword_slashes/Red Slash Thin/File3.png [new file with mode: 0644]
assets/effects/sword_slashes/Red Slash Thin/File4.png [new file with mode: 0644]
assets/effects/sword_slashes/Red Slash Thin/File5.png [new file with mode: 0644]
assets/effects/sword_slashes/Red Slash Thin/File6.png [new file with mode: 0644]
assets/effects/sword_slashes/Red Slash Wide/.DS_Store [new file with mode: 0644]
assets/effects/sword_slashes/Red Slash Wide/File1.png [new file with mode: 0644]
assets/effects/sword_slashes/Red Slash Wide/File2.png [new file with mode: 0644]
assets/effects/sword_slashes/Red Slash Wide/File3.png [new file with mode: 0644]
assets/effects/sword_slashes/Red Slash Wide/File4.png [new file with mode: 0644]
assets/effects/sword_slashes/Red Slash Wide/File5.png [new file with mode: 0644]
assets/effects/sword_slashes/Red Slash Wide/File6.png [new file with mode: 0644]
assets/effects/sword_slashes/Red Yellow Group Slashes/.DS_Store [new file with mode: 0644]
assets/effects/sword_slashes/Red Yellow Group Slashes/File1.png [new file with mode: 0644]
assets/effects/sword_slashes/Red Yellow Group Slashes/File10.png [new file with mode: 0644]
assets/effects/sword_slashes/Red Yellow Group Slashes/File11.png [new file with mode: 0644]
assets/effects/sword_slashes/Red Yellow Group Slashes/File12.png [new file with mode: 0644]
assets/effects/sword_slashes/Red Yellow Group Slashes/File13.png [new file with mode: 0644]
assets/effects/sword_slashes/Red Yellow Group Slashes/File14.png [new file with mode: 0644]
assets/effects/sword_slashes/Red Yellow Group Slashes/File15.png [new file with mode: 0644]
assets/effects/sword_slashes/Red Yellow Group Slashes/File16.png [new file with mode: 0644]
assets/effects/sword_slashes/Red Yellow Group Slashes/File17.png [new file with mode: 0644]
assets/effects/sword_slashes/Red Yellow Group Slashes/File18.png [new file with mode: 0644]
assets/effects/sword_slashes/Red Yellow Group Slashes/File19.png [new file with mode: 0644]
assets/effects/sword_slashes/Red Yellow Group Slashes/File2.png [new file with mode: 0644]
assets/effects/sword_slashes/Red Yellow Group Slashes/File20.png [new file with mode: 0644]
assets/effects/sword_slashes/Red Yellow Group Slashes/File3.png [new file with mode: 0644]
assets/effects/sword_slashes/Red Yellow Group Slashes/File4.png [new file with mode: 0644]
assets/effects/sword_slashes/Red Yellow Group Slashes/File5.png [new file with mode: 0644]
assets/effects/sword_slashes/Red Yellow Group Slashes/File6.png [new file with mode: 0644]
assets/effects/sword_slashes/Red Yellow Group Slashes/File7.png [new file with mode: 0644]
assets/effects/sword_slashes/Red Yellow Group Slashes/File8.png [new file with mode: 0644]
assets/effects/sword_slashes/Red Yellow Group Slashes/File9.png [new file with mode: 0644]
assets/effects/sword_slashes/White Slash Wide/.DS_Store [new file with mode: 0644]
assets/effects/sword_slashes/White Slash Wide/File1.png [new file with mode: 0644]
assets/effects/sword_slashes/White Slash Wide/File2.png [new file with mode: 0644]
assets/effects/sword_slashes/White Slash Wide/File3.png [new file with mode: 0644]
assets/effects/sword_slashes/White Slash Wide/File4.png [new file with mode: 0644]
assets/effects/sword_slashes/White Slash Wide/File5.png [new file with mode: 0644]
assets/effects/sword_slashes/White Slash Wide/File6.png [new file with mode: 0644]
assets/effects/sword_slashes/White_Group_Slashes/.DS_Store [new file with mode: 0644]
assets/effects/sword_slashes/White_Group_Slashes/File1.png [new file with mode: 0644]
assets/effects/sword_slashes/White_Group_Slashes/File10.png [new file with mode: 0644]
assets/effects/sword_slashes/White_Group_Slashes/File11.png [new file with mode: 0644]
assets/effects/sword_slashes/White_Group_Slashes/File12.png [new file with mode: 0644]
assets/effects/sword_slashes/White_Group_Slashes/File13.png [new file with mode: 0644]
assets/effects/sword_slashes/White_Group_Slashes/File14.png [new file with mode: 0644]
assets/effects/sword_slashes/White_Group_Slashes/File15.png [new file with mode: 0644]
assets/effects/sword_slashes/White_Group_Slashes/File16.png [new file with mode: 0644]
assets/effects/sword_slashes/White_Group_Slashes/File17.png [new file with mode: 0644]
assets/effects/sword_slashes/White_Group_Slashes/File18.png [new file with mode: 0644]
assets/effects/sword_slashes/White_Group_Slashes/File19.png [new file with mode: 0644]
assets/effects/sword_slashes/White_Group_Slashes/File2.png [new file with mode: 0644]
assets/effects/sword_slashes/White_Group_Slashes/File20.png [new file with mode: 0644]
assets/effects/sword_slashes/White_Group_Slashes/File3.png [new file with mode: 0644]
assets/effects/sword_slashes/White_Group_Slashes/File4.png [new file with mode: 0644]
assets/effects/sword_slashes/White_Group_Slashes/File5.png [new file with mode: 0644]
assets/effects/sword_slashes/White_Group_Slashes/File6.png [new file with mode: 0644]
assets/effects/sword_slashes/White_Group_Slashes/File7.png [new file with mode: 0644]
assets/effects/sword_slashes/White_Group_Slashes/File8.png [new file with mode: 0644]
assets/effects/sword_slashes/White_Group_Slashes/File9.png [new file with mode: 0644]
assets/effects/sword_slashes/White_Slash_Thin/.DS_Store [new file with mode: 0644]
assets/effects/sword_slashes/White_Slash_Thin/File1.png [new file with mode: 0644]
assets/effects/sword_slashes/White_Slash_Thin/File2.png [new file with mode: 0644]
assets/effects/sword_slashes/White_Slash_Thin/File3.png [new file with mode: 0644]
assets/effects/sword_slashes/White_Slash_Thin/File4.png [new file with mode: 0644]
assets/effects/sword_slashes/White_Slash_Thin/File5.png [new file with mode: 0644]
assets/effects/sword_slashes/White_Slash_Thin/File6.png [new file with mode: 0644]
assets/explosion/Punch1/.DS_Store [new file with mode: 0644]
assets/explosion/Punch1/File1.png [new file with mode: 0644]
assets/explosion/Punch1/File2.png [new file with mode: 0644]
assets/explosion/Punch1/File3.png [new file with mode: 0644]
assets/explosion/Punch1/File4.png [new file with mode: 0644]
assets/explosion/Punch1/File5.png [new file with mode: 0644]
assets/explosion/Punch1/File6.png [new file with mode: 0644]
assets/explosion/Punch2/.DS_Store [new file with mode: 0644]
assets/explosion/Punch2/File1.png [new file with mode: 0644]
assets/explosion/Punch2/File2.png [new file with mode: 0644]
assets/explosion/Punch2/File3.png [new file with mode: 0644]
assets/explosion/Punch2/File4.png [new file with mode: 0644]
assets/explosion/Punch2/File5.png [new file with mode: 0644]
assets/explosion/Punch2/File6.png [new file with mode: 0644]
assets/explosion/Punch3/.DS_Store [new file with mode: 0644]
assets/explosion/Punch3/File1.png [new file with mode: 0644]
assets/explosion/Punch3/File2.png [new file with mode: 0644]
assets/explosion/Punch3/File3.png [new file with mode: 0644]
assets/explosion/Punch3/File4.png [new file with mode: 0644]
assets/explosion/Punch3/File5.png [new file with mode: 0644]
assets/explosion/Punch3/File6.png [new file with mode: 0644]
assets/explosion/WhitePunch1/.DS_Store [new file with mode: 0644]
assets/explosion/WhitePunch1/File1.png [new file with mode: 0644]
assets/explosion/WhitePunch1/File2.png [new file with mode: 0644]
assets/explosion/WhitePunch1/File3.png [new file with mode: 0644]
assets/explosion/WhitePunch1/File4.png [new file with mode: 0644]
assets/explosion/WhitePunch1/File5.png [new file with mode: 0644]
assets/explosion/WhitePunch1/File6.png [new file with mode: 0644]
assets/explosion/WhitePunch2/.DS_Store [new file with mode: 0644]
assets/explosion/WhitePunch2/File1.png [new file with mode: 0644]
assets/explosion/WhitePunch2/File2.png [new file with mode: 0644]
assets/explosion/WhitePunch2/File3.png [new file with mode: 0644]
assets/explosion/WhitePunch2/File4.png [new file with mode: 0644]
assets/explosion/WhitePunch2/File5.png [new file with mode: 0644]
assets/explosion/WhitePunch2/File6.png [new file with mode: 0644]
assets/explosion/WhitePunch3/.DS_Store [new file with mode: 0644]
assets/explosion/WhitePunch3/File1.png [new file with mode: 0644]
assets/explosion/WhitePunch3/File2.png [new file with mode: 0644]
assets/explosion/WhitePunch3/File3.png [new file with mode: 0644]
assets/explosion/WhitePunch3/File4.png [new file with mode: 0644]
assets/explosion/WhitePunch3/File5.png [new file with mode: 0644]
assets/explosion/WhitePunch3/File6.png [new file with mode: 0644]
assets/font/go3v2.ttf [new file with mode: 0644]
assets/fruits/0.png [new file with mode: 0644]
assets/fruits/1.png [new file with mode: 0644]
assets/fruits/10.png [new file with mode: 0644]
assets/fruits/101.png [new file with mode: 0644]
assets/fruits/102.png [new file with mode: 0644]
assets/fruits/103.png [new file with mode: 0644]
assets/fruits/104.png [new file with mode: 0644]
assets/fruits/105.png [new file with mode: 0644]
assets/fruits/106.png [new file with mode: 0644]
assets/fruits/107.png [new file with mode: 0644]
assets/fruits/108.png [new file with mode: 0644]
assets/fruits/109.png [new file with mode: 0644]
assets/fruits/11.png [new file with mode: 0644]
assets/fruits/110.png [new file with mode: 0644]
assets/fruits/111.png [new file with mode: 0644]
assets/fruits/112.png [new file with mode: 0644]
assets/fruits/113.png [new file with mode: 0644]
assets/fruits/114.png [new file with mode: 0644]
assets/fruits/115.png [new file with mode: 0644]
assets/fruits/116.png [new file with mode: 0644]
assets/fruits/117.png [new file with mode: 0644]
assets/fruits/118.png [new file with mode: 0644]
assets/fruits/119.png [new file with mode: 0644]
assets/fruits/120.png [new file with mode: 0644]
assets/fruits/121.png [new file with mode: 0644]
assets/fruits/122.png [new file with mode: 0644]
assets/fruits/123.png [new file with mode: 0644]
assets/fruits/124.png [new file with mode: 0644]
assets/fruits/125.png [new file with mode: 0644]
assets/fruits/126.png [new file with mode: 0644]
assets/fruits/127.png [new file with mode: 0644]
assets/fruits/128.png [new file with mode: 0644]
assets/fruits/129.png [new file with mode: 0644]
assets/fruits/130.png [new file with mode: 0644]
assets/fruits/131.png [new file with mode: 0644]
assets/fruits/137.png [new file with mode: 0644]
assets/fruits/138.png [new file with mode: 0644]
assets/fruits/139.png [new file with mode: 0644]
assets/fruits/14.png [new file with mode: 0644]
assets/fruits/140.png [new file with mode: 0644]
assets/fruits/141.png [new file with mode: 0644]
assets/fruits/142.png [new file with mode: 0644]
assets/fruits/143.png [new file with mode: 0644]
assets/fruits/144.png [new file with mode: 0644]
assets/fruits/145.png [new file with mode: 0644]
assets/fruits/146.png [new file with mode: 0644]
assets/fruits/147.png [new file with mode: 0644]
assets/fruits/148.png [new file with mode: 0644]
assets/fruits/149.png [new file with mode: 0644]
assets/fruits/15.png [new file with mode: 0644]
assets/fruits/150.png [new file with mode: 0644]
assets/fruits/151.png [new file with mode: 0644]
assets/fruits/157.png [new file with mode: 0644]
assets/fruits/158.png [new file with mode: 0644]
assets/fruits/159.png [new file with mode: 0644]
assets/fruits/16.png [new file with mode: 0644]
assets/fruits/160.png [new file with mode: 0644]
assets/fruits/161.png [new file with mode: 0644]
assets/fruits/162.png [new file with mode: 0644]
assets/fruits/163.png [new file with mode: 0644]
assets/fruits/164.png [new file with mode: 0644]
assets/fruits/165.png [new file with mode: 0644]
assets/fruits/166.png [new file with mode: 0644]
assets/fruits/167.png [new file with mode: 0644]
assets/fruits/168.png [new file with mode: 0644]
assets/fruits/169.png [new file with mode: 0644]
assets/fruits/17.png [new file with mode: 0644]
assets/fruits/170.png [new file with mode: 0644]
assets/fruits/171.png [new file with mode: 0644]
assets/fruits/172.png [new file with mode: 0644]
assets/fruits/173.png [new file with mode: 0644]
assets/fruits/18.png [new file with mode: 0644]
assets/fruits/19.png [new file with mode: 0644]
assets/fruits/2.png [new file with mode: 0644]
assets/fruits/21.png [new file with mode: 0644]
assets/fruits/22.png [new file with mode: 0644]
assets/fruits/23.png [new file with mode: 0644]
assets/fruits/24.png [new file with mode: 0644]
assets/fruits/28.png [new file with mode: 0644]
assets/fruits/29.png [new file with mode: 0644]
assets/fruits/30.png [new file with mode: 0644]
assets/fruits/31.png [new file with mode: 0644]
assets/fruits/32.png [new file with mode: 0644]
assets/fruits/33.png [new file with mode: 0644]
assets/fruits/35.png [new file with mode: 0644]
assets/fruits/36.png [new file with mode: 0644]
assets/fruits/37.png [new file with mode: 0644]
assets/fruits/41.png [new file with mode: 0644]
assets/fruits/42.png [new file with mode: 0644]
assets/fruits/45.png [new file with mode: 0644]
assets/fruits/46.png [new file with mode: 0644]
assets/fruits/47.png [new file with mode: 0644]
assets/fruits/48.png [new file with mode: 0644]
assets/fruits/49.png [new file with mode: 0644]
assets/fruits/50.png [new file with mode: 0644]
assets/fruits/51.png [new file with mode: 0644]
assets/fruits/52.png [new file with mode: 0644]
assets/fruits/53.png [new file with mode: 0644]
assets/fruits/54.png [new file with mode: 0644]
assets/fruits/55.png [new file with mode: 0644]
assets/fruits/56.png [new file with mode: 0644]
assets/fruits/57.png [new file with mode: 0644]
assets/fruits/58.png [new file with mode: 0644]
assets/fruits/59.png [new file with mode: 0644]
assets/fruits/6.png [new file with mode: 0644]
assets/fruits/60.png [new file with mode: 0644]
assets/fruits/61.png [new file with mode: 0644]
assets/fruits/62.png [new file with mode: 0644]
assets/fruits/63.png [new file with mode: 0644]
assets/fruits/64.png [new file with mode: 0644]
assets/fruits/65.png [new file with mode: 0644]
assets/fruits/66.png [new file with mode: 0644]
assets/fruits/67.png [new file with mode: 0644]
assets/fruits/68.png [new file with mode: 0644]
assets/fruits/69.png [new file with mode: 0644]
assets/fruits/7.png [new file with mode: 0644]
assets/fruits/70.png [new file with mode: 0644]
assets/fruits/71.png [new file with mode: 0644]
assets/fruits/72.png [new file with mode: 0644]
assets/fruits/73.png [new file with mode: 0644]
assets/fruits/74.png [new file with mode: 0644]
assets/fruits/75.png [new file with mode: 0644]
assets/fruits/76.png [new file with mode: 0644]
assets/fruits/77.png [new file with mode: 0644]
assets/fruits/80.png [new file with mode: 0644]
assets/fruits/81.png [new file with mode: 0644]
assets/fruits/82.png [new file with mode: 0644]
assets/fruits/83.png [new file with mode: 0644]
assets/fruits/84.png [new file with mode: 0644]
assets/fruits/85.png [new file with mode: 0644]
assets/fruits/86.png [new file with mode: 0644]
assets/fruits/87.png [new file with mode: 0644]
assets/fruits/88.png [new file with mode: 0644]
assets/fruits/89.png [new file with mode: 0644]
assets/fruits/90.png [new file with mode: 0644]
assets/fruits/91.png [new file with mode: 0644]
assets/fruits/92.png [new file with mode: 0644]
assets/fruits/93.png [new file with mode: 0644]
assets/fruits/94.png [new file with mode: 0644]
assets/fruits/95.png [new file with mode: 0644]
assets/fruits/96.png [new file with mode: 0644]
assets/fruits/97.png [new file with mode: 0644]
assets/fruits/98.png [new file with mode: 0644]
assets/logo.ico [moved from logo.ico with 100% similarity]
assets/sounds/Of Far Different Nature - Ethnic Beat (CC-BY).ogg [new file with mode: 0644]
assets/sounds/Of Far Different Nature - Friendly Trap (CC-BY).ogg [new file with mode: 0644]
assets/sounds/Swishes/long-medium-swish-44324.wav [new file with mode: 0644]
assets/sounds/Swishes/swing-6045.wav [new file with mode: 0644]
assets/sounds/Swishes/swish-sound-94707.wav [new file with mode: 0644]
assets/sounds/hq-explosion-6288.wav [new file with mode: 0644]
assets/sounds/medium-explosion-40472.wav [new file with mode: 0644]
assets/sounds/sub-bass-4-secondsssss-6241.wav [new file with mode: 0644]
bomb.py [new file with mode: 0644]
combo_counter.py [new file with mode: 0644]
effect.py [new file with mode: 0644]
fruit.py [new file with mode: 0644]
game.py [new file with mode: 0644]
highscore.txt [new file with mode: 0644]
main.py [new file with mode: 0644]
menu.py [new file with mode: 0644]
out.prof [new file with mode: 0644]
player.py [new file with mode: 0644]
setup.py [new file with mode: 0644]

diff --git a/.gitattributes b/.gitattributes
new file mode 100644 (file)
index 0000000..dfe0770
--- /dev/null
@@ -0,0 +1,2 @@
+# Auto detect text files and perform LF normalization
+* text=auto
diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..3eb56cb
--- /dev/null
@@ -0,0 +1,152 @@
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+wheels/
+share/python-wheels/
+*.egg-info/
+.installed.cfg
+*.egg
+MANIFEST
+
+# PyInstaller
+#  Usually these files are written by a python script from a template
+#  before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.nox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*.cover
+*.py,cover
+.hypothesis/
+.pytest_cache/
+cover/
+
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+local_settings.py
+db.sqlite3
+db.sqlite3-journal
+
+# Flask stuff:
+instance/
+.webassets-cache
+
+# Scrapy stuff:
+.scrapy
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+.pybuilder/
+target/
+
+# Jupyter Notebook
+.ipynb_checkpoints
+
+# IPython
+profile_default/
+ipython_config.py
+
+# pyenv
+#   For a library or package, you might want to ignore these files since the code is
+#   intended to run in multiple environments; otherwise, check them in:
+# .python-version
+
+# pipenv
+#   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
+#   However, in case of collaboration, if having platform-specific dependencies or dependencies
+#   having no cross-platform support, pipenv may install dependencies that don't work, or not
+#   install all needed dependencies.
+#Pipfile.lock
+
+# poetry
+#   Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
+#   This is especially recommended for binary packages to ensure reproducibility, and is more
+#   commonly ignored for libraries.
+#   https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
+#poetry.lock
+
+# PEP 582; used by e.g. github.com/David-OConnor/pyflow
+__pypackages__/
+
+# Celery stuff
+celerybeat-schedule
+celerybeat.pid
+
+# SageMath parsed files
+*.sage.py
+
+# Environments
+.env
+.venv
+env/
+venv/
+ENV/
+env.bak/
+venv.bak/
+
+# Spyder project settings
+.spyderproject
+.spyproject
+
+# Rope project settings
+.ropeproject
+
+# mkdocs documentation
+/site
+
+# mypy
+.mypy_cache/
+.dmypy.json
+dmypy.json
+
+# Pyre type checker
+.pyre/
+
+# pytype static type analyzer
+.pytype/
+
+# Cython debug symbols
+cython_debug/
+
+# PyCharm
+#  JetBrains specific template is maintainted in a separate JetBrains.gitignore that can
+#  be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
+#  and can be added to the global gitignore or merged into this file.  For a more nuclear
+#  option (not recommended) you can uncomment the following to ignore the entire idea folder.
+.idea/
index d0876a78d06ac03b5d78c8dcdb95570281c6f1d6..74d515a027de98657e9d3d5f0f1831882fd81374 100644 (file)
@@ -1,7 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <module type="PYTHON_MODULE" version="4">
   <component name="NewModuleRootManager">
-    <content url="file://$MODULE_DIR$" />
+    <content url="file://$MODULE_DIR$">
+      <excludeFolder url="file://$MODULE_DIR$/venv" />
+    </content>
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
   </component>
index dc9ea4906e15825848ae951155a4381c08529eaf..74740ed9f3790be279629db13b08cc7e8019265b 100644 (file)
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
-  <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10" project-jdk-type="Python SDK" />
+  <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.11 (fruit-ninja)" project-jdk-type="Python SDK" />
 </project>
\ No newline at end of file
diff --git a/LICENSE b/LICENSE
new file mode 100644 (file)
index 0000000..6a11c59
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2023 Skullheadx
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.md b/README.md
new file mode 100644 (file)
index 0000000..a9bee68
--- /dev/null
+++ b/README.md
@@ -0,0 +1,25 @@
+## FRUIT ASSETS: https://ninjikin.itch.io/fruit
+
+## BLOOD EFFECTS: https://jasontomlee.itch.io/blood-fx
+
+## FONT: https://fontmeme.com/fonts/gang-of-three-font/
+
+## SWORD SLASHES: https://spikerman.itch.io/sword-slashes
+
+## BOMB EXPLOSION: https://spikerman.itch.io/punch-impacts
+
+## swish sounds https://makotohiramatsu.itch.io/swishes/download/eyJleHBpcmVzIjoxNjg2MjM1NTUzLCJpZCI6MTY5NDY4Mn0%3d%2esewaziU4pjtFHcSPEtIyLcPXOe8%3dhttps://makotohiramatsu.itch.io/swishes/download/eyJleHBpcmVzIjoxNjg2MjM1NTUzLCJpZCI6MTY5NDY4Mn0%3d%2esewaziU4pjtFHcSPEtIyLcPXOe8%3d
+
+## explosion sound effects:
+
+https://pixabay.com/sound-effects/medium-explosion-40472/
+https://pixabay.com/sound-effects/hq-explosion-6288/
+https://pixabay.com/sound-effects/sub-bass-4-secondsssss-6241/
+
+## Background music: https://fardifferent.itch.io/loops
+
+## Menu background image: https://www.freepik.com/free-photo/material-panel-plank-hardwood-texture_1173366.htm#query=wooden%20boards%20background&position=30&from_view=keyword&track=ais
+
+## Game background image made with help from https://www.deviantart.com/sadfacerl/art/WoodTexture-748548579
+
+## Blood Splatter Effect https://bluerosesonata.itch.io/free-blood-splatter-cgsfx
\ No newline at end of file
diff --git a/assets/background.png b/assets/background.png
new file mode 100644 (file)
index 0000000..c71ffa7
Binary files /dev/null and b/assets/background.png differ
diff --git a/assets/bomb.png b/assets/bomb.png
new file mode 100644 (file)
index 0000000..5418bee
Binary files /dev/null and b/assets/bomb.png differ
diff --git a/assets/dark_background.png b/assets/dark_background.png
new file mode 100644 (file)
index 0000000..46e7f5c
Binary files /dev/null and b/assets/dark_background.png differ
diff --git a/assets/effects/blood1/0.png b/assets/effects/blood1/0.png
new file mode 100644 (file)
index 0000000..cac7793
Binary files /dev/null and b/assets/effects/blood1/0.png differ
diff --git a/assets/effects/blood1/1.png b/assets/effects/blood1/1.png
new file mode 100644 (file)
index 0000000..83c74ad
Binary files /dev/null and b/assets/effects/blood1/1.png differ
diff --git a/assets/effects/blood1/10.png b/assets/effects/blood1/10.png
new file mode 100644 (file)
index 0000000..91d20ff
Binary files /dev/null and b/assets/effects/blood1/10.png differ
diff --git a/assets/effects/blood1/11.png b/assets/effects/blood1/11.png
new file mode 100644 (file)
index 0000000..91d20ff
Binary files /dev/null and b/assets/effects/blood1/11.png differ
diff --git a/assets/effects/blood1/12.png b/assets/effects/blood1/12.png
new file mode 100644 (file)
index 0000000..91d20ff
Binary files /dev/null and b/assets/effects/blood1/12.png differ
diff --git a/assets/effects/blood1/13.png b/assets/effects/blood1/13.png
new file mode 100644 (file)
index 0000000..91d20ff
Binary files /dev/null and b/assets/effects/blood1/13.png differ
diff --git a/assets/effects/blood1/14.png b/assets/effects/blood1/14.png
new file mode 100644 (file)
index 0000000..91d20ff
Binary files /dev/null and b/assets/effects/blood1/14.png differ
diff --git a/assets/effects/blood1/15.png b/assets/effects/blood1/15.png
new file mode 100644 (file)
index 0000000..91d20ff
Binary files /dev/null and b/assets/effects/blood1/15.png differ
diff --git a/assets/effects/blood1/16.png b/assets/effects/blood1/16.png
new file mode 100644 (file)
index 0000000..91d20ff
Binary files /dev/null and b/assets/effects/blood1/16.png differ
diff --git a/assets/effects/blood1/2.png b/assets/effects/blood1/2.png
new file mode 100644 (file)
index 0000000..7764c13
Binary files /dev/null and b/assets/effects/blood1/2.png differ
diff --git a/assets/effects/blood1/3.png b/assets/effects/blood1/3.png
new file mode 100644 (file)
index 0000000..f9b0bbe
Binary files /dev/null and b/assets/effects/blood1/3.png differ
diff --git a/assets/effects/blood1/4.png b/assets/effects/blood1/4.png
new file mode 100644 (file)
index 0000000..e39cf2d
Binary files /dev/null and b/assets/effects/blood1/4.png differ
diff --git a/assets/effects/blood1/5.png b/assets/effects/blood1/5.png
new file mode 100644 (file)
index 0000000..58ab79e
Binary files /dev/null and b/assets/effects/blood1/5.png differ
diff --git a/assets/effects/blood1/6.png b/assets/effects/blood1/6.png
new file mode 100644 (file)
index 0000000..58ab79e
Binary files /dev/null and b/assets/effects/blood1/6.png differ
diff --git a/assets/effects/blood1/7.png b/assets/effects/blood1/7.png
new file mode 100644 (file)
index 0000000..a46b16d
Binary files /dev/null and b/assets/effects/blood1/7.png differ
diff --git a/assets/effects/blood1/8.png b/assets/effects/blood1/8.png
new file mode 100644 (file)
index 0000000..a46b16d
Binary files /dev/null and b/assets/effects/blood1/8.png differ
diff --git a/assets/effects/blood1/9.png b/assets/effects/blood1/9.png
new file mode 100644 (file)
index 0000000..b15784e
Binary files /dev/null and b/assets/effects/blood1/9.png differ
diff --git a/assets/effects/blood2/0.png b/assets/effects/blood2/0.png
new file mode 100644 (file)
index 0000000..5a7c8f1
Binary files /dev/null and b/assets/effects/blood2/0.png differ
diff --git a/assets/effects/blood2/1.png b/assets/effects/blood2/1.png
new file mode 100644 (file)
index 0000000..ad1dabf
Binary files /dev/null and b/assets/effects/blood2/1.png differ
diff --git a/assets/effects/blood2/10.png b/assets/effects/blood2/10.png
new file mode 100644 (file)
index 0000000..e84dd93
Binary files /dev/null and b/assets/effects/blood2/10.png differ
diff --git a/assets/effects/blood2/11.png b/assets/effects/blood2/11.png
new file mode 100644 (file)
index 0000000..ea410a2
Binary files /dev/null and b/assets/effects/blood2/11.png differ
diff --git a/assets/effects/blood2/12.png b/assets/effects/blood2/12.png
new file mode 100644 (file)
index 0000000..ea410a2
Binary files /dev/null and b/assets/effects/blood2/12.png differ
diff --git a/assets/effects/blood2/13.png b/assets/effects/blood2/13.png
new file mode 100644 (file)
index 0000000..ea410a2
Binary files /dev/null and b/assets/effects/blood2/13.png differ
diff --git a/assets/effects/blood2/14.png b/assets/effects/blood2/14.png
new file mode 100644 (file)
index 0000000..ea410a2
Binary files /dev/null and b/assets/effects/blood2/14.png differ
diff --git a/assets/effects/blood2/15.png b/assets/effects/blood2/15.png
new file mode 100644 (file)
index 0000000..ea410a2
Binary files /dev/null and b/assets/effects/blood2/15.png differ
diff --git a/assets/effects/blood2/16.png b/assets/effects/blood2/16.png
new file mode 100644 (file)
index 0000000..ea410a2
Binary files /dev/null and b/assets/effects/blood2/16.png differ
diff --git a/assets/effects/blood2/2.png b/assets/effects/blood2/2.png
new file mode 100644 (file)
index 0000000..2421536
Binary files /dev/null and b/assets/effects/blood2/2.png differ
diff --git a/assets/effects/blood2/3.png b/assets/effects/blood2/3.png
new file mode 100644 (file)
index 0000000..a9e4bcb
Binary files /dev/null and b/assets/effects/blood2/3.png differ
diff --git a/assets/effects/blood2/4.png b/assets/effects/blood2/4.png
new file mode 100644 (file)
index 0000000..a5abb97
Binary files /dev/null and b/assets/effects/blood2/4.png differ
diff --git a/assets/effects/blood2/5.png b/assets/effects/blood2/5.png
new file mode 100644 (file)
index 0000000..db2b9b8
Binary files /dev/null and b/assets/effects/blood2/5.png differ
diff --git a/assets/effects/blood2/6.png b/assets/effects/blood2/6.png
new file mode 100644 (file)
index 0000000..183e382
Binary files /dev/null and b/assets/effects/blood2/6.png differ
diff --git a/assets/effects/blood2/7.png b/assets/effects/blood2/7.png
new file mode 100644 (file)
index 0000000..183e382
Binary files /dev/null and b/assets/effects/blood2/7.png differ
diff --git a/assets/effects/blood2/8.png b/assets/effects/blood2/8.png
new file mode 100644 (file)
index 0000000..b91524c
Binary files /dev/null and b/assets/effects/blood2/8.png differ
diff --git a/assets/effects/blood2/9.png b/assets/effects/blood2/9.png
new file mode 100644 (file)
index 0000000..b91524c
Binary files /dev/null and b/assets/effects/blood2/9.png differ
diff --git a/assets/effects/blood3/0.png b/assets/effects/blood3/0.png
new file mode 100644 (file)
index 0000000..c613081
Binary files /dev/null and b/assets/effects/blood3/0.png differ
diff --git a/assets/effects/blood3/1.png b/assets/effects/blood3/1.png
new file mode 100644 (file)
index 0000000..17aaa72
Binary files /dev/null and b/assets/effects/blood3/1.png differ
diff --git a/assets/effects/blood3/10.png b/assets/effects/blood3/10.png
new file mode 100644 (file)
index 0000000..9d37d1e
Binary files /dev/null and b/assets/effects/blood3/10.png differ
diff --git a/assets/effects/blood3/11.png b/assets/effects/blood3/11.png
new file mode 100644 (file)
index 0000000..b0a315f
Binary files /dev/null and b/assets/effects/blood3/11.png differ
diff --git a/assets/effects/blood3/12.png b/assets/effects/blood3/12.png
new file mode 100644 (file)
index 0000000..8969d76
Binary files /dev/null and b/assets/effects/blood3/12.png differ
diff --git a/assets/effects/blood3/13.png b/assets/effects/blood3/13.png
new file mode 100644 (file)
index 0000000..8cd5f72
Binary files /dev/null and b/assets/effects/blood3/13.png differ
diff --git a/assets/effects/blood3/14.png b/assets/effects/blood3/14.png
new file mode 100644 (file)
index 0000000..d4d8ea0
Binary files /dev/null and b/assets/effects/blood3/14.png differ
diff --git a/assets/effects/blood3/15.png b/assets/effects/blood3/15.png
new file mode 100644 (file)
index 0000000..cca0c93
Binary files /dev/null and b/assets/effects/blood3/15.png differ
diff --git a/assets/effects/blood3/16.png b/assets/effects/blood3/16.png
new file mode 100644 (file)
index 0000000..cca0c93
Binary files /dev/null and b/assets/effects/blood3/16.png differ
diff --git a/assets/effects/blood3/2.png b/assets/effects/blood3/2.png
new file mode 100644 (file)
index 0000000..543d4d8
Binary files /dev/null and b/assets/effects/blood3/2.png differ
diff --git a/assets/effects/blood3/3.png b/assets/effects/blood3/3.png
new file mode 100644 (file)
index 0000000..9eb319c
Binary files /dev/null and b/assets/effects/blood3/3.png differ
diff --git a/assets/effects/blood3/4.png b/assets/effects/blood3/4.png
new file mode 100644 (file)
index 0000000..3a19431
Binary files /dev/null and b/assets/effects/blood3/4.png differ
diff --git a/assets/effects/blood3/5.png b/assets/effects/blood3/5.png
new file mode 100644 (file)
index 0000000..7034a58
Binary files /dev/null and b/assets/effects/blood3/5.png differ
diff --git a/assets/effects/blood3/6.png b/assets/effects/blood3/6.png
new file mode 100644 (file)
index 0000000..db40497
Binary files /dev/null and b/assets/effects/blood3/6.png differ
diff --git a/assets/effects/blood3/7.png b/assets/effects/blood3/7.png
new file mode 100644 (file)
index 0000000..e4aeb93
Binary files /dev/null and b/assets/effects/blood3/7.png differ
diff --git a/assets/effects/blood3/8.png b/assets/effects/blood3/8.png
new file mode 100644 (file)
index 0000000..bad14d7
Binary files /dev/null and b/assets/effects/blood3/8.png differ
diff --git a/assets/effects/blood3/9.png b/assets/effects/blood3/9.png
new file mode 100644 (file)
index 0000000..9a13297
Binary files /dev/null and b/assets/effects/blood3/9.png differ
diff --git a/assets/effects/splatter/BlueRoseSonata Blood FX Pack/bloodslash1.png b/assets/effects/splatter/BlueRoseSonata Blood FX Pack/bloodslash1.png
new file mode 100644 (file)
index 0000000..0a042db
Binary files /dev/null and b/assets/effects/splatter/BlueRoseSonata Blood FX Pack/bloodslash1.png differ
diff --git a/assets/effects/splatter/BlueRoseSonata Blood FX Pack/bloodslash2.png b/assets/effects/splatter/BlueRoseSonata Blood FX Pack/bloodslash2.png
new file mode 100644 (file)
index 0000000..a8b3acb
Binary files /dev/null and b/assets/effects/splatter/BlueRoseSonata Blood FX Pack/bloodslash2.png differ
diff --git a/assets/effects/splatter/bloodslash1.png b/assets/effects/splatter/bloodslash1.png
new file mode 100644 (file)
index 0000000..52da439
Binary files /dev/null and b/assets/effects/splatter/bloodslash1.png differ
diff --git a/assets/effects/splatter/bloodslash2.png b/assets/effects/splatter/bloodslash2.png
new file mode 100644 (file)
index 0000000..9bae063
Binary files /dev/null and b/assets/effects/splatter/bloodslash2.png differ
diff --git a/assets/effects/sword_slashes/Blue Group Slashes/.DS_Store b/assets/effects/sword_slashes/Blue Group Slashes/.DS_Store
new file mode 100644 (file)
index 0000000..8332123
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Group Slashes/.DS_Store differ
diff --git a/assets/effects/sword_slashes/Blue Group Slashes/File1.png b/assets/effects/sword_slashes/Blue Group Slashes/File1.png
new file mode 100644 (file)
index 0000000..c16d17f
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Group Slashes/File1.png differ
diff --git a/assets/effects/sword_slashes/Blue Group Slashes/File10.png b/assets/effects/sword_slashes/Blue Group Slashes/File10.png
new file mode 100644 (file)
index 0000000..2e06b98
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Group Slashes/File10.png differ
diff --git a/assets/effects/sword_slashes/Blue Group Slashes/File11.png b/assets/effects/sword_slashes/Blue Group Slashes/File11.png
new file mode 100644 (file)
index 0000000..b02887b
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Group Slashes/File11.png differ
diff --git a/assets/effects/sword_slashes/Blue Group Slashes/File12.png b/assets/effects/sword_slashes/Blue Group Slashes/File12.png
new file mode 100644 (file)
index 0000000..7267a53
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Group Slashes/File12.png differ
diff --git a/assets/effects/sword_slashes/Blue Group Slashes/File13.png b/assets/effects/sword_slashes/Blue Group Slashes/File13.png
new file mode 100644 (file)
index 0000000..e54b43b
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Group Slashes/File13.png differ
diff --git a/assets/effects/sword_slashes/Blue Group Slashes/File14.png b/assets/effects/sword_slashes/Blue Group Slashes/File14.png
new file mode 100644 (file)
index 0000000..519be7f
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Group Slashes/File14.png differ
diff --git a/assets/effects/sword_slashes/Blue Group Slashes/File15.png b/assets/effects/sword_slashes/Blue Group Slashes/File15.png
new file mode 100644 (file)
index 0000000..2214515
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Group Slashes/File15.png differ
diff --git a/assets/effects/sword_slashes/Blue Group Slashes/File16.png b/assets/effects/sword_slashes/Blue Group Slashes/File16.png
new file mode 100644 (file)
index 0000000..7b5e328
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Group Slashes/File16.png differ
diff --git a/assets/effects/sword_slashes/Blue Group Slashes/File17.png b/assets/effects/sword_slashes/Blue Group Slashes/File17.png
new file mode 100644 (file)
index 0000000..168851f
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Group Slashes/File17.png differ
diff --git a/assets/effects/sword_slashes/Blue Group Slashes/File18.png b/assets/effects/sword_slashes/Blue Group Slashes/File18.png
new file mode 100644 (file)
index 0000000..c6faf80
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Group Slashes/File18.png differ
diff --git a/assets/effects/sword_slashes/Blue Group Slashes/File19.png b/assets/effects/sword_slashes/Blue Group Slashes/File19.png
new file mode 100644 (file)
index 0000000..717f4a2
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Group Slashes/File19.png differ
diff --git a/assets/effects/sword_slashes/Blue Group Slashes/File2.png b/assets/effects/sword_slashes/Blue Group Slashes/File2.png
new file mode 100644 (file)
index 0000000..bc01005
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Group Slashes/File2.png differ
diff --git a/assets/effects/sword_slashes/Blue Group Slashes/File20.png b/assets/effects/sword_slashes/Blue Group Slashes/File20.png
new file mode 100644 (file)
index 0000000..110e804
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Group Slashes/File20.png differ
diff --git a/assets/effects/sword_slashes/Blue Group Slashes/File3.png b/assets/effects/sword_slashes/Blue Group Slashes/File3.png
new file mode 100644 (file)
index 0000000..28df865
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Group Slashes/File3.png differ
diff --git a/assets/effects/sword_slashes/Blue Group Slashes/File4.png b/assets/effects/sword_slashes/Blue Group Slashes/File4.png
new file mode 100644 (file)
index 0000000..a2e9abc
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Group Slashes/File4.png differ
diff --git a/assets/effects/sword_slashes/Blue Group Slashes/File5.png b/assets/effects/sword_slashes/Blue Group Slashes/File5.png
new file mode 100644 (file)
index 0000000..76ad9e7
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Group Slashes/File5.png differ
diff --git a/assets/effects/sword_slashes/Blue Group Slashes/File6.png b/assets/effects/sword_slashes/Blue Group Slashes/File6.png
new file mode 100644 (file)
index 0000000..da77ba9
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Group Slashes/File6.png differ
diff --git a/assets/effects/sword_slashes/Blue Group Slashes/File7.png b/assets/effects/sword_slashes/Blue Group Slashes/File7.png
new file mode 100644 (file)
index 0000000..67c7d33
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Group Slashes/File7.png differ
diff --git a/assets/effects/sword_slashes/Blue Group Slashes/File8.png b/assets/effects/sword_slashes/Blue Group Slashes/File8.png
new file mode 100644 (file)
index 0000000..e6246d9
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Group Slashes/File8.png differ
diff --git a/assets/effects/sword_slashes/Blue Group Slashes/File9.png b/assets/effects/sword_slashes/Blue Group Slashes/File9.png
new file mode 100644 (file)
index 0000000..2710ce1
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Group Slashes/File9.png differ
diff --git a/assets/effects/sword_slashes/Blue Slash Thin/.DS_Store b/assets/effects/sword_slashes/Blue Slash Thin/.DS_Store
new file mode 100644 (file)
index 0000000..e2a3963
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Slash Thin/.DS_Store differ
diff --git a/assets/effects/sword_slashes/Blue Slash Thin/File1.png b/assets/effects/sword_slashes/Blue Slash Thin/File1.png
new file mode 100644 (file)
index 0000000..693395f
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Slash Thin/File1.png differ
diff --git a/assets/effects/sword_slashes/Blue Slash Thin/File2.png b/assets/effects/sword_slashes/Blue Slash Thin/File2.png
new file mode 100644 (file)
index 0000000..853320c
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Slash Thin/File2.png differ
diff --git a/assets/effects/sword_slashes/Blue Slash Thin/File3.png b/assets/effects/sword_slashes/Blue Slash Thin/File3.png
new file mode 100644 (file)
index 0000000..96851b7
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Slash Thin/File3.png differ
diff --git a/assets/effects/sword_slashes/Blue Slash Thin/File4.png b/assets/effects/sword_slashes/Blue Slash Thin/File4.png
new file mode 100644 (file)
index 0000000..3b934a0
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Slash Thin/File4.png differ
diff --git a/assets/effects/sword_slashes/Blue Slash Thin/File5.png b/assets/effects/sword_slashes/Blue Slash Thin/File5.png
new file mode 100644 (file)
index 0000000..3123ab3
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Slash Thin/File5.png differ
diff --git a/assets/effects/sword_slashes/Blue Slash Thin/File6.png b/assets/effects/sword_slashes/Blue Slash Thin/File6.png
new file mode 100644 (file)
index 0000000..0f13dd0
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Slash Thin/File6.png differ
diff --git a/assets/effects/sword_slashes/Blue Slash Wide/.DS_Store b/assets/effects/sword_slashes/Blue Slash Wide/.DS_Store
new file mode 100644 (file)
index 0000000..e2a3963
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Slash Wide/.DS_Store differ
diff --git a/assets/effects/sword_slashes/Blue Slash Wide/File1.png b/assets/effects/sword_slashes/Blue Slash Wide/File1.png
new file mode 100644 (file)
index 0000000..27771f7
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Slash Wide/File1.png differ
diff --git a/assets/effects/sword_slashes/Blue Slash Wide/File2.png b/assets/effects/sword_slashes/Blue Slash Wide/File2.png
new file mode 100644 (file)
index 0000000..9c9ec39
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Slash Wide/File2.png differ
diff --git a/assets/effects/sword_slashes/Blue Slash Wide/File3.png b/assets/effects/sword_slashes/Blue Slash Wide/File3.png
new file mode 100644 (file)
index 0000000..4743528
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Slash Wide/File3.png differ
diff --git a/assets/effects/sword_slashes/Blue Slash Wide/File4.png b/assets/effects/sword_slashes/Blue Slash Wide/File4.png
new file mode 100644 (file)
index 0000000..51a0a48
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Slash Wide/File4.png differ
diff --git a/assets/effects/sword_slashes/Blue Slash Wide/File5.png b/assets/effects/sword_slashes/Blue Slash Wide/File5.png
new file mode 100644 (file)
index 0000000..71d7e69
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Slash Wide/File5.png differ
diff --git a/assets/effects/sword_slashes/Blue Slash Wide/File6.png b/assets/effects/sword_slashes/Blue Slash Wide/File6.png
new file mode 100644 (file)
index 0000000..e91fc1c
Binary files /dev/null and b/assets/effects/sword_slashes/Blue Slash Wide/File6.png differ
diff --git a/assets/effects/sword_slashes/Pure White Slash Thin/.DS_Store b/assets/effects/sword_slashes/Pure White Slash Thin/.DS_Store
new file mode 100644 (file)
index 0000000..e2a3963
Binary files /dev/null and b/assets/effects/sword_slashes/Pure White Slash Thin/.DS_Store differ
diff --git a/assets/effects/sword_slashes/Pure White Slash Thin/File1.png b/assets/effects/sword_slashes/Pure White Slash Thin/File1.png
new file mode 100644 (file)
index 0000000..3890c2d
Binary files /dev/null and b/assets/effects/sword_slashes/Pure White Slash Thin/File1.png differ
diff --git a/assets/effects/sword_slashes/Pure White Slash Thin/File2.png b/assets/effects/sword_slashes/Pure White Slash Thin/File2.png
new file mode 100644 (file)
index 0000000..fca64ca
Binary files /dev/null and b/assets/effects/sword_slashes/Pure White Slash Thin/File2.png differ
diff --git a/assets/effects/sword_slashes/Pure White Slash Thin/File3.png b/assets/effects/sword_slashes/Pure White Slash Thin/File3.png
new file mode 100644 (file)
index 0000000..25024d5
Binary files /dev/null and b/assets/effects/sword_slashes/Pure White Slash Thin/File3.png differ
diff --git a/assets/effects/sword_slashes/Pure White Slash Thin/File4.png b/assets/effects/sword_slashes/Pure White Slash Thin/File4.png
new file mode 100644 (file)
index 0000000..4bd5938
Binary files /dev/null and b/assets/effects/sword_slashes/Pure White Slash Thin/File4.png differ
diff --git a/assets/effects/sword_slashes/Pure White Slash Thin/File5.png b/assets/effects/sword_slashes/Pure White Slash Thin/File5.png
new file mode 100644 (file)
index 0000000..8ecfd83
Binary files /dev/null and b/assets/effects/sword_slashes/Pure White Slash Thin/File5.png differ
diff --git a/assets/effects/sword_slashes/Pure White Slash Thin/File6.png b/assets/effects/sword_slashes/Pure White Slash Thin/File6.png
new file mode 100644 (file)
index 0000000..082310b
Binary files /dev/null and b/assets/effects/sword_slashes/Pure White Slash Thin/File6.png differ
diff --git a/assets/effects/sword_slashes/Pure White Slash Wide/.DS_Store b/assets/effects/sword_slashes/Pure White Slash Wide/.DS_Store
new file mode 100644 (file)
index 0000000..e2a3963
Binary files /dev/null and b/assets/effects/sword_slashes/Pure White Slash Wide/.DS_Store differ
diff --git a/assets/effects/sword_slashes/Pure White Slash Wide/File1.png b/assets/effects/sword_slashes/Pure White Slash Wide/File1.png
new file mode 100644 (file)
index 0000000..609c99e
Binary files /dev/null and b/assets/effects/sword_slashes/Pure White Slash Wide/File1.png differ
diff --git a/assets/effects/sword_slashes/Pure White Slash Wide/File2.png b/assets/effects/sword_slashes/Pure White Slash Wide/File2.png
new file mode 100644 (file)
index 0000000..8818c30
Binary files /dev/null and b/assets/effects/sword_slashes/Pure White Slash Wide/File2.png differ
diff --git a/assets/effects/sword_slashes/Pure White Slash Wide/File3.png b/assets/effects/sword_slashes/Pure White Slash Wide/File3.png
new file mode 100644 (file)
index 0000000..e7def94
Binary files /dev/null and b/assets/effects/sword_slashes/Pure White Slash Wide/File3.png differ
diff --git a/assets/effects/sword_slashes/Pure White Slash Wide/File4.png b/assets/effects/sword_slashes/Pure White Slash Wide/File4.png
new file mode 100644 (file)
index 0000000..fd18824
Binary files /dev/null and b/assets/effects/sword_slashes/Pure White Slash Wide/File4.png differ
diff --git a/assets/effects/sword_slashes/Pure White Slash Wide/File5.png b/assets/effects/sword_slashes/Pure White Slash Wide/File5.png
new file mode 100644 (file)
index 0000000..430c41c
Binary files /dev/null and b/assets/effects/sword_slashes/Pure White Slash Wide/File5.png differ
diff --git a/assets/effects/sword_slashes/Pure White Slash Wide/File6.png b/assets/effects/sword_slashes/Pure White Slash Wide/File6.png
new file mode 100644 (file)
index 0000000..8734e9f
Binary files /dev/null and b/assets/effects/sword_slashes/Pure White Slash Wide/File6.png differ
diff --git a/assets/effects/sword_slashes/Purple Slash Thin/.DS_Store b/assets/effects/sword_slashes/Purple Slash Thin/.DS_Store
new file mode 100644 (file)
index 0000000..e2a3963
Binary files /dev/null and b/assets/effects/sword_slashes/Purple Slash Thin/.DS_Store differ
diff --git a/assets/effects/sword_slashes/Purple Slash Thin/File1.png b/assets/effects/sword_slashes/Purple Slash Thin/File1.png
new file mode 100644 (file)
index 0000000..433b008
Binary files /dev/null and b/assets/effects/sword_slashes/Purple Slash Thin/File1.png differ
diff --git a/assets/effects/sword_slashes/Purple Slash Thin/File2.png b/assets/effects/sword_slashes/Purple Slash Thin/File2.png
new file mode 100644 (file)
index 0000000..2b61fa0
Binary files /dev/null and b/assets/effects/sword_slashes/Purple Slash Thin/File2.png differ
diff --git a/assets/effects/sword_slashes/Purple Slash Thin/File3.png b/assets/effects/sword_slashes/Purple Slash Thin/File3.png
new file mode 100644 (file)
index 0000000..cb68b85
Binary files /dev/null and b/assets/effects/sword_slashes/Purple Slash Thin/File3.png differ
diff --git a/assets/effects/sword_slashes/Purple Slash Thin/File4.png b/assets/effects/sword_slashes/Purple Slash Thin/File4.png
new file mode 100644 (file)
index 0000000..850443a
Binary files /dev/null and b/assets/effects/sword_slashes/Purple Slash Thin/File4.png differ
diff --git a/assets/effects/sword_slashes/Purple Slash Thin/File5.png b/assets/effects/sword_slashes/Purple Slash Thin/File5.png
new file mode 100644 (file)
index 0000000..87d7540
Binary files /dev/null and b/assets/effects/sword_slashes/Purple Slash Thin/File5.png differ
diff --git a/assets/effects/sword_slashes/Purple Slash Thin/File6.png b/assets/effects/sword_slashes/Purple Slash Thin/File6.png
new file mode 100644 (file)
index 0000000..0a38452
Binary files /dev/null and b/assets/effects/sword_slashes/Purple Slash Thin/File6.png differ
diff --git a/assets/effects/sword_slashes/Purple Slash Wide/.DS_Store b/assets/effects/sword_slashes/Purple Slash Wide/.DS_Store
new file mode 100644 (file)
index 0000000..e2a3963
Binary files /dev/null and b/assets/effects/sword_slashes/Purple Slash Wide/.DS_Store differ
diff --git a/assets/effects/sword_slashes/Purple Slash Wide/File1.png b/assets/effects/sword_slashes/Purple Slash Wide/File1.png
new file mode 100644 (file)
index 0000000..8b01767
Binary files /dev/null and b/assets/effects/sword_slashes/Purple Slash Wide/File1.png differ
diff --git a/assets/effects/sword_slashes/Purple Slash Wide/File2.png b/assets/effects/sword_slashes/Purple Slash Wide/File2.png
new file mode 100644 (file)
index 0000000..675ac1e
Binary files /dev/null and b/assets/effects/sword_slashes/Purple Slash Wide/File2.png differ
diff --git a/assets/effects/sword_slashes/Purple Slash Wide/File3.png b/assets/effects/sword_slashes/Purple Slash Wide/File3.png
new file mode 100644 (file)
index 0000000..4e8937e
Binary files /dev/null and b/assets/effects/sword_slashes/Purple Slash Wide/File3.png differ
diff --git a/assets/effects/sword_slashes/Purple Slash Wide/File4.png b/assets/effects/sword_slashes/Purple Slash Wide/File4.png
new file mode 100644 (file)
index 0000000..5c8d76e
Binary files /dev/null and b/assets/effects/sword_slashes/Purple Slash Wide/File4.png differ
diff --git a/assets/effects/sword_slashes/Purple Slash Wide/File5.png b/assets/effects/sword_slashes/Purple Slash Wide/File5.png
new file mode 100644 (file)
index 0000000..b58ca14
Binary files /dev/null and b/assets/effects/sword_slashes/Purple Slash Wide/File5.png differ
diff --git a/assets/effects/sword_slashes/Purple Slash Wide/File6.png b/assets/effects/sword_slashes/Purple Slash Wide/File6.png
new file mode 100644 (file)
index 0000000..9f2941e
Binary files /dev/null and b/assets/effects/sword_slashes/Purple Slash Wide/File6.png differ
diff --git a/assets/effects/sword_slashes/Red Slash Thin/.DS_Store b/assets/effects/sword_slashes/Red Slash Thin/.DS_Store
new file mode 100644 (file)
index 0000000..e2a3963
Binary files /dev/null and b/assets/effects/sword_slashes/Red Slash Thin/.DS_Store differ
diff --git a/assets/effects/sword_slashes/Red Slash Thin/File1.png b/assets/effects/sword_slashes/Red Slash Thin/File1.png
new file mode 100644 (file)
index 0000000..97340fc
Binary files /dev/null and b/assets/effects/sword_slashes/Red Slash Thin/File1.png differ
diff --git a/assets/effects/sword_slashes/Red Slash Thin/File2.png b/assets/effects/sword_slashes/Red Slash Thin/File2.png
new file mode 100644 (file)
index 0000000..beff0e7
Binary files /dev/null and b/assets/effects/sword_slashes/Red Slash Thin/File2.png differ
diff --git a/assets/effects/sword_slashes/Red Slash Thin/File3.png b/assets/effects/sword_slashes/Red Slash Thin/File3.png
new file mode 100644 (file)
index 0000000..6c8f98d
Binary files /dev/null and b/assets/effects/sword_slashes/Red Slash Thin/File3.png differ
diff --git a/assets/effects/sword_slashes/Red Slash Thin/File4.png b/assets/effects/sword_slashes/Red Slash Thin/File4.png
new file mode 100644 (file)
index 0000000..261fad6
Binary files /dev/null and b/assets/effects/sword_slashes/Red Slash Thin/File4.png differ
diff --git a/assets/effects/sword_slashes/Red Slash Thin/File5.png b/assets/effects/sword_slashes/Red Slash Thin/File5.png
new file mode 100644 (file)
index 0000000..92ed3fd
Binary files /dev/null and b/assets/effects/sword_slashes/Red Slash Thin/File5.png differ
diff --git a/assets/effects/sword_slashes/Red Slash Thin/File6.png b/assets/effects/sword_slashes/Red Slash Thin/File6.png
new file mode 100644 (file)
index 0000000..c1f2f00
Binary files /dev/null and b/assets/effects/sword_slashes/Red Slash Thin/File6.png differ
diff --git a/assets/effects/sword_slashes/Red Slash Wide/.DS_Store b/assets/effects/sword_slashes/Red Slash Wide/.DS_Store
new file mode 100644 (file)
index 0000000..e2a3963
Binary files /dev/null and b/assets/effects/sword_slashes/Red Slash Wide/.DS_Store differ
diff --git a/assets/effects/sword_slashes/Red Slash Wide/File1.png b/assets/effects/sword_slashes/Red Slash Wide/File1.png
new file mode 100644 (file)
index 0000000..0078f6c
Binary files /dev/null and b/assets/effects/sword_slashes/Red Slash Wide/File1.png differ
diff --git a/assets/effects/sword_slashes/Red Slash Wide/File2.png b/assets/effects/sword_slashes/Red Slash Wide/File2.png
new file mode 100644 (file)
index 0000000..6755952
Binary files /dev/null and b/assets/effects/sword_slashes/Red Slash Wide/File2.png differ
diff --git a/assets/effects/sword_slashes/Red Slash Wide/File3.png b/assets/effects/sword_slashes/Red Slash Wide/File3.png
new file mode 100644 (file)
index 0000000..3d44cdc
Binary files /dev/null and b/assets/effects/sword_slashes/Red Slash Wide/File3.png differ
diff --git a/assets/effects/sword_slashes/Red Slash Wide/File4.png b/assets/effects/sword_slashes/Red Slash Wide/File4.png
new file mode 100644 (file)
index 0000000..85a6ebc
Binary files /dev/null and b/assets/effects/sword_slashes/Red Slash Wide/File4.png differ
diff --git a/assets/effects/sword_slashes/Red Slash Wide/File5.png b/assets/effects/sword_slashes/Red Slash Wide/File5.png
new file mode 100644 (file)
index 0000000..af46994
Binary files /dev/null and b/assets/effects/sword_slashes/Red Slash Wide/File5.png differ
diff --git a/assets/effects/sword_slashes/Red Slash Wide/File6.png b/assets/effects/sword_slashes/Red Slash Wide/File6.png
new file mode 100644 (file)
index 0000000..9be459d
Binary files /dev/null and b/assets/effects/sword_slashes/Red Slash Wide/File6.png differ
diff --git a/assets/effects/sword_slashes/Red Yellow Group Slashes/.DS_Store b/assets/effects/sword_slashes/Red Yellow Group Slashes/.DS_Store
new file mode 100644 (file)
index 0000000..8332123
Binary files /dev/null and b/assets/effects/sword_slashes/Red Yellow Group Slashes/.DS_Store differ
diff --git a/assets/effects/sword_slashes/Red Yellow Group Slashes/File1.png b/assets/effects/sword_slashes/Red Yellow Group Slashes/File1.png
new file mode 100644 (file)
index 0000000..0b804bf
Binary files /dev/null and b/assets/effects/sword_slashes/Red Yellow Group Slashes/File1.png differ
diff --git a/assets/effects/sword_slashes/Red Yellow Group Slashes/File10.png b/assets/effects/sword_slashes/Red Yellow Group Slashes/File10.png
new file mode 100644 (file)
index 0000000..fd13aab
Binary files /dev/null and b/assets/effects/sword_slashes/Red Yellow Group Slashes/File10.png differ
diff --git a/assets/effects/sword_slashes/Red Yellow Group Slashes/File11.png b/assets/effects/sword_slashes/Red Yellow Group Slashes/File11.png
new file mode 100644 (file)
index 0000000..8b52b32
Binary files /dev/null and b/assets/effects/sword_slashes/Red Yellow Group Slashes/File11.png differ
diff --git a/assets/effects/sword_slashes/Red Yellow Group Slashes/File12.png b/assets/effects/sword_slashes/Red Yellow Group Slashes/File12.png
new file mode 100644 (file)
index 0000000..e78e278
Binary files /dev/null and b/assets/effects/sword_slashes/Red Yellow Group Slashes/File12.png differ
diff --git a/assets/effects/sword_slashes/Red Yellow Group Slashes/File13.png b/assets/effects/sword_slashes/Red Yellow Group Slashes/File13.png
new file mode 100644 (file)
index 0000000..74df054
Binary files /dev/null and b/assets/effects/sword_slashes/Red Yellow Group Slashes/File13.png differ
diff --git a/assets/effects/sword_slashes/Red Yellow Group Slashes/File14.png b/assets/effects/sword_slashes/Red Yellow Group Slashes/File14.png
new file mode 100644 (file)
index 0000000..16c02b7
Binary files /dev/null and b/assets/effects/sword_slashes/Red Yellow Group Slashes/File14.png differ
diff --git a/assets/effects/sword_slashes/Red Yellow Group Slashes/File15.png b/assets/effects/sword_slashes/Red Yellow Group Slashes/File15.png
new file mode 100644 (file)
index 0000000..f501705
Binary files /dev/null and b/assets/effects/sword_slashes/Red Yellow Group Slashes/File15.png differ
diff --git a/assets/effects/sword_slashes/Red Yellow Group Slashes/File16.png b/assets/effects/sword_slashes/Red Yellow Group Slashes/File16.png
new file mode 100644 (file)
index 0000000..f6fa18e
Binary files /dev/null and b/assets/effects/sword_slashes/Red Yellow Group Slashes/File16.png differ
diff --git a/assets/effects/sword_slashes/Red Yellow Group Slashes/File17.png b/assets/effects/sword_slashes/Red Yellow Group Slashes/File17.png
new file mode 100644 (file)
index 0000000..a8ba1f9
Binary files /dev/null and b/assets/effects/sword_slashes/Red Yellow Group Slashes/File17.png differ
diff --git a/assets/effects/sword_slashes/Red Yellow Group Slashes/File18.png b/assets/effects/sword_slashes/Red Yellow Group Slashes/File18.png
new file mode 100644 (file)
index 0000000..ecac973
Binary files /dev/null and b/assets/effects/sword_slashes/Red Yellow Group Slashes/File18.png differ
diff --git a/assets/effects/sword_slashes/Red Yellow Group Slashes/File19.png b/assets/effects/sword_slashes/Red Yellow Group Slashes/File19.png
new file mode 100644 (file)
index 0000000..86f0bb2
Binary files /dev/null and b/assets/effects/sword_slashes/Red Yellow Group Slashes/File19.png differ
diff --git a/assets/effects/sword_slashes/Red Yellow Group Slashes/File2.png b/assets/effects/sword_slashes/Red Yellow Group Slashes/File2.png
new file mode 100644 (file)
index 0000000..347ada2
Binary files /dev/null and b/assets/effects/sword_slashes/Red Yellow Group Slashes/File2.png differ
diff --git a/assets/effects/sword_slashes/Red Yellow Group Slashes/File20.png b/assets/effects/sword_slashes/Red Yellow Group Slashes/File20.png
new file mode 100644 (file)
index 0000000..7183e8b
Binary files /dev/null and b/assets/effects/sword_slashes/Red Yellow Group Slashes/File20.png differ
diff --git a/assets/effects/sword_slashes/Red Yellow Group Slashes/File3.png b/assets/effects/sword_slashes/Red Yellow Group Slashes/File3.png
new file mode 100644 (file)
index 0000000..16d8c3c
Binary files /dev/null and b/assets/effects/sword_slashes/Red Yellow Group Slashes/File3.png differ
diff --git a/assets/effects/sword_slashes/Red Yellow Group Slashes/File4.png b/assets/effects/sword_slashes/Red Yellow Group Slashes/File4.png
new file mode 100644 (file)
index 0000000..932f394
Binary files /dev/null and b/assets/effects/sword_slashes/Red Yellow Group Slashes/File4.png differ
diff --git a/assets/effects/sword_slashes/Red Yellow Group Slashes/File5.png b/assets/effects/sword_slashes/Red Yellow Group Slashes/File5.png
new file mode 100644 (file)
index 0000000..25c7989
Binary files /dev/null and b/assets/effects/sword_slashes/Red Yellow Group Slashes/File5.png differ
diff --git a/assets/effects/sword_slashes/Red Yellow Group Slashes/File6.png b/assets/effects/sword_slashes/Red Yellow Group Slashes/File6.png
new file mode 100644 (file)
index 0000000..1bd5c81
Binary files /dev/null and b/assets/effects/sword_slashes/Red Yellow Group Slashes/File6.png differ
diff --git a/assets/effects/sword_slashes/Red Yellow Group Slashes/File7.png b/assets/effects/sword_slashes/Red Yellow Group Slashes/File7.png
new file mode 100644 (file)
index 0000000..9062614
Binary files /dev/null and b/assets/effects/sword_slashes/Red Yellow Group Slashes/File7.png differ
diff --git a/assets/effects/sword_slashes/Red Yellow Group Slashes/File8.png b/assets/effects/sword_slashes/Red Yellow Group Slashes/File8.png
new file mode 100644 (file)
index 0000000..c3d9c54
Binary files /dev/null and b/assets/effects/sword_slashes/Red Yellow Group Slashes/File8.png differ
diff --git a/assets/effects/sword_slashes/Red Yellow Group Slashes/File9.png b/assets/effects/sword_slashes/Red Yellow Group Slashes/File9.png
new file mode 100644 (file)
index 0000000..6109a30
Binary files /dev/null and b/assets/effects/sword_slashes/Red Yellow Group Slashes/File9.png differ
diff --git a/assets/effects/sword_slashes/White Slash Wide/.DS_Store b/assets/effects/sword_slashes/White Slash Wide/.DS_Store
new file mode 100644 (file)
index 0000000..e2a3963
Binary files /dev/null and b/assets/effects/sword_slashes/White Slash Wide/.DS_Store differ
diff --git a/assets/effects/sword_slashes/White Slash Wide/File1.png b/assets/effects/sword_slashes/White Slash Wide/File1.png
new file mode 100644 (file)
index 0000000..4b7ed49
Binary files /dev/null and b/assets/effects/sword_slashes/White Slash Wide/File1.png differ
diff --git a/assets/effects/sword_slashes/White Slash Wide/File2.png b/assets/effects/sword_slashes/White Slash Wide/File2.png
new file mode 100644 (file)
index 0000000..48de797
Binary files /dev/null and b/assets/effects/sword_slashes/White Slash Wide/File2.png differ
diff --git a/assets/effects/sword_slashes/White Slash Wide/File3.png b/assets/effects/sword_slashes/White Slash Wide/File3.png
new file mode 100644 (file)
index 0000000..4b0bb19
Binary files /dev/null and b/assets/effects/sword_slashes/White Slash Wide/File3.png differ
diff --git a/assets/effects/sword_slashes/White Slash Wide/File4.png b/assets/effects/sword_slashes/White Slash Wide/File4.png
new file mode 100644 (file)
index 0000000..27c6c36
Binary files /dev/null and b/assets/effects/sword_slashes/White Slash Wide/File4.png differ
diff --git a/assets/effects/sword_slashes/White Slash Wide/File5.png b/assets/effects/sword_slashes/White Slash Wide/File5.png
new file mode 100644 (file)
index 0000000..bb17d7b
Binary files /dev/null and b/assets/effects/sword_slashes/White Slash Wide/File5.png differ
diff --git a/assets/effects/sword_slashes/White Slash Wide/File6.png b/assets/effects/sword_slashes/White Slash Wide/File6.png
new file mode 100644 (file)
index 0000000..5617372
Binary files /dev/null and b/assets/effects/sword_slashes/White Slash Wide/File6.png differ
diff --git a/assets/effects/sword_slashes/White_Group_Slashes/.DS_Store b/assets/effects/sword_slashes/White_Group_Slashes/.DS_Store
new file mode 100644 (file)
index 0000000..8332123
Binary files /dev/null and b/assets/effects/sword_slashes/White_Group_Slashes/.DS_Store differ
diff --git a/assets/effects/sword_slashes/White_Group_Slashes/File1.png b/assets/effects/sword_slashes/White_Group_Slashes/File1.png
new file mode 100644 (file)
index 0000000..1b8d377
Binary files /dev/null and b/assets/effects/sword_slashes/White_Group_Slashes/File1.png differ
diff --git a/assets/effects/sword_slashes/White_Group_Slashes/File10.png b/assets/effects/sword_slashes/White_Group_Slashes/File10.png
new file mode 100644 (file)
index 0000000..2a16f57
Binary files /dev/null and b/assets/effects/sword_slashes/White_Group_Slashes/File10.png differ
diff --git a/assets/effects/sword_slashes/White_Group_Slashes/File11.png b/assets/effects/sword_slashes/White_Group_Slashes/File11.png
new file mode 100644 (file)
index 0000000..dc8e5e5
Binary files /dev/null and b/assets/effects/sword_slashes/White_Group_Slashes/File11.png differ
diff --git a/assets/effects/sword_slashes/White_Group_Slashes/File12.png b/assets/effects/sword_slashes/White_Group_Slashes/File12.png
new file mode 100644 (file)
index 0000000..e4e9f94
Binary files /dev/null and b/assets/effects/sword_slashes/White_Group_Slashes/File12.png differ
diff --git a/assets/effects/sword_slashes/White_Group_Slashes/File13.png b/assets/effects/sword_slashes/White_Group_Slashes/File13.png
new file mode 100644 (file)
index 0000000..dcb3ba6
Binary files /dev/null and b/assets/effects/sword_slashes/White_Group_Slashes/File13.png differ
diff --git a/assets/effects/sword_slashes/White_Group_Slashes/File14.png b/assets/effects/sword_slashes/White_Group_Slashes/File14.png
new file mode 100644 (file)
index 0000000..28ae9b1
Binary files /dev/null and b/assets/effects/sword_slashes/White_Group_Slashes/File14.png differ
diff --git a/assets/effects/sword_slashes/White_Group_Slashes/File15.png b/assets/effects/sword_slashes/White_Group_Slashes/File15.png
new file mode 100644 (file)
index 0000000..7bb7ec4
Binary files /dev/null and b/assets/effects/sword_slashes/White_Group_Slashes/File15.png differ
diff --git a/assets/effects/sword_slashes/White_Group_Slashes/File16.png b/assets/effects/sword_slashes/White_Group_Slashes/File16.png
new file mode 100644 (file)
index 0000000..fa3da02
Binary files /dev/null and b/assets/effects/sword_slashes/White_Group_Slashes/File16.png differ
diff --git a/assets/effects/sword_slashes/White_Group_Slashes/File17.png b/assets/effects/sword_slashes/White_Group_Slashes/File17.png
new file mode 100644 (file)
index 0000000..aeb2476
Binary files /dev/null and b/assets/effects/sword_slashes/White_Group_Slashes/File17.png differ
diff --git a/assets/effects/sword_slashes/White_Group_Slashes/File18.png b/assets/effects/sword_slashes/White_Group_Slashes/File18.png
new file mode 100644 (file)
index 0000000..ac0b8dd
Binary files /dev/null and b/assets/effects/sword_slashes/White_Group_Slashes/File18.png differ
diff --git a/assets/effects/sword_slashes/White_Group_Slashes/File19.png b/assets/effects/sword_slashes/White_Group_Slashes/File19.png
new file mode 100644 (file)
index 0000000..6e67a13
Binary files /dev/null and b/assets/effects/sword_slashes/White_Group_Slashes/File19.png differ
diff --git a/assets/effects/sword_slashes/White_Group_Slashes/File2.png b/assets/effects/sword_slashes/White_Group_Slashes/File2.png
new file mode 100644 (file)
index 0000000..e62579f
Binary files /dev/null and b/assets/effects/sword_slashes/White_Group_Slashes/File2.png differ
diff --git a/assets/effects/sword_slashes/White_Group_Slashes/File20.png b/assets/effects/sword_slashes/White_Group_Slashes/File20.png
new file mode 100644 (file)
index 0000000..cdd921a
Binary files /dev/null and b/assets/effects/sword_slashes/White_Group_Slashes/File20.png differ
diff --git a/assets/effects/sword_slashes/White_Group_Slashes/File3.png b/assets/effects/sword_slashes/White_Group_Slashes/File3.png
new file mode 100644 (file)
index 0000000..17de07c
Binary files /dev/null and b/assets/effects/sword_slashes/White_Group_Slashes/File3.png differ
diff --git a/assets/effects/sword_slashes/White_Group_Slashes/File4.png b/assets/effects/sword_slashes/White_Group_Slashes/File4.png
new file mode 100644 (file)
index 0000000..830855d
Binary files /dev/null and b/assets/effects/sword_slashes/White_Group_Slashes/File4.png differ
diff --git a/assets/effects/sword_slashes/White_Group_Slashes/File5.png b/assets/effects/sword_slashes/White_Group_Slashes/File5.png
new file mode 100644 (file)
index 0000000..0e9fdc3
Binary files /dev/null and b/assets/effects/sword_slashes/White_Group_Slashes/File5.png differ
diff --git a/assets/effects/sword_slashes/White_Group_Slashes/File6.png b/assets/effects/sword_slashes/White_Group_Slashes/File6.png
new file mode 100644 (file)
index 0000000..f1b8029
Binary files /dev/null and b/assets/effects/sword_slashes/White_Group_Slashes/File6.png differ
diff --git a/assets/effects/sword_slashes/White_Group_Slashes/File7.png b/assets/effects/sword_slashes/White_Group_Slashes/File7.png
new file mode 100644 (file)
index 0000000..7af040d
Binary files /dev/null and b/assets/effects/sword_slashes/White_Group_Slashes/File7.png differ
diff --git a/assets/effects/sword_slashes/White_Group_Slashes/File8.png b/assets/effects/sword_slashes/White_Group_Slashes/File8.png
new file mode 100644 (file)
index 0000000..8a7a303
Binary files /dev/null and b/assets/effects/sword_slashes/White_Group_Slashes/File8.png differ
diff --git a/assets/effects/sword_slashes/White_Group_Slashes/File9.png b/assets/effects/sword_slashes/White_Group_Slashes/File9.png
new file mode 100644 (file)
index 0000000..1bc35ea
Binary files /dev/null and b/assets/effects/sword_slashes/White_Group_Slashes/File9.png differ
diff --git a/assets/effects/sword_slashes/White_Slash_Thin/.DS_Store b/assets/effects/sword_slashes/White_Slash_Thin/.DS_Store
new file mode 100644 (file)
index 0000000..e2a3963
Binary files /dev/null and b/assets/effects/sword_slashes/White_Slash_Thin/.DS_Store differ
diff --git a/assets/effects/sword_slashes/White_Slash_Thin/File1.png b/assets/effects/sword_slashes/White_Slash_Thin/File1.png
new file mode 100644 (file)
index 0000000..744aad9
Binary files /dev/null and b/assets/effects/sword_slashes/White_Slash_Thin/File1.png differ
diff --git a/assets/effects/sword_slashes/White_Slash_Thin/File2.png b/assets/effects/sword_slashes/White_Slash_Thin/File2.png
new file mode 100644 (file)
index 0000000..e3e06d5
Binary files /dev/null and b/assets/effects/sword_slashes/White_Slash_Thin/File2.png differ
diff --git a/assets/effects/sword_slashes/White_Slash_Thin/File3.png b/assets/effects/sword_slashes/White_Slash_Thin/File3.png
new file mode 100644 (file)
index 0000000..4d530f8
Binary files /dev/null and b/assets/effects/sword_slashes/White_Slash_Thin/File3.png differ
diff --git a/assets/effects/sword_slashes/White_Slash_Thin/File4.png b/assets/effects/sword_slashes/White_Slash_Thin/File4.png
new file mode 100644 (file)
index 0000000..68c9340
Binary files /dev/null and b/assets/effects/sword_slashes/White_Slash_Thin/File4.png differ
diff --git a/assets/effects/sword_slashes/White_Slash_Thin/File5.png b/assets/effects/sword_slashes/White_Slash_Thin/File5.png
new file mode 100644 (file)
index 0000000..4c9fbbf
Binary files /dev/null and b/assets/effects/sword_slashes/White_Slash_Thin/File5.png differ
diff --git a/assets/effects/sword_slashes/White_Slash_Thin/File6.png b/assets/effects/sword_slashes/White_Slash_Thin/File6.png
new file mode 100644 (file)
index 0000000..a132ed8
Binary files /dev/null and b/assets/effects/sword_slashes/White_Slash_Thin/File6.png differ
diff --git a/assets/explosion/Punch1/.DS_Store b/assets/explosion/Punch1/.DS_Store
new file mode 100644 (file)
index 0000000..e135747
Binary files /dev/null and b/assets/explosion/Punch1/.DS_Store differ
diff --git a/assets/explosion/Punch1/File1.png b/assets/explosion/Punch1/File1.png
new file mode 100644 (file)
index 0000000..37ad6a7
Binary files /dev/null and b/assets/explosion/Punch1/File1.png differ
diff --git a/assets/explosion/Punch1/File2.png b/assets/explosion/Punch1/File2.png
new file mode 100644 (file)
index 0000000..282069f
Binary files /dev/null and b/assets/explosion/Punch1/File2.png differ
diff --git a/assets/explosion/Punch1/File3.png b/assets/explosion/Punch1/File3.png
new file mode 100644 (file)
index 0000000..1061618
Binary files /dev/null and b/assets/explosion/Punch1/File3.png differ
diff --git a/assets/explosion/Punch1/File4.png b/assets/explosion/Punch1/File4.png
new file mode 100644 (file)
index 0000000..16e74fe
Binary files /dev/null and b/assets/explosion/Punch1/File4.png differ
diff --git a/assets/explosion/Punch1/File5.png b/assets/explosion/Punch1/File5.png
new file mode 100644 (file)
index 0000000..d381539
Binary files /dev/null and b/assets/explosion/Punch1/File5.png differ
diff --git a/assets/explosion/Punch1/File6.png b/assets/explosion/Punch1/File6.png
new file mode 100644 (file)
index 0000000..d512c7e
Binary files /dev/null and b/assets/explosion/Punch1/File6.png differ
diff --git a/assets/explosion/Punch2/.DS_Store b/assets/explosion/Punch2/.DS_Store
new file mode 100644 (file)
index 0000000..e2a3963
Binary files /dev/null and b/assets/explosion/Punch2/.DS_Store differ
diff --git a/assets/explosion/Punch2/File1.png b/assets/explosion/Punch2/File1.png
new file mode 100644 (file)
index 0000000..be9658c
Binary files /dev/null and b/assets/explosion/Punch2/File1.png differ
diff --git a/assets/explosion/Punch2/File2.png b/assets/explosion/Punch2/File2.png
new file mode 100644 (file)
index 0000000..4168867
Binary files /dev/null and b/assets/explosion/Punch2/File2.png differ
diff --git a/assets/explosion/Punch2/File3.png b/assets/explosion/Punch2/File3.png
new file mode 100644 (file)
index 0000000..afa2053
Binary files /dev/null and b/assets/explosion/Punch2/File3.png differ
diff --git a/assets/explosion/Punch2/File4.png b/assets/explosion/Punch2/File4.png
new file mode 100644 (file)
index 0000000..3b4abf4
Binary files /dev/null and b/assets/explosion/Punch2/File4.png differ
diff --git a/assets/explosion/Punch2/File5.png b/assets/explosion/Punch2/File5.png
new file mode 100644 (file)
index 0000000..54b703b
Binary files /dev/null and b/assets/explosion/Punch2/File5.png differ
diff --git a/assets/explosion/Punch2/File6.png b/assets/explosion/Punch2/File6.png
new file mode 100644 (file)
index 0000000..44693e9
Binary files /dev/null and b/assets/explosion/Punch2/File6.png differ
diff --git a/assets/explosion/Punch3/.DS_Store b/assets/explosion/Punch3/.DS_Store
new file mode 100644 (file)
index 0000000..e2a3963
Binary files /dev/null and b/assets/explosion/Punch3/.DS_Store differ
diff --git a/assets/explosion/Punch3/File1.png b/assets/explosion/Punch3/File1.png
new file mode 100644 (file)
index 0000000..bcbde0c
Binary files /dev/null and b/assets/explosion/Punch3/File1.png differ
diff --git a/assets/explosion/Punch3/File2.png b/assets/explosion/Punch3/File2.png
new file mode 100644 (file)
index 0000000..2e1e7c2
Binary files /dev/null and b/assets/explosion/Punch3/File2.png differ
diff --git a/assets/explosion/Punch3/File3.png b/assets/explosion/Punch3/File3.png
new file mode 100644 (file)
index 0000000..02f8374
Binary files /dev/null and b/assets/explosion/Punch3/File3.png differ
diff --git a/assets/explosion/Punch3/File4.png b/assets/explosion/Punch3/File4.png
new file mode 100644 (file)
index 0000000..ed518c8
Binary files /dev/null and b/assets/explosion/Punch3/File4.png differ
diff --git a/assets/explosion/Punch3/File5.png b/assets/explosion/Punch3/File5.png
new file mode 100644 (file)
index 0000000..49ad65f
Binary files /dev/null and b/assets/explosion/Punch3/File5.png differ
diff --git a/assets/explosion/Punch3/File6.png b/assets/explosion/Punch3/File6.png
new file mode 100644 (file)
index 0000000..5ed4313
Binary files /dev/null and b/assets/explosion/Punch3/File6.png differ
diff --git a/assets/explosion/WhitePunch1/.DS_Store b/assets/explosion/WhitePunch1/.DS_Store
new file mode 100644 (file)
index 0000000..e2a3963
Binary files /dev/null and b/assets/explosion/WhitePunch1/.DS_Store differ
diff --git a/assets/explosion/WhitePunch1/File1.png b/assets/explosion/WhitePunch1/File1.png
new file mode 100644 (file)
index 0000000..3c230ba
Binary files /dev/null and b/assets/explosion/WhitePunch1/File1.png differ
diff --git a/assets/explosion/WhitePunch1/File2.png b/assets/explosion/WhitePunch1/File2.png
new file mode 100644 (file)
index 0000000..1d2231c
Binary files /dev/null and b/assets/explosion/WhitePunch1/File2.png differ
diff --git a/assets/explosion/WhitePunch1/File3.png b/assets/explosion/WhitePunch1/File3.png
new file mode 100644 (file)
index 0000000..53c81d9
Binary files /dev/null and b/assets/explosion/WhitePunch1/File3.png differ
diff --git a/assets/explosion/WhitePunch1/File4.png b/assets/explosion/WhitePunch1/File4.png
new file mode 100644 (file)
index 0000000..fce1e99
Binary files /dev/null and b/assets/explosion/WhitePunch1/File4.png differ
diff --git a/assets/explosion/WhitePunch1/File5.png b/assets/explosion/WhitePunch1/File5.png
new file mode 100644 (file)
index 0000000..890033e
Binary files /dev/null and b/assets/explosion/WhitePunch1/File5.png differ
diff --git a/assets/explosion/WhitePunch1/File6.png b/assets/explosion/WhitePunch1/File6.png
new file mode 100644 (file)
index 0000000..d512c7e
Binary files /dev/null and b/assets/explosion/WhitePunch1/File6.png differ
diff --git a/assets/explosion/WhitePunch2/.DS_Store b/assets/explosion/WhitePunch2/.DS_Store
new file mode 100644 (file)
index 0000000..b3d050e
Binary files /dev/null and b/assets/explosion/WhitePunch2/.DS_Store differ
diff --git a/assets/explosion/WhitePunch2/File1.png b/assets/explosion/WhitePunch2/File1.png
new file mode 100644 (file)
index 0000000..1bf31ed
Binary files /dev/null and b/assets/explosion/WhitePunch2/File1.png differ
diff --git a/assets/explosion/WhitePunch2/File2.png b/assets/explosion/WhitePunch2/File2.png
new file mode 100644 (file)
index 0000000..058d52d
Binary files /dev/null and b/assets/explosion/WhitePunch2/File2.png differ
diff --git a/assets/explosion/WhitePunch2/File3.png b/assets/explosion/WhitePunch2/File3.png
new file mode 100644 (file)
index 0000000..3b8355f
Binary files /dev/null and b/assets/explosion/WhitePunch2/File3.png differ
diff --git a/assets/explosion/WhitePunch2/File4.png b/assets/explosion/WhitePunch2/File4.png
new file mode 100644 (file)
index 0000000..9605fed
Binary files /dev/null and b/assets/explosion/WhitePunch2/File4.png differ
diff --git a/assets/explosion/WhitePunch2/File5.png b/assets/explosion/WhitePunch2/File5.png
new file mode 100644 (file)
index 0000000..36871e2
Binary files /dev/null and b/assets/explosion/WhitePunch2/File5.png differ
diff --git a/assets/explosion/WhitePunch2/File6.png b/assets/explosion/WhitePunch2/File6.png
new file mode 100644 (file)
index 0000000..44693e9
Binary files /dev/null and b/assets/explosion/WhitePunch2/File6.png differ
diff --git a/assets/explosion/WhitePunch3/.DS_Store b/assets/explosion/WhitePunch3/.DS_Store
new file mode 100644 (file)
index 0000000..5eb33f1
Binary files /dev/null and b/assets/explosion/WhitePunch3/.DS_Store differ
diff --git a/assets/explosion/WhitePunch3/File1.png b/assets/explosion/WhitePunch3/File1.png
new file mode 100644 (file)
index 0000000..6d71321
Binary files /dev/null and b/assets/explosion/WhitePunch3/File1.png differ
diff --git a/assets/explosion/WhitePunch3/File2.png b/assets/explosion/WhitePunch3/File2.png
new file mode 100644 (file)
index 0000000..4b45b31
Binary files /dev/null and b/assets/explosion/WhitePunch3/File2.png differ
diff --git a/assets/explosion/WhitePunch3/File3.png b/assets/explosion/WhitePunch3/File3.png
new file mode 100644 (file)
index 0000000..31042d0
Binary files /dev/null and b/assets/explosion/WhitePunch3/File3.png differ
diff --git a/assets/explosion/WhitePunch3/File4.png b/assets/explosion/WhitePunch3/File4.png
new file mode 100644 (file)
index 0000000..712ce6e
Binary files /dev/null and b/assets/explosion/WhitePunch3/File4.png differ
diff --git a/assets/explosion/WhitePunch3/File5.png b/assets/explosion/WhitePunch3/File5.png
new file mode 100644 (file)
index 0000000..fc35285
Binary files /dev/null and b/assets/explosion/WhitePunch3/File5.png differ
diff --git a/assets/explosion/WhitePunch3/File6.png b/assets/explosion/WhitePunch3/File6.png
new file mode 100644 (file)
index 0000000..5ed4313
Binary files /dev/null and b/assets/explosion/WhitePunch3/File6.png differ
diff --git a/assets/font/go3v2.ttf b/assets/font/go3v2.ttf
new file mode 100644 (file)
index 0000000..23d266d
Binary files /dev/null and b/assets/font/go3v2.ttf differ
diff --git a/assets/fruits/0.png b/assets/fruits/0.png
new file mode 100644 (file)
index 0000000..9ab007c
Binary files /dev/null and b/assets/fruits/0.png differ
diff --git a/assets/fruits/1.png b/assets/fruits/1.png
new file mode 100644 (file)
index 0000000..e130c03
Binary files /dev/null and b/assets/fruits/1.png differ
diff --git a/assets/fruits/10.png b/assets/fruits/10.png
new file mode 100644 (file)
index 0000000..905ad70
Binary files /dev/null and b/assets/fruits/10.png differ
diff --git a/assets/fruits/101.png b/assets/fruits/101.png
new file mode 100644 (file)
index 0000000..f714836
Binary files /dev/null and b/assets/fruits/101.png differ
diff --git a/assets/fruits/102.png b/assets/fruits/102.png
new file mode 100644 (file)
index 0000000..afbff0e
Binary files /dev/null and b/assets/fruits/102.png differ
diff --git a/assets/fruits/103.png b/assets/fruits/103.png
new file mode 100644 (file)
index 0000000..f431ba7
Binary files /dev/null and b/assets/fruits/103.png differ
diff --git a/assets/fruits/104.png b/assets/fruits/104.png
new file mode 100644 (file)
index 0000000..c4efeed
Binary files /dev/null and b/assets/fruits/104.png differ
diff --git a/assets/fruits/105.png b/assets/fruits/105.png
new file mode 100644 (file)
index 0000000..3324cf8
Binary files /dev/null and b/assets/fruits/105.png differ
diff --git a/assets/fruits/106.png b/assets/fruits/106.png
new file mode 100644 (file)
index 0000000..53f021a
Binary files /dev/null and b/assets/fruits/106.png differ
diff --git a/assets/fruits/107.png b/assets/fruits/107.png
new file mode 100644 (file)
index 0000000..c928f5d
Binary files /dev/null and b/assets/fruits/107.png differ
diff --git a/assets/fruits/108.png b/assets/fruits/108.png
new file mode 100644 (file)
index 0000000..6aaa6de
Binary files /dev/null and b/assets/fruits/108.png differ
diff --git a/assets/fruits/109.png b/assets/fruits/109.png
new file mode 100644 (file)
index 0000000..f78fff8
Binary files /dev/null and b/assets/fruits/109.png differ
diff --git a/assets/fruits/11.png b/assets/fruits/11.png
new file mode 100644 (file)
index 0000000..72ed416
Binary files /dev/null and b/assets/fruits/11.png differ
diff --git a/assets/fruits/110.png b/assets/fruits/110.png
new file mode 100644 (file)
index 0000000..c1a6fa2
Binary files /dev/null and b/assets/fruits/110.png differ
diff --git a/assets/fruits/111.png b/assets/fruits/111.png
new file mode 100644 (file)
index 0000000..578d2fd
Binary files /dev/null and b/assets/fruits/111.png differ
diff --git a/assets/fruits/112.png b/assets/fruits/112.png
new file mode 100644 (file)
index 0000000..24a2403
Binary files /dev/null and b/assets/fruits/112.png differ
diff --git a/assets/fruits/113.png b/assets/fruits/113.png
new file mode 100644 (file)
index 0000000..10bbae4
Binary files /dev/null and b/assets/fruits/113.png differ
diff --git a/assets/fruits/114.png b/assets/fruits/114.png
new file mode 100644 (file)
index 0000000..7cf6096
Binary files /dev/null and b/assets/fruits/114.png differ
diff --git a/assets/fruits/115.png b/assets/fruits/115.png
new file mode 100644 (file)
index 0000000..8cab232
Binary files /dev/null and b/assets/fruits/115.png differ
diff --git a/assets/fruits/116.png b/assets/fruits/116.png
new file mode 100644 (file)
index 0000000..33bc7f7
Binary files /dev/null and b/assets/fruits/116.png differ
diff --git a/assets/fruits/117.png b/assets/fruits/117.png
new file mode 100644 (file)
index 0000000..d901cc7
Binary files /dev/null and b/assets/fruits/117.png differ
diff --git a/assets/fruits/118.png b/assets/fruits/118.png
new file mode 100644 (file)
index 0000000..2985d79
Binary files /dev/null and b/assets/fruits/118.png differ
diff --git a/assets/fruits/119.png b/assets/fruits/119.png
new file mode 100644 (file)
index 0000000..f4e12cc
Binary files /dev/null and b/assets/fruits/119.png differ
diff --git a/assets/fruits/120.png b/assets/fruits/120.png
new file mode 100644 (file)
index 0000000..e82e2e7
Binary files /dev/null and b/assets/fruits/120.png differ
diff --git a/assets/fruits/121.png b/assets/fruits/121.png
new file mode 100644 (file)
index 0000000..017d071
Binary files /dev/null and b/assets/fruits/121.png differ
diff --git a/assets/fruits/122.png b/assets/fruits/122.png
new file mode 100644 (file)
index 0000000..5684b7b
Binary files /dev/null and b/assets/fruits/122.png differ
diff --git a/assets/fruits/123.png b/assets/fruits/123.png
new file mode 100644 (file)
index 0000000..7059863
Binary files /dev/null and b/assets/fruits/123.png differ
diff --git a/assets/fruits/124.png b/assets/fruits/124.png
new file mode 100644 (file)
index 0000000..d69b32d
Binary files /dev/null and b/assets/fruits/124.png differ
diff --git a/assets/fruits/125.png b/assets/fruits/125.png
new file mode 100644 (file)
index 0000000..b8bfa99
Binary files /dev/null and b/assets/fruits/125.png differ
diff --git a/assets/fruits/126.png b/assets/fruits/126.png
new file mode 100644 (file)
index 0000000..592feb8
Binary files /dev/null and b/assets/fruits/126.png differ
diff --git a/assets/fruits/127.png b/assets/fruits/127.png
new file mode 100644 (file)
index 0000000..4b6e588
Binary files /dev/null and b/assets/fruits/127.png differ
diff --git a/assets/fruits/128.png b/assets/fruits/128.png
new file mode 100644 (file)
index 0000000..d3fec40
Binary files /dev/null and b/assets/fruits/128.png differ
diff --git a/assets/fruits/129.png b/assets/fruits/129.png
new file mode 100644 (file)
index 0000000..902ae3b
Binary files /dev/null and b/assets/fruits/129.png differ
diff --git a/assets/fruits/130.png b/assets/fruits/130.png
new file mode 100644 (file)
index 0000000..000e37c
Binary files /dev/null and b/assets/fruits/130.png differ
diff --git a/assets/fruits/131.png b/assets/fruits/131.png
new file mode 100644 (file)
index 0000000..a526e0a
Binary files /dev/null and b/assets/fruits/131.png differ
diff --git a/assets/fruits/137.png b/assets/fruits/137.png
new file mode 100644 (file)
index 0000000..b73b83d
Binary files /dev/null and b/assets/fruits/137.png differ
diff --git a/assets/fruits/138.png b/assets/fruits/138.png
new file mode 100644 (file)
index 0000000..3904af7
Binary files /dev/null and b/assets/fruits/138.png differ
diff --git a/assets/fruits/139.png b/assets/fruits/139.png
new file mode 100644 (file)
index 0000000..d2dad61
Binary files /dev/null and b/assets/fruits/139.png differ
diff --git a/assets/fruits/14.png b/assets/fruits/14.png
new file mode 100644 (file)
index 0000000..f402abf
Binary files /dev/null and b/assets/fruits/14.png differ
diff --git a/assets/fruits/140.png b/assets/fruits/140.png
new file mode 100644 (file)
index 0000000..72a0c65
Binary files /dev/null and b/assets/fruits/140.png differ
diff --git a/assets/fruits/141.png b/assets/fruits/141.png
new file mode 100644 (file)
index 0000000..f6e0a83
Binary files /dev/null and b/assets/fruits/141.png differ
diff --git a/assets/fruits/142.png b/assets/fruits/142.png
new file mode 100644 (file)
index 0000000..6451784
Binary files /dev/null and b/assets/fruits/142.png differ
diff --git a/assets/fruits/143.png b/assets/fruits/143.png
new file mode 100644 (file)
index 0000000..12fcea4
Binary files /dev/null and b/assets/fruits/143.png differ
diff --git a/assets/fruits/144.png b/assets/fruits/144.png
new file mode 100644 (file)
index 0000000..2f33db1
Binary files /dev/null and b/assets/fruits/144.png differ
diff --git a/assets/fruits/145.png b/assets/fruits/145.png
new file mode 100644 (file)
index 0000000..a1a1753
Binary files /dev/null and b/assets/fruits/145.png differ
diff --git a/assets/fruits/146.png b/assets/fruits/146.png
new file mode 100644 (file)
index 0000000..28f2200
Binary files /dev/null and b/assets/fruits/146.png differ
diff --git a/assets/fruits/147.png b/assets/fruits/147.png
new file mode 100644 (file)
index 0000000..ef31ff9
Binary files /dev/null and b/assets/fruits/147.png differ
diff --git a/assets/fruits/148.png b/assets/fruits/148.png
new file mode 100644 (file)
index 0000000..4d85f6c
Binary files /dev/null and b/assets/fruits/148.png differ
diff --git a/assets/fruits/149.png b/assets/fruits/149.png
new file mode 100644 (file)
index 0000000..a3208ac
Binary files /dev/null and b/assets/fruits/149.png differ
diff --git a/assets/fruits/15.png b/assets/fruits/15.png
new file mode 100644 (file)
index 0000000..d62774d
Binary files /dev/null and b/assets/fruits/15.png differ
diff --git a/assets/fruits/150.png b/assets/fruits/150.png
new file mode 100644 (file)
index 0000000..79e3c32
Binary files /dev/null and b/assets/fruits/150.png differ
diff --git a/assets/fruits/151.png b/assets/fruits/151.png
new file mode 100644 (file)
index 0000000..28757b4
Binary files /dev/null and b/assets/fruits/151.png differ
diff --git a/assets/fruits/157.png b/assets/fruits/157.png
new file mode 100644 (file)
index 0000000..e560fcd
Binary files /dev/null and b/assets/fruits/157.png differ
diff --git a/assets/fruits/158.png b/assets/fruits/158.png
new file mode 100644 (file)
index 0000000..215aecf
Binary files /dev/null and b/assets/fruits/158.png differ
diff --git a/assets/fruits/159.png b/assets/fruits/159.png
new file mode 100644 (file)
index 0000000..5c48034
Binary files /dev/null and b/assets/fruits/159.png differ
diff --git a/assets/fruits/16.png b/assets/fruits/16.png
new file mode 100644 (file)
index 0000000..3d5fd41
Binary files /dev/null and b/assets/fruits/16.png differ
diff --git a/assets/fruits/160.png b/assets/fruits/160.png
new file mode 100644 (file)
index 0000000..806ace6
Binary files /dev/null and b/assets/fruits/160.png differ
diff --git a/assets/fruits/161.png b/assets/fruits/161.png
new file mode 100644 (file)
index 0000000..b31ea99
Binary files /dev/null and b/assets/fruits/161.png differ
diff --git a/assets/fruits/162.png b/assets/fruits/162.png
new file mode 100644 (file)
index 0000000..16a8ffd
Binary files /dev/null and b/assets/fruits/162.png differ
diff --git a/assets/fruits/163.png b/assets/fruits/163.png
new file mode 100644 (file)
index 0000000..22b3cfd
Binary files /dev/null and b/assets/fruits/163.png differ
diff --git a/assets/fruits/164.png b/assets/fruits/164.png
new file mode 100644 (file)
index 0000000..d09fe2b
Binary files /dev/null and b/assets/fruits/164.png differ
diff --git a/assets/fruits/165.png b/assets/fruits/165.png
new file mode 100644 (file)
index 0000000..7727713
Binary files /dev/null and b/assets/fruits/165.png differ
diff --git a/assets/fruits/166.png b/assets/fruits/166.png
new file mode 100644 (file)
index 0000000..96b6994
Binary files /dev/null and b/assets/fruits/166.png differ
diff --git a/assets/fruits/167.png b/assets/fruits/167.png
new file mode 100644 (file)
index 0000000..a2a6cc8
Binary files /dev/null and b/assets/fruits/167.png differ
diff --git a/assets/fruits/168.png b/assets/fruits/168.png
new file mode 100644 (file)
index 0000000..96b6a13
Binary files /dev/null and b/assets/fruits/168.png differ
diff --git a/assets/fruits/169.png b/assets/fruits/169.png
new file mode 100644 (file)
index 0000000..5dfa5a9
Binary files /dev/null and b/assets/fruits/169.png differ
diff --git a/assets/fruits/17.png b/assets/fruits/17.png
new file mode 100644 (file)
index 0000000..ec30e9d
Binary files /dev/null and b/assets/fruits/17.png differ
diff --git a/assets/fruits/170.png b/assets/fruits/170.png
new file mode 100644 (file)
index 0000000..f616e29
Binary files /dev/null and b/assets/fruits/170.png differ
diff --git a/assets/fruits/171.png b/assets/fruits/171.png
new file mode 100644 (file)
index 0000000..e1b6351
Binary files /dev/null and b/assets/fruits/171.png differ
diff --git a/assets/fruits/172.png b/assets/fruits/172.png
new file mode 100644 (file)
index 0000000..1d39d78
Binary files /dev/null and b/assets/fruits/172.png differ
diff --git a/assets/fruits/173.png b/assets/fruits/173.png
new file mode 100644 (file)
index 0000000..2021563
Binary files /dev/null and b/assets/fruits/173.png differ
diff --git a/assets/fruits/18.png b/assets/fruits/18.png
new file mode 100644 (file)
index 0000000..9f86afd
Binary files /dev/null and b/assets/fruits/18.png differ
diff --git a/assets/fruits/19.png b/assets/fruits/19.png
new file mode 100644 (file)
index 0000000..538f707
Binary files /dev/null and b/assets/fruits/19.png differ
diff --git a/assets/fruits/2.png b/assets/fruits/2.png
new file mode 100644 (file)
index 0000000..1f0347e
Binary files /dev/null and b/assets/fruits/2.png differ
diff --git a/assets/fruits/21.png b/assets/fruits/21.png
new file mode 100644 (file)
index 0000000..cdee7ba
Binary files /dev/null and b/assets/fruits/21.png differ
diff --git a/assets/fruits/22.png b/assets/fruits/22.png
new file mode 100644 (file)
index 0000000..28aa0fd
Binary files /dev/null and b/assets/fruits/22.png differ
diff --git a/assets/fruits/23.png b/assets/fruits/23.png
new file mode 100644 (file)
index 0000000..2cea321
Binary files /dev/null and b/assets/fruits/23.png differ
diff --git a/assets/fruits/24.png b/assets/fruits/24.png
new file mode 100644 (file)
index 0000000..d9aa22e
Binary files /dev/null and b/assets/fruits/24.png differ
diff --git a/assets/fruits/28.png b/assets/fruits/28.png
new file mode 100644 (file)
index 0000000..0877b44
Binary files /dev/null and b/assets/fruits/28.png differ
diff --git a/assets/fruits/29.png b/assets/fruits/29.png
new file mode 100644 (file)
index 0000000..45ef0c3
Binary files /dev/null and b/assets/fruits/29.png differ
diff --git a/assets/fruits/30.png b/assets/fruits/30.png
new file mode 100644 (file)
index 0000000..87a1189
Binary files /dev/null and b/assets/fruits/30.png differ
diff --git a/assets/fruits/31.png b/assets/fruits/31.png
new file mode 100644 (file)
index 0000000..94f2d66
Binary files /dev/null and b/assets/fruits/31.png differ
diff --git a/assets/fruits/32.png b/assets/fruits/32.png
new file mode 100644 (file)
index 0000000..a30e6ce
Binary files /dev/null and b/assets/fruits/32.png differ
diff --git a/assets/fruits/33.png b/assets/fruits/33.png
new file mode 100644 (file)
index 0000000..d1a7836
Binary files /dev/null and b/assets/fruits/33.png differ
diff --git a/assets/fruits/35.png b/assets/fruits/35.png
new file mode 100644 (file)
index 0000000..7fdcb06
Binary files /dev/null and b/assets/fruits/35.png differ
diff --git a/assets/fruits/36.png b/assets/fruits/36.png
new file mode 100644 (file)
index 0000000..4f56d6d
Binary files /dev/null and b/assets/fruits/36.png differ
diff --git a/assets/fruits/37.png b/assets/fruits/37.png
new file mode 100644 (file)
index 0000000..e7d0533
Binary files /dev/null and b/assets/fruits/37.png differ
diff --git a/assets/fruits/41.png b/assets/fruits/41.png
new file mode 100644 (file)
index 0000000..8b28d9e
Binary files /dev/null and b/assets/fruits/41.png differ
diff --git a/assets/fruits/42.png b/assets/fruits/42.png
new file mode 100644 (file)
index 0000000..d759a1f
Binary files /dev/null and b/assets/fruits/42.png differ
diff --git a/assets/fruits/45.png b/assets/fruits/45.png
new file mode 100644 (file)
index 0000000..0e74fa7
Binary files /dev/null and b/assets/fruits/45.png differ
diff --git a/assets/fruits/46.png b/assets/fruits/46.png
new file mode 100644 (file)
index 0000000..ee04d02
Binary files /dev/null and b/assets/fruits/46.png differ
diff --git a/assets/fruits/47.png b/assets/fruits/47.png
new file mode 100644 (file)
index 0000000..344adf3
Binary files /dev/null and b/assets/fruits/47.png differ
diff --git a/assets/fruits/48.png b/assets/fruits/48.png
new file mode 100644 (file)
index 0000000..834fae7
Binary files /dev/null and b/assets/fruits/48.png differ
diff --git a/assets/fruits/49.png b/assets/fruits/49.png
new file mode 100644 (file)
index 0000000..93e14ce
Binary files /dev/null and b/assets/fruits/49.png differ
diff --git a/assets/fruits/50.png b/assets/fruits/50.png
new file mode 100644 (file)
index 0000000..801d492
Binary files /dev/null and b/assets/fruits/50.png differ
diff --git a/assets/fruits/51.png b/assets/fruits/51.png
new file mode 100644 (file)
index 0000000..04a3c7b
Binary files /dev/null and b/assets/fruits/51.png differ
diff --git a/assets/fruits/52.png b/assets/fruits/52.png
new file mode 100644 (file)
index 0000000..d35c453
Binary files /dev/null and b/assets/fruits/52.png differ
diff --git a/assets/fruits/53.png b/assets/fruits/53.png
new file mode 100644 (file)
index 0000000..20bb5fe
Binary files /dev/null and b/assets/fruits/53.png differ
diff --git a/assets/fruits/54.png b/assets/fruits/54.png
new file mode 100644 (file)
index 0000000..e39a304
Binary files /dev/null and b/assets/fruits/54.png differ
diff --git a/assets/fruits/55.png b/assets/fruits/55.png
new file mode 100644 (file)
index 0000000..5ca85fb
Binary files /dev/null and b/assets/fruits/55.png differ
diff --git a/assets/fruits/56.png b/assets/fruits/56.png
new file mode 100644 (file)
index 0000000..12e4cd6
Binary files /dev/null and b/assets/fruits/56.png differ
diff --git a/assets/fruits/57.png b/assets/fruits/57.png
new file mode 100644 (file)
index 0000000..d3f1451
Binary files /dev/null and b/assets/fruits/57.png differ
diff --git a/assets/fruits/58.png b/assets/fruits/58.png
new file mode 100644 (file)
index 0000000..59fc85a
Binary files /dev/null and b/assets/fruits/58.png differ
diff --git a/assets/fruits/59.png b/assets/fruits/59.png
new file mode 100644 (file)
index 0000000..7c408bd
Binary files /dev/null and b/assets/fruits/59.png differ
diff --git a/assets/fruits/6.png b/assets/fruits/6.png
new file mode 100644 (file)
index 0000000..1c9fd03
Binary files /dev/null and b/assets/fruits/6.png differ
diff --git a/assets/fruits/60.png b/assets/fruits/60.png
new file mode 100644 (file)
index 0000000..313debd
Binary files /dev/null and b/assets/fruits/60.png differ
diff --git a/assets/fruits/61.png b/assets/fruits/61.png
new file mode 100644 (file)
index 0000000..4ea8c78
Binary files /dev/null and b/assets/fruits/61.png differ
diff --git a/assets/fruits/62.png b/assets/fruits/62.png
new file mode 100644 (file)
index 0000000..b033dc4
Binary files /dev/null and b/assets/fruits/62.png differ
diff --git a/assets/fruits/63.png b/assets/fruits/63.png
new file mode 100644 (file)
index 0000000..8403be6
Binary files /dev/null and b/assets/fruits/63.png differ
diff --git a/assets/fruits/64.png b/assets/fruits/64.png
new file mode 100644 (file)
index 0000000..6457fb3
Binary files /dev/null and b/assets/fruits/64.png differ
diff --git a/assets/fruits/65.png b/assets/fruits/65.png
new file mode 100644 (file)
index 0000000..726a3d0
Binary files /dev/null and b/assets/fruits/65.png differ
diff --git a/assets/fruits/66.png b/assets/fruits/66.png
new file mode 100644 (file)
index 0000000..7d42466
Binary files /dev/null and b/assets/fruits/66.png differ
diff --git a/assets/fruits/67.png b/assets/fruits/67.png
new file mode 100644 (file)
index 0000000..0399e64
Binary files /dev/null and b/assets/fruits/67.png differ
diff --git a/assets/fruits/68.png b/assets/fruits/68.png
new file mode 100644 (file)
index 0000000..3ebf5de
Binary files /dev/null and b/assets/fruits/68.png differ
diff --git a/assets/fruits/69.png b/assets/fruits/69.png
new file mode 100644 (file)
index 0000000..c78c8bd
Binary files /dev/null and b/assets/fruits/69.png differ
diff --git a/assets/fruits/7.png b/assets/fruits/7.png
new file mode 100644 (file)
index 0000000..5fa79c0
Binary files /dev/null and b/assets/fruits/7.png differ
diff --git a/assets/fruits/70.png b/assets/fruits/70.png
new file mode 100644 (file)
index 0000000..f2c56ca
Binary files /dev/null and b/assets/fruits/70.png differ
diff --git a/assets/fruits/71.png b/assets/fruits/71.png
new file mode 100644 (file)
index 0000000..0bdb0b9
Binary files /dev/null and b/assets/fruits/71.png differ
diff --git a/assets/fruits/72.png b/assets/fruits/72.png
new file mode 100644 (file)
index 0000000..fdc0d20
Binary files /dev/null and b/assets/fruits/72.png differ
diff --git a/assets/fruits/73.png b/assets/fruits/73.png
new file mode 100644 (file)
index 0000000..15be67b
Binary files /dev/null and b/assets/fruits/73.png differ
diff --git a/assets/fruits/74.png b/assets/fruits/74.png
new file mode 100644 (file)
index 0000000..ad58497
Binary files /dev/null and b/assets/fruits/74.png differ
diff --git a/assets/fruits/75.png b/assets/fruits/75.png
new file mode 100644 (file)
index 0000000..9cd07ad
Binary files /dev/null and b/assets/fruits/75.png differ
diff --git a/assets/fruits/76.png b/assets/fruits/76.png
new file mode 100644 (file)
index 0000000..8dcf589
Binary files /dev/null and b/assets/fruits/76.png differ
diff --git a/assets/fruits/77.png b/assets/fruits/77.png
new file mode 100644 (file)
index 0000000..c74cf83
Binary files /dev/null and b/assets/fruits/77.png differ
diff --git a/assets/fruits/80.png b/assets/fruits/80.png
new file mode 100644 (file)
index 0000000..303c987
Binary files /dev/null and b/assets/fruits/80.png differ
diff --git a/assets/fruits/81.png b/assets/fruits/81.png
new file mode 100644 (file)
index 0000000..37753ea
Binary files /dev/null and b/assets/fruits/81.png differ
diff --git a/assets/fruits/82.png b/assets/fruits/82.png
new file mode 100644 (file)
index 0000000..da90313
Binary files /dev/null and b/assets/fruits/82.png differ
diff --git a/assets/fruits/83.png b/assets/fruits/83.png
new file mode 100644 (file)
index 0000000..d633141
Binary files /dev/null and b/assets/fruits/83.png differ
diff --git a/assets/fruits/84.png b/assets/fruits/84.png
new file mode 100644 (file)
index 0000000..780fb1d
Binary files /dev/null and b/assets/fruits/84.png differ
diff --git a/assets/fruits/85.png b/assets/fruits/85.png
new file mode 100644 (file)
index 0000000..8cce97e
Binary files /dev/null and b/assets/fruits/85.png differ
diff --git a/assets/fruits/86.png b/assets/fruits/86.png
new file mode 100644 (file)
index 0000000..89c90b8
Binary files /dev/null and b/assets/fruits/86.png differ
diff --git a/assets/fruits/87.png b/assets/fruits/87.png
new file mode 100644 (file)
index 0000000..a686aca
Binary files /dev/null and b/assets/fruits/87.png differ
diff --git a/assets/fruits/88.png b/assets/fruits/88.png
new file mode 100644 (file)
index 0000000..5c248bf
Binary files /dev/null and b/assets/fruits/88.png differ
diff --git a/assets/fruits/89.png b/assets/fruits/89.png
new file mode 100644 (file)
index 0000000..3f184ba
Binary files /dev/null and b/assets/fruits/89.png differ
diff --git a/assets/fruits/90.png b/assets/fruits/90.png
new file mode 100644 (file)
index 0000000..1f0ea6e
Binary files /dev/null and b/assets/fruits/90.png differ
diff --git a/assets/fruits/91.png b/assets/fruits/91.png
new file mode 100644 (file)
index 0000000..f761126
Binary files /dev/null and b/assets/fruits/91.png differ
diff --git a/assets/fruits/92.png b/assets/fruits/92.png
new file mode 100644 (file)
index 0000000..4386808
Binary files /dev/null and b/assets/fruits/92.png differ
diff --git a/assets/fruits/93.png b/assets/fruits/93.png
new file mode 100644 (file)
index 0000000..9938437
Binary files /dev/null and b/assets/fruits/93.png differ
diff --git a/assets/fruits/94.png b/assets/fruits/94.png
new file mode 100644 (file)
index 0000000..ff4da2f
Binary files /dev/null and b/assets/fruits/94.png differ
diff --git a/assets/fruits/95.png b/assets/fruits/95.png
new file mode 100644 (file)
index 0000000..9e0dd5b
Binary files /dev/null and b/assets/fruits/95.png differ
diff --git a/assets/fruits/96.png b/assets/fruits/96.png
new file mode 100644 (file)
index 0000000..0882e0f
Binary files /dev/null and b/assets/fruits/96.png differ
diff --git a/assets/fruits/97.png b/assets/fruits/97.png
new file mode 100644 (file)
index 0000000..2f16976
Binary files /dev/null and b/assets/fruits/97.png differ
diff --git a/assets/fruits/98.png b/assets/fruits/98.png
new file mode 100644 (file)
index 0000000..df6d7e5
Binary files /dev/null and b/assets/fruits/98.png differ
similarity index 100%
rename from logo.ico
rename to assets/logo.ico
diff --git a/assets/sounds/Of Far Different Nature - Ethnic Beat (CC-BY).ogg b/assets/sounds/Of Far Different Nature - Ethnic Beat (CC-BY).ogg
new file mode 100644 (file)
index 0000000..54e4527
Binary files /dev/null and b/assets/sounds/Of Far Different Nature - Ethnic Beat (CC-BY).ogg differ
diff --git a/assets/sounds/Of Far Different Nature - Friendly Trap (CC-BY).ogg b/assets/sounds/Of Far Different Nature - Friendly Trap (CC-BY).ogg
new file mode 100644 (file)
index 0000000..680476e
Binary files /dev/null and b/assets/sounds/Of Far Different Nature - Friendly Trap (CC-BY).ogg differ
diff --git a/assets/sounds/Swishes/long-medium-swish-44324.wav b/assets/sounds/Swishes/long-medium-swish-44324.wav
new file mode 100644 (file)
index 0000000..140ddf2
Binary files /dev/null and b/assets/sounds/Swishes/long-medium-swish-44324.wav differ
diff --git a/assets/sounds/Swishes/swing-6045.wav b/assets/sounds/Swishes/swing-6045.wav
new file mode 100644 (file)
index 0000000..192c421
Binary files /dev/null and b/assets/sounds/Swishes/swing-6045.wav differ
diff --git a/assets/sounds/Swishes/swish-sound-94707.wav b/assets/sounds/Swishes/swish-sound-94707.wav
new file mode 100644 (file)
index 0000000..1bedb42
Binary files /dev/null and b/assets/sounds/Swishes/swish-sound-94707.wav differ
diff --git a/assets/sounds/hq-explosion-6288.wav b/assets/sounds/hq-explosion-6288.wav
new file mode 100644 (file)
index 0000000..1ef2cdd
Binary files /dev/null and b/assets/sounds/hq-explosion-6288.wav differ
diff --git a/assets/sounds/medium-explosion-40472.wav b/assets/sounds/medium-explosion-40472.wav
new file mode 100644 (file)
index 0000000..f0621b4
Binary files /dev/null and b/assets/sounds/medium-explosion-40472.wav differ
diff --git a/assets/sounds/sub-bass-4-secondsssss-6241.wav b/assets/sounds/sub-bass-4-secondsssss-6241.wav
new file mode 100644 (file)
index 0000000..80da76d
Binary files /dev/null and b/assets/sounds/sub-bass-4-secondsssss-6241.wav differ
diff --git a/bomb.py b/bomb.py
new file mode 100644 (file)
index 0000000..911ffd8
--- /dev/null
+++ b/bomb.py
@@ -0,0 +1,117 @@
+from fruit import Fruit
+from effect import SplitEffect
+from setup import *
+
+
+class Bomb(Fruit):
+    RADIUS = 100 * SCALE.x
+
+    EXPLOSION_RADIUS = RADIUS * 10
+    POWER = 75
+
+    BOMB_IMAGE = pygame.transform.scale(pygame.image.load("assets/bomb.png").convert_alpha(),
+                                        (RADIUS * 2, RADIUS * 2)).convert_alpha()
+
+    EXPLOSIONS = [
+        [
+            pygame.transform.scale(pygame.image.load(f"assets/explosion/Punch1/File1.png"),
+                                   (EXPLOSION_RADIUS * 2, EXPLOSION_RADIUS * 2)).convert_alpha(),
+            pygame.transform.scale(pygame.image.load(f"assets/explosion/Punch1/File2.png"),
+                                   (EXPLOSION_RADIUS * 2, EXPLOSION_RADIUS * 2)).convert_alpha(),
+            pygame.transform.scale(pygame.image.load(f"assets/explosion/Punch1/File3.png"),
+                                   (EXPLOSION_RADIUS * 2, EXPLOSION_RADIUS * 2)).convert_alpha(),
+            pygame.transform.scale(pygame.image.load(f"assets/explosion/Punch1/File4.png"),
+                                   (EXPLOSION_RADIUS * 2, EXPLOSION_RADIUS * 2)).convert_alpha(),
+            pygame.transform.scale(pygame.image.load(f"assets/explosion/Punch1/File5.png"),
+                                   (EXPLOSION_RADIUS * 2, EXPLOSION_RADIUS * 2)).convert_alpha(),
+            pygame.transform.scale(pygame.image.load(f"assets/explosion/Punch1/File6.png"),
+                                   (EXPLOSION_RADIUS * 2, EXPLOSION_RADIUS * 2)).convert_alpha()
+        ],
+        [
+            pygame.transform.scale(pygame.image.load(f"assets/explosion/Punch2/File1.png"),
+                                   (EXPLOSION_RADIUS * 2, EXPLOSION_RADIUS * 2)).convert_alpha(),
+            pygame.transform.scale(pygame.image.load(f"assets/explosion/Punch2/File2.png"),
+                                   (EXPLOSION_RADIUS * 2, EXPLOSION_RADIUS * 2)).convert_alpha(),
+            pygame.transform.scale(pygame.image.load(f"assets/explosion/Punch2/File3.png"),
+                                   (EXPLOSION_RADIUS * 2, EXPLOSION_RADIUS * 2)).convert_alpha(),
+            pygame.transform.scale(pygame.image.load(f"assets/explosion/Punch2/File4.png"),
+                                   (EXPLOSION_RADIUS * 2, EXPLOSION_RADIUS * 2)).convert_alpha(),
+            pygame.transform.scale(pygame.image.load(f"assets/explosion/Punch2/File5.png"),
+                                   (EXPLOSION_RADIUS * 2, EXPLOSION_RADIUS * 2)).convert_alpha(),
+            pygame.transform.scale(pygame.image.load(f"assets/explosion/Punch2/File6.png"),
+                                   (EXPLOSION_RADIUS * 2, EXPLOSION_RADIUS * 2)).convert_alpha()
+        ],
+        [
+            pygame.transform.scale(pygame.image.load(f"assets/explosion/Punch2/File1.png"),
+                                   (EXPLOSION_RADIUS * 2, EXPLOSION_RADIUS * 2)).convert_alpha(),
+            pygame.transform.scale(pygame.image.load(f"assets/explosion/Punch2/File2.png"),
+                                   (EXPLOSION_RADIUS * 2, EXPLOSION_RADIUS * 2)).convert_alpha(),
+            pygame.transform.scale(pygame.image.load(f"assets/explosion/Punch2/File3.png"),
+                                   (EXPLOSION_RADIUS * 2, EXPLOSION_RADIUS * 2)).convert_alpha(),
+            pygame.transform.scale(pygame.image.load(f"assets/explosion/Punch2/File4.png"),
+                                   (EXPLOSION_RADIUS * 2, EXPLOSION_RADIUS * 2)).convert_alpha(),
+            pygame.transform.scale(pygame.image.load(f"assets/explosion/Punch2/File5.png"),
+                                   (EXPLOSION_RADIUS * 2, EXPLOSION_RADIUS * 2)).convert_alpha(),
+            pygame.transform.scale(pygame.image.load(f"assets/explosion/Punch2/File6.png"),
+                                   (EXPLOSION_RADIUS * 2, EXPLOSION_RADIUS * 2)).convert_alpha()
+        ],
+    ]
+    EXPLOSION_TIME = 500
+
+    explosion_sound_effects = [
+        pygame.mixer.Sound("assets/sounds/hq-explosion-6288.wav"),
+        pygame.mixer.Sound("assets/sounds/medium-explosion-40472.wav"),
+    ]
+
+    def __init__(self):
+        super().__init__()
+        self.radius = self.RADIUS
+        self.exploded = False
+        self.exploded_frame_timer = 0
+        self.image = self.BOMB_IMAGE
+        self.explosion_frame = 0
+        self.explosion = random.choice(self.EXPLOSIONS)
+
+    def update(self, delta):
+        super().update(delta)
+        if self.exploded:
+            self.exploded_frame_timer += delta
+            if self.exploded_frame_timer >= self.EXPLOSION_TIME / len(self.explosion):
+                self.exploded_frame_timer = 0
+                self.explosion_frame = min(len(self.explosion) - 1, self.explosion_frame + 1)
+                self.image = self.explosion[self.explosion_frame]
+                if self.explosion_frame == len(self.explosion) - 1:
+                    return True
+
+    def explode(self, fruits, bombs, effects, depth=0):
+        if self in bombs:
+            if not self.exploded:
+                self.image = self.explosion[0]
+                if depth == 0:
+                    pygame.mixer.Sound.play(random.choice(self.explosion_sound_effects))
+            self.exploded = True
+        self.velocity = pygame.Vector2(0, 0)
+        self.acceleration = pygame.Vector2(0, 0)
+
+        for fruit in fruits:
+            fruit.velocity += (fruit.position - self.position).normalize() * self.POWER
+        for effect in effects:
+            if isinstance(effect, SplitEffect):
+                effect.velocity += (effect.position - self.position).normalize() * self.POWER
+
+        for bomb in bombs:
+            if not bomb.exploded:
+                bomb.explode(fruits, bombs, effects,depth+1)
+
+    def draw(self, surf):
+        if self.exploded:
+            surf.blit(self.image, self.image.get_rect(
+                topleft=(self.position.x - self.EXPLOSION_RADIUS, self.position.y - self.EXPLOSION_RADIUS)))
+        else:
+            # pygame.draw.circle(surf, BLACK, self.position, self.radius)
+            if self.position.y - self.radius <= HEIGHT:
+                rotated_image = pygame.transform.rotate(self.image, self.angle)
+                new_rect = rotated_image.get_rect(center=self.image.get_rect(
+                    topleft=(self.position.x - self.radius, self.position.y - self.radius)).center)
+                self.width, self.height = new_rect.size
+                surf.blit(rotated_image, new_rect.topleft)
diff --git a/combo_counter.py b/combo_counter.py
new file mode 100644 (file)
index 0000000..644d9d3
--- /dev/null
@@ -0,0 +1,21 @@
+from setup import *
+
+
+class ComboCounter:
+    LIFE_TIME = 1000
+
+    def __init__(self, position, combo):
+        self.position = pygame.Vector2(position)
+        self.velocity = pygame.Vector2(0, -100)
+        self.time = self.LIFE_TIME
+        self.combo = combo
+        self.text_surface = font_large.render(self.combo, True, DARK_GRAY)
+
+    def update(self, delta):
+        self.position += self.velocity * delta / 1000
+        self.time -= delta
+        if self.time <= 0:
+            return True
+
+    def draw(self, surf):
+        surf.blit(self.text_surface, self.position)
diff --git a/effect.py b/effect.py
new file mode 100644 (file)
index 0000000..0035c3a
--- /dev/null
+++ b/effect.py
@@ -0,0 +1,307 @@
+import pygame
+
+from setup import *
+
+
+class BloodEffect:
+    LIFE_TIME = 1000
+    SPEED_RANGE = [250, 350]
+    RADIUS_RANGE = [3, 3.75]
+    blood_frames = [
+        [pygame.image.load(f"assets/effects/blood1/{i}.png").convert_alpha() for i in range(16)],
+        [pygame.image.load(f"assets/effects/blood2/{i}.png").convert_alpha() for i in range(16)],
+        [pygame.image.load(f"assets/effects/blood3/{i}.png").convert_alpha() for i in range(16)]
+    ]
+
+    def __init__(self, position, radius, color=None):
+        self.position = pygame.Vector2(position)
+        self.radius = radius * lerp(self.RADIUS_RANGE[0], self.RADIUS_RANGE[1], random.random())
+        self.time = self.LIFE_TIME
+        self.frame_timer = 0
+        self.current_frame = 0
+        self.angle = 0
+        self.frames = [
+            pygame.transform.rotate(pygame.transform.scale(frame, (int(self.radius * 2), int(self.radius * 2))),
+                                    self.angle) for frame in random.choice(self.blood_frames)]
+        if color is None:
+            color = random.choice(COLORS)
+        else:
+            color = color
+        for frame in self.frames:
+            px_array = pygame.PixelArray(frame)
+            px_array.replace(pygame.Color(250, 3, 35), pygame.Color(color))
+            px_array.close()
+
+    def update(self, delta):
+        self.time -= delta
+        self.frame_timer += delta
+        if self.frame_timer >= self.LIFE_TIME / len(self.frames):
+            self.frame_timer = 0
+            self.current_frame += 1
+        if self.time <= 0:
+            return True
+
+    def draw(self, surf):
+        if self.time > 0:
+            surf.blit(self.frames[self.current_frame], (self.position.x - self.radius, self.position.y - self.radius))
+            # pygame.draw.circle(surf, BLACK, self.position, self.radius)
+
+
+class BloodSplatter:
+    LIFE_TIME = 4000
+    FADE_TIME = 1000
+    RADIUS_RANGE = [3, 3.75]
+    blood_frames = [
+        pygame.transform.rotate(pygame.image.load(
+            "assets/effects/splatter/bloodslash1.png"),
+            -35).convert_alpha(),
+        pygame.transform.rotate(pygame.image.load(
+            "assets/effects/splatter/bloodslash2.png"),
+            -35).convert_alpha()
+    ]
+
+    LIGHT_COLOR1 = pygame.Color(110, 110, 110)
+    DARK_COLOR1 = pygame.Color(84, 84, 84)
+    LIGHT_COLOR2 = pygame.Color(83, 83, 83)
+    DARK_COLOR2 = pygame.Color(74, 74, 74)
+
+
+    color_frames = [dict(), dict()]
+    for c in COLORS:
+        for i, f in enumerate(blood_frames):
+            c_f = f.copy()
+            px_array = pygame.PixelArray(c_f)
+            px_array.replace(LIGHT_COLOR1 if i == 0 else LIGHT_COLOR2, pygame.Color(c))
+            px_array.replace(DARK_COLOR1 if i == 0 else DARK_COLOR2, pygame.Color(darken(c, 0.875)))
+            px_array.close()
+            color_frames[i][c] = c_f
+
+
+    def __init__(self, position, radius, angle, color=None):
+        self.position = pygame.Vector2(position)
+        self.radius = radius * lerp(self.RADIUS_RANGE[0], self.RADIUS_RANGE[1], random.random())
+        self.time = self.LIFE_TIME
+        self.fade_time = self.FADE_TIME
+        self.angle = angle
+        img_index = random.randint(0, len(self.blood_frames) - 1)
+        # self.frame = pygame.transform.rotate(
+        #     pygame.transform.scale(self.blood_frames[img_index], (int(self.radius * 2), int(self.radius * 2))),
+        #     self.angle)
+        self.alpha = 255
+
+        if color is None:
+            color = random.choice(COLORS)
+
+        self.frame = pygame.transform.rotate(
+            pygame.transform.scale(self.color_frames[img_index][color], (int(self.radius * 2), int(self.radius * 2))),
+            self.angle)
+
+        # px_array = pygame.PixelArray(self.frame)
+        # px_array.replace(self.LIGHT_COLOR1 if img_index == 0 else self.LIGHT_COLOR2, pygame.Color(color))
+        # px_array.replace(self.DARK_COLOR1 if img_index == 0 else self.DARK_COLOR2, pygame.Color(darken(color, 0.875)))
+        # px_array.close()
+
+    def update(self, delta):
+        if self.time > 0:
+            self.time -= delta
+        else:
+            self.fade_time -= delta
+
+        if self.fade_time <= 0 and self.time <= 0:
+            return True
+        if self.time <= 0:
+            self.alpha = int(lerp(0, 255, self.fade_time / self.FADE_TIME))
+
+    def draw(self, surf):
+
+        self.frame.set_alpha(self.alpha)
+        surf.blit(self.frame, (self.position.x - self.radius, self.position.y - self.radius))
+
+
+class SplitEffect:
+    SPEED_PERCENT_RANGE = [65, 85]
+    gravity = 275
+
+    def __init__(self, position, frame, fruit_velocity, normal_velocity):
+        self.position = pygame.Vector2(position)
+        self.velocity = pygame.Vector2(fruit_velocity) * lerp(self.SPEED_PERCENT_RANGE[0], self.SPEED_PERCENT_RANGE[1],
+                                                              random.random()) / 100 + pygame.Vector2(normal_velocity)
+        self.acceleration = pygame.Vector2(0, self.gravity)
+
+        # self.angle = lerp(-45, 45, random.random())
+        self.angle = 0
+        self.direction = random.choice([-1, 1])
+        # self.angle = 0
+        # self.direction = 0
+
+        self.frame = frame
+
+        self.width, self.height = self.frame.get_size()
+
+    def update(self, delta):
+        self.velocity += self.acceleration * delta / 1000
+        self.position += self.velocity * delta / 1000
+        self.angle += 360 * delta / 1000 / 10 * self.direction
+
+        if self.position.y - self.height / 2 > HEIGHT:
+            return True
+
+    def draw(self, surf):
+        rotated_image, position = rotate_center(self.frame, self.angle, self.position)
+        self.width, self.height = rotated_image.get_size()
+        surf.blit(rotated_image, position)
+
+    @staticmethod
+    def find_normals(v):
+        return pygame.Vector2(-v.y, v.x), pygame.Vector2(v.y, -v.x)
+
+    @staticmethod
+    def should_split(image, angle, image_position, mouse_position, mouse_direction):
+        img, img_pos = rotate_center(image.copy(), angle, image_position)
+        img_pos += pygame.Vector2(img.get_size()) / 2
+        if mouse_direction.x == 0:
+            mouse_direction.x += 0.0001
+        a = math.degrees(math.atan(mouse_direction.y / mouse_direction.x))
+        img = rotate_center(img, a, pygame.Vector2(0, 0))[0]
+
+        top_left = pygame.Vector2(image_position) - pygame.Vector2(img.get_width() / 2, img.get_height() / 2)
+        rot_center = pygame.Vector2(image_position) - top_left
+        mp = mouse_position - top_left
+
+        t1 = (- mp.x) / mouse_direction.x
+        p1 = mp + t1 * mouse_direction
+
+        p3 = (p1 - rot_center).rotate(-a) + rot_center
+
+        MIN_SPLIT = 0.25
+        slice_percent = clamp(p3.y, 0, img.get_height()) / img.get_height()
+        if MIN_SPLIT < slice_percent < 1 - MIN_SPLIT:
+            return True
+        return False
+
+    @staticmethod
+    def split_image(image, angle, image_position, mouse_position, mouse_direction):
+        img, img_pos = rotate_center(image.copy(), angle, image_position)
+        img_pos += pygame.Vector2(img.get_size()) / 2
+        if mouse_direction.x == 0:
+            mouse_direction.x += 0.0001
+
+        a = math.degrees(math.atan(mouse_direction.y / mouse_direction.x))
+        img = rotate_center(img, a, pygame.Vector2(0, 0))[0]
+
+        top_left = pygame.Vector2(img_pos) - pygame.Vector2(img.get_width() / 2, img.get_height() / 2)
+        rot_center = pygame.Vector2(img_pos) - top_left
+
+        # finding end and start points of the splitting line
+        # [x,y] = mouse_position + t * mouse_direction # vector equation
+        # x = mouse_position.x + t * mouse_direction.x
+        # y = mouse_position.y + t * mouse_direction.y
+
+        mp = mouse_position - top_left
+
+        t1 = (- mp.x) / mouse_direction.x
+        p1 = mp + t1 * mouse_direction
+
+        t2 = (img.get_width() - mp.x) / mouse_direction.x
+        p2 = mp + t2 * mouse_direction
+
+        p3 = (p1 - rot_center).rotate(-a) + rot_center
+        p4 = (p2 - rot_center).rotate(-a) + rot_center
+
+        half1 = img.subsurface(pygame.Rect(0, 0, img.get_width(), clamp(p3.y, 0, img.get_height())))
+        half2 = img.subsurface(pygame.Rect(0, clamp(p3.y, 0, img.get_height()), img.get_width(),
+                                           clamp(img.get_height() - p3.y, 0, img.get_height())))
+
+        p5 = half1.get_rect().center - rot_center
+        pos1 = (p5).rotate(a) + img_pos
+
+        p6 = half2.get_rect().center - rot_center + pygame.Vector2(0, clamp(p3.y, 0, img.get_height()))
+        pos2 = (p6).rotate(a) + img_pos
+
+        r_half1 = pygame.transform.rotate(half1, -a)
+        r_half2 = pygame.transform.rotate(half2, -a)
+
+        return r_half1, r_half2, pos1, pos2
+
+
+class SlashEffect:
+    SLASH = [pygame.image.load(f"assets/effects/sword_slashes/White_Slash_Thin/File{i}.png").convert_alpha() for i in
+             range(1, 7)]
+    GROUP_SLASH = [pygame.image.load(f"assets/effects/sword_slashes/White_Group_Slashes/File{i}.png").convert_alpha()
+                   for i in
+                   range(1, 21)]
+    LIFETIME = 600
+
+    def __init__(self, position, angle, combo=False):
+        self.position = pygame.Vector2(position)
+        self.angle = angle
+
+        self.is_combo = combo
+
+        self.time = 0
+        self.frame = 0
+
+        # if self.is_combo:
+        #     self.slash_frames = [pygame.transform.rotate(frame, self.angle) for frame in self.GROUP_SLASH]
+        # else:
+        #     self.slash_frames = [pygame.transform.rotate(frame, self.angle) for frame in self.SLASH]
+        if self.is_combo:
+            self.slash_frames = self.GROUP_SLASH
+        else:
+            self.slash_frames = [pygame.transform.rotate(frame, self.angle) for frame in self.SLASH]
+
+    def update(self, delta):
+        self.time += delta
+        if self.time >= self.LIFETIME / len(self.SLASH):
+            self.time = 0
+            self.frame += 1
+            if self.frame >= len(self.SLASH):
+                return True
+
+    def draw(self, surf):
+
+        frame = self.slash_frames[self.frame]
+        surf.blit(frame, frame.get_rect(center=self.position))
+
+
+class FadeInEffect:
+
+    def __init__(self, fade_time=500):
+        self.fade_time = fade_time
+        self.surf = pygame.Surface((WIDTH, HEIGHT))
+        self.surf.fill(BLACK)
+        self.time = self.fade_time
+        self.alpha = 255
+
+    def update(self, delta):
+        self.time -= delta
+
+        if self.time <= 0:
+            return True
+        self.alpha = int(lerp(0, 255, self.time / self.fade_time))
+
+    def draw(self, surf):
+        self.surf.set_alpha(self.alpha)
+        surf.blit(self.surf, (0, 0))
+
+
+class FadeOutEffect:
+
+    def __init__(self, fade_time=500, max_alpha=255):
+        self.fade_time = fade_time
+        self.max_alpha = max_alpha
+
+        self.surf = pygame.Surface((WIDTH, HEIGHT))
+        self.surf.fill(BLACK)
+        self.time = 0
+        self.alpha = 0
+
+    def update(self, delta):
+        self.time += delta
+        if self.time >= self.fade_time:
+            return True
+        self.alpha = int(lerp(0, self.max_alpha, self.time / self.fade_time))
+
+    def draw(self, surf):
+        self.surf.set_alpha(self.alpha)
+        surf.blit(self.surf, (0, 0))
diff --git a/fruit.py b/fruit.py
new file mode 100644 (file)
index 0000000..1c9e6f4
--- /dev/null
+++ b/fruit.py
@@ -0,0 +1,63 @@
+from setup import *
+
+
+class Fruit:
+    RADIUS_RANGE = [60 * SCALE.x, 100 * SCALE.x]  # [25, 50]
+
+    HORIZONTAL_SPAWN_RANGE = [max(RADIUS_RANGE), WIDTH - max(RADIUS_RANGE)]
+    VERTICAL_SPAWN_RANGE = [HEIGHT + max(RADIUS_RANGE), HEIGHT * 2 + max(RADIUS_RANGE)]
+
+    VERTICAL_TARGET_RANGE = [max(RADIUS_RANGE), HEIGHT * 3.5 / 5]
+    HORIZONTAL_TARGET_RANGE = [WIDTH / 5.5, WIDTH * 4.5 / 5.5]
+
+    GRAVITY = 275 * SCALE.y
+    HEADS = [
+        pygame.image.load(f"assets/fruits/{file}").convert_alpha() for file in os.listdir('assets/fruits/')
+    ]
+    OUTLINE_WIDTH = 3
+
+    def __init__(self):
+        self.radius = lerp(self.RADIUS_RANGE[0], self.RADIUS_RANGE[1], random.random())
+
+        self.target = pygame.Vector2(
+            lerp(self.HORIZONTAL_TARGET_RANGE[0], self.HORIZONTAL_TARGET_RANGE[1], random.random()),
+            lerp(self.VERTICAL_TARGET_RANGE[0], self.VERTICAL_TARGET_RANGE[1], random.random()))
+        self.position = pygame.Vector2(
+            lerp(self.HORIZONTAL_SPAWN_RANGE[0], self.HORIZONTAL_SPAWN_RANGE[1], random.random()),
+            lerp(self.VERTICAL_SPAWN_RANGE[0], self.VERTICAL_SPAWN_RANGE[1], random.random()))
+        self.acceleration = pygame.Vector2(0, self.GRAVITY)
+
+        # self.previous_position = self.position
+
+        dy = self.target.y - self.position.y
+        dx = self.target.x - self.position.x
+        t = (-2 / self.GRAVITY * dy) ** 0.5
+        self.velocity = pygame.Vector2(dx / t, -(-2 * self.GRAVITY * dy) ** 0.5)
+        self.image = pygame.transform.scale(random.choice(self.HEADS), (self.radius * 2, self.radius * 2))
+        self.angle = lerp(0, 360, random.random())
+        self.direction = random.choice([-1, 1])
+        # self.angle = 0
+        # self.direction = 0
+
+        self.width, self.height = (self.radius * 2, self.radius * 2)
+
+    def update(self, delta):
+        # self.previous_position = self.position.copy() - self.velocity / 1000 * 30
+        self.velocity += self.acceleration * delta / 1000
+        self.position += self.velocity * delta / 1000
+
+        self.angle += 360 * delta / 1000 / 10 * self.direction
+
+    def get_rect(self):
+        return pygame.Rect(self.position - pygame.Vector2(self.radius / 2, self.radius / 2),
+                           pygame.Vector2(self.radius, self.radius))
+
+    def draw(self, surf):
+        # rotated_image = pygame.transform.rotate(self.image, self.angle)
+        # new_rect = rotated_image.get_rect(center=self.image.get_rect(topleft=(self.position.x - self.radius, self.position.y - self.radius)).center)
+        # surf.blit(rotated_image, new_rect.topleft)
+        # pygame.draw.circle(surf, BLACK, self.position, self.radius)
+        if self.position.y - self.radius <= HEIGHT:
+            rotated_image, position = rotate_center(self.image, self.angle, self.position)
+            self.width, self.height = rotated_image.get_size()
+            surf.blit(rotated_image, position)
diff --git a/game.py b/game.py
new file mode 100644 (file)
index 0000000..7fab447
--- /dev/null
+++ b/game.py
@@ -0,0 +1,237 @@
+import pygame
+
+from bomb import Bomb
+from combo_counter import ComboCounter
+from effect import BloodEffect, SplitEffect, SlashEffect, FadeInEffect, FadeOutEffect, BloodSplatter
+from fruit import Fruit
+from player import Player
+from setup import *
+
+
+class Game:
+    BOMB_CHANCE = 0
+    EFFECT_COUNT_PER_FRUIT = 20
+    EFFECT_COUNT_PER_BOMB = 0
+    COMBO_TIME = 250
+    GAME_OVER_TIME = 2000
+    WAVE_COOLDOWN = 500
+
+    BACKGROUND = pygame.Surface((WIDTH, HEIGHT))
+    tile_cols = 4
+    tile_rows = 4
+    background_tile = pygame.transform.scale(pygame.image.load("assets/background.png"),
+                                             (WIDTH / tile_cols, HEIGHT / tile_rows)).convert()
+    dark_background_tile = pygame.transform.scale(pygame.image.load("assets/dark_background.png"),
+                                                  (WIDTH / tile_cols, HEIGHT / tile_rows)).convert()
+    for x in range(tile_cols):
+        for y in range(tile_rows):
+            if y == 0:
+                BACKGROUND.blit(dark_background_tile, (x * WIDTH / tile_cols, y * HEIGHT / tile_rows))
+            else:
+                BACKGROUND.blit(background_tile, (x * WIDTH / tile_cols, y * HEIGHT / tile_rows))
+    bass_sound_effect = pygame.mixer.Sound("assets/sounds/sub-bass-4-secondsssss-6241.wav")
+    bass_sound_effect.set_volume(0.1)
+    slash_sounds = [pygame.mixer.Sound(f"assets/sounds/Swishes/long-medium-swish-44324.wav"),
+                    pygame.mixer.Sound(f"assets/sounds/Swishes/swing-6045.wav"),
+                    pygame.mixer.Sound(f"assets/sounds/Swishes/swish-sound-94707.wav"),
+                    ]
+
+    HIGHSCORE_FILE = "highscore.txt"
+
+    def __init__(self):
+        self.player = Player()
+        self.fruits = [Fruit()]
+        self.bombs = []
+        self.effects = [
+            [], # Blood splatter
+            [], # Blood splash
+            [], # Split Effect
+            [], # slash effect
+            [FadeInEffect(fade_time=1000)] # Fade in/fade out effects
+        ]
+        self.combo_counters = []
+        self.wave = 10
+        self.score = 0
+        self.time_since_last_hit = 0
+        self.current_combo = 0
+
+        self.cleared_wave = True
+        self.wave_cooldown_timer = 0
+
+        self.game_over = False
+        self.game_over_time = 0
+
+        try:
+            with open(self.HIGHSCORE_FILE, "r") as f:
+                self.highscore = int(f.read())
+        except:
+            self.highscore = 0
+
+        self.music_started = False
+        if pygame.mixer.music.get_busy():
+            pygame.mixer.music.fadeout(500)
+            background_music = pygame.mixer.music.load(
+                "assets/sounds/Of Far Different Nature - Friendly Trap (CC-BY).ogg")
+            pygame.mixer.music.set_volume(0.25)
+            pygame.mixer.music.play(-1)
+            self.music_started = True
+
+    def update(self, delta):
+        for event in pygame.event.get():
+            if event.type == pygame.QUIT:
+                return COMMAND_EXIT
+            if event.type == pygame.KEYUP:
+                if event.key == pygame.K_ESCAPE:
+                    return COMMAND_EXIT
+                elif event.key == pygame.K_m:
+                    if pygame.mixer.music.get_busy():
+                        pygame.mixer.music.pause()
+                    else:
+                        pygame.mixer.music.unpause()
+                        if not self.music_started:
+                            background_music = pygame.mixer.music.load(
+                                "assets/sounds/Of Far Different Nature - Friendly Trap (CC-BY).ogg")
+                            pygame.mixer.music.set_volume(0.25)
+                            pygame.mixer.music.play(-1)
+                            self.music_started = True
+        if not self.game_over:
+            self.player.update(delta)
+        else:
+            self.game_over_time += delta
+            if self.game_over_time > self.GAME_OVER_TIME:
+                return COMMAND_START
+        hits = []
+
+        for fruit in self.fruits:
+            fruit.update(delta)
+            hit_status = self.player.hits(fruit)
+            if hit_status and SplitEffect.should_split(fruit.image, fruit.angle, fruit.position, self.player.previous_mouse_pos, self.player.mouse_direction):
+                hits.append((fruit, self.player.mouse_direction, self.player.previous_mouse_pos))
+
+            fr = fruit.get_rect()
+            if ((not -fruit.width < fr.x < WIDTH + fruit.width) or fr.y - fr.height > HEIGHT) and fruit.velocity.y > 0:
+                self.fruits.remove(fruit)
+                self.cleared_wave = False
+        self.time_since_last_hit += delta
+
+        if self.time_since_last_hit < self.COMBO_TIME:
+            self.score += self.current_combo
+        else:
+            self.current_combo = 0
+
+        for hit, mouse_direction, mouse_position in hits:
+
+            color = random.choice(COLORS)
+            self.effects[0].append(
+                BloodSplatter(hit.position, hit.radius, determine_angle(hit.position, hit.position + mouse_direction),color))
+            self.effects[1].append(BloodEffect(hit.position, hit.radius,lighten(color, 0.15)))
+
+            half1, half2, pos1, pos2 = SplitEffect.split_image(hit.image, hit.angle, hit.position, mouse_position, mouse_direction)
+
+            n1, n2 = SplitEffect.find_normals(mouse_direction.normalize())
+            c = 100
+            self.effects[2].append(SplitEffect(pos1, half1, hit.velocity, n1 * c))
+            self.effects[2].append(SplitEffect(pos2, half2, hit.velocity, n2 * c))
+
+            pygame.mixer.Sound.play(random.choice(self.slash_sounds))
+
+            self.score += 1
+            if self.time_since_last_hit < self.COMBO_TIME:
+                self.current_combo += 1
+            if self.current_combo > 1:
+                self.combo_counters.append(ComboCounter(hit.position, f"x{self.current_combo + 1}"))
+                self.effects[3].append(SlashEffect(hit.position, hit.angle, combo=False))
+            else:
+                self.effects[3].append(SlashEffect(hit.position, hit.angle))
+
+            self.time_since_last_hit = 0
+
+            if hit in self.fruits:
+                self.fruits.remove(hit)
+
+        for layer in self.effects:
+            for effect in layer:
+                effect_status = effect.update(delta)
+                if effect_status:
+                    layer.remove(effect)
+        for combo in self.combo_counters:
+            combo_status = combo.update(delta)
+            if combo_status:
+                self.combo_counters.remove(combo)
+
+        for bomb in self.bombs:
+            bomb_status = bomb.update(delta)
+
+            if self.player.hits(bomb):
+                bomb.explode(self.fruits, self.bombs, self.effects[2])
+                self.game_over = True
+                self.player.sliced_points.clear()
+                pygame.mixer.Sound.play(self.bass_sound_effect)
+                self.effects[4].append(FadeOutEffect(fade_time=self.GAME_OVER_TIME, max_alpha=20))
+                if self.score > self.highscore:
+                    self.highscore = self.score
+                    with open(self.HIGHSCORE_FILE, "w") as f:
+                        f.write(str(self.highscore))
+            if bomb_status:
+                self.bombs.remove(bomb)
+                continue
+            br = bomb.get_rect()
+            if ((not -bomb.width < br.x < WIDTH + bomb.width) or br.y - br.height > HEIGHT) and bomb.velocity.y > 0:
+                self.bombs.remove(bomb)
+
+        if len(self.fruits) == 0 and len(self.bombs) == 0 and not self.game_over:
+            self.wave_cooldown_timer += delta
+            if self.wave_cooldown_timer >= self.WAVE_COOLDOWN:
+                if self.cleared_wave:
+                    self.wave_cooldown_timer = 0
+                    self.wave += 1
+                self.cleared_wave = True
+                for i in range(self.wave):
+                    if random.random() < self.BOMB_CHANCE:
+                        self.bombs.append(Bomb())
+                    else:
+                        self.fruits.append(Fruit())
+
+    def draw(self, surf):
+
+        screen.blit(self.BACKGROUND, (0, 0))
+
+        text_surf = font.render(f"SCORE {self.score}", True, WHITE)
+        surf.blit(text_surf, (7, 0))
+        text_surf2 = font.render(f"COMBO x{max(1, self.current_combo)}", True, WHITE)
+        surf.blit(text_surf2, text_surf2.get_rect(center=(WIDTH / 2, text_surf.get_height() / 2)))
+        # text_surf2 = font.render(f"TIME SINCE LAST HIT {round(self.time_since_last_hit / 1000, 1)}", True, BLACK)
+        # surf.blit(text_surf2, (WIDTH - text_surf2.get_width(), text_surf.get_height()))
+
+        for effect in self.effects[0]:
+            effect.draw(surf)
+        for effect in self.effects[1]:
+            effect.draw(surf)
+        for bomb in self.bombs:
+            bomb.draw(surf)
+        for effect in self.effects[2]:
+            effect.draw(surf)
+        for fruit in self.fruits:
+            fruit.draw(surf)
+        for effect in self.effects[3]:
+            effect.draw(surf)
+        for combo in self.combo_counters:
+            combo.draw(surf)
+        self.player.draw(surf)
+        for effect in self.effects[4]:
+            effect.draw(surf)
+        if self.game_over:
+            title = font_large.render("GAME OVER", True, WHITE)
+            subtitle = font.render(f"HIGHSCORE {self.highscore}", True, WHITE)
+            game_over_surf = pygame.Surface(
+                (max(title.get_width(), subtitle.get_width()), title.get_height() + subtitle.get_height()))
+            game_over_surf.fill(GRAY)
+            game_over_surf.blit(title, title.get_rect(center=(game_over_surf.get_width() / 2, title.get_height() / 2)))
+            game_over_surf.blit(subtitle, subtitle.get_rect(
+                center=(game_over_surf.get_width() / 2, title.get_height() + subtitle.get_height() / 2)))
+
+            pygame.draw.rect(surf, GRAY, game_over_surf.get_rect(center=(WIDTH / 2, HEIGHT / 2)).inflate(50, 50),
+                             border_radius=10)
+            pygame.draw.rect(surf, BLACK, game_over_surf.get_rect(center=(WIDTH / 2, HEIGHT / 2)).inflate(50, 50), 5,
+                             border_radius=10)
+            surf.blit(game_over_surf, game_over_surf.get_rect(center=(WIDTH / 2, HEIGHT / 2)))
\ No newline at end of file
diff --git a/highscore.txt b/highscore.txt
new file mode 100644 (file)
index 0000000..d23ee5c
--- /dev/null
@@ -0,0 +1 @@
+3850
\ No newline at end of file
diff --git a/main.py b/main.py
new file mode 100644 (file)
index 0000000..a76124d
--- /dev/null
+++ b/main.py
@@ -0,0 +1,27 @@
+from game import Game
+from menu import Menu
+from setup import *
+
+FPS = 60
+clock = pygame.time.Clock()
+
+scene = Menu()
+
+is_running = True
+while is_running:
+    delta = clock.tick(FPS)
+    status = scene.update(delta)
+    scene.draw(screen)
+    fps_text = font.render(f"FPS {int(clock.get_fps())}", True, WHITE)
+    screen.blit(fps_text, (WIDTH - fps_text.get_width() - 7, 0))
+
+    pygame.display.update()
+
+    if status == COMMAND_EXIT:
+        is_running = False
+    elif status == COMMAND_START:
+        scene = Game()
+    elif status == COMMAND_MENU:
+        scene = Menu()
+
+pygame.quit()
diff --git a/menu.py b/menu.py
new file mode 100644 (file)
index 0000000..74e6020
--- /dev/null
+++ b/menu.py
@@ -0,0 +1,115 @@
+import random
+
+import pygame
+
+from setup import *
+from player import Player
+from fruit import Fruit
+from effect import SlashEffect, SplitEffect, BloodEffect, FadeOutEffect, BloodSplatter
+
+
+class Menu:
+    background = pygame.Surface((WIDTH, HEIGHT))
+    tile_cols = 4
+    tile_rows = 4
+    background_tile = pygame.transform.scale(pygame.image.load("assets/background.png"),
+                                             (WIDTH / tile_cols, HEIGHT / tile_rows)).convert()
+    for x in range(tile_cols):
+        for y in range(tile_rows):
+            background.blit(background_tile, (x * WIDTH / tile_cols, y * HEIGHT / tile_rows))
+
+    slash_sounds = [pygame.mixer.Sound(f"assets/sounds/Swishes/long-medium-swish-44324.wav"),
+                    pygame.mixer.Sound(f"assets/sounds/Swishes/swing-6045.wav"),
+                    pygame.mixer.Sound(f"assets/sounds/Swishes/swish-sound-94707.wav"),
+                    ]
+
+    def __init__(self):
+        self.background_music = pygame.mixer.music.load(
+            "assets/sounds/Of Far Different Nature - Ethnic Beat (CC-BY).ogg")
+        pygame.mixer.music.set_volume(0.5)
+        pygame.mixer.music.play(-1)
+        pygame.mixer.music.pause()
+
+        self.player = Player()
+        self.fruit = Fruit()
+        self.fruit.position = pygame.Vector2(WIDTH / 2, HEIGHT * 1.5 / 2.5)
+        self.fruit.angle = 0
+        self.fruit.image = pygame.transform.scale(pygame.image.load("assets/fruits/58.png"),
+                                                  (self.fruit.radius * 2, self.fruit.radius * 2))
+
+        self.effects = []
+
+        self.title_surface = font_large.render("Fruit Shinobi", True, WHITE)
+        self.tutorial_surface = font.render("Drag to slice the fruit", True, WHITE)
+        self.controls_surface = font_small.render("Press M to unmute music", True, WHITE)
+
+        self.credit_surface = font_small.render("Made by: Skullheadx", True, WHITE)
+        self.blacked_out = False
+
+    def update(self, delta):
+        for event in pygame.event.get():
+            if event.type == pygame.QUIT or (event.type == pygame.KEYUP and event.key == pygame.K_ESCAPE):
+                pygame.mixer.music.stop()
+                return COMMAND_EXIT
+            if event.type == pygame.KEYUP:
+                if event.key == pygame.K_m:
+                    if pygame.mixer.music.get_busy():
+                        pygame.mixer.music.pause()
+                    else:
+                        pygame.mixer.music.unpause()
+        self.player.update(delta)
+
+        if not self.blacked_out:
+            hit_status = self.player.hits(self.fruit)
+            if hit_status and SplitEffect.should_split(self.fruit.image, self.fruit.angle, self.fruit.position, self.player.previous_mouse_pos, self.player.mouse_direction):
+                color = random.choice(COLORS)
+                self.effects.append(BloodEffect(self.fruit.position, self.fruit.radius,lighten(color, 0.15)))
+
+                half1, half2, pos1, pos2 = SplitEffect.split_image(self.fruit.image, self.fruit.angle, self.fruit.position, self.player.previous_mouse_pos,
+                                                       self.player.mouse_direction)
+
+                self.effects.append(BloodSplatter(self.fruit.position, self.fruit.radius,
+                                                  determine_angle(self.fruit.position,
+                                                                  self.fruit.position + self.player.mouse_direction),color))
+                self.effects.append(SlashEffect(self.fruit.position, self.fruit.angle))
+
+                n1, n2 = SplitEffect.find_normals(self.player.mouse_direction.normalize())
+                c = 5
+                self.effects.append(SplitEffect(pos1, half1, pygame.Vector2(0,0), n1 * c))
+                self.effects.append(SplitEffect(pos2, half2, pygame.Vector2(0,0), n2 * c))
+
+                pygame.mixer.Sound.play(random.choice(self.slash_sounds))
+                self.blacked_out = True
+                self.effects.append(FadeOutEffect())
+        for effect in self.effects:
+            effect_status = effect.update(delta)
+            if effect_status:
+                if isinstance(effect, FadeOutEffect):
+                    return COMMAND_START
+                self.effects.remove(effect)
+
+    def draw(self, surf):
+        surf.blit(self.background, (0, 0))
+        if not self.blacked_out:
+            self.fruit.draw(surf)
+
+        tutorial_surface_pos = (
+            WIDTH / 2, HEIGHT * 2 / 3 + self.tutorial_surface.get_height() / 2 + self.fruit.get_rect().height + 30)
+        pygame.draw.rect(surf, DARK_GRAY, self.tutorial_surface.get_rect(center=tutorial_surface_pos).inflate(25, 25),
+                         border_radius=10)
+        pygame.draw.rect(surf, BLACK, self.tutorial_surface.get_rect(center=tutorial_surface_pos).inflate(25, 25), 5,
+                         border_radius=10)
+        surf.blit(self.tutorial_surface, self.tutorial_surface.get_rect(
+            center=tutorial_surface_pos))
+
+        pygame.draw.rect(surf, GRAY, self.title_surface.get_rect(center=(WIDTH / 2, HEIGHT / 3)).inflate(50, 50),
+                         border_radius=10)
+        pygame.draw.rect(surf, BLACK, self.title_surface.get_rect(center=(WIDTH / 2, HEIGHT / 3)).inflate(50, 50), 5,
+                         border_radius=10)
+        surf.blit(self.title_surface, self.title_surface.get_rect(center=(WIDTH / 2, HEIGHT / 3)))
+
+        surf.blit(self.controls_surface, self.controls_surface.get_rect(bottomleft=(10, HEIGHT - 10)))
+        surf.blit(self.credit_surface, self.credit_surface.get_rect(bottomright=(WIDTH - 10, HEIGHT - 10)))
+        self.player.draw(surf)
+        for effect in self.effects:
+            effect.draw(surf)
diff --git a/out.prof b/out.prof
new file mode 100644 (file)
index 0000000..9d6452d
Binary files /dev/null and b/out.prof differ
diff --git a/player.py b/player.py
new file mode 100644 (file)
index 0000000..91a6e83
--- /dev/null
+++ b/player.py
@@ -0,0 +1,100 @@
+import pygame
+
+from setup import *
+
+
+class Player:
+    LIFE_TIME = 100
+    INFLATE_SCALE = 20
+
+    IMAGE = pygame.image.load("assets/effects/sword_slashes/White_Slash_Thin/File2.png").convert_alpha()
+
+    def __init__(self):
+        self.sliced_points = []
+        self.lines = []
+
+        self.previous_mouse_pos = pygame.Vector2(pygame.mouse.get_pos())
+        self.mouse_direction = pygame.Vector2(0, 0)
+        self.angle = 0
+        self.slicing = False
+        self.display_image = self.IMAGE.copy()
+        self.position = pygame.Vector2(0, 0)
+
+
+    def update(self, delta):
+        pressed = pygame.mouse.get_pressed()
+        if pressed[0]:
+            pos = pygame.mouse.get_pos()
+            self.sliced_points.append((pygame.Vector2(pos), pygame.time.get_ticks()))
+            self.mouse_direction = pygame.Vector2(pos) - self.previous_mouse_pos
+            self.previous_mouse_pos = pygame.Vector2(pos)
+            if self.mouse_direction.x == 0:
+                x_direction = self.mouse_direction.x + 0.0001
+            else:
+                x_direction = self.mouse_direction.x
+            self.angle = math.degrees(math.atan(self.mouse_direction.y / x_direction))
+            self.display_image, self.position = rotate_center(self.IMAGE, self.angle,
+                                                              pygame.Vector2(pos) + pygame.Vector2(
+                                                                  self.IMAGE.get_width() / 2, 0))
+            self.slicing = True
+        else:
+            self.mouse_direction = pygame.Vector2(0, 0)
+            self.previous_mouse_pos = pygame.Vector2(pygame.mouse.get_pos())
+            self.angle = 0
+            self.slicing = False
+
+        self.lines.clear()
+        if len(self.sliced_points) > 1:
+            for i in range(len(self.sliced_points) - 1):
+                self.lines.append((pygame.Vector2(self.sliced_points[i][0]), pygame.Vector2(self.sliced_points[i + 1][0])))
+
+        for i, val in enumerate(self.sliced_points):
+            pos, time = val
+            if pygame.time.get_ticks() - time > self.LIFE_TIME:
+                self.sliced_points.pop(i)
+                break
+
+    def hits(self, fruit):
+        for line in self.lines:
+            v1 = pygame.Vector2(line[0]) - fruit.position
+            v2 = pygame.Vector2(line[1]) - fruit.position
+            v = v2 - v1
+            r = fruit.radius
+
+            if v.magnitude_squared() == 0:
+                continue
+
+            discriminant = 4 * (v1.dot(v)) ** 2 - 4 * v.magnitude_squared() * (v1.magnitude_squared() - r ** 2)
+            if discriminant >= 0:
+                t1 = (-2 * v1.dot(v) + math.sqrt(discriminant)) / (2 * v.magnitude_squared())
+                t2 = (-2 * v1.dot(v) - math.sqrt(discriminant)) / (2 * v.magnitude_squared())
+                if 0 <= t1 <= 1 or 0 <= t2 <= 1:
+                    return True
+                if (t1 < 0 and t2 > 1) or (t2 < 0 and t1 > 1):
+                    return True
+        return False
+
+    def draw(self, surf):
+        # for line in self.lines:
+        #     pygame.draw.circle(surf, BLUE, line[0], 5)
+        #     # pygame.draw.rect(surf, RED, hitbox)
+        #     pygame.draw.line(surf, GREEN, line[0], line[1], 4)
+        #     mx, my = line[1] - line[0]
+        #     if mx == 0:
+        #         mx = 0.01
+        #     m = my / mx
+        #     c = line[0].y - m * line[0].x
+        #
+        #     x1 = line[0].x
+        #     y1 = m * x1 + c
+        #     x2 = line[1].x
+        #     y2 = m * x2 + c
+        #
+        #     pygame.draw.line(surf, RED, (x1, y1), (x2, y2), 4)
+        #     pygame.draw.rect(surf, RED, hitbox)
+        #     pygame.draw.line(surf, RED, line[0], line[1], 4)
+        # for pos, time in self.sliced_points:
+        #     pygame.draw.circle(surf, RED, pos, 3)
+        if len(self.sliced_points) > 1:
+            pygame.draw.lines(surf, BLACK, False, [a for a, b in self.sliced_points], 6)
+            pygame.draw.lines(surf, LIGHT_GRAY, False, [a for a, b in self.sliced_points], 4)
diff --git a/setup.py b/setup.py
new file mode 100644 (file)
index 0000000..9b85da7
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,251 @@
+import pygame
+import random
+import os
+import math
+from functools import cache
+
+pygame.init()
+WIDTH, HEIGHT = pygame.display.Info().current_w, pygame.display.Info().current_h
+screen = pygame.display.set_mode((WIDTH, HEIGHT), pygame.FULLSCREEN)
+
+SCALE = pygame.Vector2(WIDTH / 1536, HEIGHT / 864)
+
+pygame.display.set_caption("Fruit Shinobi")
+icon = pygame.image.load("assets/logo.ico").convert()
+pygame.display.set_icon(icon)
+
+# fonts
+font_small = pygame.font.Font("assets/font/go3v2.ttf", int(30 * SCALE.x))
+font = pygame.font.Font("assets/font/go3v2.ttf", int(60 * SCALE.x))
+font_large = pygame.font.Font("assets/font/go3v2.ttf", int(100 * SCALE.x))
+
+# colors
+WHITE = (255, 255, 255)
+LIGHT_GRAY = (211, 211, 211)
+GRAY = (128, 128, 128)
+DARK_GRAY = (25, 25, 25)
+BLACK = (0, 0, 0)
+
+RED = (255, 0, 0)
+GREEN = (0, 255, 0)
+BLUE = (0, 0, 255)
+ORANGE = (255, 165, 0)
+YELLOW = (255, 255, 0)
+PURPLE = (128, 0, 128)
+
+BROWN = (139, 69, 19)
+DARK_BROWN = (119, 49, 0)
+
+DARK_RED = (139, 0, 0)
+DARK_GREEN = (0, 100, 0)
+DARK_BLUE = (0, 0, 139)
+DARK_ORANGE = (255, 140, 0)
+DARK_YELLOW = (255, 215, 0)
+DARK_PURPLE = (75, 0, 130)
+
+DEFAULT_COLORS = [
+    RED,
+    GREEN,
+    BLUE,
+    ORANGE,
+    YELLOW,
+    PURPLE,
+    DARK_RED,
+    DARK_GREEN,
+    DARK_BLUE,
+    DARK_ORANGE,
+    DARK_YELLOW,
+    DARK_PURPLE
+]
+
+COLORS = [
+    (252, 166, 168),
+    (247, 203, 168),
+    (203, 172, 239),
+    (160, 247, 208),
+    (222, 244, 141),
+    (205, 255, 135),
+    (174, 252, 201),
+    (247, 167, 111),
+    (225, 162, 239),
+    (209, 239, 119),
+    (211, 255, 178),
+    (119, 249, 215),
+    (252, 113, 146),
+    (204, 247, 160),
+    (247, 161, 148),
+    (218, 186, 255),
+    (112, 239, 116),
+    (237, 186, 125),
+    (198, 202, 255),
+    (197, 252, 174),
+]
+
+
+def darken(color, factor=0.5):
+    r, g, b = color
+    return (r * factor, g * factor, b * factor)
+
+
+def lighten(color, factor=0.5):
+    r, g, b = color
+    return (min(255, r * (1 + factor)), min(255, g * (1 + factor)), min(255, b * (1 + factor)))
+
+
+# commands
+COMMAND_EXIT = 0
+COMMAND_START = 1
+COMMAND_MENU = 2
+
+screen.fill(BROWN)
+loading_text = font_large.render("Loading...", True, BLACK)
+screen.blit(loading_text, loading_text.get_rect(center=(WIDTH / 2, HEIGHT / 2)))
+pygame.display.update()
+
+
+def lerp(start, end, weight):
+    return weight * (end - start) + start
+
+
+def clamp(value, minimum, maximum):
+    return min(maximum, max(minimum, value))
+
+
+@cache
+def rotate(image, angle):
+    return pygame.transform.rotate(image, angle)
+
+
+def rotate_center(image, angle, position):
+    rotated_image = rotate(image, round(angle))
+    new_rect = rotated_image.get_rect(center=image.get_rect(topleft=(
+        position.x - image.get_rect().width / 2, position.y - image.get_rect().height / 2)).center)
+    return rotated_image, new_rect.topleft
+
+
+def determine_angle(pos1, pos2):
+    pos1 = pygame.Vector2(pos1)
+    pos2 = pygame.Vector2(pos2)
+
+    if pos1.x == pos2.x:
+        pos2.x += 0.0001
+
+    a = math.degrees(math.atan((pos2.y - pos1.y) / (pos2.x - pos1.x)))
+
+    # if pos2.x < pos1.x:
+    #     a += 180
+    return -a
+
+# def split_image(image, angle, image_position, mouse_position, mouse_direction):
+#     img = image.copy()
+#     ip = pygame.Vector2(img.get_width() / 2, img.get_height() / 2)
+#     mp = mouse_position - ip
+#
+#     if mouse_direction.x == 0:
+#         a = 90
+#     else:
+#         a = math.degrees(math.atan(mouse_direction.y/mouse_direction.x))
+#
+#     mp.rotate_ip(-a)
+#     mp += ip
+#
+#     pygame.draw.line(img, RED,mouse_position-image_position, mouse_direction * 100+ mouse_position-image_position, 20)
+#
+#     rot_img,pos = rotate_center(img, -a, image_position)
+#     return img, rot_img, (WIDTH/2, HEIGHT/2), (0,0)
+#     crop_y = clamp(int(mp.y), 0, img.get_height())
+#
+#     half1 = pygame.transform.rotate(img2.subsurface((0, 0, img.get_width(), crop_y)), a)
+#     half2 = pygame.transform.rotate(img2.subsurface((0, crop_y, img.get_width(), img.get_height() - crop_y)), a)
+#     #
+#     # return half1, half2, half1.get_rect(topleft=pos1).center, half2.get_rect(topleft=pos2).center
+
+# good one :D
+# def split_image(image, angle, image_position, mouse_position, mouse_direction):
+#     img = image.copy()
+#
+#     if mouse_direction.x == 0:
+#         mouse_direction.x += 0.0001
+#
+#     a = math.degrees(math.atan(mouse_direction.y / mouse_direction.x))
+#
+#     img = rotate_center(img, a, pygame.Vector2(0, 0))[0]
+#
+#     top_left = pygame.Vector2(image_position) - pygame.Vector2(img.get_width() / 2, img.get_height() / 2)
+#     rot_center = pygame.Vector2(image_position) - top_left
+#
+#     # finding end and start points of the splitting line
+#     # [x,y] = mouse_position + t * mouse_direction # vector equation
+#     # x = mouse_position.x + t * mouse_direction.x
+#     # y = mouse_position.y + t * mouse_direction.y
+#
+#     mp = mouse_position - top_left
+#
+#     t1 = (- mp.x) / mouse_direction.x
+#     p1 = mp + t1 * mouse_direction
+#
+#     t2 = (img.get_width() - mp.x) / mouse_direction.x
+#     p2 = mp + t2 * mouse_direction
+#
+#     p3 = (p1 - rot_center).rotate(-a) + rot_center
+#     p4 = (p2-rot_center).rotate(-a) + rot_center
+#
+#     half1 = img.subsurface(pygame.Rect(0, 0, img.get_width(), clamp(p3.y,0, img.get_height())))
+#     half2 = img.subsurface(pygame.Rect(0, clamp(p3.y,0, img.get_height()), img.get_width(), clamp(img.get_height() - p3.y, 0, img.get_height())))
+#
+#     p5 = half1.get_rect().center - rot_center
+#     pos1 = (p5).rotate(a) + image_position
+#
+#     p6 = half2.get_rect().center - rot_center + pygame.Vector2(0, clamp(p3.y,0, img.get_height()))
+#     pos2 = (p6).rotate(a) + image_position
+#
+#     r_half1 = pygame.transform.rotate(half1, -a)
+#     r_half2 = pygame.transform.rotate(half2, -a)
+#
+#     return r_half1, r_half2, pos1, pos2
+
+
+# def split_image(image, angle, pos1, pos2, image_position):
+#     pos1 = pygame.Vector2(pos1) - image_position + pygame.Vector2(image.get_width() / 2, image.get_height() / 2)
+#     pos2 = pygame.Vector2(pos2) - image_position + pygame.Vector2(image.get_width() / 2, image.get_height() / 2)
+#
+#     if pos1.x == pos2.x:
+#         pos2.x += 0.0001
+#
+#     img = image.copy()
+#
+#     center = pygame.Vector2(img.get_width() / 2, img.get_height() / 2)
+#
+#     # pygame.draw.circle(img, BLACK, center, 5)
+#     # pygame.draw.circle(img, RED, pos1, 15)
+#     # pygame.draw.circle(img, GREEN, pos2, 15)
+#     # pygame.draw.line(img, BLACK, pos1, pos2, 5)
+#
+#     a = math.degrees(math.atan((pos2.y - pos1.y) / (pos2.x - pos1.x)))
+#     img = rotate_center(img, a, pygame.Vector2(0, 0))[0]
+#     p1 = (pos1 - center).rotate(-a) + img.get_rect().center
+#     p2 = (pos2 - center).rotate(-a) + img.get_rect().center
+#
+#     # pygame.draw.circle(img, BLACK, center, 5)
+#     # pygame.draw.circle(img, BLUE, p1, 15)
+#     # pygame.draw.circle(img, WHITE, p2, 15)
+#
+#     rot_center = pygame.Vector2(img.get_width() / 2, img.get_height() / 2)
+#     p3 = (-rot_center.copy()).rotate(-a) + center
+#     p4 = pygame.Vector2(-image.get_width() / 2, 0).rotate(-a) + center
+#
+#     half1 = pygame.transform.rotate(img.subsurface(pygame.Rect(0, 0, img.get_width(), min(p1.y, img.get_height()))),
+#                                     -a).convert_alpha()
+#     half2 = pygame.transform.rotate(
+#         img.subsurface(pygame.Rect(0, min(p1.y, img.get_height()), img.get_width(), max(img.get_height() - p1.y, 0))),
+#         -a).convert_alpha()
+#     #
+#     if 0 < a < 90:
+#         p3, p4 = p4, p3
+#
+#     half1, pos1 = rotate_center(half1, angle,
+#                                 p3 + image_position + pygame.Vector2(half1.get_width() / 2, half1.get_height() / 2))
+#     half2, pos2 = rotate_center(half2, angle,
+#                                 p4 + image_position + pygame.Vector2(half2.get_width() / 2, half2.get_height() / 2))
+#
+#     return half1, half2, pos1, pos2