From d4d6e247c41c8550779929fec2889f36da8d444e Mon Sep 17 00:00:00 2001 From: Alexander Pickering Date: Sun, 10 Nov 2019 09:51:14 -0500 Subject: Added binaries --- bin/.gitignore | 2 - bin/Irrlicht.dll | Bin 0 -> 42426439 bytes bin/brokengine_client.exe | Bin 0 -> 12369165 bytes bin/libgcc_s_seh-1.dll | Bin 0 -> 85136 bytes bin/libstdc++-6.dll | Bin 0 -> 1759933 bytes bin/libwinpthread-1.dll | Bin 0 -> 59404 bytes data/.gitignore | 1 + data/TCP.zip | Bin 0 -> 21655015 bytes data/TCP/TCP Cyberpunk 3.jpg | Bin 0 -> 22292 bytes data/TCP/TCP Cyberpunk 5.jpg | Bin 0 -> 19234 bytes data/TCP/TCP Dwarf 1.jpg | Bin 0 -> 28114 bytes data/TCP/TCP Dwarf 4.jpg | Bin 0 -> 22056 bytes data/TCP/TCP Dwarf 6.jpg | Bin 0 -> 23522 bytes data/TCP/TCP Elf 2.jpg | Bin 0 -> 29732 bytes data/TCP/TCP Gnome 1.jpg | Bin 0 -> 23864 bytes data/TCP/TCP Gnome 2.jpg | Bin 0 -> 25533 bytes data/TCP/TCP Hero 1.jpg | Bin 0 -> 27206 bytes data/TCP/TCP Hero 3.jpg | Bin 0 -> 24389 bytes data/TCP/TCP Human 1.jpg | Bin 0 -> 23631 bytes data/TCP/TCP Human 2.jpg | Bin 0 -> 23057 bytes data/TCP/TCP Human 3.jpg | Bin 0 -> 21226 bytes data/TCP/TCP Human 4.jpg | Bin 0 -> 21735 bytes data/TCP/TCP Human 5.jpg | Bin 0 -> 24657 bytes data/TCP/TCP Human 6.jpg | Bin 0 -> 22213 bytes data/TCP/TCP Human 7.jpg | Bin 0 -> 30894 bytes data/TCP/TCP Human 8.jpg | Bin 0 -> 23620 bytes data/TCP/TCP Human 9.jpg | Bin 0 -> 30145 bytes data/TCP/TCP Mad Scientist 2.jpg | Bin 0 -> 29027 bytes data/TCP/TCP Pirate 1.jpg | Bin 0 -> 21897 bytes data/TCP/TCP Pirate 2.jpg | Bin 0 -> 23916 bytes data/TCP/TCP Pirate 5.jpg | Bin 0 -> 21338 bytes data/TCP/TCP Scary 1.jpg | Bin 0 -> 25502 bytes data/TCP/TCP Scary 2.jpg | Bin 0 -> 30973 bytes data/TCP/TCP Scary 3.jpg | Bin 0 -> 20768 bytes data/TCP/TCP Toon 1.jpg | Bin 0 -> 28194 bytes data/TCP/TCP Vampire 1.jpg | Bin 0 -> 21144 bytes data/TCP/TCP Vampire 2.jpg | Bin 0 -> 31217 bytes data/TCP/TCP Vampire 4.jpg | Bin 0 -> 27067 bytes data/TCP/license.txt | 9 + data/TCP/readme.txt | 13 + data/TCP/thumbs.html | 119 ++++ data/TCP/thumbs/TCP Armored 1.jpg | Bin 0 -> 30185 bytes data/TCP/thumbs/TCP Armored 2.jpg | Bin 0 -> 35207 bytes data/TCP/thumbs/TCP Armored 3.jpg | Bin 0 -> 30333 bytes data/TCP/thumbs/TCP Armored 4.jpg | Bin 0 -> 34126 bytes data/TCP/thumbs/TCP Armored 5.jpg | Bin 0 -> 40629 bytes data/TCP/thumbs/TCP Armored 6.jpg | Bin 0 -> 39495 bytes data/TCP/thumbs/TCP Cyberpunk 1.jpg | Bin 0 -> 36499 bytes data/TCP/thumbs/TCP Cyberpunk 2.jpg | Bin 0 -> 33444 bytes data/TCP/thumbs/TCP Cyberpunk 3.jpg | Bin 0 -> 26135 bytes data/TCP/thumbs/TCP Cyberpunk 4.jpg | Bin 0 -> 26499 bytes data/TCP/thumbs/TCP Cyberpunk 5.jpg | Bin 0 -> 24923 bytes data/TCP/thumbs/TCP Cyberpunk 6.jpg | Bin 0 -> 30305 bytes data/TCP/thumbs/TCP Cyberpunk 7.jpg | Bin 0 -> 36678 bytes data/TCP/thumbs/TCP Cyberpunk 8.jpg | Bin 0 -> 31350 bytes data/TCP/thumbs/TCP Cyberpunk 9.jpg | Bin 0 -> 34266 bytes data/TCP/thumbs/TCP Dwarf 1.jpg | Bin 0 -> 35251 bytes data/TCP/thumbs/TCP Dwarf 2.jpg | Bin 0 -> 33638 bytes data/TCP/thumbs/TCP Dwarf 3.jpg | Bin 0 -> 32684 bytes data/TCP/thumbs/TCP Dwarf 4.jpg | Bin 0 -> 27291 bytes data/TCP/thumbs/TCP Dwarf 5.jpg | Bin 0 -> 30842 bytes data/TCP/thumbs/TCP Dwarf 6.jpg | Bin 0 -> 26524 bytes data/TCP/thumbs/TCP Elf 1.jpg | Bin 0 -> 33517 bytes data/TCP/thumbs/TCP Elf 2.jpg | Bin 0 -> 35141 bytes data/TCP/thumbs/TCP Elf 3.jpg | Bin 0 -> 26042 bytes data/TCP/thumbs/TCP Elf 4.jpg | Bin 0 -> 23922 bytes data/TCP/thumbs/TCP Elf 5.jpg | Bin 0 -> 26200 bytes data/TCP/thumbs/TCP Elf 6.jpg | Bin 0 -> 30110 bytes data/TCP/thumbs/TCP Elf 7.jpg | Bin 0 -> 28979 bytes data/TCP/thumbs/TCP Elf 8.jpg | Bin 0 -> 28557 bytes data/TCP/thumbs/TCP Elf 9.jpg | Bin 0 -> 27475 bytes data/TCP/thumbs/TCP Gnome 1.jpg | Bin 0 -> 26771 bytes data/TCP/thumbs/TCP Gnome 2.jpg | Bin 0 -> 28670 bytes data/TCP/thumbs/TCP Hero 1.jpg | Bin 0 -> 29650 bytes data/TCP/thumbs/TCP Hero 2.jpg | Bin 0 -> 25792 bytes data/TCP/thumbs/TCP Hero 3.jpg | Bin 0 -> 29193 bytes data/TCP/thumbs/TCP Human 1.jpg | Bin 0 -> 28286 bytes data/TCP/thumbs/TCP Human 2.jpg | Bin 0 -> 30037 bytes data/TCP/thumbs/TCP Human 3.jpg | Bin 0 -> 24494 bytes data/TCP/thumbs/TCP Human 4.jpg | Bin 0 -> 26165 bytes data/TCP/thumbs/TCP Human 5.jpg | Bin 0 -> 30853 bytes data/TCP/thumbs/TCP Human 6.jpg | Bin 0 -> 25307 bytes data/TCP/thumbs/TCP Human 7.jpg | Bin 0 -> 38038 bytes data/TCP/thumbs/TCP Human 8.jpg | Bin 0 -> 28948 bytes data/TCP/thumbs/TCP Human 9.jpg | Bin 0 -> 37234 bytes data/TCP/thumbs/TCP Ithilid 1.jpg | Bin 0 -> 38243 bytes data/TCP/thumbs/TCP Mad Scientist 1.jpg | Bin 0 -> 32728 bytes data/TCP/thumbs/TCP Mad Scientist 2.jpg | Bin 0 -> 36414 bytes data/TCP/thumbs/TCP Manimal 1.jpg | Bin 0 -> 44563 bytes data/TCP/thumbs/TCP Manimal 2.jpg | Bin 0 -> 23893 bytes data/TCP/thumbs/TCP Manimal 3.jpg | Bin 0 -> 36094 bytes data/TCP/thumbs/TCP Manimal 4.jpg | Bin 0 -> 23567 bytes data/TCP/thumbs/TCP Manimal 5.jpg | Bin 0 -> 39141 bytes data/TCP/thumbs/TCP Manimal 6.jpg | Bin 0 -> 32284 bytes data/TCP/thumbs/TCP Manimal 7.jpg | Bin 0 -> 34196 bytes data/TCP/thumbs/TCP Manimal 8.jpg | Bin 0 -> 36649 bytes data/TCP/thumbs/TCP Manimal 9.jpg | Bin 0 -> 41663 bytes data/TCP/thumbs/TCP Pirate 1.jpg | Bin 0 -> 25823 bytes data/TCP/thumbs/TCP Pirate 2.jpg | Bin 0 -> 29290 bytes data/TCP/thumbs/TCP Pirate 3.jpg | Bin 0 -> 34764 bytes data/TCP/thumbs/TCP Pirate 4.jpg | Bin 0 -> 31894 bytes data/TCP/thumbs/TCP Pirate 5.jpg | Bin 0 -> 26100 bytes data/TCP/thumbs/TCP Pirate 6.jpg | Bin 0 -> 35957 bytes data/TCP/thumbs/TCP Pirate 7.jpg | Bin 0 -> 34088 bytes data/TCP/thumbs/TCP Robot 1.jpg | Bin 0 -> 34795 bytes data/TCP/thumbs/TCP Robot 2.jpg | Bin 0 -> 26152 bytes data/TCP/thumbs/TCP Robot 3.jpg | Bin 0 -> 29342 bytes data/TCP/thumbs/TCP Robot 4.jpg | Bin 0 -> 35393 bytes data/TCP/thumbs/TCP Robot 5.jpg | Bin 0 -> 31733 bytes data/TCP/thumbs/TCP Robot 6.jpg | Bin 0 -> 35704 bytes data/TCP/thumbs/TCP Robot 7.jpg | Bin 0 -> 25910 bytes data/TCP/thumbs/TCP Robot 8.jpg | Bin 0 -> 24408 bytes data/TCP/thumbs/TCP Robot 9.jpg | Bin 0 -> 35391 bytes data/TCP/thumbs/TCP Scary 1.jpg | Bin 0 -> 31309 bytes data/TCP/thumbs/TCP Scary 2.jpg | Bin 0 -> 32865 bytes data/TCP/thumbs/TCP Scary 3.jpg | Bin 0 -> 23593 bytes data/TCP/thumbs/TCP Scary 4.jpg | Bin 0 -> 36928 bytes data/TCP/thumbs/TCP Scary 5.jpg | Bin 0 -> 36781 bytes data/TCP/thumbs/TCP Scary 6.jpg | Bin 0 -> 30467 bytes data/TCP/thumbs/TCP Scary 7.jpg | Bin 0 -> 32033 bytes data/TCP/thumbs/TCP Steampunk 1.jpg | Bin 0 -> 35255 bytes data/TCP/thumbs/TCP Steampunk 2.jpg | Bin 0 -> 29452 bytes data/TCP/thumbs/TCP Steampunk 3.jpg | Bin 0 -> 33857 bytes data/TCP/thumbs/TCP Steampunk 4.jpg | Bin 0 -> 27215 bytes data/TCP/thumbs/TCP Steampunk 5.jpg | Bin 0 -> 31559 bytes data/TCP/thumbs/TCP Steampunk 6.jpg | Bin 0 -> 26196 bytes data/TCP/thumbs/TCP Steampunk 7.jpg | Bin 0 -> 34830 bytes data/TCP/thumbs/TCP Toon 1.jpg | Bin 0 -> 32542 bytes data/TCP/thumbs/TCP Troll 1.jpg | Bin 0 -> 31080 bytes data/TCP/thumbs/TCP Troll 2.jpg | Bin 0 -> 36706 bytes data/TCP/thumbs/TCP Troll 3.jpg | Bin 0 -> 35160 bytes data/TCP/thumbs/TCP Troll 4.jpg | Bin 0 -> 33539 bytes data/TCP/thumbs/TCP Troll 5.jpg | Bin 0 -> 28235 bytes data/TCP/thumbs/TCP Troll 6.jpg | Bin 0 -> 28166 bytes data/TCP/thumbs/TCP Troll 7.jpg | Bin 0 -> 31164 bytes data/TCP/thumbs/TCP Troll 8.jpg | Bin 0 -> 35783 bytes data/TCP/thumbs/TCP Troll 9.jpg | Bin 0 -> 33259 bytes data/TCP/thumbs/TCP Vampire 1.jpg | Bin 0 -> 24667 bytes data/TCP/thumbs/TCP Vampire 2.jpg | Bin 0 -> 35413 bytes data/TCP/thumbs/TCP Vampire 3.jpg | Bin 0 -> 25976 bytes data/TCP/thumbs/TCP Vampire 4.jpg | Bin 0 -> 27399 bytes data/TCP/thumbs/TCP Vampire 5.jpg | Bin 0 -> 26311 bytes data/TCP/thumbs/TCP Zombie 1.jpg | Bin 0 -> 30622 bytes data/TCP/thumbs/TCP Zombie 2.jpg | Bin 0 -> 29421 bytes data/TCP/thumbs/TCP Zombie 3.jpg | Bin 0 -> 28186 bytes data/TCP/thumbs/TCP Zombie 4.jpg | Bin 0 -> 30974 bytes data/TCP/thumbs/TCP Zombie 5.jpg | Bin 0 -> 33169 bytes data/TCP/thumbs/TCP Zombie 6.jpg | Bin 0 -> 31289 bytes data/TCP/thumbs/TCP Zombie 7.jpg | Bin 0 -> 28776 bytes data/bankrupt.png | Bin 0 -> 11721 bytes data/credit.lua | 1166 +++++++++++++++++++++++++++++++ data/deviceinit.lua | 91 +++ data/first_names.lua | 202 ++++++ data/init.lua | 20 + data/last_names.lua | 1003 ++++++++++++++++++++++++++ data/lvl1_intro.png | Bin 0 -> 25370 bytes data/lvl1_intro.xcf | Bin 0 -> 415354 bytes data/lvl2_intro.png | Bin 0 -> 26930 bytes data/lvl3_intro.png | Bin 0 -> 18707 bytes data/lvl4_intro.png | Bin 0 -> 21735 bytes data/lvl5_intro.png | Bin 0 -> 29735 bytes data/lvl6_intro.png | Bin 0 -> 15965 bytes data/lvl7_intro.png | Bin 0 -> 12773 bytes data/lvl8_intro.png | Bin 0 -> 18520 bytes data/lvl9_intro.png | Bin 0 -> 14548 bytes data/lvlfinal_intro.png | Bin 0 -> 8124 bytes data/mahjong.lua | 886 +++++++++++++++++++++++ data/names.txt | 200 ++++++ data/portraits.lua | 33 + data/res/font.xml | Bin 0 -> 181152 bytes data/res/font0.png | Bin 0 -> 114640 bytes data/res/font1.png | Bin 0 -> 101596 bytes data/res/font2.png | Bin 0 -> 39061 bytes data/smol/TCP Cyberpunk 3.jpg | Bin 0 -> 11347 bytes data/smol/TCP Cyberpunk 5.jpg | Bin 0 -> 8284 bytes data/smol/TCP Dwarf 1.jpg | Bin 0 -> 13576 bytes data/smol/TCP Dwarf 4.jpg | Bin 0 -> 10200 bytes data/smol/TCP Dwarf 6.jpg | Bin 0 -> 11413 bytes data/smol/TCP Elf 2.jpg | Bin 0 -> 14341 bytes data/smol/TCP Gnome 1.jpg | Bin 0 -> 11689 bytes data/smol/TCP Gnome 2.jpg | Bin 0 -> 12284 bytes data/smol/TCP Hero 1.jpg | Bin 0 -> 14345 bytes data/smol/TCP Hero 3.jpg | Bin 0 -> 11985 bytes data/smol/TCP Human 1.jpg | Bin 0 -> 10920 bytes data/smol/TCP Human 2.jpg | Bin 0 -> 10920 bytes data/smol/TCP Human 3.jpg | Bin 0 -> 9863 bytes data/smol/TCP Human 4.jpg | Bin 0 -> 10294 bytes data/smol/TCP Human 5.jpg | Bin 0 -> 11436 bytes data/smol/TCP Human 6.jpg | Bin 0 -> 10352 bytes data/smol/TCP Human 7.jpg | Bin 0 -> 15892 bytes data/smol/TCP Human 8.jpg | Bin 0 -> 11570 bytes data/smol/TCP Human 9.jpg | Bin 0 -> 16251 bytes data/smol/TCP Mad Scientist 2.jpg | Bin 0 -> 14426 bytes data/smol/TCP Pirate 1.jpg | Bin 0 -> 10899 bytes data/smol/TCP Pirate 2.jpg | Bin 0 -> 11792 bytes data/smol/TCP Pirate 5.jpg | Bin 0 -> 10302 bytes data/smol/TCP Scary 1.jpg | Bin 0 -> 12276 bytes data/smol/TCP Scary 2.jpg | Bin 0 -> 15533 bytes data/smol/TCP Scary 3.jpg | Bin 0 -> 9478 bytes data/smol/TCP Toon 1.jpg | Bin 0 -> 13816 bytes data/smol/TCP Vampire 1.jpg | Bin 0 -> 10074 bytes data/smol/TCP Vampire 2.jpg | Bin 0 -> 15996 bytes data/smol/TCP Vampire 4.jpg | Bin 0 -> 13941 bytes data/traits.lua | 134 ++++ 204 files changed, 3877 insertions(+), 2 deletions(-) create mode 100644 bin/Irrlicht.dll create mode 100644 bin/brokengine_client.exe create mode 100644 bin/libgcc_s_seh-1.dll create mode 100644 bin/libstdc++-6.dll create mode 100644 bin/libwinpthread-1.dll create mode 100644 data/.gitignore create mode 100644 data/TCP.zip create mode 100644 data/TCP/TCP Cyberpunk 3.jpg create mode 100644 data/TCP/TCP Cyberpunk 5.jpg create mode 100644 data/TCP/TCP Dwarf 1.jpg create mode 100644 data/TCP/TCP Dwarf 4.jpg create mode 100644 data/TCP/TCP Dwarf 6.jpg create mode 100644 data/TCP/TCP Elf 2.jpg create mode 100644 data/TCP/TCP Gnome 1.jpg create mode 100644 data/TCP/TCP Gnome 2.jpg create mode 100644 data/TCP/TCP Hero 1.jpg create mode 100644 data/TCP/TCP Hero 3.jpg create mode 100644 data/TCP/TCP Human 1.jpg create mode 100644 data/TCP/TCP Human 2.jpg create mode 100644 data/TCP/TCP Human 3.jpg create mode 100644 data/TCP/TCP Human 4.jpg create mode 100644 data/TCP/TCP Human 5.jpg create mode 100644 data/TCP/TCP Human 6.jpg create mode 100644 data/TCP/TCP Human 7.jpg create mode 100644 data/TCP/TCP Human 8.jpg create mode 100644 data/TCP/TCP Human 9.jpg create mode 100644 data/TCP/TCP Mad Scientist 2.jpg create mode 100644 data/TCP/TCP Pirate 1.jpg create mode 100644 data/TCP/TCP Pirate 2.jpg create mode 100644 data/TCP/TCP Pirate 5.jpg create mode 100644 data/TCP/TCP Scary 1.jpg create mode 100644 data/TCP/TCP Scary 2.jpg create mode 100644 data/TCP/TCP Scary 3.jpg create mode 100644 data/TCP/TCP Toon 1.jpg create mode 100644 data/TCP/TCP Vampire 1.jpg create mode 100644 data/TCP/TCP Vampire 2.jpg create mode 100644 data/TCP/TCP Vampire 4.jpg create mode 100644 data/TCP/license.txt create mode 100644 data/TCP/readme.txt create mode 100644 data/TCP/thumbs.html create mode 100644 data/TCP/thumbs/TCP Armored 1.jpg create mode 100644 data/TCP/thumbs/TCP Armored 2.jpg create mode 100644 data/TCP/thumbs/TCP Armored 3.jpg create mode 100644 data/TCP/thumbs/TCP Armored 4.jpg create mode 100644 data/TCP/thumbs/TCP Armored 5.jpg create mode 100644 data/TCP/thumbs/TCP Armored 6.jpg create mode 100644 data/TCP/thumbs/TCP Cyberpunk 1.jpg create mode 100644 data/TCP/thumbs/TCP Cyberpunk 2.jpg create mode 100644 data/TCP/thumbs/TCP Cyberpunk 3.jpg create mode 100644 data/TCP/thumbs/TCP Cyberpunk 4.jpg create mode 100644 data/TCP/thumbs/TCP Cyberpunk 5.jpg create mode 100644 data/TCP/thumbs/TCP Cyberpunk 6.jpg create mode 100644 data/TCP/thumbs/TCP Cyberpunk 7.jpg create mode 100644 data/TCP/thumbs/TCP Cyberpunk 8.jpg create mode 100644 data/TCP/thumbs/TCP Cyberpunk 9.jpg create mode 100644 data/TCP/thumbs/TCP Dwarf 1.jpg create mode 100644 data/TCP/thumbs/TCP Dwarf 2.jpg create mode 100644 data/TCP/thumbs/TCP Dwarf 3.jpg create mode 100644 data/TCP/thumbs/TCP Dwarf 4.jpg create mode 100644 data/TCP/thumbs/TCP Dwarf 5.jpg create mode 100644 data/TCP/thumbs/TCP Dwarf 6.jpg create mode 100644 data/TCP/thumbs/TCP Elf 1.jpg create mode 100644 data/TCP/thumbs/TCP Elf 2.jpg create mode 100644 data/TCP/thumbs/TCP Elf 3.jpg create mode 100644 data/TCP/thumbs/TCP Elf 4.jpg create mode 100644 data/TCP/thumbs/TCP Elf 5.jpg create mode 100644 data/TCP/thumbs/TCP Elf 6.jpg create mode 100644 data/TCP/thumbs/TCP Elf 7.jpg create mode 100644 data/TCP/thumbs/TCP Elf 8.jpg create mode 100644 data/TCP/thumbs/TCP Elf 9.jpg create mode 100644 data/TCP/thumbs/TCP Gnome 1.jpg create mode 100644 data/TCP/thumbs/TCP Gnome 2.jpg create mode 100644 data/TCP/thumbs/TCP Hero 1.jpg create mode 100644 data/TCP/thumbs/TCP Hero 2.jpg create mode 100644 data/TCP/thumbs/TCP Hero 3.jpg create mode 100644 data/TCP/thumbs/TCP Human 1.jpg create mode 100644 data/TCP/thumbs/TCP Human 2.jpg create mode 100644 data/TCP/thumbs/TCP Human 3.jpg create mode 100644 data/TCP/thumbs/TCP Human 4.jpg create mode 100644 data/TCP/thumbs/TCP Human 5.jpg create mode 100644 data/TCP/thumbs/TCP Human 6.jpg create mode 100644 data/TCP/thumbs/TCP Human 7.jpg create mode 100644 data/TCP/thumbs/TCP Human 8.jpg create mode 100644 data/TCP/thumbs/TCP Human 9.jpg create mode 100644 data/TCP/thumbs/TCP Ithilid 1.jpg create mode 100644 data/TCP/thumbs/TCP Mad Scientist 1.jpg create mode 100644 data/TCP/thumbs/TCP Mad Scientist 2.jpg create mode 100644 data/TCP/thumbs/TCP Manimal 1.jpg create mode 100644 data/TCP/thumbs/TCP Manimal 2.jpg create mode 100644 data/TCP/thumbs/TCP Manimal 3.jpg create mode 100644 data/TCP/thumbs/TCP Manimal 4.jpg create mode 100644 data/TCP/thumbs/TCP Manimal 5.jpg create mode 100644 data/TCP/thumbs/TCP Manimal 6.jpg create mode 100644 data/TCP/thumbs/TCP Manimal 7.jpg create mode 100644 data/TCP/thumbs/TCP Manimal 8.jpg create mode 100644 data/TCP/thumbs/TCP Manimal 9.jpg create mode 100644 data/TCP/thumbs/TCP Pirate 1.jpg create mode 100644 data/TCP/thumbs/TCP Pirate 2.jpg create mode 100644 data/TCP/thumbs/TCP Pirate 3.jpg create mode 100644 data/TCP/thumbs/TCP Pirate 4.jpg create mode 100644 data/TCP/thumbs/TCP Pirate 5.jpg create mode 100644 data/TCP/thumbs/TCP Pirate 6.jpg create mode 100644 data/TCP/thumbs/TCP Pirate 7.jpg create mode 100644 data/TCP/thumbs/TCP Robot 1.jpg create mode 100644 data/TCP/thumbs/TCP Robot 2.jpg create mode 100644 data/TCP/thumbs/TCP Robot 3.jpg create mode 100644 data/TCP/thumbs/TCP Robot 4.jpg create mode 100644 data/TCP/thumbs/TCP Robot 5.jpg create mode 100644 data/TCP/thumbs/TCP Robot 6.jpg create mode 100644 data/TCP/thumbs/TCP Robot 7.jpg create mode 100644 data/TCP/thumbs/TCP Robot 8.jpg create mode 100644 data/TCP/thumbs/TCP Robot 9.jpg create mode 100644 data/TCP/thumbs/TCP Scary 1.jpg create mode 100644 data/TCP/thumbs/TCP Scary 2.jpg create mode 100644 data/TCP/thumbs/TCP Scary 3.jpg create mode 100644 data/TCP/thumbs/TCP Scary 4.jpg create mode 100644 data/TCP/thumbs/TCP Scary 5.jpg create mode 100644 data/TCP/thumbs/TCP Scary 6.jpg create mode 100644 data/TCP/thumbs/TCP Scary 7.jpg create mode 100644 data/TCP/thumbs/TCP Steampunk 1.jpg create mode 100644 data/TCP/thumbs/TCP Steampunk 2.jpg create mode 100644 data/TCP/thumbs/TCP Steampunk 3.jpg create mode 100644 data/TCP/thumbs/TCP Steampunk 4.jpg create mode 100644 data/TCP/thumbs/TCP Steampunk 5.jpg create mode 100644 data/TCP/thumbs/TCP Steampunk 6.jpg create mode 100644 data/TCP/thumbs/TCP Steampunk 7.jpg create mode 100644 data/TCP/thumbs/TCP Toon 1.jpg create mode 100644 data/TCP/thumbs/TCP Troll 1.jpg create mode 100644 data/TCP/thumbs/TCP Troll 2.jpg create mode 100644 data/TCP/thumbs/TCP Troll 3.jpg create mode 100644 data/TCP/thumbs/TCP Troll 4.jpg create mode 100644 data/TCP/thumbs/TCP Troll 5.jpg create mode 100644 data/TCP/thumbs/TCP Troll 6.jpg create mode 100644 data/TCP/thumbs/TCP Troll 7.jpg create mode 100644 data/TCP/thumbs/TCP Troll 8.jpg create mode 100644 data/TCP/thumbs/TCP Troll 9.jpg create mode 100644 data/TCP/thumbs/TCP Vampire 1.jpg create mode 100644 data/TCP/thumbs/TCP Vampire 2.jpg create mode 100644 data/TCP/thumbs/TCP Vampire 3.jpg create mode 100644 data/TCP/thumbs/TCP Vampire 4.jpg create mode 100644 data/TCP/thumbs/TCP Vampire 5.jpg create mode 100644 data/TCP/thumbs/TCP Zombie 1.jpg create mode 100644 data/TCP/thumbs/TCP Zombie 2.jpg create mode 100644 data/TCP/thumbs/TCP Zombie 3.jpg create mode 100644 data/TCP/thumbs/TCP Zombie 4.jpg create mode 100644 data/TCP/thumbs/TCP Zombie 5.jpg create mode 100644 data/TCP/thumbs/TCP Zombie 6.jpg create mode 100644 data/TCP/thumbs/TCP Zombie 7.jpg create mode 100644 data/bankrupt.png create mode 100644 data/credit.lua create mode 100644 data/deviceinit.lua create mode 100644 data/first_names.lua create mode 100644 data/init.lua create mode 100644 data/last_names.lua create mode 100644 data/lvl1_intro.png create mode 100644 data/lvl1_intro.xcf create mode 100644 data/lvl2_intro.png create mode 100644 data/lvl3_intro.png create mode 100644 data/lvl4_intro.png create mode 100644 data/lvl5_intro.png create mode 100644 data/lvl6_intro.png create mode 100644 data/lvl7_intro.png create mode 100644 data/lvl8_intro.png create mode 100644 data/lvl9_intro.png create mode 100644 data/lvlfinal_intro.png create mode 100644 data/mahjong.lua create mode 100644 data/names.txt create mode 100644 data/portraits.lua create mode 100644 data/res/font.xml create mode 100644 data/res/font0.png create mode 100644 data/res/font1.png create mode 100644 data/res/font2.png create mode 100644 data/smol/TCP Cyberpunk 3.jpg create mode 100644 data/smol/TCP Cyberpunk 5.jpg create mode 100644 data/smol/TCP Dwarf 1.jpg create mode 100644 data/smol/TCP Dwarf 4.jpg create mode 100644 data/smol/TCP Dwarf 6.jpg create mode 100644 data/smol/TCP Elf 2.jpg create mode 100644 data/smol/TCP Gnome 1.jpg create mode 100644 data/smol/TCP Gnome 2.jpg create mode 100644 data/smol/TCP Hero 1.jpg create mode 100644 data/smol/TCP Hero 3.jpg create mode 100644 data/smol/TCP Human 1.jpg create mode 100644 data/smol/TCP Human 2.jpg create mode 100644 data/smol/TCP Human 3.jpg create mode 100644 data/smol/TCP Human 4.jpg create mode 100644 data/smol/TCP Human 5.jpg create mode 100644 data/smol/TCP Human 6.jpg create mode 100644 data/smol/TCP Human 7.jpg create mode 100644 data/smol/TCP Human 8.jpg create mode 100644 data/smol/TCP Human 9.jpg create mode 100644 data/smol/TCP Mad Scientist 2.jpg create mode 100644 data/smol/TCP Pirate 1.jpg create mode 100644 data/smol/TCP Pirate 2.jpg create mode 100644 data/smol/TCP Pirate 5.jpg create mode 100644 data/smol/TCP Scary 1.jpg create mode 100644 data/smol/TCP Scary 2.jpg create mode 100644 data/smol/TCP Scary 3.jpg create mode 100644 data/smol/TCP Toon 1.jpg create mode 100644 data/smol/TCP Vampire 1.jpg create mode 100644 data/smol/TCP Vampire 2.jpg create mode 100644 data/smol/TCP Vampire 4.jpg create mode 100644 data/traits.lua diff --git a/bin/.gitignore b/bin/.gitignore index 8620bdd..e69de29 100644 --- a/bin/.gitignore +++ b/bin/.gitignore @@ -1,2 +0,0 @@ -*.dll -*.exe diff --git a/bin/Irrlicht.dll b/bin/Irrlicht.dll new file mode 100644 index 0000000..7f3b09f Binary files /dev/null and b/bin/Irrlicht.dll differ diff --git a/bin/brokengine_client.exe b/bin/brokengine_client.exe new file mode 100644 index 0000000..4fd5c20 Binary files /dev/null and b/bin/brokengine_client.exe differ diff --git a/bin/libgcc_s_seh-1.dll b/bin/libgcc_s_seh-1.dll new file mode 100644 index 0000000..929d55b Binary files /dev/null and b/bin/libgcc_s_seh-1.dll differ diff --git a/bin/libstdc++-6.dll b/bin/libstdc++-6.dll new file mode 100644 index 0000000..305b81b Binary files /dev/null and b/bin/libstdc++-6.dll differ diff --git a/bin/libwinpthread-1.dll b/bin/libwinpthread-1.dll new file mode 100644 index 0000000..5820e18 Binary files /dev/null and b/bin/libwinpthread-1.dll differ diff --git a/data/.gitignore b/data/.gitignore new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/data/.gitignore @@ -0,0 +1 @@ + diff --git a/data/TCP.zip b/data/TCP.zip new file mode 100644 index 0000000..8c1290a Binary files /dev/null and b/data/TCP.zip differ diff --git a/data/TCP/TCP Cyberpunk 3.jpg b/data/TCP/TCP Cyberpunk 3.jpg new file mode 100644 index 0000000..ce9179a Binary files /dev/null and b/data/TCP/TCP Cyberpunk 3.jpg differ diff --git a/data/TCP/TCP Cyberpunk 5.jpg b/data/TCP/TCP Cyberpunk 5.jpg new file mode 100644 index 0000000..fc47523 Binary files /dev/null and b/data/TCP/TCP Cyberpunk 5.jpg differ diff --git a/data/TCP/TCP Dwarf 1.jpg b/data/TCP/TCP Dwarf 1.jpg new file mode 100644 index 0000000..c183834 Binary files /dev/null and b/data/TCP/TCP Dwarf 1.jpg differ diff --git a/data/TCP/TCP Dwarf 4.jpg b/data/TCP/TCP Dwarf 4.jpg new file mode 100644 index 0000000..8cc4fd7 Binary files /dev/null and b/data/TCP/TCP Dwarf 4.jpg differ diff --git a/data/TCP/TCP Dwarf 6.jpg b/data/TCP/TCP Dwarf 6.jpg new file mode 100644 index 0000000..d31867f Binary files /dev/null and b/data/TCP/TCP Dwarf 6.jpg differ diff --git a/data/TCP/TCP Elf 2.jpg b/data/TCP/TCP Elf 2.jpg new file mode 100644 index 0000000..f9f3dd7 Binary files /dev/null and b/data/TCP/TCP Elf 2.jpg differ diff --git a/data/TCP/TCP Gnome 1.jpg b/data/TCP/TCP Gnome 1.jpg new file mode 100644 index 0000000..1f771e6 Binary files /dev/null and b/data/TCP/TCP Gnome 1.jpg differ diff --git a/data/TCP/TCP Gnome 2.jpg b/data/TCP/TCP Gnome 2.jpg new file mode 100644 index 0000000..615cf7c Binary files /dev/null and b/data/TCP/TCP Gnome 2.jpg differ diff --git a/data/TCP/TCP Hero 1.jpg b/data/TCP/TCP Hero 1.jpg new file mode 100644 index 0000000..228dc19 Binary files /dev/null and b/data/TCP/TCP Hero 1.jpg differ diff --git a/data/TCP/TCP Hero 3.jpg b/data/TCP/TCP Hero 3.jpg new file mode 100644 index 0000000..566c010 Binary files /dev/null and b/data/TCP/TCP Hero 3.jpg differ diff --git a/data/TCP/TCP Human 1.jpg b/data/TCP/TCP Human 1.jpg new file mode 100644 index 0000000..633c049 Binary files /dev/null and b/data/TCP/TCP Human 1.jpg differ diff --git a/data/TCP/TCP Human 2.jpg b/data/TCP/TCP Human 2.jpg new file mode 100644 index 0000000..5b16a27 Binary files /dev/null and b/data/TCP/TCP Human 2.jpg differ diff --git a/data/TCP/TCP Human 3.jpg b/data/TCP/TCP Human 3.jpg new file mode 100644 index 0000000..17753e2 Binary files /dev/null and b/data/TCP/TCP Human 3.jpg differ diff --git a/data/TCP/TCP Human 4.jpg b/data/TCP/TCP Human 4.jpg new file mode 100644 index 0000000..072c3e4 Binary files /dev/null and b/data/TCP/TCP Human 4.jpg differ diff --git a/data/TCP/TCP Human 5.jpg b/data/TCP/TCP Human 5.jpg new file mode 100644 index 0000000..963f69f Binary files /dev/null and b/data/TCP/TCP Human 5.jpg differ diff --git a/data/TCP/TCP Human 6.jpg b/data/TCP/TCP Human 6.jpg new file mode 100644 index 0000000..01c72a9 Binary files /dev/null and b/data/TCP/TCP Human 6.jpg differ diff --git a/data/TCP/TCP Human 7.jpg b/data/TCP/TCP Human 7.jpg new file mode 100644 index 0000000..3c8bd7a Binary files /dev/null and b/data/TCP/TCP Human 7.jpg differ diff --git a/data/TCP/TCP Human 8.jpg b/data/TCP/TCP Human 8.jpg new file mode 100644 index 0000000..12887a1 Binary files /dev/null and b/data/TCP/TCP Human 8.jpg differ diff --git a/data/TCP/TCP Human 9.jpg b/data/TCP/TCP Human 9.jpg new file mode 100644 index 0000000..119450a Binary files /dev/null and b/data/TCP/TCP Human 9.jpg differ diff --git a/data/TCP/TCP Mad Scientist 2.jpg b/data/TCP/TCP Mad Scientist 2.jpg new file mode 100644 index 0000000..389b782 Binary files /dev/null and b/data/TCP/TCP Mad Scientist 2.jpg differ diff --git a/data/TCP/TCP Pirate 1.jpg b/data/TCP/TCP Pirate 1.jpg new file mode 100644 index 0000000..f636f73 Binary files /dev/null and b/data/TCP/TCP Pirate 1.jpg differ diff --git a/data/TCP/TCP Pirate 2.jpg b/data/TCP/TCP Pirate 2.jpg new file mode 100644 index 0000000..ff31630 Binary files /dev/null and b/data/TCP/TCP Pirate 2.jpg differ diff --git a/data/TCP/TCP Pirate 5.jpg b/data/TCP/TCP Pirate 5.jpg new file mode 100644 index 0000000..bfd02f1 Binary files /dev/null and b/data/TCP/TCP Pirate 5.jpg differ diff --git a/data/TCP/TCP Scary 1.jpg b/data/TCP/TCP Scary 1.jpg new file mode 100644 index 0000000..5a9d618 Binary files /dev/null and b/data/TCP/TCP Scary 1.jpg differ diff --git a/data/TCP/TCP Scary 2.jpg b/data/TCP/TCP Scary 2.jpg new file mode 100644 index 0000000..5dac35b Binary files /dev/null and b/data/TCP/TCP Scary 2.jpg differ diff --git a/data/TCP/TCP Scary 3.jpg b/data/TCP/TCP Scary 3.jpg new file mode 100644 index 0000000..0a42c32 Binary files /dev/null and b/data/TCP/TCP Scary 3.jpg differ diff --git a/data/TCP/TCP Toon 1.jpg b/data/TCP/TCP Toon 1.jpg new file mode 100644 index 0000000..7620763 Binary files /dev/null and b/data/TCP/TCP Toon 1.jpg differ diff --git a/data/TCP/TCP Vampire 1.jpg b/data/TCP/TCP Vampire 1.jpg new file mode 100644 index 0000000..f2a1804 Binary files /dev/null and b/data/TCP/TCP Vampire 1.jpg differ diff --git a/data/TCP/TCP Vampire 2.jpg b/data/TCP/TCP Vampire 2.jpg new file mode 100644 index 0000000..c27256d Binary files /dev/null and b/data/TCP/TCP Vampire 2.jpg differ diff --git a/data/TCP/TCP Vampire 4.jpg b/data/TCP/TCP Vampire 4.jpg new file mode 100644 index 0000000..2b6a87e Binary files /dev/null and b/data/TCP/TCP Vampire 4.jpg differ diff --git a/data/TCP/license.txt b/data/TCP/license.txt new file mode 100644 index 0000000..0c24fd1 --- /dev/null +++ b/data/TCP/license.txt @@ -0,0 +1,9 @@ +This work is licensed under the Creative Commons Attribution 3.0 Unported License. +To view a copy of this license, visit http://creativecommons.org/licenses/by/3.0/ +or send a letter to: + +Creative Commons +444 Castro Street +Suite 900 +Mountain View, California, 94041, USA + diff --git a/data/TCP/readme.txt b/data/TCP/readme.txt new file mode 100644 index 0000000..3fe60fe --- /dev/null +++ b/data/TCP/readme.txt @@ -0,0 +1,13 @@ +Thank you for downloading the Terrible Character Portraits. + +The art was done by Jeff Preston - http://team-preston.com + +The project was coordinated by Duane O'Brien - http://aterribleidea.com/ccworks/ + +The project was funded through Kickstarter - http://kck.st/dogX5W + +The backers were numerous and generous. You have our gratitude. + +Please respect the license, it is very open. See license.txt for details. + +Support the Creative Commons. diff --git a/data/TCP/thumbs.html b/data/TCP/thumbs.html new file mode 100644 index 0000000..8d81e2e --- /dev/null +++ b/data/TCP/thumbs.html @@ -0,0 +1,119 @@ +

These images are licensed under the Creative Commons Attribution 3.0 Unported License. +To view a copy of this license, visit +http://creativecommons.org/licenses/by/3.0/ +or send a letter to:
+ +Creative Commons
+444 Castro Street
+Suite 900
+Mountain View, California, 94041, USA
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/TCP/thumbs/TCP Armored 1.jpg b/data/TCP/thumbs/TCP Armored 1.jpg new file mode 100644 index 0000000..023e497 Binary files /dev/null and b/data/TCP/thumbs/TCP Armored 1.jpg differ diff --git a/data/TCP/thumbs/TCP Armored 2.jpg b/data/TCP/thumbs/TCP Armored 2.jpg new file mode 100644 index 0000000..0d3a4cd Binary files /dev/null and b/data/TCP/thumbs/TCP Armored 2.jpg differ diff --git a/data/TCP/thumbs/TCP Armored 3.jpg b/data/TCP/thumbs/TCP Armored 3.jpg new file mode 100644 index 0000000..c482cd5 Binary files /dev/null and b/data/TCP/thumbs/TCP Armored 3.jpg differ diff --git a/data/TCP/thumbs/TCP Armored 4.jpg b/data/TCP/thumbs/TCP Armored 4.jpg new file mode 100644 index 0000000..6942999 Binary files /dev/null and b/data/TCP/thumbs/TCP Armored 4.jpg differ diff --git a/data/TCP/thumbs/TCP Armored 5.jpg b/data/TCP/thumbs/TCP Armored 5.jpg new file mode 100644 index 0000000..f458467 Binary files /dev/null and b/data/TCP/thumbs/TCP Armored 5.jpg differ diff --git a/data/TCP/thumbs/TCP Armored 6.jpg b/data/TCP/thumbs/TCP Armored 6.jpg new file mode 100644 index 0000000..ffd70e9 Binary files /dev/null and b/data/TCP/thumbs/TCP Armored 6.jpg differ diff --git a/data/TCP/thumbs/TCP Cyberpunk 1.jpg b/data/TCP/thumbs/TCP Cyberpunk 1.jpg new file mode 100644 index 0000000..ca1ed2f Binary files /dev/null and b/data/TCP/thumbs/TCP Cyberpunk 1.jpg differ diff --git a/data/TCP/thumbs/TCP Cyberpunk 2.jpg b/data/TCP/thumbs/TCP Cyberpunk 2.jpg new file mode 100644 index 0000000..80ccd89 Binary files /dev/null and b/data/TCP/thumbs/TCP Cyberpunk 2.jpg differ diff --git a/data/TCP/thumbs/TCP Cyberpunk 3.jpg b/data/TCP/thumbs/TCP Cyberpunk 3.jpg new file mode 100644 index 0000000..413d188 Binary files /dev/null and b/data/TCP/thumbs/TCP Cyberpunk 3.jpg differ diff --git a/data/TCP/thumbs/TCP Cyberpunk 4.jpg b/data/TCP/thumbs/TCP Cyberpunk 4.jpg new file mode 100644 index 0000000..fdecaf6 Binary files /dev/null and b/data/TCP/thumbs/TCP Cyberpunk 4.jpg differ diff --git a/data/TCP/thumbs/TCP Cyberpunk 5.jpg b/data/TCP/thumbs/TCP Cyberpunk 5.jpg new file mode 100644 index 0000000..269dd7f Binary files /dev/null and b/data/TCP/thumbs/TCP Cyberpunk 5.jpg differ diff --git a/data/TCP/thumbs/TCP Cyberpunk 6.jpg b/data/TCP/thumbs/TCP Cyberpunk 6.jpg new file mode 100644 index 0000000..711bbcd Binary files /dev/null and b/data/TCP/thumbs/TCP Cyberpunk 6.jpg differ diff --git a/data/TCP/thumbs/TCP Cyberpunk 7.jpg b/data/TCP/thumbs/TCP Cyberpunk 7.jpg new file mode 100644 index 0000000..9f28666 Binary files /dev/null and b/data/TCP/thumbs/TCP Cyberpunk 7.jpg differ diff --git a/data/TCP/thumbs/TCP Cyberpunk 8.jpg b/data/TCP/thumbs/TCP Cyberpunk 8.jpg new file mode 100644 index 0000000..cc8c56f Binary files /dev/null and b/data/TCP/thumbs/TCP Cyberpunk 8.jpg differ diff --git a/data/TCP/thumbs/TCP Cyberpunk 9.jpg b/data/TCP/thumbs/TCP Cyberpunk 9.jpg new file mode 100644 index 0000000..85ae007 Binary files /dev/null and b/data/TCP/thumbs/TCP Cyberpunk 9.jpg differ diff --git a/data/TCP/thumbs/TCP Dwarf 1.jpg b/data/TCP/thumbs/TCP Dwarf 1.jpg new file mode 100644 index 0000000..6b764a1 Binary files /dev/null and b/data/TCP/thumbs/TCP Dwarf 1.jpg differ diff --git a/data/TCP/thumbs/TCP Dwarf 2.jpg b/data/TCP/thumbs/TCP Dwarf 2.jpg new file mode 100644 index 0000000..953ef54 Binary files /dev/null and b/data/TCP/thumbs/TCP Dwarf 2.jpg differ diff --git a/data/TCP/thumbs/TCP Dwarf 3.jpg b/data/TCP/thumbs/TCP Dwarf 3.jpg new file mode 100644 index 0000000..daaa6fd Binary files /dev/null and b/data/TCP/thumbs/TCP Dwarf 3.jpg differ diff --git a/data/TCP/thumbs/TCP Dwarf 4.jpg b/data/TCP/thumbs/TCP Dwarf 4.jpg new file mode 100644 index 0000000..045db43 Binary files /dev/null and b/data/TCP/thumbs/TCP Dwarf 4.jpg differ diff --git a/data/TCP/thumbs/TCP Dwarf 5.jpg b/data/TCP/thumbs/TCP Dwarf 5.jpg new file mode 100644 index 0000000..47bc5d4 Binary files /dev/null and b/data/TCP/thumbs/TCP Dwarf 5.jpg differ diff --git a/data/TCP/thumbs/TCP Dwarf 6.jpg b/data/TCP/thumbs/TCP Dwarf 6.jpg new file mode 100644 index 0000000..2bf75ed Binary files /dev/null and b/data/TCP/thumbs/TCP Dwarf 6.jpg differ diff --git a/data/TCP/thumbs/TCP Elf 1.jpg b/data/TCP/thumbs/TCP Elf 1.jpg new file mode 100644 index 0000000..b8aa856 Binary files /dev/null and b/data/TCP/thumbs/TCP Elf 1.jpg differ diff --git a/data/TCP/thumbs/TCP Elf 2.jpg b/data/TCP/thumbs/TCP Elf 2.jpg new file mode 100644 index 0000000..a2fa464 Binary files /dev/null and b/data/TCP/thumbs/TCP Elf 2.jpg differ diff --git a/data/TCP/thumbs/TCP Elf 3.jpg b/data/TCP/thumbs/TCP Elf 3.jpg new file mode 100644 index 0000000..1a02c53 Binary files /dev/null and b/data/TCP/thumbs/TCP Elf 3.jpg differ diff --git a/data/TCP/thumbs/TCP Elf 4.jpg b/data/TCP/thumbs/TCP Elf 4.jpg new file mode 100644 index 0000000..28ef3a0 Binary files /dev/null and b/data/TCP/thumbs/TCP Elf 4.jpg differ diff --git a/data/TCP/thumbs/TCP Elf 5.jpg b/data/TCP/thumbs/TCP Elf 5.jpg new file mode 100644 index 0000000..0518aac Binary files /dev/null and b/data/TCP/thumbs/TCP Elf 5.jpg differ diff --git a/data/TCP/thumbs/TCP Elf 6.jpg b/data/TCP/thumbs/TCP Elf 6.jpg new file mode 100644 index 0000000..1589fd2 Binary files /dev/null and b/data/TCP/thumbs/TCP Elf 6.jpg differ diff --git a/data/TCP/thumbs/TCP Elf 7.jpg b/data/TCP/thumbs/TCP Elf 7.jpg new file mode 100644 index 0000000..18a600a Binary files /dev/null and b/data/TCP/thumbs/TCP Elf 7.jpg differ diff --git a/data/TCP/thumbs/TCP Elf 8.jpg b/data/TCP/thumbs/TCP Elf 8.jpg new file mode 100644 index 0000000..5f0fd3b Binary files /dev/null and b/data/TCP/thumbs/TCP Elf 8.jpg differ diff --git a/data/TCP/thumbs/TCP Elf 9.jpg b/data/TCP/thumbs/TCP Elf 9.jpg new file mode 100644 index 0000000..c02024d Binary files /dev/null and b/data/TCP/thumbs/TCP Elf 9.jpg differ diff --git a/data/TCP/thumbs/TCP Gnome 1.jpg b/data/TCP/thumbs/TCP Gnome 1.jpg new file mode 100644 index 0000000..ad28401 Binary files /dev/null and b/data/TCP/thumbs/TCP Gnome 1.jpg differ diff --git a/data/TCP/thumbs/TCP Gnome 2.jpg b/data/TCP/thumbs/TCP Gnome 2.jpg new file mode 100644 index 0000000..f5610fa Binary files /dev/null and b/data/TCP/thumbs/TCP Gnome 2.jpg differ diff --git a/data/TCP/thumbs/TCP Hero 1.jpg b/data/TCP/thumbs/TCP Hero 1.jpg new file mode 100644 index 0000000..7a94424 Binary files /dev/null and b/data/TCP/thumbs/TCP Hero 1.jpg differ diff --git a/data/TCP/thumbs/TCP Hero 2.jpg b/data/TCP/thumbs/TCP Hero 2.jpg new file mode 100644 index 0000000..e63d156 Binary files /dev/null and b/data/TCP/thumbs/TCP Hero 2.jpg differ diff --git a/data/TCP/thumbs/TCP Hero 3.jpg b/data/TCP/thumbs/TCP Hero 3.jpg new file mode 100644 index 0000000..cc93be6 Binary files /dev/null and b/data/TCP/thumbs/TCP Hero 3.jpg differ diff --git a/data/TCP/thumbs/TCP Human 1.jpg b/data/TCP/thumbs/TCP Human 1.jpg new file mode 100644 index 0000000..d9e79c8 Binary files /dev/null and b/data/TCP/thumbs/TCP Human 1.jpg differ diff --git a/data/TCP/thumbs/TCP Human 2.jpg b/data/TCP/thumbs/TCP Human 2.jpg new file mode 100644 index 0000000..d309f7a Binary files /dev/null and b/data/TCP/thumbs/TCP Human 2.jpg differ diff --git a/data/TCP/thumbs/TCP Human 3.jpg b/data/TCP/thumbs/TCP Human 3.jpg new file mode 100644 index 0000000..f87acb1 Binary files /dev/null and b/data/TCP/thumbs/TCP Human 3.jpg differ diff --git a/data/TCP/thumbs/TCP Human 4.jpg b/data/TCP/thumbs/TCP Human 4.jpg new file mode 100644 index 0000000..92bb24a Binary files /dev/null and b/data/TCP/thumbs/TCP Human 4.jpg differ diff --git a/data/TCP/thumbs/TCP Human 5.jpg b/data/TCP/thumbs/TCP Human 5.jpg new file mode 100644 index 0000000..c998567 Binary files /dev/null and b/data/TCP/thumbs/TCP Human 5.jpg differ diff --git a/data/TCP/thumbs/TCP Human 6.jpg b/data/TCP/thumbs/TCP Human 6.jpg new file mode 100644 index 0000000..4fa58b3 Binary files /dev/null and b/data/TCP/thumbs/TCP Human 6.jpg differ diff --git a/data/TCP/thumbs/TCP Human 7.jpg b/data/TCP/thumbs/TCP Human 7.jpg new file mode 100644 index 0000000..e9c48ad Binary files /dev/null and b/data/TCP/thumbs/TCP Human 7.jpg differ diff --git a/data/TCP/thumbs/TCP Human 8.jpg b/data/TCP/thumbs/TCP Human 8.jpg new file mode 100644 index 0000000..ba4db9d Binary files /dev/null and b/data/TCP/thumbs/TCP Human 8.jpg differ diff --git a/data/TCP/thumbs/TCP Human 9.jpg b/data/TCP/thumbs/TCP Human 9.jpg new file mode 100644 index 0000000..58d0268 Binary files /dev/null and b/data/TCP/thumbs/TCP Human 9.jpg differ diff --git a/data/TCP/thumbs/TCP Ithilid 1.jpg b/data/TCP/thumbs/TCP Ithilid 1.jpg new file mode 100644 index 0000000..1271839 Binary files /dev/null and b/data/TCP/thumbs/TCP Ithilid 1.jpg differ diff --git a/data/TCP/thumbs/TCP Mad Scientist 1.jpg b/data/TCP/thumbs/TCP Mad Scientist 1.jpg new file mode 100644 index 0000000..876df39 Binary files /dev/null and b/data/TCP/thumbs/TCP Mad Scientist 1.jpg differ diff --git a/data/TCP/thumbs/TCP Mad Scientist 2.jpg b/data/TCP/thumbs/TCP Mad Scientist 2.jpg new file mode 100644 index 0000000..5f21e5a Binary files /dev/null and b/data/TCP/thumbs/TCP Mad Scientist 2.jpg differ diff --git a/data/TCP/thumbs/TCP Manimal 1.jpg b/data/TCP/thumbs/TCP Manimal 1.jpg new file mode 100644 index 0000000..b286f5d Binary files /dev/null and b/data/TCP/thumbs/TCP Manimal 1.jpg differ diff --git a/data/TCP/thumbs/TCP Manimal 2.jpg b/data/TCP/thumbs/TCP Manimal 2.jpg new file mode 100644 index 0000000..7edec29 Binary files /dev/null and b/data/TCP/thumbs/TCP Manimal 2.jpg differ diff --git a/data/TCP/thumbs/TCP Manimal 3.jpg b/data/TCP/thumbs/TCP Manimal 3.jpg new file mode 100644 index 0000000..5916d6d Binary files /dev/null and b/data/TCP/thumbs/TCP Manimal 3.jpg differ diff --git a/data/TCP/thumbs/TCP Manimal 4.jpg b/data/TCP/thumbs/TCP Manimal 4.jpg new file mode 100644 index 0000000..58bff69 Binary files /dev/null and b/data/TCP/thumbs/TCP Manimal 4.jpg differ diff --git a/data/TCP/thumbs/TCP Manimal 5.jpg b/data/TCP/thumbs/TCP Manimal 5.jpg new file mode 100644 index 0000000..4755df7 Binary files /dev/null and b/data/TCP/thumbs/TCP Manimal 5.jpg differ diff --git a/data/TCP/thumbs/TCP Manimal 6.jpg b/data/TCP/thumbs/TCP Manimal 6.jpg new file mode 100644 index 0000000..8554646 Binary files /dev/null and b/data/TCP/thumbs/TCP Manimal 6.jpg differ diff --git a/data/TCP/thumbs/TCP Manimal 7.jpg b/data/TCP/thumbs/TCP Manimal 7.jpg new file mode 100644 index 0000000..fb12f00 Binary files /dev/null and b/data/TCP/thumbs/TCP Manimal 7.jpg differ diff --git a/data/TCP/thumbs/TCP Manimal 8.jpg b/data/TCP/thumbs/TCP Manimal 8.jpg new file mode 100644 index 0000000..69a2463 Binary files /dev/null and b/data/TCP/thumbs/TCP Manimal 8.jpg differ diff --git a/data/TCP/thumbs/TCP Manimal 9.jpg b/data/TCP/thumbs/TCP Manimal 9.jpg new file mode 100644 index 0000000..b238da8 Binary files /dev/null and b/data/TCP/thumbs/TCP Manimal 9.jpg differ diff --git a/data/TCP/thumbs/TCP Pirate 1.jpg b/data/TCP/thumbs/TCP Pirate 1.jpg new file mode 100644 index 0000000..816e8d3 Binary files /dev/null and b/data/TCP/thumbs/TCP Pirate 1.jpg differ diff --git a/data/TCP/thumbs/TCP Pirate 2.jpg b/data/TCP/thumbs/TCP Pirate 2.jpg new file mode 100644 index 0000000..b04587e Binary files /dev/null and b/data/TCP/thumbs/TCP Pirate 2.jpg differ diff --git a/data/TCP/thumbs/TCP Pirate 3.jpg b/data/TCP/thumbs/TCP Pirate 3.jpg new file mode 100644 index 0000000..cc2ee93 Binary files /dev/null and b/data/TCP/thumbs/TCP Pirate 3.jpg differ diff --git a/data/TCP/thumbs/TCP Pirate 4.jpg b/data/TCP/thumbs/TCP Pirate 4.jpg new file mode 100644 index 0000000..201bc45 Binary files /dev/null and b/data/TCP/thumbs/TCP Pirate 4.jpg differ diff --git a/data/TCP/thumbs/TCP Pirate 5.jpg b/data/TCP/thumbs/TCP Pirate 5.jpg new file mode 100644 index 0000000..e0f19be Binary files /dev/null and b/data/TCP/thumbs/TCP Pirate 5.jpg differ diff --git a/data/TCP/thumbs/TCP Pirate 6.jpg b/data/TCP/thumbs/TCP Pirate 6.jpg new file mode 100644 index 0000000..d2ad184 Binary files /dev/null and b/data/TCP/thumbs/TCP Pirate 6.jpg differ diff --git a/data/TCP/thumbs/TCP Pirate 7.jpg b/data/TCP/thumbs/TCP Pirate 7.jpg new file mode 100644 index 0000000..9793979 Binary files /dev/null and b/data/TCP/thumbs/TCP Pirate 7.jpg differ diff --git a/data/TCP/thumbs/TCP Robot 1.jpg b/data/TCP/thumbs/TCP Robot 1.jpg new file mode 100644 index 0000000..54cf737 Binary files /dev/null and b/data/TCP/thumbs/TCP Robot 1.jpg differ diff --git a/data/TCP/thumbs/TCP Robot 2.jpg b/data/TCP/thumbs/TCP Robot 2.jpg new file mode 100644 index 0000000..e8bd866 Binary files /dev/null and b/data/TCP/thumbs/TCP Robot 2.jpg differ diff --git a/data/TCP/thumbs/TCP Robot 3.jpg b/data/TCP/thumbs/TCP Robot 3.jpg new file mode 100644 index 0000000..e330a9d Binary files /dev/null and b/data/TCP/thumbs/TCP Robot 3.jpg differ diff --git a/data/TCP/thumbs/TCP Robot 4.jpg b/data/TCP/thumbs/TCP Robot 4.jpg new file mode 100644 index 0000000..0f2e5c8 Binary files /dev/null and b/data/TCP/thumbs/TCP Robot 4.jpg differ diff --git a/data/TCP/thumbs/TCP Robot 5.jpg b/data/TCP/thumbs/TCP Robot 5.jpg new file mode 100644 index 0000000..ed96f93 Binary files /dev/null and b/data/TCP/thumbs/TCP Robot 5.jpg differ diff --git a/data/TCP/thumbs/TCP Robot 6.jpg b/data/TCP/thumbs/TCP Robot 6.jpg new file mode 100644 index 0000000..133a15d Binary files /dev/null and b/data/TCP/thumbs/TCP Robot 6.jpg differ diff --git a/data/TCP/thumbs/TCP Robot 7.jpg b/data/TCP/thumbs/TCP Robot 7.jpg new file mode 100644 index 0000000..83d631c Binary files /dev/null and b/data/TCP/thumbs/TCP Robot 7.jpg differ diff --git a/data/TCP/thumbs/TCP Robot 8.jpg b/data/TCP/thumbs/TCP Robot 8.jpg new file mode 100644 index 0000000..2b1684f Binary files /dev/null and b/data/TCP/thumbs/TCP Robot 8.jpg differ diff --git a/data/TCP/thumbs/TCP Robot 9.jpg b/data/TCP/thumbs/TCP Robot 9.jpg new file mode 100644 index 0000000..ff06cae Binary files /dev/null and b/data/TCP/thumbs/TCP Robot 9.jpg differ diff --git a/data/TCP/thumbs/TCP Scary 1.jpg b/data/TCP/thumbs/TCP Scary 1.jpg new file mode 100644 index 0000000..fa7ef0c Binary files /dev/null and b/data/TCP/thumbs/TCP Scary 1.jpg differ diff --git a/data/TCP/thumbs/TCP Scary 2.jpg b/data/TCP/thumbs/TCP Scary 2.jpg new file mode 100644 index 0000000..c19c836 Binary files /dev/null and b/data/TCP/thumbs/TCP Scary 2.jpg differ diff --git a/data/TCP/thumbs/TCP Scary 3.jpg b/data/TCP/thumbs/TCP Scary 3.jpg new file mode 100644 index 0000000..6070d1e Binary files /dev/null and b/data/TCP/thumbs/TCP Scary 3.jpg differ diff --git a/data/TCP/thumbs/TCP Scary 4.jpg b/data/TCP/thumbs/TCP Scary 4.jpg new file mode 100644 index 0000000..df17de3 Binary files /dev/null and b/data/TCP/thumbs/TCP Scary 4.jpg differ diff --git a/data/TCP/thumbs/TCP Scary 5.jpg b/data/TCP/thumbs/TCP Scary 5.jpg new file mode 100644 index 0000000..8667418 Binary files /dev/null and b/data/TCP/thumbs/TCP Scary 5.jpg differ diff --git a/data/TCP/thumbs/TCP Scary 6.jpg b/data/TCP/thumbs/TCP Scary 6.jpg new file mode 100644 index 0000000..c839a17 Binary files /dev/null and b/data/TCP/thumbs/TCP Scary 6.jpg differ diff --git a/data/TCP/thumbs/TCP Scary 7.jpg b/data/TCP/thumbs/TCP Scary 7.jpg new file mode 100644 index 0000000..72f8e75 Binary files /dev/null and b/data/TCP/thumbs/TCP Scary 7.jpg differ diff --git a/data/TCP/thumbs/TCP Steampunk 1.jpg b/data/TCP/thumbs/TCP Steampunk 1.jpg new file mode 100644 index 0000000..40fc404 Binary files /dev/null and b/data/TCP/thumbs/TCP Steampunk 1.jpg differ diff --git a/data/TCP/thumbs/TCP Steampunk 2.jpg b/data/TCP/thumbs/TCP Steampunk 2.jpg new file mode 100644 index 0000000..fd2794f Binary files /dev/null and b/data/TCP/thumbs/TCP Steampunk 2.jpg differ diff --git a/data/TCP/thumbs/TCP Steampunk 3.jpg b/data/TCP/thumbs/TCP Steampunk 3.jpg new file mode 100644 index 0000000..6979416 Binary files /dev/null and b/data/TCP/thumbs/TCP Steampunk 3.jpg differ diff --git a/data/TCP/thumbs/TCP Steampunk 4.jpg b/data/TCP/thumbs/TCP Steampunk 4.jpg new file mode 100644 index 0000000..c5226b5 Binary files /dev/null and b/data/TCP/thumbs/TCP Steampunk 4.jpg differ diff --git a/data/TCP/thumbs/TCP Steampunk 5.jpg b/data/TCP/thumbs/TCP Steampunk 5.jpg new file mode 100644 index 0000000..a70c1df Binary files /dev/null and b/data/TCP/thumbs/TCP Steampunk 5.jpg differ diff --git a/data/TCP/thumbs/TCP Steampunk 6.jpg b/data/TCP/thumbs/TCP Steampunk 6.jpg new file mode 100644 index 0000000..1fe44a5 Binary files /dev/null and b/data/TCP/thumbs/TCP Steampunk 6.jpg differ diff --git a/data/TCP/thumbs/TCP Steampunk 7.jpg b/data/TCP/thumbs/TCP Steampunk 7.jpg new file mode 100644 index 0000000..e36f51b Binary files /dev/null and b/data/TCP/thumbs/TCP Steampunk 7.jpg differ diff --git a/data/TCP/thumbs/TCP Toon 1.jpg b/data/TCP/thumbs/TCP Toon 1.jpg new file mode 100644 index 0000000..0be61ae Binary files /dev/null and b/data/TCP/thumbs/TCP Toon 1.jpg differ diff --git a/data/TCP/thumbs/TCP Troll 1.jpg b/data/TCP/thumbs/TCP Troll 1.jpg new file mode 100644 index 0000000..b48d48e Binary files /dev/null and b/data/TCP/thumbs/TCP Troll 1.jpg differ diff --git a/data/TCP/thumbs/TCP Troll 2.jpg b/data/TCP/thumbs/TCP Troll 2.jpg new file mode 100644 index 0000000..828bac5 Binary files /dev/null and b/data/TCP/thumbs/TCP Troll 2.jpg differ diff --git a/data/TCP/thumbs/TCP Troll 3.jpg b/data/TCP/thumbs/TCP Troll 3.jpg new file mode 100644 index 0000000..9ba1244 Binary files /dev/null and b/data/TCP/thumbs/TCP Troll 3.jpg differ diff --git a/data/TCP/thumbs/TCP Troll 4.jpg b/data/TCP/thumbs/TCP Troll 4.jpg new file mode 100644 index 0000000..8d876fd Binary files /dev/null and b/data/TCP/thumbs/TCP Troll 4.jpg differ diff --git a/data/TCP/thumbs/TCP Troll 5.jpg b/data/TCP/thumbs/TCP Troll 5.jpg new file mode 100644 index 0000000..ab85db4 Binary files /dev/null and b/data/TCP/thumbs/TCP Troll 5.jpg differ diff --git a/data/TCP/thumbs/TCP Troll 6.jpg b/data/TCP/thumbs/TCP Troll 6.jpg new file mode 100644 index 0000000..defa754 Binary files /dev/null and b/data/TCP/thumbs/TCP Troll 6.jpg differ diff --git a/data/TCP/thumbs/TCP Troll 7.jpg b/data/TCP/thumbs/TCP Troll 7.jpg new file mode 100644 index 0000000..10bcaf2 Binary files /dev/null and b/data/TCP/thumbs/TCP Troll 7.jpg differ diff --git a/data/TCP/thumbs/TCP Troll 8.jpg b/data/TCP/thumbs/TCP Troll 8.jpg new file mode 100644 index 0000000..7ce8477 Binary files /dev/null and b/data/TCP/thumbs/TCP Troll 8.jpg differ diff --git a/data/TCP/thumbs/TCP Troll 9.jpg b/data/TCP/thumbs/TCP Troll 9.jpg new file mode 100644 index 0000000..7563056 Binary files /dev/null and b/data/TCP/thumbs/TCP Troll 9.jpg differ diff --git a/data/TCP/thumbs/TCP Vampire 1.jpg b/data/TCP/thumbs/TCP Vampire 1.jpg new file mode 100644 index 0000000..8f3a391 Binary files /dev/null and b/data/TCP/thumbs/TCP Vampire 1.jpg differ diff --git a/data/TCP/thumbs/TCP Vampire 2.jpg b/data/TCP/thumbs/TCP Vampire 2.jpg new file mode 100644 index 0000000..b6a18e9 Binary files /dev/null and b/data/TCP/thumbs/TCP Vampire 2.jpg differ diff --git a/data/TCP/thumbs/TCP Vampire 3.jpg b/data/TCP/thumbs/TCP Vampire 3.jpg new file mode 100644 index 0000000..4edf67a Binary files /dev/null and b/data/TCP/thumbs/TCP Vampire 3.jpg differ diff --git a/data/TCP/thumbs/TCP Vampire 4.jpg b/data/TCP/thumbs/TCP Vampire 4.jpg new file mode 100644 index 0000000..6031262 Binary files /dev/null and b/data/TCP/thumbs/TCP Vampire 4.jpg differ diff --git a/data/TCP/thumbs/TCP Vampire 5.jpg b/data/TCP/thumbs/TCP Vampire 5.jpg new file mode 100644 index 0000000..270edec Binary files /dev/null and b/data/TCP/thumbs/TCP Vampire 5.jpg differ diff --git a/data/TCP/thumbs/TCP Zombie 1.jpg b/data/TCP/thumbs/TCP Zombie 1.jpg new file mode 100644 index 0000000..eda01eb Binary files /dev/null and b/data/TCP/thumbs/TCP Zombie 1.jpg differ diff --git a/data/TCP/thumbs/TCP Zombie 2.jpg b/data/TCP/thumbs/TCP Zombie 2.jpg new file mode 100644 index 0000000..f92ad98 Binary files /dev/null and b/data/TCP/thumbs/TCP Zombie 2.jpg differ diff --git a/data/TCP/thumbs/TCP Zombie 3.jpg b/data/TCP/thumbs/TCP Zombie 3.jpg new file mode 100644 index 0000000..fba5f7b Binary files /dev/null and b/data/TCP/thumbs/TCP Zombie 3.jpg differ diff --git a/data/TCP/thumbs/TCP Zombie 4.jpg b/data/TCP/thumbs/TCP Zombie 4.jpg new file mode 100644 index 0000000..dc1e1f6 Binary files /dev/null and b/data/TCP/thumbs/TCP Zombie 4.jpg differ diff --git a/data/TCP/thumbs/TCP Zombie 5.jpg b/data/TCP/thumbs/TCP Zombie 5.jpg new file mode 100644 index 0000000..8e7b54c Binary files /dev/null and b/data/TCP/thumbs/TCP Zombie 5.jpg differ diff --git a/data/TCP/thumbs/TCP Zombie 6.jpg b/data/TCP/thumbs/TCP Zombie 6.jpg new file mode 100644 index 0000000..0754b5e Binary files /dev/null and b/data/TCP/thumbs/TCP Zombie 6.jpg differ diff --git a/data/TCP/thumbs/TCP Zombie 7.jpg b/data/TCP/thumbs/TCP Zombie 7.jpg new file mode 100644 index 0000000..88df4c0 Binary files /dev/null and b/data/TCP/thumbs/TCP Zombie 7.jpg differ diff --git a/data/bankrupt.png b/data/bankrupt.png new file mode 100644 index 0000000..f087a26 Binary files /dev/null and b/data/bankrupt.png differ diff --git a/data/credit.lua b/data/credit.lua new file mode 100644 index 0000000..010ffd5 --- /dev/null +++ b/data/credit.lua @@ -0,0 +1,1166 @@ +print("Hello, world!") +-- TODO: Hide default windows when level ends / re-display when level begins + +-- Override tostring to display more info about the table +local old_tostring = tostring +local numtabs = 0 +function tostring(el) + if type(el) == "table" then + numtabs = numtabs + 1 + local strbuilder = {"{"} + for k,v in pairs(el) do + strbuilder[#strbuilder + 1] = string.format("%s%s : %s", string.rep("\t",numtabs), tostring(k), tostring(v)) + end + strbuilder[#strbuilder + 1] = "}" + numtabs = numtabs - 1 + return table.concat(strbuilder,"\n") + end + return old_tostring(el) +end + +--globals +local level = 1 +local applicants_left = -1 +local solutions = {} +local money_left = 1000000 +local unrealized_credit, unrealized_credit_label, unrealized_credit_visible = 0, false +local unrealized_credit_types, unrealized_credit_types_label, unrealized_credit_types_visible = {}, nil, false +local active_credit = {} +local cash_label, cash_label_visible = nil, false +local loan_sell_window, loan_sell_window_visible = nil, false +local active_app +local default_windows = {} + +local last_names = require("last_names") +local first_names = require("first_names") + +--functions +local intro, intro2 +local bankrupt + +local portraits = require("portraits") +local traits = require("traits") + +local function hide_default_windows(bool) + --print("About to hide default windows") + --for _,v in pairs(default_windows) do + --print("default window",v) + --v:setvisible(not bool) + --end + --print("Done hiding default windows") +end + +local function generate_loan_app() + local things_to_buy = { + { + name = "car", + cost_low = 10000, + cost_high = 100000, + repayment = -1, + }, + { + name = "house", + cost_low = 50000, + cost_high = 300000, + repayment = -1, + }, + { + name = "motorcycle", + cost_low = 5000, + cost_high = 50000, + repayment = -1, + } + } + local businesses = { + { + name = "paper company", + cost_low = 1, + cost_high = 1, + repayment = 1, + }, + { + name = "auto garage", + cost_low = 40000, + cost_high = 100000, + repayment = 1, + } + } + local collateral = { + { + name = "piece of golden jewelry", + short = "Gold", + cost_low = 1000, + cost_high = 10000 + }, + { + name = "plot of land", + short = "Land", + cost_low = 10000, + cost_high = 100000 + }, + { + name = "dog", + short = "Pet", + cost_low = 10, + cost_high = 500, + } + } + local rng = math.random() + local this_col = collateral[math.random(#collateral)] + if rng < 0.5 then + local thing = things_to_buy[math.random(#things_to_buy)] + local cost = math.random(thing.cost_low, thing.cost_high) + local ret = { + ammount = cost, + text = string.format("I want to buy a %s. I need $%d.",thing.name, cost), + repayment_time = math.random(60* math.random(5)), + collateral = { + name = this_col.name, + value = math.random(this_col.cost_low, this_col.cost_high), + short = this_col.short + }, + intrest = 0.03, + repayment = thing.repayment + } + return ret + elseif rng < 1 then + local bus = businesses[math.random(#businesses)] + local cost = math.random(bus.cost_low, bus.cost_high) + local ret = { + ammount = cost, + text = string.format("I want to start a %s. I need $%d.",bus.name, cost), + repayment_time = math.random(60* math.random(5)), + collateral = { + name = this_col.name, + value = math.random(this_col.cost_low, this_col.cost_high), + short = this_col.short + }, + intrest = 0.05, + repayment = bus.repayment + } + return ret + end +end + +local function generate_person() + local portrait_str = portraits[math.random(#portraits)] + + local random_first = first_names[math.random(#first_names)] + local random_last = last_names[math.random(#last_names)] + local random_name = string.format("%s %s",random_first,random_last) + + local trai = {} + local num_traits = 2 + math.random(2) + while #trai < num_traits do + local selected = traits[math.random(#traits)] + local has_trait_category = false + for _,v in pairs(trai) do + if selected.category == v.category then + has_trait_category = true + break + end + end + if not has_trait_category then + trai[#trai + 1] = selected + end + end + for i = 1,2 + math.random(2) do + trai[i] = traits[math.random(#traits)] + end + return { + name = random_name, + portrait_f = portrait_str, + traits = trai + } +end + +local function generate_applicant_lvl1() + local person = generate_person() + local tex = video.newtexturefromfile("../data/smol/" .. person.portrait_f) + + local win = gui.newwindow({{0,0},{480,480}}, "") + win.onClose = function() return true end + active_app = win + local portrait = gui.newiguiimage({20,40},true,tex, win) + win:settext(person.name) + local function cleanup() + applicants_left = applicants_left - 1 + win:remove() + if applicants_left > 0 then + generate_applicant_lvl1() + else + intro2() + end + end + local application = generate_loan_app() + local approve_but = gui.newbutton({{20,440},{220,460}},"Approve",win) + approve_but.onClick = function(self) + if money_left - application.ammount < 0 then + return false + end + solutions[applicants_left] = true + active_credit[#active_credit + 1] = { + loan = application, + person = person, + loan_start = get_time(), + deadline = get_time() + (application.repayment_time * 1000), + payment = (application.ammount * (1 + application.intrest)) / application.repayment_time, + will_default = false + } + money_left = money_left - application.ammount + cleanup() + end + local deny_but = gui.newbutton({{280,440},{460,460}},"Deny",win) + deny_but.onClick = function(self) + solutions[applicants_left] = false + cleanup() + end + local name_label = gui.newlabel({{180,40},{480,400}},application.text,win) + cash_label_visible = true +end + +local function generate_applicant_lvl2() + local person = generate_person() + local tex = video.newtexturefromfile("../data/smol/" .. person.portrait_f) + + local win = gui.newwindow({{0,0},{480,480}}, "") + active_app = win + win.onClose = function() return true end + local portrait = gui.newiguiimage({20,40},true,tex, win) + win:settext(person.name) + local function cleanup() + applicants_left = applicants_left - 1 + win:remove() + if applicants_left > 0 then + generate_applicant_lvl2() + else + intro3() + end + end + local application = generate_loan_app() + local approve_but = gui.newbutton({{20,440},{220,460}},"Approve",win) + print("application",application) + approve_but.onClick = function(self) + if money_left - application.ammount < 0 then + return false + end + solutions[applicants_left] = true + active_credit[#active_credit + 1] = { + loan = application, + person = person, + loan_start = get_time(), + deadline = get_time() + (application.repayment_time * 1000), + payment = (application.ammount * (1 + application.intrest)) / application.repayment_time, + } + money_left = money_left - application.ammount + cleanup() + end + local deny_but = gui.newbutton({{280,440},{460,460}},"Deny",win) + deny_but.onClick = function(self) + solutions[applicants_left] = false + cleanup() + end + print("application",application) + local application_text = string.format([[ +%s I have a %s worth $%d to put up as collateral. I can pay the loan back at %%%d intrest over %d weeks]], + application.text, + application.collateral.name, + application.collateral.value, + application.intrest * 100, + math.ceil(application.repayment_time / 60) + ) + local name_label = gui.newlabel({{180,40},{480,400}},application_text,win) + cash_label_visible = true +end + +local function generate_applicant_lvl3() + print("Generated portrait",portrait_str) + local person = generate_person() + local tex = video.newtexturefromfile("../data/smol/" .. person.portrait_f) + + local win = gui.newwindow({{0,0},{480,480}}, "") + win.onClose = function() return true end + active_app = win + local portrait = gui.newiguiimage({20,40},true,tex, win) + win:settext(person.name) + local function cleanup() + applicants_left = applicants_left - 1 + win:remove() + if applicants_left > 0 then + generate_applicant_lvl3() + else + intro4() + end + end + local application = generate_loan_app() + local approve_but = gui.newbutton({{20,440},{220,460}},"Approve",win) + print("application",application) + approve_but.onClick = function(self) + if money_left - application.ammount < 0 then + return false + end + solutions[applicants_left] = true + active_credit[#active_credit + 1] = { + loan = application, + person = person, + loan_start = get_time(), + deadline = get_time() + (application.repayment_time * 1000), + payment = (application.ammount * (1 + application.intrest)) / application.repayment_time, + } + money_left = money_left - application.ammount + cleanup() + end + local deny_but = gui.newbutton({{280,440},{460,460}},"Deny",win) + deny_but.onClick = function(self) + solutions[applicants_left] = false + cleanup() + end + local application_text = string.format([[ +%s I have a %s worth $%d to put up as collateral. I can pay the loan back at %%%d intrest over %d weeks]], + application.text, + application.collateral.name, + application.collateral.value, + application.intrest * 100, + math.ceil(application.repayment_time / 60) + ) + local name_label = gui.newlabel({{180,40},{480,400}},application_text,win) + cash_label_visible = true +end + +local function generate_applicant_lvl4() + print("Generated portrait",portrait_str) + local person = generate_person() + local tex = video.newtexturefromfile("../data/smol/" .. person.portrait_f) + + local win = gui.newwindow({{0,0},{480,480}}, "") + win.onClose = function() return true end + active_app = win + local portrait = gui.newiguiimage({20,40},true,tex, win) + win:settext(person.name) + local function cleanup() + applicants_left = applicants_left - 1 + win:remove() + if applicants_left > 0 then + generate_applicant_lvl4() + else + intro5() + end + end + local application = generate_loan_app() + local approve_but = gui.newbutton({{20,440},{220,460}},"Approve",win) + print("application",application) + approve_but.onClick = function(self) + if money_left - application.ammount < 0 then + return false + end + solutions[applicants_left] = true + active_credit[#active_credit + 1] = { + loan = application, + person = person, + loan_start = get_time(), + deadline = get_time() + (application.repayment_time * 1000), + payment = (application.ammount * (1 + application.intrest)) / application.repayment_time, + } + money_left = money_left - application.ammount + cleanup() + end + local deny_but = gui.newbutton({{280,440},{460,460}},"Deny",win) + deny_but.onClick = function(self) + solutions[applicants_left] = false + cleanup() + end + local application_text = string.format([[ +%s I have a %s worth $%d to put up as collateral. I can pay the loan back at %%%d intrest over %d weeks]], + application.text, + application.collateral.name, + application.collateral.value, + application.intrest * 100, + math.ceil(application.repayment_time / 60) + ) + local name_label = gui.newlabel({{180,20},{480,400}},application_text,win) + local traits_tbl = {} + for k,v in pairs(person.traits) do + traits_tbl[k] = string.format("* %s.",v.text) + end + local traits_label = gui.newlabel({{20,200},{480,400}},table.concat(traits_tbl,"\n"),win) + cash_label_visible = true +end + +local function generate_applicant_lvl5() + print("Generated portrait",portrait_str) + local person = generate_person() + local tex = video.newtexturefromfile("../data/smol/" .. person.portrait_f) + + local win = gui.newwindow({{0,0},{480,480}}, "") + win.onClose = function() return true end + active_app = win + local portrait = gui.newiguiimage({20,40},true,tex, win) + win:settext(person.name) + local function cleanup() + applicants_left = applicants_left - 1 + win:remove() + if applicants_left > 0 then + generate_applicant_lvl5() + else + intro6() + end + end + local application = generate_loan_app() + local approve_but = gui.newbutton({{20,440},{220,460}},"Approve",win) + print("application",application) + approve_but.onClick = function(self) + if money_left - application.ammount < 0 then + return false + end + solutions[applicants_left] = true + active_credit[#active_credit + 1] = { + loan = application, + person = person, + loan_start = get_time(), + deadline = get_time() + (application.repayment_time * 1000), + payment = (application.ammount * (1 + application.intrest)) / application.repayment_time, + repayment = application.repayment + } + money_left = money_left - application.ammount + cleanup() + end + local deny_but = gui.newbutton({{280,440},{460,460}},"Deny",win) + deny_but.onClick = function(self) + solutions[applicants_left] = false + cleanup() + end + local application_text = string.format([[ +%s I have a %s worth $%d to put up as collateral. I can pay the loan back at %%%d intrest over %d weeks]], + application.text, + application.collateral.name, + application.collateral.value, + application.intrest * 100, + math.ceil(application.repayment_time / 60) + ) + local name_label = gui.newlabel({{180,20},{480,400}},application_text,win) + local traits_tbl = {} + for k,v in pairs(person.traits) do + traits_tbl[k] = string.format("* %s.",v.text) + end + local traits_label = gui.newlabel({{20,200},{480,400}},table.concat(traits_tbl,"\n"),win) + cash_label_visible = true +end + +local function generate_applicant_lvl6() + print("Generated portrait",portrait_str) + local person = generate_person() + local tex = video.newtexturefromfile("../data/smol/" .. person.portrait_f) + + local win = gui.newwindow({{0,0},{480,480}}, "") + win.onClose = function() return true end + active_app = win + local portrait = gui.newiguiimage({20,40},true,tex, win) + win:settext(person.name) + local function cleanup() + applicants_left = applicants_left - 1 + win:remove() + if applicants_left > 0 then + generate_applicant_lvl6() + else + intro7() + end + end + local application = generate_loan_app() + local approve_but = gui.newbutton({{20,440},{220,460}},"Approve",win) + print("application",application) + approve_but.onClick = function(self) + if money_left - application.ammount < 0 then + return false + end + solutions[applicants_left] = true + active_credit[#active_credit + 1] = { + loan = application, + person = person, + loan_start = get_time(), + deadline = get_time() + (application.repayment_time * 1000), + payment = (application.ammount * (1 + application.intrest)) / application.repayment_time, + repayment = application.repayment + } + money_left = money_left - application.ammount + cleanup() + end + local deny_but = gui.newbutton({{280,440},{460,460}},"Deny",win) + deny_but.onClick = function(self) + solutions[applicants_left] = false + cleanup() + end + local application_text = string.format([[ +%s I have a %s worth $%d to put up as collateral. I can pay the loan back at %%%d intrest over %d weeks]], + application.text, + application.collateral.name, + application.collateral.value, + application.intrest * 100, + math.ceil(application.repayment_time / 60) + ) + local name_label = gui.newlabel({{180,20},{480,400}},application_text,win) + local traits_tbl = {} + for k,v in pairs(person.traits) do + traits_tbl[k] = string.format("* %s.",v.text) + end + local traits_label = gui.newlabel({{20,200},{480,400}},table.concat(traits_tbl,"\n"),win) + cash_label_visible = true +end + +local function generate_applicant_lvl7() + print("Generated portrait",portrait_str) + local person = generate_person() + local tex = video.newtexturefromfile("../data/smol/" .. person.portrait_f) + + local win = gui.newwindow({{0,0},{480,480}}, "") + win.onClose = function() return true end + active_app = win + local portrait = gui.newiguiimage({20,40},true,tex, win) + win:settext(person.name) + local function cleanup() + applicants_left = applicants_left - 1 + win:remove() + if applicants_left > 0 then + generate_applicant_lvl7() + else + intro8() + end + end + local application = generate_loan_app() + local approve_but = gui.newbutton({{20,440},{220,460}},"Approve",win) + print("application",application) + approve_but.onClick = function(self) + if money_left - application.ammount < 0 then + return false + end + solutions[applicants_left] = true + active_credit[#active_credit + 1] = { + loan = application, + person = person, + loan_start = get_time(), + deadline = get_time() + (application.repayment_time * 1000), + payment = (application.ammount * (1 + application.intrest)) / application.repayment_time, + repayment = application.repayment + } + money_left = money_left - application.ammount + cleanup() + end + local deny_but = gui.newbutton({{280,440},{460,460}},"Deny",win) + deny_but.onClick = function(self) + solutions[applicants_left] = false + cleanup() + end + local application_text = string.format([[ +%s I have a %s worth $%d to put up as collateral. I can pay the loan back at %%%d intrest over %d weeks]], + application.text, + application.collateral.name, + application.collateral.value, + application.intrest * 100, + math.ceil(application.repayment_time / 60) + ) + local name_label = gui.newlabel({{180,20},{480,400}},application_text,win) + local traits_tbl = {} + for k,v in pairs(person.traits) do + traits_tbl[k] = string.format("* %s.",v.text) + end + local traits_label = gui.newlabel({{20,200},{480,400}},table.concat(traits_tbl,"\n"),win) + cash_label_visible = true +end + +local function generate_applicant_lvl8() + print("Generated portrait",portrait_str) + local person = generate_person() + local tex = video.newtexturefromfile("../data/smol/" .. person.portrait_f) + + local win = gui.newwindow({{0,0},{480,480}}, "") + win.onClose = function() return true end + active_app = win + local portrait = gui.newiguiimage({20,40},true,tex, win) + win:settext(person.name) + local function cleanup() + applicants_left = applicants_left - 1 + win:remove() + if applicants_left > 0 then + generate_applicant_lvl7() + else + intro8() + end + end + local application = generate_loan_app() + local approve_but = gui.newbutton({{20,440},{220,460}},"Approve",win) + approve_but.onClick = function(self) + if money_left - application.ammount < 0 then + return false + end + solutions[applicants_left] = true + active_credit[#active_credit + 1] = { + loan = application, + person = person, + loan_start = get_time(), + deadline = get_time() + (application.repayment_time * 1000), + payment = (application.ammount * (1 + application.intrest)) / application.repayment_time, + repayment = application.repayment + } + money_left = money_left - application.ammount + cleanup() + end + local deny_but = gui.newbutton({{280,440},{460,460}},"Deny",win) + deny_but.onClick = function(self) + solutions[applicants_left] = false + cleanup() + end + local application_text = string.format([[ +%s I have a %s worth $%d to put up as collateral. I can pay the loan back at %%%d intrest over %d weeks]], + application.text, + application.collateral.name, + application.collateral.value, + application.intrest * 100, + math.ceil(application.repayment_time / 60) + ) + local name_label = gui.newlabel({{180,20},{480,400}},application_text,win) + local traits_tbl = {} + for k,v in pairs(person.traits) do + traits_tbl[k] = string.format("* %s.",v.text) + end + local traits_label = gui.newlabel({{20,200},{480,400}},table.concat(traits_tbl,"\n"),win) + cash_label_visible = true +end + +local function generate_applicant_lvl8() + print("Generated portrait",portrait_str) + local person = generate_person() + local tex = video.newtexturefromfile("../data/smol/" .. person.portrait_f) + + local win = gui.newwindow({{0,0},{480,480}}, "") + win.onClose = function() return true end + active_app = win + local portrait = gui.newiguiimage({20,40},true,tex, win) + win:settext(person.name) + local function cleanup() + applicants_left = applicants_left - 1 + win:remove() + if applicants_left > 0 then + generate_applicant_lvl8() + else + intro9() + end + end + local application = generate_loan_app() + local approve_but = gui.newbutton({{20,440},{220,460}},"Approve",win) + print("application",application) + approve_but.onClick = function(self) + if money_left - application.ammount < 0 then + return false + end + solutions[applicants_left] = true + active_credit[#active_credit + 1] = { + loan = application, + person = person, + loan_start = get_time(), + deadline = get_time() + (application.repayment_time * 1000), + payment = (application.ammount * (1 + application.intrest)) / application.repayment_time, + repayment = application.repayment + } + money_left = money_left - application.ammount + cleanup() + end + local deny_but = gui.newbutton({{280,440},{460,460}},"Deny",win) + deny_but.onClick = function(self) + solutions[applicants_left] = false + cleanup() + end + local application_text = string.format([[ +%s I have a %s worth $%d to put up as collateral. I can pay the loan back at %%%d intrest over %d weeks]], + application.text, + application.collateral.name, + application.collateral.value, + application.intrest * 100, + math.ceil(application.repayment_time / 60) + ) + local name_label = gui.newlabel({{180,20},{480,400}},application_text,win) + local traits_tbl = {} + for k,v in pairs(person.traits) do + traits_tbl[k] = string.format("* %s.",v.text) + end + local traits_label = gui.newlabel({{20,200},{480,400}},table.concat(traits_tbl,"\n"),win) + cash_label_visible = true +end + +local function generate_applicant_lvl9() + print("Generated portrait",portrait_str) + local person = generate_person() + local tex = video.newtexturefromfile("../data/smol/" .. person.portrait_f) + + local win = gui.newwindow({{0,0},{480,480}}, "") + win.onClose = function() return true end + active_app = win + local portrait = gui.newiguiimage({20,40},true,tex, win) + win:settext(person.name) + local function cleanup() + applicants_left = applicants_left - 1 + win:remove() + if applicants_left > 0 then + generate_applicant_lvl9() + else + intro10() + end + end + local application = generate_loan_app() + local approve_but = gui.newbutton({{20,440},{220,460}},"Approve",win) + print("application",application) + approve_but.onClick = function(self) + if money_left - application.ammount < 0 then + return false + end + solutions[applicants_left] = true + active_credit[#active_credit + 1] = { + loan = application, + person = person, + loan_start = get_time(), + deadline = get_time() + (application.repayment_time * 1000), + payment = (application.ammount * (1 + application.intrest)) / application.repayment_time, + repayment = application.repayment + } + money_left = money_left - application.ammount + cleanup() + end + local deny_but = gui.newbutton({{280,440},{460,460}},"Deny",win) + deny_but.onClick = function(self) + solutions[applicants_left] = false + cleanup() + end + local application_text = string.format([[ +%s I have a %s worth $%d to put up as collateral. I can pay the loan back at %%%d intrest over %d weeks]], + application.text, + application.collateral.name, + application.collateral.value, + application.intrest * 100, + math.ceil(application.repayment_time / 60) + ) + local name_label = gui.newlabel({{180,20},{480,400}},application_text,win) + local traits_tbl = {} + for k,v in pairs(person.traits) do + traits_tbl[k] = string.format("* %s.",v.text) + end + local traits_label = gui.newlabel({{20,200},{480,400}},table.concat(traits_tbl,"\n"),win) + cash_label_visible = true +end + +local function generate_applicant_lvl10() + print("Generated portrait",portrait_str) + local person = generate_person() + local tex = video.newtexturefromfile("../data/smol/" .. person.portrait_f) + + local win = gui.newwindow({{0,0},{480,480}}, "") + win.onClose = function() return true end + active_app = win + local portrait = gui.newiguiimage({20,40},true,tex, win) + win:settext(person.name) + local function cleanup() + applicants_left = applicants_left - 1 + win:remove() + if applicants_left > 0 then + generate_applicant_lvl10() + else + generate_applicant_lvl10() + end + end + local application = generate_loan_app() + local approve_but = gui.newbutton({{20,440},{220,460}},"Approve",win) + print("application",application) + approve_but.onClick = function(self) + if money_left - application.ammount < 0 then + return false + end + solutions[applicants_left] = true + active_credit[#active_credit + 1] = { + loan = application, + person = person, + loan_start = get_time(), + deadline = get_time() + (application.repayment_time * 1000), + payment = (application.ammount * (1 + application.intrest)) / application.repayment_time, + repayment = application.repayment + } + money_left = money_left - application.ammount + cleanup() + end + local deny_but = gui.newbutton({{280,440},{460,460}},"Deny",win) + deny_but.onClick = function(self) + solutions[applicants_left] = false + cleanup() + end + local application_text = string.format([[ +%s I have a %s worth $%d to put up as collateral. I can pay the loan back at %%%d intrest over %d weeks]], + application.text, + application.collateral.name, + application.collateral.value, + application.intrest * 100, + math.ceil(application.repayment_time / 60) + ) + local name_label = gui.newlabel({{180,20},{480,400}},application_text,win) + local traits_tbl = {} + for k,v in pairs(person.traits) do + traits_tbl[k] = string.format("* %s.",v.text) + end + local traits_label = gui.newlabel({{20,200},{480,400}},table.concat(traits_tbl,"\n"),win) + cash_label_visible = true +end + + +local last_tick = get_time() +local ogt = GAME.tick +function GAME.tick() + if cash_label then + cash_label:settext(string.format("Cash Available: $%d",money_left)) + cash_label:setvisible(cash_label_visible) + end + unrealized_credit_label:setvisible(unrealized_credit_visible) + unrealized_credit_types_label:setvisible(unrealized_credit_types_visible) + local been_a_second = false + if get_time() > last_tick + 1000 then + last_tick = get_time() + been_a_second = true + end + local unrealized_credit = 0 + unrealized_credit_types = {} + for k,loan in pairs(active_credit) do + if been_a_second then + money_left = money_left + loan.payment + end + local time_elapsed = loan.loan_start + (1000 * loan.loan.repayment_time) + local time_left = loan.deadline - get_time() + local loan_left = (time_left / 1000) * loan.payment + + unrealized_credit = unrealized_credit + loan_left + local coltype = loan.loan.collateral.short + unrealized_credit_types[coltype] = unrealized_credit_types[coltye] or 0 + unrealized_credit_types[coltype] = unrealized_credit_types[coltype] + loan_left + if loan.will_default == nil then + --people who default + local chance_to_default = 0 + local default_varience = 0 + for _,v in pairs(loan.person.traits) do + if v.payback_chance > 0 then + chance_to_default = chance_to_default + v.payback_chance + end + if v.payback_varience > 0 then + default_varience = default_varience + v.payback_varience + end + end + local num_traits = #loan.person.traits + chance_to_default = chance_to_default / num_traits + default_varience = default_varience / num_traits + if (math.random() + math.random(0,default_varience)) > chance_to_default then + print("Need a default time for", loan) + loan.will_default = true + loan.default_time = math.random(loan.loan.repayment_time * 1000) + loan.loan_start + print("Found a loan that will default at",loan.default_time) + else + loan.will_default = false + end + end + if loan.will_default and get_time() > loan.default_time then + print("defaulting on a loan, now is", get_time(), "default time is", loan.default_time) + print("loan",loan) + --Pop up a notification that the loan defaulted? + local default_win = gui.newwindow({{150,170},{490,310}},"Default!") + default_windows[#default_windows + 1] = default_win + local default_label = gui.newlabel({{0,20},{340,1000}},"",default_win) + local collateral_perc = math.random(90,100) / 100 + local collateral_collection = loan.loan.collateral.value * collateral_perc + local time_elapsed = loan.default_time - loan.loan_start + local value_collected = (time_elapsed / 1000) * loan.payment + print("value collected:",value_collected) + print("collateral collection:", collateral_collection) + local money_add = value_collected + collateral_collection + print("money to add:",money_add) + if value_collected + collateral_collection > loan.loan.ammount * (1 + loan.loan.intrest) then + + money_left = money_left + (loan.loan.ammount - value_collected) + else + money_left = money_left + money_add + end + print("After adding money, money left is", money_left) + default_label:settext(string.format("%s defaulted on their loan, we were able to collect %%%d of their collateral, a %s. We made/lost $%2.2f",loan.person.name,collateral_perc * 100, loan.loan.collateral.name,money_add)) + if money_left < 0 then + active_app:remove() + bankrupt() + end + active_credit[k] = nil + end + if get_time() > loan.deadline then + print("now is",get_time(),"and the loan deadline was", loan.deadline) + active_credit[k] = nil + end + end + if been_a_second and unrealized_credit_label then + unrealized_credit_label:settext(string.format("Unrealized cash: $%d",unrealized_credit)) + end + if been_a_second and unrealized_credit_types_label then + local ur_tbl = {} + for k,v in pairs(unrealized_credit_types) do + ur_tbl[#ur_tbl + 1] = string.format("%s: %0.2f",k,v) + end + unrealized_credit_types_label:settext(table.concat(ur_tbl,"\n")) + end +end + +local function setup_lvl1() + level = 1 + applicants_left = 10 + solutions = {} + generate_applicant_lvl1() +end + +local function setup_lvl2() + level = 2 + applicants_left = 10 + generate_applicant_lvl2() +end + +local function setup_lvl3() + level = 3 + applicants_left = 10 + generate_applicant_lvl3() +end + +local function setup_lvl4() + level = 4 + applicants_left = 10 + generate_applicant_lvl4() +end + +local function setup_lvl5() + level = 5 + applicants_left = 10 + generate_applicant_lvl5() +end + +local function setup_lvl6() + level = 6 + applicants_left = 10 + generate_applicant_lvl6() +end + +local function setup_lvl7() + level = 7 + applicants_left = 10 + generate_applicant_lvl7() +end + +local function setup_lvl8() + level = 8 + applicants_left = 10 + generate_applicant_lvl8() +end + +local function setup_lvl9() + level = 9 + applicants_left = 10 + for _,v in pairs(active_credit) do + if v.loan.collateral.name == "peice of golden jewlery" then + v.loan.collateral.value = v.loan.collateral.value * 0.1 + v.will_default = true + v.default_time = get_time() + end + end + generate_applicant_lvl9() +end + +local function setup_lvl10() + level = 10 + applicants_left = 10 + generate_applicant_lvl10() +end + +function intro() + local tex = video.newtexturefromfile("../data/lvl1_intro.png") + local introscreen = gui.newiguiimage({0,0},true,tex) + local startbutton = gui.newbutton({{250,420},{350,470}},"Start") + cash_label_visible = false + money_left = 1e6 + startbutton.onClick = function(self) + print("Start button clicked") + introscreen:remove() + startbutton:remove() + setup_lvl1() + end +end + +function bankrupt() + local tex = video.newtexturefromfile("../data/bankrupt.png") + local introscreen = gui.newiguiimage({0,0},true,tex) + local startbutton = gui.newbutton({{250,420},{350,470}},":(") + cash_label_visible = false + money_left = 1e6 + startbutton.onClick = function(self) + print("Start button clicked") + introscreen:remove() + startbutton:remove() + GAME.exit() + end +end + +function intro2() + hide_default_windows(true) + cash_label_visible = false + local tex = video.newtexturefromfile("../data/lvl2_intro.png") + local screen = gui.newiguiimage({0,0},true,tex) + local startbutton = gui.newbutton({{250,420},{350,470}},"Start") + startbutton.onClick = function(self) + print("Start button clicked") + screen:remove() + startbutton:remove() + setup_lvl2() + cash_label_visible = true + hide_default_windows(false) + end +end + +function intro3() + cash_label_visible = false + hide_default_windows(true) + local tex = video.newtexturefromfile("../data/lvl3_intro.png") + local screen = gui.newiguiimage({0,0},true,tex) + local startbutton = gui.newbutton({{250,420},{350,470}},"Start") + startbutton.onClick = function(self) + print("Start button clicked") + screen:remove() + startbutton:remove() + setup_lvl3() + cash_label_visible = true + hide_default_windows(false) + end +end + +function intro4() + hide_default_windows(true) + cash_label_visible = false + local tex = video.newtexturefromfile("../data/lvl4_intro.png") + local screen = gui.newiguiimage({0,0},true,tex) + local startbutton = gui.newbutton({{250,420},{350,470}},"Start") + startbutton.onClick = function(self) + print("Start button clicked") + screen:remove() + startbutton:remove() + setup_lvl4() + cash_label_visible = true + hide_default_windows(false) + end +end + +function intro5() + cash_label_visible = false + hide_default_windows(true) + local tex = video.newtexturefromfile("../data/lvl5_intro.png") + local screen = gui.newiguiimage({0,0},true,tex) + local startbutton = gui.newbutton({{250,420},{350,470}},"Start") + startbutton.onClick = function(self) + print("Start button clicked") + screen:remove() + startbutton:remove() + setup_lvl5() + cash_label_visible = true + hide_default_windows(false) + end +end + +function intro6() + cash_label_visible = false + hide_default_windows(true) + local tex = video.newtexturefromfile("../data/lvl6_intro.png") + local screen = gui.newiguiimage({0,0},true,tex) + local startbutton = gui.newbutton({{250,420},{350,470}},"Start") + startbutton.onClick = function(self) + print("Start button clicked") + screen:remove() + startbutton:remove() + setup_lvl6() + cash_label_visible = true + unrealized_credit_visible = true + hide_default_windows(false) + end +end + +function intro7() + cash_label_visible = false + unrealized_credit_visible = false + hide_default_windows(true) + local tex = video.newtexturefromfile("../data/lvl7_intro.png") + local screen = gui.newiguiimage({0,0},true,tex) + local startbutton = gui.newbutton({{250,420},{350,470}},"Start") + startbutton.onClick = function(self) + print("Start button clicked") + screen:remove() + startbutton:remove() + setup_lvl7() + cash_label_visible = true + unrealized_credit_visible = true + hide_default_windows(false) + end +end + +function intro8() + cash_label_visible = false + unrealized_credit_visible = false + hide_default_windows(true) + local tex = video.newtexturefromfile("../data/lvl8_intro.png") + local screen = gui.newiguiimage({0,0},true,tex) + local startbutton = gui.newbutton({{250,420},{350,470}},"Start") + startbutton.onClick = function(self) + print("Start button clicked") + screen:remove() + startbutton:remove() + setup_lvl8() + cash_label_visible = true + unrealized_credit_visible = true + unrealized_credit_types_visible = true + hide_default_windows(false) + end +end + +function intro9() + cash_label_visible = false + unrealized_credit_visible = false + unrealized_credit_types_visible = false + hide_default_windows(true) + local tex = video.newtexturefromfile("../data/lvl9_intro.png") + local screen = gui.newiguiimage({0,0},true,tex) + local startbutton = gui.newbutton({{250,420},{350,470}},"Start") + startbutton.onClick = function(self) + print("Start button clicked") + screen:remove() + startbutton:remove() + setup_lvl9() + cash_label_visible = true + unrealized_credit_visible = true + unrealized_credit_types_visible = true + hide_default_windows(false) + end +end + +function intro10() + cash_label_visible = false + unrealized_credit_visible = false + unrealized_credit_types_visible = false + hide_default_windows(true) + local tex = video.newtexturefromfile("../data/lvlfinal_intro.png") + local screen = gui.newiguiimage({0,0},true,tex) + local startbutton = gui.newbutton({{250,420},{350,470}},"Start") + startbutton.onClick = function(self) + print("Start button clicked") + screen:remove() + startbutton:remove() + setup_lvl10() + cash_label_visible = true + unrealized_credit_visible = true + unrealized_credit_types_visible = true + hide_default_windows(false) + end +end + +cash_label = gui.newlabel({{480,0},{640,100}},"") +unrealized_credit_label = gui.newlabel({{480,100},{640,200}},"") +unrealized_credit_types_label = gui.newlabel({{480,200},{640,300}}, "") +intro3() +--generate_applicant_lvl1() + diff --git a/data/deviceinit.lua b/data/deviceinit.lua new file mode 100644 index 0000000..a53e0a9 --- /dev/null +++ b/data/deviceinit.lua @@ -0,0 +1,91 @@ +print("device init called") +return { + --[[ + Anti-Alias + Should the window use fullscreen anti aliasing + Default:16 + ]] + ["Anti Alias"] = 16, + --[[ + Bits Per Pixel + The minimum bits per pixel of the color buffer in fullscreen. Ignored in window mode. + Default:16 + ]] + ["Bits Per Pixel"] = 16, + --[[ + Device Type + Options: + WIN32 - Only avaliable on windows desktops + WINCE - Only avaliable on windows mobile + COCOA - Only avaliable on OSX + X11 - Avaliable on Linux, Solaris, BSD, anyone that uses X11 + SDL - Avaliable on most systems + CONSOLE - Usually avaliable, but can only render text + BEST - Automatically choose the best device. + Default:Best + ]] + ["Device Type"] = "BEST", + --[[ + Display Adapter + Pick which graphics card is used for rendering when there is more than one. + Default:0 + ]] + ["Display Adapter"] = 0, + --[[ + Double Buffer + Should the window use doublebuffering? + Default:false + ]] + ["Double Buffer"] = true, + --[[ + Multithreaded + Should the display use multiple threads? + Default:false + ]] + ["Multithreaded"] = false, + --[[ + Driver Type + The video driver used to render graphics + Options: + NULL - You probably don't want this one + SOFTWARE - Donate your computer to a mueseum + BURNINGS - a software alternative + D3D9 - Direct 3D 9 Win32 only + OPENGL - Open GL + (vulkan support comming soon... maybe.) + Default:OPENGL + ]] + ["Driver Type"] = "OPENGL", + --[[ + Fullscreen + Should the window be fullscreen? + Default:false + ]] + ["Fullscreen"] = false, + --[[ + Stencil buffer + Should the stencil buffer be enabled? + Default:false + ]] + ["Stencil Buffer"] = true, + --[[ + Stereo Buffer + Should the window use stereo buffers? + Default:false + ]] + ["Stereo Buffer"] = false, + --[[ + Vertical Sync + Should the frame wait to be displayed to screen before starting the next draw? + Enable this if you are getting graphical artifacts + Default:false + ]] + ["VSync"] = true, + --[[ + Window Width/height + Adjusts the size of the window. + Default: 640,480 + ]] + ["Window Width"] = 640, + ["Window Height"] = 480, +} diff --git a/data/first_names.lua b/data/first_names.lua new file mode 100644 index 0000000..cc3fc99 --- /dev/null +++ b/data/first_names.lua @@ -0,0 +1,202 @@ +return { + 'James', + 'John', + 'Robert', + 'Michael', + 'William', + 'David', + 'Richard', + 'Joseph', + 'Thomas', + 'Charles', + 'Christopher', + 'Daniel', + 'Matthew', + 'Anthony', + 'Donald', + 'Mark', + 'Paul', + 'Steven', + 'Andrew', + 'Kenneth', + 'Joshua', + 'George', + 'Kevin', + 'Brian', + 'Edward', + 'Ronald', + 'Timothy', + 'Jason', + 'Jeffrey', + 'Ryan', + 'Jacob', + 'Gary', + 'Nicholas', + 'Eric', + 'Stephen', + 'Jonathan', + 'Larry', + 'Justin', + 'Scott', + 'Brandon', + 'Frank', + 'Benjamin', + 'Gregory', + 'Samuel', + 'Raymond', + 'Patrick', + 'Alexander', + 'Jack', + 'Dennis', + 'Jerry', + 'Tyler', + 'Aaron', + 'Jose', + 'Henry', + 'Douglas', + 'Adam', + 'Peter', + 'Nathan', + 'Zachary', + 'Walter', + 'Kyle', + 'Harold', + 'Carl', + 'Jeremy', + 'Keith', + 'Roger', + 'Gerald', + 'Ethan', + 'Arthur', + 'Terry', + 'Christian', + 'Sean', + 'Lawrence', + 'Austin', + 'Joe', + 'Noah', + 'Jesse', + 'Albert', + 'Bryan', + 'Billy', + 'Bruce', + 'Willie', + 'Jordan', + 'Dylan', + 'Alan', + 'Ralph', + 'Gabriel', + 'Roy', + 'Juan', + 'Wayne', + 'Eugene', + 'Logan', + 'Randy', + 'Louis', + 'Russell', + 'Vincent', + 'Philip', + 'Bobby', + 'Johnny', + 'Bradley', + 'Mary', + 'Patricia', + 'Jennifer', + 'Linda', + 'Elizabeth', + 'Barbara', + 'Susan', + 'Jessica', + 'Sarah', + 'Karen', + 'Nancy', + 'Margaret', + 'Lisa', + 'Betty', + 'Dorothy', + 'Sandra', + 'Ashley', + 'Kimberly', + 'Donna', + 'Emily', + 'Michelle', + 'Carol', + 'Amanda', + 'Melissa', + 'Deborah', + 'Stephanie', + 'Rebecca', + 'Laura', + 'Sharon', + 'Cynthia', + 'Kathleen', + 'Helen', + 'Amy', + 'Shirley', + 'Angela', + 'Anna', + 'Brenda', + 'Pamela', + 'Nicole', + 'Ruth', + 'Katherine', + 'Samantha', + 'Christine', + 'Emma', + 'Catherine', + 'Debra', + 'Virginia', + 'Rachel', + 'Carolyn', + 'Janet', + 'Maria', + 'Heather', + 'Diane', + 'Julie', + 'Joyce', + 'Victoria', + 'Kelly', + 'Christina', + 'Joan', + 'Evelyn', + 'Lauren', + 'Judith', + 'Olivia', + 'Frances', + 'Martha', + 'Cheryl', + 'Megan', + 'Andrea', + 'Hannah', + 'Jacqueline', + 'Ann', + 'Jean', + 'Alice', + 'Kathryn', + 'Gloria', + 'Teresa', + 'Doris', + 'Sara', + 'Janice', + 'Julia', + 'Marie', + 'Madison', + 'Grace', + 'Judy', + 'Theresa', + 'Beverly', + 'Denise', + 'Marilyn', + 'Amber', + 'Danielle', + 'Abigail', + 'Brittany', + 'Rose', + 'Diana', + 'Natalie', + 'Sophia', + 'Alexis', + 'Lori', + 'Kayla', + 'Jane', +} diff --git a/data/init.lua b/data/init.lua new file mode 100644 index 0000000..ada3e66 --- /dev/null +++ b/data/init.lua @@ -0,0 +1,20 @@ +print([[ +Welcome to Brok[en]gine! + +This file is located at bin/client/data/init.lua, +it is the first file run after brokengine starts. +Modify it to make your game. + +Before brokengine starts, there's another file +located at bin/client/data/deviceinit.lua, which +is a settings file for the window, and does not +have access to a lot of the functions that +brokengine provides. If your game is crashing +right away, check for errors in that file. + +For more information about the functions +avaliable in brokengine, run `ldoc .`, and look +at index.html in the doc/ folder. +]]) +require("credit") +GAME.crashy() diff --git a/data/last_names.lua b/data/last_names.lua new file mode 100644 index 0000000..be3d2be --- /dev/null +++ b/data/last_names.lua @@ -0,0 +1,1003 @@ +return { + 'Smith', + 'Johnson', + 'Williams', + 'Jones', + 'Brown', + 'Davis', + 'Miller', + 'Wilson', + 'Moore', + 'Taylor', + 'Anderson', + 'Thomas', + 'Jackson', + 'White', + 'Harris', + 'Martin', + 'Thompson', + 'Garcia', + 'Martinez', + 'Robinson', + 'Clark', + 'Rodriguez', + 'Lewis', + 'Lee', + 'Walker', + 'Hall', + 'Allen', + 'Young', + 'Hernandez', + 'King', + 'Wright', + 'Lopez', + 'Hill', + 'Scott', + 'Green', + 'Adams', + 'Baker', + 'Gonzalez', + 'Nelson', + 'Carter', + 'Mitchell', + 'Perez', + 'Roberts', + 'Turner', + 'Phillips', + 'Campbell', + 'Parker', + 'Evans', + 'Edwards', + 'Collins', + 'Stewart', + 'Sanchez', + 'Morris', + 'Rogers', + 'Reed', + 'Cook', + 'Morgan', + 'Bell', + 'Murphy', + 'Bailey', + 'Rivera', + 'Cooper', + 'Richardson', + 'Cox', + 'Howard', + 'Ward', + 'Torres', + 'Peterson', + 'Gray', + 'Ramirez', + 'James', + 'Watson', + 'Brooks', + 'Kelly', + 'Sanders', + 'Price', + 'Bennett', + 'Wood', + 'Barnes', + 'Ross', + 'Henderson', + 'Coleman', + 'Jenkins', + 'Perry', + 'Powell', + 'Long', + 'Patterson', + 'Hughes', + 'Flores', + 'Washington', + 'Butler', + 'Simmons', + 'Foster', + 'Gonzales', + 'Bryant', + 'Alexander', + 'Russell', + 'Griffin', + 'Diaz', + 'Hayes', + 'Myers', + 'Ford', + 'Hamilton', + 'Graham', + 'Sullivan', + 'Wallace', + 'Woods', + 'Cole', + 'West', + 'Jordan', + 'Owens', + 'Reynolds', + 'Fisher', + 'Ellis', + 'Harrison', + 'Gibson', + 'Mcdonald', + 'Cruz', + 'Marshall', + 'Ortiz', + 'Gomez', + 'Murray', + 'Freeman', + 'Wells', + 'Webb', + 'Simpson', + 'Stevens', + 'Tucker', + 'Porter', + 'Hunter', + 'Hicks', + 'Crawford', + 'Henry', + 'Boyd', + 'Mason', + 'Morales', + 'Kennedy', + 'Warren', + 'Dixon', + 'Ramos', + 'Reyes', + 'Burns', + 'Gordon', + 'Shaw', + 'Holmes', + 'Rice', + 'Robertson', + 'Hunt', + 'Black', + 'Daniels', + 'Palmer', + 'Mills', + 'Nichols', + 'Grant', + 'Knight', + 'Ferguson', + 'Rose', + 'Stone', + 'Hawkins', + 'Dunn', + 'Perkins', + 'Hudson', + 'Spencer', + 'Gardner', + 'Stephens', + 'Payne', + 'Pierce', + 'Berry', + 'Matthews', + 'Arnold', + 'Wagner', + 'Willis', + 'Ray', + 'Watkins', + 'Olson', + 'Carroll', + 'Duncan', + 'Snyder', + 'Hart', + 'Cunningham', + 'Bradley', + 'Lane', + 'Andrews', + 'Ruiz', + 'Harper', + 'Fox', + 'Riley', + 'Armstrong', + 'Carpenter', + 'Weaver', + 'Greene', + 'Lawrence', + 'Elliott', + 'Chavez', + 'Sims', + 'Austin', + 'Peters', + 'Kelley', + 'Franklin', + 'Lawson', + 'Fields', + 'Gutierrez', + 'Ryan', + 'Schmidt', + 'Carr', + 'Vasquez', + 'Castillo', + 'Wheeler', + 'Chapman', + 'Oliver', + 'Montgomery', + 'Richards', + 'Williamson', + 'Johnston', + 'Banks', + 'Meyer', + 'Bishop', + 'Mccoy', + 'Howell', + 'Alvarez', + 'Morrison', + 'Hansen', + 'Fernandez', + 'Garza', + 'Harvey', + 'Little', + 'Burton', + 'Stanley', + 'Nguyen', + 'George', + 'Jacobs', + 'Reid', + 'Kim', + 'Fuller', + 'Lynch', + 'Dean', + 'Gilbert', + 'Garrett', + 'Romero', + 'Welch', + 'Larson', + 'Frazier', + 'Burke', + 'Hanson', + 'Day', + 'Mendoza', + 'Moreno', + 'Bowman', + 'Medina', + 'Fowler', + 'Brewer', + 'Hoffman', + 'Carlson', + 'Silva', + 'Pearson', + 'Holland', + 'Douglas', + 'Fleming', + 'Jensen', + 'Vargas', + 'Byrd', + 'Davidson', + 'Hopkins', + 'May', + 'Terry', + 'Herrera', + 'Wade', + 'Soto', + 'Walters', + 'Curtis', + 'Neal', + 'Caldwell', + 'Lowe', + 'Jennings', + 'Barnett', + 'Graves', + 'Jimenez', + 'Horton', + 'Shelton', + 'Barrett', + 'Obrien', + 'Castro', + 'Sutton', + 'Gregory', + 'Mckinney', + 'Lucas', + 'Miles', + 'Craig', + 'Rodriquez', + 'Chambers', + 'Holt', + 'Lambert', + 'Fletcher', + 'Watts', + 'Bates', + 'Hale', + 'Rhodes', + 'Pena', + 'Beck', + 'Newman', + 'Haynes', + 'Mcdaniel', + 'Mendez', + 'Bush', + 'Vaughn', + 'Parks', + 'Dawson', + 'Santiago', + 'Norris', + 'Hardy', + 'Love', + 'Steele', + 'Curry', + 'Powers', + 'Schultz', + 'Barker', + 'Guzman', + 'Page', + 'Munoz', + 'Ball', + 'Keller', + 'Chandler', + 'Weber', + 'Leonard', + 'Walsh', + 'Lyons', + 'Ramsey', + 'Wolfe', + 'Schneider', + 'Mullins', + 'Benson', + 'Sharp', + 'Bowen', + 'Daniel', + 'Barber', + 'Cummings', + 'Hines', + 'Baldwin', + 'Griffith', + 'Valdez', + 'Hubbard', + 'Salazar', + 'Reeves', + 'Warner', + 'Stevenson', + 'Burgess', + 'Santos', + 'Tate', + 'Cross', + 'Garner', + 'Mann', + 'Mack', + 'Moss', + 'Thornton', + 'Dennis', + 'Mcgee', + 'Farmer', + 'Delgado', + 'Aguilar', + 'Vega', + 'Glover', + 'Manning', + 'Cohen', + 'Harmon', + 'Rodgers', + 'Robbins', + 'Newton', + 'Todd', + 'Blair', + 'Higgins', + 'Ingram', + 'Reese', + 'Cannon', + 'Strickland', + 'Townsend', + 'Potter', + 'Goodwin', + 'Walton', + 'Rowe', + 'Hampton', + 'Ortega', + 'Patton', + 'Swanson', + 'Joseph', + 'Francis', + 'Goodman', + 'Maldonado', + 'Yates', + 'Becker', + 'Erickson', + 'Hodges', + 'Rios', + 'Conner', + 'Adkins', + 'Webster', + 'Norman', + 'Malone', + 'Hammond', + 'Flowers', + 'Cobb', + 'Moody', + 'Quinn', + 'Blake', + 'Maxwell', + 'Pope', + 'Floyd', + 'Osborne', + 'Paul', + 'Mccarthy', + 'Guerrero', + 'Lindsey', + 'Estrada', + 'Sandoval', + 'Gibbs', + 'Tyler', + 'Gross', + 'Fitzgerald', + 'Stokes', + 'Doyle', + 'Sherman', + 'Saunders', + 'Wise', + 'Colon', + 'Gill', + 'Alvarado', + 'Greer', + 'Padilla', + 'Simon', + 'Waters', + 'Nunez', + 'Ballard', + 'Schwartz', + 'Mcbride', + 'Houston', + 'Christensen', + 'Klein', + 'Pratt', + 'Briggs', + 'Parsons', + 'Mclaughlin', + 'Zimmerman', + 'French', + 'Buchanan', + 'Moran', + 'Copeland', + 'Roy', + 'Pittman', + 'Brady', + 'Mccormick', + 'Holloway', + 'Brock', + 'Poole', + 'Frank', + 'Logan', + 'Owen', + 'Bass', + 'Marsh', + 'Drake', + 'Wong', + 'Jefferson', + 'Park', + 'Morton', + 'Abbott', + 'Sparks', + 'Patrick', + 'Norton', + 'Huff', + 'Clayton', + 'Massey', + 'Lloyd', + 'Figueroa', + 'Carson', + 'Bowers', + 'Roberson', + 'Barton', + 'Tran', + 'Lamb', + 'Harrington', + 'Casey', + 'Boone', + 'Cortez', + 'Clarke', + 'Mathis', + 'Singleton', + 'Wilkins', + 'Cain', + 'Bryan', + 'Underwood', + 'Hogan', + 'Mckenzie', + 'Collier', + 'Luna', + 'Phelps', + 'Mcguire', + 'Allison', + 'Bridges', + 'Wilkerson', + 'Nash', + 'Summers', + 'Atkins', + 'Wilcox', + 'Pitts', + 'Conley', + 'Marquez', + 'Burnett', + 'Richard', + 'Cochran', + 'Chase', + 'Davenport', + 'Hood', + 'Gates', + 'Clay', + 'Ayala', + 'Sawyer', + 'Roman', + 'Vazquez', + 'Dickerson', + 'Hodge', + 'Acosta', + 'Flynn', + 'Espinoza', + 'Nicholson', + 'Monroe', + 'Wolf', + 'Morrow', + 'Kirk', + 'Randall', + 'Anthony', + 'Whitaker', + 'Oconnor', + 'Skinner', + 'Ware', + 'Molina', + 'Kirby', + 'Huffman', + 'Bradford', + 'Charles', + 'Gilmore', + 'Dominguez', + 'Oneal', + 'Bruce', + 'Lang', + 'Combs', + 'Kramer', + 'Heath', + 'Hancock', + 'Gallagher', + 'Gaines', + 'Shaffer', + 'Short', + 'Wiggins', + 'Mathews', + 'Mcclain', + 'Fischer', + 'Wall', + 'Small', + 'Melton', + 'Hensley', + 'Bond', + 'Dyer', + 'Cameron', + 'Grimes', + 'Contreras', + 'Christian', + 'Wyatt', + 'Baxter', + 'Snow', + 'Mosley', + 'Shepherd', + 'Larsen', + 'Hoover', + 'Beasley', + 'Glenn', + 'Petersen', + 'Whitehead', + 'Meyers', + 'Keith', + 'Garrison', + 'Vincent', + 'Shields', + 'Horn', + 'Savage', + 'Olsen', + 'Schroeder', + 'Hartman', + 'Woodard', + 'Mueller', + 'Kemp', + 'Deleon', + 'Booth', + 'Patel', + 'Calhoun', + 'Wiley', + 'Eaton', + 'Cline', + 'Navarro', + 'Harrell', + 'Lester', + 'Humphrey', + 'Parrish', + 'Duran', + 'Hutchinson', + 'Hess', + 'Dorsey', + 'Bullock', + 'Robles', + 'Beard', + 'Dalton', + 'Avila', + 'Vance', + 'Rich', + 'Blackwell', + 'York', + 'Johns', + 'Blankenship', + 'Trevino', + 'Salinas', + 'Campos', + 'Pruitt', + 'Moses', + 'Callahan', + 'Golden', + 'Montoya', + 'Hardin', + 'Guerra', + 'Mcdowell', + 'Carey', + 'Stafford', + 'Gallegos', + 'Henson', + 'Wilkinson', + 'Booker', + 'Merritt', + 'Miranda', + 'Atkinson', + 'Orr', + 'Decker', + 'Hobbs', + 'Preston', + 'Tanner', + 'Knox', + 'Pacheco', + 'Stephenson', + 'Glass', + 'Rojas', + 'Serrano', + 'Marks', + 'Hickman', + 'English', + 'Sweeney', + 'Strong', + 'Prince', + 'Mcclure', + 'Conway', + 'Walter', + 'Roth', + 'Maynard', + 'Farrell', + 'Lowery', + 'Hurst', + 'Nixon', + 'Weiss', + 'Trujillo', + 'Ellison', + 'Sloan', + 'Juarez', + 'Winters', + 'Mclean', + 'Randolph', + 'Leon', + 'Boyer', + 'Villarreal', + 'Mccall', + 'Gentry', + 'Carrillo', + 'Kent', + 'Ayers', + 'Lara', + 'Shannon', + 'Sexton', + 'Pace', + 'Hull', + 'Leblanc', + 'Browning', + 'Velasquez', + 'Leach', + 'Chang', + 'House', + 'Sellers', + 'Herring', + 'Noble', + 'Foley', + 'Bartlett', + 'Mercado', + 'Landry', + 'Durham', + 'Walls', + 'Barr', + 'Mckee', + 'Bauer', + 'Rivers', + 'Everett', + 'Bradshaw', + 'Pugh', + 'Velez', + 'Rush', + 'Estes', + 'Dodson', + 'Morse', + 'Sheppard', + 'Weeks', + 'Camacho', + 'Bean', + 'Barron', + 'Livingston', + 'Middleton', + 'Spears', + 'Branch', + 'Blevins', + 'Chen', + 'Kerr', + 'Mcconnell', + 'Hatfield', + 'Harding', + 'Ashley', + 'Solis', + 'Herman', + 'Frost', + 'Giles', + 'Blackburn', + 'William', + 'Pennington', + 'Woodward', + 'Finley', + 'Mcintosh', + 'Koch', + 'Best', + 'Solomon', + 'Mccullough', + 'Dudley', + 'Nolan', + 'Blanchard', + 'Rivas', + 'Brennan', + 'Mejia', + 'Kane', + 'Benton', + 'Joyce', + 'Buckley', + 'Haley', + 'Valentine', + 'Maddox', + 'Russo', + 'Mcknight', + 'Buck', + 'Moon', + 'Mcmillan', + 'Crosby', + 'Berg', + 'Dotson', + 'Mays', + 'Roach', + 'Church', + 'Chan', + 'Richmond', + 'Meadows', + 'Faulkner', + 'Oneill', + 'Knapp', + 'Kline', + 'Barry', + 'Ochoa', + 'Jacobson', + 'Gay', + 'Avery', + 'Hendricks', + 'Horne', + 'Shepard', + 'Hebert', + 'Cherry', + 'Cardenas', + 'Mcintyre', + 'Whitney', + 'Waller', + 'Holman', + 'Donaldson', + 'Cantu', + 'Terrell', + 'Morin', + 'Gillespie', + 'Fuentes', + 'Tillman', + 'Sanford', + 'Bentley', + 'Peck', + 'Key', + 'Salas', + 'Rollins', + 'Gamble', + 'Dickson', + 'Battle', + 'Santana', + 'Cabrera', + 'Cervantes', + 'Howe', + 'Hinton', + 'Hurley', + 'Spence', + 'Zamora', + 'Yang', + 'Mcneil', + 'Suarez', + 'Case', + 'Petty', + 'Gould', + 'Mcfarland', + 'Sampson', + 'Carver', + 'Bray', + 'Rosario', + 'Macdonald', + 'Stout', + 'Hester', + 'Melendez', + 'Dillon', + 'Farley', + 'Hopper', + 'Galloway', + 'Potts', + 'Bernard', + 'Joyner', + 'Stein', + 'Aguirre', + 'Osborn', + 'Mercer', + 'Bender', + 'Franco', + 'Rowland', + 'Sykes', + 'Benjamin', + 'Travis', + 'Pickett', + 'Crane', + 'Sears', + 'Mayo', + 'Dunlap', + 'Hayden', + 'Wilder', + 'Mckay', + 'Coffey', + 'Mccarty', + 'Ewing', + 'Cooley', + 'Vaughan', + 'Bonner', + 'Cotton', + 'Holder', + 'Stark', + 'Ferrell', + 'Cantrell', + 'Fulton', + 'Lynn', + 'Lott', + 'Calderon', + 'Rosa', + 'Pollard', + 'Hooper', + 'Burch', + 'Mullen', + 'Fry', + 'Riddle', + 'Levy', + 'David', + 'Duke', + 'Odonnell', + 'Guy', + 'Michael', + 'Britt', + 'Frederick', + 'Daugherty', + 'Berger', + 'Dillard', + 'Alston', + 'Jarvis', + 'Frye', + 'Riggs', + 'Chaney', + 'Odom', + 'Duffy', + 'Fitzpatrick', + 'Valenzuela', + 'Merrill', + 'Mayer', + 'Alford', + 'Mcpherson', + 'Acevedo', + 'Donovan', + 'Barrera', + 'Albert', + 'Cote', + 'Reilly', + 'Compton', + 'Raymond', + 'Mooney', + 'Mcgowan', + 'Craft', + 'Cleveland', + 'Clemons', + 'Wynn', + 'Nielsen', + 'Baird', + 'Stanton', + 'Snider', + 'Rosales', + 'Bright', + 'Witt', + 'Stuart', + 'Hays', + 'Holden', + 'Rutledge', + 'Kinney', + 'Clements', + 'Castaneda', + 'Slater', + 'Hahn', + 'Emerson', + 'Conrad', + 'Burks', + 'Delaney', + 'Pate', + 'Lancaster', + 'Sweet', + 'Justice', + 'Tyson', + 'Sharpe', + 'Whitfield', + 'Talley', + 'Macias', + 'Irwin', + 'Burris', + 'Ratliff', + 'Mccray', + 'Madden', + 'Kaufman', + 'Beach', + 'Goff', + 'Cash', + 'Bolton', + 'Mcfadden', + 'Levine', + 'Good', + 'Byers', + 'Kirkland', + 'Kidd', + 'Workman', + 'Carney', + 'Dale', + 'Mcleod', + 'Holcomb', + 'England', + 'Finch', + 'Head', + 'Burt', + 'Hendrix', + 'Sosa', + 'Haney', + 'Franks', + 'Sargent', + 'Nieves', + 'Downs', + 'Rasmussen', + 'Bird', + 'Hewitt', + 'Lindsay', + 'Le', + 'Foreman', + 'Valencia', + 'Oneil', + 'Delacruz', + 'Vinson', + 'Dejesus', + 'Hyde', + 'Forbes', + 'Gilliam', + 'Guthrie', + 'Wooten', + 'Huber', + 'Barlow', + 'Boyle', + 'Mcmahon', + 'Buckner', + 'Rocha', + 'Puckett', + 'Langley', + 'Knowles', + 'Cooke', + 'Velazquez', + 'Whitley', + 'Noel', + 'Vang', + +} diff --git a/data/lvl1_intro.png b/data/lvl1_intro.png new file mode 100644 index 0000000..ab2e74d Binary files /dev/null and b/data/lvl1_intro.png differ diff --git a/data/lvl1_intro.xcf b/data/lvl1_intro.xcf new file mode 100644 index 0000000..26143de Binary files /dev/null and b/data/lvl1_intro.xcf differ diff --git a/data/lvl2_intro.png b/data/lvl2_intro.png new file mode 100644 index 0000000..eef17e6 Binary files /dev/null and b/data/lvl2_intro.png differ diff --git a/data/lvl3_intro.png b/data/lvl3_intro.png new file mode 100644 index 0000000..ad8f4d8 Binary files /dev/null and b/data/lvl3_intro.png differ diff --git a/data/lvl4_intro.png b/data/lvl4_intro.png new file mode 100644 index 0000000..aecdb06 Binary files /dev/null and b/data/lvl4_intro.png differ diff --git a/data/lvl5_intro.png b/data/lvl5_intro.png new file mode 100644 index 0000000..e04a5cd Binary files /dev/null and b/data/lvl5_intro.png differ diff --git a/data/lvl6_intro.png b/data/lvl6_intro.png new file mode 100644 index 0000000..f17d7cb Binary files /dev/null and b/data/lvl6_intro.png differ diff --git a/data/lvl7_intro.png b/data/lvl7_intro.png new file mode 100644 index 0000000..cfb37d8 Binary files /dev/null and b/data/lvl7_intro.png differ diff --git a/data/lvl8_intro.png b/data/lvl8_intro.png new file mode 100644 index 0000000..6840ecf Binary files /dev/null and b/data/lvl8_intro.png differ diff --git a/data/lvl9_intro.png b/data/lvl9_intro.png new file mode 100644 index 0000000..57331d8 Binary files /dev/null and b/data/lvl9_intro.png differ diff --git a/data/lvlfinal_intro.png b/data/lvlfinal_intro.png new file mode 100644 index 0000000..7f14f81 Binary files /dev/null and b/data/lvlfinal_intro.png differ diff --git a/data/mahjong.lua b/data/mahjong.lua new file mode 100644 index 0000000..a7f0b09 --- /dev/null +++ b/data/mahjong.lua @@ -0,0 +1,886 @@ +math.randomseed(os.time()) +--local debugging = false +if not debugging then + print = function(...) end +end +--local cam = scene.newcamera({10,10,10},{0,0,0},0) +--print("Hello from mahjong.lua") +--local w = 54 +--local h = 90 +--local img = video.newiimage(video.R8G8B8,{w,h}) + +--local tex = video.newtexture("whatever",img) + +--[[ + Represent the world as a 3d grid, where each tile covers a 2x2x1 space, + so that we don't have to worry about half-grids. Each space is either + "empty", "occupied by tile X" or "tile X" + +]] + +local tiles = {} +do + for i = 1,9 do + tiles[#tiles + 1] = "bamboo" .. tostring(i) + tiles[#tiles + 1] = "circle" .. tostring(i) + end + + for i = 1,15 do + tiles[#tiles + 1] = "pinyin" .. tostring(i) + end + + tiles[#tiles + 1] = "fall" + tiles[#tiles + 1] = "spring" + tiles[#tiles + 1] = "summer" + tiles[#tiles + 1] = "winter" + + tiles[#tiles + 1] = "lotus" + tiles[#tiles + 1] = "orchid" + tiles[#tiles + 1] = "peony" +end + +local function print_puzzle(puzzle) + print(debug.traceback()) + for l,layer in ipairs(puzzle.tiles) do + print("Layer",l) + local guide1 = {} + local guide2 = {} + for i = 1,puzzle.unused_spots.columns do + guide1[i] = math.floor(i / 10) + guide2[i] = i % 10 + end + print(" " .. table.concat(guide1," ")) + print(" " .. table.concat(guide2," ")) + print() + for i = 1, puzzle.unused_spots.rows do + local bld = {string.format("%02d ",i)} + for j=1,puzzle.unused_spots.columns do + if puzzle.tiles[l][i][j] then + bld[#bld + 1] = puzzle.tiles[l][i][j].n + else + bld[#bld + 1] = 0 + end + bld[#bld] = string.format("%2d",bld[#bld]) + end + print(table.concat(bld," ")) + end + end +end + +function math.round(num) + if num % 1 > 0.5 then + return math.ceil(num) + else + return math.floor(num) + end +end + +function rep(value,times) + local ret = {} + for i = 1,times do + ret[i] = value + end + return unpack(ret) +end + +local turtle = { + columns = 15 * 2, + rows = 8 * 2, + layers = 5, + --First layer + { + --First row + {0,0, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 0,0, 0,0}, + {0,0, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 0,0, 0,0}, + --Second row + {0,0, 0,0, 0,0, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 0,0, 0,0, 0,0, 0,0}, + --Third row + {0,0, 0,0, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 0,0, 0,0, 0,0}, + {0,0, 0,0, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 0,0, 0,0, 0,0}, + --Fourth row + {0,0, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 0,0, 0,0}, + {1,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 1,2, 1,2}, + --Fifth row + {2,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 2,2, 2,2}, + {0,0, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 0,0, 0,0}, + --Sixth row + {0,0, 0,0, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 0,0, 0,0, 0,0}, + {0,0, 0,0, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 0,0, 0,0, 0,0}, + --Seventh row + {0,0, 0,0, 0,0, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 0,0, 0,0, 0,0, 0,0}, + --Eighth row + {0,0, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 0,0, 0,0}, + {0,0, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 0,0, 0,0}, + }, + --Second layer + { + --First row + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + --Second row + {0,0, 0,0, 0,0, 0,0, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 0,0, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 0,0, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 0,0, 0,0, 0,0, 0,0, 0,0}, + --Third row + {0,0, 0,0, 0,0, 0,0, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 0,0, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 0,0, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 0,0, 0,0, 0,0, 0,0, 0,0}, + --Fourth row + {0,0, 0,0, 0,0, 0,0, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 0,0, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 0,0, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 0,0, 0,0, 0,0, 0,0, 0,0}, + --Fifth row + {0,0, 0,0, 0,0, 0,0, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 0,0, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 0,0, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 0,0, 0,0, 0,0, 0,0, 0,0}, + --Sixth row + {0,0, 0,0, 0,0, 0,0, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 0,0, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 0,0, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 0,0, 0,0, 0,0, 0,0, 0,0}, + --Seventh row + {0,0, 0,0, 0,0, 0,0, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 0,0, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 0,0, 2,2, 2,2, 2,2, 2,2, 2,2, 2,2, 0,0, 0,0, 0,0, 0,0, 0,0}, + --Eighth row + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + }, + --Third layer + { + --First row + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + --Second row + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + --Third row + {0,0, 0,0, 0,0, 0,0, 0,0, 1,2, 1,2, 1,2, 1,2, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 0,0, 0,0, 2,2, 2,2, 2,2, 2,2, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + --Fourth row + {0,0, 0,0, 0,0, 0,0, 0,0, 1,2, 1,2, 1,2, 1,2, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 0,0, 0,0, 2,2, 2,2, 2,2, 2,2, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + --Fifth row + {0,0, 0,0, 0,0, 0,0, 0,0, 1,2, 1,2, 1,2, 1,2, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 0,0, 0,0, 2,2, 2,2, 2,2, 2,2, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + --Sixth row + {0,0, 0,0, 0,0, 0,0, 0,0, 1,2, 1,2, 1,2, 1,2, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 0,0, 0,0, 2,2, 2,2, 2,2, 2,2, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + --Seventh row + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + --Eighth row + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + }, + --Fourth layer + { + --First row + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + --Second row + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + --Third row + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + --Fourth row + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 1,2, 1,2, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 2,2, 2,2, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + --Fifth row + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 1,2, 1,2, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 2,2, 2,2, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + --Sixth row + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + --Seventh row + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + --Eighth row + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + }, + --Fifth layer + { + --First row + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + --Second row + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + --Third row + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + --Fourth row + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,1, 2,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + --Fifth row + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,2, 2,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + --Sixth row + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + --Seventh row + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + --Eighth row + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + {0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0}, + } +} + +local types = { + empty = 0, + tile = 1, + usedby = 2 +} + +local current_tile = nil + +local tilewidth = 28 +local tileheight = 40 +local layeroffx = 8 +local layeroffy = -8 +local function create_tile(number) + number = (number % #tiles) + 1 + local tex = video.newtexturefromfile("../data/fulltiles/" .. tiles[number] .. ".png") + local newtile = { + tiletype = types.tile, + iguitexture = gui.newiguiimage({0,0},true,tex), + rect = {{0,0},{tilewidth,tileheight}}, + n = number + } + current_tile = newtile + + return newtile +end +local tileactualx = 32 +local tileactualy = 48 +local function set_tile_pos(tile,layer,row,column) + print("Setting a tile to", layer,row,column) + local x = (row * tilewidth) + (layer * layeroffx) + local y = (column * tileheight) + (layer * layeroffy) + tile.iguitexture:move({x,y}) + tile.rect = {{x,y},{x+(tileactualx*2),y+(tileactualy*2)}} + tile.position = {layer,row,column} +end + +--Checks if a tile is free to move +local function is_free(puzzle,tile) + local layer,col,row = unpack(tile.position) + --print("Checking if tile at ", layer, row, col , " is free") + local has_tile_over = false + for i = layer+1,puzzle.unused_spots.layers do + for j = col-1,col+1 do + for k = row - 1, row + 1 do + --print("Checking if there is a tile at ", i, k, j) + if puzzle.tiles[i] and puzzle.tiles[i][k] and puzzle.tiles[i][k][j] ~= nil then + --print("There was!") + has_tile_over = true + end + if has_tile_over then break end + end + if has_tile_over then break end + end + if has_tile_over then break end + end + if has_tile_over then return false end + + local can_move_left = true + for i = col-1,0,-1 do + if not can_move_left then break end + for j = -1,1 do + --print("Checking for any tiles at ",layer,row + j,i) + if puzzle.tiles[layer] and puzzle.tiles[layer][row + j] and puzzle.tiles[layer][row + j][i] ~= nil then + --print("Cannot move left") + can_move_left = false + break + end + end + end + if can_move_left then return true end + + local can_move_right = true + + for i = col+1,puzzle.unused_spots.columns do + if not can_move_right then break end + for j = -1,1 do + --print("Checking for any tiles at ",layer,row + j,i) + if puzzle.tiles[layer] and puzzle.tiles[layer][row + j] and puzzle.tiles[layer][row + j][i] ~= nil then + --print("Cannot move right") + can_move_right = false + break + end + end + end + + return can_move_right +end + +local function any_free(puzzle) + local free = {} + for layer = 1,puzzle.unused_spots.layers do + for row = 1,puzzle.unused_spots.rows do + for col = 1,puzzle.unused_spots.columns do + local tile = puzzle.tiles[layer][row][col] + if tile then + print("Found a tile at", layer, row, col) + end + if tile and is_free(puzzle,tile) then + print("Found a free tile at", layer, row, col) + print("n was", tile.n) + if free[tile.n] == nil then + free[tile.n] = 1 + else + free[tile.n] = free[tile.n] + 1 + end + end + end + end + end + for k,v in pairs(free) do + if v > 1 then + return true + end + end + return false +end + +local function deepcopy(tbl) + print(debug.traceback()) + print("making a deep copy of",tbl) + for k,v in pairs(tbl) do print(k,":",v) end + local ret = {} + for k,v in pairs(tbl) do + local key,value + if type(k) == "table" then + key = deepcopy(k) + else + key = k + end + + if type(v) == "table" then + value = deepcopy(v) + else + value = v + end + + ret[key] = value + end + + return ret +end + +--Generates a puzzle +local function gen_puzzle(pattern) + print("Pattern is", pattern) + local puz = { + unused_spots = deepcopy(pattern), + tiles = {} --Layers + } + for l,layer in ipairs(puz.unused_spots) do + puz.tiles[l] = {} + for r,row in pairs(layer) do + puz.tiles[l][r] = {} + end + end + + --Returns canfit,layer,row,column if a peice can fit in this row in this puzzle + local function find_unused_spot(puzzle) + print("finding unused spots") + print(debug.traceback()) + local potential_spots = {} + local layernum = 1 + + print("Looking for unused positions in :") + for l,layer in ipairs(puzzle.unused_spots) do + print("Layer",l) + local guide1 = {} + local guide2 = {} + for i = 1,puzzle.unused_spots.columns do + guide1[i] = math.floor(i / 10) + guide2[i] = i % 10 + end + --print(" " .. table.concat(guide1," ")) + --print(" " .. table.concat(guide2," ")) + --print() + for r,row in pairs(layer) do + local sb = {} + for c,col in pairs(row) do + sb[c] = col + end + --print(string.format("%02d ",r) .. table.concat(sb," ")) + end + end + print("Continueing...") + + + for row = 1,puzzle.unused_spots.rows do + --print("Looking at row", row) + local from_left = 0 + for col=(puzzle.unused_spots.columns/2),1,-1 do + --print("Looking at column", col) + for layer=1,puzzle.unused_spots.layers do + --print("Looking at layer", layer) + --print("From_left was", from_left) + local tel = puzzle.unused_spots[layer][row][col] + --print("tel was", tel) + if from_left == 0 and tel == 1 then + --print("found an unused spot") + from_left = {layer,row,col} + --elseif from_left == 0 and tel == 2 then + ----print("Hit no left") + ---- there's not from_left avaliable for this row + --from_left = -1 + --break + elseif from_left ~= 0 then + --print("found something, breaking...") + break + end + end + if from_left ~= 0 then break end + end + --print("Got from_left") + local from_right = 0 + for col=puzzle.unused_spots.columns/2,puzzle.unused_spots.columns,1 do + for layer=1,puzzle.unused_spots.layers do + if from_right== 0 and puzzle.unused_spots[layer][row][col] == 1 then + from_right = {layer,row,col} + --elseif from_right == 0 and puzzle.unused_spots[layer][row][col] == 2 then + ----Theres no from_right avaliable for this row + --from_right = -1 + --break + + elseif from_right ~= 0 then break end + end + if from_right ~= 0 then break end + end + --print("Got from_right") + --print("from left is", from_left) + --print("from right is", from_right) + local spots_same = true + if type(from_left) == "table" and type(from_right) == "table" then + --print("Checking if spots same",table.concat(from_left,","),table.concat(from_right,",")) + for i = 1,3 do + if from_left[i] ~= from_right[i] then + spots_same = false + break + end + end + elseif from_left == 0 or from_right == 0 then + spots_same = false + end + --print("Spots_same is", spots_same) + --print("Looking at same spots") + if not spots_same then + if from_left ~= 0 then + potential_spots[#potential_spots + 1] = from_left + end + if from_right ~= 0 then + potential_spots[#potential_spots + 1] = from_right + end + elseif spots_same and type(from_left) == "table" then + potential_spots[#potential_spots + 1] = from_left + end + end + --print("Found ", #potential_spots, " unused spots...") + return potential_spots + end + --print("Finding an unused spot:") + local spots = find_unused_spot(puz) + for spotnum,spot in pairs(spots) do + --print("Spot", spotnum, ":", spot[1],",",spot[2],",",spot[3]) + end + --Iterate through integers, putting the same number of each kind of tile on the board. + local tilenum = 0 + while true do + local can_place_into = false + local potential_spots = find_unused_spot(puz) + print("Number of potential spots is", #potential_spots) + --print("Potential spots is:") + --for k,v in pairs(potential_spots) do + --print(k,":") + --print("\t",table.concat(v,",")) + --end + if #potential_spots == 0 then + print("Potential spots is 0! break!") + break + end + if #potential_spots == 1 then + --We've generated ourselves into a corner, try again + print("I want to crash!") + print("Generated into corner!") + coroutine.yield() + local pn = gen_puzzle(pattern) + return pn + end + local numpotspots = #potential_spots + local rng1 = math.random(1,numpotspots) + local rng2 = math.random(1,numpotspots-1) + --print("rng1 is", rng1) + --print("rng2 is", rng2) + local spot1 = potential_spots[rng1] + local spot2 = potential_spots[rng2] + --if spot1 == spot2 then + --spot2 = potential_spots[rng2+1] + --end + --print("spot1 is", spot1, "(" .. table.concat(spot1,",") .. ")") + --print("spot2 is", spot2, "(" .. table.concat(spot2,",") .. ")") + if not spot1 or not spot2 then + crash() + end + local spots_same = true + for i = 1,3 do + if spot1[i] ~= spot2[i] then + spots_same = false + break + end + end + if not spots_same then + puz.tiles[spot1[1]][spot1[2]][spot1[3]] = tilenum + puz.tiles[spot2[1]][spot2[2]][spot2[3]] = tilenum + + for i = 0,1 do + for j = 0,1 do + local x1,y1,z1 = spot1[1],spot1[2] + i,spot1[3] + j + local x2,y2,z2 = spot2[1],spot2[2] + i,spot2[3] + j + puz.unused_spots[x1][y1][z1] = 0 + puz.unused_spots[x2][y2][z2] = 0 + end + end + + for k,v in pairs({spot1,spot2}) do + --local tile = create_tile(tilenum) + --set_tile_pos(tile,v[1],v[3],v[2]) + --puz.tiles[v[1]][v[2]][v[3]] = tile + end + + tilenum = tilenum + 101 + end + coroutine.yield(puz) + end + for layer = 1,puz.unused_spots.layers do + for col = puz.unused_spots.columns,1,-1 do + for row = 1,puz.unused_spots.rows do + local tilenum = puz.tiles[layer][row][col] + if tilenum then + local tile = create_tile(tilenum) + set_tile_pos(tile,layer,col,row) + puz.tiles[layer][row][col] = tile + coroutine.yield() + end + end + end + end + + return puz +end + +for i = 1,10 do + print(math.round(math.random(1,2))) +end + +local puzzle = nil +local e +local co = coroutine.create(function() + return gen_puzzle(turtle) +end) +local ogt = GAME.tick +local game_generated = false +function GAME.tick() + print("Running tick...\n") + if coroutine.status(co) == "suspended" then + e,puzzle = coroutine.resume(co) + if not e then + error(puzzle) + co = coroutine.create(function() + return gen_puzzle(turtle) + end) + end + else + print("After generation, puzzle was", puzzle) + game_generated = true + end + if ogt then + ogt() + end +end +--print_puzzle(puzzle) + +local xoff = 36 +local yoff = 30 +local rectx = tilewidth +local recty = tileheight +local selected = nil +local game_has_ended = false +function GAME.onMouseDown(x,y,mouse) + local possible_tiles = {} + for layernum,layer in pairs(puzzle.tiles) do + for rownum,row in pairs(layer) do + for colnum,tile in pairs(row) do + local clip = tile.rect + if x > clip[1][1] and x < clip[2][1] and y > clip[1][2] and y < clip[2][2] then + possible_tiles[#possible_tiles + 1] = tile + end + end + end + end + + local toptile = possible_tiles[#possible_tiles] + if toptile == nil then return end + local has_removed = false + -- Check if the tile we selected can move + if is_free(puzzle,toptile) then + if selected == nil then + selected = toptile + selected.iguitexture:setcolor({255,0,0,255}) + else + if toptile.n == selected.n and toptile ~= selected then + toptile.iguitexture:remove() + selected.iguitexture:remove() + toptile.iguitexture = nil + selected.iguitexture = nil + tl,tc,tr = unpack(toptile.position) + sl,sc,sr = unpack(selected.position) + puzzle.tiles[tl][tr][tc] = nil + puzzle.tiles[sl][sr][sc] = nil + selected = nil + has_removed = true + else + selected.iguitexture:setcolor({255,255,255,255}) + selected = toptile + selected.iguitexture:setcolor({255,0,0,255}) + end + end + end + + --Check to see if the tile we removed has finished the game + local numtiles = 0 + if has_removed then + for layernum,layer in pairs(puzzle.tiles) do + if numtiles > 0 then break end + for rownum,row in pairs(layer) do + if numtiles > 0 then break end + for columnnum,tile in pairs(row) do + if tile ~= nil then + numtiles = numtiles + 1 + break + end + end + end + end + else + numtiles = 1 -- don't finish the game if we didn't remove a tile + end + + --We're done! End the game! + if numtiles == 0 then + game_has_ended = true + end + + if not any_free(puzzle) and not game_has_ended then + error("You fail! (no moves left)") + end + + --::foundtile:: +end + +local fireworks = {} +local stars = {} +local screenw = scrw() +local screeny = scrh() + +print("About to create firework star image") +local starwidth = 3 +local starheight = 3 +local riseimg= video.newiimage(video.A8R8G8B8,{starwidth,starheight}) +for i = starheight - starwidth,1,-1 do + print("Going through loop, i is",i) + local color = {255,255,255,255} --alpha = 127 it's not there, alpha = 128 it's there + riseimg:setPixel({0,i},color,true) + riseimg:setPixel({1,i-1},color,true) + riseimg:setPixel({2,i},color,true) +end +local bloomwidth,bloomheight = 100,100 +local starimg = video.newiimage(video.A8R8G8B8,{bloomwidth,bloomheight}) +for i = -bloomwidth,bloomwidth do + for j = -bloomheight, bloomheight do + if math.abs(i^2 + j^2) > 50^2 then + starimg:setPixel({i + (bloomwidth / 2),j + (bloomheight / 2)},{255,255,255,255},true) + end + end +end +local fizzleimg = video.newiimage(video.A8R8G8B8,{3,3}) +for i = 0,2 do + for j = 0,2 do + fizzleimg:setPixel({i,j},{255,255,255,255},true) + end +end +local sparkimg = video.newiimage(video.A8R8G8B8,{1,1}) +sparkimg:setPixel({0,0},{255,255,255,255},true) +print("Done creating firework star image") +print("video is:") +for k,v in pairs(video) do + print(k,":",v) +end +local risetex = video.newtexture("rise",riseimg) +local startex = video.newtexture("w/e",starimg) +local fizzletex = video.newtexture("fizz",fizzleimg) +local sparktex = video.newtexture("spark",sparkimg) +local fadetest = video.newiimage(video.A8R8G8B8,{100,100}) +for i = 0,99 do + for j = 0,99 do + fadetest:setPixel({i,j},{i+j,i+j,i+j,i+j},true) + end +end +print("video:",video) +for k,v in pairs(video) do + print(k,":",v) +end + +for k,v in pairs(fadetest) do + print(k,":",v) +end +local fadetex = video.newtexture("test",fadetest) +local left = true +local loadpos = 0 +GAME.draw = function() + if not game_generated then + if left then + loadpos = loadpos + 1 + end + video.drawtexture(fadetex,{screenw/2 - 100,screeny/2 - 5},{{0,0},{loadpos,10}},{255,255,255,255},true) + end + for _,v in pairs(fireworks) do + for i = 1,3 do + local tcolor = {} + for k,v in pairs(v.color) do tcolor[k] = v end + tcolor[4] = 255 - (i * 15) + video.drawtexture(risetex,{v.x,v.y + i},{{0,0},{starwidth,starheight}},tcolor,true) + end + end + local fw, fh = 20,20 + local stars_to_remove = {} + for _,v in pairs(stars) do + local fizzle_in = false + for i,j in pairs(v.fizzles) do + video.drawtexture(fizzletex,{j.x,j.y},{{0,0},{3,3}},v.color,true) + j.x = j.x + j.vx + j.y = j.y + j.vy + if math.random(0,1) == 1 then + j.vy = j.vy + 1 + end + if j.y < screenw then + fizzle_in = true + end + end + if not fizzle_in then + stars_to_remove[v] = true + end + end + local cursor1 = 1 + local cursor2 = 1 + local starlen = #stars + while cursor1 < starlen do + if stars_to_remove[stars[cursor1]] then + cursor2 = cursor2 + 1 + else + cursor1 = cursor1 + 1 + cursor2 = cursor2 + 1 + end + stars[cursor1] = stars[cursor2] + end +end +local function create_firework() + local xstart = math.random(50,screenw) + local rngcolor = {} + --Only generate "bright" colors: + -- 1 color should be close to 255 + -- 1 color should be close to 0 + -- the last color can range from 0 to 255 + local bright = math.random(1,3) + local dark = math.random(1,2) + local brightval = math.random(200,255) + local darkval = math.random(0,55) + local medval = math.random(0,255) + local colorset = {brightval,medval,darkval} + for i = 1,3 do + local toplace = math.random(1,#colorset) + rngcolor[i] = colorset[toplace] + for j = toplace,#colorset do + colorset[j] = colorset[j + 1] + end + end + rngcolor[4] = 255 + local firework = { + x = xstart, + y = screeny, + color = rngcolor, + yexp = math.random(150,screeny - 150), + } + --firework.img:setcolor(rngcolor) + fireworks[#fireworks + 1] = firework +end +local function create_star(pos,color) + --print("creating star at pos") + for k,v in pairs(pos) do print(k,":",v) end + --print("with color") + for k,v in pairs(color) do print(k,":",v) end + local star = {} + star.x = pos.x + star.y = pos.y + star.color = color + star.life = 0 + star.fizzles = {} + for i = 1,10 do + local ang = math.random(0,2 * math.pi) + local pow = math.random(0.5,5) + star.fizzles[i] = { + x = pos.x, + y = pos.y, + vx = math.sin(ang) * pow, + vy = math.cos(ang) * pow + } + end + stars[#stars + 1] = star +end +local tryimg = gui.newiguiimage({0,0},true,risetex) +local ogt = GAME.tick +function GAME.tick() + if game_has_ended then + if math.random() < 0.10 then + create_firework() + end + end + local fireworks_to_remove = {} + local crash = false + local numtoremove = 0 + for _,firework in pairs(fireworks) do + firework.y = firework.y - 3 + if firework.y < firework.yexp then + fireworks_to_remove[firework] = true + if not firework.exploded then + create_star({ + x = firework.x, + y = firework.y + },firework.color) + firework.exploded = true + end + numtoremove = numtoremove + 1 + crash = true + end + end + local cursor1 = 1 + local cursor2 = 1 + local fwlen = #fireworks + while cursor1 < fwlen+1 do + local firework = fireworks[cursor2] + if fireworks_to_remove[firework] then + cursor1 = cursor1 + 1 + else + cursor2 = cursor2 + 1 + cursor1 = cursor1 + 1 + end + fireworks[cursor2] = fireworks[cursor1] + end + if ogt then + ogt() + end +end + +print("At end of mahjong, GAME.tick is", GAME.tick) diff --git a/data/names.txt b/data/names.txt new file mode 100644 index 0000000..988da6f --- /dev/null +++ b/data/names.txt @@ -0,0 +1,200 @@ +'James', +'John', +'Robert', +'Michael', +'William', +'David', +'Richard', +'Joseph', +'Thomas', +'Charles', +'Christopher', +'Daniel', +'Matthew', +'Anthony', +'Donald', +'Mark', +'Paul', +'Steven', +'Andrew', +'Kenneth', +'Joshua', +'George', +'Kevin', +'Brian', +'Edward', +'Ronald', +'Timothy', +'Jason', +'Jeffrey', +'Ryan', +'Jacob', +'Gary', +'Nicholas', +'Eric', +'Stephen', +'Jonathan', +'Larry', +'Justin', +'Scott', +'Brandon', +'Frank', +'Benjamin', +'Gregory', +'Samuel', +'Raymond', +'Patrick', +'Alexander', +'Jack', +'Dennis', +'Jerry', +'Tyler', +'Aaron', +'Jose', +'Henry', +'Douglas', +'Adam', +'Peter', +'Nathan', +'Zachary', +'Walter', +'Kyle', +'Harold', +'Carl', +'Jeremy', +'Keith', +'Roger', +'Gerald', +'Ethan', +'Arthur', +'Terry', +'Christian', +'Sean', +'Lawrence', +'Austin', +'Joe', +'Noah', +'Jesse', +'Albert', +'Bryan', +'Billy', +'Bruce', +'Willie', +'Jordan', +'Dylan', +'Alan', +'Ralph', +'Gabriel', +'Roy', +'Juan', +'Wayne', +'Eugene', +'Logan', +'Randy', +'Louis', +'Russell', +'Vincent', +'Philip', +'Bobby', +'Johnny', +'Bradley', +'Mary', +'Patricia', +'Jennifer', +'Linda', +'Elizabeth', +'Barbara', +'Susan', +'Jessica', +'Sarah', +'Karen', +'Nancy', +'Margaret', +'Lisa', +'Betty', +'Dorothy', +'Sandra', +'Ashley', +'Kimberly', +'Donna', +'Emily', +'Michelle', +'Carol', +'Amanda', +'Melissa', +'Deborah', +'Stephanie', +'Rebecca', +'Laura', +'Sharon', +'Cynthia', +'Kathleen', +'Helen', +'Amy', +'Shirley', +'Angela', +'Anna', +'Brenda', +'Pamela', +'Nicole', +'Ruth', +'Katherine', +'Samantha', +'Christine', +'Emma', +'Catherine', +'Debra', +'Virginia', +'Rachel', +'Carolyn', +'Janet', +'Maria', +'Heather', +'Diane', +'Julie', +'Joyce', +'Victoria', +'Kelly', +'Christina', +'Joan', +'Evelyn', +'Lauren', +'Judith', +'Olivia', +'Frances', +'Martha', +'Cheryl', +'Megan', +'Andrea', +'Hannah', +'Jacqueline', +'Ann', +'Jean', +'Alice', +'Kathryn', +'Gloria', +'Teresa', +'Doris', +'Sara', +'Janice', +'Julia', +'Marie', +'Madison', +'Grace', +'Judy', +'Theresa', +'Beverly', +'Denise', +'Marilyn', +'Amber', +'Danielle', +'Abigail', +'Brittany', +'Rose', +'Diana', +'Natalie', +'Sophia', +'Alexis', +'Lori', +'Kayla', +'Jane', diff --git a/data/portraits.lua b/data/portraits.lua new file mode 100644 index 0000000..9990485 --- /dev/null +++ b/data/portraits.lua @@ -0,0 +1,33 @@ +return { + "TCP Cyberpunk 3.jpg", + "TCP Cyberpunk 3.jpg", + "TCP Cyberpunk 5.jpg", + "TCP Dwarf 1.jpg", + "TCP Dwarf 4.jpg", + "TCP Dwarf 6.jpg", + "TCP Elf 2.jpg", + "TCP Gnome 1.jpg", + "TCP Gnome 2.jpg", + "TCP Hero 1.jpg", + "TCP Hero 3.jpg", + "TCP Human 1.jpg", + "TCP Human 2.jpg", + "TCP Human 3.jpg", + "TCP Human 4.jpg", + "TCP Human 5.jpg", + "TCP Human 6.jpg", + "TCP Human 7.jpg", + "TCP Human 8.jpg", + "TCP Human 9.jpg", + "TCP Mad Scientist 2.jpg", + "TCP Pirate 1.jpg", + "TCP Pirate 2.jpg", + "TCP Pirate 5.jpg", + "TCP Scary 1.jpg", + "TCP Scary 2.jpg", + "TCP Scary 3.jpg", + "TCP Toon 1.jpg", + "TCP Vampire 1.jpg", + "TCP Vampire 2.jpg", + "TCP Vampire 4.jpg", +} diff --git a/data/res/font.xml b/data/res/font.xml new file mode 100644 index 0000000..3665304 Binary files /dev/null and b/data/res/font.xml differ diff --git a/data/res/font0.png b/data/res/font0.png new file mode 100644 index 0000000..d14887b Binary files /dev/null and b/data/res/font0.png differ diff --git a/data/res/font1.png b/data/res/font1.png new file mode 100644 index 0000000..ebdaa21 Binary files /dev/null and b/data/res/font1.png differ diff --git a/data/res/font2.png b/data/res/font2.png new file mode 100644 index 0000000..aec13da Binary files /dev/null and b/data/res/font2.png differ diff --git a/data/smol/TCP Cyberpunk 3.jpg b/data/smol/TCP Cyberpunk 3.jpg new file mode 100644 index 0000000..e077954 Binary files /dev/null and b/data/smol/TCP Cyberpunk 3.jpg differ diff --git a/data/smol/TCP Cyberpunk 5.jpg b/data/smol/TCP Cyberpunk 5.jpg new file mode 100644 index 0000000..33ff1ca Binary files /dev/null and b/data/smol/TCP Cyberpunk 5.jpg differ diff --git a/data/smol/TCP Dwarf 1.jpg b/data/smol/TCP Dwarf 1.jpg new file mode 100644 index 0000000..5a3a54a Binary files /dev/null and b/data/smol/TCP Dwarf 1.jpg differ diff --git a/data/smol/TCP Dwarf 4.jpg b/data/smol/TCP Dwarf 4.jpg new file mode 100644 index 0000000..558b216 Binary files /dev/null and b/data/smol/TCP Dwarf 4.jpg differ diff --git a/data/smol/TCP Dwarf 6.jpg b/data/smol/TCP Dwarf 6.jpg new file mode 100644 index 0000000..cfb3c47 Binary files /dev/null and b/data/smol/TCP Dwarf 6.jpg differ diff --git a/data/smol/TCP Elf 2.jpg b/data/smol/TCP Elf 2.jpg new file mode 100644 index 0000000..7bc195b Binary files /dev/null and b/data/smol/TCP Elf 2.jpg differ diff --git a/data/smol/TCP Gnome 1.jpg b/data/smol/TCP Gnome 1.jpg new file mode 100644 index 0000000..33e14e9 Binary files /dev/null and b/data/smol/TCP Gnome 1.jpg differ diff --git a/data/smol/TCP Gnome 2.jpg b/data/smol/TCP Gnome 2.jpg new file mode 100644 index 0000000..0451693 Binary files /dev/null and b/data/smol/TCP Gnome 2.jpg differ diff --git a/data/smol/TCP Hero 1.jpg b/data/smol/TCP Hero 1.jpg new file mode 100644 index 0000000..27003a6 Binary files /dev/null and b/data/smol/TCP Hero 1.jpg differ diff --git a/data/smol/TCP Hero 3.jpg b/data/smol/TCP Hero 3.jpg new file mode 100644 index 0000000..de832d6 Binary files /dev/null and b/data/smol/TCP Hero 3.jpg differ diff --git a/data/smol/TCP Human 1.jpg b/data/smol/TCP Human 1.jpg new file mode 100644 index 0000000..44e84c1 Binary files /dev/null and b/data/smol/TCP Human 1.jpg differ diff --git a/data/smol/TCP Human 2.jpg b/data/smol/TCP Human 2.jpg new file mode 100644 index 0000000..2ad4cc7 Binary files /dev/null and b/data/smol/TCP Human 2.jpg differ diff --git a/data/smol/TCP Human 3.jpg b/data/smol/TCP Human 3.jpg new file mode 100644 index 0000000..07f8442 Binary files /dev/null and b/data/smol/TCP Human 3.jpg differ diff --git a/data/smol/TCP Human 4.jpg b/data/smol/TCP Human 4.jpg new file mode 100644 index 0000000..f2e705a Binary files /dev/null and b/data/smol/TCP Human 4.jpg differ diff --git a/data/smol/TCP Human 5.jpg b/data/smol/TCP Human 5.jpg new file mode 100644 index 0000000..abff6d7 Binary files /dev/null and b/data/smol/TCP Human 5.jpg differ diff --git a/data/smol/TCP Human 6.jpg b/data/smol/TCP Human 6.jpg new file mode 100644 index 0000000..e19cdc6 Binary files /dev/null and b/data/smol/TCP Human 6.jpg differ diff --git a/data/smol/TCP Human 7.jpg b/data/smol/TCP Human 7.jpg new file mode 100644 index 0000000..91a4794 Binary files /dev/null and b/data/smol/TCP Human 7.jpg differ diff --git a/data/smol/TCP Human 8.jpg b/data/smol/TCP Human 8.jpg new file mode 100644 index 0000000..36cfb45 Binary files /dev/null and b/data/smol/TCP Human 8.jpg differ diff --git a/data/smol/TCP Human 9.jpg b/data/smol/TCP Human 9.jpg new file mode 100644 index 0000000..4878cfa Binary files /dev/null and b/data/smol/TCP Human 9.jpg differ diff --git a/data/smol/TCP Mad Scientist 2.jpg b/data/smol/TCP Mad Scientist 2.jpg new file mode 100644 index 0000000..597b816 Binary files /dev/null and b/data/smol/TCP Mad Scientist 2.jpg differ diff --git a/data/smol/TCP Pirate 1.jpg b/data/smol/TCP Pirate 1.jpg new file mode 100644 index 0000000..4845f6e Binary files /dev/null and b/data/smol/TCP Pirate 1.jpg differ diff --git a/data/smol/TCP Pirate 2.jpg b/data/smol/TCP Pirate 2.jpg new file mode 100644 index 0000000..73fa3b9 Binary files /dev/null and b/data/smol/TCP Pirate 2.jpg differ diff --git a/data/smol/TCP Pirate 5.jpg b/data/smol/TCP Pirate 5.jpg new file mode 100644 index 0000000..8da4d58 Binary files /dev/null and b/data/smol/TCP Pirate 5.jpg differ diff --git a/data/smol/TCP Scary 1.jpg b/data/smol/TCP Scary 1.jpg new file mode 100644 index 0000000..21a1bde Binary files /dev/null and b/data/smol/TCP Scary 1.jpg differ diff --git a/data/smol/TCP Scary 2.jpg b/data/smol/TCP Scary 2.jpg new file mode 100644 index 0000000..395d655 Binary files /dev/null and b/data/smol/TCP Scary 2.jpg differ diff --git a/data/smol/TCP Scary 3.jpg b/data/smol/TCP Scary 3.jpg new file mode 100644 index 0000000..8948149 Binary files /dev/null and b/data/smol/TCP Scary 3.jpg differ diff --git a/data/smol/TCP Toon 1.jpg b/data/smol/TCP Toon 1.jpg new file mode 100644 index 0000000..2e0da7f Binary files /dev/null and b/data/smol/TCP Toon 1.jpg differ diff --git a/data/smol/TCP Vampire 1.jpg b/data/smol/TCP Vampire 1.jpg new file mode 100644 index 0000000..26daee2 Binary files /dev/null and b/data/smol/TCP Vampire 1.jpg differ diff --git a/data/smol/TCP Vampire 2.jpg b/data/smol/TCP Vampire 2.jpg new file mode 100644 index 0000000..89abe7e Binary files /dev/null and b/data/smol/TCP Vampire 2.jpg differ diff --git a/data/smol/TCP Vampire 4.jpg b/data/smol/TCP Vampire 4.jpg new file mode 100644 index 0000000..db37a37 Binary files /dev/null and b/data/smol/TCP Vampire 4.jpg differ diff --git a/data/traits.lua b/data/traits.lua new file mode 100644 index 0000000..b0fcc38 --- /dev/null +++ b/data/traits.lua @@ -0,0 +1,134 @@ +return { + { + text = "High school graduate", + payback_chance = 0.7, + payback_varience = 0.2, + category = "Education", + }, + { + text = "Trade school graduate", + payback_chance = 0.75, + payback_varience = 0.1, + category = "Education", + }, + { + text = "College graduate", + payback_chance = 0.8, + payback_varience = 0.3, + category = "Education", + }, + { + text = "Went hikeing in the Grand Canyon", + payback_chance = -1, + payback_varience = -1, + category = {} + }, + { + text = "Likes to cycle to work", + payback_chance = -1, + payback_varience = -1, + category = "Habit", + }, + { + text = "President of their local drone enthusiast club", + payback_chance = 0.9, + payback_varience = 0.1, + category = "Habit", + }, + { + text = "Is married", + payback_chance = 0.8, + payback_varience = 0.2, + cateogry = "Marital", + }, + { + text = "Recently Divorced", + payback_chance = 0.6, + payback_varience = 0.1, + cateogry = "Marital", + }, + { + text = "Unmarried", + payback_chance = 0.55, + payback_varience = 0.3, + category = "Marital", + }, + { + text = "Has 2 children", + payback_chance = 0.8, + payback_varience = 0.1, + category = "Children", + }, + { + text = "Has 6 children", + payback_chance = 0.85, + payback_varience = 0.15, + category = "Children", + }, + { + text = "Dislikes cat pictures on the internet", + payback_chance = -1, + payback_varience = -1, + cateogry = {} + }, + { + text = "Is left handed", + payback_chance = -1, + payback_varience = -1, + category = {} + }, + { + text = "Previous criminal conviction", + payback_chance = 0.5, + payback_varience = 0.1, + category = {} + }, + { + text = "Impulsive shopper", + payback_chance = 0.4, + payback_varience = 0.2, + cateogry = {} + }, + { + text = "Buys expensive cloths", + payback_chance = -1, + payback_varience = -1, + category = {} + }, + { + text = "Charged with fraud", + payback_chance = 0.1, + payback_varience = 0.1, + category = {} + }, + { + text = "Frequently misses payments on utility bills", + payback_chance = 0.3, + payback_varience = 0.3, + cateogry = {} + }, + { + text = "Poor fashion sense", + payback_chance = -1, + payback_varience = -1, + category = {} + }, + { + text = "Invests in a 401k", + payback_chance = 1, + payback_varience = 0, + category = {} + }, + { + text = "Invests in stocks", + payback_chance = 0.5, + payback_varience = 0.5, + category = {} + }, + { + text = "Invests in bonds", + payback_chance = 0.9, + payback_varience = 0.05, + category = {} + } +} -- cgit v1.2.3-70-g09d2