├── field-enemies-pixel-art-for-tower-defense ├── 1 │ ├── D_Death.png │ ├── D_Walk.png │ ├── D_Walk2.png │ ├── S_Death.png │ ├── S_Walk.png │ ├── S_Walk2.png │ ├── U_Death.png │ ├── U_Walk.png │ ├── U_Walk2.png │ ├── D_Death2.png │ ├── D_Special.png │ ├── S_Death2.png │ ├── S_Special.png │ ├── U_Death2.png │ └── U_Special.png ├── 2 │ ├── D_Death.png │ ├── D_Walk.png │ ├── S_Death.png │ ├── S_Walk.png │ ├── U_Death.png │ ├── U_Walk.png │ ├── D_Attack.png │ ├── S_Attack.png │ └── U_Attack.png ├── 3 │ ├── D_Death.png │ ├── D_Walk.png │ ├── S_Death.png │ ├── S_Walk.png │ ├── U_Death.png │ ├── U_Walk.png │ ├── D_Attack.png │ ├── S_Attack.png │ └── U_Attack.png ├── 4 │ ├── D_Death.png │ ├── D_Walk.png │ ├── S_Death.png │ ├── S_Walk.png │ ├── U_Death.png │ └── U_Walk.png ├── License.txt ├── Font.png ├── COUPON.pdf ├── COUPON.png └── PSD │ ├── 1.psd │ ├── 2.psd │ ├── 3.psd │ └── 4.psd ├── pixel-citizens-for-top-down-tower-defense ├── 1 │ ├── D_Idle.png │ ├── D_Walk.png │ ├── S_Idle.png │ ├── S_Walk.png │ ├── U_Idle.png │ ├── U_Walk.png │ ├── D_Special.png │ ├── S_Special.png │ └── U_Special.png ├── 2 │ ├── D_Idle.png │ ├── D_Walk.png │ ├── L_Walk.png │ ├── S_Idle.png │ ├── S_Walk.png │ ├── U_Idle.png │ ├── U_Walk.png │ ├── D_Special.png │ ├── S_Special.png │ └── U_Special.png ├── 3 │ ├── D_Idle.png │ ├── D_Walk.png │ ├── S_Idle.png │ ├── S_Walk.png │ ├── U_Idle.png │ ├── U_Walk.png │ ├── D_Special.png │ ├── S_Special.png │ └── U_Special.png ├── 4 │ ├── D_Idle.png │ ├── D_Walk.png │ ├── S_Idle.png │ ├── S_Walk.png │ ├── U_Idle.png │ ├── U_Walk.png │ ├── D_Special.png │ ├── S_Special.png │ └── U_Special.png ├── license.txt ├── Font.png ├── COUPON.pdf ├── COUPON.png ├── PSD │ └── 1.psd └── Free Assets Craftpix!.url ├── fields-tileset-pixel-art-for-tower-defense ├── License.txt ├── COUPON.pdf ├── COUPON.png ├── Font.png ├── PSD │ ├── Objects.psd │ ├── Tileset.psd │ └── Animated_objects.psd ├── 2 Objects │ ├── 8 Camp │ │ ├── 1.png │ │ ├── 2.png │ │ ├── 3.png │ │ ├── 4.png │ │ ├── 5.png │ │ └── 6.png │ ├── 9 Bush │ │ ├── 1.png │ │ ├── 2.png │ │ ├── 3.png │ │ ├── 4.png │ │ ├── 5.png │ │ └── 6.png │ ├── 1 Shadow │ │ ├── 1.png │ │ ├── 2.png │ │ ├── 3.png │ │ ├── 4.png │ │ ├── 5.png │ │ └── 6.png │ ├── 2 Fence │ │ ├── 1.png │ │ ├── 10.png │ │ ├── 2.png │ │ ├── 3.png │ │ ├── 4.png │ │ ├── 5.png │ │ ├── 6.png │ │ ├── 7.png │ │ ├── 8.png │ │ └── 9.png │ ├── 3 Pointer │ │ ├── 1.png │ │ ├── 2.png │ │ ├── 3.png │ │ ├── 4.png │ │ ├── 5.png │ │ └── 6.png │ ├── 4 Stone │ │ ├── 1.png │ │ ├── 10.png │ │ ├── 11.png │ │ ├── 12.png │ │ ├── 13.png │ │ ├── 14.png │ │ ├── 15.png │ │ ├── 16.png │ │ ├── 2.png │ │ ├── 3.png │ │ ├── 4.png │ │ ├── 5.png │ │ ├── 6.png │ │ ├── 7.png │ │ ├── 8.png │ │ └── 9.png │ ├── 5 Grass │ │ ├── 1.png │ │ ├── 2.png │ │ ├── 3.png │ │ ├── 4.png │ │ ├── 5.png │ │ └── 6.png │ ├── 6 Flower │ │ ├── 1.png │ │ ├── 10.png │ │ ├── 11.png │ │ ├── 12.png │ │ ├── 2.png │ │ ├── 3.png │ │ ├── 4.png │ │ ├── 5.png │ │ ├── 6.png │ │ ├── 7.png │ │ ├── 8.png │ │ └── 9.png │ ├── 7 Decor │ │ ├── Box1.png │ │ ├── Box2.png │ │ ├── Box3.png │ │ ├── Box4.png │ │ ├── Dirt1.png │ │ ├── Dirt2.png │ │ ├── Dirt3.png │ │ ├── Dirt4.png │ │ ├── Dirt5.png │ │ ├── Dirt6.png │ │ ├── Lamp1.png │ │ ├── Lamp2.png │ │ ├── Lamp3.png │ │ ├── Lamp4.png │ │ ├── Lamp5.png │ │ ├── Lamp6.png │ │ ├── Log1.png │ │ ├── Log2.png │ │ ├── Log3.png │ │ ├── Log4.png │ │ ├── Tree1.png │ │ └── Tree2.png │ ├── PlaceForTower1.png │ └── PlaceForTower2.png ├── 1 Tiles │ ├── FieldsTile_01.png │ ├── FieldsTile_02.png │ ├── FieldsTile_03.png │ ├── FieldsTile_04.png │ ├── FieldsTile_05.png │ ├── FieldsTile_06.png │ ├── FieldsTile_07.png │ ├── FieldsTile_08.png │ ├── FieldsTile_09.png │ ├── FieldsTile_10.png │ ├── FieldsTile_11.png │ ├── FieldsTile_12.png │ ├── FieldsTile_13.png │ ├── FieldsTile_14.png │ ├── FieldsTile_15.png │ ├── FieldsTile_16.png │ ├── FieldsTile_17.png │ ├── FieldsTile_18.png │ ├── FieldsTile_19.png │ ├── FieldsTile_20.png │ ├── FieldsTile_21.png │ ├── FieldsTile_22.png │ ├── FieldsTile_23.png │ ├── FieldsTile_24.png │ ├── FieldsTile_25.png │ ├── FieldsTile_26.png │ ├── FieldsTile_27.png │ ├── FieldsTile_28.png │ ├── FieldsTile_29.png │ ├── FieldsTile_30.png │ ├── FieldsTile_31.png │ ├── FieldsTile_32.png │ ├── FieldsTile_33.png │ ├── FieldsTile_34.png │ ├── FieldsTile_35.png │ ├── FieldsTile_36.png │ ├── FieldsTile_37.png │ ├── FieldsTile_38.png │ ├── FieldsTile_39.png │ ├── FieldsTile_40.png │ ├── FieldsTile_41.png │ ├── FieldsTile_42.png │ ├── FieldsTile_43.png │ ├── FieldsTile_44.png │ ├── FieldsTile_45.png │ ├── FieldsTile_46.png │ ├── FieldsTile_47.png │ ├── FieldsTile_48.png │ ├── FieldsTile_49.png │ ├── FieldsTile_50.png │ ├── FieldsTile_51.png │ ├── FieldsTile_52.png │ ├── FieldsTile_53.png │ ├── FieldsTile_54.png │ ├── FieldsTile_55.png │ ├── FieldsTile_56.png │ ├── FieldsTile_57.png │ ├── FieldsTile_58.png │ ├── FieldsTile_59.png │ ├── FieldsTile_60.png │ ├── FieldsTile_61.png │ ├── FieldsTile_62.png │ ├── FieldsTile_63.png │ ├── FieldsTile_64.png │ ├── FieldsTileset.png │ └── FieldsTilesetTest.png ├── 3 Animated Objects │ ├── 1 Flag │ │ ├── 1.png │ │ ├── 2.png │ │ ├── 3.png │ │ ├── 4.png │ │ └── 5.png │ └── 2 Campfire │ │ ├── 1.png │ │ └── 2.png └── Free Assets Craftpix!.url ├── village-pixel-tileset-for-top-down-defense ├── License.txt ├── COUPON.pdf ├── COUPON.png ├── Font.png ├── PSD │ ├── Objects.psd │ ├── Tileset.psd │ ├── Tileset2.psd │ └── Animated_objects.psd ├── 1.1 Tiles │ ├── Tile2_01.png │ ├── Tile2_02.png │ ├── Tile2_03.png │ ├── Tile2_04.png │ ├── Tile2_05.png │ ├── Tile2_06.png │ ├── Tile2_07.png │ ├── Tile2_08.png │ ├── Tile2_09.png │ ├── Tile2_10.png │ ├── Tile2_11.png │ ├── Tile2_12.png │ ├── Tile2_13.png │ ├── Tile2_14.png │ ├── Tile2_15.png │ ├── Tile2_16.png │ ├── Tile2_17.png │ ├── Tile2_18.png │ ├── Tile2_19.png │ ├── Tile2_20.png │ ├── Tile2_21.png │ ├── Tile2_22.png │ ├── Tile2_23.png │ ├── Tile2_24.png │ ├── Tile2_25.png │ ├── Tile2_26.png │ ├── Tile2_27.png │ ├── Tile2_28.png │ ├── Tile2_29.png │ ├── Tile2_30.png │ ├── Tile2_31.png │ ├── Tile2_32.png │ ├── Tile2_33.png │ ├── Tile2_34.png │ ├── Tile2_35.png │ ├── Tile2_36.png │ ├── Tile2_37.png │ ├── Tile2_38.png │ ├── Tile2_39.png │ ├── Tile2_40.png │ ├── Tile2_41.png │ ├── Tile2_42.png │ ├── Tile2_43.png │ ├── Tile2_44.png │ ├── Tile2_45.png │ ├── Tile2_46.png │ ├── Tile2_47.png │ ├── Tile2_48.png │ ├── Tile2_49.png │ ├── Tile2_50.png │ ├── Tile2_51.png │ ├── Tile2_52.png │ ├── Tile2_53.png │ ├── Tile2_54.png │ ├── Tile2_55.png │ ├── Tile2_56.png │ ├── Tile2_57.png │ ├── Tile2_58.png │ ├── Tile2_59.png │ ├── Tile2_60.png │ ├── Tile2_61.png │ ├── Tile2_62.png │ ├── Tile2_63.png │ ├── Tile2_64.png │ └── Tileset2.png ├── 2 Objects │ ├── 4 Box │ │ ├── 1.png │ │ ├── 2.png │ │ ├── 3.png │ │ ├── 4.png │ │ └── 5.png │ ├── 6 Tent │ │ ├── 1.png │ │ ├── 2.png │ │ ├── 3.png │ │ └── 4.png │ ├── 1 Shadow │ │ ├── 1.png │ │ ├── 2.png │ │ ├── 3.png │ │ ├── 4.png │ │ ├── 5.png │ │ └── 6.png │ ├── 2 Stone │ │ ├── 1.png │ │ ├── 2.png │ │ ├── 3.png │ │ ├── 4.png │ │ ├── 5.png │ │ └── 6.png │ ├── 3 Decor │ │ ├── 1.png │ │ ├── 10.png │ │ ├── 11.png │ │ ├── 12.png │ │ ├── 13.png │ │ ├── 14.png │ │ ├── 15.png │ │ ├── 16.png │ │ ├── 17.png │ │ ├── 2.png │ │ ├── 3.png │ │ ├── 4.png │ │ ├── 5.png │ │ ├── 6.png │ │ ├── 7.png │ │ ├── 8.png │ │ └── 9.png │ ├── 5 Grass │ │ ├── 1.png │ │ ├── 2.png │ │ ├── 3.png │ │ ├── 4.png │ │ ├── 5.png │ │ └── 6.png │ ├── 7 House │ │ ├── 1.png │ │ ├── 2.png │ │ ├── 3.png │ │ └── 4.png │ ├── PlaceForTower1.png │ └── PlaceForTower2.png ├── 1 Tiles │ ├── FieldsTile_01.png │ ├── FieldsTile_02.png │ ├── FieldsTile_03.png │ ├── FieldsTile_04.png │ ├── FieldsTile_05.png │ ├── FieldsTile_06.png │ ├── FieldsTile_07.png │ ├── FieldsTile_08.png │ ├── FieldsTile_09.png │ ├── FieldsTile_10.png │ ├── FieldsTile_11.png │ ├── FieldsTile_12.png │ ├── FieldsTile_13.png │ ├── FieldsTile_14.png │ ├── FieldsTile_15.png │ ├── FieldsTile_16.png │ ├── FieldsTile_17.png │ ├── FieldsTile_18.png │ ├── FieldsTile_19.png │ ├── FieldsTile_20.png │ ├── FieldsTile_21.png │ ├── FieldsTile_22.png │ ├── FieldsTile_23.png │ ├── FieldsTile_24.png │ ├── FieldsTile_25.png │ ├── FieldsTile_26.png │ ├── FieldsTile_27.png │ ├── FieldsTile_28.png │ ├── FieldsTile_29.png │ ├── FieldsTile_30.png │ ├── FieldsTile_31.png │ ├── FieldsTile_32.png │ ├── FieldsTile_33.png │ ├── FieldsTile_34.png │ ├── FieldsTile_35.png │ ├── FieldsTile_36.png │ ├── FieldsTile_37.png │ ├── FieldsTile_38.png │ ├── FieldsTile_39.png │ ├── FieldsTile_40.png │ ├── FieldsTile_41.png │ ├── FieldsTile_42.png │ ├── FieldsTile_43.png │ ├── FieldsTile_44.png │ ├── FieldsTile_45.png │ ├── FieldsTile_46.png │ ├── FieldsTile_47.png │ ├── FieldsTile_48.png │ ├── FieldsTile_49.png │ ├── FieldsTile_50.png │ ├── FieldsTile_51.png │ ├── FieldsTile_52.png │ ├── FieldsTile_53.png │ ├── FieldsTile_54.png │ ├── FieldsTile_55.png │ ├── FieldsTile_56.png │ ├── FieldsTile_57.png │ ├── FieldsTile_58.png │ ├── FieldsTile_59.png │ ├── FieldsTile_60.png │ ├── FieldsTile_61.png │ ├── FieldsTile_62.png │ ├── FieldsTile_63.png │ ├── FieldsTile_64.png │ ├── FieldsTileset.png │ └── FieldsTilesetTest.png ├── 3 Animated Objects │ ├── Door1.png │ ├── Door2.png │ ├── DoubleDoor1.png │ └── DoubleDoor2.png └── Free Assets Craftpix!.url ├── .gitignore ├── wrangler.toml ├── package.json ├── tsconfig.json ├── README.md ├── index.html └── src ├── GOAP ├── GOAPPlanner.ts └── Actions.ts ├── game.ts ├── PathFinder.ts ├── MapGenerator.ts └── Enemy.ts /field-enemies-pixel-art-for-tower-defense/License.txt: -------------------------------------------------------------------------------- 1 | https://craftpix.net/file-licenses/ -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/license.txt: -------------------------------------------------------------------------------- 1 | https://craftpix.net/file-licenses/ -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/License.txt: -------------------------------------------------------------------------------- 1 | https://craftpix.net/file-licenses/ -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/License.txt: -------------------------------------------------------------------------------- 1 | https://craftpix.net/file-licenses/ -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/Font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/Font.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/Font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/Font.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/COUPON.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/COUPON.pdf -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/COUPON.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/COUPON.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/PSD/1.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/PSD/1.psd -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/PSD/2.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/PSD/2.psd -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/PSD/3.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/PSD/3.psd -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/PSD/4.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/PSD/4.psd -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/COUPON.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/COUPON.pdf -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/COUPON.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/COUPON.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/Font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/Font.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/COUPON.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/COUPON.pdf -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/COUPON.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/COUPON.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/PSD/1.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/PSD/1.psd -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/COUPON.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/COUPON.pdf -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/COUPON.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/COUPON.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/Font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/Font.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/1/D_Death.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/1/D_Death.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/1/D_Walk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/1/D_Walk.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/1/D_Walk2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/1/D_Walk2.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/1/S_Death.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/1/S_Death.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/1/S_Walk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/1/S_Walk.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/1/S_Walk2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/1/S_Walk2.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/1/U_Death.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/1/U_Death.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/1/U_Walk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/1/U_Walk.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/1/U_Walk2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/1/U_Walk2.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/2/D_Death.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/2/D_Death.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/2/D_Walk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/2/D_Walk.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/2/S_Death.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/2/S_Death.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/2/S_Walk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/2/S_Walk.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/2/U_Death.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/2/U_Death.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/2/U_Walk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/2/U_Walk.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/3/D_Death.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/3/D_Death.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/3/D_Walk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/3/D_Walk.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/3/S_Death.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/3/S_Death.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/3/S_Walk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/3/S_Walk.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/3/U_Death.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/3/U_Death.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/3/U_Walk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/3/U_Walk.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/4/D_Death.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/4/D_Death.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/4/D_Walk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/4/D_Walk.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/4/S_Death.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/4/S_Death.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/4/S_Walk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/4/S_Walk.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/4/U_Death.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/4/U_Death.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/4/U_Walk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/4/U_Walk.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/1/D_Idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/1/D_Idle.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/1/D_Walk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/1/D_Walk.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/1/S_Idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/1/S_Idle.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/1/S_Walk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/1/S_Walk.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/1/U_Idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/1/U_Idle.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/1/U_Walk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/1/U_Walk.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/2/D_Idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/2/D_Idle.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/2/D_Walk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/2/D_Walk.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/2/L_Walk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/2/L_Walk.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/2/S_Idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/2/S_Idle.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/2/S_Walk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/2/S_Walk.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/2/U_Idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/2/U_Idle.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/2/U_Walk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/2/U_Walk.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/3/D_Idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/3/D_Idle.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/3/D_Walk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/3/D_Walk.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/3/S_Idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/3/S_Idle.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/3/S_Walk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/3/S_Walk.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/3/U_Idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/3/U_Idle.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/3/U_Walk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/3/U_Walk.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/4/D_Idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/4/D_Idle.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/4/D_Walk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/4/D_Walk.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/4/S_Idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/4/S_Idle.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/4/S_Walk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/4/S_Walk.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/4/U_Idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/4/U_Idle.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/4/U_Walk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/4/U_Walk.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/1/D_Death2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/1/D_Death2.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/1/D_Special.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/1/D_Special.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/1/S_Death2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/1/S_Death2.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/1/S_Special.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/1/S_Special.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/1/U_Death2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/1/U_Death2.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/1/U_Special.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/1/U_Special.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/2/D_Attack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/2/D_Attack.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/2/S_Attack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/2/S_Attack.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/2/U_Attack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/2/U_Attack.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/3/D_Attack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/3/D_Attack.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/3/S_Attack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/3/S_Attack.png -------------------------------------------------------------------------------- /field-enemies-pixel-art-for-tower-defense/3/U_Attack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/field-enemies-pixel-art-for-tower-defense/3/U_Attack.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/PSD/Objects.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/PSD/Objects.psd -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/PSD/Tileset.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/PSD/Tileset.psd -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/1/D_Special.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/1/D_Special.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/1/S_Special.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/1/S_Special.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/1/U_Special.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/1/U_Special.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/2/D_Special.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/2/D_Special.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/2/S_Special.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/2/S_Special.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/2/U_Special.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/2/U_Special.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/3/D_Special.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/3/D_Special.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/3/S_Special.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/3/S_Special.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/3/U_Special.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/3/U_Special.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/4/D_Special.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/4/D_Special.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/4/S_Special.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/4/S_Special.png -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/4/U_Special.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/pixel-citizens-for-top-down-tower-defense/4/U_Special.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/PSD/Objects.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/PSD/Objects.psd -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/PSD/Tileset.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/PSD/Tileset.psd -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/PSD/Tileset2.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/PSD/Tileset2.psd -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/8 Camp/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/8 Camp/1.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/8 Camp/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/8 Camp/2.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/8 Camp/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/8 Camp/3.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/8 Camp/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/8 Camp/4.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/8 Camp/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/8 Camp/5.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/8 Camp/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/8 Camp/6.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/9 Bush/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/9 Bush/1.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/9 Bush/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/9 Bush/2.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/9 Bush/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/9 Bush/3.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/9 Bush/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/9 Bush/4.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/9 Bush/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/9 Bush/5.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/9 Bush/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/9 Bush/6.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_01.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_02.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_03.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_04.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_05.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_06.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_07.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_08.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_09.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_10.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_11.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_12.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_13.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_14.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_15.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_16.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_17.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_18.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_19.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_20.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_21.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_22.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_23.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_24.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_25.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_26.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_27.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_28.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_29.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_30.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_31.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_32.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_33.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_34.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_35.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_36.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_37.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_38.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_39.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_40.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_41.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_42.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_43.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_44.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_45.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_46.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_47.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_48.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_49.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_50.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_51.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_52.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_53.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_54.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_55.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_56.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_57.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_58.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_59.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_60.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_61.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_61.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_62.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_62.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_63.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_63.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tile2_64.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tileset2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1.1 Tiles/Tileset2.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/4 Box/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/4 Box/1.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/4 Box/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/4 Box/2.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/4 Box/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/4 Box/3.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/4 Box/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/4 Box/4.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/4 Box/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/4 Box/5.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/6 Tent/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/6 Tent/1.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/6 Tent/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/6 Tent/2.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/6 Tent/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/6 Tent/3.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/6 Tent/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/6 Tent/4.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_01.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_02.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_03.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_04.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_05.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_06.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_07.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_08.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_09.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_10.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_11.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_12.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_13.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_14.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_15.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_16.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_17.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_18.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_19.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_20.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_21.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_22.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_23.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_24.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_25.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_26.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_27.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_28.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_29.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_30.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_31.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_32.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_33.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_34.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_35.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_36.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_37.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_38.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_39.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_40.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_41.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_42.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_43.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_44.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_45.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_46.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_47.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_48.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_49.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_50.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_51.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_52.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_53.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_54.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_55.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_56.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_57.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_58.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_59.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_60.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_61.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_61.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_62.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_62.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_63.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_63.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTile_64.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTileset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTileset.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/1 Shadow/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/1 Shadow/1.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/1 Shadow/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/1 Shadow/2.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/1 Shadow/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/1 Shadow/3.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/1 Shadow/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/1 Shadow/4.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/1 Shadow/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/1 Shadow/5.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/1 Shadow/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/1 Shadow/6.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/2 Fence/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/2 Fence/1.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/2 Fence/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/2 Fence/10.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/2 Fence/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/2 Fence/2.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/2 Fence/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/2 Fence/3.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/2 Fence/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/2 Fence/4.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/2 Fence/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/2 Fence/5.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/2 Fence/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/2 Fence/6.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/2 Fence/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/2 Fence/7.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/2 Fence/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/2 Fence/8.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/2 Fence/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/2 Fence/9.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/3 Pointer/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/3 Pointer/1.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/3 Pointer/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/3 Pointer/2.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/3 Pointer/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/3 Pointer/3.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/3 Pointer/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/3 Pointer/4.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/3 Pointer/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/3 Pointer/5.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/3 Pointer/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/3 Pointer/6.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/1.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/10.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/11.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/12.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/13.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/14.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/15.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/16.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/2.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/3.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/4.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/5.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/6.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/7.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/8.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/9.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/5 Grass/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/5 Grass/1.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/5 Grass/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/5 Grass/2.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/5 Grass/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/5 Grass/3.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/5 Grass/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/5 Grass/4.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/5 Grass/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/5 Grass/5.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/5 Grass/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/5 Grass/6.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/6 Flower/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/6 Flower/1.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/6 Flower/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/6 Flower/10.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/6 Flower/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/6 Flower/11.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/6 Flower/12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/6 Flower/12.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/6 Flower/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/6 Flower/2.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/6 Flower/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/6 Flower/3.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/6 Flower/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/6 Flower/4.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/6 Flower/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/6 Flower/5.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/6 Flower/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/6 Flower/6.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/6 Flower/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/6 Flower/7.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/6 Flower/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/6 Flower/8.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/6 Flower/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/6 Flower/9.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/PSD/Animated_objects.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/PSD/Animated_objects.psd -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_01.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_02.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_03.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_04.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_05.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_06.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_07.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_08.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_09.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_10.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_11.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_12.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_13.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_14.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_15.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_16.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_17.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_18.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_19.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_20.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_21.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_22.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_23.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_24.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_25.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_26.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_27.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_28.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_29.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_30.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_31.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_32.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_33.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_34.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_35.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_36.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_37.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_38.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_39.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_40.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_41.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_42.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_43.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_44.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_45.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_46.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_47.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_48.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_49.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_50.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_51.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_52.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_53.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_54.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_55.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_56.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_57.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_58.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_59.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_60.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_61.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_61.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_62.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_62.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_63.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_63.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTile_64.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTileset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTileset.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/1 Shadow/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/1 Shadow/1.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/1 Shadow/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/1 Shadow/2.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/1 Shadow/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/1 Shadow/3.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/1 Shadow/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/1 Shadow/4.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/1 Shadow/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/1 Shadow/5.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/1 Shadow/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/1 Shadow/6.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/2 Stone/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/2 Stone/1.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/2 Stone/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/2 Stone/2.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/2 Stone/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/2 Stone/3.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/2 Stone/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/2 Stone/4.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/2 Stone/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/2 Stone/5.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/2 Stone/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/2 Stone/6.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/1.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/10.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/11.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/12.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/13.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/14.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/15.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/16.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/17.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/2.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/3.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/4.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/5.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/6.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/7.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/8.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/3 Decor/9.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/5 Grass/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/5 Grass/1.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/5 Grass/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/5 Grass/2.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/5 Grass/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/5 Grass/3.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/5 Grass/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/5 Grass/4.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/5 Grass/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/5 Grass/5.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/5 Grass/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/5 Grass/6.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/7 House/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/7 House/1.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/7 House/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/7 House/2.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/7 House/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/7 House/3.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/7 House/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/7 House/4.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/PSD/Animated_objects.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/PSD/Animated_objects.psd -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Box1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Box1.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Box2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Box2.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Box3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Box3.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Box4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Box4.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Dirt1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Dirt1.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Dirt2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Dirt2.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Dirt3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Dirt3.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Dirt4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Dirt4.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Dirt5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Dirt5.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Dirt6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Dirt6.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Lamp1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Lamp1.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Lamp2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Lamp2.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Lamp3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Lamp3.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Lamp4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Lamp4.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Lamp5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Lamp5.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Lamp6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Lamp6.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Log1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Log1.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Log2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Log2.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Log3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Log3.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Log4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Log4.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Tree1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Tree1.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Tree2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Tree2.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTilesetTest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/1 Tiles/FieldsTilesetTest.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/PlaceForTower1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/PlaceForTower1.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/2 Objects/PlaceForTower2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/2 Objects/PlaceForTower2.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTilesetTest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/1 Tiles/FieldsTilesetTest.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/PlaceForTower1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/PlaceForTower1.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/2 Objects/PlaceForTower2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/2 Objects/PlaceForTower2.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/3 Animated Objects/Door1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/3 Animated Objects/Door1.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/3 Animated Objects/Door2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/3 Animated Objects/Door2.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/3 Animated Objects/1 Flag/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/3 Animated Objects/1 Flag/1.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/3 Animated Objects/1 Flag/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/3 Animated Objects/1 Flag/2.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/3 Animated Objects/1 Flag/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/3 Animated Objects/1 Flag/3.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/3 Animated Objects/1 Flag/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/3 Animated Objects/1 Flag/4.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/3 Animated Objects/1 Flag/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/3 Animated Objects/1 Flag/5.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/Free Assets Craftpix!.url: -------------------------------------------------------------------------------- 1 | [{000214A0-0000-0000-C000-000000000046}] 2 | Prop3=19,11 3 | [InternetShortcut] 4 | IDList= 5 | URL=https://craftpix.net/freebies/ 6 | -------------------------------------------------------------------------------- /pixel-citizens-for-top-down-tower-defense/Free Assets Craftpix!.url: -------------------------------------------------------------------------------- 1 | [{000214A0-0000-0000-C000-000000000046}] 2 | Prop3=19,11 3 | [InternetShortcut] 4 | IDList= 5 | URL=https://craftpix.net/freebies/ 6 | -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/Free Assets Craftpix!.url: -------------------------------------------------------------------------------- 1 | [{000214A0-0000-0000-C000-000000000046}] 2 | Prop3=19,11 3 | [InternetShortcut] 4 | IDList= 5 | URL=https://craftpix.net/freebies/ 6 | -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/3 Animated Objects/2 Campfire/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/3 Animated Objects/2 Campfire/1.png -------------------------------------------------------------------------------- /fields-tileset-pixel-art-for-tower-defense/3 Animated Objects/2 Campfire/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/fields-tileset-pixel-art-for-tower-defense/3 Animated Objects/2 Campfire/2.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/3 Animated Objects/DoubleDoor1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/3 Animated Objects/DoubleDoor1.png -------------------------------------------------------------------------------- /village-pixel-tileset-for-top-down-defense/3 Animated Objects/DoubleDoor2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/mini-game/master/village-pixel-tileset-for-top-down-defense/3 Animated Objects/DoubleDoor2.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Dependencies 2 | node_modules/ 3 | 4 | # Build output 5 | dist/ 6 | build/ 7 | 8 | # Environment variables 9 | .env 10 | .env.local 11 | .env.*.local 12 | 13 | # IDE files 14 | .vscode/ 15 | .idea/ 16 | *.swp 17 | *.swo 18 | 19 | # OS files 20 | .DS_Store 21 | Thumbs.db 22 | 23 | # Logs 24 | *.log 25 | npm-debug.log* 26 | yarn-debug.log* 27 | yarn-error.log* -------------------------------------------------------------------------------- /wrangler.toml: -------------------------------------------------------------------------------- 1 | #:schema node_modules/wrangler/config-schema.json 2 | name = "goap" 3 | compatibility_date = "2024-10-22" 4 | assets = { directory = "./dist" } 5 | 6 | # Workers Logs 7 | # Docs: https://developers.cloudflare.com/workers/observability/logs/workers-logs/ 8 | # Configuration: https://developers.cloudflare.com/workers/observability/logs/workers-logs/#enable-workers-logs 9 | # [observability] 10 | # enabled = true -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mini-game", 3 | "version": "1.0.0", 4 | "description": "A 2D game built with PixiJS", 5 | "main": "dist/game.js", 6 | "scripts": { 7 | "start": "vite", 8 | "build": "vite build", 9 | "serve": "vite preview" 10 | }, 11 | "dependencies": { 12 | "pixi.js": "^8.7.3" 13 | }, 14 | "devDependencies": { 15 | "typescript": "^5.4.2", 16 | "vite": "^5.1.6", 17 | "@types/node": "^20.11.25" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2020", 4 | "useDefineForClassFields": true, 5 | "module": "ESNext", 6 | "lib": ["ES2020", "DOM", "DOM.Iterable"], 7 | "skipLibCheck": true, 8 | "moduleResolution": "bundler", 9 | "allowImportingTsExtensions": true, 10 | "resolveJsonModule": true, 11 | "isolatedModules": true, 12 | "noEmit": true, 13 | "strict": true, 14 | "noUnusedLocals": true, 15 | "noUnusedParameters": true, 16 | "noFallthroughCasesInSwitch": true, 17 | "outDir": "dist" 18 | }, 19 | "include": ["src"] 20 | } 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PixiJS Game 2 | 3 | A 2D game built with PixiJS and TypeScript. 4 | 5 | ## Setup 6 | 7 | 1. Install dependencies: 8 | 9 | ```bash 10 | npm install 11 | ``` 12 | 13 | 2. Start the development server: 14 | 15 | ```bash 16 | npm start 17 | ``` 18 | 19 | The game will be available at `http://localhost:5173` 20 | 21 | ## Build 22 | 23 | To build the game for production: 24 | 25 | ```bash 26 | npm run build 27 | ``` 28 | 29 | The built files will be in the `dist` directory. 30 | 31 | ## Development 32 | 33 | The main game logic is in `src/game.ts`. The game uses: 34 | 35 | - PixiJS for rendering 36 | - TypeScript for type safety 37 | - Vite for building and development server 38 | 39 | ## License 40 | 41 | MIT 42 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | PixiJS Game 7 | 27 | 28 | 29 |

reload if stuck in a loop or npcs are not moving

30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /src/GOAP/GOAPPlanner.ts: -------------------------------------------------------------------------------- 1 | export interface WorldState { 2 | hasRocks: number; 3 | hasLogs: number; 4 | isNearResource?: boolean; 5 | isInDanger: boolean; 6 | } 7 | 8 | export interface GOAPAction { 9 | name: string; 10 | cost: number; 11 | preconditions: Partial; 12 | effects: Partial; 13 | // Returns true if the action can be performed in the current state 14 | checkProceduralPrecondition(agent: any, world: any): boolean; 15 | // Performs the action 16 | perform(agent: any, world: any): boolean; 17 | // Reset any action-specific data 18 | reset(): void; 19 | } 20 | 21 | export class GOAPPlanner { 22 | private actions: GOAPAction[] = []; 23 | 24 | addAction(action: GOAPAction): void { 25 | this.actions.push(action); 26 | } 27 | 28 | plan( 29 | currentState: WorldState, 30 | goal: Partial, 31 | agent: any, 32 | world: any 33 | ): GOAPAction[] | null { 34 | // Priority queue for A* search 35 | const openList: Array<{ 36 | state: WorldState; 37 | path: GOAPAction[]; 38 | totalCost: number; 39 | }> = []; 40 | const closedList = new Set(); 41 | 42 | // Start with initial state 43 | openList.push({ 44 | state: { ...currentState }, 45 | path: [], 46 | totalCost: 0, 47 | }); 48 | 49 | while (openList.length > 0) { 50 | // Get the node with lowest cost 51 | openList.sort((a, b) => a.totalCost - b.totalCost); 52 | const current = openList.shift()!; 53 | 54 | // Check if we've reached the goal 55 | if (this.satisfiesGoal(current.state, goal)) { 56 | return current.path; 57 | } 58 | 59 | // Generate next possible states 60 | for (const action of this.actions) { 61 | // Check if action can be performed 62 | if ( 63 | !this.satisfiesPreconditions(current.state, action.preconditions) || 64 | !action.checkProceduralPrecondition(agent, world) 65 | ) { 66 | continue; 67 | } 68 | 69 | // Apply action effects to get new state 70 | const newState = this.applyEffects(current.state, action.effects); 71 | const newPath = [...current.path, action]; 72 | const newCost = current.totalCost + action.cost; 73 | 74 | // Create state key for checking visited states 75 | const stateKey = this.getStateKey(newState); 76 | if (closedList.has(stateKey)) { 77 | continue; 78 | } 79 | 80 | // Add new state to open list 81 | openList.push({ 82 | state: newState, 83 | path: newPath, 84 | totalCost: newCost, 85 | }); 86 | closedList.add(stateKey); 87 | } 88 | } 89 | 90 | return null; // No plan found 91 | } 92 | 93 | private satisfiesGoal(state: WorldState, goal: Partial): boolean { 94 | for (const [key, value] of Object.entries(goal)) { 95 | if (typeof value === "number") { 96 | if ((state as any)[key] < value) return false; 97 | } else if ((state as any)[key] !== value) { 98 | return false; 99 | } 100 | } 101 | return true; 102 | } 103 | 104 | private satisfiesPreconditions( 105 | state: WorldState, 106 | preconditions: Partial 107 | ): boolean { 108 | for (const [key, value] of Object.entries(preconditions)) { 109 | if (typeof value === "number") { 110 | if ((state as any)[key] < value) return false; 111 | } else if ((state as any)[key] !== value) { 112 | return false; 113 | } 114 | } 115 | return true; 116 | } 117 | 118 | private applyEffects( 119 | state: WorldState, 120 | effects: Partial 121 | ): WorldState { 122 | const newState = { ...state }; 123 | for (const [key, value] of Object.entries(effects)) { 124 | if ( 125 | typeof value === "number" && 126 | typeof (newState as any)[key] === "number" 127 | ) { 128 | (newState as any)[key] = (newState as any)[key] + value; 129 | } else { 130 | (newState as any)[key] = value; 131 | } 132 | } 133 | return newState; 134 | } 135 | 136 | private getStateKey(state: WorldState): string { 137 | return JSON.stringify(state); 138 | } 139 | } 140 | -------------------------------------------------------------------------------- /src/GOAP/Actions.ts: -------------------------------------------------------------------------------- 1 | import { GOAPAction, WorldState } from "./GOAPPlanner"; 2 | import { World } from "../World"; 3 | import { Player } from "../Player"; 4 | 5 | export class RunAwayAction implements GOAPAction { 6 | name = "RunAway"; 7 | cost = 0.1; // Lowest cost to make it highest priority 8 | preconditions = { 9 | isInDanger: true, 10 | }; 11 | effects = { 12 | isInDanger: false, 13 | }; 14 | 15 | checkProceduralPrecondition(agent: Player, world: World): boolean { 16 | return agent.isInDanger(); // New method we'll add to Player 17 | } 18 | 19 | perform(agent: Player, world: World): boolean { 20 | // The actual running away logic is handled by the Player class 21 | // This action just ensures GOAP prioritizes safety 22 | return true; 23 | } 24 | 25 | reset(): void {} 26 | } 27 | 28 | export class CollectRocksAction implements GOAPAction { 29 | name = "CollectRocks"; 30 | cost = 2; // Higher cost than running away 31 | preconditions = { 32 | isNearResource: true, 33 | isInDanger: false, // Only collect when safe 34 | }; 35 | effects = { 36 | hasRocks: 1, 37 | isNearResource: false, 38 | }; 39 | 40 | checkProceduralPrecondition(agent: Player, world: World): boolean { 41 | // First check if we're in danger 42 | if (agent.isInDanger()) { 43 | return false; 44 | } 45 | 46 | // Find nearest rock 47 | const nearestRock = world.findNearestResource("stone", agent.x, agent.y); 48 | if (!nearestRock) return false; 49 | 50 | // Check if there are resources available at this position 51 | const resourceInfo = world.getResourceInfo(nearestRock.x, nearestRock.y); 52 | return ( 53 | resourceInfo !== null && resourceInfo.amount > 0 && !agent.isCollecting 54 | ); 55 | } 56 | 57 | perform(agent: Player, world: World): boolean { 58 | // Move to nearest rock and collect it 59 | const rock = world.findNearestResource("stone", agent.x, agent.y); 60 | if (!rock) return false; 61 | 62 | // Verify there are resources available 63 | const resourceInfo = world.getResourceInfo(rock.x, rock.y); 64 | if (!resourceInfo || resourceInfo.amount <= 0) return false; 65 | 66 | // Set path to rock 67 | const path = world.findPath(agent.x, agent.y, rock.x, rock.y); 68 | agent.setPath(path); 69 | return true; 70 | } 71 | 72 | reset(): void { 73 | // Reset any action-specific data 74 | } 75 | } 76 | 77 | export class CollectLogsAction implements GOAPAction { 78 | name = "CollectLogs"; 79 | cost = 2; // Higher cost than running away 80 | preconditions = { 81 | isNearResource: true, 82 | isInDanger: false, // Only collect when safe 83 | }; 84 | effects = { 85 | hasLogs: 1, 86 | isNearResource: false, 87 | }; 88 | 89 | checkProceduralPrecondition(agent: Player, world: World): boolean { 90 | // First check if we're in danger 91 | if (agent.isInDanger()) { 92 | return false; 93 | } 94 | 95 | // Find nearest log 96 | const nearestLog = world.findNearestResource("log", agent.x, agent.y); 97 | if (!nearestLog) return false; 98 | 99 | // Check if there are resources available at this position 100 | const resourceInfo = world.getResourceInfo(nearestLog.x, nearestLog.y); 101 | return ( 102 | resourceInfo !== null && resourceInfo.amount > 0 && !agent.isCollecting 103 | ); 104 | } 105 | 106 | perform(agent: Player, world: World): boolean { 107 | // Move to nearest log and collect it 108 | const log = world.findNearestResource("log", agent.x, agent.y); 109 | if (!log) return false; 110 | 111 | // Verify there are resources available 112 | const resourceInfo = world.getResourceInfo(log.x, log.y); 113 | if (!resourceInfo || resourceInfo.amount <= 0) return false; 114 | 115 | // Set path to log 116 | const path = world.findPath(agent.x, agent.y, log.x, log.y); 117 | agent.setPath(path); 118 | return true; 119 | } 120 | 121 | reset(): void { 122 | // Reset any action-specific data 123 | } 124 | } 125 | 126 | export class MoveToResourceAction implements GOAPAction { 127 | name = "MoveToResource"; 128 | cost = 1.5; // Higher cost than running away 129 | preconditions = { 130 | isInDanger: false, // Only move to resources when safe 131 | }; 132 | effects = { 133 | isNearResource: true, 134 | }; 135 | 136 | checkProceduralPrecondition(agent: Player, world: World): boolean { 137 | // First check if we're in danger 138 | if (agent.isInDanger()) { 139 | return false; 140 | } 141 | 142 | // Find nearest available resources 143 | const stone = world.findNearestResource("stone", agent.x, agent.y); 144 | const log = world.findNearestResource("log", agent.x, agent.y); 145 | 146 | // Return true if at least one resource is available 147 | return stone !== null || log !== null; 148 | } 149 | 150 | perform(agent: Player, world: World): boolean { 151 | // Find nearest resources 152 | const stone = world.findNearestResource("stone", agent.x, agent.y); 153 | const log = world.findNearestResource("log", agent.x, agent.y); 154 | 155 | // Calculate distances to each resource 156 | let target = null; 157 | let minDistance = Infinity; 158 | 159 | if (stone) { 160 | const stoneDist = Math.hypot(stone.x - agent.x, stone.y - agent.y); 161 | if (stoneDist < minDistance) { 162 | minDistance = stoneDist; 163 | target = stone; 164 | } 165 | } 166 | 167 | if (log) { 168 | const logDist = Math.hypot(log.x - agent.x, log.y - agent.y); 169 | if (logDist < minDistance) { 170 | minDistance = logDist; 171 | target = log; 172 | } 173 | } 174 | 175 | if (!target) return false; 176 | 177 | // Set path to nearest resource 178 | const path = world.findPath(agent.x, agent.y, target.x, target.y); 179 | agent.setPath(path); 180 | return true; 181 | } 182 | 183 | reset(): void { 184 | // Reset any action-specific data 185 | } 186 | } 187 | -------------------------------------------------------------------------------- /src/game.ts: -------------------------------------------------------------------------------- 1 | import { Application } from "pixi.js"; 2 | import { World } from "./World"; 3 | import { Player } from "./Player"; 4 | import { Enemy } from "./Enemy.ts"; 5 | 6 | // Create the application 7 | const app = new Application(); 8 | 9 | // Initialize the application 10 | async function initGame() { 11 | await app.init({ 12 | width: 800, 13 | height: 600, 14 | backgroundColor: 0x1099bb, 15 | antialias: true, 16 | autoDensity: true, 17 | resolution: window.devicePixelRatio || 1, 18 | }); 19 | 20 | document.body.appendChild(app.canvas); 21 | new Game(); 22 | } 23 | 24 | class Game { 25 | private world: World = new World(); 26 | private player: Player = new Player(); 27 | private enemies: Enemy[] = [new Enemy(), new Enemy(), new Enemy()]; 28 | private keys: { [key: string]: boolean } = {}; 29 | private isDebugMode: boolean = true; 30 | private usedPositions: Array<{ x: number; y: number }> = []; 31 | 32 | constructor() { 33 | this.init(); 34 | this.setupControls(); 35 | this.setupClickHandler(); 36 | } 37 | 38 | private async init() { 39 | // Initialize the game world 40 | await this.world.initialize(); 41 | 42 | // Initialize the player 43 | await this.player.initialize(); 44 | this.player.setWorld(this.world); 45 | 46 | // Initialize all enemies 47 | for (const enemy of this.enemies) { 48 | await enemy.initialize(); 49 | enemy.setWorld(this.world); 50 | } 51 | 52 | // Find a safe spawn position for the player near the center 53 | const playerSpawnPos = this.findSafeSpawnPosition(); 54 | this.player.x = playerSpawnPos.x; 55 | this.player.y = playerSpawnPos.y; 56 | 57 | // Position enemies at random edges 58 | for (let index = 0; index < this.enemies.length; index++) { 59 | this.positionEnemyAtEdge(this.enemies[index], index); 60 | } 61 | 62 | // Add the world to the stage 63 | app.stage.addChild(this.world); 64 | 65 | // Add player and enemies to the player layer 66 | const playerLayer = this.world.getPlayerLayer(); 67 | playerLayer.addChild(this.player); 68 | for (const enemy of this.enemies) { 69 | playerLayer.addChild(enemy); 70 | } 71 | 72 | // Setup debug controls 73 | this.setupDebugControls(); 74 | 75 | // Start the game loop 76 | app.ticker.add(this.update.bind(this)); 77 | } 78 | 79 | private findSafeSpawnPosition(): { x: number; y: number } { 80 | const centerX = app.screen.width / 2; 81 | const centerY = app.screen.height / 2; 82 | const searchRadius = Math.min(app.screen.width, app.screen.height) * 0.3; 83 | const playerSize = 32; // Approximate size of player collision box 84 | 85 | // Try positions in expanding circles around the center 86 | for (let radius = 0; radius <= searchRadius; radius += 20) { 87 | // Try multiple angles at each radius 88 | for (let angle = 0; angle < Math.PI * 2; angle += Math.PI / 8) { 89 | const x = centerX + Math.cos(angle) * radius; 90 | const y = centerY + Math.sin(angle) * radius; 91 | 92 | // Check if this position is collision-free 93 | if (!this.world.checkCollision(x, y, playerSize, playerSize)) { 94 | return { x, y }; 95 | } 96 | } 97 | } 98 | 99 | // Fallback to center if no safe position found 100 | return { x: centerX, y: centerY }; 101 | } 102 | 103 | private positionEnemyAtEdge(enemy: Enemy, index: number): void { 104 | // Define the ring's distance from center with variation for each enemy 105 | const baseRadius = Math.min(app.screen.width, app.screen.height) * 0.4; 106 | const ringRadius = baseRadius * (1 + index * 0.1); // Each enemy gets a slightly larger radius 107 | const enemySize = 32; // Same size as player collision box 108 | const minDistanceBetweenEnemies = enemySize * 2; // Minimum spacing between enemies 109 | 110 | // Start angle offset based on enemy index (spread them out evenly) 111 | const startAngle = (index * (Math.PI * 2)) / this.enemies.length; 112 | 113 | // Try different angles around the ring until we find a free spot 114 | for (let attempts = 0; attempts < 36; attempts++) { 115 | // Try angles evenly distributed around the circle, starting from the offset 116 | const angle = startAngle + (attempts * Math.PI * 2) / 36; 117 | 118 | // Calculate position on the ring 119 | const x = app.screen.width / 2 + Math.cos(angle) * ringRadius; 120 | const y = app.screen.height / 2 + Math.sin(angle) * ringRadius; 121 | 122 | // Check if this position is too close to any used positions 123 | const isTooClose = this.usedPositions.some((pos) => { 124 | const dx = x - pos.x; 125 | const dy = y - pos.y; 126 | return Math.sqrt(dx * dx + dy * dy) < minDistanceBetweenEnemies; 127 | }); 128 | 129 | // Check if this position is collision-free and not too close to other enemies 130 | if ( 131 | !isTooClose && 132 | !this.world.checkCollision(x, y, enemySize, enemySize) 133 | ) { 134 | // Found a free spot, set enemy position and patrol center 135 | this.usedPositions.push({ x, y }); 136 | enemy.setPatrolCenter(x, y); 137 | return; 138 | } 139 | } 140 | 141 | // If no free spot found on the main ring, try different radiuses 142 | const alternativeRadiuses = [ 143 | ringRadius * 0.8, 144 | ringRadius * 1.2, 145 | ringRadius * 0.6, 146 | ringRadius * 1.4, 147 | ]; 148 | 149 | for (const radius of alternativeRadiuses) { 150 | for (let attempts = 0; attempts < 36; attempts++) { 151 | const angle = startAngle + (attempts * Math.PI * 2) / 36; 152 | const x = app.screen.width / 2 + Math.cos(angle) * radius; 153 | const y = app.screen.height / 2 + Math.sin(angle) * radius; 154 | 155 | const isTooClose = this.usedPositions.some((pos) => { 156 | const dx = x - pos.x; 157 | const dy = y - pos.y; 158 | return Math.sqrt(dx * dx + dy * dy) < minDistanceBetweenEnemies; 159 | }); 160 | 161 | if ( 162 | !isTooClose && 163 | !this.world.checkCollision(x, y, enemySize, enemySize) 164 | ) { 165 | this.usedPositions.push({ x, y }); 166 | enemy.setPatrolCenter(x, y); 167 | return; 168 | } 169 | } 170 | } 171 | 172 | // Fallback: place at a random position near center if no free spot found 173 | const randomAngle = Math.random() * Math.PI * 2; 174 | const randomRadius = baseRadius * 0.5; 175 | enemy.setPatrolCenter( 176 | app.screen.width / 2 + Math.cos(randomAngle) * randomRadius, 177 | app.screen.height / 2 + Math.sin(randomAngle) * randomRadius 178 | ); 179 | } 180 | 181 | private setupControls() { 182 | window.addEventListener("keydown", (e) => { 183 | this.keys[e.key.toLowerCase()] = true; 184 | 185 | // Special action on space 186 | if (e.code === "Space") { 187 | this.player.special(); 188 | } 189 | }); 190 | 191 | window.addEventListener("keyup", (e) => { 192 | this.keys[e.key.toLowerCase()] = false; 193 | }); 194 | } 195 | 196 | private setupDebugControls() { 197 | this.world.setDebug(true); 198 | this.player.setDebug(true); 199 | for (const enemy of this.enemies) { 200 | enemy.setDebug(true); 201 | } 202 | document.addEventListener("keydown", (e: KeyboardEvent) => { 203 | if (e.key.toLowerCase() === "d") { 204 | this.isDebugMode = !this.isDebugMode; 205 | this.world.setDebug(this.isDebugMode); 206 | this.player.setDebug(this.isDebugMode); 207 | for (const enemy of this.enemies) { 208 | enemy.setDebug(this.isDebugMode); 209 | } 210 | console.log("Debug mode:", this.isDebugMode ? "ON" : "OFF"); 211 | } 212 | }); 213 | } 214 | 215 | private setupClickHandler() { 216 | app.canvas.addEventListener("click", (e: MouseEvent) => { 217 | const rect = app.canvas.getBoundingClientRect(); 218 | const x = e.clientX - rect.left; 219 | const y = e.clientY - rect.top; 220 | 221 | const path = this.world.findPath(this.player.x, this.player.y, x, y); 222 | this.player.setPath(path); 223 | }); 224 | } 225 | 226 | private update() { 227 | // Calculate player movement 228 | let dx = 0; 229 | let dy = 0; 230 | 231 | if (this.keys["arrowup"]) dy = -1; 232 | if (this.keys["arrowdown"]) dy = 1; 233 | if (this.keys["arrowleft"]) dx = -1; 234 | if (this.keys["arrowright"]) dx = 1; 235 | 236 | // Normalize diagonal movement 237 | if (dx !== 0 && dy !== 0) { 238 | dx *= Math.SQRT1_2; 239 | dy *= Math.SQRT1_2; 240 | } 241 | 242 | // Update player movement 243 | this.player.move(dx, dy); 244 | this.player.update(); 245 | 246 | // Update all enemies 247 | for (const enemy of this.enemies) { 248 | // Update enemy behavior - check if player is in range and update accordingly 249 | enemy.updateChaseTarget( 250 | this.player.x, 251 | this.player.y, 252 | this.player.getCurrentSoundLevel() 253 | ); 254 | 255 | // Update enemy 256 | enemy.update(); 257 | 258 | // Check for attack range 259 | const attackRange = 50; 260 | const distanceToPlayer = Math.hypot( 261 | this.player.x - enemy.x, 262 | this.player.y - enemy.y 263 | ); 264 | 265 | if (distanceToPlayer < attackRange) { 266 | enemy.attack(); 267 | } 268 | } 269 | } 270 | } 271 | 272 | // Initialize the application and start the game 273 | initGame().catch(console.error); 274 | -------------------------------------------------------------------------------- /src/PathFinder.ts: -------------------------------------------------------------------------------- 1 | interface Node { 2 | x: number; 3 | y: number; 4 | f: number; // Total cost (g + h) 5 | g: number; // Cost from start to this node 6 | h: number; // Heuristic (estimated cost to goal) 7 | parent: Node | null; 8 | } 9 | 10 | export class PathFinder { 11 | private readonly TILE_SIZE: number; 12 | private readonly WORLD_WIDTH: number; 13 | private readonly WORLD_HEIGHT: number; 14 | private readonly OBSTACLE_BUFFER = 1.2; // Buffer multiplier for obstacle avoidance 15 | private readonly DIAGONAL_COST = Math.SQRT2; // Cost for diagonal movement 16 | private readonly STRAIGHT_COST = 1.0; // Cost for straight movement 17 | private getCollisionObjects: () => Array<{ 18 | x: number; 19 | y: number; 20 | width: number; 21 | height: number; 22 | }>; 23 | 24 | constructor( 25 | tileSize: number, 26 | worldWidth: number, 27 | worldHeight: number, 28 | getCollisionObjects: () => Array<{ 29 | x: number; 30 | y: number; 31 | width: number; 32 | height: number; 33 | }> 34 | ) { 35 | this.TILE_SIZE = tileSize; 36 | this.WORLD_WIDTH = worldWidth; 37 | this.WORLD_HEIGHT = worldHeight; 38 | this.getCollisionObjects = getCollisionObjects; 39 | } 40 | 41 | findPath( 42 | startX: number, 43 | startY: number, 44 | endX: number, 45 | endY: number 46 | ): { x: number; y: number }[] { 47 | // Convert world coordinates to grid coordinates 48 | const startNode: Node = { 49 | x: Math.floor(startX / this.TILE_SIZE), 50 | y: Math.floor(startY / this.TILE_SIZE), 51 | f: 0, 52 | g: 0, 53 | h: 0, 54 | parent: null, 55 | }; 56 | 57 | const targetNode: Node = { 58 | x: Math.floor(endX / this.TILE_SIZE), 59 | y: Math.floor(endY / this.TILE_SIZE), 60 | f: 0, 61 | g: 0, 62 | h: 0, 63 | parent: null, 64 | }; 65 | 66 | // If start point is inside an obstacle, no path is possible 67 | if (this.checkCollision(startX, startY)) { 68 | return []; 69 | } 70 | 71 | const openList: Node[] = [startNode]; 72 | const closedList: Node[] = []; 73 | let bestNode = startNode; 74 | let bestDistance = Infinity; 75 | 76 | while (openList.length > 0) { 77 | // Find node with lowest f cost 78 | let currentNode = openList[0]; 79 | let currentIndex = 0; 80 | 81 | openList.forEach((node, index) => { 82 | if (node.f < currentNode.f) { 83 | currentNode = node; 84 | currentIndex = index; 85 | } 86 | }); 87 | 88 | // Remove current node from open list and add to closed list 89 | openList.splice(currentIndex, 1); 90 | closedList.push(currentNode); 91 | 92 | // Check if this is the closest we've gotten to the target 93 | const dx = targetNode.x - currentNode.x; 94 | const dy = targetNode.y - currentNode.y; 95 | const distanceToTarget = Math.sqrt(dx * dx + dy * dy); 96 | 97 | if (distanceToTarget < bestDistance) { 98 | bestDistance = distanceToTarget; 99 | bestNode = currentNode; 100 | } 101 | 102 | // Found the goal or we're at a collision point 103 | if ( 104 | (currentNode.x === targetNode.x && currentNode.y === targetNode.y) || 105 | this.checkCollision( 106 | (currentNode.x + 0.5) * this.TILE_SIZE, 107 | (currentNode.y + 0.5) * this.TILE_SIZE 108 | ) 109 | ) { 110 | const path = this.reconstructPath(currentNode); 111 | 112 | // If we hit the target exactly, return the path 113 | if (currentNode.x === targetNode.x && currentNode.y === targetNode.y) { 114 | return path; 115 | } 116 | 117 | // If we hit a collision, add the exact clicked point as the final destination 118 | // if it's closer than our last valid point 119 | const lastPoint = path[path.length - 1]; 120 | const lastDx = endX - lastPoint.x; 121 | const lastDy = endY - lastPoint.y; 122 | const lastDistance = Math.sqrt(lastDx * lastDx + lastDy * lastDy); 123 | 124 | if (lastDistance > this.TILE_SIZE / 2) { 125 | path.push({ x: endX, y: endY }); 126 | } 127 | 128 | return path; 129 | } 130 | 131 | // Generate neighbors 132 | const neighbors = this.getNeighbors(currentNode); 133 | 134 | for (const neighbor of neighbors) { 135 | if ( 136 | closedList.some( 137 | (node) => node.x === neighbor.x && node.y === neighbor.y 138 | ) 139 | ) { 140 | continue; 141 | } 142 | 143 | const dx = Math.abs(neighbor.x - currentNode.x); 144 | const dy = Math.abs(neighbor.y - currentNode.y); 145 | const isDiagonal = dx === 1 && dy === 1; 146 | const g = 147 | currentNode.g + 148 | (isDiagonal ? this.DIAGONAL_COST : this.STRAIGHT_COST); 149 | 150 | const openNode = openList.find( 151 | (node) => node.x === neighbor.x && node.y === neighbor.y 152 | ); 153 | 154 | if (!openNode || g < openNode.g) { 155 | neighbor.g = g; 156 | neighbor.h = this.calculateHeuristic(neighbor, targetNode); 157 | neighbor.f = neighbor.g + neighbor.h; 158 | neighbor.parent = currentNode; 159 | 160 | if (!openNode) { 161 | openList.push(neighbor); 162 | } 163 | } 164 | } 165 | } 166 | 167 | // If we couldn't reach the target, return path to the closest point we could reach 168 | return this.reconstructPath(bestNode); 169 | } 170 | 171 | private getNeighbors(node: Node): Node[] { 172 | const neighbors: Node[] = []; 173 | // Include diagonal movements 174 | for (let dx = -1; dx <= 1; dx++) { 175 | for (let dy = -1; dy <= 1; dy++) { 176 | if (dx === 0 && dy === 0) continue; 177 | 178 | const newX = node.x + dx; 179 | const newY = node.y + dy; 180 | 181 | // Check if position is within bounds and not colliding 182 | if ( 183 | newX >= 0 && 184 | newX < this.WORLD_WIDTH && 185 | newY >= 0 && 186 | newY < this.WORLD_HEIGHT && 187 | !this.checkCollision( 188 | newX * this.TILE_SIZE + this.TILE_SIZE / 2, 189 | newY * this.TILE_SIZE + this.TILE_SIZE / 2 190 | ) 191 | ) { 192 | neighbors.push({ 193 | x: newX, 194 | y: newY, 195 | f: 0, 196 | g: 0, 197 | h: 0, 198 | parent: null, 199 | }); 200 | } 201 | } 202 | } 203 | return neighbors; 204 | } 205 | 206 | private calculateHeuristic(node: Node, goal: Node): number { 207 | // Use octile distance for better diagonal movement estimation 208 | const dx = Math.abs(goal.x - node.x); 209 | const dy = Math.abs(goal.y - node.y); 210 | return ( 211 | this.STRAIGHT_COST * Math.max(dx, dy) + 212 | (this.DIAGONAL_COST - this.STRAIGHT_COST) * Math.min(dx, dy) 213 | ); 214 | } 215 | 216 | private calculateObstacleCost(x: number, y: number): number { 217 | let minDistance = Infinity; 218 | const position = { 219 | x: x * this.TILE_SIZE + this.TILE_SIZE / 2, 220 | y: y * this.TILE_SIZE + this.TILE_SIZE / 2, 221 | }; 222 | 223 | for (const obj of this.getCollisionObjects()) { 224 | const objCenter = { 225 | x: obj.x + obj.width / 2, 226 | y: obj.y + obj.height / 2, 227 | }; 228 | const distance = Math.sqrt( 229 | Math.pow(position.x - objCenter.x, 2) + 230 | Math.pow(position.y - objCenter.y, 2) 231 | ); 232 | minDistance = Math.min(minDistance, distance); 233 | } 234 | 235 | // Return higher cost for positions closer to obstacles 236 | return Math.max( 237 | 0, 238 | (this.TILE_SIZE * 2 - minDistance) / (this.TILE_SIZE * 2) 239 | ); 240 | } 241 | 242 | private findNearestValidPoint( 243 | x: number, 244 | y: number 245 | ): { x: number; y: number } | null { 246 | const searchRadius = 2; // Search in a 5x5 grid around the point 247 | const centerX = Math.floor(x / this.TILE_SIZE); 248 | const centerY = Math.floor(y / this.TILE_SIZE); 249 | 250 | let minDistance = Infinity; 251 | let nearestPoint = null; 252 | 253 | for (let dx = -searchRadius; dx <= searchRadius; dx++) { 254 | for (let dy = -searchRadius; dy <= searchRadius; dy++) { 255 | const newX = (centerX + dx) * this.TILE_SIZE + this.TILE_SIZE / 2; 256 | const newY = (centerY + dy) * this.TILE_SIZE + this.TILE_SIZE / 2; 257 | 258 | if (!this.checkCollision(newX, newY)) { 259 | const distance = Math.sqrt( 260 | Math.pow(x - newX, 2) + Math.pow(y - newY, 2) 261 | ); 262 | if (distance < minDistance) { 263 | minDistance = distance; 264 | nearestPoint = { x: newX, y: newY }; 265 | } 266 | } 267 | } 268 | } 269 | 270 | return nearestPoint; 271 | } 272 | 273 | private reconstructPath(endNode: Node): { x: number; y: number }[] { 274 | const path: { x: number; y: number }[] = []; 275 | let current: Node | null = endNode; 276 | 277 | while (current !== null) { 278 | path.push({ 279 | x: current.x * this.TILE_SIZE + this.TILE_SIZE / 2, 280 | y: current.y * this.TILE_SIZE + this.TILE_SIZE / 2, 281 | }); 282 | current = current.parent; 283 | } 284 | 285 | return path.reverse(); 286 | } 287 | 288 | private smoothPath( 289 | path: { x: number; y: number }[] 290 | ): { x: number; y: number }[] { 291 | if (path.length <= 2) return path; 292 | 293 | const smoothed: { x: number; y: number }[] = [path[0]]; 294 | let current = 0; 295 | 296 | while (current < path.length - 1) { 297 | let furthest = current + 1; 298 | 299 | // Look ahead for the furthest point we can directly reach 300 | for (let i = current + 2; i < path.length; i++) { 301 | if (this.canMoveDirect(path[current], path[i])) { 302 | furthest = i; 303 | } 304 | } 305 | 306 | smoothed.push(path[furthest]); 307 | current = furthest; 308 | } 309 | 310 | return smoothed; 311 | } 312 | 313 | private canMoveDirect( 314 | start: { x: number; y: number }, 315 | end: { x: number; y: number } 316 | ): boolean { 317 | const steps = Math.ceil( 318 | Math.sqrt(Math.pow(end.x - start.x, 2) + Math.pow(end.y - start.y, 2)) / 319 | (this.TILE_SIZE / 2) 320 | ); 321 | 322 | for (let i = 1; i < steps; i++) { 323 | const t = i / steps; 324 | const x = start.x + (end.x - start.x) * t; 325 | const y = start.y + (end.y - start.y) * t; 326 | 327 | if (this.checkCollision(x, y)) { 328 | return false; 329 | } 330 | } 331 | 332 | return true; 333 | } 334 | 335 | private checkCollision(x: number, y: number): boolean { 336 | const COLLISION_SIZE = this.TILE_SIZE * this.OBSTACLE_BUFFER; 337 | const halfSize = COLLISION_SIZE / 2; 338 | 339 | const box = { 340 | x: x - halfSize, 341 | y: y - halfSize, 342 | width: COLLISION_SIZE, 343 | height: COLLISION_SIZE, 344 | }; 345 | 346 | return this.getCollisionObjects().some((obj) => 347 | this.isOverlapping(box, obj) 348 | ); 349 | } 350 | 351 | private isOverlapping( 352 | box1: { x: number; y: number; width: number; height: number }, 353 | box2: { x: number; y: number; width: number; height: number } 354 | ): boolean { 355 | return ( 356 | box1.x < box2.x + box2.width && 357 | box1.x + box1.width > box2.x && 358 | box1.y < box2.y + box2.height && 359 | box1.y + box1.height > box2.y 360 | ); 361 | } 362 | } 363 | -------------------------------------------------------------------------------- /src/MapGenerator.ts: -------------------------------------------------------------------------------- 1 | import { Container, Sprite, Assets, Point } from "pixi.js"; 2 | 3 | interface WorldObject { 4 | type: "stone" | "log" | "bush" | "tree" | "tree_trunk" | "camp"; 5 | sprite: Sprite | Container; 6 | gridSize: { width: number; height: number }; // Size in grid cells 7 | position: Point; 8 | template: ObjectTemplate; 9 | } 10 | 11 | interface ObjectTemplate { 12 | type: "stone" | "log" | "bush" | "tree" | "tree_trunk" | "camp"; 13 | texturePath: string | { main: string; shadow: string }; 14 | gridSize: { width: number; height: number }; 15 | probability: number; // Chance of this variant being selected 16 | collisionOffset?: { top?: number; bottom?: number }; // Fraction of tile size (e.g., 0.5 = half tile) 17 | resourceAmount: number; // Each object has a certain amount of resources 18 | } 19 | 20 | export class MapGenerator { 21 | private readonly BOUNDARY_BUFFER = 1; // Buffer of 1 tiles from the edges 22 | private readonly OBJECT_SPACING = 1; // Minimum spacing between objects in tiles 23 | public readonly templates: { [key: string]: ObjectTemplate[] } = { 24 | stone: [ 25 | { 26 | type: "stone", 27 | texturePath: 28 | "fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/8.png", 29 | gridSize: { width: 1, height: 1 }, 30 | probability: 0.5, 31 | collisionOffset: { top: 0.25 }, // Quarter tile offset 32 | resourceAmount: 5, // Each stone has 5 resources 33 | }, 34 | { 35 | type: "stone", 36 | texturePath: 37 | "fields-tileset-pixel-art-for-tower-defense/2 Objects/4 Stone/7.png", 38 | gridSize: { width: 1, height: 1 }, 39 | probability: 0.5, 40 | collisionOffset: { top: 0.25 }, 41 | resourceAmount: 5, 42 | }, 43 | ], 44 | log: [ 45 | { 46 | type: "log", 47 | texturePath: 48 | "fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Log1.png", 49 | gridSize: { width: 1, height: 1 }, 50 | probability: 0.5, 51 | collisionOffset: { top: 0.4 }, // Almost half tile offset 52 | resourceAmount: 3, // Each log has 3 resources 53 | }, 54 | { 55 | type: "log", 56 | texturePath: 57 | "fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Log2.png", 58 | gridSize: { width: 1, height: 1 }, 59 | probability: 0.5, 60 | collisionOffset: { top: 0.4 }, 61 | resourceAmount: 3, 62 | }, 63 | ], 64 | bush: [ 65 | { 66 | type: "bush", 67 | texturePath: 68 | "fields-tileset-pixel-art-for-tower-defense/2 Objects/9 Bush/6.png", 69 | gridSize: { width: 1, height: 1 }, 70 | probability: 0.4, 71 | collisionOffset: { top: 0.15 }, // Small offset 72 | resourceAmount: 0, // Bushes don't have collectible resources 73 | }, 74 | { 75 | type: "bush", 76 | texturePath: 77 | "fields-tileset-pixel-art-for-tower-defense/2 Objects/9 Bush/2.png", 78 | gridSize: { width: 1, height: 1 }, 79 | probability: 0.3, 80 | collisionOffset: { top: 0.15 }, 81 | resourceAmount: 0, 82 | }, 83 | ], 84 | tree: [ 85 | { 86 | type: "tree", 87 | texturePath: { 88 | main: "fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Tree1.png", 89 | shadow: 90 | "fields-tileset-pixel-art-for-tower-defense/2 Objects/1 Shadow/6.png", 91 | }, 92 | gridSize: { width: 2, height: 2 }, 93 | probability: 0.5, 94 | collisionOffset: { top: 0.5, bottom: 0.5 }, // Half tile offset 95 | resourceAmount: 0, // Trees are not collectible 96 | }, 97 | ], 98 | tree_trunk: [ 99 | { 100 | type: "tree_trunk", 101 | texturePath: 102 | "fields-tileset-pixel-art-for-tower-defense/2 Objects/7 Decor/Tree2.png", 103 | gridSize: { width: 1, height: 1 }, 104 | probability: 0.5, 105 | collisionOffset: { top: 0.2 }, // Small offset 106 | resourceAmount: 0, // Tree trunks are decorative 107 | }, 108 | ], 109 | camp: [ 110 | { 111 | type: "camp", 112 | texturePath: 113 | "fields-tileset-pixel-art-for-tower-defense/2 Objects/8 Camp/1.png", 114 | gridSize: { width: 2, height: 1 }, // Adjusted size to maintain proportions 115 | probability: 1.0, 116 | collisionOffset: { top: 0.3 }, // Small top offset for entrance 117 | resourceAmount: 0, // Camp is not a resource 118 | }, 119 | ], 120 | }; 121 | 122 | private occupiedTiles: boolean[][] = []; 123 | private readonly TILE_SIZE: number; 124 | private readonly WORLD_WIDTH: number; 125 | private readonly WORLD_HEIGHT: number; 126 | 127 | constructor(worldWidth: number, worldHeight: number, tileSize: number) { 128 | this.WORLD_WIDTH = worldWidth; 129 | this.WORLD_HEIGHT = worldHeight; 130 | this.TILE_SIZE = tileSize; 131 | 132 | // Initialize occupation grid 133 | this.occupiedTiles = Array(worldHeight) 134 | .fill(null) 135 | .map(() => Array(worldWidth).fill(false)); 136 | } 137 | 138 | private isAreaAvailable( 139 | x: number, 140 | y: number, 141 | width: number, 142 | height: number 143 | ): boolean { 144 | // Check if the area is within the safe zone (away from boundaries) 145 | if ( 146 | x < this.BOUNDARY_BUFFER || 147 | y < this.BOUNDARY_BUFFER || 148 | x + width > this.WORLD_WIDTH - this.BOUNDARY_BUFFER || 149 | y + height > this.WORLD_HEIGHT - this.BOUNDARY_BUFFER 150 | ) { 151 | return false; 152 | } 153 | 154 | // Check an expanded area that includes the spacing buffer 155 | const bufferSize = this.OBJECT_SPACING; 156 | const checkX = Math.max(0, x - bufferSize); 157 | const checkY = Math.max(0, y - bufferSize); 158 | const checkWidth = Math.min( 159 | width + bufferSize * 2, 160 | this.WORLD_WIDTH - checkX 161 | ); 162 | const checkHeight = Math.min( 163 | height + bufferSize * 2, 164 | this.WORLD_HEIGHT - checkY 165 | ); 166 | 167 | // Check if any tile in the expanded area is occupied 168 | for (let dy = 0; dy < checkHeight; dy++) { 169 | for (let dx = 0; dx < checkWidth; dx++) { 170 | const tileX = checkX + dx; 171 | const tileY = checkY + dy; 172 | if ( 173 | tileX < this.WORLD_WIDTH && 174 | tileY < this.WORLD_HEIGHT && 175 | this.occupiedTiles[tileY][tileX] 176 | ) { 177 | return false; 178 | } 179 | } 180 | } 181 | 182 | return true; 183 | } 184 | 185 | private markAreaOccupied( 186 | x: number, 187 | y: number, 188 | width: number, 189 | height: number 190 | ) { 191 | for (let dy = 0; dy < height; dy++) { 192 | for (let dx = 0; dx < width; dx++) { 193 | this.occupiedTiles[y + dy][x + dx] = true; 194 | } 195 | } 196 | } 197 | 198 | private selectRandomTemplate( 199 | type: "stone" | "log" | "bush" | "tree" | "tree_trunk" | "camp" 200 | ): ObjectTemplate { 201 | const templates = this.templates[type]; 202 | const rand = Math.random(); 203 | let cumulativeProbability = 0; 204 | 205 | for (const template of templates) { 206 | cumulativeProbability += template.probability; 207 | if (rand <= cumulativeProbability) { 208 | return template; 209 | } 210 | } 211 | return templates[0]; // Fallback to first template 212 | } 213 | 214 | private findRandomAvailablePosition( 215 | width: number, 216 | height: number 217 | ): Point | null { 218 | // Try 50 random positions before giving up 219 | for (let attempt = 0; attempt < 50; attempt++) { 220 | // Generate position within the safe zone 221 | const x = Math.floor( 222 | Math.random() * 223 | (this.WORLD_WIDTH - width - 2 * this.BOUNDARY_BUFFER + 1) + 224 | this.BOUNDARY_BUFFER 225 | ); 226 | const y = Math.floor( 227 | Math.random() * 228 | (this.WORLD_HEIGHT - height - 2 * this.BOUNDARY_BUFFER + 1) + 229 | this.BOUNDARY_BUFFER 230 | ); 231 | 232 | if (this.isAreaAvailable(x, y, width, height)) { 233 | return new Point(x, y); 234 | } 235 | } 236 | return null; 237 | } 238 | 239 | private async loadTextures(): Promise { 240 | const texturePromises: Promise[] = []; 241 | 242 | // Load regular textures 243 | for (const [type, templates] of Object.entries(this.templates)) { 244 | if (type !== "tree") { 245 | templates.forEach((template) => { 246 | texturePromises.push(Assets.load(template.texturePath as string)); 247 | }); 248 | } 249 | } 250 | 251 | // Load tree textures 252 | this.templates.tree.forEach((template) => { 253 | const paths = template.texturePath as { main: string; shadow: string }; 254 | texturePromises.push(Assets.load(paths.main)); 255 | texturePromises.push(Assets.load(paths.shadow)); 256 | }); 257 | 258 | await Promise.all(texturePromises); 259 | } 260 | 261 | private createCompositeSprite( 262 | texturePaths: { main: string; shadow: string }, 263 | x: number, 264 | y: number 265 | ): Container { 266 | const container = new Container(); 267 | 268 | // Create and position shadow sprite 269 | const shadowSprite = Sprite.from(texturePaths.shadow); 270 | shadowSprite.x = -this.TILE_SIZE / 2; 271 | shadowSprite.y = this.TILE_SIZE / 0.9; // Shift shadow down by half a tile 272 | container.addChild(shadowSprite); 273 | 274 | // Create and position main sprite (tree) 275 | const mainSprite = Sprite.from(texturePaths.main); 276 | mainSprite.x = 0; 277 | mainSprite.y = 0; 278 | container.addChild(mainSprite); 279 | 280 | // Position the container 281 | container.x = x; 282 | container.y = y; 283 | 284 | return container; 285 | } 286 | 287 | async generateObjects(objectCounts: { 288 | stones: number; 289 | logs: number; 290 | bushes: number; 291 | trees: number; 292 | tree_trunks: number; 293 | }): Promise { 294 | await this.loadTextures(); 295 | 296 | const objects: WorldObject[] = []; 297 | 298 | // Place objects 299 | const types: Array<{ 300 | type: "stone" | "log" | "bush" | "tree" | "tree_trunk"; 301 | count: number; 302 | }> = [ 303 | { type: "stone", count: objectCounts.stones }, 304 | { type: "log", count: objectCounts.logs }, 305 | { type: "bush", count: objectCounts.bushes }, 306 | { type: "tree", count: objectCounts.trees }, 307 | { type: "tree_trunk", count: objectCounts.tree_trunks }, 308 | ]; 309 | 310 | for (const { type, count } of types) { 311 | for (let i = 0; i < count; i++) { 312 | const template = this.selectRandomTemplate(type); 313 | const position = this.findRandomAvailablePosition( 314 | template.gridSize.width, 315 | template.gridSize.height 316 | ); 317 | 318 | if (position) { 319 | let displayObject: Sprite | Container; 320 | 321 | if (type === "tree") { 322 | displayObject = this.createCompositeSprite( 323 | template.texturePath as { main: string; shadow: string }, 324 | position.x * this.TILE_SIZE, 325 | position.y * this.TILE_SIZE 326 | ); 327 | } else { 328 | displayObject = Sprite.from(template.texturePath as string); 329 | displayObject.x = position.x * this.TILE_SIZE; 330 | displayObject.y = position.y * this.TILE_SIZE; 331 | } 332 | 333 | this.markAreaOccupied( 334 | position.x, 335 | position.y, 336 | template.gridSize.width, 337 | template.gridSize.height 338 | ); 339 | 340 | objects.push({ 341 | type, 342 | sprite: displayObject, 343 | gridSize: template.gridSize, 344 | position, 345 | template, 346 | }); 347 | } 348 | } 349 | } 350 | 351 | return objects; 352 | } 353 | } 354 | -------------------------------------------------------------------------------- /src/Enemy.ts: -------------------------------------------------------------------------------- 1 | import { 2 | Container, 3 | Sprite, 4 | Texture, 5 | Assets, 6 | AnimatedSprite, 7 | Graphics, 8 | Rectangle, 9 | } from "pixi.js"; 10 | import { World } from "./World"; 11 | 12 | type Direction = "up" | "down" | "left" | "right"; 13 | type State = "walk" | "attack" | "death"; 14 | 15 | interface AnimationSet { 16 | [key: string]: AnimatedSprite; 17 | } 18 | 19 | export class Enemy extends Container { 20 | private readonly FRAME_SIZE = 48; 21 | private readonly COLLISION_PADDING = this.FRAME_SIZE / 3; 22 | private readonly COLLISION_SIZE = 23 | this.FRAME_SIZE - this.COLLISION_PADDING * 2; 24 | private readonly ANIMATION_SPEED = 0.1; 25 | private readonly MOVE_SPEED = 1.2; 26 | private readonly PATROL_RADIUS = 80; 27 | private readonly DETECTION_RADIUS = 120; 28 | private readonly HEARING_RADIUS = 160; // Maximum distance at which sounds can be heard 29 | private readonly PATH_UPDATE_COOLDOWN = 800; // Increased from 500ms to 800ms 30 | private readonly MIN_PATH_UPDATE_DISTANCE = 50; // Only update path if target moved this far 31 | private readonly PATH_FOLLOW_DISTANCE = 5; 32 | 33 | private animations: AnimationSet = {}; 34 | private currentDirection: Direction = "down"; 35 | private currentAnimationState: State = "walk"; 36 | private currentAnimation: AnimatedSprite | null = null; 37 | private debugGraphics: Graphics = new Graphics(); 38 | private isDebugVisible: boolean = true; 39 | private world: World | null = null; 40 | private velocity = { x: 0, y: 0 }; 41 | private isDead: boolean = false; 42 | private patrolCenter: { x: number; y: number }; 43 | private patrolAngle: number = 0; 44 | private isChasing: boolean = false; 45 | private heardSoundLocation: { x: number; y: number } | null = null; 46 | private investigatingSoundUntil: number = 0; 47 | private currentPath: { x: number; y: number }[] = []; 48 | private pathGraphics: Graphics = new Graphics(); 49 | private lastPathUpdateTime: number = 0; 50 | private lastTargetPosition: { x: number; y: number } | null = null; // Track last target position 51 | 52 | constructor() { 53 | super(); 54 | this.addChild(this.debugGraphics); 55 | this.addChild(this.pathGraphics); 56 | this.patrolCenter = { x: 0, y: 0 }; 57 | this.pathGraphics.visible = false; 58 | } 59 | 60 | setPatrolCenter(x: number, y: number): void { 61 | this.patrolCenter = { x, y }; 62 | this.x = x; 63 | this.y = y; 64 | } 65 | 66 | private updatePathVisuals(): void { 67 | this.pathGraphics.clear(); 68 | 69 | if (!this.isDebugVisible || this.currentPath.length === 0) return; 70 | 71 | // Draw path line 72 | this.pathGraphics.setStrokeStyle({ 73 | width: 2, 74 | color: 0xff0000, // Red color for enemy paths 75 | alpha: 0.8, 76 | }); 77 | 78 | // Start from current position 79 | this.pathGraphics.moveTo(0, 0); 80 | 81 | // Draw lines to each path point (relative to enemy position) 82 | for (const point of this.currentPath) { 83 | this.pathGraphics.lineTo(point.x - this.x, point.y - this.y); 84 | } 85 | this.pathGraphics.stroke(); 86 | 87 | // Draw points at each node 88 | this.pathGraphics.beginFill(0xff0000, 0.5); 89 | for (const point of this.currentPath) { 90 | this.pathGraphics.circle(point.x - this.x, point.y - this.y, 3); 91 | } 92 | this.pathGraphics.endFill(); 93 | } 94 | 95 | private setPath(path: { x: number; y: number }[]): void { 96 | this.currentPath = path; 97 | this.updatePathVisuals(); 98 | } 99 | 100 | private updatePatrolMovement(): void { 101 | if (this.isChasing) return; 102 | 103 | // Move in a circular pattern at constant speed 104 | this.patrolAngle += 0.02; 105 | if (this.patrolAngle > Math.PI * 2) { 106 | this.patrolAngle -= Math.PI * 2; 107 | } 108 | 109 | // Calculate target position on the patrol circle 110 | const targetX = 111 | this.patrolCenter.x + Math.cos(this.patrolAngle) * this.PATROL_RADIUS; 112 | const targetY = 113 | this.patrolCenter.y + Math.sin(this.patrolAngle) * this.PATROL_RADIUS; 114 | 115 | // Only update path if we don't have one or have reached the end 116 | const now = Date.now(); 117 | if ( 118 | this.currentPath.length === 0 && 119 | now - this.lastPathUpdateTime >= this.PATH_UPDATE_COOLDOWN 120 | ) { 121 | if (this.world) { 122 | const path = this.world.findPath(this.x, this.y, targetX, targetY); 123 | if (path.length > 0) { 124 | this.setPath(path); 125 | this.lastPathUpdateTime = now; 126 | } 127 | } 128 | } 129 | } 130 | 131 | updateChaseTarget( 132 | targetX: number, 133 | targetY: number, 134 | playerSoundLevel: { radius: number } | null = null 135 | ): void { 136 | const dx = targetX - this.x; 137 | const dy = targetY - this.y; 138 | const distanceToTarget = Math.sqrt(dx * dx + dy * dy); 139 | 140 | // Check if we can hear any sounds from the player 141 | if (playerSoundLevel) { 142 | const effectiveHearingRadius = 143 | this.HEARING_RADIUS + playerSoundLevel.radius; 144 | if (distanceToTarget < effectiveHearingRadius) { 145 | this.heardSoundLocation = { x: targetX, y: targetY }; 146 | this.investigatingSoundUntil = Date.now() + 3000; 147 | } 148 | } 149 | 150 | // Check if target is within visual detection radius or if we're investigating a sound 151 | if ( 152 | distanceToTarget < this.DETECTION_RADIUS || 153 | (this.heardSoundLocation && Date.now() < this.investigatingSoundUntil) 154 | ) { 155 | this.isChasing = true; 156 | 157 | const now = Date.now(); 158 | const shouldUpdatePath = 159 | // No current path 160 | this.currentPath.length === 0 || 161 | // Enough time has passed since last update 162 | (now - this.lastPathUpdateTime >= this.PATH_UPDATE_COOLDOWN && 163 | // And either we don't have a last target position or target has moved significantly 164 | (!this.lastTargetPosition || 165 | Math.hypot( 166 | targetX - this.lastTargetPosition.x, 167 | targetY - this.lastTargetPosition.y 168 | ) > this.MIN_PATH_UPDATE_DISTANCE)); 169 | 170 | if (shouldUpdatePath) { 171 | // Update path to target 172 | if (this.world) { 173 | const path = this.world.findPath(this.x, this.y, targetX, targetY); 174 | if (path.length > 0) { 175 | this.setPath(path); 176 | this.lastPathUpdateTime = now; 177 | this.lastTargetPosition = { x: targetX, y: targetY }; 178 | } 179 | } 180 | } 181 | } else { 182 | this.isChasing = false; 183 | this.lastTargetPosition = null; 184 | // Clear sound investigation if time is up 185 | if ( 186 | this.heardSoundLocation && 187 | Date.now() >= this.investigatingSoundUntil 188 | ) { 189 | this.heardSoundLocation = null; 190 | } 191 | } 192 | } 193 | 194 | async initialize(): Promise { 195 | const baseSpritePath = "field-enemies-pixel-art-for-tower-defense/2/"; 196 | const directions: Direction[] = ["up", "down", "left", "right"]; 197 | const states: State[] = ["walk", "attack", "death"]; 198 | 199 | // Create animations for each direction and state 200 | for (const direction of directions) { 201 | for (const state of states) { 202 | const prefix = this.getAnimationPrefix(direction); 203 | const texturePath = `${baseSpritePath}${prefix}_${ 204 | state.charAt(0).toUpperCase() + state.slice(1) 205 | }.png`; 206 | 207 | // Load the sprite sheet 208 | const baseTexture = await Assets.load(texturePath); 209 | 210 | // Create frame textures (4 frames per animation) 211 | const frames: Texture[] = []; 212 | for (let i = 0; i < 4; i++) { 213 | const frame = new Rectangle( 214 | i * this.FRAME_SIZE, 215 | 0, 216 | this.FRAME_SIZE, 217 | this.FRAME_SIZE 218 | ); 219 | const texture = new Texture({ 220 | source: baseTexture, 221 | frame: frame, 222 | }); 223 | frames.push(texture); 224 | } 225 | 226 | // Create animated sprite 227 | const animatedSprite = new AnimatedSprite(frames); 228 | animatedSprite.animationSpeed = this.ANIMATION_SPEED; 229 | animatedSprite.anchor.set(0.5); 230 | animatedSprite.visible = false; 231 | // For left direction, flip the sprite horizontally 232 | if (direction === "right") { 233 | animatedSprite.scale.x *= -1; 234 | } 235 | this.addChild(animatedSprite); 236 | 237 | // Store the animation 238 | this.animations[`${direction}_${state}`] = animatedSprite; 239 | } 240 | } 241 | 242 | // Set initial animation 243 | this.setAnimation("down", "walk"); 244 | } 245 | 246 | private getAnimationPrefix(direction: Direction): string { 247 | switch (direction) { 248 | case "up": 249 | return "U"; 250 | case "down": 251 | return "D"; 252 | case "left": 253 | case "right": 254 | return "S"; // Use side animation for both left and right 255 | default: 256 | return "D"; 257 | } 258 | } 259 | 260 | private setAnimation(direction: Direction, state: State): void { 261 | // Don't change animation if dead and not in death state 262 | if (this.isDead && state !== "death") return; 263 | 264 | // Hide current animation if exists 265 | if (this.currentAnimation) { 266 | this.currentAnimation.visible = false; 267 | this.currentAnimation.stop(); 268 | } 269 | 270 | // Get and show new animation 271 | const animationKey = `${direction}_${state}`; 272 | this.currentAnimation = this.animations[animationKey]; 273 | 274 | if (this.currentAnimation) { 275 | this.currentAnimation.visible = true; 276 | if (state === "death") { 277 | // Play death animation once 278 | this.currentAnimation.loop = false; 279 | this.currentAnimation.onComplete = () => { 280 | this.isDead = true; 281 | }; 282 | } else { 283 | this.currentAnimation.loop = true; 284 | } 285 | this.currentAnimation.gotoAndPlay(0); 286 | } 287 | 288 | this.currentDirection = direction; 289 | this.currentAnimationState = state; 290 | } 291 | 292 | setDebug(enabled: boolean): void { 293 | this.isDebugVisible = enabled; 294 | this.debugGraphics.visible = enabled; 295 | this.pathGraphics.visible = enabled; 296 | if (enabled) { 297 | this.updateDebugVisuals(); 298 | this.updatePathVisuals(); 299 | } 300 | } 301 | 302 | setWorld(world: World): void { 303 | this.world = world; 304 | } 305 | 306 | attack(): void { 307 | if (this.isDead) return; 308 | this.setAnimation(this.currentDirection, "attack"); 309 | // Reset to walk after attack animation completes 310 | setTimeout(() => { 311 | if (!this.isDead) { 312 | this.setAnimation(this.currentDirection, "walk"); 313 | } 314 | }, 1000); 315 | } 316 | 317 | die(): void { 318 | if (this.isDead) return; 319 | this.setAnimation(this.currentDirection, "death"); 320 | } 321 | 322 | update(): void { 323 | if (!this.world || this.isDead) return; 324 | 325 | if (!this.isChasing) { 326 | this.updatePatrolMovement(); 327 | } 328 | 329 | // Follow path if exists 330 | if (this.currentPath.length > 0) { 331 | const targetPoint = this.currentPath[0]; 332 | const dx = targetPoint.x - this.x; 333 | const dy = targetPoint.y - this.y; 334 | const distance = Math.sqrt(dx * dx + dy * dy); 335 | 336 | if (distance < this.PATH_FOLLOW_DISTANCE) { 337 | // Only remove the current point if we're not at the last point while chasing 338 | if (!this.isChasing || this.currentPath.length > 1) { 339 | this.currentPath.shift(); 340 | } 341 | if (this.currentPath.length === 0) { 342 | this.velocity.x = 0; 343 | this.velocity.y = 0; 344 | } 345 | } else { 346 | // Move towards point with smooth acceleration 347 | const targetVelocityX = (dx / distance) * this.MOVE_SPEED; 348 | const targetVelocityY = (dy / distance) * this.MOVE_SPEED; 349 | 350 | // Smoothly interpolate current velocity to target velocity 351 | this.velocity.x += (targetVelocityX - this.velocity.x) * 0.1; 352 | this.velocity.y += (targetVelocityY - this.velocity.y) * 0.1; 353 | } 354 | } 355 | 356 | // Calculate next position 357 | const nextX = this.x + this.velocity.x; 358 | const nextY = this.y + this.velocity.y; 359 | 360 | // Check for collisions 361 | const willCollide = this.world.checkCollision( 362 | nextX, 363 | nextY, 364 | this.COLLISION_SIZE, 365 | this.COLLISION_SIZE 366 | ); 367 | 368 | // Update position if no collision 369 | if (!willCollide) { 370 | this.x = nextX; 371 | this.y = nextY; 372 | } else { 373 | // Try sliding along walls 374 | const canMoveX = !this.world.checkCollision( 375 | nextX, 376 | this.y, 377 | this.COLLISION_SIZE, 378 | this.COLLISION_SIZE 379 | ); 380 | const canMoveY = !this.world.checkCollision( 381 | this.x, 382 | nextY, 383 | this.COLLISION_SIZE, 384 | this.COLLISION_SIZE 385 | ); 386 | 387 | if (canMoveX) this.x = nextX; 388 | if (canMoveY) this.y = nextY; 389 | } 390 | 391 | // Update animations based on movement 392 | const isMoving = 393 | Math.abs(this.velocity.x) > 0 || Math.abs(this.velocity.y) > 0; 394 | 395 | if (isMoving && this.currentAnimationState !== "attack") { 396 | if (Math.abs(this.velocity.x) > Math.abs(this.velocity.y)) { 397 | this.currentDirection = this.velocity.x > 0 ? "right" : "left"; 398 | } else { 399 | this.currentDirection = this.velocity.y > 0 ? "down" : "up"; 400 | } 401 | this.setAnimation(this.currentDirection, "walk"); 402 | } else if (!isMoving && this.currentAnimationState === "walk") { 403 | this.setAnimation(this.currentDirection, "walk"); 404 | } 405 | 406 | // Update visuals 407 | if (this.isDebugVisible) { 408 | this.updateDebugVisuals(); 409 | this.updatePathVisuals(); 410 | } 411 | } 412 | 413 | private updateDebugVisuals(): void { 414 | this.debugGraphics.clear(); 415 | 416 | // Draw patrol area 417 | this.debugGraphics.setStrokeStyle({ 418 | width: 2, 419 | color: 0x00ff00, 420 | alpha: 0.5, 421 | }); 422 | this.debugGraphics.circle( 423 | this.patrolCenter.x - this.x, 424 | this.patrolCenter.y - this.y, 425 | this.PATROL_RADIUS 426 | ); 427 | this.debugGraphics.stroke(); 428 | 429 | // Draw detection radius 430 | this.debugGraphics.setStrokeStyle({ 431 | width: 2, 432 | color: 0xff0000, 433 | alpha: 0.3, 434 | }); 435 | this.debugGraphics.circle(0, 0, this.DETECTION_RADIUS); 436 | this.debugGraphics.stroke(); 437 | 438 | // Draw hearing radius 439 | this.debugGraphics.setStrokeStyle({ 440 | width: 2, 441 | color: 0x0000ff, 442 | alpha: 0.2, 443 | }); 444 | this.debugGraphics.circle(0, 0, this.HEARING_RADIUS); 445 | this.debugGraphics.stroke(); 446 | 447 | // Draw sound investigation marker 448 | if (this.heardSoundLocation && Date.now() < this.investigatingSoundUntil) { 449 | const alpha = (this.investigatingSoundUntil - Date.now()) / 3000; 450 | this.debugGraphics.setStrokeStyle({ 451 | width: 2, 452 | color: 0xffff00, 453 | alpha: alpha * 0.8, 454 | }); 455 | 456 | // Draw X marker at sound location 457 | const markerSize = 10; 458 | const soundX = this.heardSoundLocation.x - this.x; 459 | const soundY = this.heardSoundLocation.y - this.y; 460 | 461 | this.debugGraphics 462 | .moveTo(soundX - markerSize, soundY - markerSize) 463 | .lineTo(soundX + markerSize, soundY + markerSize) 464 | .moveTo(soundX + markerSize, soundY - markerSize) 465 | .lineTo(soundX - markerSize, soundY + markerSize) 466 | .stroke(); 467 | } 468 | 469 | // Draw collision box 470 | this.debugGraphics.setStrokeStyle({ 471 | width: 2, 472 | color: 0xff0000, 473 | alpha: 0.8, 474 | }); 475 | this.debugGraphics.rect( 476 | -this.COLLISION_SIZE / 2, 477 | -this.COLLISION_SIZE / 2, 478 | this.COLLISION_SIZE, 479 | this.COLLISION_SIZE 480 | ); 481 | this.debugGraphics.stroke(); 482 | } 483 | 484 | // Method to set enemy movement 485 | setVelocity(dx: number, dy: number): void { 486 | this.velocity.x = dx * this.MOVE_SPEED; 487 | this.velocity.y = dy * this.MOVE_SPEED; 488 | } 489 | } 490 | --------------------------------------------------------------------------------