From babcc4f4bfe43b5daab8b493e28ddcd0032da5e7 Mon Sep 17 00:00:00 2001 From: KevinW1998 Date: Fri, 30 Oct 2015 08:17:53 +0100 Subject: [PATCH] Update custom APIs --- .../Readme_For_raocoin2.lua/example.lvl | 5393 +++++++++++++++++ .../example/block-169.gif | Bin 0 -> 596 bytes .../Readme_For_raocoin2.lua/example/coins.png | Bin 0 -> 2966 bytes .../example/lunadll.lua | 37 + LuaScriptsLibExt/hudoftime.lua | 424 ++ LuaScriptsLibExt/hudoftime/bomb.png | Bin 0 -> 3148 bytes LuaScriptsLibExt/hudoftime/btn_S.png | Bin 0 -> 3228 bytes LuaScriptsLibExt/hudoftime/btn_X.png | Bin 0 -> 3228 bytes LuaScriptsLibExt/hudoftime/heart_empty.png | Bin 0 -> 2961 bytes LuaScriptsLibExt/hudoftime/heart_full.png | Bin 0 -> 2955 bytes LuaScriptsLibExt/hudoftime/lives.png | Bin 0 -> 3039 bytes LuaScriptsLibExt/hudoftime/magic_bar.png | Bin 0 -> 2823 bytes LuaScriptsLibExt/hudoftime/magic_bg.png | Bin 0 -> 2907 bytes LuaScriptsLibExt/hudoftime/navi.png | Bin 0 -> 3289 bytes LuaScriptsLibExt/hudoftime/rupee.png | Bin 0 -> 2939 bytes LuaScriptsLibExt/hudoftime/small_key.png | Bin 0 -> 3048 bytes LuaScriptsLibExt/hudoftime/stars.png | Bin 0 -> 2966 bytes LuaScriptsLibExt/hudoftime/sword.png | Bin 0 -> 3299 bytes LuaScriptsLibExt/leveltimer.lua | 221 +- LuaScriptsLibExt/multipoints.lua | 55 +- LuaScriptsLibExt/raocoin/arrow.png | Bin 0 -> 2908 bytes LuaScriptsLibExt/raocoin/buy.ogg | Bin 0 -> 28722 bytes LuaScriptsLibExt/raocoin/dragoncoin.png | Bin 0 -> 3000 bytes LuaScriptsLibExt/raocoin/fail.ogg | Bin 0 -> 12574 bytes LuaScriptsLibExt/raocoin/token_p.png | Bin 0 -> 3154 bytes LuaScriptsLibExt/raocoin/token_t.png | Bin 0 -> 3160 bytes LuaScriptsLibExt/raocoin2.lua | 524 ++ LuaScriptsLibExt/rng.lua | 151 + 28 files changed, 6673 insertions(+), 132 deletions(-) create mode 100644 LuaScriptsLibExt/Readme_For_raocoin2.lua/example.lvl create mode 100644 LuaScriptsLibExt/Readme_For_raocoin2.lua/example/block-169.gif create mode 100644 LuaScriptsLibExt/Readme_For_raocoin2.lua/example/coins.png create mode 100644 LuaScriptsLibExt/Readme_For_raocoin2.lua/example/lunadll.lua create mode 100644 LuaScriptsLibExt/hudoftime.lua create mode 100644 LuaScriptsLibExt/hudoftime/bomb.png create mode 100644 LuaScriptsLibExt/hudoftime/btn_S.png create mode 100644 LuaScriptsLibExt/hudoftime/btn_X.png create mode 100644 LuaScriptsLibExt/hudoftime/heart_empty.png create mode 100644 LuaScriptsLibExt/hudoftime/heart_full.png create mode 100644 LuaScriptsLibExt/hudoftime/lives.png create mode 100644 LuaScriptsLibExt/hudoftime/magic_bar.png create mode 100644 LuaScriptsLibExt/hudoftime/magic_bg.png create mode 100644 LuaScriptsLibExt/hudoftime/navi.png create mode 100644 LuaScriptsLibExt/hudoftime/rupee.png create mode 100644 LuaScriptsLibExt/hudoftime/small_key.png create mode 100644 LuaScriptsLibExt/hudoftime/stars.png create mode 100644 LuaScriptsLibExt/hudoftime/sword.png create mode 100644 LuaScriptsLibExt/raocoin/arrow.png create mode 100644 LuaScriptsLibExt/raocoin/buy.ogg create mode 100644 LuaScriptsLibExt/raocoin/dragoncoin.png create mode 100644 LuaScriptsLibExt/raocoin/fail.ogg create mode 100644 LuaScriptsLibExt/raocoin/token_p.png create mode 100644 LuaScriptsLibExt/raocoin/token_t.png create mode 100644 LuaScriptsLibExt/raocoin2.lua create mode 100644 LuaScriptsLibExt/rng.lua diff --git a/LuaScriptsLibExt/Readme_For_raocoin2.lua/example.lvl b/LuaScriptsLibExt/Readme_For_raocoin2.lua/example.lvl new file mode 100644 index 000000000..f96ab4c21 --- /dev/null +++ b/LuaScriptsLibExt/Readme_For_raocoin2.lua/example.lvl @@ -0,0 +1,5393 @@ +64 +0 +"Shop Test 2" +-200000 +-200600 +-200000 +-198144 +0 +16291944 +#FALSE# +#FALSE# +34 +#FALSE# +#FALSE# +"" +0 +0 +0 +0 +0 +16291944 +#FALSE# +#FALSE# +0 +#FALSE# +#FALSE# +"" +0 +0 +0 +0 +0 +16291944 +#FALSE# +#FALSE# +0 +#FALSE# +#FALSE# +"" +0 +0 +0 +0 +0 +16291944 +#FALSE# +#FALSE# +0 +#FALSE# +#FALSE# +"" +0 +0 +0 +0 +0 +16291944 +#FALSE# +#FALSE# +0 +#FALSE# +#FALSE# +"" +0 +0 +0 +0 +0 +16291944 +#FALSE# +#FALSE# +0 +#FALSE# +#FALSE# +"" +0 +0 +0 +0 +0 +16291944 +#FALSE# +#FALSE# +0 +#FALSE# +#FALSE# +"" +0 +0 +0 +0 +0 +16291944 +#FALSE# +#FALSE# +0 +#FALSE# +#FALSE# +"" +0 +0 +0 +0 +0 +16291944 +#FALSE# +#FALSE# +0 +#FALSE# +#FALSE# +"" +0 +0 +0 +0 +0 +16291944 +#FALSE# +#FALSE# +0 +#FALSE# +#FALSE# +"" +0 +0 +0 +0 +0 +16291944 +#FALSE# +#FALSE# +0 +#FALSE# +#FALSE# +"" +0 +0 +0 +0 +0 +16291944 +#FALSE# +#FALSE# +0 +#FALSE# +#FALSE# +"" +0 +0 +0 +0 +0 +16291944 +#FALSE# +#FALSE# +0 +#FALSE# +#FALSE# +"" +0 +0 +0 +0 +0 +16291944 +#FALSE# +#FALSE# +0 +#FALSE# +#FALSE# +"" +0 +0 +0 +0 +0 +16291944 +#FALSE# +#FALSE# +0 +#FALSE# +#FALSE# +"" +0 +0 +0 +0 +0 +16291944 +#FALSE# +#FALSE# +0 +#FALSE# +#FALSE# +"" +0 +0 +0 +0 +0 +16291944 +#FALSE# +#FALSE# +0 +#FALSE# +#FALSE# +"" +0 +0 +0 +0 +0 +16291944 +#FALSE# +#FALSE# +0 +#FALSE# +#FALSE# +"" +0 +0 +0 +0 +0 +16291944 +#FALSE# +#FALSE# +0 +#FALSE# +#FALSE# +"" +0 +0 +0 +0 +0 +16291944 +#FALSE# +#FALSE# +0 +#FALSE# +#FALSE# +"" +0 +0 +0 +0 +0 +16291944 +#FALSE# +#FALSE# +0 +#FALSE# +#FALSE# +"" +-199980 +-200182 +24 +54 +0 +0 +0 +0 +-200000 +-200288 +32 +32 +169 +0 +#FALSE# +#FALSE# +"Default" +"" +"UndoBuys" +"" +-200000 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-200000 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-200000 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-200000 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199968 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199968 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199968 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199968 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199936 +-200128 +32 +32 +82 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199936 +-200096 +32 +32 +84 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199936 +-200064 +32 +32 +84 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199936 +-200032 +32 +32 +84 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199904 +-200128 +32 +32 +294 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199904 +-200096 +32 +32 +295 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199904 +-200064 +32 +32 +296 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199904 +-200032 +32 +32 +295 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199872 +-200128 +32 +32 +80 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199872 +-200096 +32 +32 +83 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199872 +-200064 +32 +32 +83 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199872 +-200032 +32 +32 +83 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199840 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199840 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199840 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199840 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199808 +-200128 +32 +32 +82 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199808 +-200096 +32 +32 +84 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199808 +-200064 +32 +32 +84 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199808 +-200032 +32 +32 +84 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199776 +-200128 +32 +32 +294 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199776 +-200096 +32 +32 +295 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199776 +-200064 +32 +32 +296 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199776 +-200032 +32 +32 +295 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199744 +-200128 +32 +32 +80 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199744 +-200096 +32 +32 +83 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199744 +-200064 +32 +32 +83 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199744 +-200032 +32 +32 +83 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199712 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199712 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199712 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199712 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199680 +-200128 +32 +32 +82 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199680 +-200096 +32 +32 +84 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199680 +-200064 +32 +32 +84 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199680 +-200032 +32 +32 +84 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199648 +-200128 +32 +32 +294 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199648 +-200096 +32 +32 +295 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199648 +-200064 +32 +32 +296 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199648 +-200032 +32 +32 +295 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199616 +-200128 +32 +32 +80 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199616 +-200096 +32 +32 +83 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199616 +-200064 +32 +32 +83 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199616 +-200032 +32 +32 +83 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199584 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199584 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199584 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199584 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199552 +-200128 +32 +32 +82 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199552 +-200096 +32 +32 +84 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199552 +-200064 +32 +32 +84 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199552 +-200032 +32 +32 +84 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199520 +-200128 +32 +32 +294 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199520 +-200096 +32 +32 +295 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199520 +-200064 +32 +32 +296 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199520 +-200032 +32 +32 +295 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199488 +-200128 +32 +32 +80 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199488 +-200096 +32 +32 +83 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199488 +-200064 +32 +32 +83 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199488 +-200032 +32 +32 +83 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199456 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199456 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199456 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199456 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199424 +-200128 +32 +32 +82 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199424 +-200096 +32 +32 +84 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199424 +-200064 +32 +32 +84 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199424 +-200032 +32 +32 +84 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199392 +-200128 +32 +32 +294 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199392 +-200096 +32 +32 +295 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199392 +-200064 +32 +32 +296 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199392 +-200032 +32 +32 +295 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199360 +-200128 +32 +32 +80 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199360 +-200096 +32 +32 +83 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199360 +-200064 +32 +32 +83 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199360 +-200032 +32 +32 +83 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199328 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199328 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199328 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199328 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199296 +-200128 +32 +32 +82 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199296 +-200096 +32 +32 +84 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199296 +-200064 +32 +32 +84 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199296 +-200032 +32 +32 +84 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199264 +-200128 +32 +32 +294 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199264 +-200096 +32 +32 +295 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199264 +-200064 +32 +32 +296 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199264 +-200032 +32 +32 +295 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199232 +-200128 +32 +32 +80 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199232 +-200096 +32 +32 +83 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199232 +-200064 +32 +32 +83 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199232 +-200032 +32 +32 +83 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199200 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199200 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199200 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199200 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199168 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199168 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199168 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199168 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199136 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199136 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199136 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199136 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199104 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199104 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199104 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199104 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199072 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199072 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199072 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199072 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199040 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199040 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199040 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199040 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199008 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199008 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199008 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-199008 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198976 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198976 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198976 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198976 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198944 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198944 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198944 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198944 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198912 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198912 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198912 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198912 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198880 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198880 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198880 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198880 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198848 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198848 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198848 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198848 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198816 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198816 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198816 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198816 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198784 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198784 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198784 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198784 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198752 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198752 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198752 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198752 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198720 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198720 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198720 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198720 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198688 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198688 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198688 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198688 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198656 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198656 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198656 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198656 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198624 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198624 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198624 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198624 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198592 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198592 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198592 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198592 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198560 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198560 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198560 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198560 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198528 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198528 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198528 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198528 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198496 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198496 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198496 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198496 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198464 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198464 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198464 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198464 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198432 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198432 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198432 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198432 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198400 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198400 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198400 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198400 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198368 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198368 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198368 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198368 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198336 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198336 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198336 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198336 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198304 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198304 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198304 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198304 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198272 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198272 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198272 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198272 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198240 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198240 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198240 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198240 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198208 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198208 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198208 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198208 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198176 +-200128 +32 +32 +81 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198176 +-200096 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198176 +-200064 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +-198176 +-200032 +32 +32 +87 +0 +#FALSE# +#FALSE# +"Default" +"" +"" +"" +"next" +"next" +-199264 +-200160 +-1 +170 +#TRUE# +1 +1 +20 +"" +#FALSE# +#TRUE# +#FALSE# +"Shop_Hammer_Generator" +"" +"" +"" +"" +"" +-199904 +-200160 +-1 +9 +#TRUE# +1 +1 +20 +"" +#FALSE# +#TRUE# +#FALSE# +"Shop_Mushroom_Generator" +"" +"" +"" +"" +"" +-199392 +-200160 +-1 +169 +#TRUE# +1 +1 +20 +"" +#FALSE# +#FALSE# +#FALSE# +"Shop_Tanuki_Generator" +"" +"" +"" +"" +"" +-199520 +-200160 +-1 +34 +#TRUE# +1 +1 +20 +"" +#FALSE# +#TRUE# +#FALSE# +"Shop_Leaf_Generator" +"" +"" +"" +"" +"" +-199776 +-200160 +-1 +183 +#TRUE# +1 +1 +20 +"" +#FALSE# +#TRUE# +#FALSE# +"Shop_Fire_Generator" +"" +"" +"" +"" +"" +-199648 +-200160 +-1 +277 +#TRUE# +1 +1 +20 +"" +#FALSE# +#TRUE# +#FALSE# +"Shop_Ice_Generator" +"" +"" +"" +"" +"" +-198272 +-200178 +-1 +274 +#TRUE# +1 +1 +1 +"" +#FALSE# +#FALSE# +#FALSE# +"Default" +"" +"" +"" +"" +"" +-198240 +-200178 +-1 +274 +#TRUE# +1 +1 +1 +"" +#FALSE# +#FALSE# +#FALSE# +"Default" +"" +"" +"" +"" +"" +-198304 +-200178 +-1 +274 +#TRUE# +1 +1 +1 +"" +#FALSE# +#FALSE# +#FALSE# +"Default" +"" +"" +"" +"" +"" +-198208 +-200178 +-1 +274 +#TRUE# +1 +1 +1 +"" +#FALSE# +#FALSE# +#FALSE# +"Default" +"" +"" +"" +"" +"" +"next" +"next" +"next" +"Default" +#FALSE# +"Destroyed Blocks" +#TRUE# +"Spawned NPCs" +#FALSE# +"Shop_Mushroom_Generator" +#TRUE# +"Shop_Fire_Generator" +#TRUE# +"Shop_Ice_Generator" +#TRUE# +"Shop_Leaf_Generator" +#TRUE# +"Shop_Tanuki_Generator" +#TRUE# +"Shop_Hammer_Generator" +#TRUE# +"next" +"Level - Start" +"" +0 +0 +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +"" +0 +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +"" +0 +0 +0 +0 +0 +"P Switch - Start" +"" +0 +0 +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +"" +0 +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +"" +0 +0 +0 +0 +0 +"P Switch - End" +"" +0 +0 +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +"" +0 +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +"" +0 +0 +0 +0 +0 +"BuyMushroom" +"" +0 +0 +"" +"Shop_Mushroom_Generator" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +"" +0 +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +"" +0 +0 +0 +0 +0 +"BuyFire" +"" +0 +0 +"" +"Shop_Fire_Generator" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +"" +0 +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +"" +0 +0 +0 +0 +0 +"UndoBuys" +"" +0 +0 +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +"" +0 +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +"" +0 +0 +0 +0 +0 +"BuyIce" +"" +0 +0 +"" +"Shop_Ice_Generator" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +"" +0 +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +"" +0 +0 +0 +0 +0 +"BuyLeaf" +"" +0 +0 +"" +"Shop_Leaf_Generator" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +"" +0 +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +"" +0 +0 +0 +0 +0 +"BuyTanuki" +"" +0 +0 +"" +"Shop_Tanuki_Generator" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +"" +0 +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +"" +0 +0 +0 +0 +0 +"BuyHammer" +"" +0 +0 +"" +"Shop_Hammer_Generator" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +-1 +-1 +-1 +0 +0 +0 +"" +0 +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +#FALSE# +"" +0 +0 +0 +0 +0 diff --git a/LuaScriptsLibExt/Readme_For_raocoin2.lua/example/block-169.gif b/LuaScriptsLibExt/Readme_For_raocoin2.lua/example/block-169.gif new file mode 100644 index 0000000000000000000000000000000000000000..4560e3cb5628c2957389f89ece203a121a7612e9 GIT binary patch literal 596 zcmV-a0;~N;Nk%w1VITm20HOc@UU;HOUwt=AUH||800030|Nj6000000A^8LW000F5 zEC2ui03ZN>000C3NV?qqFv_Vy066QNtq_pKjhhEHVrQ*vyM7;&Vs72SXLSK~|H87J z&xZ?Q2FSti23(|)%H=QS+cQ%7~ae;pYA5u(y zudq|Cp|`l3LAkuQ4!yvl48gq=#>dFX%FE0YGbAG>Av@5~uELBewAY;3WZRb8wMKK| z+@g9eP>8MHE$f2qI?i@p?u1>yg4Bt7l7qG`b zf)QCa zvq&)Rg1H^*asiO&YuT`T$%4sCC~cCGbfL68oN@@;Dsn*y@H;IsOu|W-431Yg2*1tw zI@>fSbF{e9I(p)osoLeR){9=l#x}IJ?b}4DEmhHU?{41Mo{^R()|6SS;f5bq4j5}z z$fHiT0zK96KXxZCV!!ukv!CwKO`N3Omm+j_c%SR|hgiJzH|^C2`gB>o1^ScC>!6NQ irCn1Q-r160OR@|YlWT#@R-l5|FbIKzxJ3v-0suRCP#w7d literal 0 HcmV?d00001 diff --git a/LuaScriptsLibExt/Readme_For_raocoin2.lua/example/coins.png b/LuaScriptsLibExt/Readme_For_raocoin2.lua/example/coins.png new file mode 100644 index 0000000000000000000000000000000000000000..7be3fd70f40741cef91f8ec2235ceeb2b7dc66e2 GIT binary patch literal 2966 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 2) then + player:mem(0x16, FIELD_WORD, 2); + end + first = false; + end + + if(player:mem(0x16, FIELD_WORD) == 3) then + zelda.hearts = zelda.hearts + 1; + if(zelda.hearts > zelda.maxhearts) then + zelda.hearts = zelda.maxhearts; + end + powercache = player.powerup; + player:mem(0x16, FIELD_WORD,2); + end + + if(player:mem(0x16, FIELD_WORD) == 1) and (zelda.hearts > 1) then + zelda.hearts = zelda.hearts - 1; + end + + if(player:mem(0x16, FIELD_WORD) > zelda.hearts) then + zelda.hearts = player:mem(0x16, FIELD_WORD); + end + + if(player:mem(0x16, FIELD_WORD) == 0) then + zelda.hearts = 0; + end + + if (player.powerup == PLAYER_SMALL) and (zelda.hearts >= 2) then + if(zelda.keep_powerups) then + player.powerup = powercache; + else + player.powerup = PLAYER_BIG; + end + end + end +end + +local function UpdateMagic() + if(not wasfairy and player:mem(0x0C,FIELD_WORD) == -1) then + maxfairycount = player:mem(0x10,FIELD_WORD); + wasfairy = true; + elseif(wasfairy and player:mem(0x0C,FIELD_WORD) ~= -1) then + wasfairy = false; + end + + if(player:mem(0x0C,FIELD_WORD) == -1 and player:mem(0x10,FIELD_WORD) >= 0 and maxfairycount > 0) then + zelda.magic = player:mem(0x10,FIELD_WORD)/maxfairycount; + elseif(player:mem(0x0E,FIELD_WORD) == 1 and player:mem(0x4A,FIELD_WORD) ~= -1) then + zelda.magic = 0; + elseif(player:mem(0x4A,FIELD_WORD) == -1) then + zelda.magic = 1-(player:mem(0x4E,FIELD_WORD)/240); + else + zelda.magic = 1; + end +end + +local function UpdateRupees() + zelda.maxrupees = 99; + zelda.rupees = mem(0x00B2C5A8,FIELD_WORD); +end + +local function UpdateKeys() + if(player:mem(0x12,FIELD_WORD) == -1) then + zelda.keys = 1; + else + zelda.keys = 0; + end +end + +local function UpdateItems() + items[zelda.BTN_X] = zelda.SWORD; + items[zelda.BTN_S] = {zelda.BOMB,player:mem(0x08, FIELD_WORD)}; +end + +local function UpdateTriforce() + zelda.triforce = mem(0x00B251E0,FIELD_WORD); + zelda.maxtriforce = 999; +end + +local function UpdateFairy() + zelda.fairy = mem(0x00B2C5AC,FIELD_FLOAT); + zelda.maxfairy = 99; +end + +local function UpdateNavi() + zelda.navi = false; + for _,v in ipairs(NPC.getIntersecting(player.x,player.y,player.x+player.width,player.y+player.height)) do + if(v:mem(0x46,FIELD_WORD) == -1 --[[Friendly]] and (v:mem(0x4C,FIELD_DWORD) > 0 and v.msg.str ~= nil and v.msg.str ~= "") --[[Has message]]) then + zelda.navi = true; + break; + end + end +end + +function zelda.onLoop() + if(zelda.auto_hearts) then + UpdateHearts(); + end + + if(zelda.auto_magic) then + UpdateMagic(); + end + + if(zelda.auto_rupees) then + UpdateRupees(); + end + + if(zelda.auto_keys) then + UpdateKeys(); + end + + if(zelda.auto_items) then + UpdateItems(); + end + + if(zelda.auto_triforce) then + UpdateTriforce(); + end + + if(zelda.auto_fairy) then + UpdateFairy(); + end + + if(zelda.auto_navi) then + UpdateNavi(); + end +end + +local maxfairycount = 0; +local wasfairy = false; + +local function pad(n,d) + return string.format("%0"..d.."d",n); +end + +local function getDigits(n) + local c = 0; + while(n > 1) do + c = c + 1; + n = n/10; + end + return math.max(c,1); +end + +local function DrawHearts() + local maxy = 0; + for i=0,zelda.maxhearts-1,1 do + local g; + if(i<=zelda.hearts-1) then + g = zelda.HEART_FULL; + else + g = zelda.HEART_EMPT; + end + Graphics.drawImage(g, (i%10)*16 + 16, math.floor(i/10)*16 + 16); + maxy = math.floor(i/10)*16; + end + return maxy + 24; +end + +local function DrawMagic(y) + Graphics.drawImage(zelda.MAGIC_BG, 14, y); + + Graphics.glSetTextureRGBA(zelda.MAGIC_BAR, 0xFFFFFFFF); + local pts = {}; + pts[0] = 16; pts[1] = y; + pts[2] = 16+158*zelda.magic; pts[3] = y; + pts[4] = 16; pts[5] = y+16; + pts[6] = 16; pts[7] = y+16; + pts[8] = 16+158*zelda.magic; pts[9] = y; + pts[10] = 16+158*zelda.magic; pts[11] = y+16; + + Graphics.glDrawTriangles(pts, {0,0,0,1,1,0,1,0,0,1,1,1}, 6); + Graphics.glSetTextureRGBA(nil, 0xFFFFFFFF); +end + +local function DrawRupees() + Graphics.drawImage(zelda.RUPEE, 16, 600 - 32); + zelda.rupees = math.min(zelda.rupees,zelda.maxrupees); + local r = pad(zelda.rupees,getDigits(zelda.maxrupees)) + Text.print(r,36,600-32); +end + +local function DrawKeys() + for i=1,zelda.keys,1 do + Graphics.drawImage(zelda.KEY, 16*i, 600 - 32 - 24); + end +end + +local function DrawButton(x, button) + Graphics.drawImage(button, (800-16)-(32*x), 16); + + local item = zelda.getItem(button); + if(item ~= nil) then + local count = zelda.getItemCount(button); + if(count ~= nil) then + if(count ~= 0) then + Graphics.drawImage(item, (800-16)-(32*x), 16); + end + if(count > 0) then + Text.print(tostring(count),(800+8)-(32*x),40); + end + end + end +end + +local function DrawTriforce() + Graphics.drawImage(zelda.TRIFORCE, 800-32, 600-32); + zelda.triforce = math.min(zelda.triforce, zelda.maxtriforce); + local t = pad(zelda.triforce,getDigits(zelda.maxtriforce)); + Text.print(t,800-30-18*(#t),600-32); +end + +local function DrawFairy() + Graphics.drawImage(zelda.FAIRY, 800-32, 600-32-24); + zelda.fairy = math.min(zelda.fairy, zelda.maxfairy); + local t = pad(zelda.fairy,getDigits(zelda.maxfairy)); + Text.print(t,800-30-18*(#t),600-32-24); +end + +local function DrawNavi() + if(zelda.navi) then + Graphics.drawImage(zelda.NAVI, 800-16-32*(#zelda.buttons + 1), 16); + end +end + +local function DrawScore() + local p = mem(0x00B2C8E4,FIELD_DWORD); + Text.print(pad(p,6),800-24-96,600-32-48); +end + +function zelda.onHUDDraw() + if(zelda.auto_enable) then + UpdateEnabled(); + end + + if(not zelda.show_HUD) then return end; + + local maxy = 0; + + if(zelda.show_hearts) then + maxy = DrawHearts(); + end + + if(zelda.show_magic) then + DrawMagic(maxy+16); + end + + if(zelda.show_rupees) then + DrawRupees(); + end + + if(zelda.show_keys) then + DrawKeys(); + end + + if(zelda.show_items) then + for k,v in ipairs(zelda.buttons) do + DrawButton(#zelda.buttons-(k-1), v); + end + end + + if(zelda.show_triforce) then + DrawTriforce(); + end + + if(zelda.show_fairy) then + DrawFairy(); + end + + if(zelda.show_navi) then + DrawNavi(); + end + + if(zelda.show_score) then + DrawScore(); + end +end + +return zelda; \ No newline at end of file diff --git a/LuaScriptsLibExt/hudoftime/bomb.png b/LuaScriptsLibExt/hudoftime/bomb.png new file mode 100644 index 0000000000000000000000000000000000000000..7f06c5027061a499fcbb354fb821a58ab531cf4f GIT binary patch literal 3148 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 Hu0mjfnrVDS literal 0 HcmV?d00001 diff --git a/LuaScriptsLibExt/hudoftime/heart_full.png b/LuaScriptsLibExt/hudoftime/heart_full.png new file mode 100644 index 0000000000000000000000000000000000000000..f8d5e174d7485b7026cb27843ee3947f609e14f3 GIT binary patch literal 2955 zcmV;63v~2}P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0002CNklLONhpRAz)s!U%N!=Hd82a-U1{t^iv)VOyfA zcoIv02_ZB#k`h7y$sq?o>iYr!x;jK-HI;lMlX~uR(OA{hiEKMWRfmGE5CCwI6Y<_p z!M{W_7B4)E{~(asth@hDCCeiPt%)RWsffmcqyT7pfK>9ZOjpvs6jV?u`BF&_KAplD z$qY<#KE@--3_Q3|w!JqJKI5$pY=qT?x;g;BdjKA(W0@=`=QIES002ovPDHLkV1lDz Bb{_x$ literal 0 HcmV?d00001 diff --git a/LuaScriptsLibExt/hudoftime/lives.png b/LuaScriptsLibExt/hudoftime/lives.png new file mode 100644 index 0000000000000000000000000000000000000000..36365c01721c6a931a53fd7d8bfaea5b5133fcf0 GIT binary patch literal 3039 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 literal 0 HcmV?d00001 diff --git a/LuaScriptsLibExt/hudoftime/magic_bar.png b/LuaScriptsLibExt/hudoftime/magic_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..56778449187d71a112e83e4d6888d270fbf5afad GIT binary patch literal 2823 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 ZU;r0&4Xo$P`J(^;002ovPDHLkV1oIEKK=jz literal 0 HcmV?d00001 diff --git a/LuaScriptsLibExt/hudoftime/magic_bg.png b/LuaScriptsLibExt/hudoftime/magic_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..aa1a04af8a5a4b64a45f001eb3f29d4ca7ee0eaf GIT binary patch literal 2907 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 XmWvE1HM2X100000NkvXXu0mjfCfFW< literal 0 HcmV?d00001 diff --git a/LuaScriptsLibExt/hudoftime/rupee.png b/LuaScriptsLibExt/hudoftime/rupee.png new file mode 100644 index 0000000000000000000000000000000000000000..ab0dabdd26fb1cafabd13dbc9d4f64be43113dff GIT binary patch literal 2939 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 literal 0 HcmV?d00001 diff --git a/LuaScriptsLibExt/hudoftime/small_key.png b/LuaScriptsLibExt/hudoftime/small_key.png new file mode 100644 index 0000000000000000000000000000000000000000..4039e428264625f364a68302d2e619799dc59516 GIT binary patch literal 3048 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 M07*qoM6N<$f(6luIRF3v literal 0 HcmV?d00001 diff --git a/LuaScriptsLibExt/hudoftime/sword.png b/LuaScriptsLibExt/hudoftime/sword.png new file mode 100644 index 0000000000000000000000000000000000000000..a675411ad45f65afaf7893dc4b8fccae79c6e379 GIT binary patch literal 3299 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 literal 0 HcmV?d00001 diff --git a/LuaScriptsLibExt/leveltimer.lua b/LuaScriptsLibExt/leveltimer.lua index 7e1a128dd..7dcc58636 100644 --- a/LuaScriptsLibExt/leveltimer.lua +++ b/LuaScriptsLibExt/leveltimer.lua @@ -1,114 +1,99 @@ -local __title = "Level Timer"; -local __version = "1.1.1.0"; -local __description = "A simple script to provide a level timer, a la Super Mario World and Super Mario Bros. 3."; -local __author = "Mike Santiago, edited by XNBlank"; -local __url = "http://mrmiketheripper.x10.mx/leveltimer" - +local __title = "Level Timer"; local __version = "1.1.1.1"; local __description = "A simple script to provide a level timer, a la Super Mario World and Super Mario Bros. 3."; local __author = "Mike Santiago, edited by XNBlank"; local __url = "http://mrmiketheripper.x10.mx/leveltimer" local lf_levelTimerApi = {} --instance -local secondsleft = 300; --The amount of seconds left. -local framecounter = 0; --Counts the amount of frames -local postWinFrameCounter = 0; --Counts frams since after the win -local player1 = Player(); --The player variable -local player2 = Player(2); -local beatLevel = false; -local getSeconds = false; -local takeTime = 0; -local playerkilled = false; --If the player was killed already so we don't kill him 21390840239 times -local passTime = true; --Whether or not to pass time, if false, time will stop. -local timerEnabled = true; --Whether or not the timer itself is actually enabled or not -local warnedPlayer = false; --Whether or not we've warned the player that time is running out -local resPath = getSMBXPath() .. "\\LuaScriptsLib\\leveltimer"; --res path -local uiImage = Graphics.loadImage(resPath .. "\\ui.png"); --ui thing - -lf_levelTimerApi.GUIPosition_NoStars = {x = 252, y = 50} -lf_levelTimerApi.GUIPosition_Stars = {x = 252, y = 66} - -function lf_levelTimerApi.onInitAPI() - timerEnabled = false; --user must start it - registerEvent(lf_levelTimerApi, "onLoop", "onLoopOverride"); -end - -function lf_levelTimerApi.onLoopOverride() - if(timerEnabled == true) then - timeelapsed = round(framecounter / 60, 0); - if(tonumber(mem(0x00B251E0, FIELD_DWORD)) > 0) and (beatLevel == false) then - Graphics.placeSprite(1, uiImage, lf_levelTimerApi.GUIPosition_Stars.x, lf_levelTimerApi.GUIPosition_Stars.y, "", 2); - Text.print(tostring(secondsleft - timeelapsed), 1, lf_levelTimerApi.GUIPosition_Stars.x + 44, lf_levelTimerApi.GUIPosition_Stars.y + 1); - elseif (tonumber(mem(0x00B251E0, FIELD_DWORD)) == 0) and (beatLevel == false) then - Graphics.placeSprite(1, uiImage, lf_levelTimerApi.GUIPosition_NoStars.x, lf_levelTimerApi.GUIPosition_NoStars.y, "", 2); - Text.print(tostring(secondsleft - timeelapsed), 1, lf_levelTimerApi.GUIPosition_NoStars.x + 44, lf_levelTimerApi.GUIPosition_NoStars.y + 1); - end - +local secondsleft = 300; --The amount of seconds left. local framecounter = 0; --Counts the amount of frames +local postWinFrameCounter = 0; --Counts frams since after the win +local player1 = Player(); --The player variable +local player2 = Player(2); +local beatLevel = false; +local getSeconds = false; +local takeTime = 0; +local playerkilled = false; --If the player was killed already so we don't kill him 21390840239 times +local passTime = true; --Whether or not to pass time, if false, time will stop. +local timerEnabled = true; --Whether or not the timer itself is actually enabled or not +local warnedPlayer = false; --Whether or not we've warned the player that time is running out +local resPath = getSMBXPath() .. "\\LuaScriptsLib\\leveltimer"; --res path +local uiImage = Graphics.loadImage(resPath .. "\\ui.png"); --ui thing + + +lf_levelTimerApi.GUIPosition_NoStars = {x = 252, y = 50} lf_levelTimerApi.GUIPosition_Stars = {x = 252, y = 66} + + +function lf_levelTimerApi.onInitAPI() timerEnabled = false; --user must start it + registerEvent(lf_levelTimerApi, "onLoop", "onLoopOverride"); +end + + +function lf_levelTimerApi.onLoopOverride() if(timerEnabled == true) then timeelapsed = round(framecounter / 60, 0); + if(tonumber(mem(0x00B251E0, FIELD_DWORD)) > 0) and (beatLevel == false) then + Graphics.placeSprite(1, uiImage, lf_levelTimerApi.GUIPosition_Stars.x, lf_levelTimerApi.GUIPosition_Stars.y, "", 2); + Text.print(tostring(secondsleft - timeelapsed), 1, lf_levelTimerApi.GUIPosition_Stars.x + 44, lf_levelTimerApi.GUIPosition_Stars.y + 1); + elseif (tonumber(mem(0x00B251E0, FIELD_DWORD)) == 0) and (beatLevel == false) then + Graphics.placeSprite(1, uiImage, lf_levelTimerApi.GUIPosition_NoStars.x, lf_levelTimerApi.GUIPosition_NoStars.y, "", 2); + Text.print(tostring(secondsleft - timeelapsed), 1, lf_levelTimerApi.GUIPosition_NoStars.x + 44, lf_levelTimerApi.GUIPosition_NoStars.y + 1); + end + --Text.print("Time to take..." .. tostring(takeTime), 0, 0); - --Text.print("Seconds left..." .. tostring(secondsleft - timeelapsed), 0, 15); - - - if (passTime == true) then - framecounter = framecounter + 1; - end - if(timeelapsed >= secondsleft) then - passTime = false; - if(beatLevel == false) then - if(playerkilled == false) then - player1:kill(); - if(player2 ~= nil) then - if(player2.isValid) then - player2:kill(); - end - end - playerkilled = true; - end - end - end - if((secondsleft - timeelapsed) <= 100) then - if(passTime == true) then - if(warnedPlayer == false) then - warnedPlayer = true; - playSFXSDL(resPath .. "\\warning.wav"); - --test = "-----WARNING!-----\n\nYou're running out of time!"; - --Text.showMessageBox(type(test)); - end - end - end - - if(Level.winState() > 0) then - - beatLevel = true; - passTime = false; - postWinFrameCounter = postWinFrameCounter + 1; - lf_levelTimerApi.doEndingStuffs(); - end - end -end - -local added = false; -local showTimeLeft = false; -local showPointCalc = false; -local showAddPoints = false; -local countPoints = false; - -function lf_levelTimerApi.doEndingStuffs() - local timeLeftDrawPoint = {x = 288, y = 150} - local pointCalculationDrawPoint = {x = 247, y = 170} - local addPointsDrawPoint = {x = 461, y = 70}; - local timeleft = secondsleft - timeelapsed; - - if(getSeconds == false) then - takeTime = secondsleft - timeelapsed; - getSeconds = true; - end - - local newPoints = tonumber(mem(0x00B2C8E4, FIELD_DWORD)) + (timeleft * 50); - - Text.print("COURSE CLEAR", 288, 150); - - if(tonumber(mem(0x00B251E0, FIELD_DWORD)) > 0) and (beatLevel == true) then - Graphics.placeSprite(1, uiImage, lf_levelTimerApi.GUIPosition_Stars.x, lf_levelTimerApi.GUIPosition_Stars.y, "", 2); - Text.print(tostring(takeTime), 1, lf_levelTimerApi.GUIPosition_Stars.x + 44, lf_levelTimerApi.GUIPosition_Stars.y + 1); -elseif (tonumber(mem(0x00B251E0, FIELD_DWORD)) == 0) and (beatLevel == true) then - Graphics.placeSprite(1, uiImage, lf_levelTimerApi.GUIPosition_NoStars.x, lf_levelTimerApi.GUIPosition_NoStars.y, "", 2); - Text.print(tostring(takeTime), 1, lf_levelTimerApi.GUIPosition_NoStars.x + 44, lf_levelTimerApi.GUIPosition_NoStars.y + 1); + --Text.print("Seconds left..." .. tostring(secondsleft - timeelapsed), 0, 15); if (passTime == true) then + framecounter = framecounter + 1; + end + + if(timeelapsed >= secondsleft) then passTime = false; + if(beatLevel == false) then + if(playerkilled == false) then + player1:kill(); + if(player2 ~= nil) then + if(player2.isValid) then + player2:kill(); + end + end + playerkilled = true; + end + end + end + if((secondsleft - timeelapsed) <= 100) then + if(passTime == true) then + if(warnedPlayer == false) then + warnedPlayer = true; + playSFXSDL(resPath .. "\\warning.wav"); + --test = "-----WARNING!-----\n\nYou're running out of time!"; + --Text.showMessageBox(type(test)); + end + end + end + + if(Level.winState() > 0) then + beatLevel = true; + passTime = false; + postWinFrameCounter = postWinFrameCounter + 1; + lf_levelTimerApi.doEndingStuffs(); + end + end +end + + +local added = false; local showTimeLeft = false; +local showPointCalc = false; +local showAddPoints = false; +local countPoints = false; + + +function lf_levelTimerApi.doEndingStuffs() local timeLeftDrawPoint = {x = 288, y = 150} + local pointCalculationDrawPoint = {x = 247, y = 170} + local addPointsDrawPoint = {x = 461, y = 70}; + local timeleft = secondsleft - timeelapsed; + + if(getSeconds == false) then + takeTime = secondsleft - timeelapsed; + getSeconds = true; + end + + local newPoints = tonumber(mem(0x00B2C8E4, FIELD_DWORD)) + (timeleft * 50); + Text.print("COURSE CLEAR", 288, 150); + if(tonumber(mem(0x00B251E0, FIELD_DWORD)) > 0) and (beatLevel == true) then + Graphics.placeSprite(1, uiImage, lf_levelTimerApi.GUIPosition_Stars.x, lf_levelTimerApi.GUIPosition_Stars.y, "", 2); + Text.print(tostring(takeTime), 1, lf_levelTimerApi.GUIPosition_Stars.x + 44, lf_levelTimerApi.GUIPosition_Stars.y + 1); + elseif (tonumber(mem(0x00B251E0, FIELD_DWORD)) == 0) and (beatLevel == true) then Graphics.placeSprite(1, uiImage, lf_levelTimerApi.GUIPosition_NoStars.x, lf_levelTimerApi.GUIPosition_NoStars.y, "", 2); Text.print(tostring(takeTime), 1, lf_levelTimerApi.GUIPosition_NoStars.x + 44, lf_levelTimerApi.GUIPosition_NoStars.y + 1); end @@ -128,7 +113,7 @@ end if(added ~= true) then mem(0x00B2C8E4, FIELD_DWORD, newPoints); added = true; - showAddPoints = false; + showAddPoints = false; end end @@ -149,7 +134,7 @@ end if(showPointCalc) then - Text.print(tostring(timeleft) .. " x 50 = " .. tostring(timeleft * 50), pointCalculationDrawPoint.x, pointCalculationDrawPoint.y); + Text.print(tostring(timeleft) .. " x 50 = " .. tostring(timeleft * 50), pointCalculationDrawPoint.x, pointCalculationDrawPoint.y); end if(showAddPoints == true) then Text.print("+" .. tostring(timeleft * 50), 3, addPointsDrawPoint.x, addPointsDrawPoint.y); @@ -161,15 +146,11 @@ function lf_levelTimerApi.getSecondsLeft() return secondsleft; end -function lf_levelTimerApi.setSecondsLeft(to_set) - if (to_set > 999) then - secondsleft = 999; - elseif (to_set < 0) then - setSecondsLeft = 0; - else - secondsleft = to_set; - end -end +function lf_levelTimerApi.setSecondsLeft(to_set) if (to_set > 999) then secondsleft = 999; framecounter = 0; timeelapsed = 0; elseif (to_set < 0) then secondsleft = 0; timeelapsed = 0; + framecounter = 0; + else secondsleft = to_set; timeelapsed = 0; + framecounter = 0; + end end function lf_levelTimerApi.pauseTimer() passTime = false; @@ -190,4 +171,4 @@ function round(num, idp) return math.floor(num * mult + 0.5) / mult end -return lf_levelTimerApi; +return lf_levelTimerApi; \ No newline at end of file diff --git a/LuaScriptsLibExt/multipoints.lua b/LuaScriptsLibExt/multipoints.lua index a345ccd45..af92f26e4 100644 --- a/LuaScriptsLibExt/multipoints.lua +++ b/LuaScriptsLibExt/multipoints.lua @@ -1,7 +1,19 @@ ---multipoints.lua ---v3.0.0 ---Created by Hoeloe, 2015 ---With help from Rednaxela +----------------------------------------------- +----------------------------------------------- +--*******************************************-- +--* _ _ _ _ _ *-- +--* _____ _ _| | |_|_|___ ___|_|___| |_ ___ *-- +--*| | | | | _| | . | . | | | _|_ -|*-- +--*|_|_|_|___|_|_| |_| _|___|_|_|_|_| |___|*-- +--* |_| *-- +--*******************************************-- +----------------------------------------------- +----------------------------------------------- +-----------Created by Hoeloe - 2015------------ +-----------With help from Rednaxella----------- +--------Open-Source Checkpoint Library--------- +------------For Super Mario Bros X------------- +-------------------v3.0.4---------------------- local multipoints = {} local playerMP = { sec = 0, x = 0, y = 0, act = nil } @@ -16,6 +28,7 @@ multipoints.IMG_SIZE = { width = 32, height = 32 } local dataFile; local firstRun = true; +local preRun = true; function multipoints.onInitAPI() --register event handler @@ -27,6 +40,7 @@ function multipoints.onInitAPI() if(dataFile:get("MPCheck_ID") == nil) then multipoints.resetMidpoints(); end + preRun = true; firstRun = true; registerEvent(multipoints, "onLoop", "update", true) --Register the loop event @@ -73,6 +87,7 @@ local function getMP(i) dataFile:set("MPCheck_ID",tostring(i)); dataFile:save() + mem(0x00B250B0, FIELD_STRING, mem(0x00B2C618, FIELD_STRING)) multipoints.onCollected(multipoints.getCheckpoint(i), i) @@ -227,24 +242,38 @@ function multipoints.resetMidpoints() mem(0x00B250B0, FIELD_STRING, "") end -function multipoints.onLoad() +function multipoints.onLevelStart() end function multipoints.update() + if(preRun) then + preRun = false; + return; + end if(firstRun) then - local i = 0; - while(i > -1 and mpData[i] ~= nil) do - if(multipoints.getCheckpointID() == i) then - playerMP = {sec = mpData[i].sec, x = mpData[i].x, y = mpData[i].y, act = mpData[i].actions } - i = -1; - else - i = i + 1; + if(mpData ~= nil) then + local i = 0; + while(i > -1 and mpData[i] ~= nil) do + if(multipoints.getCheckpointID() == i) then + playerMP = {sec = mpData[i].sec, x = mpData[i].x, y = mpData[i].y, act = mpData[i].actions } + i = -1; + else + i = i + 1; + end + end + else + if(mpTrigs == nil) then + mpTrigs = {} + end + if(mpLuaTrigs == nil) then + mpLuaTrigs = {} end end if (multipoints.getCheckpointID() == nil) or (multipoints.getCheckpointID() < 0) then multipoints.resetMidpoints() firstRun = false; + multipoints.onLevelStart(); return end @@ -272,11 +301,13 @@ function multipoints.update() if(playerMP.act ~= nil) then playerMP.act(); end + wasMidpointed = true; else multipoints.resetMidpoints() end firstRun = false; + multipoints.onLevelStart(); end for k,v in pairs(mpLuaTrigs) do diff --git a/LuaScriptsLibExt/raocoin/arrow.png b/LuaScriptsLibExt/raocoin/arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..8880f0e596d3c6aff34daa97028dab1c334582a9 GIT binary patch literal 2908 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 literal 0 HcmV?d00001 diff --git a/LuaScriptsLibExt/raocoin/dragoncoin.png b/LuaScriptsLibExt/raocoin/dragoncoin.png new file mode 100644 index 0000000000000000000000000000000000000000..03ffd77062eff76c14f6d2a6eeaf38225d6e301e GIT binary patch literal 3000 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 ) \__( <_> ) | | \/ \ -- +-- |____|_ /(____ /\____/ \___ >____/|__|___| /\_______ \-- +-- \/ \/ \/ \/ \/-- +--------------------------------------------------------------- +--------------------Created by Hoeloe - 2015------------------- +-------------Open-Source Currency and Shop Library------------- +---------------------For Super Mario Bros X-------------------- +----------------------------v2.0.0----------------------------- +----------------------REQUIRES ENCRYPT.dll--------------------- +---------------------REQUIRES COLLIDERS.lua-------------------- +-----------------------REQUIRES PNPC.lua----------------------- + +local raocoin = {} +local encrypt = loadSharedAPI("encrypt"); +local colliders; +local pnpc; + +local currencies = {} +local currencyCache = {} +local memcurrencies = {} +local memcurrencyCache = {} + +local data = encrypt.Data(Data.DATA_WORLD, "raocoin", true); + +local currencyMT = {} + +function currencyMT.createMT(id,memtype) + local mt = {} + mt.__index = + function(tbl, key) + if(key == "refreshUI") then return currencyMT.refreshUI; + elseif(key == "save") then return currencyMT.save; + elseif(key == "get") then return currencyMT.get; + elseif(key == "set") then return currencyMT.set; + elseif(key == "addItem") then return raocoin.addItem; + elseif(key == "id") then return id; + elseif(key == "type") then return memtype; end + end + mt.__newindex = function(tbl, key, val) error("Attempted to write to a read-only field.",2); end + return mt; +end + +function currencyMT:refreshUI() + self.img = Graphics.loadImage(self.path); +end + +function currencyMT:save() + if(self.type == -1) then --npc currency + data:set("currency_"..self.id, data:get("currency_"..self.id)+currencyCache[self.id].value); + currencyCache[self.id].value = 0; + else --mem currency + data:set("memcurrency_"..self.id, self:get()); + end + data:save(); +end + +function currencyMT:get() + if(self.type == -1) then --npc currency + return data:get("currency_"..self.id) + currencyCache[self.id].value + else --mem currency + return mem(self.id,self.type); + end +end + +function currencyMT:set(value) + if(value < 0) then value = 0; end; + if(self.type == -1) then --npc currency + --data:set("currency_"..self.id, value); + currencyCache[self.id].value = value - data:get("currency_"..self.id); + else --mem currency + --data:set("memcurrency_"..self.id, value); + mem(self.id,self.type,value); + end + --self:save(); +end + +function raocoin.registerCurrency(npcID, showUI, UIx, UIy, imgPath) + showUI = showUI or (showUI == nil and false); + UIx = UIx or 0; + UIy = UIy or 0; + imgPath = imgPath or getSMBXPath().."\\LuaScriptsLib\\raocoin\\dragoncoin.png"; + + local c = { visible = showUI, img = Graphics.loadImage(imgPath), x = UIx, y = UIy, path = imgPath }; + setmetatable(c,currencyMT.createMT(npcID,-1)); + + c:refreshUI(); + + if(data:get("currency_"..npcID) == nil) then + data:set("currency_"..npcID, 0); + data:save(); + end + currencyCache[npcID] = { value = 0, lastCount = -1, count = -1 }; + + currencies[npcID] = c; + + return c; +end + + +function raocoin.registerMemCurrency(memaddress, memType, restore, showUI, UIx, UIy, imgPath) + restore = restore or (restore == nil and true); + showUI = showUI or (showUI == nil and false); + UIx = UIx or 0; + UIy = UIy or 0; + imgPath = imgPath or getSMBXPath().."\\LuaScriptsLib\\raocoin\\dragoncoin.png"; + + local c = { visible = showUI, img = Graphics.loadImage(imgPath), x = UIx, y = UIy, path = imgPath }; + setmetatable(c,currencyMT.createMT(memaddress,memType)); + + c:refreshUI(); + + if(data:get("memcurrency_"..memaddress) == nil) then + data:set("memcurrency_"..memaddress, 0); + data:save(); + elseif(restore) then + mem(memaddress,memType,data:get("memcurrency_"..memaddress)) + end + + memcurrencyCache[memaddress] = mem(memaddress,memType); + + memcurrencies[memaddress] = c; + + return c; +end + +function raocoin.getCurrency(npcID) + return currencies[npcID]; +end + +function raocoin.getMemCurrency(address) + return memcurrencies[address]; +end + + +local items = {}; +local tokens = {}; + +raocoin.IMG_TOKEN_T = Graphics.loadImage(getSMBXPath().."\\LuaScriptsLib\\raocoin\\token_t.png"); +raocoin.IMG_TOKEN_P = Graphics.loadImage(getSMBXPath().."\\LuaScriptsLib\\raocoin\\token_p.png"); +raocoin.IMG_ARROW = Graphics.loadImage(getSMBXPath().."\\LuaScriptsLib\\raocoin\\arrow.png"); + +local arrowalpha = 0; + +local itemCount = 0; + +local actionQueue = {}; + +raocoin.CODE_CANTAFFORD = 0; +raocoin.CODE_ALREADYBOUGHT = 1; + +local itemMT = {} + +function itemMT.createMT(id) + local mt = {} + mt.__index = + function(tbl, key) + if(key == "canAfford") then return itemMT.canAfford; + elseif(key == "showPrice") then return itemMT.showPrice; + elseif(key == "buy") then return itemMT.buy; + elseif(key == "forceGet") then return itemMT.forceGet; + elseif(key == "isBought") then return itemMT.isBought; + elseif(key == "undoBuy") then return itemMT.undoBuy; + elseif(key == "placeToken") then return itemMT.placeToken; + elseif(key == "removeToken") then return itemMT.removeToken; + elseif(key == "id") then return id; end + end + mt.__newindex = function(tbl, key, val) error("Attempted to write to a read-only field.",2); end + return mt; +end + +function itemMT:canAfford() + return self.currency:get() >= self.price; +end + +function itemMT:showPrice(x,y,screenSpace) + screenSpace = screenSpace or (screenSpace == nil); + + if(not screenSpace) then + x,y = raocoin.worldToScreen(x,y); + end + + local v = self.currency; + Graphics.placeSprite(1, v.img, x, y, "", 2); + local val = tostring(self.price); + Text.print(val, 1, x + 98-18*(string.len(val)), y); +end + +function itemMT:buy() + if(self:isBought()) then + raocoin.onBuyFail(self, raocoin.CODE_ALREADYBOUGHT); + return; + end + if(not self:canAfford()) then + raocoin.onBuyFail(self, raocoin.CODE_CANTAFFORD); + return; + end + + self.currency:set(self.currency:get()-self.price); + self.currency:save(); + + self:forceGet(); + raocoin.onBuy(self); +end + +function itemMT:forceGet() + if(self.permanent) then + data:set("item_"..self.id, 1); + data:save(); + end + + table.insert(actionQueue,self.actions); +end + +function itemMT:isBought() + return self.permanent and data:get("item_"..self.id) == 1; +end + +function itemMT:undoBuy() + if(not self:isBought()) then return; end + + if(self.permanent) then + data:set("item_"..self.id, 0); + data:save(); + end +end + +function itemMT:placeToken(x,y,section, npcid,text,image) + if(colliders == nil) then + colliders = loadSharedAPI("colliders"); + end + if(npcid ~= nil and pnpc == nil) then + pnpc = loadSharedAPI("pnpc"); + end + local t = {x=x,y=y,section=section,enableTimer = 0,hitbox=colliders.Box(x,y,32,32),npcID=npcid,npc=nil,npcRefreshCount=0,text=text,image=image}; + tokens[self] = t; +end + +function itemMT:removeToken() + if(tokens[self] ~= nil and tokens[self].npc ~= nil) then + tokens[self].npc:mem(0x40,FIELD_WORD,0xFFFF); + end + tokens[self] = nil; +end + +function raocoin.addItem(currency, price, actions, permanent, id) + permanent = permanent or (permanent == nil); + + if(id == nil) then + while(items[itemCount] ~= nil) do + itemCount = itemCount + 1; + end + id = itemCount; + elseif(items[id] ~= nil) then + --error("Item with ID already exists and will be overwritten!",2); --Not actually a problem, as it allows different items to share purchase across levels. + end + + local i = { currency = currency, price = price, permanent = permanent, actions = actions }; + setmetatable(i,itemMT.createMT(id)); + + if(permanent) then + local d = data:get("item_"..id); + if(d == nil) then + data:set("item_"..id, 0); + data:save(); + elseif(d == 1) then + table.insert(actionQueue,actions); + end + end + + items[id] = i; + itemCount = itemCount + 1; + + return i; +end + +local buyingCounter = 0; +local tryBuy = false; +local doBuyAnim = false; +local sourceY = 0; +local buyAction; + +function raocoin.inputupdate() + if(doBuyAnim) then + player.downKeyPressing = false; --Ensure animation lines up correctly + end +end + +function raocoin.update() + for _,v in pairs(actionQueue) do + v(); + end + + actionQueue = {}; + + for k,v in pairs(currencies) do + if(v.visible) then + Graphics.placeSprite(1, v.img, v.x, v.y, "", 2); + local val = tostring(v:get()); + Text.print(val, 1, v.x + 98-18*(string.len(val)), v.y); + end + + currencyCache[k].count = 0; + for _,_ in pairs(findnpcs(k,-1)) do + currencyCache[k].count = currencyCache[k].count + 1; + end + if(currencyCache[k].count < currencyCache[k].lastCount) then + currencyCache[k].value = currencyCache[k].value + currencyCache[k].lastCount - currencyCache[k].count; + raocoin.onCollect(v); + end + currencyCache[k].lastCount = currencyCache[k].count; + end + + for k,v in pairs(memcurrencies) do + if(v.visible) then + Graphics.placeSprite(1, v.img, v.x, v.y, "", 2); + local val = tostring(v:get()); + Text.print(val, 1, v.x + 98-18*(string.len(val)), v.y); + end + + if(memcurrencyCache[v.id] < mem(v.id,v.type)) then + raocoin.onCollect(v); + end + memcurrencyCache[v.id] = mem(v.id,v.type); + end + + + arrowalpha = arrowalpha+0.02; + if(arrowalpha > 1) then + arrowalpha = -1; + end + + if(player.downKeyPressing) then + if(buyingCounter == 0) then + buyingCounter = 15; + end + else + buyingCounter = 0; + end + + if(buyingCounter > 0) then + buyingCounter = buyingCounter - 1; + if(buyingCounter == 0) then + tryBuy = true; + end + end + + if(doBuyAnim) then + player:mem(0x122,FIELD_WORD,7); --Set state to "going through door" + player.y = sourceY+35-player.height; + if(player:mem(0x12A,FIELD_WORD) >= 16440) then --Warp timer counts from 16368 to 16444 by twos. 16440 is an acceptable buffer to ensure it doesn't try to warp, which will crash the game. + player:mem(0x122,FIELD_WORD,0); + player:mem(0x12A,FIELD_WORD,0); + doBuyAnim = false; + if(buyAction ~= nil) then + buyAction:buy(); + end + end + end + + for k,v in pairs(tokens) do + if(not k:isBought()) then + + --npc icon + if(v.npc == nil and v.npcID ~= nil and v.enableTimer <= 0) then + n = pnpc.wrap(spawnNPC(v.npcID,v.x,v.y-70-64,v.section)); + n:mem(0x46,FIELD_WORD,0xFFFF); + n:mem(0x48,FIELD_WORD,0xFFFF); + n:mem(0x12A,FIELD_WORD,100); + n.speedX = 0; + n.speedY = 0; + v.npc = n; + end + if(v.npc ~= nil) then + v.npc.x = v.npc:mem(0xA8,FIELD_DFLOAT); + v.npc.y = v.npc:mem(0xB0,FIELD_DFLOAT); + v.npc.speedX = 0; + v.npc.speedY = 0; + v.npc:mem(0x12A,FIELD_WORD,100); + if(v.npcRefreshCount == 0 and (v.npcID == 287 or v.npcID == 147)) then + v.npc:mem(0x40,FIELD_WORD,0xFFFF); + v.npc = nil; + v.npcRefreshCount = 10; + elseif(v.npcRefreshCount > 0) then + v.npcRefreshCount = v.npcRefreshCount - 1; + end + end + + --bmp icon + if(v.image ~= nil and v.enableTimer <= 0) then + Graphics.placeSprite(2,v.image,v.x,v.y-70-64,"",2); + end + + --text + if(v.text ~= nil and v.enableTimer <= 0) then + local x1,y1 = raocoin.worldToScreen(v.x,v.y-64); + Text.print(v.text,x1+8-string.len(v.text)*9,y1-26); + end + + local img = raocoin.IMG_TOKEN_T; + if(k.permanent) then + img = raocoin.IMG_TOKEN_P; + end + + if(v.enableTimer <= 0) then + Graphics.placeSprite(2,img,v.x,v.y-64,"",2); + k:showPrice(v.x-48,v.y-8-64,false); + + if(colliders.collide(player,v.hitbox)) then + Graphics.drawImageToScene(raocoin.IMG_ARROW,v.x,v.y-32,math.abs(arrowalpha)) + if(tryBuy) then + doBuyAnim = true; + player.speedX = 0; + player.speedY = 0; + player.x = v.x+4; + sourceY = v.y; + if(k:canAfford()) then + Audio.playSFX(getSMBXPath().."\\LuaScriptsLib\\raocoin\\buy.ogg"); + spawnEffect(132,v.x,v.y); + v.enableTimer = 50; + if(v.npc ~= nil) then + v.npc:mem(0x40,FIELD_WORD,0xFFFF); + v.npc = nil; + end + else + Audio.playSFX(getSMBXPath().."\\LuaScriptsLib\\raocoin\\fail.ogg"); + end + buyAction = k; + end + end + + elseif(player:mem(0x122,FIELD_WORD) == 0 or player:mem(0x122,FIELD_WORD) == 7 or player:mem(0x122,FIELD_WORD) == 500) then + v.enableTimer = v.enableTimer - 1; + end + end + end + + tryBuy = false; +end + +function raocoin.onInitAPI() + registerEvent(raocoin, "onLoop", "update", true) --Register the loop event + registerEvent(raocoin, "onInputUpdate", "inputupdate", true) --Register the input event +end + + +function raocoin.onCollect(currency) +end + +function raocoin.onBuy(item) +end + +--code: 0=can't afford, 1=already bought +function raocoin.onBuyFail(item,code) +end + + +function raocoin.getScreenBounds() + local h = (player:mem(0xD0, FIELD_DFLOAT)); + local b = { left = player.x-400+player.speedX, right = player.x+400+player.speedX, top = player.y-260+player.speedY, bottom = player.y+340+player.speedY }; + + local sect = Section(player.section); + local bounds = sect.boundary; + + if(b.left < bounds.left - 10) then + b.left = bounds.left - 10; + b.right = b.left + 800; + end + + if(b.right > bounds.right - 10) then + b.right = bounds.right - 10; + b.left = b.right - 800; + end + + if(b.top < bounds.top+40-h) then + b.top = bounds.top+40-h; + b.bottom = b.top + 600; + end + + if(b.bottom > bounds.bottom+40-h) then + b.bottom = bounds.bottom+40-h; + b.top = b.bottom - 600; + end + + return b; + +end + +function raocoin.worldToScreen(x,y) + local b = raocoin.getScreenBounds(); + local x1 = x-b.left; + local y1 = y-b.top-(player:mem(0xD0, FIELD_DFLOAT))+30; + return x1,y1; +end + +return raocoin; \ No newline at end of file diff --git a/LuaScriptsLibExt/rng.lua b/LuaScriptsLibExt/rng.lua new file mode 100644 index 000000000..b017149bc --- /dev/null +++ b/LuaScriptsLibExt/rng.lua @@ -0,0 +1,151 @@ +--------------------------------------- +--------***********************-------- +--------**______ _ _ _____ **-------- +--------**| ___ \ \ | | __ \**-------- +--------**| |_/ / \| | | \/**-------- +--------**| /| . ` | | __ **-------- +--------**| |\ \| |\ | |_\ \**-------- +--------**\_| \_\_| \_/\____/**-------- +--------** **-------- +--------***********************-------- +--------------------------------------- +--------Created by Hoeloe - 2015------- +--Open-Source Random Number Generator-- +--------For Super Mario Bros X--------- +---------------v1.0.1------------------ + +local rng = {}; + +local MAG_SEED = 817796519; +local quot = 977441620; +rng.seed = nil; + +--Generates the metatable for the rng. +local function genMT() + --Calculate max number (not constant across build platforms.) + local x = 1.0 + while x * 4 > x * 2 do + x = x * 2 + end + if x * 4 < x * 2 then + x = x * 2 + end + local d = x / 2 + while x + d ~= x do + if x + d > x and x + d + d ~= x + d then + x = x + d + end + d = d / 2 + end + x = math.floor(x); + + local mt = {}; + mt.__index = function(tbl,key) + if(key == "MAX") then + return x; + else + return rawget(tbl,key); + end + end + mt.__newindex = function(tbl,key,val) + if(key == "MAX") then + error("Attempted to set a read-only field. This is not allowed.",2); + elseif(key == "seed") then + rawset(tbl,key,val); + else + error("Write access to this object's fields is prohibited.",2); + end + end + + return mt; +end + +local function genRand() + --Initialise RNG + if(rng.seed == nil) then + rng.seed = math.floor(math.fmod(os.clock()*958134896,MAG_SEED)); + end + + --Generate PRN and the quotient for the next iteration + local s = math.abs((26147705 * rng.seed) + quot); + rng.seed = math.fmod(s, MAG_SEED); + quot = math.floor(s/MAG_SEED); + + --Normalise PRN + return rng.seed/(MAG_SEED-1); +end + +function rng.randomInt(a,b) + if(a == nil and b == nil) then + return math.floor(rng.random(1000000)+0.5); + elseif(a == nil and b ~= nil) then + return rng.randomInt(0,b); + elseif(a ~= nil and b == nil) then + return rng.randomInt(0,a); + else + if(a <= b) then + return math.floor(rng.random(a-0.5,b+0.5)+0.5); + else + return rng.randomInt(b,a); + end + end +end + +function rng.random(a,b) + if(b == nil) then + if(a == nil) then + return genRand(); + else + return a * genRand(); + end + else + if(a == b) then + return a; + elseif(a > b) then + return rng.random(b,a); + else + local range = b-a; + return range*genRand() + a; + end + end +end + +function rng.randomEntry(tbl) + local nt = {}; + for _,v in pairs(tbl) do + table.insert(nt,v); + end + local n = rng.randomInt(#nt - 1); + return nt[n+1]; +end + + +function rng.irandomEntry(tbl) + local n = rng.randomInt(table.getn(tbl) - 1); + return tbl[n+1]; +end + +function rng.randomChar(a,b) + if(b == nil and (a == nil or type(a) == 'boolean')) then + if(a == nil) then + local c = rng.randomChar("A","Z"); + local l = rng.randomChar("a","z"); + if(rng.randomInt(0,1) == 0) then return c else return l end; + elseif(a) then --Upper case + return rng.randomChar("A","Z"); + else --Lower case + return rng.randomChar("a","z"); + end + else + local s; + local f; + if(a == nil) then s = string.byte("A",1) else s = string.byte(a,1); end + if(b == nil) then f = s; s = string.byte("A",1); else f = string.byte(b,1); end + local n = rng.randomInt(s,f); + return string.char(n); + end +end + +setmetatable(rng,genMT()); + +return rng; \ No newline at end of file