diff --git a/effects/spectralArrow.png b/effects/spectralArrow.png index f3f1d8a..5ebfab2 100644 Binary files a/effects/spectralArrow.png and b/effects/spectralArrow.png differ diff --git a/effects/spectralFireball.png b/effects/spectralFireball.png index 90dbd65..8aadb1c 100644 Binary files a/effects/spectralFireball.png and b/effects/spectralFireball.png differ diff --git a/hero_modern/body/hands/gnoll_bow_left.png b/hero_modern/body/hands/gnoll_bow_left.png index 8b13789..b550e30 100644 Binary files a/hero_modern/body/hands/gnoll_bow_left.png and b/hero_modern/body/hands/gnoll_bow_left.png differ diff --git a/hero_modern/body/hands/gnoll_bow_right.png b/hero_modern/body/hands/gnoll_bow_right.png new file mode 100644 index 0000000..a1fdacb Binary files /dev/null and b/hero_modern/body/hands/gnoll_bow_right.png differ diff --git a/hero_modern/body/hands/gnoll_crossbow_hit_right.png b/hero_modern/body/hands/gnoll_crossbow_hit_right.png new file mode 100644 index 0000000..258a7d3 Binary files /dev/null and b/hero_modern/body/hands/gnoll_crossbow_hit_right.png differ diff --git a/hero_modern/body/hands/gnoll_crossbow_left.png b/hero_modern/body/hands/gnoll_crossbow_left.png new file mode 100644 index 0000000..b550e30 Binary files /dev/null and b/hero_modern/body/hands/gnoll_crossbow_left.png differ diff --git a/hero_modern/body/hands/gnoll_crossbow_right.png b/hero_modern/body/hands/gnoll_crossbow_right.png new file mode 100644 index 0000000..a1fdacb Binary files /dev/null and b/hero_modern/body/hands/gnoll_crossbow_right.png differ diff --git a/hero_modern/body/hands/gnoll_heavy_left.png b/hero_modern/body/hands/gnoll_heavy_left.png new file mode 100644 index 0000000..5efaf85 Binary files /dev/null and b/hero_modern/body/hands/gnoll_heavy_left.png differ diff --git a/hero_modern/body/hands/gnoll_heavy_right.png b/hero_modern/body/hands/gnoll_heavy_right.png new file mode 100644 index 0000000..faf7e5e Binary files /dev/null and b/hero_modern/body/hands/gnoll_heavy_right.png differ diff --git a/hero_modern/body/hands/gnoll_none_left.png b/hero_modern/body/hands/gnoll_none_left.png new file mode 100644 index 0000000..3b87239 Binary files /dev/null and b/hero_modern/body/hands/gnoll_none_left.png differ diff --git a/hero_modern/body/hands/gnoll_none_right.png b/hero_modern/body/hands/gnoll_none_right.png new file mode 100644 index 0000000..bb077fd Binary files /dev/null and b/hero_modern/body/hands/gnoll_none_right.png differ diff --git a/hero_modern/body/hands/gnoll_spear_left.png b/hero_modern/body/hands/gnoll_spear_left.png new file mode 100644 index 0000000..2d8624b Binary files /dev/null and b/hero_modern/body/hands/gnoll_spear_left.png differ diff --git a/hero_modern/body/hands/gnoll_spear_right.png b/hero_modern/body/hands/gnoll_spear_right.png new file mode 100644 index 0000000..1365b2f Binary files /dev/null and b/hero_modern/body/hands/gnoll_spear_right.png differ diff --git a/hero_modern/body/hands/gnoll_staff_left.png b/hero_modern/body/hands/gnoll_staff_left.png new file mode 100644 index 0000000..8e47e9e Binary files /dev/null and b/hero_modern/body/hands/gnoll_staff_left.png differ diff --git a/hero_modern/body/hands/gnoll_staff_right.png b/hero_modern/body/hands/gnoll_staff_right.png new file mode 100644 index 0000000..27fae46 Binary files /dev/null and b/hero_modern/body/hands/gnoll_staff_right.png differ diff --git a/hero_modern/body/hands/gnoll_sword_left.png b/hero_modern/body/hands/gnoll_sword_left.png new file mode 100644 index 0000000..f041eb0 Binary files /dev/null and b/hero_modern/body/hands/gnoll_sword_left.png differ diff --git a/hero_modern/body/hands/gnoll_sword_right.png b/hero_modern/body/hands/gnoll_sword_right.png new file mode 100644 index 0000000..38a0203 Binary files /dev/null and b/hero_modern/body/hands/gnoll_sword_right.png differ diff --git a/hero_modern/body/hands/lich_bow_left.png b/hero_modern/body/hands/lich_bow_left.png new file mode 100644 index 0000000..b550e30 Binary files /dev/null and b/hero_modern/body/hands/lich_bow_left.png differ diff --git a/hero_modern/body/hands/lich_bow_right.png b/hero_modern/body/hands/lich_bow_right.png new file mode 100644 index 0000000..0bede57 Binary files /dev/null and b/hero_modern/body/hands/lich_bow_right.png differ diff --git a/hero_modern/body/hands/lich_crossbow_hit_right.png b/hero_modern/body/hands/lich_crossbow_hit_right.png new file mode 100644 index 0000000..cd048a4 Binary files /dev/null and b/hero_modern/body/hands/lich_crossbow_hit_right.png differ diff --git a/hero_modern/body/hands/lich_crossbow_left.png b/hero_modern/body/hands/lich_crossbow_left.png new file mode 100644 index 0000000..b550e30 Binary files /dev/null and b/hero_modern/body/hands/lich_crossbow_left.png differ diff --git a/hero_modern/body/hands/lich_crossbow_right.png b/hero_modern/body/hands/lich_crossbow_right.png new file mode 100644 index 0000000..0bede57 Binary files /dev/null and b/hero_modern/body/hands/lich_crossbow_right.png differ diff --git a/hero_modern/body/hands/lich_heavy_left.png b/hero_modern/body/hands/lich_heavy_left.png new file mode 100644 index 0000000..5efaf85 Binary files /dev/null and b/hero_modern/body/hands/lich_heavy_left.png differ diff --git a/hero_modern/body/hands/lich_heavy_right.png b/hero_modern/body/hands/lich_heavy_right.png new file mode 100644 index 0000000..86df2aa Binary files /dev/null and b/hero_modern/body/hands/lich_heavy_right.png differ diff --git a/hero_modern/body/hands/lich_none_left.png b/hero_modern/body/hands/lich_none_left.png new file mode 100644 index 0000000..91b189c Binary files /dev/null and b/hero_modern/body/hands/lich_none_left.png differ diff --git a/hero_modern/body/hands/lich_none_right.png b/hero_modern/body/hands/lich_none_right.png new file mode 100644 index 0000000..f94832c Binary files /dev/null and b/hero_modern/body/hands/lich_none_right.png differ diff --git a/hero_modern/body/hands/lich_spear_left.png b/hero_modern/body/hands/lich_spear_left.png new file mode 100644 index 0000000..2d8624b Binary files /dev/null and b/hero_modern/body/hands/lich_spear_left.png differ diff --git a/hero_modern/body/hands/lich_spear_right.png b/hero_modern/body/hands/lich_spear_right.png new file mode 100644 index 0000000..ab9e6da Binary files /dev/null and b/hero_modern/body/hands/lich_spear_right.png differ diff --git a/hero_modern/body/hands/lich_staff_left.png b/hero_modern/body/hands/lich_staff_left.png new file mode 100644 index 0000000..fb66dba Binary files /dev/null and b/hero_modern/body/hands/lich_staff_left.png differ diff --git a/hero_modern/body/hands/lich_staff_right.png b/hero_modern/body/hands/lich_staff_right.png new file mode 100644 index 0000000..ce8c085 Binary files /dev/null and b/hero_modern/body/hands/lich_staff_right.png differ diff --git a/hero_modern/body/hands/lich_sword_left.png b/hero_modern/body/hands/lich_sword_left.png new file mode 100644 index 0000000..bedede1 Binary files /dev/null and b/hero_modern/body/hands/lich_sword_left.png differ diff --git a/hero_modern/body/hands/lich_sword_right.png b/hero_modern/body/hands/lich_sword_right.png new file mode 100644 index 0000000..255a4b8 Binary files /dev/null and b/hero_modern/body/hands/lich_sword_right.png differ diff --git a/hero_modern/body/hands/man_bow_left.png b/hero_modern/body/hands/man_bow_left.png new file mode 100644 index 0000000..b550e30 Binary files /dev/null and b/hero_modern/body/hands/man_bow_left.png differ diff --git a/hero_modern/body/hands/man_bow_right.png b/hero_modern/body/hands/man_bow_right.png new file mode 100644 index 0000000..4c4b7cf Binary files /dev/null and b/hero_modern/body/hands/man_bow_right.png differ diff --git a/hero_modern/body/hands/man_crossbow_hit_right.png b/hero_modern/body/hands/man_crossbow_hit_right.png new file mode 100644 index 0000000..4aac764 Binary files /dev/null and b/hero_modern/body/hands/man_crossbow_hit_right.png differ diff --git a/hero_modern/body/hands/man_crossbow_left.png b/hero_modern/body/hands/man_crossbow_left.png new file mode 100644 index 0000000..b550e30 Binary files /dev/null and b/hero_modern/body/hands/man_crossbow_left.png differ diff --git a/hero_modern/body/hands/man_crossbow_right.png b/hero_modern/body/hands/man_crossbow_right.png new file mode 100644 index 0000000..4c4b7cf Binary files /dev/null and b/hero_modern/body/hands/man_crossbow_right.png differ diff --git a/hero_modern/body/hands/man_heavy_left.png b/hero_modern/body/hands/man_heavy_left.png new file mode 100644 index 0000000..5efaf85 Binary files /dev/null and b/hero_modern/body/hands/man_heavy_left.png differ diff --git a/hero_modern/body/hands/man_heavy_right.png b/hero_modern/body/hands/man_heavy_right.png new file mode 100644 index 0000000..69e16b9 Binary files /dev/null and b/hero_modern/body/hands/man_heavy_right.png differ diff --git a/hero_modern/body/hands/man_none_left.png b/hero_modern/body/hands/man_none_left.png new file mode 100644 index 0000000..9beeaea Binary files /dev/null and b/hero_modern/body/hands/man_none_left.png differ diff --git a/hero_modern/body/hands/man_none_right.png b/hero_modern/body/hands/man_none_right.png new file mode 100644 index 0000000..8332e78 Binary files /dev/null and b/hero_modern/body/hands/man_none_right.png differ diff --git a/hero_modern/body/hands/man_spear_left.png b/hero_modern/body/hands/man_spear_left.png new file mode 100644 index 0000000..2d8624b Binary files /dev/null and b/hero_modern/body/hands/man_spear_left.png differ diff --git a/hero_modern/body/hands/man_spear_right.png b/hero_modern/body/hands/man_spear_right.png new file mode 100644 index 0000000..8439c34 Binary files /dev/null and b/hero_modern/body/hands/man_spear_right.png differ diff --git a/hero_modern/body/hands/man_staff_left.png b/hero_modern/body/hands/man_staff_left.png new file mode 100644 index 0000000..52f2536 Binary files /dev/null and b/hero_modern/body/hands/man_staff_left.png differ diff --git a/hero_modern/body/hands/man_staff_right.png b/hero_modern/body/hands/man_staff_right.png new file mode 100644 index 0000000..91867d1 Binary files /dev/null and b/hero_modern/body/hands/man_staff_right.png differ diff --git a/hero_modern/body/hands/man_sword_left.png b/hero_modern/body/hands/man_sword_left.png new file mode 100644 index 0000000..5e9a079 Binary files /dev/null and b/hero_modern/body/hands/man_sword_left.png differ diff --git a/hero_modern/body/hands/man_sword_right.png b/hero_modern/body/hands/man_sword_right.png new file mode 100644 index 0000000..c528062 Binary files /dev/null and b/hero_modern/body/hands/man_sword_right.png differ diff --git a/hero_modern/body/hands/statue_bow_left.png b/hero_modern/body/hands/statue_bow_left.png new file mode 100644 index 0000000..50e1751 Binary files /dev/null and b/hero_modern/body/hands/statue_bow_left.png differ diff --git a/hero_modern/body/hands/statue_bow_right.png b/hero_modern/body/hands/statue_bow_right.png new file mode 100644 index 0000000..ce3fc8c Binary files /dev/null and b/hero_modern/body/hands/statue_bow_right.png differ diff --git a/hero_modern/body/hands/statue_crossbow_hit_right.png b/hero_modern/body/hands/statue_crossbow_hit_right.png new file mode 100644 index 0000000..cec1ef5 Binary files /dev/null and b/hero_modern/body/hands/statue_crossbow_hit_right.png differ diff --git a/hero_modern/body/hands/statue_crossbow_left.png b/hero_modern/body/hands/statue_crossbow_left.png new file mode 100644 index 0000000..70450f8 Binary files /dev/null and b/hero_modern/body/hands/statue_crossbow_left.png differ diff --git a/hero_modern/body/hands/statue_crossbow_right.png b/hero_modern/body/hands/statue_crossbow_right.png new file mode 100644 index 0000000..ce3fc8c Binary files /dev/null and b/hero_modern/body/hands/statue_crossbow_right.png differ diff --git a/hero_modern/body/hands/statue_heavy_left.png b/hero_modern/body/hands/statue_heavy_left.png new file mode 100644 index 0000000..265b93a Binary files /dev/null and b/hero_modern/body/hands/statue_heavy_left.png differ diff --git a/hero_modern/body/hands/statue_heavy_right.png b/hero_modern/body/hands/statue_heavy_right.png new file mode 100644 index 0000000..59c50e7 Binary files /dev/null and b/hero_modern/body/hands/statue_heavy_right.png differ diff --git a/hero_modern/body/hands/statue_none_left.png b/hero_modern/body/hands/statue_none_left.png new file mode 100644 index 0000000..f21e145 Binary files /dev/null and b/hero_modern/body/hands/statue_none_left.png differ diff --git a/hero_modern/body/hands/statue_none_right.png b/hero_modern/body/hands/statue_none_right.png new file mode 100644 index 0000000..827b22c Binary files /dev/null and b/hero_modern/body/hands/statue_none_right.png differ diff --git a/hero_modern/body/hands/statue_spear_left.png b/hero_modern/body/hands/statue_spear_left.png new file mode 100644 index 0000000..7e6e309 Binary files /dev/null and b/hero_modern/body/hands/statue_spear_left.png differ diff --git a/hero_modern/body/hands/statue_spear_right.png b/hero_modern/body/hands/statue_spear_right.png new file mode 100644 index 0000000..4b2dc29 Binary files /dev/null and b/hero_modern/body/hands/statue_spear_right.png differ diff --git a/hero_modern/body/hands/statue_staff_left.png b/hero_modern/body/hands/statue_staff_left.png new file mode 100644 index 0000000..279ff60 Binary files /dev/null and b/hero_modern/body/hands/statue_staff_left.png differ diff --git a/hero_modern/body/hands/statue_staff_right.png b/hero_modern/body/hands/statue_staff_right.png new file mode 100644 index 0000000..1e67e2f Binary files /dev/null and b/hero_modern/body/hands/statue_staff_right.png differ diff --git a/hero_modern/body/hands/statue_sword_left.png b/hero_modern/body/hands/statue_sword_left.png new file mode 100644 index 0000000..5831045 Binary files /dev/null and b/hero_modern/body/hands/statue_sword_left.png differ diff --git a/hero_modern/body/hands/statue_sword_right.png b/hero_modern/body/hands/statue_sword_right.png new file mode 100644 index 0000000..f2fe361 Binary files /dev/null and b/hero_modern/body/hands/statue_sword_right.png differ diff --git a/hero_modern/body/hands/warlock_bow_left.png b/hero_modern/body/hands/warlock_bow_left.png new file mode 100644 index 0000000..7fd4b80 Binary files /dev/null and b/hero_modern/body/hands/warlock_bow_left.png differ diff --git a/hero_modern/body/hands/warlock_bow_right.png b/hero_modern/body/hands/warlock_bow_right.png new file mode 100644 index 0000000..34f474f Binary files /dev/null and b/hero_modern/body/hands/warlock_bow_right.png differ diff --git a/hero_modern/body/hands/warlock_crossbow_hit_right.png b/hero_modern/body/hands/warlock_crossbow_hit_right.png new file mode 100644 index 0000000..dbdfc2f Binary files /dev/null and b/hero_modern/body/hands/warlock_crossbow_hit_right.png differ diff --git a/hero_modern/body/hands/warlock_crossbow_left.png b/hero_modern/body/hands/warlock_crossbow_left.png new file mode 100644 index 0000000..f782ab4 Binary files /dev/null and b/hero_modern/body/hands/warlock_crossbow_left.png differ diff --git a/hero_modern/body/hands/warlock_crossbow_right.png b/hero_modern/body/hands/warlock_crossbow_right.png new file mode 100644 index 0000000..0960822 Binary files /dev/null and b/hero_modern/body/hands/warlock_crossbow_right.png differ diff --git a/hero_modern/body/hands/warlock_heavy_left.png b/hero_modern/body/hands/warlock_heavy_left.png new file mode 100644 index 0000000..d47ae7b Binary files /dev/null and b/hero_modern/body/hands/warlock_heavy_left.png differ diff --git a/hero_modern/body/hands/warlock_heavy_right.png b/hero_modern/body/hands/warlock_heavy_right.png new file mode 100644 index 0000000..912dc71 Binary files /dev/null and b/hero_modern/body/hands/warlock_heavy_right.png differ diff --git a/hero_modern/body/hands/warlock_none_left.png b/hero_modern/body/hands/warlock_none_left.png new file mode 100644 index 0000000..1f62629 Binary files /dev/null and b/hero_modern/body/hands/warlock_none_left.png differ diff --git a/hero_modern/body/hands/warlock_none_right.png b/hero_modern/body/hands/warlock_none_right.png new file mode 100644 index 0000000..57a71e5 Binary files /dev/null and b/hero_modern/body/hands/warlock_none_right.png differ diff --git a/hero_modern/body/hands/warlock_spear_left.png b/hero_modern/body/hands/warlock_spear_left.png new file mode 100644 index 0000000..6aa479b Binary files /dev/null and b/hero_modern/body/hands/warlock_spear_left.png differ diff --git a/hero_modern/body/hands/warlock_spear_right.png b/hero_modern/body/hands/warlock_spear_right.png new file mode 100644 index 0000000..424e925 Binary files /dev/null and b/hero_modern/body/hands/warlock_spear_right.png differ diff --git a/hero_modern/body/hands/warlock_staff_left.png b/hero_modern/body/hands/warlock_staff_left.png new file mode 100644 index 0000000..1d80064 Binary files /dev/null and b/hero_modern/body/hands/warlock_staff_left.png differ diff --git a/hero_modern/body/hands/warlock_staff_right.png b/hero_modern/body/hands/warlock_staff_right.png new file mode 100644 index 0000000..5cb56fd Binary files /dev/null and b/hero_modern/body/hands/warlock_staff_right.png differ diff --git a/hero_modern/body/hands/warlock_sword_left.png b/hero_modern/body/hands/warlock_sword_left.png new file mode 100644 index 0000000..0cf1803 Binary files /dev/null and b/hero_modern/body/hands/warlock_sword_left.png differ diff --git a/hero_modern/body/hands/warlock_sword_right.png b/hero_modern/body/hands/warlock_sword_right.png new file mode 100644 index 0000000..a39dea4 Binary files /dev/null and b/hero_modern/body/hands/warlock_sword_right.png differ diff --git a/hero_modern/body/hands/woman_bow_left.png b/hero_modern/body/hands/woman_bow_left.png new file mode 100644 index 0000000..b550e30 Binary files /dev/null and b/hero_modern/body/hands/woman_bow_left.png differ diff --git a/hero_modern/body/hands/woman_bow_right.png b/hero_modern/body/hands/woman_bow_right.png new file mode 100644 index 0000000..4c4b7cf Binary files /dev/null and b/hero_modern/body/hands/woman_bow_right.png differ diff --git a/hero_modern/body/hands/woman_crossbow_hit_right.png b/hero_modern/body/hands/woman_crossbow_hit_right.png new file mode 100644 index 0000000..4aac764 Binary files /dev/null and b/hero_modern/body/hands/woman_crossbow_hit_right.png differ diff --git a/hero_modern/body/hands/woman_crossbow_left.png b/hero_modern/body/hands/woman_crossbow_left.png new file mode 100644 index 0000000..b550e30 Binary files /dev/null and b/hero_modern/body/hands/woman_crossbow_left.png differ diff --git a/hero_modern/body/hands/woman_crossbow_right.png b/hero_modern/body/hands/woman_crossbow_right.png new file mode 100644 index 0000000..4c4b7cf Binary files /dev/null and b/hero_modern/body/hands/woman_crossbow_right.png differ diff --git a/hero_modern/body/hands/woman_heavy_left.png b/hero_modern/body/hands/woman_heavy_left.png new file mode 100644 index 0000000..5efaf85 Binary files /dev/null and b/hero_modern/body/hands/woman_heavy_left.png differ diff --git a/hero_modern/body/hands/woman_heavy_right.png b/hero_modern/body/hands/woman_heavy_right.png new file mode 100644 index 0000000..69e16b9 Binary files /dev/null and b/hero_modern/body/hands/woman_heavy_right.png differ diff --git a/hero_modern/body/hands/woman_none_left.png b/hero_modern/body/hands/woman_none_left.png new file mode 100644 index 0000000..d28ba5b Binary files /dev/null and b/hero_modern/body/hands/woman_none_left.png differ diff --git a/hero_modern/body/hands/woman_none_right.png b/hero_modern/body/hands/woman_none_right.png new file mode 100644 index 0000000..d3cac73 Binary files /dev/null and b/hero_modern/body/hands/woman_none_right.png differ diff --git a/hero_modern/body/hands/woman_spear_left.png b/hero_modern/body/hands/woman_spear_left.png new file mode 100644 index 0000000..3233357 Binary files /dev/null and b/hero_modern/body/hands/woman_spear_left.png differ diff --git a/hero_modern/body/hands/woman_spear_right.png b/hero_modern/body/hands/woman_spear_right.png new file mode 100644 index 0000000..23b2704 Binary files /dev/null and b/hero_modern/body/hands/woman_spear_right.png differ diff --git a/hero_modern/body/hands/woman_staff_left.png b/hero_modern/body/hands/woman_staff_left.png new file mode 100644 index 0000000..64b510b Binary files /dev/null and b/hero_modern/body/hands/woman_staff_left.png differ diff --git a/hero_modern/body/hands/woman_staff_right.png b/hero_modern/body/hands/woman_staff_right.png new file mode 100644 index 0000000..23b2704 Binary files /dev/null and b/hero_modern/body/hands/woman_staff_right.png differ diff --git a/hero_modern/body/hands/woman_sword_left.png b/hero_modern/body/hands/woman_sword_left.png new file mode 100644 index 0000000..92af4e4 Binary files /dev/null and b/hero_modern/body/hands/woman_sword_left.png differ diff --git a/hero_modern/body/hands/woman_sword_right.png b/hero_modern/body/hands/woman_sword_right.png new file mode 100644 index 0000000..7dfe348 Binary files /dev/null and b/hero_modern/body/hands/woman_sword_right.png differ diff --git a/hero_modern/items/Board_right.png b/hero_modern/items/Board_right.png index 1a885a5..9a4e26b 100644 Binary files a/hero_modern/items/Board_right.png and b/hero_modern/items/Board_right.png differ diff --git a/hero_modern/items/Dagger_left.png b/hero_modern/items/Dagger_left.png index 4d3ead9..f3076d0 100644 Binary files a/hero_modern/items/Dagger_left.png and b/hero_modern/items/Dagger_left.png differ diff --git a/hero_modern/items/Dagger_right.png b/hero_modern/items/Dagger_right.png index 9874302..9532ae9 100644 Binary files a/hero_modern/items/Dagger_right.png and b/hero_modern/items/Dagger_right.png differ diff --git a/hero_modern/items/GoldenSword_left.png b/hero_modern/items/GoldenSword_left.png index 4289d3d..3355979 100644 Binary files a/hero_modern/items/GoldenSword_left.png and b/hero_modern/items/GoldenSword_left.png differ diff --git a/hero_modern/items/GoldenSword_right.png b/hero_modern/items/GoldenSword_right.png index 749c7bb..ea12824 100644 Binary files a/hero_modern/items/GoldenSword_right.png and b/hero_modern/items/GoldenSword_right.png differ diff --git a/hero_modern/items/Knuckles_left.png b/hero_modern/items/Knuckles_left.png index 39af9b8..d2f22d6 100644 Binary files a/hero_modern/items/Knuckles_left.png and b/hero_modern/items/Knuckles_left.png differ diff --git a/hero_modern/items/Knuckles_right.png b/hero_modern/items/Knuckles_right.png index b4ba2f2..7135200 100644 Binary files a/hero_modern/items/Knuckles_right.png and b/hero_modern/items/Knuckles_right.png differ diff --git a/hero_modern/items/Kusarigama_left.png b/hero_modern/items/Kusarigama_left.png index cc999fa..6105999 100644 Binary files a/hero_modern/items/Kusarigama_left.png and b/hero_modern/items/Kusarigama_left.png differ diff --git a/hero_modern/items/Kusarigama_right.png b/hero_modern/items/Kusarigama_right.png index 625278f..8664440 100644 Binary files a/hero_modern/items/Kusarigama_right.png and b/hero_modern/items/Kusarigama_right.png differ diff --git a/hero_modern/items/Mace_left.png b/hero_modern/items/Mace_left.png index 00cca2e..710f623 100644 Binary files a/hero_modern/items/Mace_left.png and b/hero_modern/items/Mace_left.png differ diff --git a/hero_modern/items/Mace_right.png b/hero_modern/items/Mace_right.png index e70f6b7..effe59b 100644 Binary files a/hero_modern/items/Mace_right.png and b/hero_modern/items/Mace_right.png differ diff --git a/hero_modern/items/NecroticShield_left.png b/hero_modern/items/NecroticShield_left.png index 14d6805..e7b27f7 100644 Binary files a/hero_modern/items/NecroticShield_left.png and b/hero_modern/items/NecroticShield_left.png differ diff --git a/hero_modern/items/NecroticShield_right.png b/hero_modern/items/NecroticShield_right.png index 7e491d6..73b6f1a 100644 Binary files a/hero_modern/items/NecroticShield_right.png and b/hero_modern/items/NecroticShield_right.png differ diff --git a/hero_modern/items/OldShield_right.png b/hero_modern/items/OldShield_right.png index 9f8e8b0..78f1a0e 100644 Binary files a/hero_modern/items/OldShield_right.png and b/hero_modern/items/OldShield_right.png differ diff --git a/hero_modern/items/Pickaxe_left.png b/hero_modern/items/Pickaxe_left.png index a95b668..9ced2d4 100644 Binary files a/hero_modern/items/Pickaxe_left.png and b/hero_modern/items/Pickaxe_left.png differ diff --git a/hero_modern/items/Pickaxe_right.png b/hero_modern/items/Pickaxe_right.png index 8c3b690..9b2136f 100644 Binary files a/hero_modern/items/Pickaxe_right.png and b/hero_modern/items/Pickaxe_right.png differ diff --git a/hero_modern/items/RoyalShield_left.png b/hero_modern/items/RoyalShield_left.png index c609df3..1a4600b 100644 Binary files a/hero_modern/items/RoyalShield_left.png and b/hero_modern/items/RoyalShield_left.png differ diff --git a/hero_modern/items/RoyalShield_right.png b/hero_modern/items/RoyalShield_right.png index 1ed8fbd..17f3666 100644 Binary files a/hero_modern/items/RoyalShield_right.png and b/hero_modern/items/RoyalShield_right.png differ diff --git a/hero_modern/items/SacrificialSword_left.png b/hero_modern/items/SacrificialSword_left.png index e24153f..081ad9a 100644 Binary files a/hero_modern/items/SacrificialSword_left.png and b/hero_modern/items/SacrificialSword_left.png differ diff --git a/hero_modern/items/SacrificialSword_right.png b/hero_modern/items/SacrificialSword_right.png index 0963d74..548b658 100644 Binary files a/hero_modern/items/SacrificialSword_right.png and b/hero_modern/items/SacrificialSword_right.png differ diff --git a/hero_modern/items/StrongShield_left.png b/hero_modern/items/StrongShield_left.png index 13e11ca..d8f46a3 100644 Binary files a/hero_modern/items/StrongShield_left.png and b/hero_modern/items/StrongShield_left.png differ diff --git a/hero_modern/items/StrongShield_right.png b/hero_modern/items/StrongShield_right.png index fe6f68a..b35d6d4 100644 Binary files a/hero_modern/items/StrongShield_right.png and b/hero_modern/items/StrongShield_right.png differ diff --git a/hero_modern/items/Sword_left.png b/hero_modern/items/Sword_left.png index 1454a3d..94eba22 100644 Binary files a/hero_modern/items/Sword_left.png and b/hero_modern/items/Sword_left.png differ diff --git a/hero_modern/items/TestWeapon1_left.png b/hero_modern/items/TestWeapon1_left.png index 4289d3d..3355979 100644 Binary files a/hero_modern/items/TestWeapon1_left.png and b/hero_modern/items/TestWeapon1_left.png differ diff --git a/hero_modern/items/TestWeapon1_right.png b/hero_modern/items/TestWeapon1_right.png index 749c7bb..ea12824 100644 Binary files a/hero_modern/items/TestWeapon1_right.png and b/hero_modern/items/TestWeapon1_right.png differ diff --git a/hero_modern/items/ToughShield_left.png b/hero_modern/items/ToughShield_left.png index ce3a212..ea55dbb 100644 Binary files a/hero_modern/items/ToughShield_left.png and b/hero_modern/items/ToughShield_left.png differ diff --git a/hero_modern/items/ToughShield_right.png b/hero_modern/items/ToughShield_right.png index 3cc9990..5db8b8d 100644 Binary files a/hero_modern/items/ToughShield_right.png and b/hero_modern/items/ToughShield_right.png differ diff --git a/hero_modern/items/WoodenShield_left.png b/hero_modern/items/WoodenShield_left.png index d56035c..3ee2c34 100644 Binary files a/hero_modern/items/WoodenShield_left.png and b/hero_modern/items/WoodenShield_left.png differ diff --git a/hero_modern/items/WoodenShield_right.png b/hero_modern/items/WoodenShield_right.png index eeb942e..e3e2e42 100644 Binary files a/hero_modern/items/WoodenShield_right.png and b/hero_modern/items/WoodenShield_right.png differ diff --git a/items/materials.png b/items/materials.png index aa8e0d5..ee18cc6 100644 Binary files a/items/materials.png and b/items/materials.png differ diff --git a/items/scrolls.png b/items/scrolls.png index 73eb4b8..28cb0b3 100644 Binary files a/items/scrolls.png and b/items/scrolls.png differ diff --git a/items/shields.png b/items/shields.png index 5e1830b..2287892 100644 Binary files a/items/shields.png and b/items/shields.png differ diff --git a/items/special.png b/items/special.png index ee299ac..bf971c9 100644 Binary files a/items/special.png and b/items/special.png differ diff --git a/levelsDesc/Bestiary.json b/levelsDesc/Bestiary.json index fbbab36..7a0c62b 100644 --- a/levelsDesc/Bestiary.json +++ b/levelsDesc/Bestiary.json @@ -108,12 +108,14 @@ "nightmare9":{"ConjoinedCorpse":2, "TheRejected":1, "OmnipotentEye":3, "MazeShadow":5} }, "PredesignedLevel":{ - "desert":{"Mummy":1, "SandWorm":0.01, "CactusMimic":0.1, "Husk":1, "Skeleton":0.5}/*, - "ruinedCastle":{"Rat":5, "Possessed":0.3, "UndeadGuard":0.8, "Statue":0.05, "Skeleton":0.5}*/ + "desert":{"Mummy":1, "SandWorm":0.01, "CactusMimic":0.1, "Husk":1, "Skeleton":0.5} }, "TestLevel":{ "any":{"BlackRat":1} }, + "ShadowLordLevel":{ + "any":{"ShadowLord":1} + }, "Feelings":{ "Chance":0.2, "CHASM":{"AirElemental":1}, diff --git a/levelsDesc/Fortune.json b/levelsDesc/Fortune.json index be1a27b..a6340ed 100644 --- a/levelsDesc/Fortune.json +++ b/levelsDesc/Fortune.json @@ -79,7 +79,7 @@ "y":3 }, { - "kind":"BlackCatNPC", + "kind":"BlackCat", "x":3, "y":4 }], @@ -102,4 +102,4 @@ "tiles_roof_base":"tiles_town_inside.png", "water":"water0.png", "width":12 -} \ No newline at end of file +} diff --git a/levelsDesc/House1.json b/levelsDesc/House1.json index a66972a..0469509 100644 --- a/levelsDesc/House1.json +++ b/levelsDesc/House1.json @@ -73,11 +73,7 @@ 1, 4, 4, 4, 4, 7, 4, 4, 4, 4, 4, 1, 1, 35, 35, 35, 35, 4, 35, 35, 35, 35, 35, 1], "mobs":[ - { - "kind":"TownsfolkLootNPC", - "x":5, - "y":3 - }], + ], "multiexit":[], "roofBaseTileVar":[ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, diff --git a/levelsDesc/Shop.json b/levelsDesc/Shop.json index 68ba9ec..73ae7f7 100644 --- a/levelsDesc/Shop.json +++ b/levelsDesc/Shop.json @@ -88,7 +88,31 @@ { "kind":"Shopkeeper", "x":7, - "y":4 + "y":4, + "items": [ + { + "kind": "TomeOfKnowledge", + "identified": true + }, + { + "kind": "Keyring" + }, + { + "kind": "ScrollHolder" + }, + { + "kind": "PotionBelt" + }, + { + "kind": "SeedPouch" + }, + { + "kind": "Quiver" + }, + { + "kind": "WandHolster" + } + ] }], "multiexit":[], "roofDecoTileVar":[ diff --git a/mobs/angry_nimbus.png b/mobs/angry_nimbus.png index 69d8a6d..ead59a9 100644 Binary files a/mobs/angry_nimbus.png and b/mobs/angry_nimbus.png differ diff --git a/mobs/ceaseless_void.png b/mobs/ceaseless_void.png index 0337a6e..61fdbc9 100644 Binary files a/mobs/ceaseless_void.png and b/mobs/ceaseless_void.png differ diff --git a/mobs/cocker_spaniel.png b/mobs/cocker_spaniel.png index a5d7e20..e25a440 100644 Binary files a/mobs/cocker_spaniel.png and b/mobs/cocker_spaniel.png differ diff --git a/mobs/conjoined_corpse.png b/mobs/conjoined_corpse.png index 18e8bf9..1dfb3c5 100644 Binary files a/mobs/conjoined_corpse.png and b/mobs/conjoined_corpse.png differ diff --git a/mobs/dark_elemental.png b/mobs/dark_elemental.png index 3a48da1..07b1c1b 100644 Binary files a/mobs/dark_elemental.png and b/mobs/dark_elemental.png differ diff --git a/mobs/dark_mage.png b/mobs/dark_mage.png index 0b00fcc..26cd863 100644 Binary files a/mobs/dark_mage.png and b/mobs/dark_mage.png differ diff --git a/mobs/earth_mage.png b/mobs/earth_mage.png index 267bb19..33e8d0b 100644 Binary files a/mobs/earth_mage.png and b/mobs/earth_mage.png differ diff --git a/mobs/european_shorthair.png b/mobs/european_shorthair.png index e343a5d..5c40776 100644 Binary files a/mobs/european_shorthair.png and b/mobs/european_shorthair.png differ diff --git a/mobs/fairy.png b/mobs/fairy.png index 8dccb52..f75dce8 100644 Binary files a/mobs/fairy.png and b/mobs/fairy.png differ diff --git a/mobs/fairy_overlord.png b/mobs/fairy_overlord.png index d121698..5c9cd67 100644 Binary files a/mobs/fairy_overlord.png and b/mobs/fairy_overlord.png differ diff --git a/mobs/fire_mage.png b/mobs/fire_mage.png index b6ba6b3..173ce17 100644 Binary files a/mobs/fire_mage.png and b/mobs/fire_mage.png differ diff --git a/mobs/ice_mage.png b/mobs/ice_mage.png index 2760135..51d758e 100644 Binary files a/mobs/ice_mage.png and b/mobs/ice_mage.png differ diff --git a/mobs/light_elemental.png b/mobs/light_elemental.png index fc90a70..b103455 100644 Binary files a/mobs/light_elemental.png and b/mobs/light_elemental.png differ diff --git a/mobs/light_mage.png b/mobs/light_mage.png index 7be3a0e..3a5256b 100644 Binary files a/mobs/light_mage.png and b/mobs/light_mage.png differ diff --git a/mobs/omnipotent_eye.png b/mobs/omnipotent_eye.png index 39a7686..a583e54 100644 Binary files a/mobs/omnipotent_eye.png and b/mobs/omnipotent_eye.png differ diff --git a/mobs/split_corpse.png b/mobs/split_corpse.png index 5d9ed22..c65701d 100644 Binary files a/mobs/split_corpse.png and b/mobs/split_corpse.png differ diff --git a/mobs/the_rejected.png b/mobs/the_rejected.png index 493853b..652fed8 100644 Binary files a/mobs/the_rejected.png and b/mobs/the_rejected.png differ diff --git a/mobs/undead_spider_mutant.png b/mobs/undead_spider_mutant.png index e640510..b151809 100644 Binary files a/mobs/undead_spider_mutant.png and b/mobs/undead_spider_mutant.png differ diff --git a/mobs/water_mage.png b/mobs/water_mage.png index a824d2f..b86bbc6 100644 Binary files a/mobs/water_mage.png and b/mobs/water_mage.png differ diff --git a/pack.sh b/pack.sh new file mode 100644 index 0000000..b3a88e3 --- /dev/null +++ b/pack.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +git archive -o Remixed_Additions.zip --prefix='Remixed Additions/' HEAD +cp -f Remixed_Additions.zip ../NYRDS/common + diff --git a/scripts/actors/Desert.lua b/scripts/actors/Desert.lua index cd4ef54..530f55e 100644 --- a/scripts/actors/Desert.lua +++ b/scripts/actors/Desert.lua @@ -60,30 +60,35 @@ return actor.init({ if chance == desertMobChance[desertMobs[1]] then mob = RPD.MobFactory:mobByName(desertMobs[1]) RPD.setAi(mob, mobAi[math.random(1,#mobAi)]) + mob:setPos(pos) level:spawnMob(mob) RPD.glogp(desertMobs[1].." has spawned at "..tostring(pos)..".") end if chance == desertMobChance[desertMobs[2]] then mob = RPD.MobFactory:mobByName(desertMobs[2]) RPD.setAi(mob, mobAi[math.random(1,#mobAi)]) + mob:setPos(pos) level:spawnMob(mob) RPD.glogp(desertMobs[2].." has spawned at "..tostring(pos)..".") end if chance == desertMobChance[desertMobs[3]] then mob = RPD.MobFactory:mobByName(desertMobs[3]) RPD.setAi(mob, mobAi[math.random(1,#mobAi)]) + mob:setPos(pos) level:spawnMob(mob) RPD.glogp(desertMobs[3].." has spawned at "..tostring(pos)..".") end if chance == desertMobChance[desertMobs[4]] then mob = RPD.MobFactory:mobByName(desertMobs[4]) RPD.setAi(mob, mobAi[math.random(1,#mobAi)]) + mob:setPos(pos) level:spawnMob(mob) RPD.glogp(desertMobs[4].." has spawned at "..tostring(pos)..".") end if chance == desertMobChance[desertMobs[5]] then mob = RPD.MobFactory:mobByName(desertMobs[5]) RPD.setAi(mob, mobAi[math.random(1,#mobAi)]) + mob:setPos(pos) level:spawnMob(mob) RPD.glogp(desertMobs[5].." has spawned at "..tostring(pos)..".") end diff --git a/scripts/buffs/DmgImmune.lua b/scripts/buffs/DmgImmune.lua index c6e7598..a1db454 100644 --- a/scripts/buffs/DmgImmune.lua +++ b/scripts/buffs/DmgImmune.lua @@ -13,14 +13,14 @@ local immuneAbnormal = {"Roots","Paralysis","Vertigo","Invisibility","Levitation return buff.init{ desc = function () return { - icon = 64, + icon = -1, name = "DmgImmune_Name", info = "DmgImmune_Info", } end, - defenceProc = function(chr, buff, enemy, dmg) - return chr:damage(0, enemy) + defenceProc = function(self, buff, enemy, damage) + return 0 end, immunities = function(self, buff) diff --git a/scripts/buffs/NecroShieldLeft.lua b/scripts/buffs/NecroShieldLeft.lua index d06853d..8c89d35 100644 --- a/scripts/buffs/NecroShieldLeft.lua +++ b/scripts/buffs/NecroShieldLeft.lua @@ -7,7 +7,6 @@ local RPD = require "scripts/lib/commonClasses" local buff = require "scripts/lib/buff" local shields = require "scripts/lib/strongerShields" -local mob = require "scripts/lib/mob" return buff.init{ icon = function(self, buff) @@ -57,7 +56,7 @@ return buff.init{ if level:cellValid(cell) then local mob if math.random(1,100) <= 7 then - mob = chrKind + mob = RPD.MobFactory:mobByName(chrKind) else mob = RPD.MobFactory:mobByName("Skeleton") end @@ -65,9 +64,9 @@ return buff.init{ if lvl <= 0 then mob:ht(25) else - mob:ht(25*lvl) - end - mob:hp(mob:ht()-(damage/2)) + mob:ht(25*lvl) + end + mob:hp(mob:ht()-(damage/2)) else mob:ht(enemy:ht()) mob:hp(enemy:hp()-(damage/2)) @@ -85,7 +84,7 @@ return buff.init{ return damage end, - attackProc = function(chr, buff, enemy, dmg) + attackProc = function(self, buff, enemy, dmg) local chr = buff.target local chrKind = enemy:getEntityKind() if chr:name() == "you" then @@ -95,7 +94,7 @@ return buff.init{ if enemy:canBePet() and chrKind ~= "MirrorImage" then if dmg >= enemy:hp() then if math.random(1,100) <= 8 then - mob:makePet(enemy, chr) + enemy:makePet(chr) enemy:heal(enemy:ht(), chr) RPD.setAi(enemy, "Wandering") return 0 diff --git a/scripts/items/ScrollOfWipeOut.lua b/scripts/items/ScrollOfWipeOut.lua index e898ea8..fa91b57 100644 --- a/scripts/items/ScrollOfWipeOut.lua +++ b/scripts/items/ScrollOfWipeOut.lua @@ -29,7 +29,7 @@ return item.init{ end, execute = function(self, item, hero, action) - local immuneMobs = {MirrorImage=true,Shopkeeper=true,ImpShopkeeper=true,TempMoney=true,ShadyNPC=true,BishopNPC=true,BlackCat=true,CockerSpanielNPC=true,Yog=true,YogsEye=true,YogsBrain=true,YogsHeart=true,YogsTeeth=true,RottingFist=true,BurningFist=true} + local immuneMobs = {MirrorImage=true,Shopkeeper=true,ImpShopkeeper=true,TempMoney=true,ShadyNPC=true,BishopNPC=true,BlackCat=true,CockerSpanielNPC=true,Yog=true,YogsEye=true,YogsBrain=true,YogsHeart=true,YogsTeeth=true,RottingFist=true,BurningFist=true,WarriorGhost=true} local resistMobs = {Goo=true,SpiderQueen=true,Lich=true,Tengu=true,IceGuardianCore=true,IceGuardian=true,DM300=true,King=true,ShadowLord=true} local healMobs = {BoneDragon=true,GhostWarrior=true,GhostAssassin=true,GhostArcher=true,GhostMage=true} if action == RPD.Actions.read then diff --git a/scripts/lib/revampedCommonClasses.lua b/scripts/lib/revampedCommonClasses.lua index 59fe35c..aa0576c 100644 --- a/scripts/lib/revampedCommonClasses.lua +++ b/scripts/lib/revampedCommonClasses.lua @@ -221,7 +221,7 @@ local RPD = { Dungeon = Dungeon, System = { - Input = luajava.bindClass("com.nyrds.platform.Input") + Input = luajava.bindClass("com.nyrds.platform.app.Input") }, Slots = { diff --git a/scripts/mobs/ArcherGhost.lua b/scripts/mobs/ArcherGhost.lua index bb39a22..1e4db1a 100644 --- a/scripts/mobs/ArcherGhost.lua +++ b/scripts/mobs/ArcherGhost.lua @@ -20,6 +20,7 @@ return mob.init({ die = function(self, cause) local level = RPD.Dungeon.level local cellPos = RPD.getXy(self) + local selfPos = self:getPos() local function deathDmg(cell) local target = RPD.Actor:findChar(cell) if target then @@ -42,10 +43,10 @@ return mob.init({ local ranPots = math.random(1,#Potions) if Potions[ranPots] == "ManaPotion" or Potions[ranPots] == "PotionOfExperience" or Potions[ranPots] == "PotionOfStrength" or Potions[ranPot] == "PotionOfMight" then local item = RPD.createItem(Potions[ranPots], {quanity=PotionAmount}) - level:drop(item, cellPos) + level:drop(item, selfPos) else local item = RPD.createItem(Potions[ranPots], {level=PotionAmount*2,quanity=PotionAmount}) - level:drop(item, cellPos) + level:drop(item, selfPos) end ScrollAmount = math.random(2,6) local ranScr = math.random(1,#Scrolls-1) diff --git a/scripts/mobs/AssassinGhost.lua b/scripts/mobs/AssassinGhost.lua index b67ae74..70a5274 100644 --- a/scripts/mobs/AssassinGhost.lua +++ b/scripts/mobs/AssassinGhost.lua @@ -20,6 +20,7 @@ return mob.init({ die = function(self, cause) local level = RPD.Dungeon.level local cellPos = RPD.getXy(self) + local selfPos = self:getPos() local function deathDmg(cell) local target = RPD.Actor:findChar(cell) if target then @@ -42,10 +43,10 @@ return mob.init({ local ranPots = math.random(1,#Potions) if Potions[ranPots] == "ManaPotion" or Potions[ranPots] == "PotionOfExperience" or Potions[ranPots] == "PotionOfStrength" or Potions[ranPot] == "PotionOfMight" then local item = RPD.createItem(Potions[ranPots], {quanity=PotionAmount}) - level:drop(item, cellPos) + level:drop(item, selfPos) else local item = RPD.createItem(Potions[ranPots], {level=PotionAmount*2,quanity=PotionAmount}) - level:drop(item, cellPos) + level:drop(item, selfPos) end ScrollAmount = math.random(2,6) local ranScr = math.random(1,#Scrolls-1) diff --git a/scripts/mobs/BoneDragon.lua b/scripts/mobs/BoneDragon.lua index 273bd59..4a5b35a 100644 --- a/scripts/mobs/BoneDragon.lua +++ b/scripts/mobs/BoneDragon.lua @@ -20,14 +20,18 @@ local ItemAmount local tombPortal = {kind="PortalGateSender",target={levelId="tomb",x=6,y=1}} local townPortal = {kind="PortalGateSender",target={levelId="snowTown",x=12,y=28}} local desertTownPortal = {kind="PortalGateSender",target={levelId="home",x=9,y=3}} -local sign = {kind="Sign",text=RPD.textById("TombPortal_Directions"):format(RPD.textById("tombMap_Name"),RPD.textById("snowTownMap_Name"),"Unknown for now"} +local sign = {kind="Sign", + text=RPD.textById("TombPortal_Directions"):format(RPD.textById("tombMap_Name"),RPD.textById("snowTownMap_Name"),"Unknown for now")} return mob.init({ die = function(self, cause) local level = RPD.Dungeon.level local levelId = RPD.Dungeon.levelId local cellPos = RPD.getXy(self) + local pos = self:getPos() + RPD.Actor:remove(RPD.new(RPD.Objects.Actors.ScriptedActor,"scripts/actors/Bosses/BoneDragon")) + local function deathDmg(cell) local target = RPD.Actor:findChar(cell) if target then @@ -40,7 +44,8 @@ return mob.init({ RPD.affectBuff(target, RPD.Buffs.Slow, math.random(18,24)) end end - RPD.forCellsAround(cellPos, deathDmg) + + RPD.forCellsAround(pos, deathDmg) RPD.forCellsAround(level:cell(cellPos[1]-1,cellPos[2]-1), deathDmg) RPD.forCellsAround(level:cell(cellPos[1]+1,cellPos[2]-1), deathDmg) RPD.forCellsAround(level:cell(cellPos[1]-1,cellPos[2]+1), deathDmg) @@ -58,27 +63,27 @@ return mob.init({ local ranPots = math.random(1,#Potions) if Potions[ranPots] == "ManaPotion" or Potions[ranPots] == "PotionOfExperience" or Potions[ranPots] == "PotionOfStrength" or Potions[ranPot] == "PotionOfMight" then local item = RPD.createItem(Potions[ranPots], {quanity=PotionAmount}) - level:drop(item, cellPos) + level:drop(item, pos) else local item = RPD.createItem(Potions[ranPots], {level=PotionAmount*2,quanity=PotionAmount}) - level:drop(item, cellPos) + level:drop(item, pos) end ScrollAmount = math.random(2,6) local ranScr = math.random(1,#Scrolls-2) - level:drop(RPD.item(Scrolls[ranScr], ScrollAmount), self:getPos()) + level:drop(RPD.item(Scrolls[ranScr], ScrollAmount), pos) local ranRin = math.random(1,#Rings-1) - level:drop(RPD.createItem(Rings[ranRin], {level=ScrollAmount*2}), self:getPos()) + level:drop(RPD.createItem(Rings[ranRin], {level=ScrollAmount*2}), pos) if i ~= 3 then - level:drop(RPD.item(Items[2]), self:getPos()) + level:drop(RPD.item(Items[2]), pos) end end ItemAmount = math.random(2,28) - level:drop(RPD.item(Items[3], ItemAmount/2), self:getPos()) - level:drop(RPD.item(Items[4], ItemAmount), self:getPos()) - level:drop(RPD.createItem(Items[1], {level=ItemAmount}), self:getPos()) - level:drop(RPD.item(Scrolls[#Scrolls]), self:getPos()) - level:drop(RPD.item(Scrolls[#Scrolls-1], 5), self:getPos()) - level:drop(RPD.item(Rings[#Rings]), self:getPos()) + level:drop(RPD.item(Items[3], ItemAmount/2), pos) + level:drop(RPD.item(Items[4], ItemAmount), pos) + level:drop(RPD.createItem(Items[1], {level=ItemAmount}), pos) + level:drop(RPD.item(Scrolls[#Scrolls]), pos) + level:drop(RPD.item(Scrolls[#Scrolls-1], 5), pos) + level:drop(RPD.item(Rings[#Rings]), pos) end, defenceProc = function(self, enemy, dmg) diff --git a/scripts/mobs/CockerSpaniel.lua b/scripts/mobs/CockerSpaniel.lua index 3863613..87ca3ec 100644 --- a/scripts/mobs/CockerSpaniel.lua +++ b/scripts/mobs/CockerSpaniel.lua @@ -18,9 +18,11 @@ return mob.init({ hero:getSprite():showStatus(0xFF0000, RPD.textById("Str_lose")) RPD.playSound("snd_cursed.mp3") else - cause:damage(math.random(1,10), self) - cause:getSprite():emitter():burst(RPD.Sfx.ShadowParticle.CURSE, 6) - RPD.playSound("snd_cursed.mp3") + if cause.damage and cause.getSprite then + cause:damage(math.random(1,10), self) + cause:getSprite():emitter():burst(RPD.Sfx.ShadowParticle.CURSE, 6) + RPD.playSound("snd_cursed.mp3") + end end self:getSprite():emitter():burst(RPD.Sfx.ElmoParticle.FACTORY, 6) end, diff --git a/scripts/mobs/ConjoinedCorpse.lua b/scripts/mobs/ConjoinedCorpse.lua index 14f8c92..af88b67 100644 --- a/scripts/mobs/ConjoinedCorpse.lua +++ b/scripts/mobs/ConjoinedCorpse.lua @@ -18,7 +18,7 @@ return mob.init({ local pos = self:getPos() mob1:setPos(pos) if self:isPet() then - mob:makePet(mob1, RPD.Dungeon.hero) + RPD.Mob:makePet(mob1, RPD.Dungeon.hero) end level:spawnMob(mob1) end @@ -26,7 +26,7 @@ return mob.init({ local pos = self:getPos() mob2:setPos(pos) if self:isPet() then - mob:makePet(mob2, RPD.Dungeon.hero) + RPD.Mob:makePet(mob2, RPD.Dungeon.hero) end level:spawnMob(mob2) end diff --git a/scripts/mobs/EuropeanShorthair.lua b/scripts/mobs/EuropeanShorthair.lua index 0acae67..b56f5ea 100644 --- a/scripts/mobs/EuropeanShorthair.lua +++ b/scripts/mobs/EuropeanShorthair.lua @@ -18,9 +18,11 @@ return mob.init({ hero:getSprite():showStatus(0xFF0000, RPD.textById("Str_lose")) RPD.playSound("snd_cursed.mp3") else - cause:damage(math.random(1,10), self) - cause:getSprite():emitter():burst(RPD.Sfx.ShadowParticle.CURSE, 6) - RPD.playSound("snd_cursed.mp3") + if cause.damage and cause.getSprite then + cause:damage(math.random(1,10), self) + cause:getSprite():emitter():burst(RPD.Sfx.ShadowParticle.CURSE, 6) + RPD.playSound("snd_cursed.mp3") + end end self:getSprite():emitter():burst(RPD.Sfx.ElmoParticle.FACTORY, 6) end, diff --git a/scripts/mobs/FairyOverlord.lua b/scripts/mobs/FairyOverlord.lua index 197cdd4..7bb9247 100644 --- a/scripts/mobs/FairyOverlord.lua +++ b/scripts/mobs/FairyOverlord.lua @@ -113,7 +113,7 @@ return mob.init({ if levelId == "dreamFinal" then level:set(level:cell(13,6), 7) RPD.GameScene:updateMap() - RPD.createLevelObject(portal, cause:getPos()) + RPD.createLevelObject(portal, cellPos) end -- RPD.stopMusic() -- RPD.playSound("sound/snd_boss.mp3") diff --git a/scripts/mobs/MageGhost.lua b/scripts/mobs/MageGhost.lua index 790afbd..dad4a56 100644 --- a/scripts/mobs/MageGhost.lua +++ b/scripts/mobs/MageGhost.lua @@ -26,6 +26,7 @@ return mob.init({ die = function(self, cause) local level = RPD.Dungeon.level local cellPos = RPD.getXy(self) + local selfPos = self:getPos() RPD.Actor:remove(RPD.new(RPD.Objects.Actors.ScriptedActor,"scripts/actors/Bosses/BoneDragon")) local function deathDmg(cell) local target = RPD.Actor:findChar(cell) @@ -53,10 +54,10 @@ return mob.init({ local ranPots = math.random(1,#Potions) if Potions[ranPots] == "ManaPotion" or Potions[ranPots] == "PotionOfExperience" or Potions[ranPots] == "PotionOfStrength" or Potions[ranPot] == "PotionOfMight" then local item = RPD.createItem(Potions[ranPots], {quanity=PotionAmount}) - level:drop(item, cellPos) + level:drop(item, selfPos) else local item = RPD.createItem(Potions[ranPots], {level=PotionAmount*2,quanity=PotionAmount}) - level:drop(item, cellPos) + level:drop(item, selfPos) end ScrollAmount = math.random(2,6) local ranScr = math.random(1,#Scrolls-1) diff --git a/scripts/mobs/NightmareClone.lua b/scripts/mobs/NightmareClone.lua index 41ddc95..e97bdb7 100644 --- a/scripts/mobs/NightmareClone.lua +++ b/scripts/mobs/NightmareClone.lua @@ -12,7 +12,7 @@ return mob.init({ die = function(self, cause) local hero = RPD.Dungeon.hero local iterator = RPD.Dungeon.level.mobs:iterator() - if cause then + if cause.heal then cause:heal(math.random(3,18), self) while iterator:hasNext() do local mob = iterator:next() diff --git a/scripts/mobs/TombRaider.lua b/scripts/mobs/TombRaider.lua index 5d2c09e..7d5684f 100644 --- a/scripts/mobs/TombRaider.lua +++ b/scripts/mobs/TombRaider.lua @@ -24,7 +24,14 @@ return mob.init{ local belongins = enemy:getBelongings() if belongins then local items = belongins.backpack.items - item = items:get(math.random(0,items:size()-1)) + + local nItems = items:size() + + if nItems == 0 then + return dmg + end + + item = items:get(math.random(0,nItems-1)) if golden[item:getClassName()] or chaos[item:getClassName()] then item:removeItemFrom(enemy) RPD.glogw("Thief_Stole", self:name(), item:name()) diff --git a/scripts/mobs/WarriorGhost.lua b/scripts/mobs/WarriorGhost.lua index 012f01a..79102c1 100644 --- a/scripts/mobs/WarriorGhost.lua +++ b/scripts/mobs/WarriorGhost.lua @@ -20,6 +20,7 @@ return mob.init({ die = function(self, cause) local level = RPD.Dungeon.level local cellPos = RPD.getXy(self) + local selfPos = self:getPos() RPD.Actor:remove(RPD.new(RPD.Objects.Actors.ScriptedActor,"scripts/actors/Bosses/BoneDragon")) local function deathDmg(cell) local target = RPD.Actor:findChar(cell) @@ -47,10 +48,10 @@ return mob.init({ local ranPots = math.random(1,#Potions) if Potions[ranPots] == "ManaPotion" or Potions[ranPots] == "PotionOfExperience" or Potions[ranPots] == "PotionOfStrength" or Potions[ranPot] == "PotionOfMight" then local item = RPD.createItem(Potions[ranPots], {quanity=PotionAmount}) - level:drop(item, cellPos) + level:drop(item, selfPos) else local item = RPD.createItem(Potions[ranPots], {level=PotionAmount*2,quanity=PotionAmount}) - level:drop(item, cellPos) + level:drop(item, selfPos) end ScrollAmount = math.random(2,6) local ranScr = math.random(1,#Scrolls-1) diff --git a/scripts/npc/TownQuest4.lua b/scripts/npc/TownQuest4.lua index d3700b3..9fe18b3 100644 --- a/scripts/npc/TownQuest4.lua +++ b/scripts/npc/TownQuest4.lua @@ -42,7 +42,7 @@ return mob.init({ else RPD.showQuestWindow(self, "Great Work! Here's your reward!") RPD.Journal:remove(self:name().." "..questName) - hero:collect(RPD.item("Gold", 1000000)) + client:collect(RPD.item("Gold", 1000000)) quest.complete(questName) end quest.debug(true) diff --git a/scripts/npc/TownsfolkLoot.lua b/scripts/npc/TownsfolkLoot.lua index 0b44669..72178c1 100644 --- a/scripts/npc/TownsfolkLoot.lua +++ b/scripts/npc/TownsfolkLoot.lua @@ -15,9 +15,7 @@ local client local amountKill = 25 local amountCollect = 20 ---local Quest = RPD.textById("QuestKill"):format(tostring(amountKill), RPD.textById(RPD.MobFactory:mobByName("Thief"):getEntityKind().."_NamePlural"), RPD.textById("QuestCollect"):format(tostring(amountCollect), RPD.textById(RPD.ItemFactory:itemByName("SoulShard"):getClassName().."_NamePlural"))) - -local questName = RPD.textById("QuestName"):format(Quest)"Kill "..RPD.MobFactory:mobByName("Thief"):name().."s, Collect "..RPD.ItemFactory:itemByName("SoulShard"):name().."s" +local questName = "Kill "..RPD.MobFactory:mobByName("Thief"):name().."s, Collect "..RPD.ItemFactory:itemByName("SoulShard"):name().."s" return mob.init({ interact = function(self, chr) diff --git a/spellsIcon/elementalsummon.png b/spellsIcon/elementalsummon.png deleted file mode 100644 index b7f2eb0..0000000 Binary files a/spellsIcon/elementalsummon.png and /dev/null differ diff --git a/spellsIcons/elementalsummon.png b/spellsIcons/elementalsummon.png new file mode 100644 index 0000000..28950e0 Binary files /dev/null and b/spellsIcons/elementalsummon.png differ diff --git a/spellsIcon/undeadsummon.png b/spellsIcons/undeadsummon.png similarity index 100% rename from spellsIcon/undeadsummon.png rename to spellsIcons/undeadsummon.png diff --git a/spritesDesc/WarriorGhost.json b/spritesDesc/WarriorGhost.json index 1861902..06439f6 100644 --- a/spritesDesc/WarriorGhost.json +++ b/spritesDesc/WarriorGhost.json @@ -22,4 +22,4 @@ "looped" : false, "frames" : [9,10,11,12] } -} \ No newline at end of file +} diff --git a/tiles_dream.png b/tiles_dream.png index b64c2e9..dfa6a5d 100644 Binary files a/tiles_dream.png and b/tiles_dream.png differ diff --git a/tiles_nightmare.png b/tiles_nightmare.png index 043bd98..6b709b9 100644 Binary files a/tiles_nightmare.png and b/tiles_nightmare.png differ diff --git a/tiles_sleep.png b/tiles_sleep.png index d6f3e8e..49153a0 100644 Binary files a/tiles_sleep.png and b/tiles_sleep.png differ diff --git a/ui/buffs.png b/ui/buffs.png index 0b2dc37..0331abb 100644 Binary files a/ui/buffs.png and b/ui/buffs.png differ diff --git a/ui/large_buffs.png b/ui/large_buffs.png index 3fd9311..5201e67 100644 Binary files a/ui/large_buffs.png and b/ui/large_buffs.png differ diff --git a/version.json b/version.json index 754af01..25d5605 100644 --- a/version.json +++ b/version.json @@ -1 +1 @@ -{"version":6} \ No newline at end of file +{"version":19} \ No newline at end of file diff --git a/water_nightmare.png b/water_nightmare.png index 85bfcae..7008299 100644 Binary files a/water_nightmare.png and b/water_nightmare.png differ