diff --git a/CMakeLists.txt b/CMakeLists.txt index 95081759..4c70139a 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -32,6 +32,8 @@ set(SOURCE_FILES src/Event.cpp src/Event.h src/EventManager.h + src/FadeInOut.cpp + src/FadeInOut.h src/FileUtils.cpp src/FileUtils.h src/Font2.h @@ -133,6 +135,7 @@ set(SOURCE_FILES src/Game/LevelMap.cpp src/Game/LevelMap.h src/Game/LevelObject.h + src/Game/MapCoord.h src/Game/PathFinder.cpp src/Game/PathFinder.h src/Game/Player.cpp @@ -209,8 +212,6 @@ set(SOURCE_FILES src/Parser/ParseText.h src/Parser/ParseTexture.cpp src/Parser/ParseTexture.h - src/Parser/ParseUtils.cpp - src/Parser/ParseUtils.h src/Parser/ParseVariable.cpp src/Parser/ParseVariable.h src/Parser/Game/ParseLevel.cpp @@ -223,6 +224,16 @@ set(SOURCE_FILES src/Parser/Game/ParsePlayerClass.h src/Parser/Game/ParseQuest.cpp src/Parser/Game/ParseQuest.h + src/Parser/Utils/ParseUtils.cpp + src/Parser/Utils/ParseUtils.h + src/Parser/Utils/ParseUtilsIdx.cpp + src/Parser/Utils/ParseUtilsIdx.h + src/Parser/Utils/ParseUtilsKey.cpp + src/Parser/Utils/ParseUtilsKey.h + src/Parser/Utils/ParseUtilsVal.cpp + src/Parser/Utils/ParseUtilsVal.h + src/Parser/Utils/ParseUtilsVar.cpp + src/Parser/Utils/ParseUtilsVar.h src/rapidjson/allocators.h src/rapidjson/document.h src/rapidjson/encodedstream.h diff --git a/DGEngine.vcxproj b/DGEngine.vcxproj index 9d0211e8..3a0298f2 100755 --- a/DGEngine.vcxproj +++ b/DGEngine.vcxproj @@ -24,6 +24,7 @@ + @@ -86,8 +87,12 @@ - + + + + + @@ -138,6 +143,7 @@ + @@ -149,6 +155,7 @@ + @@ -197,8 +204,12 @@ - + + + + + diff --git a/License Notes.txt b/License Notes.txt index 919f0190..5585d56d 100755 --- a/License Notes.txt +++ b/License Notes.txt @@ -48,7 +48,7 @@ SFML uses the zlib/png license. https://github.com/SFML/SFML Other SFML code snippets were taken from the wiki -and should hava a permissive license. +and should have a permissive license. Mapbox Variant uses the BSD license. diff --git a/android/jni/Android.mk b/android/jni/Android.mk index 3ca80a52..2f676c30 100755 --- a/android/jni/Android.mk +++ b/android/jni/Android.mk @@ -32,6 +32,8 @@ LOCAL_SRC_FILES += Dun.h LOCAL_SRC_FILES += Event.cpp LOCAL_SRC_FILES += Event.h LOCAL_SRC_FILES += EventManager.h +LOCAL_SRC_FILES += FadeInOut.cpp +LOCAL_SRC_FILES += FadeInOut.h LOCAL_SRC_FILES += FileUtils.cpp LOCAL_SRC_FILES += FileUtils.h LOCAL_SRC_FILES += Font2.h @@ -133,6 +135,7 @@ LOCAL_SRC_FILES += Game/LevelHelper.h LOCAL_SRC_FILES += Game/LevelMap.cpp LOCAL_SRC_FILES += Game/LevelMap.h LOCAL_SRC_FILES += Game/LevelObject.h +LOCAL_SRC_FILES += Game/MapCoord.h LOCAL_SRC_FILES += Game/PathFinder.cpp LOCAL_SRC_FILES += Game/PathFinder.h LOCAL_SRC_FILES += Game/Player.cpp @@ -209,8 +212,6 @@ LOCAL_SRC_FILES += Parser/ParseText.cpp LOCAL_SRC_FILES += Parser/ParseText.h LOCAL_SRC_FILES += Parser/ParseTexture.cpp LOCAL_SRC_FILES += Parser/ParseTexture.h -LOCAL_SRC_FILES += Parser/ParseUtils.cpp -LOCAL_SRC_FILES += Parser/ParseUtils.h LOCAL_SRC_FILES += Parser/ParseVariable.cpp LOCAL_SRC_FILES += Parser/ParseVariable.h LOCAL_SRC_FILES += Parser/Game/ParseLevel.cpp @@ -223,6 +224,16 @@ LOCAL_SRC_FILES += Parser/Game/ParsePlayerClass.cpp LOCAL_SRC_FILES += Parser/Game/ParsePlayerClass.h LOCAL_SRC_FILES += Parser/Game/ParseQuest.cpp LOCAL_SRC_FILES += Parser/Game/ParseQuest.h +LOCAL_SRC_FILES += Parser/Utils/ParseUtils.cpp +LOCAL_SRC_FILES += Parser/Utils/ParseUtils.h +LOCAL_SRC_FILES += Parser/Utils/ParseUtilsIdx.cpp +LOCAL_SRC_FILES += Parser/Utils/ParseUtilsIdx.h +LOCAL_SRC_FILES += Parser/Utils/ParseUtilsKey.cpp +LOCAL_SRC_FILES += Parser/Utils/ParseUtilsKey.h +LOCAL_SRC_FILES += Parser/Utils/ParseUtilsVal.cpp +LOCAL_SRC_FILES += Parser/Utils/ParseUtilsVal.h +LOCAL_SRC_FILES += Parser/Utils/ParseUtilsVar.cpp +LOCAL_SRC_FILES += Parser/Utils/ParseUtilsVar.h LOCAL_SRC_FILES += rapidjson/allocators.h LOCAL_SRC_FILES += rapidjson/document.h LOCAL_SRC_FILES += rapidjson/encodedstream.h diff --git a/gamefiles/level/l1/level.json b/gamefiles/level/l1/level.json index 00f0c7b8..5aa3f4ba 100755 --- a/gamefiles/level/l1/level.json +++ b/gamefiles/level/l1/level.json @@ -17,12 +17,11 @@ "minBlocks": 10, "sol": "levels/l1data/l1.sol" }, - "levelObject": { - "id": "town", - "name": "Up to town", - "mapPosition": [66, 26], - "texture": "empty", - "textureRect": [32, 32], - "action": { "name": "load", "file": ["level/town/load.json", "positionPlayer", "[25, 31]"] } + "action": { + "name": "if.equal", + "param1": "%beta%", + "param2": true, + "then": { "name": "load", "file": "level/l1/levelObjectsBeta.json" }, + "else": { "name": "load", "file": "level/l1/levelObjects.json" } } } \ No newline at end of file diff --git a/gamefiles/level/l1/levelObjects.json b/gamefiles/level/l1/levelObjects.json new file mode 100755 index 00000000..98e12a95 --- /dev/null +++ b/gamefiles/level/l1/levelObjects.json @@ -0,0 +1,10 @@ +{ + "levelObject": { + "id": "town", + "name": "Up to town", + "mapPosition": [66, 26], + "texture": "empty", + "textureRect": [32, 32], + "action": { "name": "load", "file": ["level/town/load.json", "positionPlayer", "[25, 31]"] } + } +} \ No newline at end of file diff --git a/gamefiles/level/l1/levelObjectsBeta.json b/gamefiles/level/l1/levelObjectsBeta.json new file mode 100755 index 00000000..cec690f8 --- /dev/null +++ b/gamefiles/level/l1/levelObjectsBeta.json @@ -0,0 +1,10 @@ +{ + "levelObject": { + "id": "town", + "name": "Up to town", + "mapPosition": [66, 27], + "texture": "empty", + "textureRect": [32, 32], + "action": { "name": "load", "file": ["level/town/load.json", "positionPlayer", "[25, 31]"] } + } +} \ No newline at end of file diff --git a/gamefiles/level/l1/map.json b/gamefiles/level/l1/map.json new file mode 100755 index 00000000..9fe14d33 --- /dev/null +++ b/gamefiles/level/l1/map.json @@ -0,0 +1,9 @@ +{ + "action": { + "name": "if.equal", + "param1": "%showMap%", + "param2": true, + "then": { "name": "drawable.visible", "id": "txtMapLabel", "visible": true }, + "else": { "name": "drawable.visible", "id": "txtMapLabel", "visible": false } + } +} \ No newline at end of file diff --git a/gamefiles/level/l10/map.json b/gamefiles/level/l10/map.json new file mode 100755 index 00000000..9fe14d33 --- /dev/null +++ b/gamefiles/level/l10/map.json @@ -0,0 +1,9 @@ +{ + "action": { + "name": "if.equal", + "param1": "%showMap%", + "param2": true, + "then": { "name": "drawable.visible", "id": "txtMapLabel", "visible": true }, + "else": { "name": "drawable.visible", "id": "txtMapLabel", "visible": false } + } +} \ No newline at end of file diff --git a/gamefiles/level/l15/map.json b/gamefiles/level/l15/map.json new file mode 100755 index 00000000..9fe14d33 --- /dev/null +++ b/gamefiles/level/l15/map.json @@ -0,0 +1,9 @@ +{ + "action": { + "name": "if.equal", + "param1": "%showMap%", + "param2": true, + "then": { "name": "drawable.visible", "id": "txtMapLabel", "visible": true }, + "else": { "name": "drawable.visible", "id": "txtMapLabel", "visible": false } + } +} \ No newline at end of file diff --git a/gamefiles/level/l5/map.json b/gamefiles/level/l5/map.json new file mode 100755 index 00000000..9fe14d33 --- /dev/null +++ b/gamefiles/level/l5/map.json @@ -0,0 +1,9 @@ +{ + "action": { + "name": "if.equal", + "param1": "%showMap%", + "param2": true, + "then": { "name": "drawable.visible", "id": "txtMapLabel", "visible": true }, + "else": { "name": "drawable.visible", "id": "txtMapLabel", "visible": false } + } +} \ No newline at end of file diff --git a/gamefiles/level/load.json b/gamefiles/level/load.json index cc9c71d9..9a7f4a81 100755 --- a/gamefiles/level/load.json +++ b/gamefiles/level/load.json @@ -1,30 +1,35 @@ { - "action": { - "name": "game.fadeOut", - "action": [ - { "name": "resource.popAll", "id": "currentLevel" }, - { "name": "load", "file": "loadingScreens/{1}.json" }, - { "name": "game.fadeIn", - "action": [ - { "name": "loadingScreen.setProgress", "progress": 35 }, - { "name": "resource.add", "id": "currentLevel" }, - { "name": "load", "file": "level/clearPlayers.json" }, - { "name": "level.clearObjects" }, - { "name": "load", "file": "level/{2}/level.json" }, - { "name": "loadingScreen.setProgress", "progress": 70 }, - { "name": "load", "file": "level/{2}/players.json" }, - { "name": "loadingScreen.setProgress", "progress": 90 }, - { "name": "load", "file": "level/{2}/sounds.json" }, - { "name": "loadingScreen.setProgress", "progress": 100 }, - { "name": "load", "file": "level/{2}/music.json" }, - { "name": "if.equal", - "param1": "{3}", - "param2": "positionPlayer", - "then": { "name": "load", "file": ["level/positionPlayer.json", "{4}"] } - }, - { "name": "load", "file": "level/playOrStopMusic.json" } - ] - } - ] - } + "action": [ + { "name": "level.pause", "pause": true }, + { + "name": "game.fadeOut", + "action": [ + { "name": "resource.popAll", "id": "currentLevel" }, + { "name": "load", "file": "loadingScreens/{1}.json" }, + { "name": "game.fadeIn", + "action": [ + { "name": "level.pause", "pause": false }, + { "name": "loadingScreen.setProgress", "progress": 35 }, + { "name": "resource.add", "id": "currentLevel" }, + { "name": "load", "file": "level/clearPlayers.json" }, + { "name": "level.clearObjects" }, + { "name": "load", "file": "level/{2}/level.json" }, + { "name": "loadingScreen.setProgress", "progress": 70 }, + { "name": "load", "file": "level/{2}/players.json" }, + { "name": "loadingScreen.setProgress", "progress": 90 }, + { "name": "load", "file": "level/{2}/sounds.json" }, + { "name": "loadingScreen.setProgress", "progress": 100 }, + { "name": "load", "file": "level/{2}/music.json" }, + { "name": "if.equal", + "param1": "{3}", + "param2": "positionPlayer", + "then": { "name": "load", "file": ["level/positionPlayer.json", "{4}"] } + }, + { "name": "load", "file": "level/playOrStopMusic.json" }, + { "name": "load", "file": ["level/setMapAction.json", "{2}"] } + ] + } + ] + } + ] } \ No newline at end of file diff --git a/gamefiles/level/loadBase.json b/gamefiles/level/loadBase.json index 764b3f6a..047e507b 100755 --- a/gamefiles/level/loadBase.json +++ b/gamefiles/level/loadBase.json @@ -12,6 +12,7 @@ { "name": "load", "file": "level/clearPlayers.json" }, { "name": "level.clearObjects" }, { "name": "loadingScreen.setProgress", "progress": 20 }, + { "name": "load", "file": "level/variables.json" }, { "name": "load", "file": "res/level/actions.json" }, { "name": "loadingScreen.setProgress", "progress": 25 }, { "name": "load", "file": "res/level/fonts.json" }, @@ -20,7 +21,7 @@ { "name": "loadingScreen.setProgress", "progress": 35 }, { "name": "load", "file": "level/loadBaseLevel.json" }, { "name": "loadingScreen.setProgress", "progress": 45}, - { "name": "load", "file": "{3}/loadPlayerCel.json" }, + { "name": "load", "file": "level/player/loadCel.json" }, { "name": "loadingScreen.setProgress", "progress": 55 }, { "name": "resource.add", "id": "currentLevel" }, { "name": "load", "file": "level/{2}/level.json" }, diff --git a/gamefiles/level/newGame.json b/gamefiles/level/newGame.json index c8687b4f..f2ac83e4 100755 --- a/gamefiles/level/newGame.json +++ b/gamefiles/level/newGame.json @@ -12,6 +12,7 @@ { "name": "loadingScreen.setProgress", "progress": 10 }, { "name": "resource.add", "id": "level", "ignorePrevious": true }, { "name": "loadingScreen.setProgress", "progress": 20 }, + { "name": "load", "file": "level/variables.json" }, { "name": "load", "file": "res/level/actions.json" }, { "name": "loadingScreen.setProgress", "progress": 25 }, { "name": "load", "file": "res/level/fonts.json" }, diff --git a/gamefiles/level/player/loadCel.json b/gamefiles/level/player/loadCel.json index 5556e2f7..56b51f72 100755 --- a/gamefiles/level/player/loadCel.json +++ b/gamefiles/level/player/loadCel.json @@ -1,3 +1,20 @@ { - "load": "{1}/loadPlayerCel.json" + "action": { + "name": "switch", + "param": "%charClass%", + "case": [ + { + "value": "Warrior", + "action": { "name": "load", "file": "level/player/loadWarriorCel.json" } + }, + { + "value": "Rogue", + "action": { "name": "load", "file": "level/player/loadRogueCel.json" } + }, + { + "value": "Sorceror", + "action": { "name": "load", "file": "level/player/loadSorcerorCel.json" } + } + ] + } } \ No newline at end of file diff --git a/gamefiles/level/player/loadRogueCelDefaults.json b/gamefiles/level/player/loadRogueCel.json similarity index 74% rename from gamefiles/level/player/loadRogueCelDefaults.json rename to gamefiles/level/player/loadRogueCel.json index fbf6da21..a359d6d2 100755 --- a/gamefiles/level/player/loadRogueCelDefaults.json +++ b/gamefiles/level/player/loadRogueCel.json @@ -1,15 +1,11 @@ { - "celFile": [ - { "id": "rlsas", "file": "plrgfx/rogue/rls/rlsas.cl2" }, - { "id": "rlsat", "file": "plrgfx/rogue/rls/rlsat.cl2" }, - { "id": "rlsaw", "file": "plrgfx/rogue/rls/rlsaw.cl2" }, - { "id": "rlsfm", "file": "plrgfx/rogue/rls/rlsfm.cl2" }, - { "id": "rlsht", "file": "plrgfx/rogue/rls/rlsht.cl2" }, - { "id": "rlslm", "file": "plrgfx/rogue/rls/rlslm.cl2" }, - { "id": "rlsqm", "file": "plrgfx/rogue/rls/rlsqm.cl2" }, - { "id": "rlsst", "file": "plrgfx/rogue/rls/rlsst.cl2" }, - { "id": "rlswl", "file": "plrgfx/rogue/rls/rlswl.cl2" } - ], + "action": { + "name": "if.equal", + "param1": "%beta%", + "param2": true, + "then": { "name": "load", "file": "level/player/loadRogueCelFilesBeta.json" }, + "else": { "name": "load", "file": "level/player/loadRogueCelFiles.json" } + }, "celTexture": [ { "id": "rls", diff --git a/gamefiles/level/player/loadRogueCelFiles.json b/gamefiles/level/player/loadRogueCelFiles.json new file mode 100755 index 00000000..0a98f918 --- /dev/null +++ b/gamefiles/level/player/loadRogueCelFiles.json @@ -0,0 +1,13 @@ +{ + "celFile": [ + { "id": "rlsas", "file": "plrgfx/rogue/rls/rlsas.cl2" }, + { "id": "rlsat", "file": "plrgfx/rogue/rls/rlsat.cl2" }, + { "id": "rlsaw", "file": "plrgfx/rogue/rls/rlsaw.cl2" }, + { "id": "rlsfm", "file": "plrgfx/rogue/rls/rlsfm.cl2" }, + { "id": "rlsht", "file": "plrgfx/rogue/rls/rlsht.cl2" }, + { "id": "rlslm", "file": "plrgfx/rogue/rls/rlslm.cl2" }, + { "id": "rlsqm", "file": "plrgfx/rogue/rls/rlsqm.cl2" }, + { "id": "rlsst", "file": "plrgfx/rogue/rls/rlsst.cl2" }, + { "id": "rlswl", "file": "plrgfx/rogue/rls/rlswl.cl2" } + ] +} \ No newline at end of file diff --git a/gamefiles/level/player/loadRogueCelFilesBeta.json b/gamefiles/level/player/loadRogueCelFilesBeta.json new file mode 100755 index 00000000..909b70df --- /dev/null +++ b/gamefiles/level/player/loadRogueCelFilesBeta.json @@ -0,0 +1,13 @@ +{ + "celFile": [ + { "id": "rlsas", "file": "plrgfx/rogue/rls/rlsas.cel" }, + { "id": "rlsat", "file": "plrgfx/rogue/rls/rlsat.cel" }, + { "id": "rlsaw", "file": "plrgfx/rogue/rls/rlsaw.cel" }, + { "id": "rlsfm", "file": "plrgfx/rogue/rls/rlsfm.cel" }, + { "id": "rlsht", "file": "plrgfx/rogue/rls/rlsht.cel" }, + { "id": "rlslm", "file": "plrgfx/rogue/rls/rlslm.cel" }, + { "id": "rlsqm", "file": "plrgfx/rogue/rls/rlsqm.cel" }, + { "id": "rlsst", "file": "plrgfx/rogue/rls/rlsst.cel" }, + { "id": "rlswl", "file": "plrgfx/rogue/rls/rlswl.cel" } + ] +} \ No newline at end of file diff --git a/gamefiles/level/player/loadSorcerorCelDefaults.json b/gamefiles/level/player/loadSorcerorCel.json similarity index 73% rename from gamefiles/level/player/loadSorcerorCelDefaults.json rename to gamefiles/level/player/loadSorcerorCel.json index 8a1432c6..14a4690e 100755 --- a/gamefiles/level/player/loadSorcerorCelDefaults.json +++ b/gamefiles/level/player/loadSorcerorCel.json @@ -1,15 +1,11 @@ { - "celFile": [ - { "id": "slsas", "file": "plrgfx/sorceror/sls/slsas.cl2" }, - { "id": "slsat", "file": "plrgfx/sorceror/sls/slsat.cl2" }, - { "id": "slsaw", "file": "plrgfx/sorceror/sls/slsaw.cl2" }, - { "id": "slsfm", "file": "plrgfx/sorceror/sls/slsfm.cl2" }, - { "id": "slsht", "file": "plrgfx/sorceror/sls/slsht.cl2" }, - { "id": "slslm", "file": "plrgfx/sorceror/sls/slslm.cl2" }, - { "id": "slsqm", "file": "plrgfx/sorceror/sls/slsqm.cl2" }, - { "id": "slsst", "file": "plrgfx/sorceror/sls/slsst.cl2" }, - { "id": "slswl", "file": "plrgfx/sorceror/sls/slswl.cl2" } - ], + "action": { + "name": "if.equal", + "param1": "%beta%", + "param2": true, + "then": { "name": "load", "file": "level/player/loadSorcerorCelFilesBeta.json" }, + "else": { "name": "load", "file": "level/player/loadSorcerorCelFiles.json" } + }, "celTexture": [ { "id": "sls", diff --git a/gamefiles/level/player/loadSorcerorCelFiles.json b/gamefiles/level/player/loadSorcerorCelFiles.json new file mode 100755 index 00000000..e1e104f6 --- /dev/null +++ b/gamefiles/level/player/loadSorcerorCelFiles.json @@ -0,0 +1,13 @@ +{ + "celFile": [ + { "id": "slsas", "file": "plrgfx/sorceror/sls/slsas.cl2" }, + { "id": "slsat", "file": "plrgfx/sorceror/sls/slsat.cl2" }, + { "id": "slsaw", "file": "plrgfx/sorceror/sls/slsaw.cl2" }, + { "id": "slsfm", "file": "plrgfx/sorceror/sls/slsfm.cl2" }, + { "id": "slsht", "file": "plrgfx/sorceror/sls/slsht.cl2" }, + { "id": "slslm", "file": "plrgfx/sorceror/sls/slslm.cl2" }, + { "id": "slsqm", "file": "plrgfx/sorceror/sls/slsqm.cl2" }, + { "id": "slsst", "file": "plrgfx/sorceror/sls/slsst.cl2" }, + { "id": "slswl", "file": "plrgfx/sorceror/sls/slswl.cl2" } + ] +} \ No newline at end of file diff --git a/gamefiles/level/player/loadSorcerorCelFilesBeta.json b/gamefiles/level/player/loadSorcerorCelFilesBeta.json new file mode 100755 index 00000000..6d2393d3 --- /dev/null +++ b/gamefiles/level/player/loadSorcerorCelFilesBeta.json @@ -0,0 +1,13 @@ +{ + "celFile": [ + { "id": "slsas", "file": "plrgfx/sorceror/sls/slsas.cel" }, + { "id": "slsat", "file": "plrgfx/sorceror/sls/slsat.cel" }, + { "id": "slsaw", "file": "plrgfx/sorceror/sls/slsaw.cel" }, + { "id": "slsfm", "file": "plrgfx/sorceror/sls/slsfm.cel" }, + { "id": "slsht", "file": "plrgfx/sorceror/sls/slsht.cel" }, + { "id": "slslm", "file": "plrgfx/sorceror/sls/slslm.cel" }, + { "id": "slsqm", "file": "plrgfx/sorceror/sls/slsqm.cel" }, + { "id": "slsst", "file": "plrgfx/sorceror/sls/slsst.cel" }, + { "id": "slswl", "file": "plrgfx/sorceror/sls/slswl.cel" } + ] +} \ No newline at end of file diff --git a/gamefiles/level/player/loadWarriorCelDefaults.json b/gamefiles/level/player/loadWarriorCel.json similarity index 74% rename from gamefiles/level/player/loadWarriorCelDefaults.json rename to gamefiles/level/player/loadWarriorCel.json index 3ef8dcad..5917201b 100755 --- a/gamefiles/level/player/loadWarriorCelDefaults.json +++ b/gamefiles/level/player/loadWarriorCel.json @@ -1,15 +1,11 @@ { - "celFile": [ - { "id": "wlsas", "file": "plrgfx/warrior/wls/wlsas.cl2" }, - { "id": "wlsat", "file": "plrgfx/warrior/wls/wlsat.cl2" }, - { "id": "wlsaw", "file": "plrgfx/warrior/wls/wlsaw.cl2" }, - { "id": "wlsfm", "file": "plrgfx/warrior/wls/wlsfm.cl2" }, - { "id": "wlsht", "file": "plrgfx/warrior/wls/wlsht.cl2" }, - { "id": "wlslm", "file": "plrgfx/warrior/wls/wlslm.cl2" }, - { "id": "wlsqm", "file": "plrgfx/warrior/wls/wlsqm.cl2" }, - { "id": "wlsst", "file": "plrgfx/warrior/wls/wlsst.cl2" }, - { "id": "wlswl", "file": "plrgfx/warrior/wls/wlswl.cl2" } - ], + "action": { + "name": "if.equal", + "param1": "%beta%", + "param2": true, + "then": { "name": "load", "file": "level/player/loadWarriorCelFilesBeta.json" }, + "else": { "name": "load", "file": "level/player/loadWarriorCelFiles.json" } + }, "celTexture": [ { "id": "wls", diff --git a/gamefiles/level/player/loadWarriorCelFiles.json b/gamefiles/level/player/loadWarriorCelFiles.json new file mode 100755 index 00000000..09eba325 --- /dev/null +++ b/gamefiles/level/player/loadWarriorCelFiles.json @@ -0,0 +1,13 @@ +{ + "celFile": [ + { "id": "wlsas", "file": "plrgfx/warrior/wls/wlsas.cl2" }, + { "id": "wlsat", "file": "plrgfx/warrior/wls/wlsat.cl2" }, + { "id": "wlsaw", "file": "plrgfx/warrior/wls/wlsaw.cl2" }, + { "id": "wlsfm", "file": "plrgfx/warrior/wls/wlsfm.cl2" }, + { "id": "wlsht", "file": "plrgfx/warrior/wls/wlsht.cl2" }, + { "id": "wlslm", "file": "plrgfx/warrior/wls/wlslm.cl2" }, + { "id": "wlsqm", "file": "plrgfx/warrior/wls/wlsqm.cl2" }, + { "id": "wlsst", "file": "plrgfx/warrior/wls/wlsst.cl2" }, + { "id": "wlswl", "file": "plrgfx/warrior/wls/wlswl.cl2" } + ] +} \ No newline at end of file diff --git a/gamefiles/level/player/loadWarriorCelFilesBeta.json b/gamefiles/level/player/loadWarriorCelFilesBeta.json new file mode 100755 index 00000000..74fcc786 --- /dev/null +++ b/gamefiles/level/player/loadWarriorCelFilesBeta.json @@ -0,0 +1,13 @@ +{ + "celFile": [ + { "id": "wlsas", "file": "plrgfx/warrior/wls/wlsas.cel" }, + { "id": "wlsat", "file": "plrgfx/warrior/wls/wlsat.cel" }, + { "id": "wlsaw", "file": "plrgfx/warrior/wls/wlsaw.cel" }, + { "id": "wlsfm", "file": "plrgfx/warrior/wls/wlsfm.cel" }, + { "id": "wlsht", "file": "plrgfx/warrior/wls/wlsht.cel" }, + { "id": "wlslm", "file": "plrgfx/warrior/wls/wlslm.cel" }, + { "id": "wlsqm", "file": "plrgfx/warrior/wls/wlsqm.cel" }, + { "id": "wlsst", "file": "plrgfx/warrior/wls/wlsst.cel" }, + { "id": "wlswl", "file": "plrgfx/warrior/wls/wlswl.cel" } + ] +} \ No newline at end of file diff --git a/gamefiles/level/player/save.json b/gamefiles/level/player/save.json index abe4703d..83e9941a 100755 --- a/gamefiles/level/player/save.json +++ b/gamefiles/level/player/save.json @@ -1,16 +1,8 @@ { - "action": [ - { - "name": "file.copy", - "dir": "{1}", - "file": ["level/player/load{2}CelDefaults.json", "{1}"], - "writeFile": "loadPlayerCel.json" - }, - { - "name": "file.copy", - "dir": "{1}", - "file": ["level/player/load{2}Defaults.json", "{1}"], - "writeFile": "loadPlayer.json" - } - ] + "action": { + "name": "file.copy", + "dir": "{1}", + "file": ["level/player/load{2}Defaults.json", "{1}"], + "writeFile": "loadPlayer.json" + } } \ No newline at end of file diff --git a/gamefiles/level/quests.json b/gamefiles/level/quests.json index 123e41f9..0f119c1c 100755 --- a/gamefiles/level/quests.json +++ b/gamefiles/level/quests.json @@ -1,6 +1,68 @@ { - "quest": { - "id": "butcher", - "name": "The Butcher" - } + "quest": [ + { + "id": "anvilOfFury", + "name": "Anvil of Fury" + }, + { + "id": "archbishopLazarus", + "name": "Archbishop Lazarus" + }, + { + "id": "arkainesValor", + "name": "Arkaine's Valor" + }, + { + "id": "blackMushroom", + "name": "Black Mushroom" + }, + { + "id": "chamberOfBone", + "name": "The Chamber of Bone" + }, + { + "id": "diablo", + "name": "Diablo" + }, + { + "id": "gharbadTheWeak", + "name": "Gharbad the Weak" + }, + { + "id": "hallsOfTheBlind", + "name": "Halls of the Blind" + }, + { + "id": "lachdanan", + "name": "Lachdanan" + }, + { + "id": "magicRock", + "name": "The Magic Rock" + }, + { + "id": "ogdensSign", + "name": "Ogden's Sign" + }, + { + "id": "poisonedWater", + "name": "Poisoned Water Supply" + }, + { + "id": "skeletonKing", + "name": "The Curse of King Leoric" + }, + { + "id": "theButcher", + "name": "The Butcher" + }, + { + "id": "warlordOfBlood", + "name": "Warlord of Blood" + }, + { + "id": "zharTheMad", + "name": "Zhar the Mad" + } + ] } \ No newline at end of file diff --git a/gamefiles/level/setMapAction.json b/gamefiles/level/setMapAction.json index 28c3f59f..c99ccbd0 100755 --- a/gamefiles/level/setMapAction.json +++ b/gamefiles/level/setMapAction.json @@ -2,7 +2,32 @@ "action": { "name": "if.fileExists", "param1": "level/{1}/map.json", - "then": { "name": "button.setClickAction", "id": "map", "action": { "name": "load", "file": "level/{1}/map.json" } }, - "else": { "name": "button.setClickAction", "id": "map", "action": { "name": "load", "file": "ui/level/noMap.json" } } + "then": [ + { "name": "button.setClickAction", "id": "map", + "action": [ + { + "name": "if.equal", + "param1": "%showMap%", + "param2": true, + "then": [ + { "name": "variable.set", "key": "showMap", "val": false }, + { "name": "drawable.visible", "id": "txtMapLabel", "visible": true } + ], + "else": [ + { "name": "variable.set", "key": "showMap", "val": true }, + { "name": "drawable.visible", "id": "txtMapLabel", "visible": false } + ] + }, + { + "name": "load", "file": "level/{1}/map.json" + } + ] + }, + { "name": "load", "file": "level/{1}/map.json" } + ], + "else": [ + { "name": "button.setClickAction", "id": "map", "action": { "name": "load", "file": "ui/level/noMap.json" } }, + { "name": "drawable.visible", "id": "txtMapLabel", "visible": false } + ] } } \ No newline at end of file diff --git a/gamefiles/level/town/level.json b/gamefiles/level/town/level.json index dab7a87f..81e4e10d 100755 --- a/gamefiles/level/town/level.json +++ b/gamefiles/level/town/level.json @@ -16,38 +16,11 @@ "minBlocks": 16, "sol": "levels/towndata/town.sol" }, - "levelObject": [ - { - "id": "l1", - "name": "Down to dungeon", - "mapPosition": [25, 29], - "texture": "empty", - "textureRect": [32, 32], - "action": { "name": "load", "file": ["level/l1/load.json", "positionPlayer", "[67, 28]"] } - }, - { - "id": "l5", - "name": "Down to catacombs", - "mapPosition": [49, 21], - "texture": "empty", - "textureRect": [32, 32], - "action": { "name": "load", "file": ["level/l5/load.json", "positionPlayer", "[57, 22]"] } - }, - { - "id": "l10", - "name": "Down to caves", - "mapPosition": [17, 69], - "texture": "empty", - "textureRect": [32, 32], - "action": { "name": "load", "file": ["level/l10/load.json", "positionPlayer", "[15, 67]"] } - }, - { - "id": "l15", - "name": "Down to hell", - "mapPosition": [41, 80], - "texture": "empty", - "textureRect": [32, 32], - "action": { "name": "load", "file": ["level/l15/load.json", "positionPlayer", "[7, 7]"] } - } - ] + "action": { + "name": "if.equal", + "param1": "%beta%", + "param2": true, + "then": { "name": "load", "file": "level/town/levelObjectsBeta.json" }, + "else": { "name": "load", "file": "level/town/levelObjects.json" } + } } \ No newline at end of file diff --git a/gamefiles/level/town/levelObjects.json b/gamefiles/level/town/levelObjects.json new file mode 100755 index 00000000..624b2801 --- /dev/null +++ b/gamefiles/level/town/levelObjects.json @@ -0,0 +1,36 @@ +{ + "levelObject": [ + { + "id": "l1", + "name": "Down to dungeon", + "mapPosition": [25, 29], + "texture": "empty", + "textureRect": [32, 32], + "action": { "name": "load", "file": ["level/l1/load.json", "positionPlayer", "[67, 28]"] } + }, + { + "id": "l5", + "name": "Down to catacombs", + "mapPosition": [49, 21], + "texture": "empty", + "textureRect": [32, 32], + "action": { "name": "load", "file": ["level/l5/load.json", "positionPlayer", "[57, 22]"] } + }, + { + "id": "l10", + "name": "Down to caves", + "mapPosition": [17, 69], + "texture": "empty", + "textureRect": [32, 32], + "action": { "name": "load", "file": ["level/l10/load.json", "positionPlayer", "[15, 67]"] } + }, + { + "id": "l15", + "name": "Down to hell", + "mapPosition": [41, 80], + "texture": "empty", + "textureRect": [32, 32], + "action": { "name": "load", "file": ["level/l15/load.json", "positionPlayer", "[7, 7]"] } + } + ] +} \ No newline at end of file diff --git a/gamefiles/level/town/levelObjectsBeta.json b/gamefiles/level/town/levelObjectsBeta.json new file mode 100755 index 00000000..6337a25c --- /dev/null +++ b/gamefiles/level/town/levelObjectsBeta.json @@ -0,0 +1,20 @@ +{ + "levelObject": [ + { + "id": "l1", + "name": "Down to dungeon", + "mapPosition": [25, 29], + "texture": "empty", + "textureRect": [32, 32], + "action": { "name": "load", "file": ["level/l1/load.json", "positionPlayer", "[67, 28]"] } + }, + { + "id": "l5", + "name": "Down to catacombs", + "mapPosition": [49, 21], + "texture": "empty", + "textureRect": [32, 32], + "action": { "name": "load", "file": ["level/l5/load.json", "positionPlayer", "[57, 22]"] } + } + ] +} \ No newline at end of file diff --git a/gamefiles/level/town/players.json b/gamefiles/level/town/players.json index f68195cd..fb62460d 100755 --- a/gamefiles/level/town/players.json +++ b/gamefiles/level/town/players.json @@ -1,192 +1,9 @@ { - "celTexture": [ - { - "id": "cow", - "file": "towners/animals/cow.cel", - "palette": "town" - }, - { - "id": "strytell", - "file": "towners/strytell/strytell.cel", - "palette": "town" - }, - { - "id": "healer", - "file": "towners/healer/healer.cel", - "palette": "town" - }, - { - "id": "twnfn", - "file": "towners/twnf/twnfn.cel", - "palette": "town" - }, - { - "id": "smithn", - "file": "towners/smith/smithn.cel", - "palette": "town" - }, - { - "id": "pegkid1", - "file": "towners/townboy/pegkid1.cel", - "palette": "town" - }, - { - "id": "twndrunk", - "file": "towners/drunk/twndrunk.cel", - "palette": "town" - }, - { - "id": "witch", - "file": "towners/townwmn1/witch.cel", - "palette": "town" - }, - { - "id": "wmnn", - "file": "towners/townwmn1/wmnn.cel", - "palette": "town" - } - ], - "playerClass": [ - { - "id": "healer", - "type": "Human", - "celTextures": { "palette": 0, "name": "healer" } - }, - { - "id": "strytell", - "type": "Human", - "celTextures": { "palette": 0, "name": "strytell" } - }, - { - "id": "smith", - "type": "Human", - "celTextures": { "palette": 0, "name": "smithn" } - }, - { - "id": "twnf", - "type": "Human", - "celTextures": { "palette": 0, "name": "twnfn" } - }, - { - "id": "twndrunk", - "type": "Human", - "celTextures": { "palette": 0, "name": "twndrunk" } - }, - { - "id": "gillian", - "type": "Human", - "celTextures": { "palette": 0, "name": "wmnn" } - }, - { - "id": "townboy", - "type": "Human", - "celTextures": { "palette": 0, "name": "pegkid1" } - }, - { - "id": "witch", - "type": "Human", - "celTextures": { "palette": 0, "name": "witch" } - }, - { - "id": "cow", - "name": "Cow", - "type": "Animal", - "description": "Cow", - "celTextures": { "palette": 0, "name": "cow" } - } - ], - "player": [ - { - "id": "healer", - "class": "healer", - "name": "Pepin the healer", - "mapPosition": [55, 79], - "action": { "name": "load", "file": "towners/healer/panel.json" } - }, - { - "id": "strytell", - "class": "strytell", - "name": "Cain the elder", - "mapPosition": [62, 71], - "action": { "name": "load", "file": "towners/strytell/panel.json" } - }, - { - "id": "smith", - "class": "smith", - "name": "Griswold the blacksmith", - "mapPosition": [62, 63], - "action": { "name": "load", "file": "towners/smith/panel.json" } - }, - { - "id": "twnf", - "class": "twnf", - "name": "Ogden the tavern owner", - "mapPosition": [55, 62], - "action": { "name": "load", "file": "towners/twnf/panel.json" } - }, - { - "id": "twndrunk", - "class": "twndrunk", - "name": "Farnham the drunk", - "mapPosition": [71, 84], - "action": { "name": "load", "file": "towners/drunk/panel.json" } - }, - { - "id": "gillian", - "class": "gillian", - "name": "Gillian the barmaid", - "mapPosition": [43, 66], - "action": { "name": "load", "file": "towners/gillian/panel.json" } - }, - { - "id": "townboy", - "class": "townboy", - "name": "Wirt the peg-legged boy", - "mapPosition": [11, 53], - "action": { "name": "load", "file": "towners/townboy/panel.json" } - }, - { - "id": "witch", - "class": "witch", - "name": "Adria the witch", - "mapPosition": [80, 20], - "action": { "name": "load", "file": "towners/adria/panel.json" } - }, - { - "id": "cow1", - "class": "cow", - "name": "Cow", - "direction": "BackLeft", - "mapPosition": [55, 13], - "action": { - "name": "random", - "action1": { "name": "sound.loadPlay", "file": "sfx/Towners/Cow1.wav" }, - "action2": { "name": "sound.loadPlay", "file": "sfx/Towners/Cow2.wav" } - } - }, - { - "id": "cow2", - "class": "cow", - "name": "Cow", - "direction": "FrontLeft", - "mapPosition": [57, 15], - "action": { - "name": "random", - "action1": { "name": "sound.loadPlay", "file": "sfx/Towners/Cow1.wav" }, - "action2": { "name": "sound.loadPlay", "file": "sfx/Towners/Cow2.wav" } - } - }, - { - "id": "cow3", - "class": "cow", - "name": "Cow", - "direction": "Back", - "mapPosition": [58, 19], - "action": { - "name": "random", - "action1": { "name": "sound.loadPlay", "file": "sfx/Towners/Cow1.wav" }, - "action2": { "name": "sound.loadPlay", "file": "sfx/Towners/Cow2.wav" } - } - } - ] + "action": { + "name": "if.equal", + "param1": "%beta%", + "param2": true, + "then": { "name": "load", "file": "level/town/players2Beta.json" }, + "else": { "name": "load", "file": "level/town/players2.json" } + } } \ No newline at end of file diff --git a/gamefiles/level/town/players2.json b/gamefiles/level/town/players2.json new file mode 100755 index 00000000..f18a26f8 --- /dev/null +++ b/gamefiles/level/town/players2.json @@ -0,0 +1,191 @@ +{ + "celTexture": [ + { + "file": "towners/animals/cow.cel", + "palette": "town" + }, + { + "file": "towners/strytell/strytell.cel", + "palette": "town" + }, + { + "file": "towners/healer/healer.cel", + "palette": "town" + }, + { + "file": "towners/twnf/twnfn.cel", + "palette": "town" + }, + { + "file": "towners/smith/smithn.cel", + "palette": "town" + }, + { + "file": "towners/townboy/pegkid1.cel", + "palette": "town" + }, + { + "file": "towners/drunk/twndrunk.cel", + "palette": "town" + }, + { + "file": "towners/townwmn1/witch.cel", + "palette": "town" + }, + { + "file": "towners/townwmn1/wmnn.cel", + "palette": "town" + } + ], + "playerClass": [ + { + "id": "healer", + "name": "Healer", + "type": "Human", + "celTextures": { "palette": 0, "name": "healer" } + }, + { + "id": "storyTeller", + "name": "Story teller", + "type": "Human", + "celTextures": { "palette": 0, "name": "strytell" } + }, + { + "id": "blacksmith", + "name": "Blacksmith", + "type": "Human", + "celTextures": { "palette": 0, "name": "smithn" } + }, + { + "id": "tavernOwner", + "name": "Tavern owner", + "type": "Human", + "celTextures": { "palette": 0, "name": "twnfn" } + }, + { + "id": "drunk", + "name": "Drunk", + "type": "Human", + "celTextures": { "palette": 0, "name": "twndrunk" } + }, + { + "id": "barmaid", + "name": "Barmaid", + "type": "Human", + "celTextures": { "palette": 0, "name": "wmnn" } + }, + { + "id": "boy", + "name": "Boy", + "type": "Human", + "celTextures": { "palette": 0, "name": "pegkid1" } + }, + { + "id": "witch", + "name": "Witch", + "type": "Human", + "celTextures": { "palette": 0, "name": "witch" } + }, + { + "id": "cow", + "name": "Cow", + "type": "Animal", + "description": "Cow", + "celTextures": { "palette": 0, "name": "cow" } + } + ], + "player": [ + { + "id": "pepin", + "class": "healer", + "name": "Pepin the healer", + "mapPosition": [55, 79], + "action": { "name": "load", "file": "towners/pepin/panel.json" } + }, + { + "id": "cain", + "class": "storyTeller", + "name": "Cain the elder", + "mapPosition": [62, 71], + "action": { "name": "load", "file": "towners/cain/panel.json" } + }, + { + "id": "griswold", + "class": "blacksmith", + "name": "Griswold the blacksmith", + "mapPosition": [62, 64], + "action": { "name": "load", "file": "towners/griswold/panel.json" } + }, + { + "id": "ogden", + "class": "tavernOwner", + "name": "Ogden the tavern owner", + "mapPosition": [55, 62], + "action": { "name": "load", "file": "towners/ogden/panel.json" } + }, + { + "id": "farnham", + "class": "drunk", + "name": "Farnham the drunk", + "mapPosition": [71, 84], + "action": { "name": "load", "file": "towners/farnham/panel.json" } + }, + { + "id": "gillian", + "class": "barmaid", + "name": "Gillian the barmaid", + "mapPosition": [43, 66], + "action": { "name": "load", "file": "towners/gillian/panel.json" } + }, + { + "id": "wirt", + "class": "boy", + "name": "Wirt the peg-legged boy", + "mapPosition": [11, 53], + "action": { "name": "load", "file": "towners/wirt/panel.json" } + }, + { + "id": "adria", + "class": "witch", + "name": "Adria the witch", + "mapPosition": [80, 20], + "action": { "name": "load", "file": "towners/adria/panel.json" } + }, + { + "id": "cow1", + "class": "cow", + "name": "Cow", + "direction": "BackLeft", + "mapPosition": [55, 13], + "action": { + "name": "random", + "action1": { "name": "sound.loadPlay", "file": "sfx/Towners/Cow1.wav" }, + "action2": { "name": "sound.loadPlay", "file": "sfx/Towners/Cow2.wav" } + } + }, + { + "id": "cow2", + "class": "cow", + "name": "Cow", + "direction": "FrontLeft", + "mapPosition": [57, 15], + "action": { + "name": "random", + "action1": { "name": "sound.loadPlay", "file": "sfx/Towners/Cow1.wav" }, + "action2": { "name": "sound.loadPlay", "file": "sfx/Towners/Cow2.wav" } + } + }, + { + "id": "cow3", + "class": "cow", + "name": "Cow", + "direction": "Back", + "mapPosition": [58, 19], + "action": { + "name": "random", + "action1": { "name": "sound.loadPlay", "file": "sfx/Towners/Cow1.wav" }, + "action2": { "name": "sound.loadPlay", "file": "sfx/Towners/Cow2.wav" } + } + } + ] +} \ No newline at end of file diff --git a/gamefiles/level/town/players2Beta.json b/gamefiles/level/town/players2Beta.json new file mode 100755 index 00000000..1b00f09e --- /dev/null +++ b/gamefiles/level/town/players2Beta.json @@ -0,0 +1,193 @@ +{ + "celTexture": [ + { + "file": "towners/animals/cow.cel", + "palette": "town" + }, + { + "file": "towners/strytell/strytell.cel", + "palette": "town" + }, + { + "file": "towners/healer/healer.cel", + "palette": "town" + }, + { + "file": "towners/twnf/twnfn.cel", + "palette": "town" + }, + { + "file": "towners/smith/smithn.cel", + "palette": "town" + }, + { + "file": "towners/townboy/pegkid1.cel", + "palette": "town" + }, + { + "file": "towners/drunk/twndrunk.cel", + "palette": "town" + }, + { + "file": "towners/townwmn1/wmnn.cel", + "palette": "town" + }, + { + "id": "witch", + "fromId": "wmnn" + } + ], + "playerClass": [ + { + "id": "healer", + "name": "Healer", + "type": "Human", + "celTextures": { "palette": 0, "name": "healer" } + }, + { + "id": "storyTeller", + "name": "Story teller", + "type": "Human", + "celTextures": { "palette": 0, "name": "strytell" } + }, + { + "id": "blacksmith", + "name": "Blacksmith", + "type": "Human", + "celTextures": { "palette": 0, "name": "smithn" } + }, + { + "id": "tavernOwner", + "name": "Tavern owner", + "type": "Human", + "celTextures": { "palette": 0, "name": "twnfn" } + }, + { + "id": "drunk", + "name": "Drunk", + "type": "Human", + "celTextures": { "palette": 0, "name": "twndrunk" } + }, + { + "id": "barmaid", + "name": "Barmaid", + "type": "Human", + "celTextures": { "palette": 0, "name": "wmnn" } + }, + { + "id": "boy", + "name": "Boy", + "type": "Human", + "celTextures": { "palette": 0, "name": "pegkid1" } + }, + { + "id": "witch", + "name": "Witch", + "type": "Human", + "celTextures": { "palette": 0, "name": "witch" } + }, + { + "id": "cow", + "name": "Cow", + "type": "Animal", + "description": "Cow", + "celTextures": { "palette": 0, "name": "cow" } + } + ], + "player": [ + { + "id": "pepin", + "class": "healer", + "name": "Pepin the healer", + "mapPosition": [55, 79], + "action": { "name": "load", "file": "towners/pepin/panel.json" } + }, + { + "id": "cain", + "class": "storyTeller", + "name": "Cain the elder", + "mapPosition": [62, 71], + "action": { "name": "load", "file": "towners/cain/panel.json" } + }, + { + "id": "griswold", + "class": "blacksmith", + "name": "Griswold the blacksmith", + "direction": "FrontLeft", + "mapPosition": [62, 64], + "action": { "name": "load", "file": "towners/griswold/panel.json" } + }, + { + "id": "ogden", + "class": "tavernOwner", + "name": "Ogden the tavern owner", + "direction": "Front", + "mapPosition": [55, 62], + "action": { "name": "load", "file": "towners/ogden/panel.json" } + }, + { + "id": "farnham", + "class": "drunk", + "name": "Farnham the drunk", + "mapPosition": [71, 84], + "action": { "name": "load", "file": "towners/farnham/panel.json" } + }, + { + "id": "gillian", + "class": "barmaid", + "name": "Gillian the barmaid", + "mapPosition": [43, 66], + "action": { "name": "load", "file": "towners/gillian/panel.json" } + }, + { + "id": "wirt", + "class": "boy", + "name": "Wirt the peg-legged boy", + "mapPosition": [11, 53], + "action": { "name": "load", "file": "towners/wirt/panel.json" } + }, + { + "id": "adria", + "class": "witch", + "name": "Adria the witch", + "mapPosition": [80, 20], + "action": { "name": "load", "file": "towners/adria/panel.json" } + }, + { + "id": "cow1", + "class": "cow", + "name": "Cow", + "direction": "BackLeft", + "mapPosition": [55, 13], + "action": { + "name": "random", + "action1": { "name": "sound.loadPlay", "file": "sfx/Towners/Cow1.wav" }, + "action2": { "name": "sound.loadPlay", "file": "sfx/Towners/Cow2.wav" } + } + }, + { + "id": "cow2", + "class": "cow", + "name": "Cow", + "direction": "FrontLeft", + "mapPosition": [57, 15], + "action": { + "name": "random", + "action1": { "name": "sound.loadPlay", "file": "sfx/Towners/Cow1.wav" }, + "action2": { "name": "sound.loadPlay", "file": "sfx/Towners/Cow2.wav" } + } + }, + { + "id": "cow3", + "class": "cow", + "name": "Cow", + "direction": "Back", + "mapPosition": [58, 19], + "action": { + "name": "random", + "action1": { "name": "sound.loadPlay", "file": "sfx/Towners/Cow1.wav" }, + "action2": { "name": "sound.loadPlay", "file": "sfx/Towners/Cow2.wav" } + } + } + ] +} \ No newline at end of file diff --git a/gamefiles/level/town/sounds.json b/gamefiles/level/town/sounds.json index 698b456a..2897ab21 100755 --- a/gamefiles/level/town/sounds.json +++ b/gamefiles/level/town/sounds.json @@ -1,40 +1,12 @@ { "sound": [ - { - "id": "bmaid31", - "file": "sfx/Towners/Bmaid31.wav" - }, - { - "id": "bsmith44", - "file": "sfx/Towners/Bsmith44.wav" - }, - { - "id": "drunk27", - "file": "sfx/Towners/Drunk27.wav" - }, - { - "id": "bsmith44", - "file": "sfx/Towners/Bsmith44.wav" - }, - { - "id": "healer37", - "file": "sfx/Towners/Healer37.wav" - }, - { - "id": "pegboy32", - "file": "sfx/Towners/Pegboy32.wav" - }, - { - "id": "storyt25", - "file": "sfx/Towners/storyt25.wav" - }, - { - "id": "tavown36", - "file": "sfx/Towners/tavown36.wav" - }, - { - "id": "witch38", - "file": "sfx/Towners/Witch38.wav" - } + { "id": "bmaidWelcome", "file": "sfx/Towners/Bmaid31.wav" }, + { "id": "bsmithWelcome", "file": "sfx/Towners/Bsmith44.wav" }, + { "id": "drunkWelcome", "file": "sfx/Towners/Drunk27.wav" }, + { "id": "healerWelcome", "file": "sfx/Towners/Healer37.wav" }, + { "id": "pegboyWelcome", "file": "sfx/Towners/Pegboy32.wav" }, + { "id": "storytWelcome", "file": "sfx/Towners/storyt25.wav" }, + { "id": "tavownWelcome", "file": "sfx/Towners/tavown36.wav" }, + { "id": "witchWelcome", "file": "sfx/Towners/Witch38.wav" } ] } \ No newline at end of file diff --git a/gamefiles/level/variables.json b/gamefiles/level/variables.json new file mode 100755 index 00000000..67d848e2 --- /dev/null +++ b/gamefiles/level/variables.json @@ -0,0 +1,8 @@ +{ + "variable": [ + { "showMap": false }, + { "textBlue": "0xA7B0DE" }, + { "textGold": "0xEDD689" }, + { "textRed": "0xFE9292" } + ] +} \ No newline at end of file diff --git a/gamefiles/res/level/textures.json b/gamefiles/res/level/textures.json index 42c7e735..bb9f6028 100755 --- a/gamefiles/res/level/textures.json +++ b/gamefiles/res/level/textures.json @@ -25,15 +25,40 @@ "file": "data/spellbk.cel", "palette": "town" }, - { - "id": "inv", - "file": "data/inv/inv.cel", - "palette": "town" - }, { "id": "pentspn2", "file": "data/pentspn2.cel", "palette": "town" } - ] + ], + "action": { + "name": "switch", + "param": "%charClass%", + "case": [ + { + "value": "Rogue", + "action": { + "name": "loadJson", + "json": { + "texture": { "id": "inv", "file": "data/inv/inv_rog.cel", "palette": "town" } + } + } + }, + { + "value": "Sorceror", + "action": { + "name": "loadJson", + "json": { + "texture": { "id": "inv", "file": "data/inv/inv_sor.cel", "palette": "town" } + } + } + } + ], + "default": { + "name": "loadJson", + "json": { + "texture": { "id": "inv", "file": "data/inv/inv.cel", "palette": "town" } + } + } + } } \ No newline at end of file diff --git a/gamefiles/res/palettes.json b/gamefiles/res/palettes.json index 344b0c64..b31cd6ff 100755 --- a/gamefiles/res/palettes.json +++ b/gamefiles/res/palettes.json @@ -1,16 +1,13 @@ { "palette": [ { - "id": "town", "file":"levels/towndata/town.pal" }, { - "id": "infra", "palette": "town", "trnFile":"plrgfx/infra.trn" }, { - "id": "stone", "palette": "town", "trnFile":"plrgfx/stone.trn" } diff --git a/gamefiles/res/textures.json b/gamefiles/res/textures.json index 9686a1ac..12420cf9 100755 --- a/gamefiles/res/textures.json +++ b/gamefiles/res/textures.json @@ -17,15 +17,17 @@ } ], "action": { - "name": "if.fileExists", - "param1": "ui_art/cursor.pcx", + "name": "if.equal", + "param1": "%beta%", + "param2": true, "then": { "name": "loadJson", "json": { "texture": { "id": "cursor", - "file": "ui_art/cursor.pcx", - "mask": "0x000000" + "file": "data/inv/objcurs.cel", + "frame": 1, + "palette": "town" } } }, @@ -34,9 +36,8 @@ "json": { "texture": { "id": "cursor", - "file": "data/inv/objcurs.cel", - "frame": 1, - "palette": "town" + "file": "ui_art/cursor.pcx", + "mask": "0x000000" } } } diff --git a/gamefiles/texts/adria/gossip/gossip1.json b/gamefiles/texts/adria/gossip/gossip1.json new file mode 100755 index 00000000..7a1799b1 --- /dev/null +++ b/gamefiles/texts/adria/gossip/gossip1.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/adria/gossip/gossip1.txt" + ], + "audio": { + "file": "sfx/Towners/witch39.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/adria/gossip/gossip1.txt b/gamefiles/texts/adria/gossip/gossip1.txt new file mode 100755 index 00000000..2fb8581a --- /dev/null +++ b/gamefiles/texts/adria/gossip/gossip1.txt @@ -0,0 +1 @@ +Wisdom is earned, not given. If you discover a tome of knowledge, devour its words. Should you already have knowledge of the racane mysteries scribed whithin a book, remember - that level of mastery can always be increased. \ No newline at end of file diff --git a/gamefiles/texts/adria/gossip/gossip10.json b/gamefiles/texts/adria/gossip/gossip10.json new file mode 100755 index 00000000..ea187402 --- /dev/null +++ b/gamefiles/texts/adria/gossip/gossip10.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/adria/gossip/gossip10.txt" + ], + "audio": { + "file": "sfx/Towners/witch49.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/adria/gossip/gossip10.txt b/gamefiles/texts/adria/gossip/gossip10.txt new file mode 100755 index 00000000..c21a5d52 --- /dev/null +++ b/gamefiles/texts/adria/gossip/gossip10.txt @@ -0,0 +1 @@ +There is much about the future we cannot see, but when it comes it will be the children who wield it. The boy Wirt has a blackness upon his soul, but he poses no threat to the town or its people. His secretive dealings with the urchins and unspoken guilds of nearby towns gain him access to many devices that cannot be easily found in Tristram. While his methods may be reproachful, Wirt can provide assistance for your battle against the encroaching Darkness. \ No newline at end of file diff --git a/gamefiles/texts/adria/gossip/gossip11.json b/gamefiles/texts/adria/gossip/gossip11.json new file mode 100755 index 00000000..911976d0 --- /dev/null +++ b/gamefiles/texts/adria/gossip/gossip11.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/adria/gossip/gossip11.txt" + ], + "audio": { + "file": "sfx/Towners/witch50.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/adria/gossip/gossip11.txt b/gamefiles/texts/adria/gossip/gossip11.txt new file mode 100755 index 00000000..e3b27013 --- /dev/null +++ b/gamefiles/texts/adria/gossip/gossip11.txt @@ -0,0 +1 @@ +Earthen walls and thatched canopy do not a home create. The innkeeper Ogden serves more of a purpose in this town than many understand. He provides shelter for Gillian and her matriarch, maintains what life Farnham has left to him, and provides an anchor for all who are left in the town to what Tristram once was. His tavern, and the simple pleasures that can still be found there, provide a glimpse of a life that the people here remember. It is that memory that continues to feed their hopes for your success. \ No newline at end of file diff --git a/gamefiles/texts/adria/gossip/gossip2.json b/gamefiles/texts/adria/gossip/gossip2.json new file mode 100755 index 00000000..dd6af8f4 --- /dev/null +++ b/gamefiles/texts/adria/gossip/gossip2.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/adria/gossip/gossip2.txt" + ], + "audio": { + "file": "sfx/Towners/witch40.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/adria/gossip/gossip2.txt b/gamefiles/texts/adria/gossip/gossip2.txt new file mode 100755 index 00000000..22b76653 --- /dev/null +++ b/gamefiles/texts/adria/gossip/gossip2.txt @@ -0,0 +1 @@ +The greatest power is often the shortest lived. You may find ancient words of power written upon scrolls of parchment. The strength of these scrolls lies in the ability of either apprentice or adept to cast them with equal ability. Their weakness is that they must first be read aloud and can never be kept at the ready in your mind. Know also that these scrolls can be read but once, so use them with care. \ No newline at end of file diff --git a/gamefiles/texts/adria/gossip/gossip3.json b/gamefiles/texts/adria/gossip/gossip3.json new file mode 100755 index 00000000..b512308b --- /dev/null +++ b/gamefiles/texts/adria/gossip/gossip3.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/adria/gossip/gossip3.txt" + ], + "audio": { + "file": "sfx/Towners/witch41.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/adria/gossip/gossip3.txt b/gamefiles/texts/adria/gossip/gossip3.txt new file mode 100755 index 00000000..4050a530 --- /dev/null +++ b/gamefiles/texts/adria/gossip/gossip3.txt @@ -0,0 +1 @@ +Though the heat of the sun is beyond measure, the mere flame of a candle is of greater danger. No energies, no matter how great, can be used without the proper focus. For many spells, ensorcelled Staves may be charged with magical energies many times over. I have the ability to restore their power - but know that nothing is done without a price. \ No newline at end of file diff --git a/gamefiles/texts/adria/gossip/gossip4.json b/gamefiles/texts/adria/gossip/gossip4.json new file mode 100755 index 00000000..9c79421e --- /dev/null +++ b/gamefiles/texts/adria/gossip/gossip4.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/adria/gossip/gossip4.txt" + ], + "audio": { + "file": "sfx/Towners/witch42.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/adria/gossip/gossip4.txt b/gamefiles/texts/adria/gossip/gossip4.txt new file mode 100755 index 00000000..851449f8 --- /dev/null +++ b/gamefiles/texts/adria/gossip/gossip4.txt @@ -0,0 +1 @@ +The sum of our knowledge is in the sum of its people. Should you find a book or scroll that you cannot decipher, do not hesitate to bring it to me. If I can make sense of it I will share what I find. \ No newline at end of file diff --git a/gamefiles/texts/adria/gossip/gossip5.json b/gamefiles/texts/adria/gossip/gossip5.json new file mode 100755 index 00000000..4ee7e24b --- /dev/null +++ b/gamefiles/texts/adria/gossip/gossip5.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/adria/gossip/gossip5.txt" + ], + "audio": { + "file": "sfx/Towners/witch43.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/adria/gossip/gossip5.txt b/gamefiles/texts/adria/gossip/gossip5.txt new file mode 100755 index 00000000..bd0ac1f6 --- /dev/null +++ b/gamefiles/texts/adria/gossip/gossip5.txt @@ -0,0 +1 @@ +To a man who only knows Iron, there is no greater magic than Steel. The blacksmith Griswold is more of a sorcerer than he knows. His ability to meld fire and metal is unequaled in this land. \ No newline at end of file diff --git a/gamefiles/texts/adria/gossip/gossip6.json b/gamefiles/texts/adria/gossip/gossip6.json new file mode 100755 index 00000000..47d91e8d --- /dev/null +++ b/gamefiles/texts/adria/gossip/gossip6.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/adria/gossip/gossip6.txt" + ], + "audio": { + "file": "sfx/Towners/witch44.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/adria/gossip/gossip6.txt b/gamefiles/texts/adria/gossip/gossip6.txt new file mode 100755 index 00000000..d727a74f --- /dev/null +++ b/gamefiles/texts/adria/gossip/gossip6.txt @@ -0,0 +1 @@ +Corruption has the strength of deceit, but innocence holds the power of purity. The young woman Gillian has a pure heart, placing the needs of her matriarch over her own. She fears me, but it is only because she does not understand me. \ No newline at end of file diff --git a/gamefiles/texts/adria/gossip/gossip7.json b/gamefiles/texts/adria/gossip/gossip7.json new file mode 100755 index 00000000..5fd66619 --- /dev/null +++ b/gamefiles/texts/adria/gossip/gossip7.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/adria/gossip/gossip7.txt" + ], + "audio": { + "file": "sfx/Towners/witch45.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/adria/gossip/gossip7.txt b/gamefiles/texts/adria/gossip/gossip7.txt new file mode 100755 index 00000000..e65d8db3 --- /dev/null +++ b/gamefiles/texts/adria/gossip/gossip7.txt @@ -0,0 +1 @@ +A chest opened in darkness holds no greater treasure than when it is opened in the light. The storyteller Cain is an enigma, but only to those who do not look. His knowledge of what lies beneath the cathedral is far greater than even he allows himself to realize. \ No newline at end of file diff --git a/gamefiles/texts/adria/gossip/gossip8.json b/gamefiles/texts/adria/gossip/gossip8.json new file mode 100755 index 00000000..e484c10a --- /dev/null +++ b/gamefiles/texts/adria/gossip/gossip8.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/adria/gossip/gossip8.txt" + ], + "audio": { + "file": "sfx/Towners/witch46.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/adria/gossip/gossip8.txt b/gamefiles/texts/adria/gossip/gossip8.txt new file mode 100755 index 00000000..c3cc199c --- /dev/null +++ b/gamefiles/texts/adria/gossip/gossip8.txt @@ -0,0 +1 @@ +The higher you place your faith in one man, the farther it has to fall. Farnham has lost his soul, but not to any demon. It was lost when he saw his fellow townspeople betrayed by the Archbishop Lazarus. He has knowledge to be gleaned, but you must separate fact from fantasy. \ No newline at end of file diff --git a/gamefiles/texts/adria/gossip/gossip9.json b/gamefiles/texts/adria/gossip/gossip9.json new file mode 100755 index 00000000..fe1b390c --- /dev/null +++ b/gamefiles/texts/adria/gossip/gossip9.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/adria/gossip/gossip9.txt" + ], + "audio": { + "file": "sfx/Towners/witch47.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/adria/gossip/gossip9.txt b/gamefiles/texts/adria/gossip/gossip9.txt new file mode 100755 index 00000000..27702a4d --- /dev/null +++ b/gamefiles/texts/adria/gossip/gossip9.txt @@ -0,0 +1 @@ +The hand, the heart and the mind can perform miracles when they are in perfect harmony. The healer Pepin sees into the body in a way that even I cannot. His ability to restore the sick and injured is magnified by his understanding of the creation of elixirs and potions. He is as great an ally as you have in Tristram. \ No newline at end of file diff --git a/gamefiles/texts/adria/quests/anvilOfFury.json b/gamefiles/texts/adria/quests/anvilOfFury.json new file mode 100755 index 00000000..fd29c825 --- /dev/null +++ b/gamefiles/texts/adria/quests/anvilOfFury.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/adria/quests/anvilOfFury.txt" + ], + "audio": { + "file": "sfx/Towners/witch14.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/adria/quests/anvilOfFury.txt b/gamefiles/texts/adria/quests/anvilOfFury.txt new file mode 100755 index 00000000..d2223c5b --- /dev/null +++ b/gamefiles/texts/adria/quests/anvilOfFury.txt @@ -0,0 +1 @@ +There are many artifacts within the Labyrinth that hold powers beyond the comprehension of mortals. Some of these hold fantastic power that can be used by either the Light or the Darkness. Securing the Anvil from below could shift the course of the Sin War towards the Light. \ No newline at end of file diff --git a/gamefiles/texts/adria/quests/archbishopLazarus.json b/gamefiles/texts/adria/quests/archbishopLazarus.json new file mode 100755 index 00000000..a046a162 --- /dev/null +++ b/gamefiles/texts/adria/quests/archbishopLazarus.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/adria/quests/archbishopLazarus.txt" + ], + "audio": { + "file": "sfx/Towners/witch03.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/adria/quests/archbishopLazarus.txt b/gamefiles/texts/adria/quests/archbishopLazarus.txt new file mode 100755 index 00000000..6d33bae1 --- /dev/null +++ b/gamefiles/texts/adria/quests/archbishopLazarus.txt @@ -0,0 +1 @@ +I did not know this Lazarus of whom you speak, but I do sense a great conflict within his being. He poses a great danger, and will stop at nothing to serve the Powers of Darkness which have claimed him as theirs. \ No newline at end of file diff --git a/gamefiles/texts/adria/quests/arkainesValor.json b/gamefiles/texts/adria/quests/arkainesValor.json new file mode 100755 index 00000000..075fa6ac --- /dev/null +++ b/gamefiles/texts/adria/quests/arkainesValor.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/adria/quests/arkainesValor.txt" + ], + "audio": { + "file": "sfx/Towners/witch15.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/adria/quests/arkainesValor.txt b/gamefiles/texts/adria/quests/arkainesValor.txt new file mode 100755 index 00000000..d92e1e42 --- /dev/null +++ b/gamefiles/texts/adria/quests/arkainesValor.txt @@ -0,0 +1,3 @@ +Should you find these stones of blood, use them carefully. + +The way is fraught with danger and your only hope rests within your self-trust. \ No newline at end of file diff --git a/gamefiles/texts/adria/quests/blackMushroom.json b/gamefiles/texts/adria/quests/blackMushroom.json new file mode 100755 index 00000000..9e879b81 --- /dev/null +++ b/gamefiles/texts/adria/quests/blackMushroom.json @@ -0,0 +1,20 @@ +{ + "action": { + "name": "switch", + "param": "|currentLevel|quest.blackMushroom.state|", + "case": [ + { + "value": 0, + "action": { "name": "load", "file": "texts/adria/quests/blackMushroom1.json" } + }, + { + "value": 1, + "action": { "name": "load", "file": "texts/adria/quests/blackMushroom2.json" } + }, + { + "value": 2, + "action": { "name": "load", "file": "texts/adria/quests/blackMushroom3.json" } + } + ] + } +} \ No newline at end of file diff --git a/gamefiles/texts/adria/quests/blackMushroom1.json b/gamefiles/texts/adria/quests/blackMushroom1.json new file mode 100755 index 00000000..72abce93 --- /dev/null +++ b/gamefiles/texts/adria/quests/blackMushroom1.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/adria/quests/blackMushroom1.txt" + ], + "audio": { + "file": "sfx/Towners/witch23.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/adria/quests/blackMushroom1.txt b/gamefiles/texts/adria/quests/blackMushroom1.txt new file mode 100755 index 00000000..a7d34b1c --- /dev/null +++ b/gamefiles/texts/adria/quests/blackMushroom1.txt @@ -0,0 +1 @@ +It's a big, Black Mushroom that I need. Now run off and get it for me so that I can use it for a special concoction that I am working on. \ No newline at end of file diff --git a/gamefiles/texts/adria/quests/blackMushroom2.json b/gamefiles/texts/adria/quests/blackMushroom2.json new file mode 100755 index 00000000..98d0f0b6 --- /dev/null +++ b/gamefiles/texts/adria/quests/blackMushroom2.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/adria/quests/blackMushroom2.txt" + ], + "audio": { + "file": "sfx/Towners/witch24.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/adria/quests/blackMushroom2.txt b/gamefiles/texts/adria/quests/blackMushroom2.txt new file mode 100755 index 00000000..f59a0098 --- /dev/null +++ b/gamefiles/texts/adria/quests/blackMushroom2.txt @@ -0,0 +1 @@ +Yes. This will be perfect for a brew that I am creating. By the way, the Healer is looking for the Brain of some Demon or another so he can treat those who have been afflicted by their poisonous venom. I believe that he intends to make an elixir from it. If you can help him find what he needs, please see if you can get a sample of the elixir for me. \ No newline at end of file diff --git a/gamefiles/texts/adria/quests/blackMushroom3.json b/gamefiles/texts/adria/quests/blackMushroom3.json new file mode 100755 index 00000000..124c7d6d --- /dev/null +++ b/gamefiles/texts/adria/quests/blackMushroom3.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/adria/quests/blackMushroom3.txt" + ], + "audio": { + "file": "sfx/Towners/witch26.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/adria/quests/blackMushroom3.txt b/gamefiles/texts/adria/quests/blackMushroom3.txt new file mode 100755 index 00000000..d9b35438 --- /dev/null +++ b/gamefiles/texts/adria/quests/blackMushroom3.txt @@ -0,0 +1 @@ +What? Now you bring me that elixir from the healer? I was able to finish my brew without it. Why don't you just keep it... \ No newline at end of file diff --git a/gamefiles/texts/adria/quests/chamberOfBone.json b/gamefiles/texts/adria/quests/chamberOfBone.json new file mode 100755 index 00000000..b433daf0 --- /dev/null +++ b/gamefiles/texts/adria/quests/chamberOfBone.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/adria/quests/chamberOfBone.txt" + ], + "audio": { + "file": "sfx/Towners/witch07.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/adria/quests/chamberOfBone.txt b/gamefiles/texts/adria/quests/chamberOfBone.txt new file mode 100755 index 00000000..429a6f52 --- /dev/null +++ b/gamefiles/texts/adria/quests/chamberOfBone.txt @@ -0,0 +1,3 @@ +You will become an eternal servant of the Dark Lords should you perish within this cursed domain. + +Enter the Chamber of Bone at your own peril. \ No newline at end of file diff --git a/gamefiles/texts/adria/quests/hallsOfTheBlind.json b/gamefiles/texts/adria/quests/hallsOfTheBlind.json new file mode 100755 index 00000000..7f979af8 --- /dev/null +++ b/gamefiles/texts/adria/quests/hallsOfTheBlind.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/adria/quests/hallsOfTheBlind.txt" + ], + "audio": { + "file": "sfx/Towners/witch12.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/adria/quests/hallsOfTheBlind.txt b/gamefiles/texts/adria/quests/hallsOfTheBlind.txt new file mode 100755 index 00000000..02848ef8 --- /dev/null +++ b/gamefiles/texts/adria/quests/hallsOfTheBlind.txt @@ -0,0 +1,3 @@ +This is a place of great anguish and terror, and so serves its master well. + +Tread carefully or you may yourself be staying much longer than you had anticipated. \ No newline at end of file diff --git a/gamefiles/texts/adria/quests/lachdanan.json b/gamefiles/texts/adria/quests/lachdanan.json new file mode 100755 index 00000000..2fc1a127 --- /dev/null +++ b/gamefiles/texts/adria/quests/lachdanan.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/adria/quests/lachdanan.txt" + ], + "audio": { + "file": "sfx/Towners/witch13.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/adria/quests/lachdanan.txt b/gamefiles/texts/adria/quests/lachdanan.txt new file mode 100755 index 00000000..3a52b47d --- /dev/null +++ b/gamefiles/texts/adria/quests/lachdanan.txt @@ -0,0 +1,3 @@ +You may meet people who are trapped within the labyrinth, such as Lachdanan. + +I sense in him honor and great guilt. Aid him, and you aid all of Tristram. \ No newline at end of file diff --git a/gamefiles/texts/adria/quests/magicRock.json b/gamefiles/texts/adria/quests/magicRock.json new file mode 100755 index 00000000..90dbceaf --- /dev/null +++ b/gamefiles/texts/adria/quests/magicRock.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/adria/quests/magicRock.txt" + ], + "audio": { + "file": "sfx/Towners/witch20.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/adria/quests/magicRock.txt b/gamefiles/texts/adria/quests/magicRock.txt new file mode 100755 index 00000000..db3ee0c1 --- /dev/null +++ b/gamefiles/texts/adria/quests/magicRock.txt @@ -0,0 +1 @@ +The Heaven Stone is very powerful, and were it any but Griswold who bid you find it, I would prevent it. He will harness its powers and its use will be for the good of us all. \ No newline at end of file diff --git a/gamefiles/texts/adria/quests/ogdensSign.json b/gamefiles/texts/adria/quests/ogdensSign.json new file mode 100755 index 00000000..2cd0a9d5 --- /dev/null +++ b/gamefiles/texts/adria/quests/ogdensSign.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/adria/quests/ogdensSign.txt" + ], + "audio": { + "file": "sfx/Towners/witch02.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/adria/quests/ogdensSign.txt b/gamefiles/texts/adria/quests/ogdensSign.txt new file mode 100755 index 00000000..4d543a87 --- /dev/null +++ b/gamefiles/texts/adria/quests/ogdensSign.txt @@ -0,0 +1,3 @@ +No Mortal can truly understand the mind of the Demon. + +Never let their erratic actions confuse you, as that too may be their plan. \ No newline at end of file diff --git a/gamefiles/texts/adria/quests/poisonedWater.json b/gamefiles/texts/adria/quests/poisonedWater.json new file mode 100755 index 00000000..1b8e6786 --- /dev/null +++ b/gamefiles/texts/adria/quests/poisonedWater.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/adria/quests/poisonedWater.txt" + ], + "audio": { + "file": "sfx/Towners/witch04.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/adria/quests/poisonedWater.txt b/gamefiles/texts/adria/quests/poisonedWater.txt new file mode 100755 index 00000000..32ddb9af --- /dev/null +++ b/gamefiles/texts/adria/quests/poisonedWater.txt @@ -0,0 +1,3 @@ +The people of Tristram will die if you cannot restore fresh water to their wells. + +Know this - Demons are at the heart of this matter, but they remain ignorant of what they have spawned. \ No newline at end of file diff --git a/gamefiles/texts/adria/quests/skeletonKing.json b/gamefiles/texts/adria/quests/skeletonKing.json new file mode 100755 index 00000000..fcf4e57c --- /dev/null +++ b/gamefiles/texts/adria/quests/skeletonKing.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/adria/quests/skeletonKing.txt" + ], + "audio": { + "file": "sfx/Towners/witch01.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/adria/quests/skeletonKing.txt b/gamefiles/texts/adria/quests/skeletonKing.txt new file mode 100755 index 00000000..18e1c333 --- /dev/null +++ b/gamefiles/texts/adria/quests/skeletonKing.txt @@ -0,0 +1 @@ +The dead who walk among the living follow the cursed King. He holds the power to raise yet more warriors for an ever-growing army of the Undead. If you do not stop his reign, he will surely march across this land and slay all who still live here. \ No newline at end of file diff --git a/gamefiles/towners/adria/quests/butcher.json b/gamefiles/texts/adria/quests/theButcher.json similarity index 68% rename from gamefiles/towners/adria/quests/butcher.json rename to gamefiles/texts/adria/quests/theButcher.json index 88b5b834..d3a2a58c 100755 --- a/gamefiles/towners/adria/quests/butcher.json +++ b/gamefiles/texts/adria/quests/theButcher.json @@ -1,12 +1,11 @@ { "load": [ "ui/level/showText.json", - "smithText", + "questText", "50", - "towners/adria/quests/butcher.txt" + "texts/adria/quests/theButcher.txt" ], "audio": { - "id": "witch10", "file": "sfx/Towners/witch10.wav", "play": true, "volume": "|game|soundVolume|" diff --git a/gamefiles/towners/adria/quests/butcher.txt b/gamefiles/texts/adria/quests/theButcher.txt similarity index 100% rename from gamefiles/towners/adria/quests/butcher.txt rename to gamefiles/texts/adria/quests/theButcher.txt diff --git a/gamefiles/texts/adria/quests/warlordOfBlood.json b/gamefiles/texts/adria/quests/warlordOfBlood.json new file mode 100755 index 00000000..daf95ee5 --- /dev/null +++ b/gamefiles/texts/adria/quests/warlordOfBlood.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/adria/quests/warlordOfBlood.txt" + ], + "audio": { + "file": "sfx/Towners/witch18.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/adria/quests/warlordOfBlood.txt b/gamefiles/texts/adria/quests/warlordOfBlood.txt new file mode 100755 index 00000000..71be0a0d --- /dev/null +++ b/gamefiles/texts/adria/quests/warlordOfBlood.txt @@ -0,0 +1 @@ +His prowess with the blade is awesome, and he has lived for thousands of years knowing only warfare. I am sorry... I can not see if you will defeat him. \ No newline at end of file diff --git a/gamefiles/texts/cain/gossip/gossip1.json b/gamefiles/texts/cain/gossip/gossip1.json new file mode 100755 index 00000000..0b5e6775 --- /dev/null +++ b/gamefiles/texts/cain/gossip/gossip1.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/cain/gossip/gossip1.txt" + ], + "audio": { + "file": "sfx/Towners/storyt26.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/cain/gossip/gossip1.txt b/gamefiles/texts/cain/gossip/gossip1.txt new file mode 100755 index 00000000..1ff4e67a --- /dev/null +++ b/gamefiles/texts/cain/gossip/gossip1.txt @@ -0,0 +1 @@ +While you are venturing deeper into the Labyrinth you may find tomes of great knowledge hidden there. Read them carefully for they can tell you things that even I cannot. \ No newline at end of file diff --git a/gamefiles/texts/cain/gossip/gossip2.json b/gamefiles/texts/cain/gossip/gossip2.json new file mode 100755 index 00000000..161b306b --- /dev/null +++ b/gamefiles/texts/cain/gossip/gossip2.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/cain/gossip/gossip2.txt" + ], + "audio": { + "file": "sfx/Towners/storyt27.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/cain/gossip/gossip2.txt b/gamefiles/texts/cain/gossip/gossip2.txt new file mode 100755 index 00000000..bb337290 --- /dev/null +++ b/gamefiles/texts/cain/gossip/gossip2.txt @@ -0,0 +1 @@ +I know of many myths and legends that may contain answers to questions that may arise in your journeys into the Labyrinth. If you come across challenges and questions to which you seek knowledge, seek me out and I will tell you what I can. \ No newline at end of file diff --git a/gamefiles/texts/cain/gossip/gossip3.json b/gamefiles/texts/cain/gossip/gossip3.json new file mode 100755 index 00000000..978261b2 --- /dev/null +++ b/gamefiles/texts/cain/gossip/gossip3.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/cain/gossip/gossip3.txt" + ], + "audio": { + "file": "sfx/Towners/storyt28.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/cain/gossip/gossip3.txt b/gamefiles/texts/cain/gossip/gossip3.txt new file mode 100755 index 00000000..1fef82e2 --- /dev/null +++ b/gamefiles/texts/cain/gossip/gossip3.txt @@ -0,0 +1 @@ +Griswold - a man of great action and great courage. I bet he never told you about the time he went into the Labyrinth to save Wirt, did he? He knows his fair share of the dangers to be found there, but then again - so do you. He is a skilled craftsman, and if he claims to be able to help you in any way, you can count on his honesty and his skill. \ No newline at end of file diff --git a/gamefiles/texts/cain/gossip/gossip4.json b/gamefiles/texts/cain/gossip/gossip4.json new file mode 100755 index 00000000..d4da0f24 --- /dev/null +++ b/gamefiles/texts/cain/gossip/gossip4.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/cain/gossip/gossip4.txt" + ], + "audio": { + "file": "sfx/Towners/storyt29.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/cain/gossip/gossip4.txt b/gamefiles/texts/cain/gossip/gossip4.txt new file mode 100755 index 00000000..0f32e8b1 --- /dev/null +++ b/gamefiles/texts/cain/gossip/gossip4.txt @@ -0,0 +1 @@ +Ogden has owned and run the Rising Sun Inn and Tavern for almost four years now. He purchased it just a few short months before everything here went to hell. He and his wife Garda do not have the money to leave as they invested all they had in making a life for themselves here. He is a good man with a deep sense of responsibility. \ No newline at end of file diff --git a/gamefiles/texts/cain/gossip/gossip5.json b/gamefiles/texts/cain/gossip/gossip5.json new file mode 100755 index 00000000..461f1aad --- /dev/null +++ b/gamefiles/texts/cain/gossip/gossip5.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/cain/gossip/gossip5.txt" + ], + "audio": { + "file": "sfx/Towners/storyt30.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/cain/gossip/gossip5.txt b/gamefiles/texts/cain/gossip/gossip5.txt new file mode 100755 index 00000000..7d9d0c9a --- /dev/null +++ b/gamefiles/texts/cain/gossip/gossip5.txt @@ -0,0 +1 @@ +Poor Farnham. He is a disquieting reminder of the doomed assembly that entered into the Cathedral with Lazarus on that dark day. He escaped with his life, but his courage and much of his sanity were left in some dark pit. He finds comfort only at the bottom of his tankard nowadays, but there are occasional bits of truth buried within his constant ramblings. \ No newline at end of file diff --git a/gamefiles/texts/cain/gossip/gossip6.json b/gamefiles/texts/cain/gossip/gossip6.json new file mode 100755 index 00000000..e2f7a7bb --- /dev/null +++ b/gamefiles/texts/cain/gossip/gossip6.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/cain/gossip/gossip6.txt" + ], + "audio": { + "file": "sfx/Towners/storyt31.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/cain/gossip/gossip6.txt b/gamefiles/texts/cain/gossip/gossip6.txt new file mode 100755 index 00000000..aee543c1 --- /dev/null +++ b/gamefiles/texts/cain/gossip/gossip6.txt @@ -0,0 +1 @@ +The witch, Adria, is an anomaly here in Tristram. She arrived shortly after the Cathedral was desecrated while most everyone else was fleeing. She had a small hut constructed at the edge of town, seemingly overnight, and has access to many strange and arcane artifacts and tomes of knowledge that even I have never seen before. \ No newline at end of file diff --git a/gamefiles/texts/cain/gossip/gossip7.json b/gamefiles/texts/cain/gossip/gossip7.json new file mode 100755 index 00000000..b4196bb1 --- /dev/null +++ b/gamefiles/texts/cain/gossip/gossip7.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/cain/gossip/gossip7.txt" + ], + "audio": { + "file": "sfx/Towners/storyt33.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/cain/gossip/gossip7.txt b/gamefiles/texts/cain/gossip/gossip7.txt new file mode 100755 index 00000000..6744de32 --- /dev/null +++ b/gamefiles/texts/cain/gossip/gossip7.txt @@ -0,0 +1 @@ +The story of Wirt is a frightening and tragic one. He was taken from the arms of his mother and dragged into the labyrinth by the small, foul demons that wield wicked spears. There were many other children taken that day, including the son of King Leoric. The Knights of the palace went below, but never returned. The Blacksmith found the boy, but only after the foul beasts had begun to torture him for their sadistic pleasures. \ No newline at end of file diff --git a/gamefiles/texts/cain/gossip/gossip8.json b/gamefiles/texts/cain/gossip/gossip8.json new file mode 100755 index 00000000..2101722a --- /dev/null +++ b/gamefiles/texts/cain/gossip/gossip8.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/cain/gossip/gossip8.txt" + ], + "audio": { + "file": "sfx/Towners/storyt34.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/cain/gossip/gossip8.txt b/gamefiles/texts/cain/gossip/gossip8.txt new file mode 100755 index 00000000..f31218ab --- /dev/null +++ b/gamefiles/texts/cain/gossip/gossip8.txt @@ -0,0 +1 @@ +Ah, Pepin. I count him as a true friend - perhaps the closest I have here. He is a bit addled at times, but never a more caring or considerate soul has existed. His knowledge and skills are equaled by few, and his door is always open. \ No newline at end of file diff --git a/gamefiles/texts/cain/gossip/gossip9.json b/gamefiles/texts/cain/gossip/gossip9.json new file mode 100755 index 00000000..59ac9f12 --- /dev/null +++ b/gamefiles/texts/cain/gossip/gossip9.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/cain/gossip/gossip9.txt" + ], + "audio": { + "file": "sfx/Towners/storyt35.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/cain/gossip/gossip9.txt b/gamefiles/texts/cain/gossip/gossip9.txt new file mode 100755 index 00000000..595c7a2d --- /dev/null +++ b/gamefiles/texts/cain/gossip/gossip9.txt @@ -0,0 +1 @@ +Gillian is a fine woman. Much adored for her high spirits and her quick laugh, she holds a special place in my heart. She stays on at the tavern to support her elderly grandmother who is too sick to travel. I sometimes fear for her safety, but I know that any man in the village would rather die than see her harmed. \ No newline at end of file diff --git a/gamefiles/texts/cain/quests/anvilOfFury.json b/gamefiles/texts/cain/quests/anvilOfFury.json new file mode 100755 index 00000000..f804321d --- /dev/null +++ b/gamefiles/texts/cain/quests/anvilOfFury.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/cain/quests/anvilOfFury.txt" + ], + "audio": { + "file": "sfx/Towners/storyt14.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/cain/quests/anvilOfFury.txt b/gamefiles/texts/cain/quests/anvilOfFury.txt new file mode 100755 index 00000000..e02d19cc --- /dev/null +++ b/gamefiles/texts/cain/quests/anvilOfFury.txt @@ -0,0 +1 @@ +Griswold speaks of the Anvil of Fury - a legendary artifact long searched for, but never found. Crafted from the metallic bones of the razor pit demons, the Anvil of Fury was smelt around the skulls of the five most powerful Magi of the underworld. Carved with runes of power and chaos, any weapon or armor forged upon this anvil will be immersed into the realm of chaos, imbedding it with magical properties. It is said that the unpredictable nature of chaos makes it difficult to know what the outcome of this smithing will be... \ No newline at end of file diff --git a/gamefiles/texts/cain/quests/archbishopLazarus.json b/gamefiles/texts/cain/quests/archbishopLazarus.json new file mode 100755 index 00000000..de11b959 --- /dev/null +++ b/gamefiles/texts/cain/quests/archbishopLazarus.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/cain/quests/archbishopLazarus.txt" + ], + "audio": { + "file": "sfx/Towners/storyt37.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/cain/quests/archbishopLazarus.txt b/gamefiles/texts/cain/quests/archbishopLazarus.txt new file mode 100755 index 00000000..204f662b --- /dev/null +++ b/gamefiles/texts/cain/quests/archbishopLazarus.txt @@ -0,0 +1 @@ +You must hurry and rescue Albrecht from the hands of Lazarus. The Prince and the people of this Kingdom are counting on you! \ No newline at end of file diff --git a/gamefiles/texts/cain/quests/arkainesValor.json b/gamefiles/texts/cain/quests/arkainesValor.json new file mode 100755 index 00000000..a8326ac1 --- /dev/null +++ b/gamefiles/texts/cain/quests/arkainesValor.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/cain/quests/arkainesValor.txt" + ], + "audio": { + "file": "sfx/Towners/storyt15.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/cain/quests/arkainesValor.txt b/gamefiles/texts/cain/quests/arkainesValor.txt new file mode 100755 index 00000000..2f8fb754 --- /dev/null +++ b/gamefiles/texts/cain/quests/arkainesValor.txt @@ -0,0 +1,7 @@ +The Gateway of Blood and the Halls of Fire are landmarks of mystic origin. Wherever this book you read from resides, it is surely a place of great power. + +Legends speak of a pedestal that is carved from obsidian stone and has a pool of boiling blood atop its bone-encrusted surface. There are also allusions to stones of blood that will open a door that guards an ancient treasure... + +The nature of this treasure is shrouded in speculation, my friend, but it is said that the ancient hero Arkaine placed the holy armor Valor in a secret vault. Arkaine was the first mortal to turn the tide of the Sin War and chase the Legions of Darkness back to the Burning Hells. + +Just before Arkaine died, his armor was hidden away in a secret vault. It is said that when this holy armor is again needed, a hero will arise to don Valor once more. Perhaps you are that hero... \ No newline at end of file diff --git a/gamefiles/texts/cain/quests/blackMushroom.json b/gamefiles/texts/cain/quests/blackMushroom.json new file mode 100755 index 00000000..83b38686 --- /dev/null +++ b/gamefiles/texts/cain/quests/blackMushroom.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/cain/quests/blackMushroom.txt" + ], + "audio": { + "file": "sfx/Towners/storyt21.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/cain/quests/blackMushroom.txt b/gamefiles/texts/cain/quests/blackMushroom.txt new file mode 100755 index 00000000..84bdc14a --- /dev/null +++ b/gamefiles/texts/cain/quests/blackMushroom.txt @@ -0,0 +1 @@ +The Witch Adria seeks a Black Mushroom? I know as much about Black Mushrooms as I do about Red Herrings. Perhaps Pepin the Healer could tell you more, but this is something that cannot be found in any of my stories or books. \ No newline at end of file diff --git a/gamefiles/texts/cain/quests/chamberOfBone.json b/gamefiles/texts/cain/quests/chamberOfBone.json new file mode 100755 index 00000000..9006fd45 --- /dev/null +++ b/gamefiles/texts/cain/quests/chamberOfBone.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/cain/quests/chamberOfBone.txt" + ], + "audio": { + "file": "sfx/Towners/storyt07.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/cain/quests/chamberOfBone.txt b/gamefiles/texts/cain/quests/chamberOfBone.txt new file mode 100755 index 00000000..e86da362 --- /dev/null +++ b/gamefiles/texts/cain/quests/chamberOfBone.txt @@ -0,0 +1 @@ +A book that speaks of a chamber of human bones? Well, a Chamber of Bone is mentioned in certain archaic writings that I studied in the Libraries of the East. These tomes inferred that when the Lords of the Underworld desired to protect great treasures, they would create domains where those who died in attempt to steal that treasure would be forever bound to defend it. A twisted, but strangely fitting, end? \ No newline at end of file diff --git a/gamefiles/texts/cain/quests/diablo.json b/gamefiles/texts/cain/quests/diablo.json new file mode 100755 index 00000000..7cfd97eb --- /dev/null +++ b/gamefiles/texts/cain/quests/diablo.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/cain/quests/diablo.txt" + ], + "audio": { + "file": "sfx/Towners/storyt38.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/cain/quests/diablo.txt b/gamefiles/texts/cain/quests/diablo.txt new file mode 100755 index 00000000..4b15a8e5 --- /dev/null +++ b/gamefiles/texts/cain/quests/diablo.txt @@ -0,0 +1,3 @@ +Your story is quite grim, my friend. Lazarus will surely burn in Hell for his horrific deed. The boy that you describe is NOT our Prince, but I believe that Albrecht may yet be in danger. The symbol of power that you speak of must be a portal in the very heart of the Labyrinth. + +Know this, my friend - the Evil that you move against is the Dark Lord of Terror. He is known to mortal men as Diablo. It was he who was imprisoned within the labyrinth many centuries ago and I fear that he seeks to once again sow chaos in the Realm of Mankind. You must venture through the portal and destroy Diablo before it is too late! \ No newline at end of file diff --git a/gamefiles/texts/cain/quests/hallsOfTheBlind.json b/gamefiles/texts/cain/quests/hallsOfTheBlind.json new file mode 100755 index 00000000..d36b3a1b --- /dev/null +++ b/gamefiles/texts/cain/quests/hallsOfTheBlind.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/cain/quests/hallsOfTheBlind.txt" + ], + "audio": { + "file": "sfx/Towners/storyt12.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/cain/quests/hallsOfTheBlind.txt b/gamefiles/texts/cain/quests/hallsOfTheBlind.txt new file mode 100755 index 00000000..c36f0978 --- /dev/null +++ b/gamefiles/texts/cain/quests/hallsOfTheBlind.txt @@ -0,0 +1,3 @@ +You recite an interesting rhyme written in a style that reminds me of other works. Let me think now - what was it? + +...Darkness shrouds the Hidden. Eyes glowing unseen with only the sounds of razor claws briefly scraping to torment those poor souls who have been made sightless for all eternity. The prison for those so damned is named the Halls of the Blind... \ No newline at end of file diff --git a/gamefiles/texts/cain/quests/lachdanan.json b/gamefiles/texts/cain/quests/lachdanan.json new file mode 100755 index 00000000..3d193aad --- /dev/null +++ b/gamefiles/texts/cain/quests/lachdanan.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/cain/quests/lachdanan.txt" + ], + "audio": { + "file": "sfx/Towners/storyt13.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/cain/quests/lachdanan.txt b/gamefiles/texts/cain/quests/lachdanan.txt new file mode 100755 index 00000000..8b304720 --- /dev/null +++ b/gamefiles/texts/cain/quests/lachdanan.txt @@ -0,0 +1 @@ +You claim to have spoken with Lachdanan? He was a great hero during his life. Lachdanan was an honorable and just man who served his King faithfully for years. But of course, you already know that. Of those who were caught within the grasp of the King's curse, Lachdanan would be the least likely to submit to the Darkness without a fight, so I suppose that your story could be true. If I were in your place, my friend, I would find a way to release him from his torture. \ No newline at end of file diff --git a/gamefiles/texts/cain/quests/magicRock.json b/gamefiles/texts/cain/quests/magicRock.json new file mode 100755 index 00000000..2374b4f3 --- /dev/null +++ b/gamefiles/texts/cain/quests/magicRock.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/cain/quests/magicRock.txt" + ], + "audio": { + "file": "sfx/Towners/storyt20.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/cain/quests/magicRock.txt b/gamefiles/texts/cain/quests/magicRock.txt new file mode 100755 index 00000000..80ec0060 --- /dev/null +++ b/gamefiles/texts/cain/quests/magicRock.txt @@ -0,0 +1 @@ +Griswold speaks of the Heaven Stone that was destined for the enclave located in the East. It was being taken there for further study. This stone glowed with an Energy that somehow granted vision beyond that which a normal man could possess. I do not know what secrets it holds, my friend, but finding this stone would certainly prove most valuable. \ No newline at end of file diff --git a/gamefiles/texts/cain/quests/ogdensSign.json b/gamefiles/texts/cain/quests/ogdensSign.json new file mode 100755 index 00000000..7b0f42df --- /dev/null +++ b/gamefiles/texts/cain/quests/ogdensSign.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/cain/quests/ogdensSign.txt" + ], + "audio": { + "file": "sfx/Towners/storyt02.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/cain/quests/ogdensSign.txt b/gamefiles/texts/cain/quests/ogdensSign.txt new file mode 100755 index 00000000..a673673a --- /dev/null +++ b/gamefiles/texts/cain/quests/ogdensSign.txt @@ -0,0 +1 @@ +I see that this strange behavior puzzles you as well. I would surmise that since many Demons fear the Light of the Sun and believe that it holds great power, it may be that the Rising Sun depicted on the sign you speak of has led them to believe that it too holds some arcane powers. Hmm, perhaps they are not all as smart as we had feared... \ No newline at end of file diff --git a/gamefiles/texts/cain/quests/poisonedWater.json b/gamefiles/texts/cain/quests/poisonedWater.json new file mode 100755 index 00000000..87a7e818 --- /dev/null +++ b/gamefiles/texts/cain/quests/poisonedWater.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/cain/quests/poisonedWater.txt" + ], + "audio": { + "file": "sfx/Towners/storyt04.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/cain/quests/poisonedWater.txt b/gamefiles/texts/cain/quests/poisonedWater.txt new file mode 100755 index 00000000..012f3eca --- /dev/null +++ b/gamefiles/texts/cain/quests/poisonedWater.txt @@ -0,0 +1 @@ +Hmm, I don't know what I can really tell you about this that will be of any help. The water that fills our wells comes from an underground spring. I have heard of a tunnel that leads to a great lake - perhaps they are one and the same. Unfortunately, I do not know what would cause our water supply to be tainted. \ No newline at end of file diff --git a/gamefiles/texts/cain/quests/skeletonKing.json b/gamefiles/texts/cain/quests/skeletonKing.json new file mode 100755 index 00000000..17b1fe7b --- /dev/null +++ b/gamefiles/texts/cain/quests/skeletonKing.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/cain/quests/skeletonKing.txt" + ], + "audio": { + "file": "sfx/Towners/storyt01.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/cain/quests/skeletonKing.txt b/gamefiles/texts/cain/quests/skeletonKing.txt new file mode 100755 index 00000000..dd483ad1 --- /dev/null +++ b/gamefiles/texts/cain/quests/skeletonKing.txt @@ -0,0 +1 @@ +Ahh, the story of our King, is it? The tragic fall of Leoric was a harsh blow to this land. The people always loved the King, and now they live in mortal fear of him. The question that I keep asking myself is how he could have fallen so far from the Light, as Leoric had always been the holiest of men. Only the vilest powers of Hell could so utterly destroy a man from within... \ No newline at end of file diff --git a/gamefiles/towners/strytell/quests/butcher.json b/gamefiles/texts/cain/quests/theButcher.json similarity index 67% rename from gamefiles/towners/strytell/quests/butcher.json rename to gamefiles/texts/cain/quests/theButcher.json index 719d8aa4..3ae26edd 100755 --- a/gamefiles/towners/strytell/quests/butcher.json +++ b/gamefiles/texts/cain/quests/theButcher.json @@ -1,12 +1,11 @@ { "load": [ "ui/level/showText.json", - "smithText", + "questText", "50", - "towners/strytell/quests/butcher.txt" + "texts/cain/quests/theButcher.txt" ], "audio": { - "id": "storyt10", "file": "sfx/Towners/storyt10.wav", "play": true, "volume": "|game|soundVolume|" diff --git a/gamefiles/towners/strytell/quests/butcher.txt b/gamefiles/texts/cain/quests/theButcher.txt similarity index 100% rename from gamefiles/towners/strytell/quests/butcher.txt rename to gamefiles/texts/cain/quests/theButcher.txt diff --git a/gamefiles/texts/cain/quests/warlordOfBlood.json b/gamefiles/texts/cain/quests/warlordOfBlood.json new file mode 100755 index 00000000..39189081 --- /dev/null +++ b/gamefiles/texts/cain/quests/warlordOfBlood.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/cain/quests/warlordOfBlood.txt" + ], + "audio": { + "file": "sfx/Towners/storyt18.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/cain/quests/warlordOfBlood.txt b/gamefiles/texts/cain/quests/warlordOfBlood.txt new file mode 100755 index 00000000..d95ba472 --- /dev/null +++ b/gamefiles/texts/cain/quests/warlordOfBlood.txt @@ -0,0 +1,5 @@ +I know of only one legend that speaks of such a warrior as you describe. His story is found within the ancient chronicles of the Sin War... + +Stained by a thousand years of war, blood and death, the Warlord of Blood stands upon a mountain of his tattered victims. His dark blade screams a black curse to the living; a tortured invitation to any who would stand before this Executioner of Hell. + +It is also written that although he was once a mortal who fought beside the Legion of Darkness during the Sin War, he lost his humanity to his insatiable hunger for blood. \ No newline at end of file diff --git a/gamefiles/texts/farnham/gossip/gossip1.json b/gamefiles/texts/farnham/gossip/gossip1.json new file mode 100755 index 00000000..be523bd1 --- /dev/null +++ b/gamefiles/texts/farnham/gossip/gossip1.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/farnham/gossip/gossip1.txt" + ], + "audio": { + "file": "sfx/Towners/drunk23.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/farnham/gossip/gossip1.txt b/gamefiles/texts/farnham/gossip/gossip1.txt new file mode 100755 index 00000000..a0821908 --- /dev/null +++ b/gamefiles/texts/farnham/gossip/gossip1.txt @@ -0,0 +1 @@ +I wanna tell ya something, `cause I know all `bout this stuff. It's my specialty! This here is the best! Theee best! That other ale ain' no good since those stupid dogs. \ No newline at end of file diff --git a/gamefiles/texts/farnham/gossip/gossip10.json b/gamefiles/texts/farnham/gossip/gossip10.json new file mode 100755 index 00000000..4bb36ae9 --- /dev/null +++ b/gamefiles/texts/farnham/gossip/gossip10.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/farnham/gossip/gossip10.txt" + ], + "audio": { + "file": "sfx/Towners/drunk34.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/farnham/gossip/gossip10.txt b/gamefiles/texts/farnham/gossip/gossip10.txt new file mode 100755 index 00000000..53c5e08a --- /dev/null +++ b/gamefiles/texts/farnham/gossip/gossip10.txt @@ -0,0 +1 @@ +Wirt is a kid with more problems'n even me, and I know all about problems! Listen here, that kid got sweet deal, but he's been there, you know. Lost a leg. Gotta walk around on a piece of wood. So sad, so sad. \ No newline at end of file diff --git a/gamefiles/texts/farnham/gossip/gossip11.json b/gamefiles/texts/farnham/gossip/gossip11.json new file mode 100755 index 00000000..7bba7fe4 --- /dev/null +++ b/gamefiles/texts/farnham/gossip/gossip11.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/farnham/gossip/gossip11.txt" + ], + "audio": { + "file": "sfx/Towners/drunk35.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/farnham/gossip/gossip11.txt b/gamefiles/texts/farnham/gossip/gossip11.txt new file mode 100755 index 00000000..d4902730 --- /dev/null +++ b/gamefiles/texts/farnham/gossip/gossip11.txt @@ -0,0 +1 @@ +Odgen is the best man in town! I don't think his wife likes me much, but as long as she keeps tapping kegs, I' like her just fine. Seems like I've been spending more time with Odgen, you know, but he's so good to me. \ No newline at end of file diff --git a/gamefiles/texts/farnham/gossip/gossip2.json b/gamefiles/texts/farnham/gossip/gossip2.json new file mode 100755 index 00000000..68eb8d96 --- /dev/null +++ b/gamefiles/texts/farnham/gossip/gossip2.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/farnham/gossip/gossip2.txt" + ], + "audio": { + "file": "sfx/Towners/drunk24.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/farnham/gossip/gossip2.txt b/gamefiles/texts/farnham/gossip/gossip2.txt new file mode 100755 index 00000000..ed44479d --- /dev/null +++ b/gamefiles/texts/farnham/gossip/gossip2.txt @@ -0,0 +1 @@ +No one ever lis... listens to me. Somewhere, I ain 't too sure, but somewhere under the church - a whole pile `o dough!. Gleamin' and shinin', just waitin' for someone to get it. \ No newline at end of file diff --git a/gamefiles/texts/farnham/gossip/gossip3.json b/gamefiles/texts/farnham/gossip/gossip3.json new file mode 100755 index 00000000..425723e3 --- /dev/null +++ b/gamefiles/texts/farnham/gossip/gossip3.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/farnham/gossip/gossip3.txt" + ], + "audio": { + "file": "sfx/Towners/drunk25.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/farnham/gossip/gossip3.txt b/gamefiles/texts/farnham/gossip/gossip3.txt new file mode 100755 index 00000000..894b04fd --- /dev/null +++ b/gamefiles/texts/farnham/gossip/gossip3.txt @@ -0,0 +1 @@ +I know you got your ideas, and I know you'r not gonna believe this, but that weapon you got there? It just ain't no good against those big brutes. Oh, I don't care what Griswold says, they can't make anything like they used to `n the old days. \ No newline at end of file diff --git a/gamefiles/texts/farnham/gossip/gossip4.json b/gamefiles/texts/farnham/gossip/gossip4.json new file mode 100755 index 00000000..907e50c9 --- /dev/null +++ b/gamefiles/texts/farnham/gossip/gossip4.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/farnham/gossip/gossip4.txt" + ], + "audio": { + "file": "sfx/Towners/drunk26.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/farnham/gossip/gossip4.txt b/gamefiles/texts/farnham/gossip/gossip4.txt new file mode 100755 index 00000000..282685a5 --- /dev/null +++ b/gamefiles/texts/farnham/gossip/gossip4.txt @@ -0,0 +1 @@ +If I was you - and I ain't, but if I was - I'd sell all that stuff you got, and get out of here. That boy out there, he's always got somethin good, but you gotta give him some gold , or he won 't even show you what he's got. \ No newline at end of file diff --git a/gamefiles/texts/farnham/gossip/gossip5.json b/gamefiles/texts/farnham/gossip/gossip5.json new file mode 100755 index 00000000..8e1874b8 --- /dev/null +++ b/gamefiles/texts/farnham/gossip/gossip5.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/farnham/gossip/gossip5.txt" + ], + "audio": { + "file": "sfx/Towners/drunk28.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/farnham/gossip/gossip5.txt b/gamefiles/texts/farnham/gossip/gossip5.txt new file mode 100755 index 00000000..4a025df9 --- /dev/null +++ b/gamefiles/texts/farnham/gossip/gossip5.txt @@ -0,0 +1 @@ +The gal who brings the drinks? Oh, yeah. what a pretty lady. So nice, too! \ No newline at end of file diff --git a/gamefiles/texts/farnham/gossip/gossip6.json b/gamefiles/texts/farnham/gossip/gossip6.json new file mode 100755 index 00000000..bf153585 --- /dev/null +++ b/gamefiles/texts/farnham/gossip/gossip6.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/farnham/gossip/gossip6.txt" + ], + "audio": { + "file": "sfx/Towners/drunk29.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/farnham/gossip/gossip6.txt b/gamefiles/texts/farnham/gossip/gossip6.txt new file mode 100755 index 00000000..f0714a18 --- /dev/null +++ b/gamefiles/texts/farnham/gossip/gossip6.txt @@ -0,0 +1 @@ +Why don't that old crone do something for a change? Sure, sure, she's got stuff, but you listen to me - she's unnatural! She doesn't eat or drink, and you can't trust somebody that desn't drink at least a little. \ No newline at end of file diff --git a/gamefiles/texts/farnham/gossip/gossip7.json b/gamefiles/texts/farnham/gossip/gossip7.json new file mode 100755 index 00000000..84970b81 --- /dev/null +++ b/gamefiles/texts/farnham/gossip/gossip7.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/farnham/gossip/gossip7.txt" + ], + "audio": { + "file": "sfx/Towners/drunk30.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/farnham/gossip/gossip7.txt b/gamefiles/texts/farnham/gossip/gossip7.txt new file mode 100755 index 00000000..d456f3c0 --- /dev/null +++ b/gamefiles/texts/farnham/gossip/gossip7.txt @@ -0,0 +1 @@ +Cain isn't what he says he is. Sure, sure, he talks a good story - some of `hm are real scary, or funny - but he knows more than he knows he knows. \ No newline at end of file diff --git a/gamefiles/texts/farnham/gossip/gossip8.json b/gamefiles/texts/farnham/gossip/gossip8.json new file mode 100755 index 00000000..c0550e19 --- /dev/null +++ b/gamefiles/texts/farnham/gossip/gossip8.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/farnham/gossip/gossip8.txt" + ], + "audio": { + "file": "sfx/Towners/drunk31.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/farnham/gossip/gossip8.txt b/gamefiles/texts/farnham/gossip/gossip8.txt new file mode 100755 index 00000000..fcf97ae4 --- /dev/null +++ b/gamefiles/texts/farnham/gossip/gossip8.txt @@ -0,0 +1 @@ +Griswold? Good ol' Griswold! I love him like a brother. We fought together, you know, back when we. Lazarus Lazarus Lazaruuuus! \ No newline at end of file diff --git a/gamefiles/texts/farnham/gossip/gossip9.json b/gamefiles/texts/farnham/gossip/gossip9.json new file mode 100755 index 00000000..12dc03c7 --- /dev/null +++ b/gamefiles/texts/farnham/gossip/gossip9.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/farnham/gossip/gossip9.txt" + ], + "audio": { + "file": "sfx/Towners/drunk32.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/farnham/gossip/gossip9.txt b/gamefiles/texts/farnham/gossip/gossip9.txt new file mode 100755 index 00000000..c2158b41 --- /dev/null +++ b/gamefiles/texts/farnham/gossip/gossip9.txt @@ -0,0 +1 @@ +I like Pepin. He really tries, you know? Listen here, you should make sure you get to know him. Good fella like him, with people always wantin ' help. Hey, I guess that'd be kinda like you are, hero. I was a hero too, ya know. \ No newline at end of file diff --git a/gamefiles/texts/farnham/quests/anvilOfFury.json b/gamefiles/texts/farnham/quests/anvilOfFury.json new file mode 100755 index 00000000..acd84928 --- /dev/null +++ b/gamefiles/texts/farnham/quests/anvilOfFury.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/farnham/quests/anvilOfFury.txt" + ], + "audio": { + "file": "sfx/Towners/drunk14.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/farnham/quests/anvilOfFury.txt b/gamefiles/texts/farnham/quests/anvilOfFury.txt new file mode 100755 index 00000000..6ac00541 --- /dev/null +++ b/gamefiles/texts/farnham/quests/anvilOfFury.txt @@ -0,0 +1 @@ +Griswold can't sell his anvil. What will he do then? And I'd be angry too if someone took my anvil! \ No newline at end of file diff --git a/gamefiles/texts/farnham/quests/archbishopLazarus.json b/gamefiles/texts/farnham/quests/archbishopLazarus.json new file mode 100755 index 00000000..5e063936 --- /dev/null +++ b/gamefiles/texts/farnham/quests/archbishopLazarus.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/farnham/quests/archbishopLazarus.txt" + ], + "audio": { + "file": "sfx/Towners/drunk03.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/farnham/quests/archbishopLazarus.txt b/gamefiles/texts/farnham/quests/archbishopLazarus.txt new file mode 100755 index 00000000..50d82459 --- /dev/null +++ b/gamefiles/texts/farnham/quests/archbishopLazarus.txt @@ -0,0 +1 @@ +They stab, then bite, then they're all around you. Liar! Liar! They're all dead! Dead! Do you hear me? They just keep falling and falling... their blood spilling out all over the floor... All his fault... \ No newline at end of file diff --git a/gamefiles/texts/farnham/quests/arkainesValor.json b/gamefiles/texts/farnham/quests/arkainesValor.json new file mode 100755 index 00000000..b8b070d2 --- /dev/null +++ b/gamefiles/texts/farnham/quests/arkainesValor.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/farnham/quests/arkainesValor.txt" + ], + "audio": { + "file": "sfx/Towners/drunk06.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/farnham/quests/arkainesValor.txt b/gamefiles/texts/farnham/quests/arkainesValor.txt new file mode 100755 index 00000000..5ecd4cb8 --- /dev/null +++ b/gamefiles/texts/farnham/quests/arkainesValor.txt @@ -0,0 +1 @@ +Zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz... \ No newline at end of file diff --git a/gamefiles/texts/farnham/quests/blackMushroom.json b/gamefiles/texts/farnham/quests/blackMushroom.json new file mode 100755 index 00000000..08fded80 --- /dev/null +++ b/gamefiles/texts/farnham/quests/blackMushroom.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/farnham/quests/blackMushroom.txt" + ], + "audio": { + "file": "sfx/Towners/drunk20.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/farnham/quests/blackMushroom.txt b/gamefiles/texts/farnham/quests/blackMushroom.txt new file mode 100755 index 00000000..199a2fce --- /dev/null +++ b/gamefiles/texts/farnham/quests/blackMushroom.txt @@ -0,0 +1 @@ +Ogden mixes a mean Black Mushroom, but I get sick if I drink that. Listen, listen... Here's the secret - moderation is the key! \ No newline at end of file diff --git a/gamefiles/texts/farnham/quests/chamberOfBone.json b/gamefiles/texts/farnham/quests/chamberOfBone.json new file mode 100755 index 00000000..3d4d4362 --- /dev/null +++ b/gamefiles/texts/farnham/quests/chamberOfBone.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/farnham/quests/chamberOfBone.txt" + ], + "audio": { + "file": "sfx/Towners/drunk07.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/farnham/quests/chamberOfBone.txt b/gamefiles/texts/farnham/quests/chamberOfBone.txt new file mode 100755 index 00000000..a34d60b4 --- /dev/null +++ b/gamefiles/texts/farnham/quests/chamberOfBone.txt @@ -0,0 +1 @@ +Okay, so listen. There's this Chamber of Wood, see. And his wife, you know - her - tells the tree... cause you gotta wait. Then I says, that might work against him, but if you think I'm gonna pay for this... You... uh... yeah. \ No newline at end of file diff --git a/gamefiles/texts/farnham/quests/hallsOfTheBlind.json b/gamefiles/texts/farnham/quests/hallsOfTheBlind.json new file mode 100755 index 00000000..fb7a5b53 --- /dev/null +++ b/gamefiles/texts/farnham/quests/hallsOfTheBlind.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/farnham/quests/hallsOfTheBlind.txt" + ], + "audio": { + "file": "sfx/Towners/drunk12.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/farnham/quests/hallsOfTheBlind.txt b/gamefiles/texts/farnham/quests/hallsOfTheBlind.txt new file mode 100755 index 00000000..8d0b93b4 --- /dev/null +++ b/gamefiles/texts/farnham/quests/hallsOfTheBlind.txt @@ -0,0 +1 @@ +Look here... that's pretty funny, huh? Get it? Blind - look here? \ No newline at end of file diff --git a/gamefiles/texts/farnham/quests/lachdanan.json b/gamefiles/texts/farnham/quests/lachdanan.json new file mode 100755 index 00000000..8bb820d9 --- /dev/null +++ b/gamefiles/texts/farnham/quests/lachdanan.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/farnham/quests/lachdanan.txt" + ], + "audio": { + "file": "sfx/Towners/drunk13.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/farnham/quests/lachdanan.txt b/gamefiles/texts/farnham/quests/lachdanan.txt new file mode 100755 index 00000000..8f46ed67 --- /dev/null +++ b/gamefiles/texts/farnham/quests/lachdanan.txt @@ -0,0 +1 @@ +Lachdanan is dead. Everybody knows that, and you can't fool me into thinking any other way. You can't talk to the dead. I know! \ No newline at end of file diff --git a/gamefiles/texts/farnham/quests/magicRock.json b/gamefiles/texts/farnham/quests/magicRock.json new file mode 100755 index 00000000..760eb855 --- /dev/null +++ b/gamefiles/texts/farnham/quests/magicRock.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/farnham/quests/magicRock.txt" + ], + "audio": { + "file": "sfx/Towners/drunk19.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/farnham/quests/magicRock.txt b/gamefiles/texts/farnham/quests/magicRock.txt new file mode 100755 index 00000000..1dee68e3 --- /dev/null +++ b/gamefiles/texts/farnham/quests/magicRock.txt @@ -0,0 +1 @@ +I used to have a nice ring; it was a really expensive one, with blue and green and red and silver. Don't remember what happened to it, though. I really miss that ring... \ No newline at end of file diff --git a/gamefiles/texts/farnham/quests/ogdensSign.json b/gamefiles/texts/farnham/quests/ogdensSign.json new file mode 100755 index 00000000..0cd9b557 --- /dev/null +++ b/gamefiles/texts/farnham/quests/ogdensSign.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/farnham/quests/ogdensSign.txt" + ], + "audio": { + "file": "sfx/Towners/drunk02.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/farnham/quests/ogdensSign.txt b/gamefiles/texts/farnham/quests/ogdensSign.txt new file mode 100755 index 00000000..1c83c06e --- /dev/null +++ b/gamefiles/texts/farnham/quests/ogdensSign.txt @@ -0,0 +1 @@ +You know what I think? Somebody took that sign, and they gonna want lots of money for it. If I was Ogden... and I'm not, but if I was... I'd just buy a new sign with some pretty drawing on it. Maybe a nice mug of ale or a piece of cheese... \ No newline at end of file diff --git a/gamefiles/texts/farnham/quests/poisonedWater.json b/gamefiles/texts/farnham/quests/poisonedWater.json new file mode 100755 index 00000000..9258714b --- /dev/null +++ b/gamefiles/texts/farnham/quests/poisonedWater.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/farnham/quests/poisonedWater.txt" + ], + "audio": { + "file": "sfx/Towners/drunk04.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/farnham/quests/poisonedWater.txt b/gamefiles/texts/farnham/quests/poisonedWater.txt new file mode 100755 index 00000000..227678e7 --- /dev/null +++ b/gamefiles/texts/farnham/quests/poisonedWater.txt @@ -0,0 +1 @@ +You drink water? \ No newline at end of file diff --git a/gamefiles/texts/farnham/quests/skeletonKing.json b/gamefiles/texts/farnham/quests/skeletonKing.json new file mode 100755 index 00000000..969a79ae --- /dev/null +++ b/gamefiles/texts/farnham/quests/skeletonKing.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/farnham/quests/skeletonKing.txt" + ], + "audio": { + "file": "sfx/Towners/drunk01.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/farnham/quests/skeletonKing.txt b/gamefiles/texts/farnham/quests/skeletonKing.txt new file mode 100755 index 00000000..404555ea --- /dev/null +++ b/gamefiles/texts/farnham/quests/skeletonKing.txt @@ -0,0 +1 @@ +I don't care about that. Listen, no skeleton is gonna be MY king. Leoric is King. King, so you hear me? HAIL TO THE KING! \ No newline at end of file diff --git a/gamefiles/towners/drunk/quests/butcher.json b/gamefiles/texts/farnham/quests/theButcher.json similarity index 68% rename from gamefiles/towners/drunk/quests/butcher.json rename to gamefiles/texts/farnham/quests/theButcher.json index bd7dfa55..94a4a1f1 100755 --- a/gamefiles/towners/drunk/quests/butcher.json +++ b/gamefiles/texts/farnham/quests/theButcher.json @@ -1,12 +1,11 @@ { "load": [ "ui/level/showText.json", - "smithText", + "questText", "50", - "towners/drunk/quests/butcher.txt" + "texts/farnham/quests/theButcher.txt" ], "audio": { - "id": "drunk10", "file": "sfx/Towners/drunk10.wav", "play": true, "volume": "|game|soundVolume|" diff --git a/gamefiles/towners/drunk/quests/butcher.txt b/gamefiles/texts/farnham/quests/theButcher.txt similarity index 100% rename from gamefiles/towners/drunk/quests/butcher.txt rename to gamefiles/texts/farnham/quests/theButcher.txt diff --git a/gamefiles/texts/farnham/quests/warlordOfBlood.json b/gamefiles/texts/farnham/quests/warlordOfBlood.json new file mode 100755 index 00000000..25455422 --- /dev/null +++ b/gamefiles/texts/farnham/quests/warlordOfBlood.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/farnham/quests/warlordOfBlood.txt" + ], + "audio": { + "file": "sfx/Towners/drunk17.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/farnham/quests/warlordOfBlood.txt b/gamefiles/texts/farnham/quests/warlordOfBlood.txt new file mode 100755 index 00000000..8cb9e14e --- /dev/null +++ b/gamefiles/texts/farnham/quests/warlordOfBlood.txt @@ -0,0 +1 @@ +Always you gotta talk about blood? What about flowers, and sunshine, and that pretty girl that brings the drinks. Listen here, friend - you're obsessive, you know that? \ No newline at end of file diff --git a/gamefiles/texts/gillian/gossip/gossip1.json b/gamefiles/texts/gillian/gossip/gossip1.json new file mode 100755 index 00000000..59f06f94 --- /dev/null +++ b/gamefiles/texts/gillian/gossip/gossip1.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/gillian/gossip/gossip1.txt" + ], + "audio": { + "file": "sfx/Towners/bmaid32.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/gillian/gossip/gossip1.txt b/gamefiles/texts/gillian/gossip/gossip1.txt new file mode 100755 index 00000000..2d347841 --- /dev/null +++ b/gamefiles/texts/gillian/gossip/gossip1.txt @@ -0,0 +1 @@ +My grandmother had a dream that you would come and talk to me. She has visions, you know and can see into the future. \ No newline at end of file diff --git a/gamefiles/texts/gillian/gossip/gossip2.json b/gamefiles/texts/gillian/gossip/gossip2.json new file mode 100755 index 00000000..0f7ac87a --- /dev/null +++ b/gamefiles/texts/gillian/gossip/gossip2.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/gillian/gossip/gossip2.txt" + ], + "audio": { + "file": "sfx/Towners/bmaid33.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/gillian/gossip/gossip2.txt b/gamefiles/texts/gillian/gossip/gossip2.txt new file mode 100755 index 00000000..9efbe5b7 --- /dev/null +++ b/gamefiles/texts/gillian/gossip/gossip2.txt @@ -0,0 +1 @@ +The woman at the edge of town is a witch! She seems nice enough, and her name, Adria, is very pleasing to the ear, but I am very afraid of her. It would take someone quite brave, like you, to see what she is doing out there. \ No newline at end of file diff --git a/gamefiles/texts/gillian/gossip/gossip3.json b/gamefiles/texts/gillian/gossip/gossip3.json new file mode 100755 index 00000000..f79cc20f --- /dev/null +++ b/gamefiles/texts/gillian/gossip/gossip3.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/gillian/gossip/gossip3.txt" + ], + "audio": { + "file": "sfx/Towners/bmaid34.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/gillian/gossip/gossip3.txt b/gamefiles/texts/gillian/gossip/gossip3.txt new file mode 100755 index 00000000..6333cb0e --- /dev/null +++ b/gamefiles/texts/gillian/gossip/gossip3.txt @@ -0,0 +1 @@ +Our Blacksmith is a point of pride to the people of Tristram. Not only is he a master craftsman who has won many contests within his guild, but he received praises from our King Leoric himself - may his soul rest in peace. Griswold is also a great hero; just ask Cain. \ No newline at end of file diff --git a/gamefiles/texts/gillian/gossip/gossip4.json b/gamefiles/texts/gillian/gossip/gossip4.json new file mode 100755 index 00000000..adf21f74 --- /dev/null +++ b/gamefiles/texts/gillian/gossip/gossip4.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/gillian/gossip/gossip4.txt" + ], + "audio": { + "file": "sfx/Towners/bmaid35.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/gillian/gossip/gossip4.txt b/gamefiles/texts/gillian/gossip/gossip4.txt new file mode 100755 index 00000000..f8ed9ebf --- /dev/null +++ b/gamefiles/texts/gillian/gossip/gossip4.txt @@ -0,0 +1 @@ +Cain has been the storyteller of Tristram for as long as I can remember. He knows so much, and can tell you just about anything about almost everything. \ No newline at end of file diff --git a/gamefiles/texts/gillian/gossip/gossip5.json b/gamefiles/texts/gillian/gossip/gossip5.json new file mode 100755 index 00000000..57b2d66f --- /dev/null +++ b/gamefiles/texts/gillian/gossip/gossip5.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/gillian/gossip/gossip5.txt" + ], + "audio": { + "file": "sfx/Towners/bmaid36.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/gillian/gossip/gossip5.txt b/gamefiles/texts/gillian/gossip/gossip5.txt new file mode 100755 index 00000000..6fa7e192 --- /dev/null +++ b/gamefiles/texts/gillian/gossip/gossip5.txt @@ -0,0 +1 @@ +Farnham is a drunkard who fills his belly with ale and everyone else's ears with nonsense. I know that both Pepin and Ogden feel sympathy for him, but I get so frustrated watching him slip farther and farther into a befuddled stupor every night. \ No newline at end of file diff --git a/gamefiles/texts/gillian/gossip/gossip6.json b/gamefiles/texts/gillian/gossip/gossip6.json new file mode 100755 index 00000000..3b2c2d43 --- /dev/null +++ b/gamefiles/texts/gillian/gossip/gossip6.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/gillian/gossip/gossip6.txt" + ], + "audio": { + "file": "sfx/Towners/bmaid37.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/gillian/gossip/gossip6.txt b/gamefiles/texts/gillian/gossip/gossip6.txt new file mode 100755 index 00000000..b163f480 --- /dev/null +++ b/gamefiles/texts/gillian/gossip/gossip6.txt @@ -0,0 +1 @@ +Pepin saved my grandmother's life, and I know that I can never repay him for that. His ability to heal any sickness is more powerful than the mightiest sword and more mysterious than any spell you can name. If you ever are in need of healing, Pepin can help you. \ No newline at end of file diff --git a/gamefiles/texts/gillian/gossip/gossip7.json b/gamefiles/texts/gillian/gossip/gossip7.json new file mode 100755 index 00000000..5a6ef7b9 --- /dev/null +++ b/gamefiles/texts/gillian/gossip/gossip7.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/gillian/gossip/gossip7.txt" + ], + "audio": { + "file": "sfx/Towners/bmaid39.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/gillian/gossip/gossip7.txt b/gamefiles/texts/gillian/gossip/gossip7.txt new file mode 100755 index 00000000..11298a78 --- /dev/null +++ b/gamefiles/texts/gillian/gossip/gossip7.txt @@ -0,0 +1 @@ +I grew up with Wirt's mother, Canace. Although she was only slightly hurt when those hideous creatures stole him, she never recovered. I think she died of a broken heart. Wirt has become a mean-spirited youngster, looking only to profit from the sweat of others. I know that he suffered and has seen horrors that I cannot even imagine, but some of that darkness hangs over him still. \ No newline at end of file diff --git a/gamefiles/texts/gillian/gossip/gossip8.json b/gamefiles/texts/gillian/gossip/gossip8.json new file mode 100755 index 00000000..4f152ec3 --- /dev/null +++ b/gamefiles/texts/gillian/gossip/gossip8.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/gillian/gossip/gossip8.txt" + ], + "audio": { + "file": "sfx/Towners/bmaid40.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/gillian/gossip/gossip8.txt b/gamefiles/texts/gillian/gossip/gossip8.txt new file mode 100755 index 00000000..5ffedbec --- /dev/null +++ b/gamefiles/texts/gillian/gossip/gossip8.txt @@ -0,0 +1 @@ +Ogden and his wife have taken me and my grandmother into their home and have even let me earn a few gold pieces by working at the inn. I owe so much to them, and hope one day to leave this place and help them start a grand hotel in the east. \ No newline at end of file diff --git a/gamefiles/texts/gillian/quests/anvilOfFury.json b/gamefiles/texts/gillian/quests/anvilOfFury.json new file mode 100755 index 00000000..b31b7211 --- /dev/null +++ b/gamefiles/texts/gillian/quests/anvilOfFury.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/gillian/quests/anvilOfFury.txt" + ], + "audio": { + "file": "sfx/Towners/bmaid12.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/gillian/quests/anvilOfFury.txt b/gamefiles/texts/gillian/quests/anvilOfFury.txt new file mode 100755 index 00000000..6a16dea5 --- /dev/null +++ b/gamefiles/texts/gillian/quests/anvilOfFury.txt @@ -0,0 +1 @@ +Griswold's father used to tell some of us when we were growing up about a giant anvil that was used to make mighty weapons. He said that when a hammer was struck upon this anvil, the ground would shake with a great fury. Whenever the Earth moves, I always remember that story... \ No newline at end of file diff --git a/gamefiles/texts/gillian/quests/archbishopLazarus.json b/gamefiles/texts/gillian/quests/archbishopLazarus.json new file mode 100755 index 00000000..ea83d25a --- /dev/null +++ b/gamefiles/texts/gillian/quests/archbishopLazarus.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/gillian/quests/archbishopLazarus.txt" + ], + "audio": { + "file": "sfx/Towners/bmaid03.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/gillian/quests/archbishopLazarus.txt b/gamefiles/texts/gillian/quests/archbishopLazarus.txt new file mode 100755 index 00000000..e206c950 --- /dev/null +++ b/gamefiles/texts/gillian/quests/archbishopLazarus.txt @@ -0,0 +1 @@ +I remember Lazarus as being a very kind and giving man. He spoke at my mother's funeral, and was supportive of my grandmother and myself in a very troubled time. I pray every night that somehow, he is still alive and safe. \ No newline at end of file diff --git a/gamefiles/texts/gillian/quests/arkainesValor.json b/gamefiles/texts/gillian/quests/arkainesValor.json new file mode 100755 index 00000000..6ff2023a --- /dev/null +++ b/gamefiles/texts/gillian/quests/arkainesValor.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/gillian/quests/arkainesValor.txt" + ], + "audio": { + "file": "sfx/Towners/bmaid13.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/gillian/quests/arkainesValor.txt b/gamefiles/texts/gillian/quests/arkainesValor.txt new file mode 100755 index 00000000..a1e65549 --- /dev/null +++ b/gamefiles/texts/gillian/quests/arkainesValor.txt @@ -0,0 +1 @@ +The story of the magic armor called Valor is something I often heard the boys talk about. You had better ask one of the men in the village. \ No newline at end of file diff --git a/gamefiles/texts/gillian/quests/blackMushroom.json b/gamefiles/texts/gillian/quests/blackMushroom.json new file mode 100755 index 00000000..37e9fa68 --- /dev/null +++ b/gamefiles/texts/gillian/quests/blackMushroom.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/gillian/quests/blackMushroom.txt" + ], + "audio": { + "file": "sfx/Towners/bmaid19.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/gillian/quests/blackMushroom.txt b/gamefiles/texts/gillian/quests/blackMushroom.txt new file mode 100755 index 00000000..4bbe0920 --- /dev/null +++ b/gamefiles/texts/gillian/quests/blackMushroom.txt @@ -0,0 +1 @@ +I think Ogden might have some mushrooms in the storage cellar. Why don't you ask him? \ No newline at end of file diff --git a/gamefiles/texts/gillian/quests/chamberOfBone.json b/gamefiles/texts/gillian/quests/chamberOfBone.json new file mode 100755 index 00000000..b7d99f7a --- /dev/null +++ b/gamefiles/texts/gillian/quests/chamberOfBone.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/gillian/quests/chamberOfBone.txt" + ], + "audio": { + "file": "sfx/Towners/bmaid06.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/gillian/quests/chamberOfBone.txt b/gamefiles/texts/gillian/quests/chamberOfBone.txt new file mode 100755 index 00000000..862dbc1c --- /dev/null +++ b/gamefiles/texts/gillian/quests/chamberOfBone.txt @@ -0,0 +1 @@ +I am afraid that I haven't heard anything about that. Perhaps Cain the storyteller could be of some help. \ No newline at end of file diff --git a/gamefiles/texts/gillian/quests/hallsOfTheBlind.json b/gamefiles/texts/gillian/quests/hallsOfTheBlind.json new file mode 100755 index 00000000..1dca744e --- /dev/null +++ b/gamefiles/texts/gillian/quests/hallsOfTheBlind.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/gillian/quests/hallsOfTheBlind.txt" + ], + "audio": { + "file": "sfx/Towners/bmaid10.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/gillian/quests/hallsOfTheBlind.txt b/gamefiles/texts/gillian/quests/hallsOfTheBlind.txt new file mode 100755 index 00000000..56439904 --- /dev/null +++ b/gamefiles/texts/gillian/quests/hallsOfTheBlind.txt @@ -0,0 +1 @@ +If you have questions about blindness, you should talk to Pepin. I know that he gave my grandmother a potion that helped clear her vision, so maybe he can help you, too. \ No newline at end of file diff --git a/gamefiles/texts/gillian/quests/lachdanan.json b/gamefiles/texts/gillian/quests/lachdanan.json new file mode 100755 index 00000000..b576b412 --- /dev/null +++ b/gamefiles/texts/gillian/quests/lachdanan.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/gillian/quests/lachdanan.txt" + ], + "audio": { + "file": "sfx/Towners/bmaid11.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/gillian/quests/lachdanan.txt b/gamefiles/texts/gillian/quests/lachdanan.txt new file mode 100755 index 00000000..4cc4c45a --- /dev/null +++ b/gamefiles/texts/gillian/quests/lachdanan.txt @@ -0,0 +1 @@ +I've never heard of a Lachdanan before. I'm sorry, but I don't think that I can be of much help to you. \ No newline at end of file diff --git a/gamefiles/texts/gillian/quests/magicRock.json b/gamefiles/texts/gillian/quests/magicRock.json new file mode 100755 index 00000000..b2e9cdb2 --- /dev/null +++ b/gamefiles/texts/gillian/quests/magicRock.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/gillian/quests/magicRock.txt" + ], + "audio": { + "file": "sfx/Towners/bmaid18.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/gillian/quests/magicRock.txt b/gamefiles/texts/gillian/quests/magicRock.txt new file mode 100755 index 00000000..7463d5a5 --- /dev/null +++ b/gamefiles/texts/gillian/quests/magicRock.txt @@ -0,0 +1,3 @@ +Well, a caravan of some very important people did stop here, but that was quite a while ago. They had strange accents and were starting on a long journey, as I recall. + +I don't see how you could hope to find anything that they would have been carrying. \ No newline at end of file diff --git a/gamefiles/texts/gillian/quests/ogdensSign.json b/gamefiles/texts/gillian/quests/ogdensSign.json new file mode 100755 index 00000000..31e51b97 --- /dev/null +++ b/gamefiles/texts/gillian/quests/ogdensSign.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/gillian/quests/ogdensSign.txt" + ], + "audio": { + "file": "sfx/Towners/bmaid02.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/gillian/quests/ogdensSign.txt b/gamefiles/texts/gillian/quests/ogdensSign.txt new file mode 100755 index 00000000..4afe5162 --- /dev/null +++ b/gamefiles/texts/gillian/quests/ogdensSign.txt @@ -0,0 +1 @@ +Oh, my! Is that where the sign went? My grandmother and I must have slept right through the whole thing. Thank the Light that those monsters didn't attack the Inn. \ No newline at end of file diff --git a/gamefiles/texts/gillian/quests/poisonedWater.json b/gamefiles/texts/gillian/quests/poisonedWater.json new file mode 100755 index 00000000..18527e9c --- /dev/null +++ b/gamefiles/texts/gillian/quests/poisonedWater.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/gillian/quests/poisonedWater.txt" + ], + "audio": { + "file": "sfx/Towners/bmaid04.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/gillian/quests/poisonedWater.txt b/gamefiles/texts/gillian/quests/poisonedWater.txt new file mode 100755 index 00000000..e2ec6253 --- /dev/null +++ b/gamefiles/texts/gillian/quests/poisonedWater.txt @@ -0,0 +1 @@ +My grandmother is very weak, and Garda says that we cannot drink the water from the wells. Please, can you do something to help us? \ No newline at end of file diff --git a/gamefiles/texts/gillian/quests/skeletonKing.json b/gamefiles/texts/gillian/quests/skeletonKing.json new file mode 100755 index 00000000..bce92ecb --- /dev/null +++ b/gamefiles/texts/gillian/quests/skeletonKing.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/gillian/quests/skeletonKing.txt" + ], + "audio": { + "file": "sfx/Towners/bmaid01.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/gillian/quests/skeletonKing.txt b/gamefiles/texts/gillian/quests/skeletonKing.txt new file mode 100755 index 00000000..8ce04a73 --- /dev/null +++ b/gamefiles/texts/gillian/quests/skeletonKing.txt @@ -0,0 +1 @@ +I don't like to think about how the King died. I like to remember him for the kind and just ruler that he was. His death was so sad and seemed very wrong, somehow. \ No newline at end of file diff --git a/gamefiles/towners/gillian/quests/butcher.json b/gamefiles/texts/gillian/quests/theButcher.json similarity index 68% rename from gamefiles/towners/gillian/quests/butcher.json rename to gamefiles/texts/gillian/quests/theButcher.json index 4429f266..e2a6cf57 100755 --- a/gamefiles/towners/gillian/quests/butcher.json +++ b/gamefiles/texts/gillian/quests/theButcher.json @@ -1,12 +1,11 @@ { "load": [ "ui/level/showText.json", - "smithText", + "questText", "25", - "towners/gillian/quests/butcher.txt" + "texts/gillian/quests/theButcher.txt" ], "audio": { - "id": "bmaid08", "file": "sfx/Towners/bmaid08.wav", "play": true, "volume": "|game|soundVolume|" diff --git a/gamefiles/towners/gillian/quests/butcher.txt b/gamefiles/texts/gillian/quests/theButcher.txt similarity index 100% rename from gamefiles/towners/gillian/quests/butcher.txt rename to gamefiles/texts/gillian/quests/theButcher.txt diff --git a/gamefiles/texts/gillian/quests/warlordOfBlood.json b/gamefiles/texts/gillian/quests/warlordOfBlood.json new file mode 100755 index 00000000..9b44fe13 --- /dev/null +++ b/gamefiles/texts/gillian/quests/warlordOfBlood.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/gillian/quests/warlordOfBlood.txt" + ], + "audio": { + "file": "sfx/Towners/bmaid16.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/gillian/quests/warlordOfBlood.txt b/gamefiles/texts/gillian/quests/warlordOfBlood.txt new file mode 100755 index 00000000..8ce9aad8 --- /dev/null +++ b/gamefiles/texts/gillian/quests/warlordOfBlood.txt @@ -0,0 +1 @@ +If you are to battle such a fierce opponent, may Light be your guide and your defender. I will keep you in my thoughts. \ No newline at end of file diff --git a/gamefiles/texts/griswold/gossip/gossip1.json b/gamefiles/texts/griswold/gossip/gossip1.json new file mode 100755 index 00000000..f7fea98e --- /dev/null +++ b/gamefiles/texts/griswold/gossip/gossip1.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/griswold/gossip/gossip1.txt" + ], + "audio": { + "file": "sfx/Towners/bsmith45.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/griswold/gossip/gossip1.txt b/gamefiles/texts/griswold/gossip/gossip1.txt new file mode 100755 index 00000000..46b9479b --- /dev/null +++ b/gamefiles/texts/griswold/gossip/gossip1.txt @@ -0,0 +1 @@ +If you're looking for a good weapon, let me show this to you. Take your basic blunt weapon, such as a mace. Works like a charm against most of those undying horrors down there, and there's nothing better to shatter skinny little skeletons! \ No newline at end of file diff --git a/gamefiles/texts/griswold/gossip/gossip10.json b/gamefiles/texts/griswold/gossip/gossip10.json new file mode 100755 index 00000000..9f2c1653 --- /dev/null +++ b/gamefiles/texts/griswold/gossip/gossip10.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/griswold/gossip/gossip10.txt" + ], + "audio": { + "file": "sfx/Towners/bsmith55.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/griswold/gossip/gossip10.txt b/gamefiles/texts/griswold/gossip/gossip10.txt new file mode 100755 index 00000000..3380ef10 --- /dev/null +++ b/gamefiles/texts/griswold/gossip/gossip10.txt @@ -0,0 +1 @@ +That lad is going to get himself into serious trouble... or I guess I should say, again. I've tried to interest him in working here and learning an honest trade, but he prefers the high profits of dealing in goods of dubious origin. I cannot hold that against him after what happened to him, but I do wish he would at least be careful. \ No newline at end of file diff --git a/gamefiles/texts/griswold/gossip/gossip11.json b/gamefiles/texts/griswold/gossip/gossip11.json new file mode 100755 index 00000000..b118e47e --- /dev/null +++ b/gamefiles/texts/griswold/gossip/gossip11.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/griswold/gossip/gossip11.txt" + ], + "audio": { + "file": "sfx/Towners/bsmith56.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/griswold/gossip/gossip11.txt b/gamefiles/texts/griswold/gossip/gossip11.txt new file mode 100755 index 00000000..e2164fe3 --- /dev/null +++ b/gamefiles/texts/griswold/gossip/gossip11.txt @@ -0,0 +1 @@ +The Innkeeper has little business and no real way of turning a profit. He manages to make ends meet by providing food and lodging for those who occasionally drift through the village, but they are as likely to sneak off into the night as they are to pay him. If it weren't for the stores of grains and dried meats he kept in his cellar, why, most of us would have starved during that first year when the entire countryside was overrun by demons. \ No newline at end of file diff --git a/gamefiles/texts/griswold/gossip/gossip2.json b/gamefiles/texts/griswold/gossip/gossip2.json new file mode 100755 index 00000000..43868c7c --- /dev/null +++ b/gamefiles/texts/griswold/gossip/gossip2.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/griswold/gossip/gossip2.txt" + ], + "audio": { + "file": "sfx/Towners/bsmith46.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/griswold/gossip/gossip2.txt b/gamefiles/texts/griswold/gossip/gossip2.txt new file mode 100755 index 00000000..e14f3b67 --- /dev/null +++ b/gamefiles/texts/griswold/gossip/gossip2.txt @@ -0,0 +1 @@ +The axe? Aye, that's a good weapon, balanced against any foe. Look how it cleaves the air, and then imagine a nice fat demon head in its path. Keep in mind, however, that it is slow to swing - but talk about dealing a heavy blow! \ No newline at end of file diff --git a/gamefiles/texts/griswold/gossip/gossip3.json b/gamefiles/texts/griswold/gossip/gossip3.json new file mode 100755 index 00000000..7f794a28 --- /dev/null +++ b/gamefiles/texts/griswold/gossip/gossip3.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/griswold/gossip/gossip3.txt" + ], + "audio": { + "file": "sfx/Towners/bsmith47.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/griswold/gossip/gossip3.txt b/gamefiles/texts/griswold/gossip/gossip3.txt new file mode 100755 index 00000000..9c99cae4 --- /dev/null +++ b/gamefiles/texts/griswold/gossip/gossip3.txt @@ -0,0 +1 @@ +Look at that edge, that balance. A sword in the right hands, and against the right foe, is the master of all weapons. Its keen blade finds little to hack or pierce on the undead, but against a living, breathing enemy, a sword will better slice their flesh! \ No newline at end of file diff --git a/gamefiles/texts/griswold/gossip/gossip4.json b/gamefiles/texts/griswold/gossip/gossip4.json new file mode 100755 index 00000000..ef779fef --- /dev/null +++ b/gamefiles/texts/griswold/gossip/gossip4.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/griswold/gossip/gossip4.txt" + ], + "audio": { + "file": "sfx/Towners/bsmith48.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/griswold/gossip/gossip4.txt b/gamefiles/texts/griswold/gossip/gossip4.txt new file mode 100755 index 00000000..19b04943 --- /dev/null +++ b/gamefiles/texts/griswold/gossip/gossip4.txt @@ -0,0 +1 @@ +Your weapons and armor will show the signs of your struggles against the Darkness. If you bring them to me, with a bit of work and a hot forge, I can restore them to top fighting form. \ No newline at end of file diff --git a/gamefiles/texts/griswold/gossip/gossip5.json b/gamefiles/texts/griswold/gossip/gossip5.json new file mode 100755 index 00000000..8468e248 --- /dev/null +++ b/gamefiles/texts/griswold/gossip/gossip5.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/griswold/gossip/gossip5.txt" + ], + "audio": { + "file": "sfx/Towners/bsmith49.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/griswold/gossip/gossip5.txt b/gamefiles/texts/griswold/gossip/gossip5.txt new file mode 100755 index 00000000..6cd08c9c --- /dev/null +++ b/gamefiles/texts/griswold/gossip/gossip5.txt @@ -0,0 +1 @@ +While I have to practically smuggle in the metals and tools I need from caravans that skirt the edges of our damned town, that witch, Adria, always seems to get whatever she needs. If I knew even the smallest bit about how to harness magic as she did, I could make some truly incredible things. \ No newline at end of file diff --git a/gamefiles/texts/griswold/gossip/gossip6.json b/gamefiles/texts/griswold/gossip/gossip6.json new file mode 100755 index 00000000..dd7c53a4 --- /dev/null +++ b/gamefiles/texts/griswold/gossip/gossip6.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/griswold/gossip/gossip6.txt" + ], + "audio": { + "file": "sfx/Towners/bsmith50.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/griswold/gossip/gossip6.txt b/gamefiles/texts/griswold/gossip/gossip6.txt new file mode 100755 index 00000000..7358f8cd --- /dev/null +++ b/gamefiles/texts/griswold/gossip/gossip6.txt @@ -0,0 +1 @@ +Gillian is a nice lass. Shame that her gammer is in such poor health or I would arrange to get both of them out of here on one of the trading caravans. \ No newline at end of file diff --git a/gamefiles/texts/griswold/gossip/gossip7.json b/gamefiles/texts/griswold/gossip/gossip7.json new file mode 100755 index 00000000..62f38bdf --- /dev/null +++ b/gamefiles/texts/griswold/gossip/gossip7.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/griswold/gossip/gossip7.txt" + ], + "audio": { + "file": "sfx/Towners/bsmith51.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/griswold/gossip/gossip7.txt b/gamefiles/texts/griswold/gossip/gossip7.txt new file mode 100755 index 00000000..b0a748df --- /dev/null +++ b/gamefiles/texts/griswold/gossip/gossip7.txt @@ -0,0 +1 @@ +Sometimes I think that Cain talks too much, but I guess that is his calling in life. If I could bend steel as well as he can bend your ear, I could make a suit of court plate good enough for an Emperor! \ No newline at end of file diff --git a/gamefiles/texts/griswold/gossip/gossip8.json b/gamefiles/texts/griswold/gossip/gossip8.json new file mode 100755 index 00000000..f1b97620 --- /dev/null +++ b/gamefiles/texts/griswold/gossip/gossip8.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/griswold/gossip/gossip8.txt" + ], + "audio": { + "file": "sfx/Towners/bsmith52.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/griswold/gossip/gossip8.txt b/gamefiles/texts/griswold/gossip/gossip8.txt new file mode 100755 index 00000000..e961c36d --- /dev/null +++ b/gamefiles/texts/griswold/gossip/gossip8.txt @@ -0,0 +1 @@ +I was with Farnham that night that Lazarus led us into Labyrinth. I never saw the Archbishop again, and I may not have survived if Farnham was not at my side. I fear that the attack left his soul as crippled as, well, another did my leg. I cannot fight this battle for him now, but I would if I could. \ No newline at end of file diff --git a/gamefiles/texts/griswold/gossip/gossip9.json b/gamefiles/texts/griswold/gossip/gossip9.json new file mode 100755 index 00000000..2ca71ee9 --- /dev/null +++ b/gamefiles/texts/griswold/gossip/gossip9.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/griswold/gossip/gossip9.txt" + ], + "audio": { + "file": "sfx/Towners/bsmith53.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/griswold/gossip/gossip9.txt b/gamefiles/texts/griswold/gossip/gossip9.txt new file mode 100755 index 00000000..62d28075 --- /dev/null +++ b/gamefiles/texts/griswold/gossip/gossip9.txt @@ -0,0 +1 @@ +A good man who puts the needs of others above his own. You won't find anyone left in Tristram - or anywhere else for that matter - who has a bad thing to say about the healer. \ No newline at end of file diff --git a/gamefiles/texts/griswold/quests/anvilOfFury.json b/gamefiles/texts/griswold/quests/anvilOfFury.json new file mode 100755 index 00000000..3a834622 --- /dev/null +++ b/gamefiles/texts/griswold/quests/anvilOfFury.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/griswold/quests/anvilOfFury.txt" + ], + "audio": { + "file": "sfx/Towners/bsmith22.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/griswold/quests/anvilOfFury.txt b/gamefiles/texts/griswold/quests/anvilOfFury.txt new file mode 100755 index 00000000..aebeefd8 --- /dev/null +++ b/gamefiles/texts/griswold/quests/anvilOfFury.txt @@ -0,0 +1 @@ +Nothing yet, eh? Well, keep searching. A weapon forged upon the Anvil could be your best hope, and I am sure that I can make you one of the legendary proportions. \ No newline at end of file diff --git a/gamefiles/texts/griswold/quests/archbishopLazarus.json b/gamefiles/texts/griswold/quests/archbishopLazarus.json new file mode 100755 index 00000000..060a76a2 --- /dev/null +++ b/gamefiles/texts/griswold/quests/archbishopLazarus.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/griswold/quests/archbishopLazarus.txt" + ], + "audio": { + "file": "sfx/Towners/bsmith03.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/griswold/quests/archbishopLazarus.txt b/gamefiles/texts/griswold/quests/archbishopLazarus.txt new file mode 100755 index 00000000..8cecc473 --- /dev/null +++ b/gamefiles/texts/griswold/quests/archbishopLazarus.txt @@ -0,0 +1 @@ +I was there when Lazarus led us into the Labyrinth. He spoke of holy retribution, but when we started fighting those Hellspawn, he did not so much as lift his mace against them. He just ran deeper into the dim, endless chambers that were filled with the Servants of Darkness! \ No newline at end of file diff --git a/gamefiles/texts/griswold/quests/arkainesValor.json b/gamefiles/texts/griswold/quests/arkainesValor.json new file mode 100755 index 00000000..709e84bc --- /dev/null +++ b/gamefiles/texts/griswold/quests/arkainesValor.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/griswold/quests/arkainesValor.txt" + ], + "audio": { + "file": "sfx/Towners/bsmith14.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/griswold/quests/arkainesValor.txt b/gamefiles/texts/griswold/quests/arkainesValor.txt new file mode 100755 index 00000000..713cae90 --- /dev/null +++ b/gamefiles/texts/griswold/quests/arkainesValor.txt @@ -0,0 +1 @@ +The armor known as Valor could be what tips the scales in your favor. I will tell you that many have looked for it - including myself. Arkaine hid it well, my friend, and it will take more than a bit of luck to unlock the secrets that have kept it concealed oh, lo these many years. \ No newline at end of file diff --git a/gamefiles/texts/griswold/quests/blackMushroom.json b/gamefiles/texts/griswold/quests/blackMushroom.json new file mode 100755 index 00000000..e2eb9282 --- /dev/null +++ b/gamefiles/texts/griswold/quests/blackMushroom.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/griswold/quests/blackMushroom.txt" + ], + "audio": { + "file": "sfx/Towners/bsmith19.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/griswold/quests/blackMushroom.txt b/gamefiles/texts/griswold/quests/blackMushroom.txt new file mode 100755 index 00000000..dad4825b --- /dev/null +++ b/gamefiles/texts/griswold/quests/blackMushroom.txt @@ -0,0 +1 @@ +If Adria doesn't have one of these, you can bet that's a rare thing indeed. I can offer you no more help than that, but it sounds like a... why, a huge, gargantuan, swollen, bloated mushroom! Well, good hunting, I suppose. \ No newline at end of file diff --git a/gamefiles/texts/griswold/quests/chamberOfBone.json b/gamefiles/texts/griswold/quests/chamberOfBone.json new file mode 100755 index 00000000..816139fe --- /dev/null +++ b/gamefiles/texts/griswold/quests/chamberOfBone.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/griswold/quests/chamberOfBone.txt" + ], + "audio": { + "file": "sfx/Towners/bsmith07.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/griswold/quests/chamberOfBone.txt b/gamefiles/texts/griswold/quests/chamberOfBone.txt new file mode 100755 index 00000000..85fbeb67 --- /dev/null +++ b/gamefiles/texts/griswold/quests/chamberOfBone.txt @@ -0,0 +1 @@ +I know nothing of this place, but you may try asking Cain. He talks about many things, and it would not surprise me if he had some answers to your question. \ No newline at end of file diff --git a/gamefiles/texts/griswold/quests/hallsOfTheBlind.json b/gamefiles/texts/griswold/quests/hallsOfTheBlind.json new file mode 100755 index 00000000..2e90a663 --- /dev/null +++ b/gamefiles/texts/griswold/quests/hallsOfTheBlind.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/griswold/quests/hallsOfTheBlind.txt" + ], + "audio": { + "file": "sfx/Towners/bsmith12.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/griswold/quests/hallsOfTheBlind.txt b/gamefiles/texts/griswold/quests/hallsOfTheBlind.txt new file mode 100755 index 00000000..b75bfa48 --- /dev/null +++ b/gamefiles/texts/griswold/quests/hallsOfTheBlind.txt @@ -0,0 +1 @@ +I am afraid that I have neither heard nor seen a place that matches your vivid description, my friend. Perhaps Cain the storyteller could be of some help. \ No newline at end of file diff --git a/gamefiles/texts/griswold/quests/lachdanan.json b/gamefiles/texts/griswold/quests/lachdanan.json new file mode 100755 index 00000000..b5418612 --- /dev/null +++ b/gamefiles/texts/griswold/quests/lachdanan.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/griswold/quests/lachdanan.txt" + ], + "audio": { + "file": "sfx/Towners/bsmith13.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/griswold/quests/lachdanan.txt b/gamefiles/texts/griswold/quests/lachdanan.txt new file mode 100755 index 00000000..b90bc8b4 --- /dev/null +++ b/gamefiles/texts/griswold/quests/lachdanan.txt @@ -0,0 +1 @@ +If it is actually Lachdanan that you have met, then I would advise that you aid him. I dealt with him on several occasions and found him to be honest and loyal in nature. The curse that fell upon the followers of King Leoric would fall especially hard upon him. \ No newline at end of file diff --git a/gamefiles/towners/smith/quests/butcher.json b/gamefiles/texts/griswold/quests/magicRock.json similarity index 68% rename from gamefiles/towners/smith/quests/butcher.json rename to gamefiles/texts/griswold/quests/magicRock.json index 6a7d6969..70edbd50 100755 --- a/gamefiles/towners/smith/quests/butcher.json +++ b/gamefiles/texts/griswold/quests/magicRock.json @@ -1,12 +1,11 @@ { "load": [ "ui/level/showText.json", - "smithText", + "questText", "50", - "towners/smith/quests/butcher.txt" + "texts/griswold/quests/magicRock.txt" ], "audio": { - "id": "bsmith10", "file": "sfx/Towners/bsmith10.wav", "play": true, "volume": "|game|soundVolume|" diff --git a/gamefiles/texts/griswold/quests/magicRock.txt b/gamefiles/texts/griswold/quests/magicRock.txt new file mode 100755 index 00000000..ba98bb47 --- /dev/null +++ b/gamefiles/texts/griswold/quests/magicRock.txt @@ -0,0 +1 @@ +I am still waiting for you to bring me that Stone from the Heavens. I know that I can make something powerful out of it. \ No newline at end of file diff --git a/gamefiles/texts/griswold/quests/magicRock2.txt b/gamefiles/texts/griswold/quests/magicRock2.txt new file mode 100755 index 00000000..6f608465 --- /dev/null +++ b/gamefiles/texts/griswold/quests/magicRock2.txt @@ -0,0 +1,3 @@ +Let me see that - aye... Aye, it is as I believed. Give me a moment. + +Ah, here, you are. I arranged pieces of the Stone within a silver ring that my father left me. I hope it serves you well. \ No newline at end of file diff --git a/gamefiles/texts/griswold/quests/ogdensSign.json b/gamefiles/texts/griswold/quests/ogdensSign.json new file mode 100755 index 00000000..7c83c022 --- /dev/null +++ b/gamefiles/texts/griswold/quests/ogdensSign.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/griswold/quests/ogdensSign.txt" + ], + "audio": { + "file": "sfx/Towners/bsmith02.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/griswold/quests/ogdensSign.txt b/gamefiles/texts/griswold/quests/ogdensSign.txt new file mode 100755 index 00000000..49a834b1 --- /dev/null +++ b/gamefiles/texts/griswold/quests/ogdensSign.txt @@ -0,0 +1,3 @@ +Demons stole Ogden's Sign, you say? That doesn't sound much like the atrocities I've heard of - or seen. + +Demons are concerned with ripping out your heart, not your signpost. \ No newline at end of file diff --git a/gamefiles/texts/griswold/quests/poisonedWater.json b/gamefiles/texts/griswold/quests/poisonedWater.json new file mode 100755 index 00000000..558d1ab5 --- /dev/null +++ b/gamefiles/texts/griswold/quests/poisonedWater.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/griswold/quests/poisonedWater.txt" + ], + "audio": { + "file": "sfx/Towners/bsmith04.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/griswold/quests/poisonedWater.txt b/gamefiles/texts/griswold/quests/poisonedWater.txt new file mode 100755 index 00000000..782c0620 --- /dev/null +++ b/gamefiles/texts/griswold/quests/poisonedWater.txt @@ -0,0 +1 @@ +Pepin has told you the truth. We will need fresh water badly, and soon. I have tried to clear one of the smaller wells, but it reeks of stagnant filth. It must be getting clogged at the source. \ No newline at end of file diff --git a/gamefiles/texts/griswold/quests/skeletonKing.json b/gamefiles/texts/griswold/quests/skeletonKing.json new file mode 100755 index 00000000..a13dd94d --- /dev/null +++ b/gamefiles/texts/griswold/quests/skeletonKing.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/griswold/quests/skeletonKing.txt" + ], + "audio": { + "file": "sfx/Towners/bsmith01.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/griswold/quests/skeletonKing.txt b/gamefiles/texts/griswold/quests/skeletonKing.txt new file mode 100755 index 00000000..d1a5f54b --- /dev/null +++ b/gamefiles/texts/griswold/quests/skeletonKing.txt @@ -0,0 +1 @@ +I made many of the weapons and most of the armor that King Leoric used to outfit his knights. I even crafted a huge two-handed sword of the finest mithril for him, as well as a field crown to match. I still cannot believe how he died. But it must have been some sinister force that drove him insane! \ No newline at end of file diff --git a/gamefiles/texts/griswold/quests/theButcher.json b/gamefiles/texts/griswold/quests/theButcher.json new file mode 100755 index 00000000..511de93c --- /dev/null +++ b/gamefiles/texts/griswold/quests/theButcher.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/griswold/quests/theButcher.txt" + ], + "audio": { + "file": "sfx/Towners/bsmith10.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/towners/smith/quests/butcher.txt b/gamefiles/texts/griswold/quests/theButcher.txt similarity index 100% rename from gamefiles/towners/smith/quests/butcher.txt rename to gamefiles/texts/griswold/quests/theButcher.txt diff --git a/gamefiles/texts/griswold/quests/warlordOfBlood.json b/gamefiles/texts/griswold/quests/warlordOfBlood.json new file mode 100755 index 00000000..635d5eb2 --- /dev/null +++ b/gamefiles/texts/griswold/quests/warlordOfBlood.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/griswold/quests/warlordOfBlood.txt" + ], + "audio": { + "file": "sfx/Towners/bsmith17.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/griswold/quests/warlordOfBlood.txt b/gamefiles/texts/griswold/quests/warlordOfBlood.txt new file mode 100755 index 00000000..cbd9d5ca --- /dev/null +++ b/gamefiles/texts/griswold/quests/warlordOfBlood.txt @@ -0,0 +1 @@ +Dark and wicked legends surrounds the one Warlord of Blood. Be well prepared, my friend, for he shows no mercy or quarter. \ No newline at end of file diff --git a/gamefiles/texts/misc/quests/gharbadTheWeak.json b/gamefiles/texts/misc/quests/gharbadTheWeak.json new file mode 100755 index 00000000..b5abb78b --- /dev/null +++ b/gamefiles/texts/misc/quests/gharbadTheWeak.json @@ -0,0 +1,24 @@ +{ + "action": { + "name": "switch", + "param": "|currentLevel|quest.gharbadTheWeak.state|", + "case": [ + { + "value": 0, + "action": { "name": "load", "file": "texts/misc/quests/gharbadTheWeak1.json" } + }, + { + "value": 1, + "action": { "name": "load", "file": "texts/misc/quests/gharbadTheWeak2.json" } + }, + { + "value": 2, + "action": { "name": "load", "file": "texts/misc/quests/gharbadTheWeak3.json" } + }, + { + "value": 3, + "action": { "name": "load", "file": "texts/misc/quests/gharbadTheWeak4.json" } + } + ] + } +} \ No newline at end of file diff --git a/gamefiles/texts/misc/quests/gharbadTheWeak1.json b/gamefiles/texts/misc/quests/gharbadTheWeak1.json new file mode 100755 index 00000000..c20459f4 --- /dev/null +++ b/gamefiles/texts/misc/quests/gharbadTheWeak1.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/misc/quests/gharbadTheWeak1.txt" + ], + "audio": { + "file": "sfx/monsters/garbud01.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/misc/quests/gharbadTheWeak1.txt b/gamefiles/texts/misc/quests/gharbadTheWeak1.txt new file mode 100755 index 00000000..9052dece --- /dev/null +++ b/gamefiles/texts/misc/quests/gharbadTheWeak1.txt @@ -0,0 +1 @@ +Pleease, no hurt, no kill. Keep alive and next time good bring to you. \ No newline at end of file diff --git a/gamefiles/texts/misc/quests/gharbadTheWeak2.json b/gamefiles/texts/misc/quests/gharbadTheWeak2.json new file mode 100755 index 00000000..38451ee5 --- /dev/null +++ b/gamefiles/texts/misc/quests/gharbadTheWeak2.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/misc/quests/gharbadTheWeak2.txt" + ], + "audio": { + "file": "sfx/monsters/garbud02.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/misc/quests/gharbadTheWeak2.txt b/gamefiles/texts/misc/quests/gharbadTheWeak2.txt new file mode 100755 index 00000000..5df33530 --- /dev/null +++ b/gamefiles/texts/misc/quests/gharbadTheWeak2.txt @@ -0,0 +1,3 @@ +Something for you I am making. Again, not kill Gharbad, live and give good. + +You take this as proof I keep word... \ No newline at end of file diff --git a/gamefiles/texts/misc/quests/gharbadTheWeak3.json b/gamefiles/texts/misc/quests/gharbadTheWeak3.json new file mode 100755 index 00000000..16c6ead7 --- /dev/null +++ b/gamefiles/texts/misc/quests/gharbadTheWeak3.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/misc/quests/gharbadTheWeak3.txt" + ], + "audio": { + "file": "sfx/monsters/garbud03.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/misc/quests/gharbadTheWeak3.txt b/gamefiles/texts/misc/quests/gharbadTheWeak3.txt new file mode 100755 index 00000000..7e9cef41 --- /dev/null +++ b/gamefiles/texts/misc/quests/gharbadTheWeak3.txt @@ -0,0 +1,5 @@ +Nothing yet! Almost done. + +Very powerful, very strong. Live! Live! + +No pain and promise I keep! \ No newline at end of file diff --git a/gamefiles/texts/misc/quests/gharbadTheWeak4.json b/gamefiles/texts/misc/quests/gharbadTheWeak4.json new file mode 100755 index 00000000..97ecd420 --- /dev/null +++ b/gamefiles/texts/misc/quests/gharbadTheWeak4.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/misc/quests/gharbadTheWeak4.txt" + ], + "audio": { + "file": "sfx/monsters/garbud04.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/misc/quests/gharbadTheWeak4.txt b/gamefiles/texts/misc/quests/gharbadTheWeak4.txt new file mode 100755 index 00000000..54619011 --- /dev/null +++ b/gamefiles/texts/misc/quests/gharbadTheWeak4.txt @@ -0,0 +1 @@ +This too good for you. Very powerful! You want - you take! \ No newline at end of file diff --git a/gamefiles/texts/misc/quests/lachdanan.json b/gamefiles/texts/misc/quests/lachdanan.json new file mode 100755 index 00000000..7519613a --- /dev/null +++ b/gamefiles/texts/misc/quests/lachdanan.json @@ -0,0 +1,20 @@ +{ + "action": { + "name": "switch", + "param": "|currentLevel|quest.lachdanan.state|", + "case": [ + { + "value": 0, + "action": { "name": "load", "file": "texts/misc/quests/lachdanan1.json" } + }, + { + "value": 1, + "action": { "name": "load", "file": "texts/misc/quests/lachdanan2.json" } + }, + { + "value": 2, + "action": { "name": "load", "file": "texts/misc/quests/lachdanan3.json" } + } + ] + } +} \ No newline at end of file diff --git a/gamefiles/texts/misc/quests/lachdanan1.json b/gamefiles/texts/misc/quests/lachdanan1.json new file mode 100755 index 00000000..3893e550 --- /dev/null +++ b/gamefiles/texts/misc/quests/lachdanan1.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/misc/quests/lachdanan1.txt" + ], + "audio": { + "file": "sfx/monsters/lach01.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/misc/quests/lachdanan1.txt b/gamefiles/texts/misc/quests/lachdanan1.txt new file mode 100755 index 00000000..5b12f54b --- /dev/null +++ b/gamefiles/texts/misc/quests/lachdanan1.txt @@ -0,0 +1,3 @@ +Please, don't kill me, just hear me out. I was once Captain of King Leoric's knights, upholding the laws of this land with justice and honor. Then his dark curse fell upon us for the role we played in his tragic death. As my fellow knights succumbed to their twisted fate, I fled from the King's burial chamber, searching for some way to free myself from the curse. I failed... + +I have heard of a Golden Elixir that could lift the curse and allow my soul to rest, but I have been unable to find it. My strength now wanes, and with it, the last of my humanity as well. Please aid me and find the Elixir. I will repay your efforts - I swear upon my honor. \ No newline at end of file diff --git a/gamefiles/texts/misc/quests/lachdanan2.json b/gamefiles/texts/misc/quests/lachdanan2.json new file mode 100755 index 00000000..c94f43c9 --- /dev/null +++ b/gamefiles/texts/misc/quests/lachdanan2.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/misc/quests/lachdanan2.txt" + ], + "audio": { + "file": "sfx/monsters/lach02.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/misc/quests/lachdanan2.txt b/gamefiles/texts/misc/quests/lachdanan2.txt new file mode 100755 index 00000000..630a1d7f --- /dev/null +++ b/gamefiles/texts/misc/quests/lachdanan2.txt @@ -0,0 +1 @@ +You have not found the Golden Elixir. I fear that I am doomed for eternity. Please, keep trying... \ No newline at end of file diff --git a/gamefiles/texts/misc/quests/lachdanan3.json b/gamefiles/texts/misc/quests/lachdanan3.json new file mode 100755 index 00000000..405904c2 --- /dev/null +++ b/gamefiles/texts/misc/quests/lachdanan3.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/misc/quests/lachdanan3.txt" + ], + "audio": { + "file": "sfx/monsters/lach03.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/misc/quests/lachdanan3.txt b/gamefiles/texts/misc/quests/lachdanan3.txt new file mode 100755 index 00000000..d3acbb8d --- /dev/null +++ b/gamefiles/texts/misc/quests/lachdanan3.txt @@ -0,0 +1 @@ +You have saved my soul from Damnation, and for that I am in your debt. If there is ever a way that I can repay you from beyond the grave I will find it, but for now - take my Helm. On the journey I am about to take, I will have little use for it. May it protect you against the dark powers below. Go with the Light, my friend... \ No newline at end of file diff --git a/gamefiles/texts/misc/quests/snotspill.json b/gamefiles/texts/misc/quests/snotspill.json new file mode 100755 index 00000000..b73126ed --- /dev/null +++ b/gamefiles/texts/misc/quests/snotspill.json @@ -0,0 +1,20 @@ +{ + "action": { + "name": "switch", + "param": "|currentLevel|quest.snotspill.state|", + "case": [ + { + "value": 0, + "action": { "name": "load", "file": "texts/misc/quests/snotspill1.json" } + }, + { + "value": 1, + "action": { "name": "load", "file": "texts/misc/quests/snotspill2.json" } + }, + { + "value": 2, + "action": { "name": "load", "file": "texts/misc/quests/snotspill3.json" } + } + ] + } +} \ No newline at end of file diff --git a/gamefiles/texts/misc/quests/snotspill1.json b/gamefiles/texts/misc/quests/snotspill1.json new file mode 100755 index 00000000..9bc97122 --- /dev/null +++ b/gamefiles/texts/misc/quests/snotspill1.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/misc/quests/snotspill1.txt" + ], + "audio": { + "file": "sfx/monsters/snot01.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/misc/quests/snotspill1.txt b/gamefiles/texts/misc/quests/snotspill1.txt new file mode 100755 index 00000000..cbd062d2 --- /dev/null +++ b/gamefiles/texts/misc/quests/snotspill1.txt @@ -0,0 +1 @@ +Hey - you that one that kill all! You get me magic banner or we attack! You no leave with Life! You kill big uglies and give back magic. Go past corner and door. Find uglies. You give, you go! \ No newline at end of file diff --git a/gamefiles/texts/misc/quests/snotspill2.json b/gamefiles/texts/misc/quests/snotspill2.json new file mode 100755 index 00000000..134ab415 --- /dev/null +++ b/gamefiles/texts/misc/quests/snotspill2.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/misc/quests/snotspill2.txt" + ], + "audio": { + "file": "sfx/monsters/snot02.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/misc/quests/snotspill2.txt b/gamefiles/texts/misc/quests/snotspill2.txt new file mode 100755 index 00000000..04f7e0da --- /dev/null +++ b/gamefiles/texts/misc/quests/snotspill2.txt @@ -0,0 +1 @@ +You kill uglies, get banner. You bring to me, or else... \ No newline at end of file diff --git a/gamefiles/texts/misc/quests/snotspill3.json b/gamefiles/texts/misc/quests/snotspill3.json new file mode 100755 index 00000000..692f09f4 --- /dev/null +++ b/gamefiles/texts/misc/quests/snotspill3.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/misc/quests/snotspill3.txt" + ], + "audio": { + "file": "sfx/monsters/snot03.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/misc/quests/snotspill3.txt b/gamefiles/texts/misc/quests/snotspill3.txt new file mode 100755 index 00000000..6ab1fba7 --- /dev/null +++ b/gamefiles/texts/misc/quests/snotspill3.txt @@ -0,0 +1 @@ +You give! Yes, good! Go now, we strong! We kill all with big magic! \ No newline at end of file diff --git a/gamefiles/texts/misc/quests/zharTheMad.json b/gamefiles/texts/misc/quests/zharTheMad.json new file mode 100755 index 00000000..3cc48d20 --- /dev/null +++ b/gamefiles/texts/misc/quests/zharTheMad.json @@ -0,0 +1,16 @@ +{ + "action": { + "name": "switch", + "param": "|currentLevel|quest.zharTheMad.state|", + "case": [ + { + "value": 0, + "action": { "name": "load", "file": "texts/misc/quests/zharTheMad1.json" } + }, + { + "value": 1, + "action": { "name": "load", "file": "texts/misc/quests/zharTheMad2.json" } + } + ] + } +} \ No newline at end of file diff --git a/gamefiles/texts/misc/quests/zharTheMad1.json b/gamefiles/texts/misc/quests/zharTheMad1.json new file mode 100755 index 00000000..7f3c565f --- /dev/null +++ b/gamefiles/texts/misc/quests/zharTheMad1.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/misc/quests/zharTheMad1.txt" + ], + "audio": { + "file": "sfx/monsters/zhar01.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/misc/quests/zharTheMad1.txt b/gamefiles/texts/misc/quests/zharTheMad1.txt new file mode 100755 index 00000000..6fc403f7 --- /dev/null +++ b/gamefiles/texts/misc/quests/zharTheMad1.txt @@ -0,0 +1 @@ +What?! Why are you here? All these interruptions are enough to make one insane. Here, take this and leave me to my work. Trouble me no more! \ No newline at end of file diff --git a/gamefiles/texts/misc/quests/zharTheMad2.json b/gamefiles/texts/misc/quests/zharTheMad2.json new file mode 100755 index 00000000..f05b25e0 --- /dev/null +++ b/gamefiles/texts/misc/quests/zharTheMad2.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/misc/quests/zharTheMad2.txt" + ], + "audio": { + "file": "sfx/monsters/zhar02.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/misc/quests/zharTheMad2.txt b/gamefiles/texts/misc/quests/zharTheMad2.txt new file mode 100755 index 00000000..98407a34 --- /dev/null +++ b/gamefiles/texts/misc/quests/zharTheMad2.txt @@ -0,0 +1 @@ +Arrrrgh! Your curiosity will be the death of you!!! \ No newline at end of file diff --git a/gamefiles/texts/ogden/gossip/gossip1.json b/gamefiles/texts/ogden/gossip/gossip1.json new file mode 100755 index 00000000..d08ab261 --- /dev/null +++ b/gamefiles/texts/ogden/gossip/gossip1.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/ogden/gossip/gossip1.txt" + ], + "audio": { + "file": "sfx/Towners/tavown37.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/ogden/gossip/gossip1.txt b/gamefiles/texts/ogden/gossip/gossip1.txt new file mode 100755 index 00000000..484d79c2 --- /dev/null +++ b/gamefiles/texts/ogden/gossip/gossip1.txt @@ -0,0 +1 @@ +Many adventurers have graced the tables of my tavern, and ten times as many stories have been told over as much ale. The only thing that I ever heard any of them agree on was this old axiom. Perhaps it will help you. You can cut the flesh, but you must crush the bone. \ No newline at end of file diff --git a/gamefiles/texts/ogden/gossip/gossip2.json b/gamefiles/texts/ogden/gossip/gossip2.json new file mode 100755 index 00000000..b963e08d --- /dev/null +++ b/gamefiles/texts/ogden/gossip/gossip2.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/ogden/gossip/gossip2.txt" + ], + "audio": { + "file": "sfx/Towners/tavown38.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/ogden/gossip/gossip2.txt b/gamefiles/texts/ogden/gossip/gossip2.txt new file mode 100755 index 00000000..7a439878 --- /dev/null +++ b/gamefiles/texts/ogden/gossip/gossip2.txt @@ -0,0 +1 @@ +Griswold the blacksmith is extremely knowledgeable about weapons and armor. If you ever need work done on your gear, he is definitely the man to see. \ No newline at end of file diff --git a/gamefiles/texts/ogden/gossip/gossip3.json b/gamefiles/texts/ogden/gossip/gossip3.json new file mode 100755 index 00000000..2f5fdb74 --- /dev/null +++ b/gamefiles/texts/ogden/gossip/gossip3.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/ogden/gossip/gossip3.txt" + ], + "audio": { + "file": "sfx/Towners/tavown39.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/ogden/gossip/gossip3.txt b/gamefiles/texts/ogden/gossip/gossip3.txt new file mode 100755 index 00000000..84a47bbb --- /dev/null +++ b/gamefiles/texts/ogden/gossip/gossip3.txt @@ -0,0 +1 @@ +Farnham spends far too much time here, drowning his sorrows in cheap ale. I would make him leave, but he did suffer so during his time in the Labyrinth. \ No newline at end of file diff --git a/gamefiles/texts/ogden/gossip/gossip4.json b/gamefiles/texts/ogden/gossip/gossip4.json new file mode 100755 index 00000000..f60f5f45 --- /dev/null +++ b/gamefiles/texts/ogden/gossip/gossip4.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/ogden/gossip/gossip4.txt" + ], + "audio": { + "file": "sfx/Towners/tavown40.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/ogden/gossip/gossip4.txt b/gamefiles/texts/ogden/gossip/gossip4.txt new file mode 100755 index 00000000..383e11dc --- /dev/null +++ b/gamefiles/texts/ogden/gossip/gossip4.txt @@ -0,0 +1 @@ +Adria is wise beyond her years, but I must admit - she frightens me a little. Well, no matter. If you ever have need to trade in items of sorcery, she maintains a strangely well-stocked hut just across the river. \ No newline at end of file diff --git a/gamefiles/texts/ogden/gossip/gossip5.json b/gamefiles/texts/ogden/gossip/gossip5.json new file mode 100755 index 00000000..c78f9da1 --- /dev/null +++ b/gamefiles/texts/ogden/gossip/gossip5.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/ogden/gossip/gossip5.txt" + ], + "audio": { + "file": "sfx/Towners/tavown41.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/ogden/gossip/gossip5.txt b/gamefiles/texts/ogden/gossip/gossip5.txt new file mode 100755 index 00000000..ad4eaee7 --- /dev/null +++ b/gamefiles/texts/ogden/gossip/gossip5.txt @@ -0,0 +1 @@ +If you want to know more about the history of our village, the storyteller Cain knows quite a bit about the past. \ No newline at end of file diff --git a/gamefiles/texts/ogden/gossip/gossip6.json b/gamefiles/texts/ogden/gossip/gossip6.json new file mode 100755 index 00000000..bc48d6a9 --- /dev/null +++ b/gamefiles/texts/ogden/gossip/gossip6.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/ogden/gossip/gossip6.txt" + ], + "audio": { + "file": "sfx/Towners/tavown43.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/ogden/gossip/gossip6.txt b/gamefiles/texts/ogden/gossip/gossip6.txt new file mode 100755 index 00000000..5857e302 --- /dev/null +++ b/gamefiles/texts/ogden/gossip/gossip6.txt @@ -0,0 +1 @@ +Wirt is a rapscallion and a little scoundrel. He was always getting into trouble, and it's no surprise what happened to him. He probably went fooling about someplace that he shouldn't have been. I feel sorry for the boy, but I don't abide the company that he keeps. \ No newline at end of file diff --git a/gamefiles/texts/ogden/gossip/gossip7.json b/gamefiles/texts/ogden/gossip/gossip7.json new file mode 100755 index 00000000..9ecf8c97 --- /dev/null +++ b/gamefiles/texts/ogden/gossip/gossip7.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/ogden/gossip/gossip7.txt" + ], + "audio": { + "file": "sfx/Towners/tavown44.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/ogden/gossip/gossip7.txt b/gamefiles/texts/ogden/gossip/gossip7.txt new file mode 100755 index 00000000..e91a620f --- /dev/null +++ b/gamefiles/texts/ogden/gossip/gossip7.txt @@ -0,0 +1 @@ +Pepin is a good man - and certainly the most generous in the village. He is always attending to the needs of others, but trouble of some sort or another does seem to follow him wherever he goes... \ No newline at end of file diff --git a/gamefiles/texts/ogden/gossip/gossip8.json b/gamefiles/texts/ogden/gossip/gossip8.json new file mode 100755 index 00000000..dd606c74 --- /dev/null +++ b/gamefiles/texts/ogden/gossip/gossip8.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/ogden/gossip/gossip8.txt" + ], + "audio": { + "file": "sfx/Towners/tavown45.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/ogden/gossip/gossip8.txt b/gamefiles/texts/ogden/gossip/gossip8.txt new file mode 100755 index 00000000..32e9f557 --- /dev/null +++ b/gamefiles/texts/ogden/gossip/gossip8.txt @@ -0,0 +1 @@ +Gillian, my Barmaid? If it were not for her sense of duty to her grand-dam, she would have fled from here long ago. Goodness knows I begged her to leave, telling her that I would watch after the old woman, but she is too sweet and caring to have done so. \ No newline at end of file diff --git a/gamefiles/texts/ogden/quests/anvilOfFury.json b/gamefiles/texts/ogden/quests/anvilOfFury.json new file mode 100755 index 00000000..4e841734 --- /dev/null +++ b/gamefiles/texts/ogden/quests/anvilOfFury.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/ogden/quests/anvilOfFury.txt" + ], + "audio": { + "file": "sfx/Towners/tavown12.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/ogden/quests/anvilOfFury.txt b/gamefiles/texts/ogden/quests/anvilOfFury.txt new file mode 100755 index 00000000..03aca63c --- /dev/null +++ b/gamefiles/texts/ogden/quests/anvilOfFury.txt @@ -0,0 +1 @@ +Don't you think that Griswold would be a better person to ask about this? He's quite handy, you know. \ No newline at end of file diff --git a/gamefiles/texts/ogden/quests/archbishopLazarus.json b/gamefiles/texts/ogden/quests/archbishopLazarus.json new file mode 100755 index 00000000..89ac22d1 --- /dev/null +++ b/gamefiles/texts/ogden/quests/archbishopLazarus.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/ogden/quests/archbishopLazarus.txt" + ], + "audio": { + "file": "sfx/Towners/tavown01.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/ogden/quests/archbishopLazarus.txt b/gamefiles/texts/ogden/quests/archbishopLazarus.txt new file mode 100755 index 00000000..27f36d3a --- /dev/null +++ b/gamefiles/texts/ogden/quests/archbishopLazarus.txt @@ -0,0 +1 @@ +Lazarus was the Archbishop who led many of the townspeople into the Labyrinth. I lost many good friends that day, and Lazarus never returned. I suppose he was killed along with most of the others. If you would do me a favor, Good Master, please do not talk to Farnham about that day. \ No newline at end of file diff --git a/gamefiles/texts/ogden/quests/arkainesValor.json b/gamefiles/texts/ogden/quests/arkainesValor.json new file mode 100755 index 00000000..f6b8cb7f --- /dev/null +++ b/gamefiles/texts/ogden/quests/arkainesValor.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/ogden/quests/arkainesValor.txt" + ], + "audio": { + "file": "sfx/Towners/tavown13.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/ogden/quests/arkainesValor.txt b/gamefiles/texts/ogden/quests/arkainesValor.txt new file mode 100755 index 00000000..69ccd14b --- /dev/null +++ b/gamefiles/texts/ogden/quests/arkainesValor.txt @@ -0,0 +1 @@ +Every child hears the story of the warrior Arkaine and his mystic armor known as Valor. If you could find its resting place, you would be well protected against the evil in the Labyrinth. \ No newline at end of file diff --git a/gamefiles/texts/ogden/quests/blackMushroom.json b/gamefiles/texts/ogden/quests/blackMushroom.json new file mode 100755 index 00000000..2305bf8a --- /dev/null +++ b/gamefiles/texts/ogden/quests/blackMushroom.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/ogden/quests/blackMushroom.txt" + ], + "audio": { + "file": "sfx/Towners/tavown19.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/ogden/quests/blackMushroom.txt b/gamefiles/texts/ogden/quests/blackMushroom.txt new file mode 100755 index 00000000..121ca221 --- /dev/null +++ b/gamefiles/texts/ogden/quests/blackMushroom.txt @@ -0,0 +1 @@ +Let me just say this. Both Garda and I would never, EVER serve black mushrooms to our honored guests. If Adria wants some mushrooms in her stew, then that is her business, but I can't help you find any. Black mushrooms... disgusting! \ No newline at end of file diff --git a/gamefiles/texts/ogden/quests/chamberOfBone.json b/gamefiles/texts/ogden/quests/chamberOfBone.json new file mode 100755 index 00000000..97699c95 --- /dev/null +++ b/gamefiles/texts/ogden/quests/chamberOfBone.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/ogden/quests/chamberOfBone.txt" + ], + "audio": { + "file": "sfx/Towners/tavown05.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/ogden/quests/chamberOfBone.txt b/gamefiles/texts/ogden/quests/chamberOfBone.txt new file mode 100755 index 00000000..cd66d43c --- /dev/null +++ b/gamefiles/texts/ogden/quests/chamberOfBone.txt @@ -0,0 +1 @@ +I am afraid that I don't know anything about that, Good Master. Cain has many books that may be of some help. \ No newline at end of file diff --git a/gamefiles/texts/ogden/quests/hallsOfTheBlind.json b/gamefiles/texts/ogden/quests/hallsOfTheBlind.json new file mode 100755 index 00000000..bcf6f668 --- /dev/null +++ b/gamefiles/texts/ogden/quests/hallsOfTheBlind.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/ogden/quests/hallsOfTheBlind.txt" + ], + "audio": { + "file": "sfx/Towners/tavown10.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/ogden/quests/hallsOfTheBlind.txt b/gamefiles/texts/ogden/quests/hallsOfTheBlind.txt new file mode 100755 index 00000000..bf13e036 --- /dev/null +++ b/gamefiles/texts/ogden/quests/hallsOfTheBlind.txt @@ -0,0 +1,3 @@ +I never much cared for poetry. Occasionally, I had cause to hire minstrels when the Inn was doing well, but that seems like such a long time ago now. + +What? Oh, yes... uh, well, I suppose you could see what someone else knows. \ No newline at end of file diff --git a/gamefiles/texts/ogden/quests/lachdanan.json b/gamefiles/texts/ogden/quests/lachdanan.json new file mode 100755 index 00000000..105284d3 --- /dev/null +++ b/gamefiles/texts/ogden/quests/lachdanan.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/ogden/quests/lachdanan.txt" + ], + "audio": { + "file": "sfx/Towners/tavown11.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/ogden/quests/lachdanan.txt b/gamefiles/texts/ogden/quests/lachdanan.txt new file mode 100755 index 00000000..d5cdeafe --- /dev/null +++ b/gamefiles/texts/ogden/quests/lachdanan.txt @@ -0,0 +1 @@ +You speak of a brave warrior long dead! I'll have no such talk of speaking with departed souls in my inn yard, thank you very much. \ No newline at end of file diff --git a/gamefiles/texts/ogden/quests/magicRock.json b/gamefiles/texts/ogden/quests/magicRock.json new file mode 100755 index 00000000..e73b94f6 --- /dev/null +++ b/gamefiles/texts/ogden/quests/magicRock.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/ogden/quests/magicRock.txt" + ], + "audio": { + "file": "sfx/Towners/tavown18.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/ogden/quests/magicRock.txt b/gamefiles/texts/ogden/quests/magicRock.txt new file mode 100755 index 00000000..4e0272d8 --- /dev/null +++ b/gamefiles/texts/ogden/quests/magicRock.txt @@ -0,0 +1 @@ +The caravan stopped here to take on some supplies for their journey to the East. I sold them quite an array of fresh fruits and some excellent sweetbreads that Garda has just finished baking. Shame what happened to them... \ No newline at end of file diff --git a/gamefiles/texts/ogden/quests/ogdensSign.json b/gamefiles/texts/ogden/quests/ogdensSign.json new file mode 100755 index 00000000..483a9ec6 --- /dev/null +++ b/gamefiles/texts/ogden/quests/ogdensSign.json @@ -0,0 +1,16 @@ +{ + "action": { + "name": "switch", + "param": "|currentLevel|quest.ogdensSign.state|", + "case": [ + { + "value": 0, + "action": { "name": "load", "file": "texts/ogden/quests/ogdensSign1.json" } + }, + { + "value": 1, + "action": { "name": "load", "file": "texts/ogden/quests/ogdensSign2.json" } + } + ] + } +} \ No newline at end of file diff --git a/gamefiles/texts/ogden/quests/ogdensSign1.json b/gamefiles/texts/ogden/quests/ogdensSign1.json new file mode 100755 index 00000000..3941124b --- /dev/null +++ b/gamefiles/texts/ogden/quests/ogdensSign1.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/ogden/quests/ogdensSign1.txt" + ], + "audio": { + "file": "sfx/Towners/tavown24.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/ogden/quests/ogdensSign1.txt b/gamefiles/texts/ogden/quests/ogdensSign1.txt new file mode 100755 index 00000000..34304de5 --- /dev/null +++ b/gamefiles/texts/ogden/quests/ogdensSign1.txt @@ -0,0 +1 @@ +Master, I have a strange experience to relate. I know that you have a great knowledge of those monstrosities that inhabit the Labyrinth, and this is something that I cannot understand for the very life of me... I was awakened during the night by a scraping sound just outside of my Tavern. When I looked out from my bedroom, I saw the shapes of small Demon-like creatures in the inn yard. After a short time, they ran off, but not before stealing the sign to my Inn. I don't know why the demons would steal my sign but leave my family in peace... 'Tis strange, no? \ No newline at end of file diff --git a/gamefiles/texts/ogden/quests/ogdensSign2.json b/gamefiles/texts/ogden/quests/ogdensSign2.json new file mode 100755 index 00000000..3222b612 --- /dev/null +++ b/gamefiles/texts/ogden/quests/ogdensSign2.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/ogden/quests/ogdensSign2.txt" + ], + "audio": { + "file": "sfx/Towners/tavown25.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/ogden/quests/ogdensSign2.txt b/gamefiles/texts/ogden/quests/ogdensSign2.txt new file mode 100755 index 00000000..0f1be27f --- /dev/null +++ b/gamefiles/texts/ogden/quests/ogdensSign2.txt @@ -0,0 +1 @@ +Oh, you didn't have to bring back my sign, but I suppose that it does save me the expense of having another one made. Well, let me see. What could I give you as a fee for finding it? Hmmm. What have we here... Ah, yes! This cap was left in one of the rooms by a magician who stayed here some time ago. Perhaps it may be of some value to you. \ No newline at end of file diff --git a/gamefiles/texts/ogden/quests/poisonedWater.json b/gamefiles/texts/ogden/quests/poisonedWater.json new file mode 100755 index 00000000..d8dcd39a --- /dev/null +++ b/gamefiles/texts/ogden/quests/poisonedWater.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/ogden/quests/poisonedWater.txt" + ], + "audio": { + "file": "sfx/Towners/tavown02.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/ogden/quests/poisonedWater.txt b/gamefiles/texts/ogden/quests/poisonedWater.txt new file mode 100755 index 00000000..eea35dee --- /dev/null +++ b/gamefiles/texts/ogden/quests/poisonedWater.txt @@ -0,0 +1,3 @@ +I have always tried to keep a large supply of foodstuffs and drink in our storage cellar, but with the entire town having no source of fresh water, even our stores will soon run dry. + +Please, do what you can or I don't know what we will do. \ No newline at end of file diff --git a/gamefiles/texts/ogden/quests/skeletonKing.json b/gamefiles/texts/ogden/quests/skeletonKing.json new file mode 100755 index 00000000..a7ec2286 --- /dev/null +++ b/gamefiles/texts/ogden/quests/skeletonKing.json @@ -0,0 +1,16 @@ +{ + "action": { + "name": "switch", + "param": "|currentLevel|quest.skeletonKing.state|", + "case": [ + { + "value": 0, + "action": { "name": "load", "file": "texts/ogden/quests/skeletonKing1.json" } + }, + { + "value": 1, + "action": { "name": "load", "file": "texts/ogden/quests/skeletonKing2.json" } + } + ] + } +} \ No newline at end of file diff --git a/gamefiles/texts/ogden/quests/skeletonKing1.json b/gamefiles/texts/ogden/quests/skeletonKing1.json new file mode 100755 index 00000000..e06300ad --- /dev/null +++ b/gamefiles/texts/ogden/quests/skeletonKing1.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/ogden/quests/skeletonKing1.txt" + ], + "audio": { + "file": "sfx/Towners/tavown22.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/ogden/quests/skeletonKing1.txt b/gamefiles/texts/ogden/quests/skeletonKing1.txt new file mode 100755 index 00000000..8675fce7 --- /dev/null +++ b/gamefiles/texts/ogden/quests/skeletonKing1.txt @@ -0,0 +1 @@ +As I told you, Good Master, the King was entombed three levels below. He's down there, waiting in the putrid darkness for his chance to destroy this land... \ No newline at end of file diff --git a/gamefiles/texts/ogden/quests/skeletonKing2.json b/gamefiles/texts/ogden/quests/skeletonKing2.json new file mode 100755 index 00000000..16c242eb --- /dev/null +++ b/gamefiles/texts/ogden/quests/skeletonKing2.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/ogden/quests/skeletonKing2.txt" + ], + "audio": { + "file": "sfx/Towners/tavown23.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/ogden/quests/skeletonKing2.txt b/gamefiles/texts/ogden/quests/skeletonKing2.txt new file mode 100755 index 00000000..753fe47b --- /dev/null +++ b/gamefiles/texts/ogden/quests/skeletonKing2.txt @@ -0,0 +1 @@ +The curse of our King has passed, but I fear that it was only part of a greater Evil at work. However, we may yet be saved from the Darkness that consumes our land, for your victory is a good omen. May Light guide you on your way, Good Master. \ No newline at end of file diff --git a/gamefiles/towners/twnf/quests/butcher.json b/gamefiles/texts/ogden/quests/theButcher.json similarity index 68% rename from gamefiles/towners/twnf/quests/butcher.json rename to gamefiles/texts/ogden/quests/theButcher.json index 8ed36103..f1ad66d2 100755 --- a/gamefiles/towners/twnf/quests/butcher.json +++ b/gamefiles/texts/ogden/quests/theButcher.json @@ -1,12 +1,11 @@ { "load": [ "ui/level/showText.json", - "smithText", + "questText", "25", - "towners/twnf/quests/butcher.txt" + "texts/ogden/quests/theButcher.txt" ], "audio": { - "id": "tavown08", "file": "sfx/Towners/tavown08.wav", "play": true, "volume": "|game|soundVolume|" diff --git a/gamefiles/towners/twnf/quests/butcher.txt b/gamefiles/texts/ogden/quests/theButcher.txt similarity index 100% rename from gamefiles/towners/twnf/quests/butcher.txt rename to gamefiles/texts/ogden/quests/theButcher.txt diff --git a/gamefiles/texts/ogden/quests/warlordOfBlood.json b/gamefiles/texts/ogden/quests/warlordOfBlood.json new file mode 100755 index 00000000..81ac8b6c --- /dev/null +++ b/gamefiles/texts/ogden/quests/warlordOfBlood.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/ogden/quests/warlordOfBlood.txt" + ], + "audio": { + "file": "sfx/Towners/tavown16.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/ogden/quests/warlordOfBlood.txt b/gamefiles/texts/ogden/quests/warlordOfBlood.txt new file mode 100755 index 00000000..a529e17e --- /dev/null +++ b/gamefiles/texts/ogden/quests/warlordOfBlood.txt @@ -0,0 +1 @@ +I am afraid that I haven't heard anything about such a vicious warrior, Good Master. I hope that you do not have to fight him, for he sounds extremely dangerous. \ No newline at end of file diff --git a/gamefiles/texts/pepin/gossip/gossip1.json b/gamefiles/texts/pepin/gossip/gossip1.json new file mode 100755 index 00000000..5ad12357 --- /dev/null +++ b/gamefiles/texts/pepin/gossip/gossip1.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/pepin/gossip/gossip1.txt" + ], + "audio": { + "file": "sfx/Towners/healer38.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/pepin/gossip/gossip1.txt b/gamefiles/texts/pepin/gossip/gossip1.txt new file mode 100755 index 00000000..9b9ac2a5 --- /dev/null +++ b/gamefiles/texts/pepin/gossip/gossip1.txt @@ -0,0 +1 @@ +I have made a very interesting discovery. Unlike us, the creatures in the Labyrinth can heal themselves without the aid of potions or magic. If you hurt one of the monsters, make sure it is dead or it very well may regenerate itself. \ No newline at end of file diff --git a/gamefiles/texts/pepin/gossip/gossip2.json b/gamefiles/texts/pepin/gossip/gossip2.json new file mode 100755 index 00000000..0fdb750a --- /dev/null +++ b/gamefiles/texts/pepin/gossip/gossip2.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/pepin/gossip/gossip2.txt" + ], + "audio": { + "file": "sfx/Towners/healer39.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/pepin/gossip/gossip2.txt b/gamefiles/texts/pepin/gossip/gossip2.txt new file mode 100755 index 00000000..671734a4 --- /dev/null +++ b/gamefiles/texts/pepin/gossip/gossip2.txt @@ -0,0 +1 @@ +Before it was taken over by, well, whatever lurks below, the Cathedral was a place of great learning. There are many books to be found there. If you find any, you should read them all, for some may hold secrets to the workings of the Labyrinth. \ No newline at end of file diff --git a/gamefiles/texts/pepin/gossip/gossip3.json b/gamefiles/texts/pepin/gossip/gossip3.json new file mode 100755 index 00000000..75b0ef1d --- /dev/null +++ b/gamefiles/texts/pepin/gossip/gossip3.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/pepin/gossip/gossip3.txt" + ], + "audio": { + "file": "sfx/Towners/healer40.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/pepin/gossip/gossip3.txt b/gamefiles/texts/pepin/gossip/gossip3.txt new file mode 100755 index 00000000..e61e2727 --- /dev/null +++ b/gamefiles/texts/pepin/gossip/gossip3.txt @@ -0,0 +1 @@ +Griswold knows as much about the art of war as I do about the art of healing. He is a shrewd merchant, but his work is second to none. Oh, I suppose that may be because he is the only blacksmith left here. \ No newline at end of file diff --git a/gamefiles/texts/pepin/gossip/gossip4.json b/gamefiles/texts/pepin/gossip/gossip4.json new file mode 100755 index 00000000..b711af2f --- /dev/null +++ b/gamefiles/texts/pepin/gossip/gossip4.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/pepin/gossip/gossip4.txt" + ], + "audio": { + "file": "sfx/Towners/healer41.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/pepin/gossip/gossip4.txt b/gamefiles/texts/pepin/gossip/gossip4.txt new file mode 100755 index 00000000..aa8a3e0e --- /dev/null +++ b/gamefiles/texts/pepin/gossip/gossip4.txt @@ -0,0 +1 @@ +Cain is a true friend and a wise sage. He maintains a vast library and has an innate ability to discern the true nature of many things. If you ever have any questions, he is the person to go to. \ No newline at end of file diff --git a/gamefiles/texts/pepin/gossip/gossip5.json b/gamefiles/texts/pepin/gossip/gossip5.json new file mode 100755 index 00000000..2fa3ba70 --- /dev/null +++ b/gamefiles/texts/pepin/gossip/gossip5.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/pepin/gossip/gossip5.txt" + ], + "audio": { + "file": "sfx/Towners/healer42.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/pepin/gossip/gossip5.txt b/gamefiles/texts/pepin/gossip/gossip5.txt new file mode 100755 index 00000000..0d7a82bc --- /dev/null +++ b/gamefiles/texts/pepin/gossip/gossip5.txt @@ -0,0 +1 @@ +Even my skills have been unable to fully heal Farnham. Oh, I have been able to mend his body, but his mind and spirit are beyond anything I can do. \ No newline at end of file diff --git a/gamefiles/texts/pepin/gossip/gossip6.json b/gamefiles/texts/pepin/gossip/gossip6.json new file mode 100755 index 00000000..dd0c0271 --- /dev/null +++ b/gamefiles/texts/pepin/gossip/gossip6.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/pepin/gossip/gossip6.txt" + ], + "audio": { + "file": "sfx/Towners/healer43.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/pepin/gossip/gossip6.txt b/gamefiles/texts/pepin/gossip/gossip6.txt new file mode 100755 index 00000000..8a9acf26 --- /dev/null +++ b/gamefiles/texts/pepin/gossip/gossip6.txt @@ -0,0 +1 @@ +While I use some limited forms of magic to create the potions and elixirs I store here, Adria is a true sorceress. She never seems to sleep, and she always has access to many mystic tomes and artifacts. I believe her hut may be much more than the hovel it appears to be, but I can never seem to get inside the place. \ No newline at end of file diff --git a/gamefiles/texts/pepin/gossip/gossip7.json b/gamefiles/texts/pepin/gossip/gossip7.json new file mode 100755 index 00000000..aecbff99 --- /dev/null +++ b/gamefiles/texts/pepin/gossip/gossip7.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/pepin/gossip/gossip7.txt" + ], + "audio": { + "file": "sfx/Towners/healer45.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/pepin/gossip/gossip7.txt b/gamefiles/texts/pepin/gossip/gossip7.txt new file mode 100755 index 00000000..d629bb8e --- /dev/null +++ b/gamefiles/texts/pepin/gossip/gossip7.txt @@ -0,0 +1 @@ +Poor Wirt. I did all that was possible for the child, but I know he despises that wooden peg that I was forced to attach to his leg. His wounds were hideous. No one - and especially such a young child - should have to suffer the way he did. \ No newline at end of file diff --git a/gamefiles/texts/pepin/gossip/gossip8.json b/gamefiles/texts/pepin/gossip/gossip8.json new file mode 100755 index 00000000..4ee23ecd --- /dev/null +++ b/gamefiles/texts/pepin/gossip/gossip8.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/pepin/gossip/gossip8.txt" + ], + "audio": { + "file": "sfx/Towners/healer46.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/pepin/gossip/gossip8.txt b/gamefiles/texts/pepin/gossip/gossip8.txt new file mode 100755 index 00000000..5ab6ca97 --- /dev/null +++ b/gamefiles/texts/pepin/gossip/gossip8.txt @@ -0,0 +1 @@ +I really don't understand why Ogden stays here in Tristram. He suffers from a slight nervous condition, but he is an intelligent and industrious man who would do very well wherever he went. I suppose it may be the fear of the many murders that happen in the surrounding countryside, or perhaps the wishes of his wife that keep him and his family where they are. \ No newline at end of file diff --git a/gamefiles/texts/pepin/gossip/gossip9.json b/gamefiles/texts/pepin/gossip/gossip9.json new file mode 100755 index 00000000..928ebc90 --- /dev/null +++ b/gamefiles/texts/pepin/gossip/gossip9.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/pepin/gossip/gossip9.txt" + ], + "audio": { + "file": "sfx/Towners/healer47.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/pepin/gossip/gossip9.txt b/gamefiles/texts/pepin/gossip/gossip9.txt new file mode 100755 index 00000000..897e0309 --- /dev/null +++ b/gamefiles/texts/pepin/gossip/gossip9.txt @@ -0,0 +1 @@ +Ogden's barmaid is a sweet girl. Her grandmother is quite ill, and suffers from delusions. She claims that they are visions, but I have no proof of that one way or the other. \ No newline at end of file diff --git a/gamefiles/texts/pepin/quests/anvilOfFury.json b/gamefiles/texts/pepin/quests/anvilOfFury.json new file mode 100755 index 00000000..938f6d33 --- /dev/null +++ b/gamefiles/texts/pepin/quests/anvilOfFury.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/pepin/quests/anvilOfFury.txt" + ], + "audio": { + "file": "sfx/Towners/healer12.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/pepin/quests/anvilOfFury.txt b/gamefiles/texts/pepin/quests/anvilOfFury.txt new file mode 100755 index 00000000..c0baa8fc --- /dev/null +++ b/gamefiles/texts/pepin/quests/anvilOfFury.txt @@ -0,0 +1 @@ +If you had been looking for information on the Pestle of Curing or the Silver Chalice of Purification, I could have assisted you, my friend. However, in this matter, you would be better served to speak to either Griswold or Cain. \ No newline at end of file diff --git a/gamefiles/texts/pepin/quests/archbishopLazarus.json b/gamefiles/texts/pepin/quests/archbishopLazarus.json new file mode 100755 index 00000000..ba33b36b --- /dev/null +++ b/gamefiles/texts/pepin/quests/archbishopLazarus.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/pepin/quests/archbishopLazarus.txt" + ], + "audio": { + "file": "sfx/Towners/healer03.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/pepin/quests/archbishopLazarus.txt b/gamefiles/texts/pepin/quests/archbishopLazarus.txt new file mode 100755 index 00000000..cb3502a5 --- /dev/null +++ b/gamefiles/texts/pepin/quests/archbishopLazarus.txt @@ -0,0 +1 @@ +I was shocked when I heard of what the townspeople were planning to do that night. I thought that of all people, Lazarus would have had more sense than that. He was an Archbishop, and always seemed to care so much for the townsfolk of Tristram. So many were injured, I could not save them all... \ No newline at end of file diff --git a/gamefiles/texts/pepin/quests/arkainesValor.json b/gamefiles/texts/pepin/quests/arkainesValor.json new file mode 100755 index 00000000..86fccf0e --- /dev/null +++ b/gamefiles/texts/pepin/quests/arkainesValor.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/pepin/quests/arkainesValor.txt" + ], + "audio": { + "file": "sfx/Towners/healer13.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/pepin/quests/arkainesValor.txt b/gamefiles/texts/pepin/quests/arkainesValor.txt new file mode 100755 index 00000000..b5aee9f3 --- /dev/null +++ b/gamefiles/texts/pepin/quests/arkainesValor.txt @@ -0,0 +1 @@ +Hmm... It sounds like something I should remember, but I've been so busy learning new cures and creating better elixirs that I must have forgotten. Sorry... \ No newline at end of file diff --git a/gamefiles/texts/pepin/quests/blackMushroom.json b/gamefiles/texts/pepin/quests/blackMushroom.json new file mode 100755 index 00000000..450ddb4a --- /dev/null +++ b/gamefiles/texts/pepin/quests/blackMushroom.json @@ -0,0 +1,16 @@ +{ + "action": { + "name": "switch", + "param": "|currentLevel|quest.blackMushroom.state|", + "case": [ + { + "value": 0, + "action": { "name": "load", "file": "texts/pepin/quests/blackMushroom1.json" } + }, + { + "value": 1, + "action": { "name": "load", "file": "texts/pepin/quests/blackMushroom2.json" } + } + ] + } +} \ No newline at end of file diff --git a/gamefiles/texts/pepin/quests/blackMushroom1.json b/gamefiles/texts/pepin/quests/blackMushroom1.json new file mode 100755 index 00000000..9bb5a17b --- /dev/null +++ b/gamefiles/texts/pepin/quests/blackMushroom1.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/pepin/quests/blackMushroom1.txt" + ], + "audio": { + "file": "sfx/Towners/healer26.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/pepin/quests/blackMushroom1.txt b/gamefiles/texts/pepin/quests/blackMushroom1.txt new file mode 100755 index 00000000..f5ed4264 --- /dev/null +++ b/gamefiles/texts/pepin/quests/blackMushroom1.txt @@ -0,0 +1 @@ +The Witch told me that you were searching for the Brain of a Demon to assist me in creating my elixir. It should be of great value to the many who are injured by those foul beasts, if I can just unlock the secrets I suspect that its alchemy holds. If you can remove the Brain of a Demon when you kill it, I would be grateful if you could bring it to me. \ No newline at end of file diff --git a/gamefiles/texts/pepin/quests/blackMushroom2.json b/gamefiles/texts/pepin/quests/blackMushroom2.json new file mode 100755 index 00000000..f0f48994 --- /dev/null +++ b/gamefiles/texts/pepin/quests/blackMushroom2.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/pepin/quests/blackMushroom2.txt" + ], + "audio": { + "file": "sfx/Towners/healer27.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/pepin/quests/blackMushroom2.txt b/gamefiles/texts/pepin/quests/blackMushroom2.txt new file mode 100755 index 00000000..8115b54e --- /dev/null +++ b/gamefiles/texts/pepin/quests/blackMushroom2.txt @@ -0,0 +1 @@ +Excellent, this is just what I had in mind. I was able to finish the elixir without this, but it can't hurt to have this to study. Would you please carry this to the Witch? I believe that she is expecting it. \ No newline at end of file diff --git a/gamefiles/texts/pepin/quests/chamberOfBone.json b/gamefiles/texts/pepin/quests/chamberOfBone.json new file mode 100755 index 00000000..a74203cf --- /dev/null +++ b/gamefiles/texts/pepin/quests/chamberOfBone.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/pepin/quests/chamberOfBone.txt" + ], + "audio": { + "file": "sfx/Towners/healer05.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/pepin/quests/chamberOfBone.txt b/gamefiles/texts/pepin/quests/chamberOfBone.txt new file mode 100755 index 00000000..419916a2 --- /dev/null +++ b/gamefiles/texts/pepin/quests/chamberOfBone.txt @@ -0,0 +1 @@ +This sounds like a very dangerous place. If you venture there, please take great care. \ No newline at end of file diff --git a/gamefiles/texts/pepin/quests/hallsOfTheBlind.json b/gamefiles/texts/pepin/quests/hallsOfTheBlind.json new file mode 100755 index 00000000..b160c777 --- /dev/null +++ b/gamefiles/texts/pepin/quests/hallsOfTheBlind.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/pepin/quests/hallsOfTheBlind.txt" + ], + "audio": { + "file": "sfx/Towners/healer10.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/pepin/quests/hallsOfTheBlind.txt b/gamefiles/texts/pepin/quests/hallsOfTheBlind.txt new file mode 100755 index 00000000..e31d283a --- /dev/null +++ b/gamefiles/texts/pepin/quests/hallsOfTheBlind.txt @@ -0,0 +1 @@ +This does seem familiar, somehow. I seem to recall reading something very much like that poem while researching the history of demonic afflictions. It spoke of a place of great Evil that... Wait - you're not going there, are you? \ No newline at end of file diff --git a/gamefiles/texts/pepin/quests/lachdanan.json b/gamefiles/texts/pepin/quests/lachdanan.json new file mode 100755 index 00000000..06eaa8b6 --- /dev/null +++ b/gamefiles/texts/pepin/quests/lachdanan.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/pepin/quests/lachdanan.txt" + ], + "audio": { + "file": "sfx/Towners/healer11.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/pepin/quests/lachdanan.txt b/gamefiles/texts/pepin/quests/lachdanan.txt new file mode 100755 index 00000000..227ee1dd --- /dev/null +++ b/gamefiles/texts/pepin/quests/lachdanan.txt @@ -0,0 +1 @@ +A Golden Elixir, you say. I have never concocted a potion of that color before, so I can't tell you how it would effect you if you were to try to drink it. As your healer, I strongly advise that should you find such an Elixir, do as Lachdanan asks and do not try to use it. \ No newline at end of file diff --git a/gamefiles/texts/pepin/quests/magicRock.json b/gamefiles/texts/pepin/quests/magicRock.json new file mode 100755 index 00000000..e7710285 --- /dev/null +++ b/gamefiles/texts/pepin/quests/magicRock.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/pepin/quests/magicRock.txt" + ], + "audio": { + "file": "sfx/Towners/healer18.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/pepin/quests/magicRock.txt b/gamefiles/texts/pepin/quests/magicRock.txt new file mode 100755 index 00000000..96e0e79d --- /dev/null +++ b/gamefiles/texts/pepin/quests/magicRock.txt @@ -0,0 +1 @@ +I don't know what it is that they thought they could see with that rock, but I will say this. If rocks are falling from the Sky, you had better be careful! \ No newline at end of file diff --git a/gamefiles/texts/pepin/quests/ogdensSign.json b/gamefiles/texts/pepin/quests/ogdensSign.json new file mode 100755 index 00000000..815eea8a --- /dev/null +++ b/gamefiles/texts/pepin/quests/ogdensSign.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/pepin/quests/ogdensSign.txt" + ], + "audio": { + "file": "sfx/Towners/healer02.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/pepin/quests/ogdensSign.txt b/gamefiles/texts/pepin/quests/ogdensSign.txt new file mode 100755 index 00000000..b4acdbab --- /dev/null +++ b/gamefiles/texts/pepin/quests/ogdensSign.txt @@ -0,0 +1 @@ +My goodness, Demons running about the village at night, pillaging our homes - is nothing sacred? I hope that Ogden and Garda are all right. I suppose that they would come to see me if they were hurt... \ No newline at end of file diff --git a/gamefiles/texts/pepin/quests/poisonedWater.json b/gamefiles/texts/pepin/quests/poisonedWater.json new file mode 100755 index 00000000..cb9e3ace --- /dev/null +++ b/gamefiles/texts/pepin/quests/poisonedWater.json @@ -0,0 +1,16 @@ +{ + "action": { + "name": "switch", + "param": "|currentLevel|quest.poisonedWater.state|", + "case": [ + { + "value": 0, + "action": { "name": "load", "file": "texts/pepin/quests/poisonedWater1.json" } + }, + { + "value": 1, + "action": { "name": "load", "file": "texts/pepin/quests/poisonedWater2.json" } + } + ] + } +} \ No newline at end of file diff --git a/gamefiles/texts/pepin/quests/poisonedWater1.json b/gamefiles/texts/pepin/quests/poisonedWater1.json new file mode 100755 index 00000000..7d1e0fe6 --- /dev/null +++ b/gamefiles/texts/pepin/quests/poisonedWater1.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/pepin/quests/poisonedWater1.txt" + ], + "audio": { + "file": "sfx/Towners/healer21.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/pepin/quests/poisonedWater1.txt b/gamefiles/texts/pepin/quests/poisonedWater1.txt new file mode 100755 index 00000000..b9102330 --- /dev/null +++ b/gamefiles/texts/pepin/quests/poisonedWater1.txt @@ -0,0 +1,3 @@ +Please, you must hurry. Every hour that passes brings us closer to having no water to drink. + +We cannot survive for long without your help. \ No newline at end of file diff --git a/gamefiles/texts/pepin/quests/poisonedWater2.json b/gamefiles/texts/pepin/quests/poisonedWater2.json new file mode 100755 index 00000000..6d637578 --- /dev/null +++ b/gamefiles/texts/pepin/quests/poisonedWater2.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/pepin/quests/poisonedWater2.txt" + ], + "audio": { + "file": "sfx/Towners/healer22.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/pepin/quests/poisonedWater2.txt b/gamefiles/texts/pepin/quests/poisonedWater2.txt new file mode 100755 index 00000000..dfdaa269 --- /dev/null +++ b/gamefiles/texts/pepin/quests/poisonedWater2.txt @@ -0,0 +1 @@ +What's that you say - the mere presence of the Demons had caused the water to become tainted? Oh, truly a great Evil lurks beneath our town, but your perseverance and courage gives us hope. Please take this ring - perhaps it will aid you in the destruction of such vile creatures. \ No newline at end of file diff --git a/gamefiles/texts/pepin/quests/skeletonKing.json b/gamefiles/texts/pepin/quests/skeletonKing.json new file mode 100755 index 00000000..4bb94d87 --- /dev/null +++ b/gamefiles/texts/pepin/quests/skeletonKing.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/pepin/quests/skeletonKing.txt" + ], + "audio": { + "file": "sfx/Towners/healer01.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/pepin/quests/skeletonKing.txt b/gamefiles/texts/pepin/quests/skeletonKing.txt new file mode 100755 index 00000000..e50eb61c --- /dev/null +++ b/gamefiles/texts/pepin/quests/skeletonKing.txt @@ -0,0 +1 @@ +The loss of his son was too much for King Leoric. I did what I could to ease his madness, but in the end it overcame him. A black curse has hung over this kingdom from that day forward, but perhaps if you were to free his spirit from his Earthly prison, the curse would be lifted... \ No newline at end of file diff --git a/gamefiles/towners/healer/quests/butcher.json b/gamefiles/texts/pepin/quests/theButcher.json similarity index 68% rename from gamefiles/towners/healer/quests/butcher.json rename to gamefiles/texts/pepin/quests/theButcher.json index 5be20156..bfc3e02c 100755 --- a/gamefiles/towners/healer/quests/butcher.json +++ b/gamefiles/texts/pepin/quests/theButcher.json @@ -1,12 +1,11 @@ { "load": [ "ui/level/showText.json", - "smithText", + "questText", "50", - "towners/healer/quests/butcher.txt" + "texts/pepin/quests/theButcher.txt" ], "audio": { - "id": "healer08", "file": "sfx/Towners/healer08.wav", "play": true, "volume": "|game|soundVolume|" diff --git a/gamefiles/towners/healer/quests/butcher.txt b/gamefiles/texts/pepin/quests/theButcher.txt similarity index 100% rename from gamefiles/towners/healer/quests/butcher.txt rename to gamefiles/texts/pepin/quests/theButcher.txt diff --git a/gamefiles/texts/pepin/quests/warlordOfBlood.json b/gamefiles/texts/pepin/quests/warlordOfBlood.json new file mode 100755 index 00000000..5bae0df1 --- /dev/null +++ b/gamefiles/texts/pepin/quests/warlordOfBlood.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/pepin/quests/warlordOfBlood.txt" + ], + "audio": { + "file": "sfx/Towners/healer16.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/pepin/quests/warlordOfBlood.txt b/gamefiles/texts/pepin/quests/warlordOfBlood.txt new file mode 100755 index 00000000..58ba46c9 --- /dev/null +++ b/gamefiles/texts/pepin/quests/warlordOfBlood.txt @@ -0,0 +1 @@ +Cain would be able to tell you much more about something like this than I would ever wish to know. \ No newline at end of file diff --git a/gamefiles/texts/quests/anvilOfFury.json b/gamefiles/texts/quests/anvilOfFury.json new file mode 100755 index 00000000..a64c3779 --- /dev/null +++ b/gamefiles/texts/quests/anvilOfFury.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/quests/anvilOfFury.txt" + ], + "audio": { + "file": "sfx/Towners/bsmith21.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/quests/anvilOfFury.txt b/gamefiles/texts/quests/anvilOfFury.txt new file mode 100755 index 00000000..5665beb6 --- /dev/null +++ b/gamefiles/texts/quests/anvilOfFury.txt @@ -0,0 +1,5 @@ +Greetings! It's always a pleasure to see one of my best customers! I know that you have been venturing deeper into the Labyrinth, and there is a story I was told that you may find worth the time to listen to... + +One of the men who returned from the Labyrinth told me about a mystic anvil that he came across during his escape. His description reminded me of legends I had heard in my youth about the Burning Hellforge where powerful weapons of magic are crafted. The legend had it that deep within the Hellforge rested the Anvil of Fury! This anvil contained within it the very essence of the demonic underworld... + +It is said that any weapon crafted upon the burning Anvil is imbued with great power. If this anvil is indeed the Anvil of Fury, I may be able to make you a weapon capable of defeating even the darkest Lord of Hell! Find the Anvil for me, and I'll get to work! \ No newline at end of file diff --git a/gamefiles/texts/quests/archbishopLazarus.json b/gamefiles/texts/quests/archbishopLazarus.json new file mode 100755 index 00000000..e7f2d5a1 --- /dev/null +++ b/gamefiles/texts/quests/archbishopLazarus.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/quests/archbishopLazarus.txt" + ], + "audio": { + "file": "sfx/Towners/storyt36.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/quests/archbishopLazarus.txt b/gamefiles/texts/quests/archbishopLazarus.txt new file mode 100755 index 00000000..a906fe2e --- /dev/null +++ b/gamefiles/texts/quests/archbishopLazarus.txt @@ -0,0 +1,9 @@ +This does not bode well, for it confirms my darkest fears. While I did not allow myself to believe the Ancient Legends, I cannot deny them now. Perhaps the time has come to reveal who I am. + +My true name is Deckard Cain the Elder, and I am the last descendant of an Ancient Brotherhood that was dedicated to safeguarding the secrets of a timeless Evil. An Evil that quite obviously has now been released. + +The Archbishop Lazarus, once King Leoric's most trusted advisor, led a party of simple townsfolk into the Labyrinth to find the King's missing son, Albrecht. Quite some time passed before they returned, and only a few of them escaped with their lives. + +Curse me for a fool! I should have suspected his veiled treachery then. It must have been Lazarus himself who kidnapped Albrecht and has since hidden him within the Labyrinth. I do not understand why the Archbishop turned to the Darkness, or what his interest is in the child. Unless he means to sacrifice him to his Dark Masters! + +That must be what he has planned! The survivors of his 'rescue party' say that Lazarus was last seen running into the deepest bowels of the Labyrinth. You must hurry and save the Prince from the Sacrificial Blade of this demented fiend! \ No newline at end of file diff --git a/gamefiles/texts/quests/arkainesValor.json b/gamefiles/texts/quests/arkainesValor.json new file mode 100755 index 00000000..3f2b5b0b --- /dev/null +++ b/gamefiles/texts/quests/arkainesValor.json @@ -0,0 +1,50 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/quests/arkainesValor.txt" + ], + "action": { + "name": "switch", + "param": "|currentLevel|currentPlayer.class|", + "case": [ + { + "value": "Rogue", + "action": { + "name": "loadJson", + "json": { + "audio": { + "file": "sfx/rogue/rogue10.wav", + "play": true, + "volume": "|game|soundVolume|" + } + } + } + }, + { + "value": "Sorceror", + "action": { + "name": "loadJson", + "json": { + "audio": { + "file": "sfx/sorceror/mage10.wav", + "play": true, + "volume": "|game|soundVolume|" + } + } + } + } + ], + "default": { + "name": "loadJson", + "json": { + "audio": { + "file": "sfx/Warrior/warior10.wav", + "play": true, + "volume": "|game|soundVolume|" + } + } + } + } +} \ No newline at end of file diff --git a/gamefiles/texts/quests/arkainesValor.txt b/gamefiles/texts/quests/arkainesValor.txt new file mode 100755 index 00000000..a3b6a6f4 --- /dev/null +++ b/gamefiles/texts/quests/arkainesValor.txt @@ -0,0 +1 @@ +...and so, locked beyond the Gateway of Blood and past the Hall of Fire, Valor awaits for the Hero of Light to awaken... \ No newline at end of file diff --git a/gamefiles/texts/quests/blackMushroom.json b/gamefiles/texts/quests/blackMushroom.json new file mode 100755 index 00000000..2de61452 --- /dev/null +++ b/gamefiles/texts/quests/blackMushroom.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/quests/blackMushroom.txt" + ], + "audio": { + "file": "sfx/Towners/witch22.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/quests/blackMushroom.txt b/gamefiles/texts/quests/blackMushroom.txt new file mode 100755 index 00000000..28667e83 --- /dev/null +++ b/gamefiles/texts/quests/blackMushroom.txt @@ -0,0 +1 @@ +What do we have here? Interesting. It looks like a Book of Reagents. Keep your eyes open for a Black Mushroom. It should be fairly large and easy to identify. If you find it, bring it to me, won't you? \ No newline at end of file diff --git a/gamefiles/texts/quests/chamberOfBone.json b/gamefiles/texts/quests/chamberOfBone.json new file mode 100755 index 00000000..70f9b94c --- /dev/null +++ b/gamefiles/texts/quests/chamberOfBone.json @@ -0,0 +1,50 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/quests/chamberOfBone.txt" + ], + "action": { + "name": "switch", + "param": "|currentLevel|currentPlayer.class|", + "case": [ + { + "value": "Rogue", + "action": { + "name": "loadJson", + "json": { + "audio": { + "file": "sfx/rogue/rogue01.wav", + "play": true, + "volume": "|game|soundVolume|" + } + } + } + }, + { + "value": "Sorceror", + "action": { + "name": "loadJson", + "json": { + "audio": { + "file": "sfx/sorceror/mage01.wav", + "play": true, + "volume": "|game|soundVolume|" + } + } + } + } + ], + "default": { + "name": "loadJson", + "json": { + "audio": { + "file": "sfx/Warrior/warior01.wav", + "play": true, + "volume": "|game|soundVolume|" + } + } + } + } +} \ No newline at end of file diff --git a/gamefiles/texts/quests/chamberOfBone.txt b/gamefiles/texts/quests/chamberOfBone.txt new file mode 100755 index 00000000..a66aaa56 --- /dev/null +++ b/gamefiles/texts/quests/chamberOfBone.txt @@ -0,0 +1 @@ +Beyond the Hall of Heroes lies the Chamber of Bone. Eternal death awaits any who would seek to steal the treasures secured within this room. So speaks the Lord of Terror, and so it is written. \ No newline at end of file diff --git a/gamefiles/texts/quests/diablo.json b/gamefiles/texts/quests/diablo.json new file mode 100755 index 00000000..addac927 --- /dev/null +++ b/gamefiles/texts/quests/diablo.json @@ -0,0 +1,3 @@ +{ + "load": "texts/cain/quests/diablo.json" +} \ No newline at end of file diff --git a/gamefiles/texts/quests/gharbadTheWeak.json b/gamefiles/texts/quests/gharbadTheWeak.json new file mode 100755 index 00000000..0c67dd22 --- /dev/null +++ b/gamefiles/texts/quests/gharbadTheWeak.json @@ -0,0 +1,3 @@ +{ + "load": "texts/misc/quests/gharbadTheWeak.json" +} \ No newline at end of file diff --git a/gamefiles/texts/quests/hallsOfTheBlind.json b/gamefiles/texts/quests/hallsOfTheBlind.json new file mode 100755 index 00000000..c7958367 --- /dev/null +++ b/gamefiles/texts/quests/hallsOfTheBlind.json @@ -0,0 +1,50 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/quests/hallsOfTheBlind.txt" + ], + "action": { + "name": "switch", + "param": "|currentLevel|currentPlayer.class|", + "case": [ + { + "value": "Rogue", + "action": { + "name": "loadJson", + "json": { + "audio": { + "file": "sfx/rogue/rogue11.wav", + "play": true, + "volume": "|game|soundVolume|" + } + } + } + }, + { + "value": "Sorceror", + "action": { + "name": "loadJson", + "json": { + "audio": { + "file": "sfx/sorceror/mage11.wav", + "play": true, + "volume": "|game|soundVolume|" + } + } + } + } + ], + "default": { + "name": "loadJson", + "json": { + "audio": { + "file": "sfx/Warrior/warior11.wav", + "play": true, + "volume": "|game|soundVolume|" + } + } + } + } +} \ No newline at end of file diff --git a/gamefiles/texts/quests/hallsOfTheBlind.txt b/gamefiles/texts/quests/hallsOfTheBlind.txt new file mode 100755 index 00000000..b48fe96e --- /dev/null +++ b/gamefiles/texts/quests/hallsOfTheBlind.txt @@ -0,0 +1,8 @@ +I can see what you see not. +Vision milky then eyes rot. +When you turn they will be gone, +Whispering their hidden song. +Then you see what cannot be, +Shadows move where light should be. +Out of darkness, out of mind, +Cast down into the Halls of the Blind. \ No newline at end of file diff --git a/gamefiles/texts/quests/lachdanan.json b/gamefiles/texts/quests/lachdanan.json new file mode 100755 index 00000000..22a83146 --- /dev/null +++ b/gamefiles/texts/quests/lachdanan.json @@ -0,0 +1,3 @@ +{ + "load": "texts/misc/quests/lachdanan1.json" +} \ No newline at end of file diff --git a/gamefiles/texts/quests/magicRock.json b/gamefiles/texts/quests/magicRock.json new file mode 100755 index 00000000..4cb85c2d --- /dev/null +++ b/gamefiles/texts/quests/magicRock.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/quests/magicRock.txt" + ], + "audio": { + "file": "sfx/Towners/bsmith24.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/quests/magicRock.txt b/gamefiles/texts/quests/magicRock.txt new file mode 100755 index 00000000..5bd2b0e8 --- /dev/null +++ b/gamefiles/texts/quests/magicRock.txt @@ -0,0 +1 @@ +Stay for a moment - I have a story you might find interesting. A caravan that was bound for the the Eastern Kingdoms passed through here some time ago. It was supposedly carrying a piece of the Heavens that had fallen to Earth! The caravan was ambushed by cloaked riders just north of here along the roadway. I searched the wreckage for this Sky Rock, but it was nowhere to be found. If you should find it, I believe that I can fashion something useful from it. \ No newline at end of file diff --git a/gamefiles/texts/quests/ogdensSign.json b/gamefiles/texts/quests/ogdensSign.json new file mode 100755 index 00000000..69b059e4 --- /dev/null +++ b/gamefiles/texts/quests/ogdensSign.json @@ -0,0 +1,3 @@ +{ + "load": "texts/ogden/quests/ogdensSign.json" +} \ No newline at end of file diff --git a/gamefiles/texts/quests/poisonedWater.json b/gamefiles/texts/quests/poisonedWater.json new file mode 100755 index 00000000..012e89ce --- /dev/null +++ b/gamefiles/texts/quests/poisonedWater.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/quests/poisonedWater.txt" + ], + "audio": { + "file": "sfx/Towners/healer20.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/quests/poisonedWater.txt b/gamefiles/texts/quests/poisonedWater.txt new file mode 100755 index 00000000..3966f51a --- /dev/null +++ b/gamefiles/texts/quests/poisonedWater.txt @@ -0,0 +1 @@ +I'm glad I caught up to you in time! Our wells have become brackish and stagnant and some of the townspeople have become ill from drinking them. Our reserves of fresh water are quickly running dry. I believe that there is a passage that leads to the springs that serve our town. Please find what has caused this calamity, or we all will surely perish. \ No newline at end of file diff --git a/gamefiles/texts/quests/skeletonKing.json b/gamefiles/texts/quests/skeletonKing.json new file mode 100755 index 00000000..305ce185 --- /dev/null +++ b/gamefiles/texts/quests/skeletonKing.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/quests/skeletonKing.txt" + ], + "audio": { + "file": "sfx/Towners/tavown21.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/quests/skeletonKing.txt b/gamefiles/texts/quests/skeletonKing.txt new file mode 100755 index 00000000..61bd2d29 --- /dev/null +++ b/gamefiles/texts/quests/skeletonKing.txt @@ -0,0 +1,5 @@ +The village needs your help, Good Master! Some months ago King Leoric's son, Prince Albrecht, was kidnapped. The King went into a rage and scoured the village for his missing child. With each passing day, Leoric seemed to slip deeper into madness. He sought to blame innocent townsfolk for the boy's disappearance and had them brutally executed. Less than half of us survived his insanity... + +The King's knights and priests tried to placate him, but he turned against them and sadly, they were forced to kill him. With his dying breath the King called down a terrible curse upon his former followers. He vowed that they would serve him in darkness forever... + +This is where things take an even darker twist than I thought possible! Our former King has risen from his eternal sleep and now commands a legion of Undead Minions within the labyrinth. His body was buried in a tomb three levels beneath the Cathedral. Please, good Master, put his soul at ease by destroying his now cursed form... \ No newline at end of file diff --git a/gamefiles/quests/butcher.json b/gamefiles/texts/quests/theButcher.json similarity index 80% rename from gamefiles/quests/butcher.json rename to gamefiles/texts/quests/theButcher.json index 49e2a9b7..d27314af 100755 --- a/gamefiles/quests/butcher.json +++ b/gamefiles/texts/quests/theButcher.json @@ -3,10 +3,9 @@ "ui/level/showText.json", "questText", "50", - "quests/butcher.txt" + "texts/quests/theButcher.txt" ], "audio": { - "id": "wound01", "file": "sfx/Towners/wound01.wav", "play": true, "volume": "|game|soundVolume|" diff --git a/gamefiles/quests/butcher.txt b/gamefiles/texts/quests/theButcher.txt similarity index 100% rename from gamefiles/quests/butcher.txt rename to gamefiles/texts/quests/theButcher.txt diff --git a/gamefiles/texts/quests/warlordOfBlood.json b/gamefiles/texts/quests/warlordOfBlood.json new file mode 100755 index 00000000..ea105daa --- /dev/null +++ b/gamefiles/texts/quests/warlordOfBlood.json @@ -0,0 +1,50 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/quests/warlordOfBlood.txt" + ], + "action": { + "name": "switch", + "param": "|currentLevel|currentPlayer.class|", + "case": [ + { + "value": "Rogue", + "action": { + "name": "loadJson", + "json": { + "audio": { + "file": "sfx/rogue/rogue12.wav", + "play": true, + "volume": "|game|soundVolume|" + } + } + } + }, + { + "value": "Sorceror", + "action": { + "name": "loadJson", + "json": { + "audio": { + "file": "sfx/sorceror/mage12.wav", + "play": true, + "volume": "|game|soundVolume|" + } + } + } + } + ], + "default": { + "name": "loadJson", + "json": { + "audio": { + "file": "sfx/Warrior/warior12.wav", + "play": true, + "volume": "|game|soundVolume|" + } + } + } + } +} \ No newline at end of file diff --git a/gamefiles/texts/quests/warlordOfBlood.txt b/gamefiles/texts/quests/warlordOfBlood.txt new file mode 100755 index 00000000..0faedf19 --- /dev/null +++ b/gamefiles/texts/quests/warlordOfBlood.txt @@ -0,0 +1 @@ +The armories of Hell are home to the Warlord of Blood. In his wake lay the mutilated bodies of thousands. Angels and man alike have been cut down to fulfill his endless sacrifices to the Dark ones who scream for one thing - blood. \ No newline at end of file diff --git a/gamefiles/texts/quests/zharTheMad.json b/gamefiles/texts/quests/zharTheMad.json new file mode 100755 index 00000000..cf03fe4f --- /dev/null +++ b/gamefiles/texts/quests/zharTheMad.json @@ -0,0 +1,3 @@ +{ + "load": "texts/misc/quests/zharTheMad1.json" +} \ No newline at end of file diff --git a/gamefiles/texts/wirt/gossip/gossip1.json b/gamefiles/texts/wirt/gossip/gossip1.json new file mode 100755 index 00000000..f592f128 --- /dev/null +++ b/gamefiles/texts/wirt/gossip/gossip1.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/wirt/gossip/gossip1.txt" + ], + "audio": { + "file": "sfx/Towners/pegboy33.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/wirt/gossip/gossip1.txt b/gamefiles/texts/wirt/gossip/gossip1.txt new file mode 100755 index 00000000..c2bdff47 --- /dev/null +++ b/gamefiles/texts/wirt/gossip/gossip1.txt @@ -0,0 +1 @@ +Not everyone in Tristram has a use - or a market - for everything you will find in the labyrinth. Not even me, as hard as that is to believe. Sometimes, only you will be able to find a purpose for some things. \ No newline at end of file diff --git a/gamefiles/texts/wirt/gossip/gossip10.json b/gamefiles/texts/wirt/gossip/gossip10.json new file mode 100755 index 00000000..72353b55 --- /dev/null +++ b/gamefiles/texts/wirt/gossip/gossip10.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/wirt/gossip/gossip10.txt" + ], + "audio": { + "file": "sfx/Towners/pegboy43.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/wirt/gossip/gossip10.txt b/gamefiles/texts/wirt/gossip/gossip10.txt new file mode 100755 index 00000000..d4fba14a --- /dev/null +++ b/gamefiles/texts/wirt/gossip/gossip10.txt @@ -0,0 +1 @@ +Ogden is a fool for staying here. I could get him out of town for a very reasonable price, but he insists on trying to make a go of it with that stupid tavern. I guess at the least he gives Gillian a place to work, and his wife Garda does make a superb Shepherd's pie... \ No newline at end of file diff --git a/gamefiles/texts/wirt/gossip/gossip2.json b/gamefiles/texts/wirt/gossip/gossip2.json new file mode 100755 index 00000000..ec881d6d --- /dev/null +++ b/gamefiles/texts/wirt/gossip/gossip2.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/wirt/gossip/gossip2.txt" + ], + "audio": { + "file": "sfx/Towners/pegboy34.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/wirt/gossip/gossip2.txt b/gamefiles/texts/wirt/gossip/gossip2.txt new file mode 100755 index 00000000..f11e49fc --- /dev/null +++ b/gamefiles/texts/wirt/gossip/gossip2.txt @@ -0,0 +1 @@ +Don't trust everything the drunk says. Too many ales have fogged his vision and his good sense. \ No newline at end of file diff --git a/gamefiles/texts/wirt/gossip/gossip3.json b/gamefiles/texts/wirt/gossip/gossip3.json new file mode 100755 index 00000000..600c77ba --- /dev/null +++ b/gamefiles/texts/wirt/gossip/gossip3.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/wirt/gossip/gossip3.txt" + ], + "audio": { + "file": "sfx/Towners/pegboy35.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/wirt/gossip/gossip3.txt b/gamefiles/texts/wirt/gossip/gossip3.txt new file mode 100755 index 00000000..e478edb7 --- /dev/null +++ b/gamefiles/texts/wirt/gossip/gossip3.txt @@ -0,0 +1 @@ +In case you haven't noticed, I don't buy anything from Tristram. I am an importer of quality goods. If you want to peddle junk, you'll have to see Griswold, Pepin or that witch, Adria. I'm sure that they will snap up whatever you can bring them... \ No newline at end of file diff --git a/gamefiles/texts/wirt/gossip/gossip4.json b/gamefiles/texts/wirt/gossip/gossip4.json new file mode 100755 index 00000000..bc5bba81 --- /dev/null +++ b/gamefiles/texts/wirt/gossip/gossip4.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/wirt/gossip/gossip4.txt" + ], + "audio": { + "file": "sfx/Towners/pegboy36.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/wirt/gossip/gossip4.txt b/gamefiles/texts/wirt/gossip/gossip4.txt new file mode 100755 index 00000000..87c044db --- /dev/null +++ b/gamefiles/texts/wirt/gossip/gossip4.txt @@ -0,0 +1 @@ +I guess I owe the blacksmith my life - what there is of it. Sure, Griswold offered me an apprenticeship at the smithy, and he is a nice enough guy, but I'll never get enough money to... well, let's just say that I have definite plans that require a large amount of gold. \ No newline at end of file diff --git a/gamefiles/texts/wirt/gossip/gossip5.json b/gamefiles/texts/wirt/gossip/gossip5.json new file mode 100755 index 00000000..78f0037a --- /dev/null +++ b/gamefiles/texts/wirt/gossip/gossip5.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/wirt/gossip/gossip5.txt" + ], + "audio": { + "file": "sfx/Towners/pegboy37.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/wirt/gossip/gossip5.txt b/gamefiles/texts/wirt/gossip/gossip5.txt new file mode 100755 index 00000000..9cc5c01b --- /dev/null +++ b/gamefiles/texts/wirt/gossip/gossip5.txt @@ -0,0 +1 @@ +If I were a few years older, I would shower her with whatever riches I could muster, and let me assure you I can get my hands on some very nice stuff. Gillian is a beautiful girl who should get out of Tristram as soon as it is safe. Hmmm... maybe I'll take her with me when I go... \ No newline at end of file diff --git a/gamefiles/texts/wirt/gossip/gossip6.json b/gamefiles/texts/wirt/gossip/gossip6.json new file mode 100755 index 00000000..1cf05bfe --- /dev/null +++ b/gamefiles/texts/wirt/gossip/gossip6.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/wirt/gossip/gossip6.txt" + ], + "audio": { + "file": "sfx/Towners/pegboy38.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/wirt/gossip/gossip6.txt b/gamefiles/texts/wirt/gossip/gossip6.txt new file mode 100755 index 00000000..2d5bd355 --- /dev/null +++ b/gamefiles/texts/wirt/gossip/gossip6.txt @@ -0,0 +1 @@ +Cain knows too much. He scares the life out of me - even more than that woman across the river. He keeps telling me about how lucky I am to be alive, and how my story is foretold in legend. I think he's off his crock. \ No newline at end of file diff --git a/gamefiles/texts/wirt/gossip/gossip7.json b/gamefiles/texts/wirt/gossip/gossip7.json new file mode 100755 index 00000000..0fc7ea04 --- /dev/null +++ b/gamefiles/texts/wirt/gossip/gossip7.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/wirt/gossip/gossip7.txt" + ], + "audio": { + "file": "sfx/Towners/pegboy39.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/wirt/gossip/gossip7.txt b/gamefiles/texts/wirt/gossip/gossip7.txt new file mode 100755 index 00000000..3eadb18e --- /dev/null +++ b/gamefiles/texts/wirt/gossip/gossip7.txt @@ -0,0 +1 @@ +Farnham - now there is a man with serious problems, and I know all about how serious problems can be. He trusted too much in the integrity of one man, and Lazarus led him into the very jaws of death. Oh, I know what it's like down there, so don't even start telling me about your plans to destroy the evil that dwells in that Labyrinth. Just watch your legs... \ No newline at end of file diff --git a/gamefiles/texts/wirt/gossip/gossip8.json b/gamefiles/texts/wirt/gossip/gossip8.json new file mode 100755 index 00000000..ee572fa9 --- /dev/null +++ b/gamefiles/texts/wirt/gossip/gossip8.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/wirt/gossip/gossip8.txt" + ], + "audio": { + "file": "sfx/Towners/pegboy40.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/wirt/gossip/gossip8.txt b/gamefiles/texts/wirt/gossip/gossip8.txt new file mode 100755 index 00000000..6185bf37 --- /dev/null +++ b/gamefiles/texts/wirt/gossip/gossip8.txt @@ -0,0 +1 @@ +As long as you don't need anything reattached, old Pepin is as good as they come. If I'd have had some of those potions he brews, I might still have my leg... \ No newline at end of file diff --git a/gamefiles/texts/wirt/gossip/gossip9.json b/gamefiles/texts/wirt/gossip/gossip9.json new file mode 100755 index 00000000..1b0fa241 --- /dev/null +++ b/gamefiles/texts/wirt/gossip/gossip9.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/wirt/gossip/gossip9.txt" + ], + "audio": { + "file": "sfx/Towners/pegboy42.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/wirt/gossip/gossip9.txt b/gamefiles/texts/wirt/gossip/gossip9.txt new file mode 100755 index 00000000..b3948669 --- /dev/null +++ b/gamefiles/texts/wirt/gossip/gossip9.txt @@ -0,0 +1 @@ +Adria truly bothers me. Sure, Cain is creepy in what he can tell you about the past, but that witch can see into your past. She always has some way to get whatever she needs, too. Adria gets her hands on more merchandise than I've seen pass through the gates of the King's Bazaar during High Festival. \ No newline at end of file diff --git a/gamefiles/texts/wirt/quests/anvilOfFury.json b/gamefiles/texts/wirt/quests/anvilOfFury.json new file mode 100755 index 00000000..f5154e11 --- /dev/null +++ b/gamefiles/texts/wirt/quests/anvilOfFury.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/wirt/quests/anvilOfFury.txt" + ], + "audio": { + "file": "sfx/Towners/pegboy13.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/wirt/quests/anvilOfFury.txt b/gamefiles/texts/wirt/quests/anvilOfFury.txt new file mode 100755 index 00000000..81526400 --- /dev/null +++ b/gamefiles/texts/wirt/quests/anvilOfFury.txt @@ -0,0 +1 @@ +If you were to find this artifact for Griswold, it could put a serious damper on my business here. Awwww, you'll never find it. \ No newline at end of file diff --git a/gamefiles/texts/wirt/quests/archbishopLazarus.json b/gamefiles/texts/wirt/quests/archbishopLazarus.json new file mode 100755 index 00000000..fb0e039c --- /dev/null +++ b/gamefiles/texts/wirt/quests/archbishopLazarus.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/wirt/quests/archbishopLazarus.txt" + ], + "audio": { + "file": "sfx/Towners/pegboy03.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/wirt/quests/archbishopLazarus.txt b/gamefiles/texts/wirt/quests/archbishopLazarus.txt new file mode 100755 index 00000000..b1f80771 --- /dev/null +++ b/gamefiles/texts/wirt/quests/archbishopLazarus.txt @@ -0,0 +1 @@ +Yes, the righteous Lazarus, who was sooo effective against those monsters down there. Didn't help save my leg, did it? Look, I'll give you a free piece of advice. Ask Farnham, he was there. \ No newline at end of file diff --git a/gamefiles/texts/wirt/quests/arkainesValor.json b/gamefiles/texts/wirt/quests/arkainesValor.json new file mode 100755 index 00000000..bcc9793f --- /dev/null +++ b/gamefiles/texts/wirt/quests/arkainesValor.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/wirt/quests/arkainesValor.txt" + ], + "audio": { + "file": "sfx/Towners/pegboy14.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/wirt/quests/arkainesValor.txt b/gamefiles/texts/wirt/quests/arkainesValor.txt new file mode 100755 index 00000000..cc3acc9f --- /dev/null +++ b/gamefiles/texts/wirt/quests/arkainesValor.txt @@ -0,0 +1,3 @@ +You intend to find the armor known as Valor? + +No one has ever figured out where Arkaine stashed the stuff, and if my contacts couldn't find it, I seriously doubt you ever will, either. \ No newline at end of file diff --git a/gamefiles/texts/wirt/quests/blackMushroom.json b/gamefiles/texts/wirt/quests/blackMushroom.json new file mode 100755 index 00000000..354e9b15 --- /dev/null +++ b/gamefiles/texts/wirt/quests/blackMushroom.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/wirt/quests/blackMushroom.txt" + ], + "audio": { + "file": "sfx/Towners/pegboy19.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/wirt/quests/blackMushroom.txt b/gamefiles/texts/wirt/quests/blackMushroom.txt new file mode 100755 index 00000000..7e087d8d --- /dev/null +++ b/gamefiles/texts/wirt/quests/blackMushroom.txt @@ -0,0 +1 @@ +I don't have any mushrooms of any size or color for sale. How about something a bit more useful? \ No newline at end of file diff --git a/gamefiles/texts/wirt/quests/chamberOfBone.json b/gamefiles/texts/wirt/quests/chamberOfBone.json new file mode 100755 index 00000000..a27369ea --- /dev/null +++ b/gamefiles/texts/wirt/quests/chamberOfBone.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/wirt/quests/chamberOfBone.txt" + ], + "audio": { + "file": "sfx/Towners/pegboy07.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/wirt/quests/chamberOfBone.txt b/gamefiles/texts/wirt/quests/chamberOfBone.txt new file mode 100755 index 00000000..6dfa7902 --- /dev/null +++ b/gamefiles/texts/wirt/quests/chamberOfBone.txt @@ -0,0 +1 @@ +A vast and mysterious treasure, you say? Maybe I could be interested in picking up a few things from you... Or better yet, don't you need some rare and expensive supplies to get you through this ordeal? \ No newline at end of file diff --git a/gamefiles/texts/wirt/quests/hallsOfTheBlind.json b/gamefiles/texts/wirt/quests/hallsOfTheBlind.json new file mode 100755 index 00000000..d06a1389 --- /dev/null +++ b/gamefiles/texts/wirt/quests/hallsOfTheBlind.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/wirt/quests/hallsOfTheBlind.txt" + ], + "audio": { + "file": "sfx/Towners/pegboy11.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/wirt/quests/hallsOfTheBlind.txt b/gamefiles/texts/wirt/quests/hallsOfTheBlind.txt new file mode 100755 index 00000000..44268e95 --- /dev/null +++ b/gamefiles/texts/wirt/quests/hallsOfTheBlind.txt @@ -0,0 +1 @@ +Let's see, am I selling you something? No. Are you giving me money to tell you about this? No. Are you now leaving and going to talk to the storyteller who lives for this kind of thing? Yes. \ No newline at end of file diff --git a/gamefiles/texts/wirt/quests/lachdanan.json b/gamefiles/texts/wirt/quests/lachdanan.json new file mode 100755 index 00000000..f88be1be --- /dev/null +++ b/gamefiles/texts/wirt/quests/lachdanan.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/wirt/quests/lachdanan.txt" + ], + "audio": { + "file": "sfx/Towners/pegboy12.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/wirt/quests/lachdanan.txt b/gamefiles/texts/wirt/quests/lachdanan.txt new file mode 100755 index 00000000..8973abde --- /dev/null +++ b/gamefiles/texts/wirt/quests/lachdanan.txt @@ -0,0 +1 @@ +Wait, let me guess. Cain was swallowed up in a gigantic fissure that opened beneath him. He was incinerated in a ball of Hellfire, and can't answer your questions anymore. Oh, that isn't what happened? Then I guess you'll be buying something or you'll be on your way. \ No newline at end of file diff --git a/gamefiles/texts/wirt/quests/magicRock.json b/gamefiles/texts/wirt/quests/magicRock.json new file mode 100755 index 00000000..80358b0a --- /dev/null +++ b/gamefiles/texts/wirt/quests/magicRock.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/wirt/quests/magicRock.txt" + ], + "audio": { + "file": "sfx/Towners/pegboy18.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/wirt/quests/magicRock.txt b/gamefiles/texts/wirt/quests/magicRock.txt new file mode 100755 index 00000000..166e9d95 --- /dev/null +++ b/gamefiles/texts/wirt/quests/magicRock.txt @@ -0,0 +1 @@ +If anyone can make something out of that rock, Griswold can. He knows what he is doing, and as much as I try to steal his customers, I respect the quality of his work. \ No newline at end of file diff --git a/gamefiles/texts/wirt/quests/ogdensSign.json b/gamefiles/texts/wirt/quests/ogdensSign.json new file mode 100755 index 00000000..5df40165 --- /dev/null +++ b/gamefiles/texts/wirt/quests/ogdensSign.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/wirt/quests/ogdensSign.txt" + ], + "audio": { + "file": "sfx/Towners/pegboy02.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/wirt/quests/ogdensSign.txt b/gamefiles/texts/wirt/quests/ogdensSign.txt new file mode 100755 index 00000000..23c6c265 --- /dev/null +++ b/gamefiles/texts/wirt/quests/ogdensSign.txt @@ -0,0 +1,3 @@ +What - is he saying I took that? I suppose that Griswold is on his side, too. + +Look, I got over simple sign stealing months ago. You can't turn a profit on a piece of wood. \ No newline at end of file diff --git a/gamefiles/texts/wirt/quests/poisonedWater.json b/gamefiles/texts/wirt/quests/poisonedWater.json new file mode 100755 index 00000000..757b67c5 --- /dev/null +++ b/gamefiles/texts/wirt/quests/poisonedWater.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/wirt/quests/poisonedWater.txt" + ], + "audio": { + "file": "sfx/Towners/pegboy04.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/wirt/quests/poisonedWater.txt b/gamefiles/texts/wirt/quests/poisonedWater.txt new file mode 100755 index 00000000..70e25d1d --- /dev/null +++ b/gamefiles/texts/wirt/quests/poisonedWater.txt @@ -0,0 +1 @@ +For once, I'm with you. My business runs dry - so to speak - if I have no market to sell to. You better find out what is going on, and soon! \ No newline at end of file diff --git a/gamefiles/texts/wirt/quests/skeletonKing.json b/gamefiles/texts/wirt/quests/skeletonKing.json new file mode 100755 index 00000000..e8b8309e --- /dev/null +++ b/gamefiles/texts/wirt/quests/skeletonKing.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/wirt/quests/skeletonKing.txt" + ], + "audio": { + "file": "sfx/Towners/pegboy01.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/wirt/quests/skeletonKing.txt b/gamefiles/texts/wirt/quests/skeletonKing.txt new file mode 100755 index 00000000..8be9afa8 --- /dev/null +++ b/gamefiles/texts/wirt/quests/skeletonKing.txt @@ -0,0 +1 @@ +Look, I'm running a business here. I don't sell information, and I don't care about some King that's been dead longer than I've been alive. If you need something to use against this King of the undead, then I can help you out... \ No newline at end of file diff --git a/gamefiles/towners/townboy/quests/butcher.json b/gamefiles/texts/wirt/quests/theButcher.json similarity index 68% rename from gamefiles/towners/townboy/quests/butcher.json rename to gamefiles/texts/wirt/quests/theButcher.json index 6fe6b58f..a7bf4e71 100755 --- a/gamefiles/towners/townboy/quests/butcher.json +++ b/gamefiles/texts/wirt/quests/theButcher.json @@ -1,12 +1,11 @@ { "load": [ "ui/level/showText.json", - "smithText", + "questText", "30", - "towners/townboy/quests/butcher.txt" + "texts/wirt/quests/theButcher.txt" ], "audio": { - "id": "pegboy10", "file": "sfx/Towners/pegboy10.wav", "play": true, "volume": "|game|soundVolume|" diff --git a/gamefiles/towners/townboy/quests/butcher.txt b/gamefiles/texts/wirt/quests/theButcher.txt similarity index 100% rename from gamefiles/towners/townboy/quests/butcher.txt rename to gamefiles/texts/wirt/quests/theButcher.txt diff --git a/gamefiles/texts/wirt/quests/warlordOfBlood.json b/gamefiles/texts/wirt/quests/warlordOfBlood.json new file mode 100755 index 00000000..8a3a848d --- /dev/null +++ b/gamefiles/texts/wirt/quests/warlordOfBlood.json @@ -0,0 +1,13 @@ +{ + "load": [ + "ui/level/showText.json", + "questText", + "50", + "texts/wirt/quests/warlordOfBlood.txt" + ], + "audio": { + "file": "sfx/Towners/pegboy17.wav", + "play": true, + "volume": "|game|soundVolume|" + } +} \ No newline at end of file diff --git a/gamefiles/texts/wirt/quests/warlordOfBlood.txt b/gamefiles/texts/wirt/quests/warlordOfBlood.txt new file mode 100755 index 00000000..b3fce69a --- /dev/null +++ b/gamefiles/texts/wirt/quests/warlordOfBlood.txt @@ -0,0 +1 @@ +I haven't ever dealt with this Warlord you speak of, but he sounds like he's going through a lot of swords. Wouldn't mind supplying his armies... \ No newline at end of file diff --git a/gamefiles/towners/adria/panel.json b/gamefiles/towners/adria/panel.json index aecd53d5..166be25c 100755 --- a/gamefiles/towners/adria/panel.json +++ b/gamefiles/towners/adria/panel.json @@ -24,5 +24,5 @@ ], "load": "ui/level/panel.json", "load": "towners/adria/panelMain.json", - "action": { "name": "sound.play", "id": "witch38" } + "action": { "name": "sound.play", "id": "witchWelcome" } } \ No newline at end of file diff --git a/gamefiles/towners/adria/panelMain.json b/gamefiles/towners/adria/panelMain.json index 8ea452f5..f5dc7ad9 100755 --- a/gamefiles/towners/adria/panelMain.json +++ b/gamefiles/towners/adria/panelMain.json @@ -25,19 +25,21 @@ { "id": "panelTitle1", "bitmapFont": "smaltext", - "color": "0xC4B78A", - "position": [484, 58], + "color": "%textGold%", + "position": [480, 58], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Witch's Shack" }, { "id": "panelText", "bitmapFont": "smaltext", - "color": "0xC4B78A", - "position": [484, 142], + "color": "%textGold%", + "position": [480, 142], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Would you like to:" } ], @@ -45,13 +47,14 @@ { "id": "talk", "bitmapFont": "smaltext", - "color": "0x9DA2BC", + "color": "%textBlue%", "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 178], + "position": [480, 178], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Talk to Adria", "onClick": [ { "name": "resource.pop" }, @@ -68,10 +71,11 @@ "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 202], + "position": [480, 202], "anchor": "none", "horizontalAlign": "center", - "text": "Buy Basic Items", + "horizontalSpaceOffset": 1, + "text": "Buy Items", "onFocus": [ "anchorLeftPentagram", "anchorRightPentagram" @@ -83,10 +87,11 @@ "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 228], + "position": [480, 226], "anchor": "none", "horizontalAlign": "center", - "text": "Buy Premium Items", + "horizontalSpaceOffset": 1, + "text": "Sell Items", "onFocus": [ "anchorLeftPentagram", "anchorRightPentagram" @@ -98,10 +103,11 @@ "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 251], + "position": [480, 250], "anchor": "none", "horizontalAlign": "center", - "text": "Sell Items", + "horizontalSpaceOffset": 1, + "text": "Recharge Staves", "onFocus": [ "anchorLeftPentagram", "anchorRightPentagram" @@ -113,9 +119,10 @@ "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 275], + "position": [480, 274], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Leave the Shack", "onClick": { "name": "resource.popAll", "id": "userPanel" }, "onFocus": [ diff --git a/gamefiles/towners/adria/panelTalk.json b/gamefiles/towners/adria/panelTalk.json index 3e472137..4c217bb1 100755 --- a/gamefiles/towners/adria/panelTalk.json +++ b/gamefiles/towners/adria/panelTalk.json @@ -25,24 +25,27 @@ { "id": "panelTitle1", "bitmapFont": "smaltext", - "color": "0xC4B78A", - "position": [484, 58], + "color": "%textGold%", + "position": [480, 58], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Talk to Adria" } ], "menu": { "id": "panelQuests", "bitmapFont": "smaltext", - "position": [484, 190], + "position": [480, 195], "horizontalAlign": "center", + "verticalAlign": "center", + "horizontalSpaceOffset": 1, "anchor": "none", "focus": true, "focusSound": "titlemov", "visibleItems": 8, - "size": [270, 164], - "verticalPad": 12, + "size": [256, 180], + "verticalPad": 14, "onScrollDown": "focus.moveDown", "onScrollUp": "focus.moveUp", "items": [ @@ -52,7 +55,7 @@ { "name": "game.clearPlayingSounds" }, { "name": "sound.play", "id": "titlslct" }, { "name": "resource.popAll", "id": "userPanel" }, - { "name": "loadRandom", "file": "towners/adria/gossip" } + { "name": "loadRandom", "file": "texts/adria/gossip" } ], "onFocus": [ "anchorLeftPentagram", @@ -61,11 +64,12 @@ }, { "%QUESTS%": null, + "ignoreItems": ["diablo", "gharbadTheWeak", "zharTheMad"], "onClick": [ { "name": "game.clearPlayingSounds" }, { "name": "sound.play", "id": "titlslct" }, { "name": "resource.popAll", "id": "userPanel" }, - { "name": "load", "file": "towners/adria/quests/%ID%.json" } + { "name": "load", "file": "texts/adria/quests/%ID%.json" } ], "onFocus": [ "anchorLeftPentagram", @@ -80,9 +84,10 @@ "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 298], + "position": [480, 298], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Back", "onClick": [ { "name": "resource.pop" }, @@ -96,6 +101,6 @@ "action": [ "anchorLeftPentagram", "anchorRightPentagram", - { "name": "menu.setColor", "id": "panelQuests", "index": 1, "color": "0x9DA2BC" } + { "name": "menu.setColor", "id": "panelQuests", "index": 1, "color": "%textBlue%" } ] } \ No newline at end of file diff --git a/gamefiles/towners/drunk/panel.json b/gamefiles/towners/cain/panel.json similarity index 84% rename from gamefiles/towners/drunk/panel.json rename to gamefiles/towners/cain/panel.json index c596b64a..a73c250a 100755 --- a/gamefiles/towners/drunk/panel.json +++ b/gamefiles/towners/cain/panel.json @@ -23,6 +23,6 @@ } ], "load": "ui/level/panel.json", - "load": "towners/drunk/panelMain.json", - "action": { "name": "sound.play", "id": "drunk27" } + "load": "towners/cain/panelMain.json", + "action": { "name": "sound.play", "id": "storytWelcome" } } \ No newline at end of file diff --git a/gamefiles/towners/strytell/panelMain.json b/gamefiles/towners/cain/panelMain.json similarity index 80% rename from gamefiles/towners/strytell/panelMain.json rename to gamefiles/towners/cain/panelMain.json index 3c26bb71..ce479a64 100755 --- a/gamefiles/towners/strytell/panelMain.json +++ b/gamefiles/towners/cain/panelMain.json @@ -25,19 +25,21 @@ { "id": "panelTitle1", "bitmapFont": "smaltext", - "color": "0xC4B78A", - "position": [484, 58], + "color": "%textGold%", + "position": [480, 58], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "The Town Elder" }, { "id": "panelText", "bitmapFont": "smaltext", - "color": "0xC4B78A", - "position": [484, 142], + "color": "%textGold%", + "position": [480, 142], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Would you like to:" } ], @@ -45,17 +47,18 @@ { "id": "talk", "bitmapFont": "smaltext", - "color": "0x9DA2BC", + "color": "%textBlue%", "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 178], + "position": [480, 178], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Talk to Cain", "onClick": [ { "name": "resource.pop" }, - { "name": "load", "file": "towners/strytell/panelTalk.json" } + { "name": "load", "file": "towners/cain/panelTalk.json" } ], "onFocus": [ "anchorLeftPentagram", @@ -68,9 +71,10 @@ "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 202], + "position": [480, 202], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Identify an Item", "onFocus": [ "anchorLeftPentagram", @@ -83,9 +87,10 @@ "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 251], + "position": [480, 250], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Say Goodbye", "onClick": { "name": "resource.popAll", "id": "userPanel" }, "onFocus": [ diff --git a/gamefiles/towners/strytell/panelTalk.json b/gamefiles/towners/cain/panelTalk.json similarity index 78% rename from gamefiles/towners/strytell/panelTalk.json rename to gamefiles/towners/cain/panelTalk.json index f0552a53..674cdb2c 100755 --- a/gamefiles/towners/strytell/panelTalk.json +++ b/gamefiles/towners/cain/panelTalk.json @@ -25,24 +25,27 @@ { "id": "panelTitle1", "bitmapFont": "smaltext", - "color": "0xC4B78A", - "position": [484, 58], + "color": "%textGold%", + "position": [480, 58], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Talk to Cain" } ], "menu": { "id": "panelQuests", "bitmapFont": "smaltext", - "position": [484, 190], + "position": [480, 195], "horizontalAlign": "center", + "verticalAlign": "center", + "horizontalSpaceOffset": 1, "anchor": "none", "focus": true, "focusSound": "titlemov", "visibleItems": 8, - "size": [270, 164], - "verticalPad": 12, + "size": [256, 180], + "verticalPad": 14, "onScrollDown": "focus.moveDown", "onScrollUp": "focus.moveUp", "items": [ @@ -52,7 +55,7 @@ { "name": "game.clearPlayingSounds" }, { "name": "sound.play", "id": "titlslct" }, { "name": "resource.popAll", "id": "userPanel" }, - { "name": "loadRandom", "file": "towners/strytell/gossip" } + { "name": "loadRandom", "file": "texts/cain/gossip" } ], "onFocus": [ "anchorLeftPentagram", @@ -61,11 +64,12 @@ }, { "%QUESTS%": null, + "ignoreItems": ["gharbadTheWeak", "zharTheMad"], "onClick": [ { "name": "game.clearPlayingSounds" }, { "name": "sound.play", "id": "titlslct" }, { "name": "resource.popAll", "id": "userPanel" }, - { "name": "load", "file": "towners/strytell/quests/%ID%.json" } + { "name": "load", "file": "texts/cain/quests/%ID%.json" } ], "onFocus": [ "anchorLeftPentagram", @@ -80,13 +84,14 @@ "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 298], + "position": [480, 298], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Back", "onClick": [ { "name": "resource.pop" }, - { "name": "load", "file": "towners/strytell/panelMain.json" } + { "name": "load", "file": "towners/cain/panelMain.json" } ], "onFocus": [ "anchorLeftPentagram", @@ -96,6 +101,6 @@ "action": [ "anchorLeftPentagram", "anchorRightPentagram", - { "name": "menu.setColor", "id": "panelQuests", "index": 1, "color": "0x9DA2BC" } + { "name": "menu.setColor", "id": "panelQuests", "index": 1, "color": "%textBlue%" } ] } \ No newline at end of file diff --git a/gamefiles/towners/farnham/panel.json b/gamefiles/towners/farnham/panel.json new file mode 100755 index 00000000..4e91cdab --- /dev/null +++ b/gamefiles/towners/farnham/panel.json @@ -0,0 +1,28 @@ +{ + "action": [ + { "name": "resource.add", "id": "userPanel" }, + { "name": "game.clearPlayingSounds" } + ], + "load": "ui/level/disableGamePanelKeys.json", + "keyboard": [ + { + "key": "esc", + "action": { "name": "button.click", "id": "back", "playSound": false } + }, + { + "key": "enter", + "action": "focus.click" + }, + { + "key": ["up", "w"], + "action": "focus.moveUp" + }, + { + "key": ["down", "s"], + "action": "focus.moveDown" + } + ], + "load": "ui/level/panel.json", + "load": "towners/farnham/panelMain.json", + "action": { "name": "sound.play", "id": "drunkWelcome" } +} \ No newline at end of file diff --git a/gamefiles/towners/drunk/panelMain.json b/gamefiles/towners/farnham/panelMain.json similarity index 79% rename from gamefiles/towners/drunk/panelMain.json rename to gamefiles/towners/farnham/panelMain.json index 946fbd5c..18fecde3 100755 --- a/gamefiles/towners/drunk/panelMain.json +++ b/gamefiles/towners/farnham/panelMain.json @@ -25,19 +25,21 @@ { "id": "panelTitle1", "bitmapFont": "smaltext", - "color": "0xC4B78A", - "position": [484, 58], + "color": "%textGold%", + "position": [480, 58], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Farnham the Drunk" }, { "id": "panelText", "bitmapFont": "smaltext", - "color": "0xC4B78A", - "position": [484, 142], + "color": "%textGold%", + "position": [480, 142], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Would you like to:" } ], @@ -45,17 +47,18 @@ { "id": "talk", "bitmapFont": "smaltext", - "color": "0x9DA2BC", + "color": "%textBlue%", "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 178], + "position": [480, 178], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Talk to Farnham", "onClick": [ { "name": "resource.pop" }, - { "name": "load", "file": "towners/drunk/panelTalk.json" } + { "name": "load", "file": "towners/farnham/panelTalk.json" } ], "onFocus": [ "anchorLeftPentagram", @@ -68,9 +71,10 @@ "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 251], + "position": [480, 250], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Say Goodbye", "onClick": { "name": "resource.popAll", "id": "userPanel" }, "onFocus": [ diff --git a/gamefiles/towners/drunk/panelTalk.json b/gamefiles/towners/farnham/panelTalk.json similarity index 78% rename from gamefiles/towners/drunk/panelTalk.json rename to gamefiles/towners/farnham/panelTalk.json index 0907c661..3871733a 100755 --- a/gamefiles/towners/drunk/panelTalk.json +++ b/gamefiles/towners/farnham/panelTalk.json @@ -25,24 +25,27 @@ { "id": "panelTitle1", "bitmapFont": "smaltext", - "color": "0xC4B78A", - "position": [484, 58], + "color": "%textGold%", + "position": [480, 58], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Talk to Farnham" } ], "menu": { "id": "panelQuests", "bitmapFont": "smaltext", - "position": [484, 190], + "position": [480, 195], "horizontalAlign": "center", + "verticalAlign": "center", + "horizontalSpaceOffset": 1, "anchor": "none", "focus": true, "focusSound": "titlemov", "visibleItems": 8, - "size": [270, 164], - "verticalPad": 12, + "size": [256, 180], + "verticalPad": 14, "onScrollDown": "focus.moveDown", "onScrollUp": "focus.moveUp", "items": [ @@ -52,7 +55,7 @@ { "name": "game.clearPlayingSounds" }, { "name": "sound.play", "id": "titlslct" }, { "name": "resource.popAll", "id": "userPanel" }, - { "name": "loadRandom", "file": "towners/drunk/gossip" } + { "name": "loadRandom", "file": "texts/farnham/gossip" } ], "onFocus": [ "anchorLeftPentagram", @@ -61,11 +64,12 @@ }, { "%QUESTS%": null, + "ignoreItems": ["diablo", "gharbadTheWeak", "zharTheMad"], "onClick": [ { "name": "game.clearPlayingSounds" }, { "name": "sound.play", "id": "titlslct" }, { "name": "resource.popAll", "id": "userPanel" }, - { "name": "load", "file": "towners/drunk/quests/%ID%.json" } + { "name": "load", "file": "texts/farnham/quests/%ID%.json" } ], "onFocus": [ "anchorLeftPentagram", @@ -80,13 +84,14 @@ "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 298], + "position": [480, 298], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Back", "onClick": [ { "name": "resource.pop" }, - { "name": "load", "file": "towners/drunk/panelMain.json" } + { "name": "load", "file": "towners/farnham/panelMain.json" } ], "onFocus": [ "anchorLeftPentagram", @@ -96,6 +101,6 @@ "action": [ "anchorLeftPentagram", "anchorRightPentagram", - { "name": "menu.setColor", "id": "panelQuests", "index": 1, "color": "0x9DA2BC" } + { "name": "menu.setColor", "id": "panelQuests", "index": 1, "color": "%textBlue%" } ] } \ No newline at end of file diff --git a/gamefiles/towners/gillian/panel.json b/gamefiles/towners/gillian/panel.json index 40b361dd..c2ec8c91 100755 --- a/gamefiles/towners/gillian/panel.json +++ b/gamefiles/towners/gillian/panel.json @@ -24,5 +24,5 @@ ], "load": "ui/level/panel.json", "load": "towners/gillian/panelMain.json", - "action": { "name": "sound.play", "id": "bmaid31" } + "action": { "name": "sound.play", "id": "bmaidWelcome" } } \ No newline at end of file diff --git a/gamefiles/towners/gillian/panelMain.json b/gamefiles/towners/gillian/panelMain.json index b3573bdc..748e90ed 100755 --- a/gamefiles/towners/gillian/panelMain.json +++ b/gamefiles/towners/gillian/panelMain.json @@ -25,19 +25,21 @@ { "id": "panelTitle1", "bitmapFont": "smaltext", - "color": "0xC4B78A", - "position": [484, 58], + "color": "%textGold%", + "position": [480, 58], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Gillian" }, { "id": "panelText", "bitmapFont": "smaltext", - "color": "0xC4B78A", - "position": [484, 142], + "color": "%textGold%", + "position": [480, 142], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Would you like to:" } ], @@ -45,13 +47,14 @@ { "id": "talk", "bitmapFont": "smaltext", - "color": "0x9DA2BC", + "color": "%textBlue%", "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 178], + "position": [480, 178], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Talk to Gillian", "onClick": [ { "name": "resource.pop" }, @@ -68,9 +71,10 @@ "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 251], + "position": [480, 250], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Say Goodbye", "onClick": { "name": "resource.popAll", "id": "userPanel" }, "onFocus": [ diff --git a/gamefiles/towners/gillian/panelTalk.json b/gamefiles/towners/gillian/panelTalk.json index fef38703..7d1ec9d3 100755 --- a/gamefiles/towners/gillian/panelTalk.json +++ b/gamefiles/towners/gillian/panelTalk.json @@ -25,24 +25,27 @@ { "id": "panelTitle1", "bitmapFont": "smaltext", - "color": "0xC4B78A", - "position": [484, 58], + "color": "%textGold%", + "position": [480, 58], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Talk to Gillian" } ], "menu": { "id": "panelQuests", "bitmapFont": "smaltext", - "position": [484, 190], + "position": [480, 195], "horizontalAlign": "center", + "verticalAlign": "center", + "horizontalSpaceOffset": 1, "anchor": "none", "focus": true, "focusSound": "titlemov", "visibleItems": 8, - "size": [270, 164], - "verticalPad": 12, + "size": [256, 180], + "verticalPad": 14, "onScrollDown": "focus.moveDown", "onScrollUp": "focus.moveUp", "items": [ @@ -52,7 +55,7 @@ { "name": "game.clearPlayingSounds" }, { "name": "sound.play", "id": "titlslct" }, { "name": "resource.popAll", "id": "userPanel" }, - { "name": "loadRandom", "file": "towners/gillian/gossip" } + { "name": "loadRandom", "file": "texts/gillian/gossip" } ], "onFocus": [ "anchorLeftPentagram", @@ -61,11 +64,12 @@ }, { "%QUESTS%": null, + "ignoreItems": ["diablo", "gharbadTheWeak", "zharTheMad"], "onClick": [ { "name": "game.clearPlayingSounds" }, { "name": "sound.play", "id": "titlslct" }, { "name": "resource.popAll", "id": "userPanel" }, - { "name": "load", "file": "towners/gillian/quests/%ID%.json" } + { "name": "load", "file": "texts/gillian/quests/%ID%.json" } ], "onFocus": [ "anchorLeftPentagram", @@ -80,9 +84,10 @@ "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 298], + "position": [480, 298], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Back", "onClick": [ { "name": "resource.pop" }, @@ -96,6 +101,6 @@ "action": [ "anchorLeftPentagram", "anchorRightPentagram", - { "name": "menu.setColor", "id": "panelQuests", "index": 1, "color": "0x9DA2BC" } + { "name": "menu.setColor", "id": "panelQuests", "index": 1, "color": "%textBlue%" } ] } \ No newline at end of file diff --git a/gamefiles/towners/griswold/panel.json b/gamefiles/towners/griswold/panel.json new file mode 100755 index 00000000..4054bbdc --- /dev/null +++ b/gamefiles/towners/griswold/panel.json @@ -0,0 +1,28 @@ +{ + "action": [ + { "name": "resource.add", "id": "userPanel" }, + { "name": "game.clearPlayingSounds" } + ], + "load": "ui/level/disableGamePanelKeys.json", + "keyboard": [ + { + "key": "esc", + "action": { "name": "button.click", "id": "back", "playSound": false } + }, + { + "key": "enter", + "action": "focus.click" + }, + { + "key": ["up", "w"], + "action": "focus.moveUp" + }, + { + "key": ["down", "s"], + "action": "focus.moveDown" + } + ], + "load": "ui/level/panel.json", + "load": "towners/griswold/panelMain.json", + "action": { "name": "sound.play", "id": "bsmithWelcome" } +} \ No newline at end of file diff --git a/gamefiles/towners/smith/panelMain.json b/gamefiles/towners/griswold/panelMain.json similarity index 80% rename from gamefiles/towners/smith/panelMain.json rename to gamefiles/towners/griswold/panelMain.json index 2dac4cfd..0b1dcdcb 100755 --- a/gamefiles/towners/smith/panelMain.json +++ b/gamefiles/towners/griswold/panelMain.json @@ -25,28 +25,31 @@ { "id": "panelTitle1", "bitmapFont": "smaltext", - "color": "0xC4B78A", - "position": [484, 46], + "color": "%textGold%", + "position": [480, 46], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Welcome to the" }, { "id": "panelTitle2", "bitmapFont": "smaltext", - "color": "0xC4B78A", - "position": [484, 70], + "color": "%textGold%", + "position": [480, 70], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Blacksmith's Shop" }, { "id": "panelText", "bitmapFont": "smaltext", - "color": "0xC4B78A", - "position": [484, 118], + "color": "%textGold%", + "position": [480, 118], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Would you like to:" } ], @@ -54,17 +57,18 @@ { "id": "talk", "bitmapFont": "smaltext", - "color": "0x9DA2BC", + "color": "%textBlue%", "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 153], + "position": [480, 154], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Talk to Griswold", "onClick": [ { "name": "resource.pop" }, - { "name": "load", "file": "towners/smith/panelTalk.json" } + { "name": "load", "file": "towners/griswold/panelTalk.json" } ], "onFocus": [ "anchorLeftPentagram", @@ -77,9 +81,10 @@ "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 178], + "position": [480, 178], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Buy Basic Items", "onFocus": [ "anchorLeftPentagram", @@ -92,9 +97,10 @@ "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 202], + "position": [480, 202], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Buy Premium Items", "onFocus": [ "anchorLeftPentagram", @@ -107,9 +113,10 @@ "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 228], + "position": [480, 226], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Sell Items", "onFocus": [ "anchorLeftPentagram", @@ -122,9 +129,10 @@ "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 251], + "position": [480, 250], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Repair Items", "onFocus": [ "anchorLeftPentagram", @@ -137,9 +145,10 @@ "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 275], + "position": [480, 274], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Leave the Shop", "onClick": { "name": "resource.popAll", "id": "userPanel" }, "onFocus": [ diff --git a/gamefiles/towners/smith/panelTalk.json b/gamefiles/towners/griswold/panelTalk.json similarity index 77% rename from gamefiles/towners/smith/panelTalk.json rename to gamefiles/towners/griswold/panelTalk.json index ecb0f17f..9bbe7f93 100755 --- a/gamefiles/towners/smith/panelTalk.json +++ b/gamefiles/towners/griswold/panelTalk.json @@ -25,24 +25,27 @@ { "id": "panelTitle1", "bitmapFont": "smaltext", - "color": "0xC4B78A", - "position": [484, 58], + "color": "%textGold%", + "position": [480, 58], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Talk to Griswold" } ], "menu": { "id": "panelQuests", "bitmapFont": "smaltext", - "position": [484, 190], + "position": [480, 195], "horizontalAlign": "center", + "verticalAlign": "center", + "horizontalSpaceOffset": 1, "anchor": "none", "focus": true, "focusSound": "titlemov", "visibleItems": 8, - "size": [270, 164], - "verticalPad": 12, + "size": [256, 180], + "verticalPad": 14, "onScrollDown": "focus.moveDown", "onScrollUp": "focus.moveUp", "items": [ @@ -52,7 +55,7 @@ { "name": "game.clearPlayingSounds" }, { "name": "sound.play", "id": "titlslct" }, { "name": "resource.popAll", "id": "userPanel" }, - { "name": "loadRandom", "file": "towners/smith/gossip" } + { "name": "loadRandom", "file": "texts/griswold/gossip" } ], "onFocus": [ "anchorLeftPentagram", @@ -61,11 +64,12 @@ }, { "%QUESTS%": null, + "ignoreItems": ["diablo", "gharbadTheWeak", "zharTheMad"], "onClick": [ { "name": "game.clearPlayingSounds" }, { "name": "sound.play", "id": "titlslct" }, { "name": "resource.popAll", "id": "userPanel" }, - { "name": "load", "file": "towners/smith/quests/%ID%.json" } + { "name": "load", "file": "texts/griswold/quests/%ID%.json" } ], "onFocus": [ "anchorLeftPentagram", @@ -80,13 +84,14 @@ "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 298], + "position": [480, 298], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Back", "onClick": [ { "name": "resource.pop" }, - { "name": "load", "file": "towners/smith/panelMain.json" } + { "name": "load", "file": "towners/griswold/panelMain.json" } ], "onFocus": [ "anchorLeftPentagram", @@ -96,6 +101,6 @@ "action": [ "anchorLeftPentagram", "anchorRightPentagram", - { "name": "menu.setColor", "id": "panelQuests", "index": 1, "color": "0x9DA2BC" } + { "name": "menu.setColor", "id": "panelQuests", "index": 1, "color": "%textBlue%" } ] } \ No newline at end of file diff --git a/gamefiles/towners/smith/panel.json b/gamefiles/towners/ogden/panel.json similarity index 83% rename from gamefiles/towners/smith/panel.json rename to gamefiles/towners/ogden/panel.json index d5520910..fb624329 100755 --- a/gamefiles/towners/smith/panel.json +++ b/gamefiles/towners/ogden/panel.json @@ -23,6 +23,6 @@ } ], "load": "ui/level/panel.json", - "load": "towners/smith/panelMain.json", - "action": { "name": "sound.play", "id": "bsmith44" } + "load": "towners/ogden/panelMain.json", + "action": { "name": "sound.play", "id": "tavownWelcome" } } \ No newline at end of file diff --git a/gamefiles/towners/twnf/panelMain.json b/gamefiles/towners/ogden/panelMain.json similarity index 76% rename from gamefiles/towners/twnf/panelMain.json rename to gamefiles/towners/ogden/panelMain.json index 809b2d37..cb636434 100755 --- a/gamefiles/towners/twnf/panelMain.json +++ b/gamefiles/towners/ogden/panelMain.json @@ -25,28 +25,31 @@ { "id": "panelTitle1", "bitmapFont": "smaltext", - "color": "0xC4B78A", - "position": [484, 46], + "color": "%textGold%", + "position": [480, 46], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Welcome to the" }, { "id": "panelTitle2", "bitmapFont": "smaltext", - "color": "0xC4B78A", - "position": [484, 70], + "color": "%textGold%", + "position": [480, 70], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Rising Sun" }, { "id": "panelText", "bitmapFont": "smaltext", - "color": "0xC4B78A", - "position": [484, 142], + "color": "%textGold%", + "position": [480, 142], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Would you like to:" } ], @@ -54,17 +57,18 @@ { "id": "talk", "bitmapFont": "smaltext", - "color": "0x9DA2BC", + "color": "%textBlue%", "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 178], + "position": [480, 178], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Talk to Ogden", "onClick": [ { "name": "resource.pop" }, - { "name": "load", "file": "towners/twnf/panelTalk.json" } + { "name": "load", "file": "towners/ogden/panelTalk.json" } ], "onFocus": [ "anchorLeftPentagram", @@ -77,10 +81,11 @@ "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 251], + "position": [480, 250], "anchor": "none", "horizontalAlign": "center", - "text": "Say Goodbye", + "horizontalSpaceOffset": 1, + "text": "Leave the Tavern", "onClick": { "name": "resource.popAll", "id": "userPanel" }, "onFocus": [ "anchorLeftPentagram", diff --git a/gamefiles/towners/twnf/panelTalk.json b/gamefiles/towners/ogden/panelTalk.json similarity index 77% rename from gamefiles/towners/twnf/panelTalk.json rename to gamefiles/towners/ogden/panelTalk.json index 6209cb86..41e4f554 100755 --- a/gamefiles/towners/twnf/panelTalk.json +++ b/gamefiles/towners/ogden/panelTalk.json @@ -25,24 +25,27 @@ { "id": "panelTitle1", "bitmapFont": "smaltext", - "color": "0xC4B78A", - "position": [484, 58], + "color": "%textGold%", + "position": [480, 58], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Talk to Ogden" } ], "menu": { "id": "panelQuests", "bitmapFont": "smaltext", - "position": [484, 190], + "position": [480, 195], "horizontalAlign": "center", + "verticalAlign": "center", + "horizontalSpaceOffset": 1, "anchor": "none", "focus": true, "focusSound": "titlemov", "visibleItems": 8, - "size": [270, 164], - "verticalPad": 12, + "size": [256, 180], + "verticalPad": 14, "onScrollDown": "focus.moveDown", "onScrollUp": "focus.moveUp", "items": [ @@ -52,7 +55,7 @@ { "name": "game.clearPlayingSounds" }, { "name": "sound.play", "id": "titlslct" }, { "name": "resource.popAll", "id": "userPanel" }, - { "name": "loadRandom", "file": "towners/twnf/gossip" } + { "name": "loadRandom", "file": "texts/ogden/gossip" } ], "onFocus": [ "anchorLeftPentagram", @@ -61,11 +64,12 @@ }, { "%QUESTS%": null, + "ignoreItems": ["diablo", "gharbadTheWeak", "zharTheMad"], "onClick": [ { "name": "game.clearPlayingSounds" }, { "name": "sound.play", "id": "titlslct" }, { "name": "resource.popAll", "id": "userPanel" }, - { "name": "load", "file": "towners/twnf/quests/%ID%.json" } + { "name": "load", "file": "texts/ogden/quests/%ID%.json" } ], "onFocus": [ "anchorLeftPentagram", @@ -80,13 +84,14 @@ "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 298], + "position": [480, 298], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Back", "onClick": [ { "name": "resource.pop" }, - { "name": "load", "file": "towners/twnf/panelMain.json" } + { "name": "load", "file": "towners/ogden/panelMain.json" } ], "onFocus": [ "anchorLeftPentagram", @@ -96,6 +101,6 @@ "action": [ "anchorLeftPentagram", "anchorRightPentagram", - { "name": "menu.setColor", "id": "panelQuests", "index": 1, "color": "0x9DA2BC" } + { "name": "menu.setColor", "id": "panelQuests", "index": 1, "color": "%textBlue%" } ] } \ No newline at end of file diff --git a/gamefiles/towners/strytell/panel.json b/gamefiles/towners/pepin/panel.json similarity index 83% rename from gamefiles/towners/strytell/panel.json rename to gamefiles/towners/pepin/panel.json index a8e718d9..1ec609ec 100755 --- a/gamefiles/towners/strytell/panel.json +++ b/gamefiles/towners/pepin/panel.json @@ -23,6 +23,6 @@ } ], "load": "ui/level/panel.json", - "load": "towners/strytell/panelMain.json", - "action": { "name": "sound.play", "id": "storyt25" } + "load": "towners/pepin/panelMain.json", + "action": { "name": "sound.play", "id": "healerWelcome" } } \ No newline at end of file diff --git a/gamefiles/towners/healer/panelMain.json b/gamefiles/towners/pepin/panelMain.json similarity index 80% rename from gamefiles/towners/healer/panelMain.json rename to gamefiles/towners/pepin/panelMain.json index 1d543d5a..cc6bc1fc 100755 --- a/gamefiles/towners/healer/panelMain.json +++ b/gamefiles/towners/pepin/panelMain.json @@ -25,28 +25,31 @@ { "id": "panelTitle1", "bitmapFont": "smaltext", - "color": "0xC4B78A", - "position": [484, 46], + "color": "%textGold%", + "position": [480, 46], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Welcome to the" }, { "id": "panelTitle2", "bitmapFont": "smaltext", - "color": "0xC4B78A", - "position": [484, 70], + "color": "%textGold%", + "position": [480, 70], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Healer's Home" }, { "id": "panelText", "bitmapFont": "smaltext", - "color": "0xC4B78A", - "position": [484, 142], + "color": "%textGold%", + "position": [480, 142], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Would you like to:" } ], @@ -54,17 +57,18 @@ { "id": "talk", "bitmapFont": "smaltext", - "color": "0x9DA2BC", + "color": "%textBlue%", "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 178], + "position": [480, 178], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Talk to Pepin", "onClick": [ { "name": "resource.pop" }, - { "name": "load", "file": "towners/healer/panelTalk.json" } + { "name": "load", "file": "towners/pepin/panelTalk.json" } ], "onFocus": [ "anchorLeftPentagram", @@ -77,9 +81,10 @@ "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 202], + "position": [480, 202], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Receive Healing", "onClick": [ { "name": "sound.loadPlay", "file": "sfx/misc/cast8.wav" }, @@ -96,9 +101,10 @@ "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 228], + "position": [480, 226], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Buy Items", "onFocus": [ "anchorLeftPentagram", @@ -111,9 +117,10 @@ "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 251], + "position": [480, 250], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Leave Healer's Home", "onClick": { "name": "resource.popAll", "id": "userPanel" }, "onFocus": [ diff --git a/gamefiles/towners/healer/panelTalk.json b/gamefiles/towners/pepin/panelTalk.json similarity index 78% rename from gamefiles/towners/healer/panelTalk.json rename to gamefiles/towners/pepin/panelTalk.json index 3976034f..0771cec3 100755 --- a/gamefiles/towners/healer/panelTalk.json +++ b/gamefiles/towners/pepin/panelTalk.json @@ -25,24 +25,26 @@ { "id": "panelTitle1", "bitmapFont": "smaltext", - "color": "0xC4B78A", - "position": [484, 58], + "color": "%textGold%", + "position": [480, 58], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Talk to Pepin" } ], "menu": { "id": "panelQuests", "bitmapFont": "smaltext", - "position": [484, 190], + "position": [480, 195], "horizontalAlign": "center", + "verticalAlign": "center", "anchor": "none", "focus": true, "focusSound": "titlemov", "visibleItems": 8, - "size": [270, 164], - "verticalPad": 12, + "size": [256, 180], + "verticalPad": 14, "onScrollDown": "focus.moveDown", "onScrollUp": "focus.moveUp", "items": [ @@ -52,7 +54,7 @@ { "name": "game.clearPlayingSounds" }, { "name": "sound.play", "id": "titlslct" }, { "name": "resource.popAll", "id": "userPanel" }, - { "name": "loadRandom", "file": "towners/healer/gossip" } + { "name": "loadRandom", "file": "texts/pepin/gossip" } ], "onFocus": [ "anchorLeftPentagram", @@ -61,11 +63,12 @@ }, { "%QUESTS%": null, + "ignoreItems": ["diablo", "gharbadTheWeak", "zharTheMad"], "onClick": [ { "name": "game.clearPlayingSounds" }, { "name": "sound.play", "id": "titlslct" }, { "name": "resource.popAll", "id": "userPanel" }, - { "name": "load", "file": "towners/healer/quests/%ID%.json" } + { "name": "load", "file": "texts/pepin/quests/%ID%.json" } ], "onFocus": [ "anchorLeftPentagram", @@ -80,13 +83,14 @@ "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 298], + "position": [480, 298], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Back", "onClick": [ { "name": "resource.pop" }, - { "name": "load", "file": "towners/healer/panelMain.json" } + { "name": "load", "file": "towners/pepin/panelMain.json" } ], "onFocus": [ "anchorLeftPentagram", @@ -96,6 +100,6 @@ "action": [ "anchorLeftPentagram", "anchorRightPentagram", - { "name": "menu.setColor", "id": "panelQuests", "index": 1, "color": "0x9DA2BC" } + { "name": "menu.setColor", "id": "panelQuests", "index": 1, "color": "%textBlue%" } ] } \ No newline at end of file diff --git a/gamefiles/towners/townboy/panel.json b/gamefiles/towners/townboy/panel.json deleted file mode 100755 index b43ab2f2..00000000 --- a/gamefiles/towners/townboy/panel.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "action": [ - { "name": "resource.add", "id": "userPanel" }, - { "name": "game.clearPlayingSounds" } - ], - "load": "ui/level/disableGamePanelKeys.json", - "keyboard": [ - { - "key": "esc", - "action": { "name": "button.click", "id": "back", "playSound": false } - }, - { - "key": "enter", - "action": "focus.click" - }, - { - "key": ["up", "w"], - "action": "focus.moveUp" - }, - { - "key": ["down", "s"], - "action": "focus.moveDown" - } - ], - "load": "ui/level/panel.json", - "load": "towners/townboy/panelMain.json", - "action": { "name": "sound.play", "id": "pegboy32" } -} \ No newline at end of file diff --git a/gamefiles/towners/twnf/panel.json b/gamefiles/towners/twnf/panel.json deleted file mode 100755 index 415734cd..00000000 --- a/gamefiles/towners/twnf/panel.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "action": [ - { "name": "resource.add", "id": "userPanel" }, - { "name": "game.clearPlayingSounds" } - ], - "load": "ui/level/disableGamePanelKeys.json", - "keyboard": [ - { - "key": "esc", - "action": { "name": "button.click", "id": "back", "playSound": false } - }, - { - "key": "enter", - "action": "focus.click" - }, - { - "key": ["up", "w"], - "action": "focus.moveUp" - }, - { - "key": ["down", "s"], - "action": "focus.moveDown" - } - ], - "load": "ui/level/panel.json", - "load": "towners/twnf/panelMain.json", - "action": { "name": "sound.play", "id": "tavown36" } -} \ No newline at end of file diff --git a/gamefiles/towners/healer/panel.json b/gamefiles/towners/wirt/panel.json similarity index 84% rename from gamefiles/towners/healer/panel.json rename to gamefiles/towners/wirt/panel.json index af541160..1e088f18 100755 --- a/gamefiles/towners/healer/panel.json +++ b/gamefiles/towners/wirt/panel.json @@ -23,6 +23,6 @@ } ], "load": "ui/level/panel.json", - "load": "towners/healer/panelMain.json", - "action": { "name": "sound.play", "id": "healer37" } + "load": "towners/wirt/panelMain.json", + "action": { "name": "sound.play", "id": "pegboyWelcome" } } \ No newline at end of file diff --git a/gamefiles/towners/townboy/panelMain.json b/gamefiles/towners/wirt/panelMain.json similarity index 76% rename from gamefiles/towners/townboy/panelMain.json rename to gamefiles/towners/wirt/panelMain.json index 1da0c76c..57cbf6e2 100755 --- a/gamefiles/towners/townboy/panelMain.json +++ b/gamefiles/towners/wirt/panelMain.json @@ -25,37 +25,41 @@ { "id": "panelTitle1", "bitmapFont": "smaltext", - "color": "0xC4B78A", - "position": [484, 58], + "color": "%textGold%", + "position": [480, 58], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Wirt the Peg-Legged Boy" }, { "id": "panelText1", "bitmapFont": "smaltext", - "color": "0xC4B78A", - "position": [484, 178], + "color": "%textGold%", + "position": [480, 178], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "I have something for sale," }, { "id": "panelText2", "bitmapFont": "smaltext", - "color": "0xC4B78A", - "position": [484, 202], + "color": "%textGold%", + "position": [480, 202], "anchor": "none", "horizontalAlign": "center", - "text": "but it will cost you 50 gold" + "horizontalSpaceOffset": 1, + "text": "but it will cost 50 gold" }, { "id": "panelText3", "bitmapFont": "smaltext", - "color": "0xC4B78A", - "position": [484, 228], + "color": "%textGold%", + "position": [476, 226], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "just to take a look." } ], @@ -63,17 +67,18 @@ { "id": "talk", "bitmapFont": "smaltext", - "color": "0x9DA2BC", + "color": "%textBlue%", "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 128], + "position": [480, 130], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Talk to Wirt", "onClick": [ { "name": "resource.pop" }, - { "name": "load", "file": "towners/townboy/panelTalk.json" } + { "name": "load", "file": "towners/wirt/panelTalk.json" } ], "onFocus": [ "anchorLeftPentagram", @@ -86,9 +91,10 @@ "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 251], + "position": [480, 250], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "What Have you Got?", "onFocus": [ "anchorLeftPentagram", @@ -101,9 +107,10 @@ "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 275], + "position": [480, 274], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Say Goodbye", "onClick": { "name": "resource.popAll", "id": "userPanel" }, "onFocus": [ diff --git a/gamefiles/towners/townboy/panelTalk.json b/gamefiles/towners/wirt/panelTalk.json similarity index 77% rename from gamefiles/towners/townboy/panelTalk.json rename to gamefiles/towners/wirt/panelTalk.json index b3733d1d..b7236960 100755 --- a/gamefiles/towners/townboy/panelTalk.json +++ b/gamefiles/towners/wirt/panelTalk.json @@ -25,24 +25,27 @@ { "id": "panelTitle1", "bitmapFont": "smaltext", - "color": "0xC4B78A", - "position": [484, 58], + "color": "%textGold%", + "position": [480, 58], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Talk to Wirt" } ], "menu": { "id": "panelQuests", "bitmapFont": "smaltext", - "position": [484, 190], + "position": [480, 195], "horizontalAlign": "center", + "verticalAlign": "center", + "horizontalSpaceOffset": 1, "anchor": "none", "focus": true, "focusSound": "titlemov", "visibleItems": 8, - "size": [270, 164], - "verticalPad": 12, + "size": [256, 180], + "verticalPad": 14, "onScrollDown": "focus.moveDown", "onScrollUp": "focus.moveUp", "items": [ @@ -52,7 +55,7 @@ { "name": "game.clearPlayingSounds" }, { "name": "sound.play", "id": "titlslct" }, { "name": "resource.popAll", "id": "userPanel" }, - { "name": "loadRandom", "file": "towners/townboy/gossip" } + { "name": "loadRandom", "file": "texts/wirt/gossip" } ], "onFocus": [ "anchorLeftPentagram", @@ -61,11 +64,12 @@ }, { "%QUESTS%": null, + "ignoreItems": ["diablo", "gharbadTheWeak", "zharTheMad"], "onClick": [ { "name": "game.clearPlayingSounds" }, { "name": "sound.play", "id": "titlslct" }, { "name": "resource.popAll", "id": "userPanel" }, - { "name": "load", "file": "towners/townboy/quests/%ID%.json" } + { "name": "load", "file": "texts/wirt/quests/%ID%.json" } ], "onFocus": [ "anchorLeftPentagram", @@ -80,13 +84,14 @@ "sound": "titlslct", "focus": true, "focusSound": "titlemov", - "position": [484, 298], + "position": [480, 298], "anchor": "none", "horizontalAlign": "center", + "horizontalSpaceOffset": 1, "text": "Back", "onClick": [ { "name": "resource.pop" }, - { "name": "load", "file": "towners/townboy/panelMain.json" } + { "name": "load", "file": "towners/wirt/panelMain.json" } ], "onFocus": [ "anchorLeftPentagram", @@ -96,6 +101,6 @@ "action": [ "anchorLeftPentagram", "anchorRightPentagram", - { "name": "menu.setColor", "id": "panelQuests", "index": 1, "color": "0x9DA2BC" } + { "name": "menu.setColor", "id": "panelQuests", "index": 1, "color": "%textBlue%" } ] } \ No newline at end of file diff --git a/gamefiles/ui/charInfo.json b/gamefiles/ui/charInfo.json index f83a3295..190ca909 100755 --- a/gamefiles/ui/charInfo.json +++ b/gamefiles/ui/charInfo.json @@ -1,6 +1,6 @@ { "action": [ - { "name": "load", "file": ["ui/singlePlayer/setPlayerImage.json", "{6}"] }, + { "name": "variable.set", "key": "charClass", "val": "{6}" }, { "name": "text.setText", "id": "txtLevel", "text": "{1}" }, { "name": "text.setText", "id": "txtStrength", "text": "{2}" }, { "name": "text.setText", "id": "txtMagic", "text": "{3}" }, diff --git a/gamefiles/ui/charInfoDefault.json b/gamefiles/ui/charInfoDefault.json index 3fc4ebbf..6d1e64a8 100755 --- a/gamefiles/ui/charInfoDefault.json +++ b/gamefiles/ui/charInfoDefault.json @@ -1,7 +1,6 @@ { "action": [ - { "name": "load", "file": "ui/singlePlayer/setPlayerImage.json" }, - { "name": "variable.set", "key": "charClass", "val": "--" }, + { "name": "variable.set", "key": "charClass", "val": null }, { "name": "text.setText", "id": "txtLevel", "text": "--" }, { "name": "text.setText", "id": "txtStrength", "text": "--" }, { "name": "text.setText", "id": "txtMagic", "text": "--" }, diff --git a/gamefiles/ui/intro.json b/gamefiles/ui/intro.json index 317d94cd..3c6fc3b7 100755 --- a/gamefiles/ui/intro.json +++ b/gamefiles/ui/intro.json @@ -4,7 +4,7 @@ "param1": "%skipIntro%", "param2": true, "then": [ - { "name": "load", "file": ["ui/playVideo.json", "introVideo", "gendata/diablo1.smk", "ui/splashScreen2.json"] }, + { "name": "load", "file": ["ui/playIntro.json", "ui/splashScreen2.json"] }, { "name": "variable.set", "key": "skipIntro", "val": true }, { "name": "load", "file": "ui/saveSettings.json" } ], diff --git a/gamefiles/ui/level/charPanelQuests.json b/gamefiles/ui/level/charPanelQuests.json index f81b6e52..aaee2c5e 100755 --- a/gamefiles/ui/level/charPanelQuests.json +++ b/gamefiles/ui/level/charPanelQuests.json @@ -56,16 +56,15 @@ "menu": { "id": "menuQuests", "bitmapFont": "smaltext", - "position": [160, 135], + "position": [160, 130], "horizontalAlign": "center", - "verticalAlign": "center", "horizontalSpaceOffset": 1, "anchor": "left", "focus": true, "focusSound": "titlemov", - "visibleItems": 8, + "visibleItems": 7, "size": [270, 164], - "verticalPad": 12, + "verticalPad": 14, "onScrollDown": "focus.moveDown", "onScrollUp": "focus.moveUp", "items": [ @@ -75,7 +74,7 @@ { "name": "game.clearPlayingSounds" }, { "name": "sound.play", "id": "titlslct" }, { "name": "button.click", "id": "quest" }, - { "name": "load", "file": "quests/%ID%.json" } + { "name": "load", "file": "texts/quests/%ID%.json" } ], "onFocus": [ "anchorLeftPentagram", diff --git a/gamefiles/ui/level/gameMenuCommon.json b/gamefiles/ui/level/gameMenuCommon.json index c249ccf8..232c4d76 100755 --- a/gamefiles/ui/level/gameMenuCommon.json +++ b/gamefiles/ui/level/gameMenuCommon.json @@ -2,6 +2,7 @@ "action": [ { "name": "resource.add", "id": "gameMenuCommon" }, { "name": "resource.ignore", "id": "level", "ignore": "update" }, + { "name": "level.pause", "pause": true }, { "name": "action.set", "id": "anchorLeftPentagram", diff --git a/gamefiles/ui/level/gamePanel.json b/gamefiles/ui/level/gamePanel.json index 7b9efccb..4caf1f6b 100755 --- a/gamefiles/ui/level/gamePanel.json +++ b/gamefiles/ui/level/gamePanel.json @@ -5,9 +5,20 @@ "action": [ { "name": "load", "file": "ui/level/saveSettings.json" }, { "name": "resource.popAll", "id": "gameMenuCommon" }, - { "name": "resource.ignore", "id": "level", "ignore": "none" } + { "name": "resource.ignore", "id": "level", "ignore": "none" }, + { "name": "level.pause", "pause": false } ] }, + "text": { + "id": "txtMapLabel", + "bitmapFont": "smaltext", + "color": "%textGold%", + "position": [8, 10], + "horizontalSpaceOffset": 1, + "binding": "|currentLevel|name|", + "format": "Level: [1]", + "visible": false + }, "button": [ { "id": "charPanel", diff --git a/gamefiles/ui/level/noMap.json b/gamefiles/ui/level/noMap.json index ad88ed94..19e61e76 100755 --- a/gamefiles/ui/level/noMap.json +++ b/gamefiles/ui/level/noMap.json @@ -1,8 +1,3 @@ { - "action": { - "name": "if.resourceExists", - "param1": "noMap", - "then": { "name": "event.resetTime", "id": "closeNoMap" }, - "else": { "name": "load", "file": "ui/level/noMap2.json" } - } + "load": ["ui/level/showMsg.json", "No automap available in town"] } \ No newline at end of file diff --git a/gamefiles/ui/level/showMsg.json b/gamefiles/ui/level/showMsg.json new file mode 100755 index 00000000..2eae61c8 --- /dev/null +++ b/gamefiles/ui/level/showMsg.json @@ -0,0 +1,11 @@ +{ + "action": { + "name": "if.resourceExists", + "param1": "msgBox", + "then": [ + { "name": "event.resetTime", "id": "closeMsgBox" }, + { "name": "text.setText", "id": "textMsg", "text": "{1}" } + ], + "else": { "name": "load", "file": ["ui/level/showMsg2.json", "{1}"] } + } +} \ No newline at end of file diff --git a/gamefiles/ui/level/noMap2.json b/gamefiles/ui/level/showMsg2.json similarity index 72% rename from gamefiles/ui/level/noMap2.json rename to gamefiles/ui/level/showMsg2.json index 0ebaca0b..05077a31 100755 --- a/gamefiles/ui/level/noMap2.json +++ b/gamefiles/ui/level/showMsg2.json @@ -1,10 +1,10 @@ { - "action": { "name": "resource.add", "id": "noMap" }, + "action": { "name": "resource.add", "id": "msgBox" }, "keyboard": { "key": "esc", "action": [ - { "name": "resource.pop", "id": "noMap" }, - { "name": "event.delete", "id": "closeNoMap" } + { "name": "resource.pop", "id": "msgBox" }, + { "name": "event.delete", "id": "closeMsgBox" } ] }, "texture": { @@ -36,18 +36,18 @@ } ], "text": { - "id": "mapText", + "id": "textMsg", "bitmapFont": "smaltext", - "color": "0xC4B78A", + "color": "%textGold%", "position": [322, 172], "anchor": "none", "horizontalAlign": "center", "horizontalSpaceOffset": 1, - "text": "No automap available in town" + "text": "{1}" }, "event": { - "id": "closeNoMap", - "action": { "name": "resource.pop", "id": "noMap" }, + "id": "closeMsgBox", + "action": { "name": "resource.pop", "id": "msgBox" }, "seconds": 4 } } \ No newline at end of file diff --git a/gamefiles/ui/level/showText.json b/gamefiles/ui/level/showText.json index f3f16d22..4673cec1 100755 --- a/gamefiles/ui/level/showText.json +++ b/gamefiles/ui/level/showText.json @@ -3,6 +3,7 @@ "name": "resource.add", "id": "{1}" }, + "load": "ui/level/disableGamePanelKeys.json", "keyboard": { "key": ["enter", "esc", " "], "action": { "name": "button.click", "id": "textWallButton" } diff --git a/gamefiles/ui/loadMain.json b/gamefiles/ui/loadMain.json index 4d87922b..b04c2b87 100755 --- a/gamefiles/ui/loadMain.json +++ b/gamefiles/ui/loadMain.json @@ -5,6 +5,11 @@ "cursor": { "show": false }, + "action": { + "name": "if.fileExists", + "param1": "ui_art/cursor.pcx", + "else": { "name": "variable.set", "key": "beta", "val": true } + }, "load": "res/actions.json", "load": "res/fonts.json", "load": "res/music.json", diff --git a/gamefiles/ui/mainMenu.json b/gamefiles/ui/mainMenu.json index ceaa89fb..c155b8ef 100755 --- a/gamefiles/ui/mainMenu.json +++ b/gamefiles/ui/mainMenu.json @@ -32,20 +32,22 @@ "action": { "name": "menu.click", "id": "menu", "index": 5 } } ], - "texture": { - "id": "mainmenu", - "file": "ui_art/mainmenu.pcx" - }, - "texture": { - "id": "smlogo", - "file": "ui_art/smlogo.pcx", - "mask": "0x00FF00" - }, - "texture": { - "id": "focus42", - "file": "ui_art/focus42.pcx", - "mask": "0x00FF00" - }, + "texture": [ + { + "id": "mainmenu", + "file": "ui_art/mainmenu.pcx" + }, + { + "id": "smlogo", + "file": "ui_art/smlogo.pcx", + "mask": "0x00FF00" + }, + { + "id": "focus42", + "file": "ui_art/focus42.pcx", + "mask": "0x00FF00" + } + ], "cursor": { "texture": "cursor" }, @@ -54,30 +56,32 @@ "texture": "mainmenu", "anchor": "none" }, - "animation": { - "id": "smlogo", - "texture": "smlogo", - "frames": 15, - "position": [125, 0], - "anchor": "none", - "refresh": 50 - }, - "animation": { - "texture": "focus42", - "id": "pent1", - "frames": 8, - "position": [67, 192], - "anchor": "none", - "refresh": 50 - }, - "animation": { - "texture": "focus42", - "id": "pent2", - "frames": 8, - "position": [537, 192], - "anchor": "none", - "refresh": 50 - }, + "animation": [ + { + "id": "smlogo", + "texture": "smlogo", + "frames": 15, + "position": [125, 0], + "anchor": "none", + "refresh": 50 + }, + { + "texture": "focus42", + "id": "pent1", + "frames": 8, + "position": [67, 192], + "anchor": "none", + "refresh": 50 + }, + { + "texture": "focus42", + "id": "pent2", + "frames": 8, + "position": [537, 192], + "anchor": "none", + "refresh": 50 + } + ], "menu": { "id": "menu", "bitmapFont": "font42g", @@ -91,12 +95,10 @@ { "text": "Single Player", "position": [170, 192], - "onClick": [ - { - "name": "load", - "file": "ui/singlePlayer/main.json" - } - ], + "onClick": { + "name": "load", + "file": "ui/singlePlayer/main.json" + }, "onFocus": [ { "name": "drawable.verticalAnchorToFocused", "id": "pent1" }, { "name": "drawable.verticalAnchorToFocused", "id": "pent2" } @@ -116,15 +118,10 @@ { "text": "Replay Intro", "position": [174, 277], - "onClick": [ - { - "name": "load", - "file": ["ui/playVideo.json", - "introVideo", - "gendata/diablo1.smk", - "ui/fadeIn.json"] - } - ], + "onClick": { + "name": "load", + "file": ["ui/playIntro.json", "ui/fadeIn.json"] + }, "onFocus": [ { "name": "drawable.verticalAnchorToFocused", "id": "pent1" }, { "name": "drawable.verticalAnchorToFocused", "id": "pent2" } @@ -133,15 +130,13 @@ { "text": "Show Credits", "position": [173, 320], - "onClick": [ - { - "name": "game.fadeOut", - "action": { - "name": "load", - "file": "ui/credits.json" - } + "onClick": { + "name": "game.fadeOut", + "action": { + "name": "load", + "file": "ui/credits.json" } - ], + }, "onFocus": [ { "name": "drawable.verticalAnchorToFocused", "id": "pent1" }, { "name": "drawable.verticalAnchorToFocused", "id": "pent2" } @@ -150,14 +145,12 @@ { "text": "Exit Diablo", "position": [192, 363], - "onClick": [ - { - "name": "game.fadeOut", - "action": { - "name": "game.close" - } + "onClick": { + "name": "game.fadeOut", + "action": { + "name": "game.close" } - ], + }, "onFocus": [ { "name": "drawable.verticalAnchorToFocused", "id": "pent1" }, { "name": "drawable.verticalAnchorToFocused", "id": "pent2" } @@ -169,6 +162,7 @@ "id": "versionInfo", "bitmapFont": "font16s", "position": [17, 444], + "sound": "titlslct", "anchor": "none", "onClick": { "name": "game.fadeOut", diff --git a/gamefiles/ui/playIntro.json b/gamefiles/ui/playIntro.json new file mode 100755 index 00000000..c96d101b --- /dev/null +++ b/gamefiles/ui/playIntro.json @@ -0,0 +1,15 @@ +{ + "action": { + "name": "if.equal", + "param1": "%beta%", + "param2": true, + "then": { + "name": "load", + "file": ["ui/playVideo.json", "introVideo", "gendata/diablo.smk", "{1}"] + }, + "else": { + "name": "load", + "file": ["ui/playVideo.json", "introVideo", "gendata/diablo1.smk", "{1}"] + } + } +} \ No newline at end of file diff --git a/gamefiles/ui/settings.json b/gamefiles/ui/settings.json index f070b753..11b5168c 100755 --- a/gamefiles/ui/settings.json +++ b/gamefiles/ui/settings.json @@ -255,7 +255,7 @@ { "id": "back", "bitmapFont": "font42g", - "sound": "titlemov", + "sound": "titlslct", "focus": true, "focusSound": "titlemov", "position": [319, 406], diff --git a/gamefiles/ui/singlePlayer/select.json b/gamefiles/ui/singlePlayer/select.json index a1180508..20129efd 100755 --- a/gamefiles/ui/singlePlayer/select.json +++ b/gamefiles/ui/singlePlayer/select.json @@ -85,6 +85,7 @@ "%SAVEGAMES%": null, "onClick": [ { "name": "load", "file": ["ui/loadCharInfo.json", "|focus|text|"] }, + { "name": "load", "file": "ui/singlePlayer/setPlayerImage.json" }, { "name": "drawable.verticalAnchorToFocused", "id": "pent1" }, { "name": "drawable.verticalAnchorToFocused", "id": "pent2" }, { "name": "button.enable", "id": "delete" }, @@ -98,6 +99,7 @@ "text": "New Hero", "onClick": [ { "name": "load", "file": "ui/charInfoDefault.json" }, + { "name": "load", "file": "ui/singlePlayer/setPlayerImage.json" }, { "name": "drawable.verticalAnchorToFocused", "id": "pent1" }, { "name": "drawable.verticalAnchorToFocused", "id": "pent2" }, { "name": "button.enable", "id": "delete", "enable": false }, diff --git a/gamefiles/ui/singlePlayer/setPlayerImage.json b/gamefiles/ui/singlePlayer/setPlayerImage.json index 8d27b4ea..7c9a7b91 100755 --- a/gamefiles/ui/singlePlayer/setPlayerImage.json +++ b/gamefiles/ui/singlePlayer/setPlayerImage.json @@ -1,7 +1,7 @@ { "action": { "name": "switch", - "param": "{1}", + "param": "%charClass%", "case": [ { "value": "Warrior", diff --git a/gamefiles/ui/splashScreen2.json b/gamefiles/ui/splashScreen2.json index 67a663f7..cfd52c73 100755 --- a/gamefiles/ui/splashScreen2.json +++ b/gamefiles/ui/splashScreen2.json @@ -7,15 +7,17 @@ "key": ["enter", "esc", " "], "action": { "name": "button.click", "id": "skip" } }, - "texture": { - "id": "title", - "file":"ui_art/title.pcx" - }, - "texture": { - "id": "logo", - "file": "ui_art/logo.pcx", - "mask": "0x00FF00" - }, + "texture": [ + { + "id": "title", + "file":"ui_art/title.pcx" + }, + { + "id": "logo", + "file": "ui_art/logo.pcx", + "mask": "0x00FF00" + } + ], "image": { "id": "title", "texture": "title", @@ -56,17 +58,14 @@ }, "event": { "id": "load", - "action": [ - { "name": "button.setClickAction", "id": "skip", "action": null }, - { - "name": "game.fadeOut", - "action": [ - { "name": "resource.pop" }, - { "name": "load", "file": "ui/mainMenu.json" }, - { "name": "game.fadeIn" } - ] - } - ], + "action": { + "name": "game.fadeOut", + "action": [ + { "name": "resource.pop" }, + { "name": "load", "file": "ui/mainMenu.json" }, + { "name": "game.fadeIn" } + ] + }, "seconds": 6 }, "action": { diff --git a/src/Actions/ActAudio.h b/src/Actions/ActAudio.h index f2c4f879..44b13ada 100755 --- a/src/Actions/ActAudio.h +++ b/src/Actions/ActAudio.h @@ -38,22 +38,32 @@ class ActAudioPlay : public Action private: std::string id; bool clear; - bool loop; + bool loop{ false }; + bool hasLoop{ false }; public: - ActAudioPlay(const std::string& id_, bool clear_, bool loop_) - : id(id_), clear(clear_), loop(loop_) {} + ActAudioPlay(const std::string& id_, bool clear_) + : id(id_), clear(clear_) {} + + void setLoop(bool loop_) + { + loop = loop_; + hasLoop = true; + } virtual bool execute(Game& game) { - if (clear) + if (clear == true) { game.Resources().stopSongs(); } auto song = game.Resources().getSong(id); if (song != nullptr) { - song->setLoop(loop); + if (hasLoop == true) + { + song->setLoop(loop); + } song->setVolume((float)game.MusicVolume()); if (song->getStatus() != sf::Music::Playing) { diff --git a/src/Actions/ActDrawable.h b/src/Actions/ActDrawable.h index 7e4d21bf..a66472c8 100755 --- a/src/Actions/ActDrawable.h +++ b/src/Actions/ActDrawable.h @@ -196,7 +196,7 @@ class ActDrawableCenterOnMouseX : public Action auto itemPos = itemAnchor->Position(); auto itemSize = item->Size().x; auto newRange = std::max(0u, std::min(range - (unsigned)itemSize, range)); - auto offset = std::max(0.f, std::min(game.MousePosition().x - itemPos.x, (float)range)); + auto offset = std::max(0.f, std::min(game.MousePositionf().x - itemPos.x, (float)range)); auto numSteps = game.getVarOrProp(steps, -1); float newPos = itemPos.x; offset = std::min(std::max(0.f, offset - std::round(itemSize / 2.f)), (float)newRange); @@ -250,7 +250,7 @@ class ActDrawableCenterOnMouseY : public Action auto itemPos = itemAnchor->Position(); auto itemSize = item->Size().y; auto newRange = std::max(0u, std::min(range - (unsigned)itemSize, range)); - auto offset = std::max(0.f, std::min(game.MousePosition().y - itemPos.y, (float)range)); + auto offset = std::max(0.f, std::min(game.MousePositionf().y - itemPos.y, (float)range)); auto numSteps = game.getVarOrProp(steps, -1); float newPos = itemPos.y; offset = std::min(std::max(0.f, offset - std::round(itemSize / 2.f)), (float)newRange); @@ -533,7 +533,7 @@ class ActDrawableResizeOnMouseX : public Action auto item = game.Resources().getResource(id); if (item != nullptr) { - auto newSize = game.MousePosition().x - item->Position().x; + auto newSize = game.MousePositionf().x - item->Position().x; if (newSize < range.x) { newSize = range.x; @@ -565,7 +565,7 @@ class ActDrawableResizeOnMouseY : public Action auto item = game.Resources().getResource(id); if (item != nullptr) { - auto newSize = game.MousePosition().y - item->Position().y; + auto newSize = game.MousePositionf().y - item->Position().y; if (newSize < range.x) { newSize = range.x; diff --git a/src/Actions/ActFade.h b/src/Actions/ActFade.h index 08770c1e..968111dc 100755 --- a/src/Actions/ActFade.h +++ b/src/Actions/ActFade.h @@ -1,126 +1,54 @@ #pragma once #include "Action.h" +#include "FadeInOut.h" #include "Game.h" #include #include -class ActGameFadeIn : public Action +class ActGameFade : public Action { private: sf::Color color; - unsigned refresh; + bool isFadeOut; + bool enableInput; uint8_t fadeOffset; + sf::Time refresh; std::shared_ptr action; public: - ActGameFadeIn(const sf::Color& color_, unsigned refresh_, uint8_t fadeOffset_) - : color(color_), refresh(refresh_), fadeOffset(fadeOffset_) - { - color.a = 255; - } + ActGameFade(const sf::Color& color_, bool isFadeOut_, bool enableInput_, + uint8_t fadeOffset_, const sf::Time& refresh_) : color(color_), + isFadeOut(isFadeOut_), enableInput(enableInput_), fadeOffset(fadeOffset_), + refresh(refresh_), action(nullptr) {} void setAction(const std::shared_ptr& action_) { action = action_; } virtual bool execute(Game& game) { auto fade = game.getFadeInOut(); - if (fade == nullptr) { - auto newFade = std::make_unique(game.WindowTexSizef()); - newFade->setFillColor(color); - game.setFadeInOut(std::move(newFade)); - game.enableInput(false); - - game.Events().addBack(Event(std::make_shared(*this), sf::milliseconds(refresh))); - return true; - } - else - { - if (color.a == 0) - { - game.setFadeInOut(nullptr); - game.enableInput(true); - if (action != nullptr) - { - game.Events().addBack(action); - } - return true; - } - else - { - if (color.a > fadeOffset) - { - color.a -= fadeOffset; - } - else - { - color.a = 0; - } - fade->setFillColor(color); - return false; - } - } - } -}; - -class ActGameFadeOut : public Action -{ -private: - sf::Color color; - unsigned refresh; - uint8_t fadeOffset; - std::shared_ptr action; - -public: - ActGameFadeOut(const sf::Color& color_, unsigned refresh_, uint8_t fadeOffset_) - : color(color_), refresh(refresh_), fadeOffset(fadeOffset_) - { - color.a = 0; - } - - void setAction(const std::shared_ptr& action_) { action = action_; } + auto newFade = std::make_unique(game.WindowTexSizef(), + isFadeOut, + enableInput, + color, + fadeOffset, + refresh, + action); - virtual bool execute(Game& game) - { - auto fade = game.getFadeInOut(); - - if (fade == nullptr) - { - auto newFade = std::make_unique(game.WindowTexSizef()); - newFade->setFillColor(color); game.setFadeInOut(std::move(newFade)); - game.enableInput(false); - - game.Events().addBack(Event(std::make_shared(*this), sf::milliseconds(refresh))); - return true; } else { - if (color.a == 255) - { - game.setFadeInOut(nullptr); - game.enableInput(true); - if (action != nullptr) - { - game.Events().addBack(action); - } - return true; - } - else - { - if ((int)color.a + (int)fadeOffset < 255) - { - color.a += fadeOffset; - } - else - { - color.a = 255; - } - fade->setFillColor(color); - return false; - } + fade->Reset( + isFadeOut, + enableInput, + color, + fadeOffset, + refresh, + action); } + return true; } }; diff --git a/src/Actions/ActLevel.h b/src/Actions/ActLevel.h index 4069a791..d7668e98 100755 --- a/src/Actions/ActLevel.h +++ b/src/Actions/ActLevel.h @@ -69,10 +69,10 @@ class ActLevelMove : public Action { private: std::string id; - sf::Vector2i pos; + MapCoord pos; public: - ActLevelMove(const std::string& id_, const sf::Vector2i& pos_) : id(id_), pos(pos_) {} + ActLevelMove(const std::string& id_, const MapCoord& pos_) : id(id_), pos(pos_) {} virtual bool execute(Game& game) { @@ -128,3 +128,23 @@ class ActLevelMoveToPlayer : public Action return true; } }; + +class ActLevelPause : public Action +{ +private: + std::string id; + bool pause; + +public: + ActLevelPause(const std::string& id_, bool pause_) : id(id_), pause(pause_) {} + + virtual bool execute(Game& game) + { + auto item = game.Resources().getLevel(id); + if (item != nullptr) + { + item->Pause(pause); + } + return true; + } +}; diff --git a/src/Actions/ActPlayer.h b/src/Actions/ActPlayer.h index e8acb46d..51ae820d 100755 --- a/src/Actions/ActPlayer.h +++ b/src/Actions/ActPlayer.h @@ -11,12 +11,12 @@ class ActPlayerMove : public Action private: std::string idPlayer; std::string idLevel; - sf::Vector2i position; + MapCoord position; bool resetDirection; public: ActPlayerMove(const std::string& idPlayer_, const std::string& idLevel_, - const sf::Vector2i& pos_, bool resetDirection_) + const MapCoord pos_, bool resetDirection_) : idPlayer(idPlayer_), idLevel(idLevel_), position(pos_), resetDirection(resetDirection_) {} @@ -58,7 +58,7 @@ class ActPlayerMoveToClick : public Action if (player != nullptr) { auto a = player->MapPosition(); - auto b = level->getMapClickPosition(game); + auto b = level->getMapCoordOverMouse(); player->setWalkPath(level->Map().getPath(a, b)); } } diff --git a/src/Animation.h b/src/Animation.h index c1fb4ffa..a8dadef4 100755 --- a/src/Animation.h +++ b/src/Animation.h @@ -43,7 +43,7 @@ class Animation : public Image bool loop; public: - Animation(const sf::Texture& tex, sf::Time frameTime = sf::milliseconds(50), + Animation(const sf::Texture& tex, const sf::Time& frameTime = sf::milliseconds(50), bool pause_ = false, bool loop_ = true) : Image(tex), framePosX(0), framePosY(0), frameTime(frameTime), pause(pause_), loop(loop_) {} diff --git a/src/BitmapButton.cpp b/src/BitmapButton.cpp index 203e176c..a917a707 100755 --- a/src/BitmapButton.cpp +++ b/src/BitmapButton.cpp @@ -81,7 +81,7 @@ void BitmapButton::update(Game& game) } auto rect = sprite.getGlobalBounds(); - if (rect.contains(game.MousePosition())) + if (rect.contains(game.MousePositionf())) { if (hovered == false) { diff --git a/src/FadeInOut.cpp b/src/FadeInOut.cpp new file mode 100755 index 00000000..cc779570 --- /dev/null +++ b/src/FadeInOut.cpp @@ -0,0 +1,76 @@ +#include "FadeInOut.h" +#include "Game.h" + +bool FadeInOut::HasFadeEnded(uint8_t alpha) +{ + if (isFadeOut == true) + { + return alpha == 255; + } + else + { + return alpha == 0; + } +} + +void FadeInOut::UpdateFade(sf::Color& color) +{ + if (isFadeOut == true) + { + if ((int)color.a + (int)fadeOffset < 255) + { + color.a += fadeOffset; + } + else + { + color.a = 255; + } + } + else + { + if ((int)color.a - (int)fadeOffset > 0) + { + color.a -= fadeOffset; + } + else + { + color.a = 0; + } + } +} + +void FadeInOut::update(Game& game) +{ + if (updateEnableInput == true) + { + updateEnableInput = false; + game.enableInput(enableInput); + } + + currentTime += game.getElapsedTime(); + + if (currentTime >= frameTime) + { + currentTime = sf::microseconds(currentTime.asMicroseconds() % frameTime.asMicroseconds()); + + auto color = getFillColor(); + + if (HasFadeEnded(color.a) == true) + { + if (action != nullptr) + { + game.Events().addBack(action); + } + if (enableInput == false) + { + game.enableInput(true); + } + game.setFadeInOut(nullptr); + } + else + { + UpdateFade(color); + setFillColor(color); + } + } +} diff --git a/src/FadeInOut.h b/src/FadeInOut.h new file mode 100755 index 00000000..3e8b03ef --- /dev/null +++ b/src/FadeInOut.h @@ -0,0 +1,62 @@ +#pragma once + +#include "Anchor.h" +#include "Actions/Action.h" +#include +#include "Rectangle.h" + +class FadeInOut : public Rectangle +{ +private: + bool isFadeOut; + bool enableInput; + uint8_t fadeOffset; + sf::Time frameTime; + sf::Time currentTime; + std::shared_ptr action; + + bool updateEnableInput{ false }; + + bool HasFadeEnded(uint8_t alpha); + void UpdateFade(sf::Color& color); + +public: + FadeInOut(const sf::Vector2f& size_, bool isFadeOut_, bool enableInput_, sf::Color color_, + uint8_t fadeOffset_, const sf::Time& frameTime_, const std::shared_ptr& action_) + : Rectangle(size_), isFadeOut(isFadeOut_), enableInput(enableInput_), + fadeOffset(fadeOffset_), frameTime(frameTime_), action(action_) + { + if (enableInput_ == false) + { + updateEnableInput = true; + } + if (isFadeOut_ == true) + { + color_.a = 0; + } + else + { + color_.a = 255; + } + setFillColor(color_); + } + + void Reset(bool isFadeOut_, bool enableInput_, sf::Color color_, uint8_t fadeOffset_, + const sf::Time& frameTime_, const std::shared_ptr& action_) + { + if (enableInput != enableInput_) + { + updateEnableInput = true; + } + isFadeOut = isFadeOut_; + enableInput = enableInput_; + fadeOffset = fadeOffset_; + frameTime = frameTime_; + action = action_; + + color_.a = getFillColor().a; + setFillColor(color_); + } + + virtual void update(Game& game); +}; diff --git a/src/Game.cpp b/src/Game.cpp index c056fce7..6e943644 100755 --- a/src/Game.cpp +++ b/src/Game.cpp @@ -235,6 +235,10 @@ void Game::onGainedFocus() void Game::onTextEntered(const sf::Event::TextEvent& evt) { + if (disableInput == true) + { + return; + } if (evt.unicode < 256) { keyboardChar = static_cast(evt.unicode); @@ -243,26 +247,35 @@ void Game::onTextEntered(const sf::Event::TextEvent& evt) void Game::onKeyPressed(const sf::Event::KeyEvent& evt) { - if (disableInput == false) + if (disableInput == true) { - keyPressed = evt; + return; + } + keyPressed = evt; #ifdef __ANDROID__ - keyPressed.system = false; + keyPressed.system = false; #endif - } } void Game::onMouseWheelScrolled(const sf::Event::MouseWheelScrollEvent& evt) { + if (disableInput == true) + { + return; + } updateMouse(); mouseWheel = evt; - mouseWheel.x = mousePosition.x; - mouseWheel.y = mousePosition.y; + mouseWheel.x = mousePositioni.x; + mouseWheel.y = mousePositioni.y; mouseScrolled = true; } void Game::onMouseButtonPressed(const sf::Event::MouseButtonEvent& evt) { + if (disableInput == true) + { + return; + } mouseButton = evt.button; mouseClicked = true; mousePressed = true; @@ -276,6 +289,10 @@ void Game::onMouseButtonPressed(const sf::Event::MouseButtonEvent& evt) void Game::onMouseButtonReleased(const sf::Event::MouseButtonEvent& evt) { + if (disableInput == true) + { + return; + } mouseButton = evt.button; mousePressed = false; mouseReleased = true; @@ -284,11 +301,19 @@ void Game::onMouseButtonReleased(const sf::Event::MouseButtonEvent& evt) void Game::onMouseMoved(const sf::Event::MouseMoveEvent& evt) { updateMouse(sf::Vector2i(evt.x, evt.y)); + if (disableInput == true) + { + return; + } mouseMoved = true; } #ifdef __ANDROID__ void Game::onTouchBegan(const sf::Event::TouchEvent& evt) { + if (disableInput == true) + { + return; + } updateMouse(sf::Vector2i(evt.x, evt.y)); sf::Event::MouseButtonEvent mouseEvt; mouseEvt.button = sf::Mouse::Left; @@ -300,11 +325,19 @@ void Game::onTouchBegan(const sf::Event::TouchEvent& evt) void Game::onTouchMoved(const sf::Event::TouchEvent& evt) { updateMouse(sf::Vector2i(evt.x, evt.y)); + if (disableInput == true) + { + return; + } mouseMoved = true; } void Game::onTouchEnded(const sf::Event::TouchEvent& evt) { + if (disableInput == true) + { + return; + } updateMouse(sf::Vector2i(evt.x, evt.y)); sf::Event::MouseButtonEvent mouseEvt; mouseEvt.button = sf::Mouse::Left; @@ -320,13 +353,15 @@ void Game::updateMouse() void Game::updateMouse(const sf::Vector2i mousePos) { - mousePosition = window.mapPixelToCoords(mousePos); - mousePosition.x = std::round(mousePosition.x); - mousePosition.y = std::round(mousePosition.y); + mousePositionf = window.mapPixelToCoords(mousePos); + mousePositionf.x = std::round(mousePositionf.x); + mousePositionf.y = std::round(mousePositionf.y); + mousePositioni.x = (int)mousePositionf.x; + mousePositioni.y = (int)mousePositionf.y; auto cursor = resourceManager.getCursor(); if (cursor != nullptr) { - cursor->Position(mousePosition); + cursor->Position(mousePositionf); } } @@ -405,6 +440,7 @@ void Game::drawFadeEffect() if (fadeInOut != nullptr) { windowTex.draw(static_cast(*fadeInOut)); + fadeInOut->update(*this); } } diff --git a/src/Game.h b/src/Game.h index 7643c769..928292c6 100755 --- a/src/Game.h +++ b/src/Game.h @@ -1,12 +1,12 @@ #pragma once #include "EventManager.h" +#include "FadeInOut.h" #include "Game/Level.h" #include "LoadingScreen.h" #include #include "Menu.h" #include "Parser/ParseVariable.h" -#include "Rectangle.h" #include "ResourceManager.h" #include #include @@ -34,7 +34,8 @@ class Game : public sf::NonCopyable bool pauseOnFocusLoss{ false }; bool paused{ false }; - sf::Vector2f mousePosition; + sf::Vector2i mousePositioni; + sf::Vector2f mousePositionf; sf::Mouse::Button mouseButton; sf::Event::MouseWheelScrollEvent mouseWheel; sf::Clock mouseClickClock; @@ -62,7 +63,7 @@ class Game : public sf::NonCopyable std::map variables; std::unique_ptr loadingScreen; - std::unique_ptr fadeInOut; + std::unique_ptr fadeInOut; void processEvents(); void onClosed(); @@ -149,7 +150,8 @@ class Game : public sf::NonCopyable bool StretchToFit() const { return stretchToFit; } bool KeepAR() const { return keepAR; } - const sf::Vector2f& MousePosition() const { return mousePosition; } + const sf::Vector2i& MousePositioni() const { return mousePositioni; } + const sf::Vector2f& MousePositionf() const { return mousePositionf; } sf::Mouse::Button getMouseButton() { return mouseButton; } const sf::Event::MouseWheelScrollEvent& getMouseWheelScroll() const { return mouseWheel; } void clearMouseClicked() { mouseClicked = false; } @@ -180,7 +182,6 @@ class Game : public sf::NonCopyable window.setFramerateLimit(framerate); } } - void MousePosition(const sf::Vector2f& mouse_) { mousePosition = mouse_; } void SmoothScreen(bool smooth_); void StretchToFit(bool stretchToFit_); void KeepAR(bool keepAR_); @@ -231,8 +232,8 @@ class Game : public sf::NonCopyable LoadingScreen* getLoadingScreen() { return loadingScreen.get(); } void setLoadingScreen(std::unique_ptr loadingScreen_) { loadingScreen = std::move(loadingScreen_); } - Rectangle* getFadeInOut() { return fadeInOut.get(); } - void setFadeInOut(std::unique_ptr fadeInOut_) { fadeInOut = std::move(fadeInOut_); } + FadeInOut* getFadeInOut() const { return fadeInOut.get(); } + void setFadeInOut(std::unique_ptr fadeInOut_) { fadeInOut = std::move(fadeInOut_); } void updateMouse(); diff --git a/src/Game/CelLevelObject.cpp b/src/Game/CelLevelObject.cpp index e90251a6..78760fdd 100755 --- a/src/Game/CelLevelObject.cpp +++ b/src/Game/CelLevelObject.cpp @@ -17,7 +17,8 @@ void CelLevelObject::executeAction(Game& game) const void CelLevelObject::update(Game& game, Level& level) { auto rect = sprite.getGlobalBounds(); - if (rect.contains(level.MousePosition())) + if (level.HasMouseInside() == true && + rect.contains(level.MousePositionf()) == true) { if (hovered == false) { diff --git a/src/Game/CelLevelObject.h b/src/Game/CelLevelObject.h index 4a768a0f..75c870aa 100755 --- a/src/Game/CelLevelObject.h +++ b/src/Game/CelLevelObject.h @@ -14,7 +14,7 @@ class CelLevelObject : public LevelObject { private: sf::Sprite sprite; - sf::Vector2i mapPosition; + MapCoord mapPosition; size_t celIdx{ 0 }; size_t palette{ 0 }; @@ -44,8 +44,8 @@ class CelLevelObject : public LevelObject } virtual void Size(const sf::Vector2f& size) {} - virtual const sf::Vector2i& MapPosition() const { return mapPosition; } - virtual void MapPosition(const sf::Vector2i& pos) { mapPosition = pos; } + virtual const MapCoord& MapPosition() const { return mapPosition; } + virtual void MapPosition(const MapCoord& pos) { mapPosition = pos; } virtual void executeAction(Game& game) const; virtual bool Passable() const { return true; } diff --git a/src/Game/ImageLevelObject.cpp b/src/Game/ImageLevelObject.cpp index a4b03bf3..d18dca19 100755 --- a/src/Game/ImageLevelObject.cpp +++ b/src/Game/ImageLevelObject.cpp @@ -16,7 +16,8 @@ void ImageLevelObject::executeAction(Game& game) const void ImageLevelObject::update(Game& game, Level& level) { auto rect = sprite.getGlobalBounds(); - if (rect.contains(level.MousePosition())) + if (level.HasMouseInside() == true && + rect.contains(level.MousePositionf()) == true) { if (hovered == false) { @@ -37,8 +38,8 @@ void ImageLevelObject::update(Game& game, Level& level) if (rect.width > 0 && rect.height > 0) { auto drawPos = level.Map().getCoords(mapPosition); - drawPos.x += (float)(level.getLevelX() - ((int)rect.width / 2)) + 32; - drawPos.y += (float)(level.getLevelY() + 224 - ((int)rect.height - 32)); + drawPos.x += (float)(- ((int)rect.width / 2)) + 32; + drawPos.y += (float)(224 - ((int)rect.height - 32)); sprite.setPosition(drawPos); } } diff --git a/src/Game/ImageLevelObject.h b/src/Game/ImageLevelObject.h index a161de62..a3f3b95a 100755 --- a/src/Game/ImageLevelObject.h +++ b/src/Game/ImageLevelObject.h @@ -14,7 +14,7 @@ class ImageLevelObject : public LevelObject { private: sf::Sprite sprite; - sf::Vector2i mapPosition; + MapCoord mapPosition; std::pair frameRange; size_t currentFrame{ 0 }; @@ -40,8 +40,8 @@ class ImageLevelObject : public LevelObject } virtual void Size(const sf::Vector2f& size) {} - virtual const sf::Vector2i& MapPosition() const { return mapPosition; } - virtual void MapPosition(const sf::Vector2i& pos) { mapPosition = pos; } + virtual const MapCoord& MapPosition() const { return mapPosition; } + virtual void MapPosition(const MapCoord& pos) { mapPosition = pos; } virtual void executeAction(Game& game) const; virtual bool Passable() const { return true; } diff --git a/src/Game/Item.cpp b/src/Game/Item.cpp index e90a4c16..c5b9217a 100755 --- a/src/Game/Item.cpp +++ b/src/Game/Item.cpp @@ -9,7 +9,7 @@ using Utils::str2int; void Item::update(Game& game, const Level& level) { auto rect = sprite.getGlobalBounds(); - if (rect.contains(level.MousePosition())) + if (rect.contains(level.MousePositionf())) { if (game.getMouseButton() == sf::Mouse::Left) { diff --git a/src/Game/Level.cpp b/src/Game/Level.cpp index 598fab60..549ee1f4 100755 --- a/src/Game/Level.cpp +++ b/src/Game/Level.cpp @@ -10,9 +10,9 @@ using Utils::str2int; void Level::Init(const LevelMap& map_, Min& min_, CelFrameCache& cel_) { map = map_; - pos = sf::Vector2i((int)map.Width() / 2, (int)map.Height() / 2); - tiles = Render::loadTilesetSprite(cel_, min_, false); - tiles2 = Render::loadTilesetSprite(cel_, min_, true); + currentMapPosition = MapCoord(map.Width() / 2, map.Height() / 2); + tiles = LevelHelper::loadTilesetSprite(cel_, min_, false); + tiles2 = LevelHelper::loadTilesetSprite(cel_, min_, true); } void Level::updateViewPort(const Game& game) @@ -36,27 +36,6 @@ void Level::executeHoverLeaveAction(Game& game) } } -sf::Vector2f Level::getDrawPosition(const sf::Vector2i& pos_) const -{ - int32_t drawX, drawY; - const auto& size = view.getSize(); - Render::getMapScreenCoords(size.x, size.y, *this, - pos_.x, pos_.y, pos_.x, pos_.y, 0, drawX, drawY); - - return sf::Vector2f((float)drawX, (float)drawY); -} - -sf::Vector2i Level::getMapClickPosition(Game& game) -{ - auto mousePos = game.MousePosition() - view.getPosition(); - const auto& size = view.getSize(); - mousePos.y = (mousePos.y * (float)game.WindowTexSize().y) / size.y; - - mousePos.y -= 48.f; - - return Render::getClickedTile(size.x, size.y, *this, mousePos.x, mousePos.y, pos.x, pos.y, pos.x, pos.y, 0); -} - void Level::draw(sf::RenderTarget& target, sf::RenderStates states) const { if (visible == false) @@ -67,11 +46,29 @@ void Level::draw(sf::RenderTarget& target, sf::RenderStates states) const auto origView = target.getView(); target.setView(view); + sf::Sprite sprite; + + auto viewCenter = target.getView().getCenter(); + auto viewSize = target.getView().getSize(); + + sf::FloatRect drawRect(viewCenter.x - (viewSize.x / 2) - 64, + viewCenter.y - (viewSize.y / 2) - 256, + viewSize.x + 64, viewSize.y + 256); + for (size_t x = 0; x < map.Width(); x++) { for (size_t y = 0; y < map.Height(); y++) { - Render::drawLevelHelper(*this, tiles, x, y, levelX, levelY, target, states); + size_t index = map[x][y].minIndex; + auto coords = map.getCoords(MapCoord(x, y)); + + if (drawRect.contains(coords) == true && + index < tiles.size()) + { + sprite.setTexture(*tiles[index], true); + sprite.setPosition(coords); + target.draw(sprite, states); + } } } @@ -79,7 +76,23 @@ void Level::draw(sf::RenderTarget& target, sf::RenderStates states) const { for (size_t y = 0; y < map.Height(); y++) { - Render::drawLevelHelper2(*this, tiles2, x, y, levelX, levelY, target, states); + size_t index = map[x][y].minIndex; + auto coords = map.getCoords(MapCoord(x, y)); + + if (drawRect.contains(coords) == true) + { + auto drawObj = map[x][y].object.get(); + if (drawObj != nullptr) + { + target.draw(*drawObj, states); + } + if (index < tiles2.size()) + { + sprite.setTexture(*tiles2[index], true); + sprite.setPosition(coords); + target.draw(sprite, states); + } + } } } @@ -91,7 +104,6 @@ void Level::updateSize(const Game& game) auto size = view.getSize(); if (game.StretchToFit() == true) { - view.setCenter(size.x / 2, size.y / 2); view.setViewport(game); } else @@ -102,33 +114,28 @@ void Level::updateSize(const Game& game) view.setSize(size); view.setViewport(game); } - view.setCenter(size.x / 2, size.y / 2); +} - Render::getMapScreenCoords(size.x, size.y, *this, pos.x, pos.y, pos.x, pos.y, 0, levelX, levelY); +void Level::updateMouse(Game& game) +{ + mousePositionf = view.getCenter() - (view.getSize() / 2.f) + game.MousePositionf(); + mousePositionf.x = std::round(mousePositionf.x); + mousePositionf.y = std::round(mousePositionf.y); } void Level::update(Game& game) { - if (visible == false) + if (pause == true || visible == false) { return; } - mousePos = game.MousePosition() - view.getPosition(); - - for (auto& obj : levelObjects) - { - obj->update(game, *this); - } - - for (auto& player : players) - { - player->update(game, *this); - } + updateMouse(game); sf::FloatRect rect(view.getPosition(), view.getSize()); - if (rect.contains(game.MousePosition())) + if (rect.contains(game.MousePositionf()) == true) { + hasMouseInside = true; if (game.wasMouseClicked() == true && game.getMouseButton() == sf::Mouse::Left && leftAction != nullptr) @@ -142,13 +149,25 @@ void Level::update(Game& game) game.Events().addBack(rightAction); } } + else + { + hasMouseInside = false; + } - const auto& size = view.getSize(); - Render::getMapScreenCoords(size.x, size.y, *this, pos.x, pos.y, pos.x, pos.y, 0, levelX, levelY); + for (auto& obj : levelObjects) + { + obj->update(game, *this); + } + + for (auto& player : players) + { + player->update(game, *this); + } if (followCurrentPlayer == true && currentPlayer != nullptr) { - pos = currentPlayer->MapPosition(); + currentMapPosition = currentPlayer->MapPosition(); + view.setCenter(currentPlayer->getBasePosition()); } } @@ -182,6 +201,10 @@ bool Level::getProperty(const std::string& prop, Variable& var) const } } break; + case str2int("name"): + var = Variable(name); + return true; + break; case str2int("player"): { if (props.size() > 2) diff --git a/src/Game/Level.h b/src/Game/Level.h index be8cf5d2..35ec9c00 100755 --- a/src/Game/Level.h +++ b/src/Game/Level.h @@ -10,6 +10,7 @@ #include "PlayerClass.h" #include "Quest.h" #include "Sol.h" +#include #include "TileSet.h" #include "UIObject.h" #include @@ -21,13 +22,14 @@ class Level : public UIObject private: LevelMap map; - sf::Vector2f mousePos; + sf::Vector2f mousePositionf; + bool hasMouseInside{ false }; View2 view; - sf::Vector2i pos; + MapCoord currentMapPosition; Anchor anchor{ Anchor::Top | Anchor::Left }; - int32_t levelX, levelY; + std::string name; std::vector> tiles; std::vector> tiles2; @@ -46,6 +48,7 @@ class Level : public UIObject Player* currentPlayer{ nullptr }; bool followCurrentPlayer{ true }; + bool pause{ false }; bool visible{ true }; std::vector quests; @@ -55,6 +58,8 @@ class Level : public UIObject return level.map[x][y]; } + void updateMouse(Game& game); + public: void Init(const LevelMap& map, Min& min, CelFrameCache& cel); @@ -63,17 +68,17 @@ class Level : public UIObject return Misc::Helper2D(*this, x, get); } - const sf::Vector2f& MousePosition() const { return mousePos; } + const sf::Vector2f& MousePositionf() const { return mousePositionf; } + bool HasMouseInside() const { return hasMouseInside; } LevelMap& Map() { return map; } const LevelMap& Map() const { return map; } - int32_t getLevelX() const { return levelX; } - int32_t getLevelY() const { return levelY; } - size_t Width() const { return map.Width(); } size_t Height() const { return map.Height(); } + void Name(const std::string& name_) { name = name_; } + void clearLevelObjects() { levelObjects.clear(); } void addPlayerClass(const std::string& key, const std::shared_ptr& obj) @@ -132,13 +137,22 @@ class Level : public UIObject void addLevelObject(const std::shared_ptr& obj) { levelObjects.push_back(obj); } - sf::Vector2f getDrawPosition(const sf::Vector2i& pos_) const; - - sf::Vector2i getMapClickPosition(Game& game); + MapCoord getMapCoordOverMouse() const + { + return map.getTile(mousePositionf); + } - void move(const sf::Vector2i& pos_) { pos = pos_; } + void move(const MapCoord& mapPos) + { + currentMapPosition = mapPos; + auto center = map.getCoords(mapPos); + view.setCenter(center.x, center.y); + } - void move(Game& game) { pos = getMapClickPosition(game); } + void move(Game& game) + { + view.setCenter(mousePositionf); + } void addPlayer(const std::shared_ptr& player_) { players.push_back(player_); } void setCurrentPlayer(Player* player_) @@ -146,7 +160,7 @@ class Level : public UIObject currentPlayer = player_; if (currentPlayer != nullptr) { - pos = currentPlayer->MapPosition(); + currentMapPosition = currentPlayer->MapPosition(); } } @@ -154,6 +168,9 @@ class Level : public UIObject void updateLevelObjectPositions(); + virtual bool Pause() const { return pause; } + virtual void Pause(bool pause_) { pause = pause_; } + virtual bool Visible() const { return visible; } virtual void Visible(bool visible_) { visible = visible_; } diff --git a/src/Game/LevelHelper.cpp b/src/Game/LevelHelper.cpp index abaca535..7487dd56 100755 --- a/src/Game/LevelHelper.cpp +++ b/src/Game/LevelHelper.cpp @@ -1,6 +1,6 @@ #include "LevelHelper.h" -namespace Render +namespace LevelHelper { void drawFrame(sf::Image& s, int start_x, int start_y, const CelFrame& frame) { @@ -32,7 +32,8 @@ namespace Render drawFrame(s, x + 32, y, f[r]); } - void drawMinPillar(sf::Image& s, int x, int y, const std::vector& pillar, CelFrameCache& tileset, bool top) + void drawMinPillar(sf::Image& s, int x, int y, + const std::vector& pillar, CelFrameCache& tileset, bool top) { // compensate for maps using 5-row min files if (pillar.size() == 10) @@ -64,12 +65,14 @@ namespace Render } } - void drawMinPillarTop(sf::Image& s, int x, int y, const std::vector& pillar, CelFrameCache& tileset) + void drawMinPillarTop(sf::Image& s, int x, int y, + const std::vector& pillar, CelFrameCache& tileset) { drawMinPillar(s, x, y, pillar, tileset, true); } - void drawMinPillarBase(sf::Image& s, int x, int y, const std::vector& pillar, CelFrameCache& tileset) + void drawMinPillarBase(sf::Image& s, int x, int y, + const std::vector& pillar, CelFrameCache& tileset) { drawMinPillar(s, x, y, pillar, tileset, false); } @@ -99,131 +102,4 @@ namespace Render return newMin; } - - void drawAt(const sf::Texture& tex, float x, float y, sf::RenderTarget& target, sf::RenderStates states) - { - sf::Sprite sprite(tex); - sprite.setPosition(x, y); - target.draw(sprite, states); - } - - void getMapScreenCoords(unsigned width, unsigned height, const Level& level, int32_t x1, int32_t y1, int32_t x2, int32_t y2, size_t dist, int32_t& levelX, int32_t& levelY) - { - int32_t xPx1 = -((y1*(-32)) + 32 * x1 + (int)level.Width() * 32) + width / 2; - int32_t yPx1 = -((y1 * 16) + (16 * x1) + 160) + height / 2; - - int32_t xPx2 = -((y2*(-32)) + 32 * x2 + (int)level.Width() * 32) + width / 2; - int32_t yPx2 = -((y2 * 16) + (16 * x2) + 160) + height / 2; - - levelX = xPx1 + ((((float)(xPx2 - xPx1)) / 100.0)*(float)dist); - levelY = yPx1 + ((((float)(yPx2 - yPx1)) / 100.0)*(float)dist); - } - - sf::Vector2i getTileFromScreenCoords(const Level& level, size_t levelX, size_t levelY, size_t x, size_t y) - { - // Position on the map in pixels - int32_t flatX = x - levelX; - int32_t flatY = y - levelY; - - // position on the map divided into 32x16 flat blocks - // every second one of these blocks is centred on an isometric - // block centre, the others are centred on isometric block corners - int32_t flatGridX = (flatX + 16) / 32; - int32_t flatGridY = (flatY + 8) / 16; - - // origin position (in flat grid coords) for the first line (isometric y = 0) - int32_t flatOriginPosX = level.Height(); - int32_t flatOriginPosY = 15; - - // when a flat grid box is clicked that does not centre on an isometric block, work out which - // isometric quadrant of that box was clicked, then adjust flatGridPos accordingly - if ((flatGridX % 2 == 1 && flatGridY % 2 == 1) || (flatGridX % 2 == 0 && flatGridY % 2 == 0)) - { - // origin of current flat grid box - int32_t baseX = 32 * flatGridX - 16; - int32_t baseY = 16 * flatGridY - 8; - - // position within grid box - int32_t blockPosX = flatX - baseX; - int32_t blockPosY = flatY - baseY; - - if (blockPosY * 2 > blockPosX) - { - if (blockPosX < (15 - blockPosY) * 2) - { - flatGridX--; - } - else - { - flatGridY++; - } - } - else - { - if (blockPosX < (15 - blockPosY) * 2) - { - flatGridY--; - } - else - { - flatGridX++; - } - } - } - - // flatOrigin adjusted for the current y value - int32_t lineOriginPosX = flatOriginPosX + ((flatGridX - flatOriginPosX) - (flatGridY - flatOriginPosY)) / 2; - int32_t lineOriginPosY = flatOriginPosY - (-(flatGridX - flatOriginPosX) - (flatGridY - flatOriginPosY)) / 2; - - int32_t isoPosX = flatGridX - lineOriginPosX; - int32_t isoPosY = flatGridY - lineOriginPosY; - - return sf::Vector2i(isoPosX, isoPosY); - } - - sf::Vector2i getClickedTile(size_t levelWidth, size_t levelHeight, const Level& level, size_t x, size_t y, int32_t x1, int32_t y1, int32_t x2, int32_t y2, size_t dist) - { - int32_t levelX, levelY; - getMapScreenCoords(levelWidth, levelHeight, level, x1, y1, x2, y2, dist, levelX, levelY); - - return getTileFromScreenCoords(level, levelX, levelY, x, y); - } - - void drawLevelHelper(const Level& level, const std::vector>& minSprites, int32_t x, int32_t y, int32_t levelX, int32_t levelY, sf::RenderTarget& target, sf::RenderStates states) - { - size_t index = level[x][y].minIndex; - auto coords = level.Map().getCoords(sf::Vector2i(x, y)); - coords.x += levelX; - coords.y += levelY; - auto size = target.getView().getSize(); - - if (coords.x >= -64 && coords.x <= size.x && coords.y >= -256 && coords.y <= size.y && index < minSprites.size()) - { - drawAt(*minSprites[index], coords.x, coords.y, target, states); - } - } - - void drawLevelHelper2(const Level& level, const std::vector>& minSprites, - int32_t x, int32_t y, int32_t levelX, int32_t levelY, - sf::RenderTarget& target, sf::RenderStates states) - { - size_t index = level[x][y].minIndex; - auto coords = level.Map().getCoords(sf::Vector2i(x, y)); - coords.x += levelX; - coords.y += levelY; - auto size = target.getView().getSize(); - - if (coords.x >= -64 && coords.x <= size.x && coords.y >= -256 && coords.y <= size.y) - { - auto drawObj = level.Map()[x][y].object; - if (drawObj != nullptr) - { - target.draw(*drawObj, states); - } - if (index < minSprites.size()) - { - drawAt(*minSprites[index], coords.x, coords.y, target, states); - } - } - } } diff --git a/src/Game/LevelHelper.h b/src/Game/LevelHelper.h index 97179cc5..130d6cd0 100755 --- a/src/Game/LevelHelper.h +++ b/src/Game/LevelHelper.h @@ -1,30 +1,9 @@ -#include -#include - -#include -#include "Min.h" #include "Level.h" -#include "CelCache.h" +#include "Min.h" +#include +#include -namespace Render +namespace LevelHelper { - void getMapScreenCoords(unsigned width, unsigned height, - const Level& level, int32_t x1, int32_t y1, int32_t x2, int32_t y2, - size_t dist, int32_t& levelX, int32_t& levelY); - - void drawLevelHelper(const Level& level, - const std::vector>& minSprites, - int32_t x, int32_t y, int32_t levelX, int32_t levelY, - sf::RenderTarget& target, sf::RenderStates states); - - void drawLevelHelper2(const Level& level, - const std::vector>& minSprites, - int32_t x, int32_t y, int32_t levelX, int32_t levelY, - sf::RenderTarget& target, sf::RenderStates states); - std::vector> loadTilesetSprite(CelFrameCache& cel, Min& min, bool top); - - sf::Vector2i getClickedTile(size_t levelWidth, size_t levelHeight, - const Level& level, size_t x, size_t y, int32_t x1, int32_t y1, - int32_t x2, int32_t y2, size_t dist); } diff --git a/src/Game/LevelMap.cpp b/src/Game/LevelMap.cpp index f69477f1..c4ab0232 100755 --- a/src/Game/LevelMap.cpp +++ b/src/Game/LevelMap.cpp @@ -3,7 +3,7 @@ int LevelMap::tileSize = 32; -LevelMap::LevelMap(size_t width_, size_t height_) : width(width_), height(height_) +LevelMap::LevelMap(size_t width_, size_t height_) : mapSize(width_, height_) { cells.resize(width_ * height_); size.x = width_ * tileSize; @@ -58,12 +58,12 @@ void LevelMap::setArea(size_t x, size_t y, const Dun& dun, const TileSet& til, c auto cellX = x + i; auto cellY = y + j; - if (cellX >= width || cellY >= height) + if (cellX >= mapSize.x || cellY >= mapSize.y) { continue; } - auto& cell = cells[cellX + (cellY * width)]; + auto& cell = cells[cellX + (cellY * mapSize.x)]; if (dunIndex == -1) { @@ -79,21 +79,78 @@ void LevelMap::setArea(size_t x, size_t y, const Dun& dun, const TileSet& til, c } } -sf::Vector2f LevelMap::getCoords(const sf::Vector2i& tile) const +sf::Vector2f LevelMap::getCoords(const MapCoord& tile) const { return sf::Vector2f( - (tile.y*(-32)) + 32 * tile.x + height * 32 - 32, + (tile.y*(-32)) + 32 * tile.x + mapSize.y * 32 - 32, (tile.y * 16) + 16 * tile.x); } -sf::Vector2i LevelMap::getTile(const sf::Vector2f& coords) const +MapCoord LevelMap::getTile(const sf::Vector2f& coords) const { - return sf::Vector2i(); + // Position on the map in pixels + int32_t flatX = (int32_t)coords.x; + int32_t flatY = (int32_t)coords.y; + + // position on the map divided into 32x16 flat blocks + // every second one of these blocks is centred on an isometric + // block centre, the others are centred on isometric block corners + int32_t flatGridX = (flatX + 16) / 32; + int32_t flatGridY = (flatY + 8) / 16; + + // origin position (in flat grid coords) for the first line (isometric y = 0) + int32_t flatOriginPosX = mapSize.y; + int32_t flatOriginPosY = 15; + + // when a flat grid box is clicked that does not centre on an isometric block, work out which + // isometric quadrant of that box was clicked, then adjust flatGridPos accordingly + if ((flatGridX % 2 == 1 && flatGridY % 2 == 1) || (flatGridX % 2 == 0 && flatGridY % 2 == 0)) + { + // origin of current flat grid box + int32_t baseX = 32 * flatGridX - 16; + int32_t baseY = 16 * flatGridY - 8; + + // position within grid box + int32_t blockPosX = flatX - baseX; + int32_t blockPosY = flatY - baseY; + + if (blockPosY * 2 > blockPosX) + { + if (blockPosX < (15 - blockPosY) * 2) + { + flatGridX--; + } + else + { + flatGridY++; + } + } + else + { + if (blockPosX < (15 - blockPosY) * 2) + { + flatGridY--; + } + else + { + flatGridX++; + } + } + } + + // flatOrigin adjusted for the current y value + int32_t lineOriginPosX = flatOriginPosX + ((flatGridX - flatOriginPosX) - (flatGridY - flatOriginPosY)) / 2; + int32_t lineOriginPosY = flatOriginPosY - (-(flatGridX - flatOriginPosX) - (flatGridY - flatOriginPosY)) / 2; + + int32_t isoPosX = flatGridX - lineOriginPosX; + int32_t isoPosY = flatGridY - lineOriginPosY; + + return MapCoord(isoPosX, isoPosY); } -std::queue LevelMap::getPath(const sf::Vector2i& a, const sf::Vector2i& b) +std::queue LevelMap::getPath(const MapCoord& a, const MapCoord& b) const { - std::queue path; + std::queue path; MapSearchNode start(this, a.x, a.y, PlayerDirection::All); MapSearchNode end(this, b.x, b.y, PlayerDirection::All); @@ -117,8 +174,7 @@ std::queue LevelMap::getPath(const sf::Vector2i& a, const sf::Vect { pathFinder.CancelSearch(); } - } - while (SearchState == PathFinder::SEARCH_STATE_SEARCHING); + } while (SearchState == PathFinder::SEARCH_STATE_SEARCHING); if (SearchState == PathFinder::SEARCH_STATE_SUCCEEDED) { @@ -130,7 +186,7 @@ std::queue LevelMap::getPath(const sf::Vector2i& a, const sf::Vect { break; } - path.emplace(sf::Vector2i(node->x, node->y)); + path.emplace(MapCoord(node->x, node->y)); node = pathFinder.GetSolutionNext(); }; pathFinder.FreeSolutionNodes(); diff --git a/src/Game/LevelMap.h b/src/Game/LevelMap.h index c38fcb9e..a8589f4e 100755 --- a/src/Game/LevelMap.h +++ b/src/Game/LevelMap.h @@ -38,9 +38,9 @@ class LevelMap static int tileSize; std::vector cells; - size_t width{ 0 }; - size_t height{ 0 }; - sf::Vector2i size; + + sf::Vector2u mapSize; + sf::Vector2u size; static const LevelCell& get(size_t x, size_t y, const LevelMap& map) { @@ -66,15 +66,17 @@ class LevelMap return Misc::Helper2D(*this, x, get); } - size_t Width() const { return width; } - size_t Height() const { return height; } + size_t Width() const { return mapSize.x; } + size_t Height() const { return mapSize.y; } + + const sf::Vector2u& MapSize() const { return mapSize; } - const sf::Vector2i& Size() const { return size; } + const sf::Vector2u& Size() const { return size; } static int TileSize() { return tileSize; } - sf::Vector2f getCoords(const sf::Vector2i& tile) const; - sf::Vector2i getTile(const sf::Vector2f& coords) const; + sf::Vector2f getCoords(const MapCoord& tile) const; + MapCoord getTile(const sf::Vector2f& coords) const; - std::queue getPath(const sf::Vector2i& a, const sf::Vector2i& b); + std::queue getPath(const MapCoord& a, const MapCoord& b) const; }; diff --git a/src/Game/LevelObject.h b/src/Game/LevelObject.h index 510990a9..726b7de4 100755 --- a/src/Game/LevelObject.h +++ b/src/Game/LevelObject.h @@ -2,8 +2,10 @@ #include "Actions/Action.h" #include "Anchor.h" +#include "MapCoord.h" #include -#include +#include +#include #include #include "Variable.h" @@ -20,8 +22,8 @@ class LevelObject : public sf::Drawable virtual void Size(const sf::Vector2f& size) = 0; // Map Position - virtual const sf::Vector2i& MapPosition() const = 0; - virtual void MapPosition(const sf::Vector2i& pos) = 0; + virtual const MapCoord& MapPosition() const = 0; + virtual void MapPosition(const MapCoord& pos) = 0; // Game virtual void executeAction(Game& game) const = 0; diff --git a/src/Game/MapCoord.h b/src/Game/MapCoord.h new file mode 100755 index 00000000..3e3a68c4 --- /dev/null +++ b/src/Game/MapCoord.h @@ -0,0 +1,16 @@ +#pragma once + +#include +#include + +template +struct MapCoordT +{ + T x; + T y; + + MapCoordT() : x(0), y(0) {} + MapCoordT(T x_, T y_) : x(x_), y(y_) {} +}; + +typedef MapCoordT MapCoord; diff --git a/src/Game/PathFinder.cpp b/src/Game/PathFinder.cpp index 5756fa37..6383c734 100755 --- a/src/Game/PathFinder.cpp +++ b/src/Game/PathFinder.cpp @@ -40,7 +40,7 @@ bool MapSearchNode::addSuccessor(AStarSearch* astarsearch, { if ((IsPassable(x, y) == true) && !((parent_x == x) && (parent_y == y))) { - auto direction = getPlayerDirection(sf::Vector2i(parent_x, parent_y), sf::Vector2i(x, y)); + auto direction = getPlayerDirection(MapCoord(parent_x, parent_y), MapCoord(x, y)); auto searchNode = MapSearchNode(map, x, y, direction); astarsearch->AddSuccessor(searchNode); return true; diff --git a/src/Game/Player.cpp b/src/Game/Player.cpp index 673f0ac2..7c3728b5 100755 --- a/src/Game/Player.cpp +++ b/src/Game/Player.cpp @@ -6,6 +6,13 @@ using Utils::str2int; +sf::Vector2f Player::getBasePosition() const +{ + return sf::Vector2f( + std::round(sprite.getPosition().x + (float)(sprite.getTextureRect().width / 2)), + std::round(sprite.getPosition().y + (float)(sprite.getTextureRect().height - LevelMap::TileSize() / 2))); +} + void Player::executeAction(Game& game) const { if (action != nullptr) @@ -14,7 +21,7 @@ void Player::executeAction(Game& game) const } } -void Player::MapPosition(Level& level, const sf::Vector2i& pos) +void Player::MapPosition(Level& level, const MapCoord& pos) { auto oldObj = level.Map()[mapPosition.x][mapPosition.y].object; level.Map()[mapPosition.x][mapPosition.y].object = nullptr; @@ -53,15 +60,16 @@ void Player::updateWalkPath(Game& game, Level& level, const sf::Vector2u& texSiz } auto drawPos = level.Map().getCoords(mapPosition); - drawPos.x += (float)(level.getLevelX() - ((int)texSize.x / 2)) + 32; - drawPos.y += (float)(level.getLevelY() + 224 - ((int)texSize.y - 32)); + drawPos.x += (float)(-((int)texSize.x / 2)) + LevelMap::TileSize(); + drawPos.y += (float)(224 - ((int)texSize.y - LevelMap::TileSize())); sprite.setPosition(drawPos); } void Player::update(Game& game, Level& level) { auto rect = sprite.getGlobalBounds(); - if (rect.contains(level.MousePosition())) + if (level.HasMouseInside() == true && + rect.contains(level.MousePositionf()) == true) { if (hovered == false) { diff --git a/src/Game/Player.h b/src/Game/Player.h index ad4a9f16..32ce21ef 100755 --- a/src/Game/Player.h +++ b/src/Game/Player.h @@ -14,9 +14,9 @@ class Player : public LevelObject { private: sf::Sprite sprite; - sf::Vector2i mapPosition; + MapCoord mapPosition; - std::queue walkPath; + std::queue walkPath; std::shared_ptr class_; @@ -109,6 +109,8 @@ class Player : public LevelObject calculateRange(); } + sf::Vector2f getBasePosition() const; + virtual const sf::Vector2f& Position() const { return sprite.getPosition(); } virtual void Position(const sf::Vector2f& position) { sprite.setPosition(position); } virtual sf::Vector2f Size() const @@ -117,10 +119,9 @@ class Player : public LevelObject } virtual void Size(const sf::Vector2f& size) {} - virtual const sf::Vector2i& MapPosition() const { return mapPosition; } - - virtual void MapPosition(const sf::Vector2i& pos) { mapPosition = pos; } - virtual void MapPosition(Level& level, const sf::Vector2i& pos); + virtual const MapCoord& MapPosition() const { return mapPosition; } + virtual void MapPosition(const MapCoord& pos) { mapPosition = pos; } + void MapPosition(Level& level, const MapCoord& pos); virtual void executeAction(Game& game) const; virtual bool Passable() const { return true; } @@ -135,7 +136,7 @@ class Player : public LevelObject virtual bool getProperty(const std::string& prop, Variable& var) const; virtual void setProperty(const std::string& prop, const Variable& val); - void setWalkPath(const std::queue walkPath_) { walkPath = walkPath_; } + void setWalkPath(const std::queue walkPath_) { walkPath = walkPath_; } void setDirection(PlayerDirection direction_) { diff --git a/src/Game/PlayerProperties.cpp b/src/Game/PlayerProperties.cpp index 2b3af8f9..0d4281f8 100755 --- a/src/Game/PlayerProperties.cpp +++ b/src/Game/PlayerProperties.cpp @@ -1,6 +1,6 @@ #include "PlayerProperties.h" -PlayerDirection getPlayerDirection(const sf::Vector2i& currPos, const sf::Vector2i& newPos) +PlayerDirection getPlayerDirection(const MapCoord& currPos, const MapCoord& newPos) { if (newPos.x == currPos.x) { diff --git a/src/Game/PlayerProperties.h b/src/Game/PlayerProperties.h index acb872ae..001c98a4 100755 --- a/src/Game/PlayerProperties.h +++ b/src/Game/PlayerProperties.h @@ -1,7 +1,7 @@ #pragma once #include -#include +#include "MapCoord.h" enum class PlayerDirection : size_t { @@ -40,4 +40,4 @@ enum class PlayerStatus : size_t Size }; -PlayerDirection getPlayerDirection(const sf::Vector2i& currPos, const sf::Vector2i& newPos); +PlayerDirection getPlayerDirection(const MapCoord& currPos, const MapCoord& newPos); diff --git a/src/Parser/Game/ParseLevel.cpp b/src/Parser/Game/ParseLevel.cpp index 5246161f..f191733a 100755 --- a/src/Parser/Game/ParseLevel.cpp +++ b/src/Parser/Game/ParseLevel.cpp @@ -4,7 +4,7 @@ #include "Game/LevelMap.h" #include "GameUtils.h" #include "Parser/ParseAction.h" -#include "Parser/ParseUtils.h" +#include "Parser/Utils/ParseUtils.h" #include "Utils.h" namespace Parser @@ -31,7 +31,15 @@ namespace Parser auto palPath = elem["palette"].GetString(); TileSet til(tilPath); + if (til.size() == 0) + { + return; + } Sol sol(solPath); + if (sol.size() == 0) + { + return; + } auto mapSize = getVector2uKey(elem, "mapSize"); LevelMap map(mapSize.x, mapSize.y); @@ -51,6 +59,10 @@ namespace Parser // l4.min and town.min contain 16 blocks, all others 10. Min min(minPath, getIntKey(elem, "minBlocks", 10)); + if (min.size() == 0) + { + return; + } auto pal = game.Resources().getPalette(palPath); if (pal == nullptr) @@ -91,6 +103,10 @@ namespace Parser bool existingLevel = (level != nullptr); if (level == nullptr) { + if (isValidId(id) == false) + { + return; + } auto levelPtr = std::make_shared(); game.Resources().addDrawable(id, levelPtr); level = levelPtr.get(); @@ -107,6 +123,8 @@ namespace Parser parseLevelMap(game, elem, *level); } + level->Name(getStringKey(elem, "name")); + if (elem.HasMember("followCurrentPlayer") == true) { level->FollowCurrentPlayer(getBoolVal(elem["followCurrentPlayer"])); diff --git a/src/Parser/Game/ParseLevelObject.cpp b/src/Parser/Game/ParseLevelObject.cpp index be8d027e..e0733693 100755 --- a/src/Parser/Game/ParseLevelObject.cpp +++ b/src/Parser/Game/ParseLevelObject.cpp @@ -1,7 +1,7 @@ #include "ParseLevelObject.h" -#include "Parser/ParseAction.h" -#include "Parser/ParseUtils.h" #include "Game/ImageLevelObject.h" +#include "Parser/ParseAction.h" +#include "Parser/Utils/ParseUtils.h" namespace Parser { @@ -14,6 +14,11 @@ namespace Parser { return; } + std::string id(elem["id"].GetString()); + if (isValidId(id) == false) + { + return; + } auto level = game.Resources().getLevel(getStringKey(elem, "idLevel")); if (level == nullptr) @@ -21,8 +26,8 @@ namespace Parser return; } - auto mapPos = getVector2iKey(elem, "mapPosition"); - auto mapSize = level->Map().Size(); + auto mapPos = getVector2uKey(elem, "mapPosition"); + auto mapSize = level->Map().MapSize(); if (mapPos.x >= mapSize.x || mapPos.y >= mapSize.y) { return; @@ -51,7 +56,7 @@ namespace Parser levelObj->setTextureRect(getIntRectKey(elem, "textureRect", rect)); } - levelObj->Id(elem["id"].GetString()); + levelObj->Id(id); levelObj->Name(getStringKey(elem, "name")); if (elem.HasMember("action") == true) diff --git a/src/Parser/Game/ParsePlayer.cpp b/src/Parser/Game/ParsePlayer.cpp index 8dc95395..652beddc 100755 --- a/src/Parser/Game/ParsePlayer.cpp +++ b/src/Parser/Game/ParsePlayer.cpp @@ -1,7 +1,7 @@ #include "ParsePlayer.h" -#include "Parser/ParseAction.h" -#include "Parser/ParseUtils.h" #include "Game/Player.h" +#include "Parser/ParseAction.h" +#include "Parser/Utils/ParseUtils.h" namespace Parser { @@ -14,6 +14,11 @@ namespace Parser { return; } + std::string id(elem["id"].GetString()); + if (isValidId(id) == false) + { + return; + } auto level = game.Resources().getLevel(getStringKey(elem, "idLevel")); if (level == nullptr) @@ -21,8 +26,8 @@ namespace Parser return; } - auto mapPos = getVector2iKey(elem, "mapPosition"); - auto mapSize = level->Map().Size(); + auto mapPos = getVector2uKey(elem, "mapPosition"); + auto mapSize = level->Map().MapSize(); if (mapPos.x >= mapSize.x || mapPos.y >= mapSize.y) { return; @@ -49,7 +54,7 @@ namespace Parser player->setStatus(getPlayerStatusKey(elem, "status")); player->setPalette(getUIntKey(elem, "palette")); - player->Id(elem["id"].GetString()); + player->Id(id); player->Name(getStringKey(elem, "name")); player->Level_(getIntKey(elem, "level")); player->Experience(getIntKey(elem, "experience")); diff --git a/src/Parser/Game/ParsePlayerClass.cpp b/src/Parser/Game/ParsePlayerClass.cpp index b9ecada0..a7450cd4 100755 --- a/src/Parser/Game/ParsePlayerClass.cpp +++ b/src/Parser/Game/ParsePlayerClass.cpp @@ -1,7 +1,7 @@ #include "ParsePlayerClass.h" -#include "Parser/ParseAction.h" -#include "Parser/ParseUtils.h" #include "Game/PlayerClass.h" +#include "Parser/ParseAction.h" +#include "Parser/Utils/ParseUtils.h" namespace Parser { @@ -31,6 +31,11 @@ namespace Parser { return; } + std::string id(elem["id"].GetString()); + if (isValidId(id) == false) + { + return; + } auto level = game.Resources().getLevel(getStringKey(elem, "idLevel")); if (level == nullptr) @@ -80,6 +85,6 @@ namespace Parser playerClass->Type(getStringKey(elem, "type")); playerClass->Description(getStringKey(elem, "description")); - level->addPlayerClass(elem["id"].GetString(), playerClass); + level->addPlayerClass(id, playerClass); } } diff --git a/src/Parser/Game/ParseQuest.cpp b/src/Parser/Game/ParseQuest.cpp index e2475296..1470f8e5 100755 --- a/src/Parser/Game/ParseQuest.cpp +++ b/src/Parser/Game/ParseQuest.cpp @@ -1,5 +1,5 @@ -#include "Parser/Game/ParseQuest.h" -#include "Parser/ParseUtils.h" +#include "ParseQuest.h" +#include "Parser/Utils/ParseUtils.h" namespace Parser { @@ -20,7 +20,8 @@ namespace Parser } auto quest = parseQuestObj(game, elem); - if (quest.Id().empty() == true) + if (quest.Id().empty() == true || + isValidId(quest.Id()) == false) { return; } diff --git a/src/Parser/ParseAction.cpp b/src/Parser/ParseAction.cpp index a7bf0374..312844d8 100755 --- a/src/Parser/ParseAction.cpp +++ b/src/Parser/ParseAction.cpp @@ -30,7 +30,7 @@ #include "Json/JsonUtils.h" #include "ParseCondition.h" #include "Parser/Game/ParseQuest.h" -#include "ParseUtils.h" +#include "Utils/ParseUtils.h" namespace Parser { @@ -86,10 +86,15 @@ namespace Parser } case str2int("audio.play"): { - return std::make_shared( + auto action = std::make_shared( getStringKey(elem, "id"), - getBoolKey(elem, "clear"), - getBoolKey(elem, "loop")); + getBoolKey(elem, "clear")); + + if (elem.HasMember("loop") == true) + { + action->setLoop(getBoolVal(elem["loop"])); + } + return action; } case str2int("audio.resumeAll"): { @@ -148,7 +153,7 @@ namespace Parser { return std::make_shared( getStringKey(elem, "id"), - getColorKey(elem, "color", sf::Color::White)); + getColorVar(game, elem, "color", sf::Color::White)); } case str2int("button.setFont"): { @@ -444,10 +449,12 @@ namespace Parser } case str2int("game.fadeIn"): { - auto action = std::make_shared( - getColorKey(elem, "color"), - getUIntKey(elem, "refresh", 15), - getUIntKey(elem, "fade", 25)); + auto action = std::make_shared( + getColorVar(game, elem, "color"), + false, + getBoolKey(elem, "enableInput", true), + getUIntKey(elem, "fade", 25), + sf::milliseconds(getUIntKey(elem, "refresh", 15))); if (elem.HasMember("action")) { @@ -457,10 +464,12 @@ namespace Parser } case str2int("game.fadeOut"): { - auto action = std::make_shared( - getColorKey(elem, "color", sf::Color::Transparent), - getUIntKey(elem, "refresh", 15), - getUIntKey(elem, "fade", 25)); + auto action = std::make_shared( + getColorVar(game, elem, "color", sf::Color::Transparent), + true, + getBoolKey(elem, "enableInput"), + getUIntKey(elem, "fade", 25), + sf::milliseconds(getUIntKey(elem, "refresh", 15))); if (elem.HasMember("action")) { @@ -516,7 +525,6 @@ namespace Parser { return getIfCondition(str2int("!="), game, elem); } - case str2int("if.resourceExists"): { return getIfCondition(str2int("resourceExists"), game, elem); @@ -576,7 +584,7 @@ namespace Parser { return std::make_shared( getStringKey(elem, "id"), - getVector2iKey(elem, "position")); + getVector2uKey(elem, "position")); } case str2int("level.moveToClick"): { @@ -588,6 +596,12 @@ namespace Parser getStringKey(elem, "id"), getStringKey(elem, "idPlayer")); } + case str2int("level.pause"): + { + return std::make_shared( + getStringKey(elem, "id"), + getBoolKey(elem, "pause", true)); + } case str2int("load"): { return std::make_shared(getStringVectorKey(elem, "file")); @@ -646,7 +660,7 @@ namespace Parser return std::make_shared( getStringKey(elem, "id"), getUIntKey(elem, "index"), - getColorKey(elem, "color", sf::Color::White)); + getColorVar(game, elem, "color", sf::Color::White)); } case str2int("menu.setFont"): { @@ -675,7 +689,7 @@ namespace Parser return std::make_shared( getStringKey(elem, "id"), getStringKey(elem, "idLevel"), - getVector2iKey(elem, "position"), + getVector2uKey(elem, "position"), getBoolKey(elem, "resetDirection")); } case str2int("player.moveToClick"): diff --git a/src/Parser/ParseAnimation.cpp b/src/Parser/ParseAnimation.cpp index e2634ae7..7c76ae0a 100755 --- a/src/Parser/ParseAnimation.cpp +++ b/src/Parser/ParseAnimation.cpp @@ -1,7 +1,7 @@ #include "ParseAnimation.h" #include "GameUtils.h" #include "ParseTexture.h" -#include "ParseUtils.h" +#include "Utils/ParseUtils.h" namespace Parser { @@ -58,24 +58,27 @@ namespace Parser animation->Position(pos); animation->Visible(getBoolKey(elem, "visible", true)); animation->setFrameTime(sf::milliseconds(getUIntKey(elem, "refresh", 50))); - animation->setColor(getColorKey(elem, "color", sf::Color::White)); + animation->setColor(getColorVar(game, elem, "color", sf::Color::White)); return animation; } void parseAnimation(Game& game, const Value& elem) { - if (elem.HasMember("id") == false) + if (isValidString(elem, "id") == false) + { + return; + } + std::string id(elem["id"].GetString()); + if (isValidId(id) == false) { return; } - auto animation = parseAnimationObj(game, elem); if (animation == nullptr) { return; } - - game.Resources().addDrawable(elem["id"].GetString(), animation); + game.Resources().addDrawable(id, animation); } } diff --git a/src/Parser/ParseAudio.cpp b/src/Parser/ParseAudio.cpp index 76375ab9..f1d10d69 100755 --- a/src/Parser/ParseAudio.cpp +++ b/src/Parser/ParseAudio.cpp @@ -1,18 +1,61 @@ #include "ParseAudio.h" -#include "ParseUtils.h" +#include "Utils/ParseUtils.h" namespace Parser { using namespace rapidjson; + bool parseAudioFromId(Game& game, const Value& elem) + { + if (isValidString(elem, "fromId") == true) + { + if (isValidString(elem, "id") == true) + { + std::string fromId(elem["fromId"].GetString()); + std::string id(elem["id"].GetString()); + if (fromId != id && isValidId(id) == true) + { + auto obj = game.Resources().getSong(fromId); + if (obj != nullptr) + { + game.Resources().addSong(id, obj); + } + } + } + return true; + } + return false; + } + void parseAudio(Game& game, const Value& elem) { - if (isValidString(elem, "id") == false || isValidString(elem, "file") == false) + if (parseAudioFromId(game, elem) == true) + { + return; + } + + if (isValidString(elem, "file") == false) + { + return; + } + + std::string file(elem["file"].GetString()); + std::string id; + + if (isValidString(elem, "id") == true) + { + id = elem["id"].GetString(); + } + else if (getIdFromFile(file, id) == false) + { + return; + } + if (isValidId(id) == false) { return; } - auto music = std::make_shared(elem["file"].GetString()); + auto music = std::make_shared(file.c_str()); if (music->load() == false) { return; @@ -33,6 +76,6 @@ namespace Parser music->play(); } - game.Resources().addSong(elem["id"].GetString(), music); + game.Resources().addSong(id, music); } } diff --git a/src/Parser/ParseBitmapFont.cpp b/src/Parser/ParseBitmapFont.cpp index 2c74c1fa..7731c5d0 100755 --- a/src/Parser/ParseBitmapFont.cpp +++ b/src/Parser/ParseBitmapFont.cpp @@ -2,7 +2,7 @@ #include "BitmapFont.h" #include "FileUtils.h" #include "ParseTexture.h" -#include "ParseUtils.h" +#include "Utils/ParseUtils.h" namespace Parser { @@ -14,6 +14,11 @@ namespace Parser { return; } + std::string id(elem["id"].GetString()); + if (isValidId(id) == false) + { + return; + } sf::Image img; std::shared_ptr texture; @@ -65,6 +70,6 @@ namespace Parser font = std::make_shared(texture, rows, cols, padding, isVertical, img); } - game.Resources().addBitmapFont(elem["id"].GetString(), font); + game.Resources().addBitmapFont(id, font); } } diff --git a/src/Parser/ParseButton.cpp b/src/Parser/ParseButton.cpp index 418a1854..f7e5790f 100755 --- a/src/Parser/ParseButton.cpp +++ b/src/Parser/ParseButton.cpp @@ -4,9 +4,9 @@ #include "GameUtils.h" #include "ParseAction.h" #include "ParseText.h" -#include "ParseUtils.h" #include "StringButton.h" #include "StringText.h" +#include "Utils/ParseUtils.h" namespace Parser { @@ -57,6 +57,11 @@ namespace Parser { return; } + std::string id(elem["id"].GetString()); + if (isValidId(id) == false) + { + return; + } std::shared_ptr