diff --git a/README.md b/README.md index 8948c35..deb7958 100644 --- a/README.md +++ b/README.md @@ -32,21 +32,4 @@ Check `package.json`, there are also commands available to run tests and check t ## Credits -- Most sprites and code made me ([@lorgan3](https://github.com/lorgan3)). -- [Explosion animation](https://opengameart.org/content/explosion-3) by [sogomn](https://opengameart.org/users/sogomn). -- [Various sprites](./credits.md) Many sprites from [opengameart](https://opengameart.org/) in LPC style. The attribution for this is very complicated so please see the credits file where I tried including everything. -- [notification.mp3](https://freesound.org/people/zzwerty/sounds/315878/) by [zzwerty](https://freesound.org/people/zzwerty/). -- [flamethrower.wav](https://freesound.org/people/deleted_user_13668154/sounds/616093/). -- [laser.flac](https://freesound.org/people/unfa/sounds/584191/) by [Tobiasz 'unfa' Karoń](https://freesound.org/people/unfa/). -- [mortar.wav](https://freesound.org/people/OGsoundFX/sounds/423108/) and [shot.wav](https://freesound.org/people/OGsoundFX/sounds/423114/) by [Olivier Girardot](https://freesound.org/people/OGsoundFX/). -- [railgun.mp3](https://freesound.org/people/deleted_user_1941307/sounds/155790/). -- [explosion.wav](https://freesound.org/people/EminYILDIRIM/sounds/553153/) by [Emin](https://freesound.org/people/EminYILDIRIM/). -- [firework.wav](https://freesound.org/people/TimoSchmied/sounds/530972/) by [Timo Schmied](https://freesound.org/people/TimoSchmied/). -- [place.wav](https://freesound.org/people/Robinhood76/sounds/254079/) and [destroy.wav](https://freesound.org/people/Robinhood76/sounds/503554/) by [FxProSound](https://freesound.org/people/Robinhood76/). -- [hit.wav](https://freesound.org/people/BMacZero/sounds/96138/) by [BMacZero](https://freesound.org/people/BMacZero/). -- [sonar.wav](https://freesound.org/people/SamsterBirdies/sounds/371178/) by [SamsterBirdies](https://freesound.org/people/SamsterBirdies/). -- [thunder.wav](https://freesound.org/people/doudar41/sounds/535952/) by [doudar41](https://freesound.org/people/doudar41/). -- [bush.mp3](https://freesound.org/people/Herkules92/sounds/518799/) by [Herkules92](https://freesound.org/people/Herkules92/). -- tank.wav by ? -- [drill.wav](https://freesound.org/people/rabbydaw/sounds/504182/) by [rabbydaw](https://freesound.org/people/rabbydaw/). -- [lock.mp3](https://freesound.org/people/LordForklift/sounds/448416/) by [LordForklift](https://freesound.org/people/LordForklift/). +See the credits [in game](https://lorgan3.github.io/open-td/#credits) or directly in [credits.json](./credits.json) diff --git a/credits.json b/credits.json new file mode 100644 index 0000000..6c4e566 --- /dev/null +++ b/credits.json @@ -0,0 +1,258 @@ +[ + { + "author": "Lorgan3", + "authorUrl": "https://github.com/lorgan3", + "subjects": [ + { + "name": "Code and many sprites", + "url": "https://github.com/lorgan3/open-td", + "license": ["GPL 3.0"] + } + ] + }, + { + "author": "Arthur Lee Brown", + "authorUrl": "https://www.reddit.com/user/arthurlbrown/", + "subjects": [ + { + "name": "Title music" + }, + { + "name": "Fog of War (level music 1)" + }, + { + "name": "Marching Forward (level music 2)" + }, + { + "name": "For Honor (level music 3)" + }, + { + "name": "Boss music" + } + ] + }, + { + "author": "sogomn", + "authorUrl": "https://opengameart.org/users/sogomn", + "subjects": [ + { + "name": "Explosion animation", + "url": "https://opengameart.org/content/explosion-3", + "license": ["CC0"] + } + ] + }, + { + "author": "b_o", + "subjects": [ + { + "name": "Pine Tree Tiles", + "url": "https://opengameart.org/content/pine-tree-tiles", + "license": ["CC-BY-SA 3.0", "GPL 2.0"] + } + ] + }, + { + "author": "Lanea Zimmerman (aka Sharm), Eliza Wyatt", + "subjects": [ + { + "name": "Flat Shingle Roof A", + "url": "https://opengameart.org/content/liberated-pixel-cup-lpc-base-assets-sprites-map-tiles", + "license": ["CC-BY-SA 3.0", "GPL 3.0"] + } + ] + }, + { + "author": "bluecarrot16", + "authorUrl": "https://opengameart.org/users/bluecarrot16", + "subjects": [ + { + "name": "[LPC] Rocks", + "url": "https://opengameart.org/content/lpc-rocks", + "description": "[LPC] Rocks by bluecarrot16, Johann Charlot, Yar, Hyptosis, Evert, Lanea Zimmerman (Sharm), Guillaume Lecollinet, Richard Kettering (Jetrel), Zachariah Husiar (Zabin), Jetrel, Hyptosis, Redshrike, Rayane Félix (RayaneFLX), Michele Bucelli (Buch) \n\n\tBased on:\n\n\tShoot'em up graphic kit\n\tJohann Charlot\n\tCC-BY-SA 3.0 / GPL 3.0\n\thttps://opengameart.org/content/shootem-up-graphic-kit\n\n\tIsometric 64x64 Outside Tileset\n\tYar\n\tCC-BY 3.0\n\thttps://opengameart.org/content/isometric-64x64-outside-tileset\n\n\tLots of Hyptosis' tiles organized!\n\tHyptosis\n\tCC-BY 3.0\n\thttps://opengameart.org/content/lots-of-hyptosis-tiles-organized\n\n\tHyptosis rocks adapted by Evert\n\tCC-BY 3.0\n\thttps://opengameart.org/comment/86070#comment-86070\n\n\tLiberated Pixel Cup (LPC) Base Assets\n\tLanea Zimmerman (Sharm)\n\tCC-BY-SA 3.0 / CC-BY 3.0 / GPL 3.0\n\thttps://opengameart.org/content/liberated-pixel-cup-lpc-base-assets-sprites-map-tiles\n\n\tBrowserQuest Sprites and Tiles\n\tGuillaume Lecollinet\n\tCC-BY-SA 3.0\n\thttp://opengameart.org/content/browserquest-sprites-and-tiles\n\n\tZRPG Tiles\n\tRichard Kettering aka (Jetrel),Zachariah Husiar aka (Zabin), Hyptosis, Sharm and Open Pixel Project.\n\tCC-BY-SA 3.0+\n\thttps://opengameart.org/content/zrpg-tiles\n\n\t2d Lost Garden Zelda style tiles resized to 32x32 with additions\n\tDaniel Cook, Jetrel, Saphy (TMW), Zabin, Bertram\n\tCC-BY 3.0\n\thttps://opengameart.org/content/2d-lost-garden-zelda-style-tiles-resized-to-32x32-with-additions\n\tCredit goes to Daniel Cook's 2d Circle Graphic Archive, Jetrel's mockups resized 32x32, Bertram's improvements, Zabin's modification and additions, Saphy (TMW) tall grass and please provide a link back to OGA and this submission.\n\n\t32x32 (and 16x16) RPG Tiles--Forest and some Interior Tiles\n\tStephen Challener and the Open Surge team (http://opensnc.sourceforge.net)commissioned by Gaurav Munjal\n\tCC-BY 3.0\n\thttps://opengameart.org/content/32x32-and-16x16-rpg-tiles-forest-and-some-interior-tiles\n\n\t16x16 Game Assets\n\tGeorge Bailey\n\tCC-BY 4.0\n\thttps://opengameart.org/content/16x16-game-assets\n\n\tRPG Terrains\n\tRayane Félix (RayaneFLX)\n\tCC-BY-SA 3.0\n\thttps://opengameart.org/content/rpg-terrains\n\n\tOutdoor 32x32 tileset\n\tBuch \n\tCC0\n\thttps://opengameart.org/content/outdoor-32x32-tileset\n\n\tCute dungeon LPC edit\n\tEvert, Buch \n\tCC-BY 3.0\n\thttps://opengameart.org/content/cute-dungeon-lpc-edit\n\thttps://opengameart.org/content/a-cute-dungeon", + "license": ["CC-BY-SA 4.0", "CC-BY-SA 3.0"] + }, + { + "name": "[LPC] Trees", + "url": "https://opengameart.org/content/lpc-trees", + "description": "[LPC] Trees Mega-Pack by bluecarrot16, Jetrel, Zabin, Hyptosis, Surt, Buch, Johann Charlot, Stephen Challener and the Open Surge team (http://opensnc.sourceforge.net), Gaurav Munjal, Ivan Voirol (Silver IV)\n\tGuido Bos, Yar, Paulina Riva (PauR), William.Thompsonj, Casper Nilsson, Hyptosis, ansimuz, qubodup, Bart K., Blarumyrran, Lanea Zimmerman (Sharm), Leonard Pabin, Chris Phillips, Barbara Rivera, and Talosaurus.\n\tCC-BY-SA 3.0\n\n\n\tLots of trees and plants from OGA (DB32) tilesets pack 1\n\tJetrel, Zabin, Hyptosis, Surt\n\tCC0\n\thttps://opengameart.org/content/lots-of-trees-and-plants-from-oga-db32-tilesets-pack-1\n\n\tThe Field of the Floating Islands\n\tBuch \n\tCC0\n\thttps://opengameart.org/content/the-field-of-the-floating-islands\n\n\tOutdoor tiles, again\n\tBuch \n\tCC-BY 2.0\n\thttps://opengameart.org/content/outdoor-tiles-again\n\n\tShoot'em up graphic kit\n\tJohann Charlot\n\tCC-BY-SA 3.0 / GPL 3.0\n\thttps://opengameart.org/content/shootem-up-graphic-kit\n\n\t32x32 (and 16x16) RPG Tiles--Forest and some Interior Tiles\n\tStephen Challener and the Open Surge team (http://opensnc.sourceforge.net)commissioned by Gaurav Munjal\n\tCC-BY 3.0\n\thttps://opengameart.org/content/32x32-and-16x16-rpg-tiles-forest-and-some-interior-tiles\n\n\tOrthographic outdoor tiles\n\tBuch\n\tCC0\n\thttps://opengameart.org/content/orthographic-outdoor-tiles\n\n\tBasic map 32x32 by Silver IV\n\tIvan Voirol (Silver IV)\n\tCC-BY 3.0 / GPL 3.0 / GPL 2.0\n\thttps://opengameart.org/content/basic-map-32x32-by-silver-iv\n\n\told frogatto tile art\n\tGuido Bos\n\tCC0\n\thttps://opengameart.org/content/old-frogatto-tile-art\n\n\tGeneric Platformer Tiles\n\tsurt\n\tCC0\n\thttp://opengameart.org/content/generic-platformer-tiles\n\n\tIsometric 64x64 Outside Tileset\n\tYar\n\tCC-BY 3.0\n\thttps://opengameart.org/content/isometric-64x64-outside-tileset\n\n\tNature tileset\n\tPaulina Riva (PauR)\n\tCC-BY 3.0\n\thttps://opengameart.org/content/nature-tileset\n\n\t[LPC] Tree Recolors\n\tWilliam.Thompsonj\n\tCC-BY-SA 3.0 / GPL 3.0\n\thttps://opengameart.org/content/lpc-tree-recolors\n\n\tLPC C.Nilsson\n\tCasper Nilsson\n\tCC-BY-SA 3.0 / GPL 3.0\n\thttps://opengameart.org/content/lpc-cnilsson\n\n\tLots of Hyptosis' tiles organized!\n\tHyptosis\n\tCC-BY 3.0\n\thttps://opengameart.org/content/lots-of-hyptosis-tiles-organized\n\n\tTrees & Bushes\n\tansimuz\n\tCC0\n\thttp://opengameart.org/content/trees-bushes\n\n\tOGA Community Tileset: Nature\n\tqubodup, Bart K., Blarumyrran\n\tGPL 2.0 / GPL 3.0 / CC-BY-SA 3.0\n\thttps://opengameart.org/content/oga-community-tileset-nature\n\n\tLiberated Pixel Cup (LPC) Base Assets\n\tLanea Zimmerman (Sharm)\n\tCC-BY-SA 3.0 / CC-BY 3.0 / GPL 3.0\n\thttps://opengameart.org/content/liberated-pixel-cup-lpc-base-assets-sprites-map-tiles\n\n\tWhispers of Avalon: Grassland Tileset\n\tLeonard Pabin\n\tCC-BY 3.0 / GPL 3.0 / GPL 2.0\n\thttps://opengameart.org/content/whispers-of-avalon-grassland-tileset\n\n\tTeam River Fox\n\tChris Phillips, Barbara Rivera\n\tCC-BY-SA 3.0 / GPL 3.0\n\thttps://opengameart.org/content/team-river-fox\n\n\tConcept Art for LPC Entry\n\tBarbara Rivera\n\tCC-BY-SA 3.0 / GPL 3.0\n\thttps://opengameart.org/content/concept-art-for-lpc-entry\n\n\tOld Eastern Themed Building Tiles + Tree\n\tTalosaurus\n\tCC0\n\thttps://opengameart.org/content/old-eastern-themed-building-tiles-tree", + "license": ["CC-BY-SA 3.0"] + }, + { + "name": "[LPC] Rocks", + "url": "https://opengameart.org/content/lpc-beach-desert", + "description": "[LPC] Beach/Desert by bluecarrot16, Guillaume Lecollinet, Johann Charlot, cynicmusic, Surt, vk, Yar, Buch, Jetrel, Zabin, Hyptosis, and Sharm.\n\tCC-BY-SA 3.0\n\n\tBrowserQuest Sprites and Tiles\n\tGuillaume Lecollinet\n\tCC-BY-SA 3.0\n\thttp://opengameart.org/content/browserquest-sprites-and-tiles\n\n\tShoot'em up graphic kit\n\tJohann Charlot\n\tCC-BY-SA 3.0 / GPL 3.0\n\thttps://opengameart.org/content/shootem-up-graphic-kit\n\n\tPixelsphere 32x32 Tileset + Grass + Trees\n\tcynicmusic\n\tCC0\n\thttp://opengameart.org/content/pixelsphere-32x32-tileset-grass-trees\n\n\ttrees\n\tSurt, vk\n\tCC0\n\thttps://opengameart.org/content/trees-1\n\n\tIsometric 64x64 Outside Tileset\n\tYar\n\tCC-BY 3.0\n\thttps://opengameart.org/content/isometric-64x64-outside-tileset\n\n\tTuxemon tileset\n\tBuch\n\tCC-BY-SA 3.0\n\thttps://opengameart.org/content/tuxemon-tileset\n\n\tLots of trees and plants from OGA (DB32) tilesets pack 1\n\tJetrel, Zabin, Hyptosis, Surt\n\tCC0\n\thttps://opengameart.org/content/lots-of-trees-and-plants-from-oga-db32-tilesets-pack-1\n\n\tBone Planet\n\tHyptosis\n\tCC0\n\thttps://opengameart.org/content/bone-planet\n\n\tWhispers of Avalon: Desert Tileset\n\tLeonard Pabin, Ali-G\n\tCC-BY 3.0 / GPL 3.0 / GPL 2.0\n\thttps://opengameart.org/content/whispers-of-avalon-desert-tileset\n\n\t[LPC] Arabic Elements\n\tLanea Zimmerman (Sharm), William Thompson\n\tCC-BY 3.0 / GPL 3.0 / GPL 2.0 / OGA-BY 3.0\n\thttps://opengameart.org/content/lpc-arabic-elements\n\n\tLots of free 2d tiles and sprites by Hyptosis\n\tHyptosis, Zabin\n\tCC-BY 3.0\n\thttps://opengameart.org/content/lots-of-free-2d-tiles-and-sprites-by-hyptosis", + "license": ["CC-BY-SA 3.0"] + }, + { + "name": "[LPC] Terrains", + "url": "https://opengameart.org/content/lpc-terrains", + "description": "[LPC] Terrains by bluecarrot16, Lanea Zimmerman (Sharm), Daniel Eddeland (Daneeklu), Richard Kettering (Jetrel), Zachariah Husiar (Zabin), Hyptosis, Casper Nilsson, Buko Studios, Nushio, ZaPaper, billknye, William Thompson, caeles, Redshrike, Bertram, and Rayane Félix (RayaneFLX)\n\n\tLiberated Pixel Cup (LPC) Base Assets (sprites & map tiles)\n\tLanea Zimmerman (Sharm)\n\tCC-BY 3.0 / CC-BY-SA 3.0 / GPL 3.0\n\thttps://opengameart.org/content/liberated-pixel-cup-lpc-base-assets-sprites-map-tiles\n\n\t[LPC] Farming tilesets, magic animations and UI elements\n\tDaniel Eddeland (Daneeklu)\n\tCC-BY-SA 3.0 / GPL 3.0\n\thttps://opengameart.org/content/lpc-farming-tilesets-magic-animations-and-ui-elements\n\n\tZRPG Tiles\n\tRichard Kettering (Jetrel), Zachariah Husiar (Zabin), Hyptosis, Lanea Zimmerman (Sharm), and Open Pixel Project.\n\tCC-BY-SA 3.0+\n\thttps://opengameart.org/content/zrpg-tiles\n\n\tLPC C.Nilsson\n\tCasper Nilsson\n\tCC-BY-SA 3.0 / GPL 3.0\n\thttps://opengameart.org/content/lpc-cnilsson\n\n\tFrozen Lake [LPC]\n\tBuko Studios (http://www.buko-studios.com/) Commissioned by PlayCraft: (www.playcraftapp.com)\n\tCC-BY 3.0\n\thttps://opengameart.org/content/frozen-lake-lpc\n\n\n\tLPC Animated Water and waterfalls\n\tZaPaper\n\tCC-BY-SA 3.0\n\thttps://opengameart.org/content/lpc-animated-water-and-waterfalls\n\n\tLPC More Water Transitions\n\tbillknye\n\tCC-BY-SA 3.0 / GPL 3.0\n\thttps://opengameart.org/content/lpc-more-water-transitions\n\n\t[LPC] Sand+Rock Alt Colors\n\tWilliam.Thompsonj, Daniel Eddeland\n\tCC-BY-SA 3.0 / GPL 3.0\n\thttps://opengameart.org/content/lpc-sandrock-alt-colors\n\n\t[LPC] Colorful Sand + Deep Water!\n\tNushio\n\tCC-BY-SA 3.0 / GPL 3.0\n\thttps://opengameart.org/content/lpc-colorful-sand-deep-water\n\n\tLPC terrain extension\n\tcaeles\n\tCC-BY-SA 3.0 / GPL 3.0\n\thttps://opengameart.org/content/lpc-terrain-extension\n\n\tRPG Tiles: Cobble stone paths & town objects\n\tZachariah Husiar (Zabin), Daniel Eddeland (Daneeklu), Richard Kettering (Jetrel), Hyptosis, Redshrike, Bertram\n\tCC-BY-SA 3.0\n\thttps://opengameart.org/content/rpg-tiles-cobble-stone-paths-town-objects\n\n\tRPG Terrains\n\tRayane Félix (RayaneFLX)\n\tCC-BY-SA 3.0\n\thttps://opengameart.org/content/rpg-terrains", + "license": ["CC-BY-SA 4.0", "CC-BY-SA 3.0"] + } + ] + }, + { + "author": "zzwerty", + "authorUrl": "https://freesound.org/people/zzwerty/sounds/315878/", + "subjects": [ + { + "name": "notification.mp3", + "url": "https://freesound.org/people/zzwerty/sounds/315878/", + "license": ["CC BY-NC 3.0"] + } + ] + }, + { + "author": "Tobiasz 'unfa' Karoń", + "authorUrl": "https://freesound.org/people/unfa/", + "subjects": [ + { + "name": "laser.mp3", + "url": "https://freesound.org/people/unfa/sounds/584191/", + "license": ["CC0"] + } + ] + }, + { + "author": "Olivier Girardot", + "authorUrl": "https://freesound.org/people/OGsoundFX/", + "subjects": [ + { + "name": "mortar.wav", + "url": "https://freesound.org/people/OGsoundFX/sounds/423108/", + "license": ["CC BY 4.0"] + } + ] + }, + { + "author": "Emin", + "authorUrl": "https://freesound.org/people/EminYILDIRIM/", + "subjects": [ + { + "name": "explosion.wav", + "url": "https://freesound.org/people/EminYILDIRIM/sounds/553153/", + "license": ["CC BY 4.0"] + } + ] + }, + { + "author": "Timo Schmied", + "authorUrl": "https://freesound.org/people/TimoSchmied/", + "subjects": [ + { + "name": "firework.wav", + "url": "https://freesound.org/people/TimoSchmied/sounds/530972/", + "license": ["CC BY 4.0"] + } + ] + }, + { + "author": "FxProSound", + "authorUrl": "https://freesound.org/people/Robinhood76/", + "subjects": [ + { + "name": "place.wav", + "url": "https://freesound.org/people/Robinhood76/sounds/254079/", + "license": ["CC BY 4.0"] + }, + { + "name": "destroy.wav", + "url": "https://freesound.org/people/Robinhood76/sounds/503554/", + "license": ["CC BY 4.0"] + } + ] + }, + { + "author": "BMacZero", + "authorUrl": "https://freesound.org/people/BMacZero/", + "subjects": [ + { + "name": "hit.wav", + "url": "https://freesound.org/people/BMacZero/sounds/96138/", + "license": ["CC0"] + } + ] + }, + { + "author": "SamsterBirdies", + "authorUrl": "https://freesound.org/people/SamsterBirdies/", + "subjects": [ + { + "name": "sonar.wav", + "url": "https://freesound.org/people/SamsterBirdies/sounds/371178/", + "license": ["CC0"] + } + ] + }, + { + "author": "doudar41", + "authorUrl": "https://freesound.org/people/doudar41/", + "subjects": [ + { + "name": "thunder.wav", + "url": "https://freesound.org/people/doudar41/sounds/535952/", + "license": ["CC0"] + } + ] + }, + { + "author": "Herkules92", + "authorUrl": "https://freesound.org/people/Herkules92/", + "subjects": [ + { + "name": "bush.wav", + "url": "https://freesound.org/people/Herkules92/sounds/518799/", + "license": ["CC0"] + } + ] + }, + { + "author": "rabbydaw", + "authorUrl": "https://freesound.org/people/rabbydaw/", + "subjects": [ + { + "name": "drill.wav", + "url": "https://freesound.org/people/rabbydaw/sounds/504182/", + "license": ["CC0"] + } + ] + }, + { + "author": "LordForklift", + "authorUrl": "https://freesound.org/people/LordForklift/", + "subjects": [ + { + "name": "lock.mp3", + "url": "https://freesound.org/people/LordForklift/sounds/448416/", + "license": ["CC0"] + } + ] + }, + { + "author": "Brian Kent", + "subjects": [ + { + "name": "Jupiter Crash font", + "url": "https://www.dafont.com/jupiter-crash.font" + } + ] + }, + { + "subjects": [ + { + "name": "flamethrower.wav", + "url": "https://freesound.org/people/deleted_user_13668154/sounds/616093/", + "license": ["CC BY-NC 3.0"] + }, + { + "name": "railgun.mp3", + "url": "https://freesound.org/people/deleted_user_1941307/sounds/155790/", + "license": ["CC0"] + }, + { + "name": "tank.wav" + } + ] + } +] diff --git a/credits.md b/credits.md deleted file mode 100644 index a1bdd9d..0000000 --- a/credits.md +++ /dev/null @@ -1,333 +0,0 @@ -[Pine Tree Tiles](https://opengameart.org/content/pine-tree-tiles) by b_o - -[Flat Shingle Roof A](https://opengameart.org/content/liberated-pixel-cup-lpc-base-assets-sprites-map-tiles) by Lanea Zimmerman (aka Sharm), Eliza Wyatt. -Original by Lanea Zimmerman. Expanded for tiling and recolors by Eliza Wyatt. - -
- [LPC] Rocks] - - https://opengameart.org/content/lpc-rocks - - [LPC] Rocks by bluecarrot16, Johann Charlot, Yar, Hyptosis, Evert, Lanea Zimmerman (Sharm), Guillaume Lecollinet, Richard Kettering (Jetrel), Zachariah Husiar (Zabin), Jetrel, Hyptosis, Redshrike, Rayane Félix (RayaneFLX), Michele Bucelli (Buch) - - Based on: - - Shoot'em up graphic kit - Johann Charlot - CC-BY-SA 3.0 / GPL 3.0 - https://opengameart.org/content/shootem-up-graphic-kit - - Isometric 64x64 Outside Tileset - Yar - CC-BY 3.0 - https://opengameart.org/content/isometric-64x64-outside-tileset - - Lots of Hyptosis' tiles organized! - Hyptosis - CC-BY 3.0 - https://opengameart.org/content/lots-of-hyptosis-tiles-organized - - Hyptosis rocks adapted by Evert - CC-BY 3.0 - https://opengameart.org/comment/86070#comment-86070 - - Liberated Pixel Cup (LPC) Base Assets - Lanea Zimmerman (Sharm) - CC-BY-SA 3.0 / CC-BY 3.0 / GPL 3.0 - https://opengameart.org/content/liberated-pixel-cup-lpc-base-assets-sprites-map-tiles - - BrowserQuest Sprites and Tiles - Guillaume Lecollinet - CC-BY-SA 3.0 - http://opengameart.org/content/browserquest-sprites-and-tiles - - ZRPG Tiles - Richard Kettering aka (Jetrel),Zachariah Husiar aka (Zabin), Hyptosis, Sharm and Open Pixel Project. - CC-BY-SA 3.0+ - https://opengameart.org/content/zrpg-tiles - - 2d Lost Garden Zelda style tiles resized to 32x32 with additions - Daniel Cook, Jetrel, Saphy (TMW), Zabin, Bertram - CC-BY 3.0 - https://opengameart.org/content/2d-lost-garden-zelda-style-tiles-resized-to-32x32-with-additions - Credit goes to Daniel Cook's 2d Circle Graphic Archive, Jetrel's mockups resized 32x32, Bertram's improvements, Zabin's modification and additions, Saphy (TMW) tall grass and please provide a link back to OGA and this submission. - - 32x32 (and 16x16) RPG Tiles--Forest and some Interior Tiles - Stephen Challener and the Open Surge team (http://opensnc.sourceforge.net)commissioned by Gaurav Munjal - CC-BY 3.0 - https://opengameart.org/content/32x32-and-16x16-rpg-tiles-forest-and-some-interior-tiles - - 16x16 Game Assets - George Bailey - CC-BY 4.0 - https://opengameart.org/content/16x16-game-assets - - RPG Terrains - Rayane Félix (RayaneFLX) - CC-BY-SA 3.0 - https://opengameart.org/content/rpg-terrains - - Outdoor 32x32 tileset - Buch - CC0 - https://opengameart.org/content/outdoor-32x32-tileset - - Cute dungeon LPC edit - Evert, Buch - CC-BY 3.0 - https://opengameart.org/content/cute-dungeon-lpc-edit - https://opengameart.org/content/a-cute-dungeon - -
- -
- [LPC] Trees - - https://opengameart.org/content/lpc-trees - - "[LPC] Trees Mega-Pack" by bluecarrot16, Jetrel, Zabin, Hyptosis, Surt, Buch, Johann Charlot, Stephen Challener and the Open Surge team (http://opensnc.sourceforge.net), Gaurav Munjal, Ivan Voirol (Silver IV) - Guido Bos, Yar, Paulina Riva (PauR), William.Thompsonj, Casper Nilsson, Hyptosis, ansimuz, qubodup, Bart K., Blarumyrran, Lanea Zimmerman (Sharm), Leonard Pabin, Chris Phillips, Barbara Rivera, and Talosaurus. - CC-BY-SA 3.0 - - - Lots of trees and plants from OGA (DB32) tilesets pack 1 - Jetrel, Zabin, Hyptosis, Surt - CC0 - https://opengameart.org/content/lots-of-trees-and-plants-from-oga-db32-tilesets-pack-1 - - The Field of the Floating Islands - Buch - CC0 - https://opengameart.org/content/the-field-of-the-floating-islands - - Outdoor tiles, again - Buch - CC-BY 2.0 - https://opengameart.org/content/outdoor-tiles-again - - Shoot'em up graphic kit - Johann Charlot - CC-BY-SA 3.0 / GPL 3.0 - https://opengameart.org/content/shootem-up-graphic-kit - - 32x32 (and 16x16) RPG Tiles--Forest and some Interior Tiles - Stephen Challener and the Open Surge team (http://opensnc.sourceforge.net)commissioned by Gaurav Munjal - CC-BY 3.0 - https://opengameart.org/content/32x32-and-16x16-rpg-tiles-forest-and-some-interior-tiles - - Orthographic outdoor tiles - Buch - CC0 - https://opengameart.org/content/orthographic-outdoor-tiles - - Basic map 32x32 by Silver IV - Ivan Voirol (Silver IV) - CC-BY 3.0 / GPL 3.0 / GPL 2.0 - https://opengameart.org/content/basic-map-32x32-by-silver-iv - - old frogatto tile art - Guido Bos - CC0 - https://opengameart.org/content/old-frogatto-tile-art - - Generic Platformer Tiles - surt - CC0 - http://opengameart.org/content/generic-platformer-tiles - - Isometric 64x64 Outside Tileset - Yar - CC-BY 3.0 - https://opengameart.org/content/isometric-64x64-outside-tileset - - Nature tileset - Paulina Riva (PauR) - CC-BY 3.0 - https://opengameart.org/content/nature-tileset - - [LPC] Tree Recolors - William.Thompsonj - CC-BY-SA 3.0 / GPL 3.0 - https://opengameart.org/content/lpc-tree-recolors - - LPC C.Nilsson - Casper Nilsson - CC-BY-SA 3.0 / GPL 3.0 - https://opengameart.org/content/lpc-cnilsson - - Lots of Hyptosis' tiles organized! - Hyptosis - CC-BY 3.0 - https://opengameart.org/content/lots-of-hyptosis-tiles-organized - - Trees & Bushes - ansimuz - CC0 - http://opengameart.org/content/trees-bushes - - OGA Community Tileset: Nature - qubodup, Bart K., Blarumyrran - GPL 2.0 / GPL 3.0 / CC-BY-SA 3.0 - https://opengameart.org/content/oga-community-tileset-nature - - Liberated Pixel Cup (LPC) Base Assets - Lanea Zimmerman (Sharm) - CC-BY-SA 3.0 / CC-BY 3.0 / GPL 3.0 - https://opengameart.org/content/liberated-pixel-cup-lpc-base-assets-sprites-map-tiles - - Whispers of Avalon: Grassland Tileset - Leonard Pabin - CC-BY 3.0 / GPL 3.0 / GPL 2.0 - https://opengameart.org/content/whispers-of-avalon-grassland-tileset - - Team River Fox - Chris Phillips, Barbara Rivera - CC-BY-SA 3.0 / GPL 3.0 - https://opengameart.org/content/team-river-fox - - Concept Art for LPC Entry - Barbara Rivera - CC-BY-SA 3.0 / GPL 3.0 - https://opengameart.org/content/concept-art-for-lpc-entry - - Old Eastern Themed Building Tiles + Tree - Talosaurus - CC0 - https://opengameart.org/content/old-eastern-themed-building-tiles-tree - -
- -
- [LPC] Beach / Desert - - https://opengameart.org/content/lpc-beach-desert - - "[LPC] Beach/Desert" by bluecarrot16, Guillaume Lecollinet, Johann Charlot, cynicmusic, Surt, vk, Yar, Buch, Jetrel, Zabin, Hyptosis, and Sharm. - CC-BY-SA 3.0 - - BrowserQuest Sprites and Tiles - Guillaume Lecollinet - CC-BY-SA 3.0 - http://opengameart.org/content/browserquest-sprites-and-tiles - - Shoot'em up graphic kit - Johann Charlot - CC-BY-SA 3.0 / GPL 3.0 - https://opengameart.org/content/shootem-up-graphic-kit - - Pixelsphere 32x32 Tileset + Grass + Trees - cynicmusic - CC0 - http://opengameart.org/content/pixelsphere-32x32-tileset-grass-trees - - trees - Surt, vk - CC0 - https://opengameart.org/content/trees-1 - - Isometric 64x64 Outside Tileset - Yar - CC-BY 3.0 - https://opengameart.org/content/isometric-64x64-outside-tileset - - Tuxemon tileset - Buch - CC-BY-SA 3.0 - https://opengameart.org/content/tuxemon-tileset - - Lots of trees and plants from OGA (DB32) tilesets pack 1 - Jetrel, Zabin, Hyptosis, Surt - CC0 - https://opengameart.org/content/lots-of-trees-and-plants-from-oga-db32-tilesets-pack-1 - - Bone Planet - Hyptosis - CC0 - https://opengameart.org/content/bone-planet - - Whispers of Avalon: Desert Tileset - Leonard Pabin, Ali-G - CC-BY 3.0 / GPL 3.0 / GPL 2.0 - https://opengameart.org/content/whispers-of-avalon-desert-tileset - - [LPC] Arabic Elements - Lanea Zimmerman (Sharm), William Thompson - CC-BY 3.0 / GPL 3.0 / GPL 2.0 / OGA-BY 3.0 - https://opengameart.org/content/lpc-arabic-elements - - Lots of free 2d tiles and sprites by Hyptosis - Hyptosis, Zabin - CC-BY 3.0 - https://opengameart.org/content/lots-of-free-2d-tiles-and-sprites-by-hyptosis - -
- -
- [LPC] Terrains - - https://opengameart.org/content/lpc-terrains - - "[LPC] Terrains" by bluecarrot16, Lanea Zimmerman (Sharm), Daniel Eddeland (Daneeklu), Richard Kettering (Jetrel), Zachariah Husiar (Zabin), Hyptosis, Casper Nilsson, Buko Studios, Nushio, ZaPaper, billknye, William Thompson, caeles, Redshrike, Bertram, and Rayane Félix (RayaneFLX) - - Liberated Pixel Cup (LPC) Base Assets (sprites & map tiles) - Lanea Zimmerman (Sharm) - CC-BY 3.0 / CC-BY-SA 3.0 / GPL 3.0 - https://opengameart.org/content/liberated-pixel-cup-lpc-base-assets-sprites-map-tiles - - [LPC] Farming tilesets, magic animations and UI elements - Daniel Eddeland (Daneeklu) - CC-BY-SA 3.0 / GPL 3.0 - https://opengameart.org/content/lpc-farming-tilesets-magic-animations-and-ui-elements - - ZRPG Tiles - Richard Kettering (Jetrel), Zachariah Husiar (Zabin), Hyptosis, Lanea Zimmerman (Sharm), and Open Pixel Project. - CC-BY-SA 3.0+ - https://opengameart.org/content/zrpg-tiles - - LPC C.Nilsson - Casper Nilsson - CC-BY-SA 3.0 / GPL 3.0 - https://opengameart.org/content/lpc-cnilsson - - Frozen Lake [LPC] - Buko Studios (http://www.buko-studios.com/) Commissioned by PlayCraft: (www.playcraftapp.com) - CC-BY 3.0 - https://opengameart.org/content/frozen-lake-lpc - - - LPC Animated Water and waterfalls - ZaPaper - CC-BY-SA 3.0 - https://opengameart.org/content/lpc-animated-water-and-waterfalls - - LPC More Water Transitions - billknye - CC-BY-SA 3.0 / GPL 3.0 - https://opengameart.org/content/lpc-more-water-transitions - - [LPC] Sand+Rock Alt Colors - William.Thompsonj, Daniel Eddeland - CC-BY-SA 3.0 / GPL 3.0 - https://opengameart.org/content/lpc-sandrock-alt-colors - - [LPC] Colorful Sand + Deep Water! - Nushio - CC-BY-SA 3.0 / GPL 3.0 - https://opengameart.org/content/lpc-colorful-sand-deep-water - - LPC terrain extension - caeles - CC-BY-SA 3.0 / GPL 3.0 - https://opengameart.org/content/lpc-terrain-extension - - RPG Tiles: Cobble stone paths & town objects - Zachariah Husiar (Zabin), Daniel Eddeland (Daneeklu), Richard Kettering (Jetrel), Hyptosis, Redshrike, Bertram - CC-BY-SA 3.0 - https://opengameart.org/content/rpg-tiles-cobble-stone-paths-town-objects - - RPG Terrains - Rayane Félix (RayaneFLX) - CC-BY-SA 3.0 - https://opengameart.org/content/rpg-terrains - -
diff --git a/package.json b/package.json index df2e57d..7def943 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "open-td", - "version": "1.0.0", + "version": "1.1.0", "license": "GPL-3.0", "type": "module", "scripts": { diff --git a/public/music/Boss.mp3 b/public/music/Boss.mp3 new file mode 100644 index 0000000..6134202 Binary files /dev/null and b/public/music/Boss.mp3 differ diff --git a/public/music/Fog of War.mp3 b/public/music/Fog of War.mp3 new file mode 100644 index 0000000..ef859b1 Binary files /dev/null and b/public/music/Fog of War.mp3 differ diff --git a/public/music/For Honor.mp3 b/public/music/For Honor.mp3 new file mode 100644 index 0000000..fed087e Binary files /dev/null and b/public/music/For Honor.mp3 differ diff --git a/public/music/Marching Onward.mp3 b/public/music/Marching Onward.mp3 new file mode 100644 index 0000000..0fcac4f Binary files /dev/null and b/public/music/Marching Onward.mp3 differ diff --git a/public/music/Title.mp3 b/public/music/Title.mp3 new file mode 100644 index 0000000..7bbca03 Binary files /dev/null and b/public/music/Title.mp3 differ diff --git a/src/App.vue b/src/App.vue index 435ccfb..af69cc3 100644 --- a/src/App.vue +++ b/src/App.vue @@ -5,18 +5,47 @@ import MainMenu from "./components/MainMenu.vue"; import { Difficulty } from "./data/difficulty"; import { Constructor } from "./renderers/api"; import "./util/firebase"; +import Credits from "./components/Credits.vue"; +import { get } from "./util/localStorage"; +import PixiRenderer from "./renderers/pixiRenderer/renderer"; + +import { Sound, levelMusic } from "./renderers/pixiRenderer/sound"; +import { getAssets } from "./renderers/pixiRenderer/assets"; +import MusicController from "./renderers/pixiRenderer/sound/musicController"; enum State { - Menu, - Game, + Menu = "menu", + Game = "game", + Credits = "credits", +} + +if (!MusicController.Instance) { + new MusicController(); +} + +const url = new URL(window.location.href); +const hash = url.hash.slice(1); +const state = ref( + Object.values(State).includes(hash) ? hash : State.Menu +); +const storedData = get("settings"); + +if (state.value === State.Menu || state.value === State.Credits) { + getAssets().then(() => { + MusicController.Instance.updateVolume( + (storedData?.musicVolume ?? 66) / 100 + ); + MusicController.Instance.queue([Sound.TitleMusic]); + }); } -const state = ref(State.Menu); const gameSeed = ref(); -const gameDifficulty = ref(); -const gameRenderer = ref(); -const gameShowTutorial = ref(); -const gameSimulationSpeed = ref(); +const gameDifficulty = ref( + storedData?.difficulty || Difficulty.Easy +); +const gameRenderer = ref(storedData?.renderer || PixiRenderer); +const gameShowTutorial = ref(storedData?.showTutorial || true); +const gameSimulationSpeed = ref(storedData?.simulation || 1); const startGame = ( seed: string | null, @@ -31,13 +60,27 @@ const startGame = ( gameRenderer.value = renderer; gameShowTutorial.value = showTutorial; gameSimulationSpeed.value = simulationSpeed; + + MusicController.Instance.queue(levelMusic); +}; + +const mainMenu = () => { + state.value = State.Menu; + MusicController.Instance.queue([Sound.TitleMusic]); }; -const mainMenu = () => (state.value = State.Menu); +const credits = () => { + state.value = State.Credits; + MusicController.Instance.queue([Sound.TitleMusic]); +}; diff --git a/src/components/Game.vue b/src/components/Game.vue index a70b7de..18d7ca6 100644 --- a/src/components/Game.vue +++ b/src/components/Game.vue @@ -25,7 +25,7 @@ const props = defineProps<{ renderer: Constructor; showTutorial: boolean; initialSpeed: number; - mainMenu: () => void; + onMainMenu: () => void; }>(); const canvas = ref(null); @@ -198,7 +198,7 @@ const restart = () => { const returnToMainMenu = () => { AchievementController.Instance?.unRegister(); - props.mainMenu(); + props.onMainMenu(); }; @@ -229,7 +229,7 @@ const returnToMainMenu = () => { :visible="isMarketplaceVisible" /> diff --git a/src/components/MainMenu.vue b/src/components/MainMenu.vue index 27508d0..1ea5d10 100644 --- a/src/components/MainMenu.vue +++ b/src/components/MainMenu.vue @@ -14,6 +14,8 @@ import { getWord } from "../util/word"; import { logEvent } from "../util/firebase"; import logo from "../assets/logo.png"; +import MusicController from "../renderers/pixiRenderer/sound/musicController"; + const props = defineProps<{ onPlay: ( seed: string | null, @@ -22,6 +24,7 @@ const props = defineProps<{ showTutorial: boolean, simulationSpeed: number ) => void; + onCredits: () => void; }>(); enum SubMenu { @@ -47,7 +50,9 @@ const storedData = get("settings"); const difficulty = ref(storedData?.difficulty || Difficulty.Easy); const assetsLoading = ref(true); -getAssets().then(() => (assetsLoading.value = false)); +getAssets().then(() => { + assetsLoading.value = false; +}); let getSettings: () => Partial; const setSubmitter = (submit: typeof getSettings) => (getSettings = submit); @@ -64,6 +69,14 @@ const onClick = (subMenu: SubMenu) => { } }; +const updateMusic = (volume: number) => { + if (assetsLoading.value) { + return; + } + + MusicController.Instance.updateVolume(volume / 100); +}; + const submit = (event: Event) => { event.preventDefault(); @@ -90,6 +103,8 @@ const loadSave = (event: Event) => { const settings = getSettings(); + set("settings", settings); + props.onPlay( null, difficulty.value, @@ -116,6 +131,7 @@ const loadSave = (event: Event) => { +
{ }" >
@@ -358,6 +374,8 @@ const loadSave = (event: Event) => { gap: 10px; align-items: center; height: 44px; + width: 100%; + background: #15162e; &-link { color: #fff; diff --git a/src/components/Settings.vue b/src/components/Settings.vue index ee38368..b669724 100644 --- a/src/components/Settings.vue +++ b/src/components/Settings.vue @@ -6,8 +6,9 @@ import PixiRenderer from "../renderers/pixiRenderer/renderer"; import { get } from "../util/localStorage"; import { Settings } from "../util/localStorage/settings"; -const { setSubmitter } = defineProps<{ +const { setSubmitter, updateMusic } = defineProps<{ setSubmitter: (submitter: () => Partial) => void; + updateMusic: (volume: number) => void; }>(); const renderOptions: Array<{ label: string; value: Constructor }> = [ @@ -30,6 +31,7 @@ const renderer = ref( ); const showTutorial = ref(storedData?.showTutorial ?? true); const volume = ref(storedData?.volume ?? 50); +const musicVolume = ref(storedData?.musicVolume ?? 66); const simulation = ref(storedData?.simulation ?? 1); const submit = () => { @@ -38,6 +40,7 @@ const submit = () => { renderer: renderer.value.value, showTutorial: showTutorial.value, volume: volume.value, + musicVolume: musicVolume.value, simulation: simulation.value, }; }; @@ -59,9 +62,19 @@ setSubmitter(submit); +