diff --git a/assets/cards/albrich.png b/assets/cards/albrich.png new file mode 100644 index 0000000..a86934a Binary files /dev/null and b/assets/cards/albrich.png differ diff --git a/assets/cards/arachas1.png b/assets/cards/arachas1.png new file mode 100644 index 0000000..359bf36 Binary files /dev/null and b/assets/cards/arachas1.png differ diff --git a/assets/cards/arachas2.png b/assets/cards/arachas2.png new file mode 100644 index 0000000..4785b74 Binary files /dev/null and b/assets/cards/arachas2.png differ diff --git a/assets/cards/arachas3.png b/assets/cards/arachas3.png new file mode 100644 index 0000000..4516f03 Binary files /dev/null and b/assets/cards/arachas3.png differ diff --git a/assets/cards/arachas_behemoth.png b/assets/cards/arachas_behemoth.png new file mode 100644 index 0000000..5118a94 Binary files /dev/null and b/assets/cards/arachas_behemoth.png differ diff --git a/assets/cards/archer.png b/assets/cards/archer.png new file mode 100644 index 0000000..4361da1 Binary files /dev/null and b/assets/cards/archer.png differ diff --git a/assets/cards/assire_var_anahid.png b/assets/cards/assire_var_anahid.png new file mode 100644 index 0000000..13b138f Binary files /dev/null and b/assets/cards/assire_var_anahid.png differ diff --git a/assets/cards/aux_archers1.png b/assets/cards/aux_archers1.png new file mode 100644 index 0000000..a50fe5e Binary files /dev/null and b/assets/cards/aux_archers1.png differ diff --git a/assets/cards/aux_archers2.png b/assets/cards/aux_archers2.png new file mode 100644 index 0000000..65a3aca Binary files /dev/null and b/assets/cards/aux_archers2.png differ diff --git a/assets/cards/avallach.png b/assets/cards/avallach.png new file mode 100644 index 0000000..9b3a33a Binary files /dev/null and b/assets/cards/avallach.png differ diff --git a/assets/cards/ballista1.png b/assets/cards/ballista1.png new file mode 100644 index 0000000..1c5fa68 Binary files /dev/null and b/assets/cards/ballista1.png differ diff --git a/assets/cards/ballista2.png b/assets/cards/ballista2.png new file mode 100644 index 0000000..eb2257b Binary files /dev/null and b/assets/cards/ballista2.png differ diff --git a/assets/cards/barclay.png b/assets/cards/barclay.png new file mode 100644 index 0000000..3766564 Binary files /dev/null and b/assets/cards/barclay.png differ diff --git a/assets/cards/black_infantry_archer1.png b/assets/cards/black_infantry_archer1.png new file mode 100644 index 0000000..0b982ef Binary files /dev/null and b/assets/cards/black_infantry_archer1.png differ diff --git a/assets/cards/black_infantry_archer2.png b/assets/cards/black_infantry_archer2.png new file mode 100644 index 0000000..8f1b614 Binary files /dev/null and b/assets/cards/black_infantry_archer2.png differ diff --git a/assets/cards/botchling.png b/assets/cards/botchling.png new file mode 100644 index 0000000..47dbe60 Binary files /dev/null and b/assets/cards/botchling.png differ diff --git a/assets/cards/catapult.png b/assets/cards/catapult.png new file mode 100644 index 0000000..fcc430c Binary files /dev/null and b/assets/cards/catapult.png differ diff --git a/assets/cards/ceallach.png b/assets/cards/ceallach.png new file mode 100644 index 0000000..efcc492 Binary files /dev/null and b/assets/cards/ceallach.png differ diff --git a/assets/cards/celaeno_harpy.png b/assets/cards/celaeno_harpy.png new file mode 100644 index 0000000..9edc6ea Binary files /dev/null and b/assets/cards/celaeno_harpy.png differ diff --git a/assets/cards/ciri.png b/assets/cards/ciri.png new file mode 100644 index 0000000..ebb6f27 Binary files /dev/null and b/assets/cards/ciri.png differ diff --git a/assets/cards/clear.png b/assets/cards/clear.png new file mode 100644 index 0000000..f870621 Binary files /dev/null and b/assets/cards/clear.png differ diff --git a/assets/cards/cockatrice.png b/assets/cards/cockatrice.png new file mode 100644 index 0000000..95c37f6 Binary files /dev/null and b/assets/cards/cockatrice.png differ diff --git a/assets/cards/commando.png b/assets/cards/commando.png new file mode 100644 index 0000000..aee1b67 Binary files /dev/null and b/assets/cards/commando.png differ diff --git a/assets/cards/cranmer.png b/assets/cards/cranmer.png new file mode 100644 index 0000000..49cd59c Binary files /dev/null and b/assets/cards/cranmer.png differ diff --git a/assets/cards/crinfrid.png b/assets/cards/crinfrid.png new file mode 100644 index 0000000..a9cf188 Binary files /dev/null and b/assets/cards/crinfrid.png differ diff --git a/assets/cards/crone_brewess.png b/assets/cards/crone_brewess.png new file mode 100644 index 0000000..8cde618 Binary files /dev/null and b/assets/cards/crone_brewess.png differ diff --git a/assets/cards/crone_weavess.png b/assets/cards/crone_weavess.png new file mode 100644 index 0000000..b93b885 Binary files /dev/null and b/assets/cards/crone_weavess.png differ diff --git a/assets/cards/crone_whispess.png b/assets/cards/crone_whispess.png new file mode 100644 index 0000000..dfa54d8 Binary files /dev/null and b/assets/cards/crone_whispess.png differ diff --git a/assets/cards/cynthia.png b/assets/cards/cynthia.png new file mode 100644 index 0000000..d8c2848 Binary files /dev/null and b/assets/cards/cynthia.png differ diff --git a/assets/cards/dandelion.png b/assets/cards/dandelion.png new file mode 100644 index 0000000..550908f Binary files /dev/null and b/assets/cards/dandelion.png differ diff --git a/assets/cards/decoy.png b/assets/cards/decoy.png new file mode 100644 index 0000000..d208e97 Binary files /dev/null and b/assets/cards/decoy.png differ diff --git a/assets/cards/defender1.png b/assets/cards/defender1.png new file mode 100644 index 0000000..cddce58 Binary files /dev/null and b/assets/cards/defender1.png differ diff --git a/assets/cards/defender2.png b/assets/cards/defender2.png new file mode 100644 index 0000000..cbfae29 Binary files /dev/null and b/assets/cards/defender2.png differ diff --git a/assets/cards/defender3.png b/assets/cards/defender3.png new file mode 100644 index 0000000..7ed0caa Binary files /dev/null and b/assets/cards/defender3.png differ diff --git a/assets/cards/defender4.png b/assets/cards/defender4.png new file mode 100644 index 0000000..d6fa147 Binary files /dev/null and b/assets/cards/defender4.png differ diff --git a/assets/cards/defender5.png b/assets/cards/defender5.png new file mode 100644 index 0000000..94a5c91 Binary files /dev/null and b/assets/cards/defender5.png differ diff --git a/assets/cards/dethmold.png b/assets/cards/dethmold.png new file mode 100644 index 0000000..5b5d4a3 Binary files /dev/null and b/assets/cards/dethmold.png differ diff --git a/assets/cards/dijkstra.png b/assets/cards/dijkstra.png new file mode 100644 index 0000000..7bcd8eb Binary files /dev/null and b/assets/cards/dijkstra.png differ diff --git a/assets/cards/draug.png b/assets/cards/draug.png new file mode 100644 index 0000000..4696981 Binary files /dev/null and b/assets/cards/draug.png differ diff --git a/assets/cards/earth_elemental.png b/assets/cards/earth_elemental.png new file mode 100644 index 0000000..64a8d08 Binary files /dev/null and b/assets/cards/earth_elemental.png differ diff --git a/assets/cards/easnillien.png b/assets/cards/easnillien.png new file mode 100644 index 0000000..376068a Binary files /dev/null and b/assets/cards/easnillien.png differ diff --git a/assets/cards/eggebracht.png b/assets/cards/eggebracht.png new file mode 100644 index 0000000..2c3debf Binary files /dev/null and b/assets/cards/eggebracht.png differ diff --git a/assets/cards/eilhart.png b/assets/cards/eilhart.png new file mode 100644 index 0000000..ed4b62c Binary files /dev/null and b/assets/cards/eilhart.png differ diff --git a/assets/cards/eithne.png b/assets/cards/eithne.png new file mode 100644 index 0000000..491e684 Binary files /dev/null and b/assets/cards/eithne.png differ diff --git a/assets/cards/elven_skirmisher1.png b/assets/cards/elven_skirmisher1.png new file mode 100644 index 0000000..091a15e Binary files /dev/null and b/assets/cards/elven_skirmisher1.png differ diff --git a/assets/cards/elven_skirmisher2.png b/assets/cards/elven_skirmisher2.png new file mode 100644 index 0000000..0a2760e Binary files /dev/null and b/assets/cards/elven_skirmisher2.png differ diff --git a/assets/cards/elven_skirmisher3.png b/assets/cards/elven_skirmisher3.png new file mode 100644 index 0000000..b11c4a3 Binary files /dev/null and b/assets/cards/elven_skirmisher3.png differ diff --git a/assets/cards/emhyr_emperor.png b/assets/cards/emhyr_emperor.png new file mode 100644 index 0000000..e688898 Binary files /dev/null and b/assets/cards/emhyr_emperor.png differ diff --git a/assets/cards/emhyr_imperial.png b/assets/cards/emhyr_imperial.png new file mode 100644 index 0000000..6227923 Binary files /dev/null and b/assets/cards/emhyr_imperial.png differ diff --git a/assets/cards/emhyr_relentless.png b/assets/cards/emhyr_relentless.png new file mode 100644 index 0000000..60a6e11 Binary files /dev/null and b/assets/cards/emhyr_relentless.png differ diff --git a/assets/cards/emhyr_white.png b/assets/cards/emhyr_white.png new file mode 100644 index 0000000..d643db7 Binary files /dev/null and b/assets/cards/emhyr_white.png differ diff --git a/assets/cards/endrega.png b/assets/cards/endrega.png new file mode 100644 index 0000000..806cf59 Binary files /dev/null and b/assets/cards/endrega.png differ diff --git a/assets/cards/eredin_bringer.png b/assets/cards/eredin_bringer.png new file mode 100644 index 0000000..c34c969 Binary files /dev/null and b/assets/cards/eredin_bringer.png differ diff --git a/assets/cards/eredin_commander.png b/assets/cards/eredin_commander.png new file mode 100644 index 0000000..a4d9f25 Binary files /dev/null and b/assets/cards/eredin_commander.png differ diff --git a/assets/cards/eredin_destroyer.png b/assets/cards/eredin_destroyer.png new file mode 100644 index 0000000..96fda51 Binary files /dev/null and b/assets/cards/eredin_destroyer.png differ diff --git a/assets/cards/eredin_king.png b/assets/cards/eredin_king.png new file mode 100644 index 0000000..43535f9 Binary files /dev/null and b/assets/cards/eredin_king.png differ diff --git a/assets/cards/fidhail.png b/assets/cards/fidhail.png new file mode 100644 index 0000000..ea7f925 Binary files /dev/null and b/assets/cards/fidhail.png differ diff --git a/assets/cards/fiend.png b/assets/cards/fiend.png new file mode 100644 index 0000000..513d923 Binary files /dev/null and b/assets/cards/fiend.png differ diff --git a/assets/cards/fire_elemental.png b/assets/cards/fire_elemental.png new file mode 100644 index 0000000..7a2b424 Binary files /dev/null and b/assets/cards/fire_elemental.png differ diff --git a/assets/cards/fire_scorpion.png b/assets/cards/fire_scorpion.png new file mode 100644 index 0000000..3949611 Binary files /dev/null and b/assets/cards/fire_scorpion.png differ diff --git a/assets/cards/fog.png b/assets/cards/fog.png new file mode 100644 index 0000000..4e33b11 Binary files /dev/null and b/assets/cards/fog.png differ diff --git a/assets/cards/foglet.png b/assets/cards/foglet.png new file mode 100644 index 0000000..4fe9817 Binary files /dev/null and b/assets/cards/foglet.png differ diff --git a/assets/cards/foltest_commander.png b/assets/cards/foltest_commander.png new file mode 100644 index 0000000..83c2e0f Binary files /dev/null and b/assets/cards/foltest_commander.png differ diff --git a/assets/cards/foltest_forged.png b/assets/cards/foltest_forged.png new file mode 100644 index 0000000..4fa5628 Binary files /dev/null and b/assets/cards/foltest_forged.png differ diff --git a/assets/cards/foltest_king.png b/assets/cards/foltest_king.png new file mode 100644 index 0000000..ddf2e40 Binary files /dev/null and b/assets/cards/foltest_king.png differ diff --git a/assets/cards/foltest_siege.png b/assets/cards/foltest_siege.png new file mode 100644 index 0000000..08d6f6c Binary files /dev/null and b/assets/cards/foltest_siege.png differ diff --git a/assets/cards/foot_soldier1.png b/assets/cards/foot_soldier1.png new file mode 100644 index 0000000..b488c99 Binary files /dev/null and b/assets/cards/foot_soldier1.png differ diff --git a/assets/cards/foot_solider2.png b/assets/cards/foot_solider2.png new file mode 100644 index 0000000..9e05efb Binary files /dev/null and b/assets/cards/foot_solider2.png differ diff --git a/assets/cards/forktail.png b/assets/cards/forktail.png new file mode 100644 index 0000000..bf1bcaa Binary files /dev/null and b/assets/cards/forktail.png differ diff --git a/assets/cards/francesca_beautiful.png b/assets/cards/francesca_beautiful.png new file mode 100644 index 0000000..92b922a Binary files /dev/null and b/assets/cards/francesca_beautiful.png differ diff --git a/assets/cards/francesca_daisy.png b/assets/cards/francesca_daisy.png new file mode 100644 index 0000000..5f85f35 Binary files /dev/null and b/assets/cards/francesca_daisy.png differ diff --git a/assets/cards/francesca_pureblood.png b/assets/cards/francesca_pureblood.png new file mode 100644 index 0000000..d8bf03a Binary files /dev/null and b/assets/cards/francesca_pureblood.png differ diff --git a/assets/cards/francesca_queen.png b/assets/cards/francesca_queen.png new file mode 100644 index 0000000..e048a16 Binary files /dev/null and b/assets/cards/francesca_queen.png differ diff --git a/assets/cards/frightener.png b/assets/cards/frightener.png new file mode 100644 index 0000000..63e39f8 Binary files /dev/null and b/assets/cards/frightener.png differ diff --git a/assets/cards/frost.png b/assets/cards/frost.png new file mode 100644 index 0000000..68ac32e Binary files /dev/null and b/assets/cards/frost.png differ diff --git a/assets/cards/gargoyle.png b/assets/cards/gargoyle.png new file mode 100644 index 0000000..e290149 Binary files /dev/null and b/assets/cards/gargoyle.png differ diff --git a/assets/cards/geralt.png b/assets/cards/geralt.png new file mode 100644 index 0000000..d7b8b19 Binary files /dev/null and b/assets/cards/geralt.png differ diff --git a/assets/cards/ghoul1.png b/assets/cards/ghoul1.png new file mode 100644 index 0000000..455d9f4 Binary files /dev/null and b/assets/cards/ghoul1.png differ diff --git a/assets/cards/ghoul2.png b/assets/cards/ghoul2.png new file mode 100644 index 0000000..919b3d1 Binary files /dev/null and b/assets/cards/ghoul2.png differ diff --git a/assets/cards/ghoul3.png b/assets/cards/ghoul3.png new file mode 100644 index 0000000..18788ff Binary files /dev/null and b/assets/cards/ghoul3.png differ diff --git a/assets/cards/grave_hag.png b/assets/cards/grave_hag.png new file mode 100644 index 0000000..bbfd119 Binary files /dev/null and b/assets/cards/grave_hag.png differ diff --git a/assets/cards/griffin.png b/assets/cards/griffin.png new file mode 100644 index 0000000..70525e0 Binary files /dev/null and b/assets/cards/griffin.png differ diff --git a/assets/cards/harpy.png b/assets/cards/harpy.png new file mode 100644 index 0000000..8da8229 Binary files /dev/null and b/assets/cards/harpy.png differ diff --git a/assets/cards/healer.png b/assets/cards/healer.png new file mode 100644 index 0000000..0386427 Binary files /dev/null and b/assets/cards/healer.png differ diff --git a/assets/cards/healer2.png b/assets/cards/healer2.png new file mode 100644 index 0000000..521e498 Binary files /dev/null and b/assets/cards/healer2.png differ diff --git a/assets/cards/healer3.png b/assets/cards/healer3.png new file mode 100644 index 0000000..bfe76d2 Binary files /dev/null and b/assets/cards/healer3.png differ diff --git a/assets/cards/heavy_fire_scorpion.png b/assets/cards/heavy_fire_scorpion.png new file mode 100644 index 0000000..8f31ab7 Binary files /dev/null and b/assets/cards/heavy_fire_scorpion.png differ diff --git a/assets/cards/horn.png b/assets/cards/horn.png new file mode 100644 index 0000000..70de134 Binary files /dev/null and b/assets/cards/horn.png differ diff --git a/assets/cards/ice_giant.png b/assets/cards/ice_giant.png new file mode 100644 index 0000000..a8cc5ed Binary files /dev/null and b/assets/cards/ice_giant.png differ diff --git a/assets/cards/imlerith.png b/assets/cards/imlerith.png new file mode 100644 index 0000000..ab09c0e Binary files /dev/null and b/assets/cards/imlerith.png differ diff --git a/assets/cards/impera_brigade_guard.png b/assets/cards/impera_brigade_guard.png new file mode 100644 index 0000000..20d1624 Binary files /dev/null and b/assets/cards/impera_brigade_guard.png differ diff --git a/assets/cards/infantry.png b/assets/cards/infantry.png new file mode 100644 index 0000000..349ed1f Binary files /dev/null and b/assets/cards/infantry.png differ diff --git a/assets/cards/iorveth.png b/assets/cards/iorveth.png new file mode 100644 index 0000000..590091f Binary files /dev/null and b/assets/cards/iorveth.png differ diff --git a/assets/cards/isengrim.png b/assets/cards/isengrim.png new file mode 100644 index 0000000..30af3dd Binary files /dev/null and b/assets/cards/isengrim.png differ diff --git a/assets/cards/kayran.png b/assets/cards/kayran.png new file mode 100644 index 0000000..7359245 Binary files /dev/null and b/assets/cards/kayran.png differ diff --git a/assets/cards/keira.png b/assets/cards/keira.png new file mode 100644 index 0000000..67e9c2c Binary files /dev/null and b/assets/cards/keira.png differ diff --git a/assets/cards/leshen.png b/assets/cards/leshen.png new file mode 100644 index 0000000..0cd9a0f Binary files /dev/null and b/assets/cards/leshen.png differ diff --git a/assets/cards/letho.png b/assets/cards/letho.png new file mode 100644 index 0000000..cf85074 Binary files /dev/null and b/assets/cards/letho.png differ diff --git a/assets/cards/medic.png b/assets/cards/medic.png new file mode 100644 index 0000000..cb190f6 Binary files /dev/null and b/assets/cards/medic.png differ diff --git a/assets/cards/menno.png b/assets/cards/menno.png new file mode 100644 index 0000000..905f0c7 Binary files /dev/null and b/assets/cards/menno.png differ diff --git a/assets/cards/milva.png b/assets/cards/milva.png new file mode 100644 index 0000000..cb8f6eb Binary files /dev/null and b/assets/cards/milva.png differ diff --git a/assets/cards/morteisen.png b/assets/cards/morteisen.png new file mode 100644 index 0000000..160fd60 Binary files /dev/null and b/assets/cards/morteisen.png differ diff --git a/assets/cards/natalis.png b/assets/cards/natalis.png new file mode 100644 index 0000000..66e49c4 Binary files /dev/null and b/assets/cards/natalis.png differ diff --git a/assets/cards/nausicaa_cavalry_rider.png b/assets/cards/nausicaa_cavalry_rider.png new file mode 100644 index 0000000..0b4efbd Binary files /dev/null and b/assets/cards/nausicaa_cavalry_rider.png differ diff --git a/assets/cards/nekker1.png b/assets/cards/nekker1.png new file mode 100644 index 0000000..2fc3dbf Binary files /dev/null and b/assets/cards/nekker1.png differ diff --git a/assets/cards/nekker2.png b/assets/cards/nekker2.png new file mode 100644 index 0000000..171674c Binary files /dev/null and b/assets/cards/nekker2.png differ diff --git a/assets/cards/nekker3.png b/assets/cards/nekker3.png new file mode 100644 index 0000000..15f432b Binary files /dev/null and b/assets/cards/nekker3.png differ diff --git a/assets/cards/plague_maiden.png b/assets/cards/plague_maiden.png new file mode 100644 index 0000000..06cac54 Binary files /dev/null and b/assets/cards/plague_maiden.png differ diff --git a/assets/cards/puttkammer.png b/assets/cards/puttkammer.png new file mode 100644 index 0000000..9b821bf Binary files /dev/null and b/assets/cards/puttkammer.png differ diff --git a/assets/cards/rain.png b/assets/cards/rain.png new file mode 100644 index 0000000..b0cbdbb Binary files /dev/null and b/assets/cards/rain.png differ diff --git a/assets/cards/rainfarn.png b/assets/cards/rainfarn.png new file mode 100644 index 0000000..31d311b Binary files /dev/null and b/assets/cards/rainfarn.png differ diff --git a/assets/cards/recruit.png b/assets/cards/recruit.png new file mode 100644 index 0000000..4a81dd1 Binary files /dev/null and b/assets/cards/recruit.png differ diff --git a/assets/cards/renauld.png b/assets/cards/renauld.png new file mode 100644 index 0000000..7356d1b Binary files /dev/null and b/assets/cards/renauld.png differ diff --git a/assets/cards/riordain.png b/assets/cards/riordain.png new file mode 100644 index 0000000..e7b85d7 Binary files /dev/null and b/assets/cards/riordain.png differ diff --git a/assets/cards/roche.png b/assets/cards/roche.png new file mode 100644 index 0000000..aaa1dda Binary files /dev/null and b/assets/cards/roche.png differ diff --git a/assets/cards/rotten_mangonel.png b/assets/cards/rotten_mangonel.png new file mode 100644 index 0000000..d802e99 Binary files /dev/null and b/assets/cards/rotten_mangonel.png differ diff --git a/assets/cards/sabrina.png b/assets/cards/sabrina.png new file mode 100644 index 0000000..c2ac056 Binary files /dev/null and b/assets/cards/sabrina.png differ diff --git a/assets/cards/saesenthessis.png b/assets/cards/saesenthessis.png new file mode 100644 index 0000000..3c1e231 Binary files /dev/null and b/assets/cards/saesenthessis.png differ diff --git a/assets/cards/scorch.png b/assets/cards/scorch.png new file mode 100644 index 0000000..76ee10d Binary files /dev/null and b/assets/cards/scorch.png differ diff --git a/assets/cards/scout1.png b/assets/cards/scout1.png new file mode 100644 index 0000000..eccbcfd Binary files /dev/null and b/assets/cards/scout1.png differ diff --git a/assets/cards/scout2.png b/assets/cards/scout2.png new file mode 100644 index 0000000..13d0b6d Binary files /dev/null and b/assets/cards/scout2.png differ diff --git a/assets/cards/scout3.png b/assets/cards/scout3.png new file mode 100644 index 0000000..50e20d8 Binary files /dev/null and b/assets/cards/scout3.png differ diff --git a/assets/cards/shilard.png b/assets/cards/shilard.png new file mode 100644 index 0000000..453f405 Binary files /dev/null and b/assets/cards/shilard.png differ diff --git a/assets/cards/siege_engineer.png b/assets/cards/siege_engineer.png new file mode 100644 index 0000000..e524450 Binary files /dev/null and b/assets/cards/siege_engineer.png differ diff --git a/assets/cards/siege_expert1.png b/assets/cards/siege_expert1.png new file mode 100644 index 0000000..10f34e2 Binary files /dev/null and b/assets/cards/siege_expert1.png differ diff --git a/assets/cards/siege_expert2.png b/assets/cards/siege_expert2.png new file mode 100644 index 0000000..e421b72 Binary files /dev/null and b/assets/cards/siege_expert2.png differ diff --git a/assets/cards/siege_expert3.png b/assets/cards/siege_expert3.png new file mode 100644 index 0000000..b679832 Binary files /dev/null and b/assets/cards/siege_expert3.png differ diff --git a/assets/cards/siege_tech.png b/assets/cards/siege_tech.png new file mode 100644 index 0000000..d44f466 Binary files /dev/null and b/assets/cards/siege_tech.png differ diff --git a/assets/cards/siege_tower.png b/assets/cards/siege_tower.png new file mode 100644 index 0000000..33676cb Binary files /dev/null and b/assets/cards/siege_tower.png differ diff --git a/assets/cards/siegfried.png b/assets/cards/siegfried.png new file mode 100644 index 0000000..c4303ef Binary files /dev/null and b/assets/cards/siegfried.png differ diff --git a/assets/cards/sile.png b/assets/cards/sile.png new file mode 100644 index 0000000..103b6b7 Binary files /dev/null and b/assets/cards/sile.png differ diff --git a/assets/cards/sivney.png b/assets/cards/sivney.png new file mode 100644 index 0000000..263f9f2 Binary files /dev/null and b/assets/cards/sivney.png differ diff --git a/assets/cards/skaggs.png b/assets/cards/skaggs.png new file mode 100644 index 0000000..a3f6553 Binary files /dev/null and b/assets/cards/skaggs.png differ diff --git a/assets/cards/skirmisher1.png b/assets/cards/skirmisher1.png new file mode 100644 index 0000000..9e0d442 Binary files /dev/null and b/assets/cards/skirmisher1.png differ diff --git a/assets/cards/skirmisher2.png b/assets/cards/skirmisher2.png new file mode 100644 index 0000000..1912e80 Binary files /dev/null and b/assets/cards/skirmisher2.png differ diff --git a/assets/cards/skirmisher3.png b/assets/cards/skirmisher3.png new file mode 100644 index 0000000..25bb6ae Binary files /dev/null and b/assets/cards/skirmisher3.png differ diff --git a/assets/cards/smuggler1.png b/assets/cards/smuggler1.png new file mode 100644 index 0000000..a2f1b42 Binary files /dev/null and b/assets/cards/smuggler1.png differ diff --git a/assets/cards/smuggler2.png b/assets/cards/smuggler2.png new file mode 100644 index 0000000..db6a6e1 Binary files /dev/null and b/assets/cards/smuggler2.png differ diff --git a/assets/cards/smuggler3.png b/assets/cards/smuggler3.png new file mode 100644 index 0000000..94be28e Binary files /dev/null and b/assets/cards/smuggler3.png differ diff --git a/assets/cards/stefan_skellen.png b/assets/cards/stefan_skellen.png new file mode 100644 index 0000000..d31281d Binary files /dev/null and b/assets/cards/stefan_skellen.png differ diff --git a/assets/cards/stennis.png b/assets/cards/stennis.png new file mode 100644 index 0000000..da95fee Binary files /dev/null and b/assets/cards/stennis.png differ diff --git a/assets/cards/sweers.png b/assets/cards/sweers.png new file mode 100644 index 0000000..863459d Binary files /dev/null and b/assets/cards/sweers.png differ diff --git a/assets/cards/thaler.png b/assets/cards/thaler.png new file mode 100644 index 0000000..34a9741 Binary files /dev/null and b/assets/cards/thaler.png differ diff --git a/assets/cards/thyssen.png b/assets/cards/thyssen.png new file mode 100644 index 0000000..f938a2a Binary files /dev/null and b/assets/cards/thyssen.png differ diff --git a/assets/cards/toruviel.png b/assets/cards/toruviel.png new file mode 100644 index 0000000..c8fd6e6 Binary files /dev/null and b/assets/cards/toruviel.png differ diff --git a/assets/cards/trebuchet1.png b/assets/cards/trebuchet1.png new file mode 100644 index 0000000..5b5372b Binary files /dev/null and b/assets/cards/trebuchet1.png differ diff --git a/assets/cards/trebuchet2.png b/assets/cards/trebuchet2.png new file mode 100644 index 0000000..832b30f Binary files /dev/null and b/assets/cards/trebuchet2.png differ diff --git a/assets/cards/triss.png b/assets/cards/triss.png new file mode 100644 index 0000000..2c611af Binary files /dev/null and b/assets/cards/triss.png differ diff --git a/assets/cards/vampire_bruxa.png b/assets/cards/vampire_bruxa.png new file mode 100644 index 0000000..3299f16 Binary files /dev/null and b/assets/cards/vampire_bruxa.png differ diff --git a/assets/cards/vampire_ekimmara.png b/assets/cards/vampire_ekimmara.png new file mode 100644 index 0000000..aef742d Binary files /dev/null and b/assets/cards/vampire_ekimmara.png differ diff --git a/assets/cards/vampire_fleder.png b/assets/cards/vampire_fleder.png new file mode 100644 index 0000000..6e0d32e Binary files /dev/null and b/assets/cards/vampire_fleder.png differ diff --git a/assets/cards/vampire_garkain.png b/assets/cards/vampire_garkain.png new file mode 100644 index 0000000..c244b70 Binary files /dev/null and b/assets/cards/vampire_garkain.png differ diff --git a/assets/cards/vanhemar.png b/assets/cards/vanhemar.png new file mode 100644 index 0000000..c6ec262 Binary files /dev/null and b/assets/cards/vanhemar.png differ diff --git a/assets/cards/vattier.png b/assets/cards/vattier.png new file mode 100644 index 0000000..de3e898 Binary files /dev/null and b/assets/cards/vattier.png differ diff --git a/assets/cards/ves.png b/assets/cards/ves.png new file mode 100644 index 0000000..773b1c5 Binary files /dev/null and b/assets/cards/ves.png differ diff --git a/assets/cards/vesemir.png b/assets/cards/vesemir.png new file mode 100644 index 0000000..af27d6b Binary files /dev/null and b/assets/cards/vesemir.png differ diff --git a/assets/cards/veteran1.png b/assets/cards/veteran1.png new file mode 100644 index 0000000..37ad160 Binary files /dev/null and b/assets/cards/veteran1.png differ diff --git a/assets/cards/veteran2.png b/assets/cards/veteran2.png new file mode 100644 index 0000000..4e9d259 Binary files /dev/null and b/assets/cards/veteran2.png differ diff --git a/assets/cards/vigo.png b/assets/cards/vigo.png new file mode 100644 index 0000000..f8fa7a3 Binary files /dev/null and b/assets/cards/vigo.png differ diff --git a/assets/cards/villentretenmerth.png b/assets/cards/villentretenmerth.png new file mode 100644 index 0000000..ec5e1bf Binary files /dev/null and b/assets/cards/villentretenmerth.png differ diff --git a/assets/cards/voorhis.png b/assets/cards/voorhis.png new file mode 100644 index 0000000..8543a4f Binary files /dev/null and b/assets/cards/voorhis.png differ diff --git a/assets/cards/vreemde.png b/assets/cards/vreemde.png new file mode 100644 index 0000000..6f1e3f7 Binary files /dev/null and b/assets/cards/vreemde.png differ diff --git a/assets/cards/werewolf.png b/assets/cards/werewolf.png new file mode 100644 index 0000000..f1de913 Binary files /dev/null and b/assets/cards/werewolf.png differ diff --git a/assets/cards/wyvern.png b/assets/cards/wyvern.png new file mode 100644 index 0000000..7d83cc4 Binary files /dev/null and b/assets/cards/wyvern.png differ diff --git a/assets/cards/yaevinn.png b/assets/cards/yaevinn.png new file mode 100644 index 0000000..198b8b4 Binary files /dev/null and b/assets/cards/yaevinn.png differ diff --git a/assets/cards/yarpen.png b/assets/cards/yarpen.png new file mode 100644 index 0000000..43f034f Binary files /dev/null and b/assets/cards/yarpen.png differ diff --git a/assets/cards/yen.png b/assets/cards/yen.png new file mode 100644 index 0000000..ac141c8 Binary files /dev/null and b/assets/cards/yen.png differ diff --git a/assets/cards/young_emissary1.png b/assets/cards/young_emissary1.png new file mode 100644 index 0000000..b8286c9 Binary files /dev/null and b/assets/cards/young_emissary1.png differ diff --git a/assets/cards/young_emissary2.png b/assets/cards/young_emissary2.png new file mode 100644 index 0000000..58d70aa Binary files /dev/null and b/assets/cards/young_emissary2.png differ diff --git a/assets/cards/zoltan.png b/assets/cards/zoltan.png new file mode 100644 index 0000000..2faa956 Binary files /dev/null and b/assets/cards/zoltan.png differ diff --git a/assets/ruby-grey.png b/assets/ruby-grey.png new file mode 100644 index 0000000..288e72c Binary files /dev/null and b/assets/ruby-grey.png differ diff --git a/assets/ruby.png b/assets/ruby.png new file mode 100644 index 0000000..53bf9ec Binary files /dev/null and b/assets/ruby.png differ diff --git a/package.json b/package.json index 8837b02..8b57475 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,11 @@ "vinyl-source-stream": "^1.1.0", "socket.io-client": "^1.3.5" }, - "devDependencies": {}, + "devDependencies": { + "handlebars": "^3.0.3", + "jquery": "^2.1.4", + "promise": "^7.0.1" + }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, diff --git a/public/js/Gwent.js b/public/js/Gwent.js new file mode 100644 index 0000000..f493a30 --- /dev/null +++ b/public/js/Gwent.js @@ -0,0 +1,43 @@ +var io = require("socket.io-client")("http://localhost:16918"); +var Backbone = require("backbone"); +var Player = require("./Player"); + + + + +var Gwent = (function(){ + var Gwent = function(){ + if(!(this instanceof Gwent)){ + return (new Gwent()); + } + /** + * constructor here + */ + + + + }; + var r = Gwent.prototype; + /** + * methods && properties here + * r.property = null; + * r.getProperty = function() {...} + */ + r.view = null; + r.enemy = null; + r.player = null; + + r._view = function() { + + } + + r.init = function() { + this.player = Backbone.Model.extend({}); + this.enemy = Backbone.Model.extend({}); + } + + + return Gwent; +})(); + +module.exports = Gwent; \ No newline at end of file diff --git a/public/js/Player.js b/public/js/Player.js new file mode 100644 index 0000000..11486cb --- /dev/null +++ b/public/js/Player.js @@ -0,0 +1,23 @@ +var Player = (function(){ + var Player = function(){ + if(!(this instanceof Player)){ + return (new Player()); + } + /** + * constructor here + */ + + + }; + var r = Player.prototype; + /** + * methods && properties here + * r.property = null; + * r.getProperty = function() {...} + */ + + + return Player; +})(); + +module.exports = Player; \ No newline at end of file diff --git a/public/js/main.js b/public/js/main.js index 31d566e..0fb9955 100644 --- a/public/js/main.js +++ b/public/js/main.js @@ -1,3 +1,7 @@ + +var Gwent = require("./Gwent"); + (function main(){ + var gwent = Gwent(); })(); diff --git a/public/scss/main.scss b/public/scss/main.scss index 4b259ae..b3fac42 100644 --- a/public/scss/main.scss +++ b/public/scss/main.scss @@ -89,8 +89,8 @@ i { float: left; height: 40px; width: 40px; - background: url("../../assets/ruby-grey.png"); + background: url("../assets/ruby-grey.png"); &.ruby { - background: url("../../assets/ruby.png"); + background: url("../assets/ruby.png"); } } \ No newline at end of file diff --git a/server/Battle.js b/server/Battle.js new file mode 100644 index 0000000..6272400 --- /dev/null +++ b/server/Battle.js @@ -0,0 +1,50 @@ +var Battleside = require("./Battleside"); + +var Battle = (function(){ + var Battle = function(){ + if(!(this instanceof Battle)){ + return (new Battle()); + } + /** + * constructor here + */ + + }; + var r = Battle.prototype; + /** + * methods && properties here + * r.property = null; + * r.getProperty = function() {...} + */ + + r._player = null; + + r.init = function(p1, p2){ + this.setPlayer(p1, p2); + this.initBattleside(); + this.render(); + } + + r.setPlayer = function(p1, p2){ + this._player = []; + this._player.push(p1); + this._player.push(p2); + } + + r.initBattleside = function() { + this._player.forEach(function(p) { + p.setBattleside(Battleside(p)); + }); + } + + r.render = function() { + this._player.forEach(function(p) { + p.send("update:name", p.getID()); + }); + } + + + return Battle; +})(); + +module.exports = Battle; \ No newline at end of file diff --git a/server/Battleside.js b/server/Battleside.js new file mode 100644 index 0000000..ba9e518 --- /dev/null +++ b/server/Battleside.js @@ -0,0 +1,32 @@ +var Battleside = (function(){ + var Battleside = function(player){ + if(!(this instanceof Battleside)){ + return (new Battleside(player)); + } + /** + * constructor here + */ + + this._player = player; + }; + var r = Battleside.prototype; + /** + * methods && properties here + * r.property = null; + * r.getProperty = function() {...} + */ + r._player = null; + r._deck = null; + r._discard = null; + r._hand = null; + r._leader = null; + r._close = null; + r._range = null; + r._siege = null; + r._field = null; + + + return Battleside; +})(); + +module.exports = Battleside; \ No newline at end of file diff --git a/server/Connections.js b/server/Connections.js new file mode 100644 index 0000000..f31a4ac --- /dev/null +++ b/server/Connections.js @@ -0,0 +1,37 @@ +var Connections = (function(){ + var Connections = function(){ + if(!(this instanceof Connections)){ + return (new Connections()); + } + /** + * constructor here + */ + this._connections = {}; + + }; + var r = Connections.prototype; + /** + * methods && properties here + * r.property = null; + * r.getProperty = function() {...} + */ + + r._connections = null; + + r.add = function(user) { + this._connections[user.getID()] = user; + } + + r.remove = function(user) { + delete this._connections[user.getID()]; + } + + r.get = function() { + return this._connections; + } + + + return Connections; +})(); + +module.exports = Connections; \ No newline at end of file diff --git a/server/Entity.js b/server/Entity.js new file mode 100644 index 0000000..ddee67d --- /dev/null +++ b/server/Entity.js @@ -0,0 +1,28 @@ +var Entity = (function(){ + var Entity = function(){ + if(!(this instanceof Entity)){ + return (new Entity()); + } + /** + * constructor here + */ + + + }; + var r = Entity.prototype; + /** + * methods && properties here + * r.property = null; + * r.getProperty = function() {...} + */ + r._battleside; + + r.setBattleside = function(b) { + this._battleside = b; + } + + + return Entity; +})(); + +module.exports = Entity; \ No newline at end of file diff --git a/server/Matchmaker.js b/server/Matchmaker.js new file mode 100644 index 0000000..e507770 --- /dev/null +++ b/server/Matchmaker.js @@ -0,0 +1,54 @@ +var Promise = require("promise"); + +var Matchmaker = (function(){ + var Matchmaker = function(){ + if(!(this instanceof Matchmaker)){ + return (new Matchmaker()); + } + /** + * constructor here + */ + + this._queue = []; + }; + var r = Matchmaker.prototype; + /** + * methods && properties here + * r.property = null; + * r.getProperty = function() {...} + */ + + r._queue = null; + + r.findOpponent = function(user){ + var self = this; + + var promise = new Promise(function(resolve){ + self._queue.push(user); + self._checkForOpponent(resolve); + }); + return promise; + } + + r._checkForOpponent = function(resolve){ + if(this._queue.length <= 1) return; + this._match(this._queue[0], this._queue[1], resolve); + } + + r._match = function(p1, p2, resolve){ + this._queue.splice(0, 2); + var roomID = p1.id + p2.id; + p1.send("update:opponent", {opponent: p2.getID()}); + p2.send("update:opponent", {opponent: p1.getID()}); + + p1.joinRoom(roomID); + p2.joinRoom(roomID); + + resolve(p1, p2, roomID); + } + + + return Matchmaker; +})(); + +module.exports = Matchmaker; diff --git a/server/Npc.js b/server/Npc.js new file mode 100644 index 0000000..bd723c3 --- /dev/null +++ b/server/Npc.js @@ -0,0 +1,28 @@ +var Entity = require("./Entity"); + + +var Npc = (function(){ + var Npc = function(){ + if(!(this instanceof Npc)){ + return (new Npc()); + } + Entity.call(this); + /** + * constructor here + */ + + + }; + Npc.prototype = Object.create(Entity.prototype); + var r = Npc.prototype; + /** + * methods && properties here + * r.property = null; + * r.getProperty = function() {...} + */ + + + return Npc; +})(); + +module.exports = Npc; \ No newline at end of file diff --git a/server/Socket.js b/server/Socket.js new file mode 100644 index 0000000..e3ea23f --- /dev/null +++ b/server/Socket.js @@ -0,0 +1,56 @@ +var app = require('http').createServer(); +var io = require("socket.io")(app); +var User = require("./User"); +var Connections = require("./Connections"); +var Battle = require("./Battle"); +var Npc = require("./Npc"); +var Matchmaker = require("./Matchmaker"); + +var Socket = (function(){ + var Socket = function(){ + if(!(this instanceof Socket)){ + return (new Socket()); + } + /** + * constructor here + */ + this.matchmaker = Matchmaker(); + this.connections = Connections(); + app.listen(this.port); + this.io = io; + this._events(); + }; + var r = Socket.prototype; + /** + * methods && properties here + * r.property = null; + * r.getProperty = function() {...} + */ + r.io = null; + r.port = 16918; + r.connections = null; + r.matchmaker = null; + + r._events = function() { + var self = this; + this.io.on("connection", function(socket) { + var user = User(socket); + self.connections.add(user); + console.log("new user ", user.getID()); + + this.matchmaker.findOpponent(user) + .then(function(p1, p2, roomID) { + var battle = Battle(); + battle.init(p1, p2); + }) + + socket.on("disconnect", function() { + self.connections.remove(user); + }) + }) + } + + return Socket; +})(); + +module.exports = Socket; \ No newline at end of file diff --git a/server/User.js b/server/User.js new file mode 100644 index 0000000..667c80d --- /dev/null +++ b/server/User.js @@ -0,0 +1,52 @@ +var Entity = require("./Entity"); + + +var User = (function(){ + var User = function(socket){ + if(!(this instanceof User)){ + return (new User(socket)); + } + Entity.call(this); + /** + * constructor here + */ + + + this.socket = socket; + this._id = socket.id; + + }; + User.prototype = Object.create(Entity.prototype); + var r = User.prototype; + /** + * methods && properties here + * r.property = null; + * r.getProperty = function() {...} + */ + + r._id = null; + r.socket = null; + + r.getID = function(){ + return this._id; + } + + r.joinRoom = function(room){ + this.socket.join(room); + } + + r.send = function(event, data, room){ + room = room || null; + data = data || null; + if(!room){ + this.socket.emit(event, data); + } + else { + this.socket.to(room).emit(event, data); + } + } + + return User; +})(); + +module.exports = User; \ No newline at end of file diff --git a/server/server.js b/server/server.js index e69de29..d00d4a7 100644 --- a/server/server.js +++ b/server/server.js @@ -0,0 +1,2 @@ +var socket = require("./Socket")(); +