diff --git a/arena.lua b/arena.lua index 9fd2f7a..42f4537 100644 --- a/arena.lua +++ b/arena.lua @@ -562,7 +562,7 @@ function Arena:quit() steam.userStats.storeStats() end - if self.psyker_level >= 2 then + if self.psyker_level >= 1 then state.achievement_psykers_win = true system.save_state() steam.userStats.setAchievement('PSYKERS_WIN') diff --git a/main.lua b/main.lua index c286248..4ad41d6 100644 --- a/main.lua +++ b/main.lua @@ -725,7 +725,7 @@ function init() } character_effect_descriptions = { - ['vagrant'] = function() return '[yellow]+10%[fg] damage and [yellow]+10%[fg] attack speed per active set' end, + ['vagrant'] = function() return '[yellow]+15%[fg] attack speed and damage per active set' end, ['swordsman'] = function() return "[fg]the swordsman's damage is [yellow]doubled" end, ['wizard'] = function() return '[fg]the projectile chains [yellow]2[fg] times' end, ['magician'] = function() return '[fg]the magician becomes invulnerable for [yellow]6[fg] seconds but also cannot attack' end, @@ -782,7 +782,7 @@ function init() } character_effect_descriptions_gray = { - ['vagrant'] = function() return '[light_bg]+10% damage and +10% attack speed per active set' end, + ['vagrant'] = function() return '[light_bg]+15% attack speed and damage per active set' end, ['swordsman'] = function() return "[light_bg]the swordsman's damage is doubled" end, ['wizard'] = function() return '[light_bg]the projectile chains 3 times' end, ['magician'] = function() return '[light_bg]the magician becomes invulnerable for 6 seconds but also cannot attack' end, @@ -938,7 +938,7 @@ function init() ['warrior'] = function(lvl) return '[' .. ylb1(lvl) .. ']3[light_bg]/[' .. ylb2(lvl) .. ']6 [fg]- [' .. ylb1(lvl) .. ']+25[light_bg]/[' .. ylb2(lvl) .. ']+50 [fg]defense to allied warriors' end, ['mage'] = function(lvl) return '[' .. ylb1(lvl) .. ']3[light_bg]/[' .. ylb2(lvl) .. ']6 [fg]- [' .. ylb1(lvl) .. ']-15[light_bg]/[' .. ylb2(lvl) .. ']-30 [fg]enemy defense' end, ['rogue'] = function(lvl) return '[' .. ylb1(lvl) .. ']3[light_bg]/[' .. ylb2(lvl) .. ']6 [fg]- [' .. ylb1(lvl) .. ']15%[light_bg]/[' .. ylb2(lvl) .. ']30% [fg]chance to crit to allied rogues, dealing [yellow]4x[] damage' end, - ['healer'] = function(lvl) return '[' .. ylb1(lvl) .. ']2[light_bg]/[' .. ylb2(lvl) .. ']4 [fg]- [' .. ylb1(lvl) .. ']+15%[light_bg]/[' .. ylb2(lvl) .. ']+30% [fg]healing effectiveness' end, + ['healer'] = function(lvl) return '[' .. ylb1(lvl) .. ']2[light_bg]/[' .. ylb2(lvl) .. ']4 [fg]- [' .. ylb1(lvl) .. ']+8%[light_bg]/[' .. ylb2(lvl) .. ']+16% [fg] chance for enemies to drop healing orbs on death' end, ['enchanter'] = function(lvl) return '[' .. ylb1(lvl) .. ']2[light_bg]/[' .. ylb2(lvl) .. ']4 [fg]- [' .. ylb1(lvl) .. ']+15%[light_bg]/[' .. ylb2(lvl) .. ']+25% [fg]damage to all allies' end, ['nuker'] = function(lvl) return '[' .. ylb1(lvl) .. ']3[light_bg]/[' .. ylb2(lvl) .. ']6 [fg]- [' .. ylb1(lvl) .. ']+15%[light_bg]/[' .. ylb2(lvl) .. ']+25% [fg]area damage and size to allied nukers' end, ['conjurer'] = function(lvl) return '[' .. ylb1(lvl) .. ']2[light_bg]/[' .. ylb2(lvl) .. ']4 [fg]- [' .. ylb1(lvl) .. ']+25%[light_bg]/[' .. ylb2(lvl) .. ']+50% [fg]summon damage and duration' end, diff --git a/player.lua b/player.lua index e676228..e0598b1 100644 --- a/player.lua +++ b/player.lua @@ -2288,7 +2288,7 @@ function Projectile:on_trigger_enter(other, contact) other:apply_dot((self.crit and 4*self.dmg or self.dmg/2)*(self.dot_dmg_m or 1)*(main.current.chronomancer_dot or 1), 3) end - if self.parent.chain_infused then + if self.parent and self.parent.chain_infused then local units = self.parent:get_all_units() local stormweaver_level = 0 for _, unit in ipairs(units) do @@ -2323,7 +2323,7 @@ function Projectile:on_trigger_enter(other, contact) other:push(self.knockback*(self.knockback_m or 1), self.r) end - if self.parent.explosive_arrow and table.any(self.parent.classes, function(v) return v == 'ranger' end) then + if self.parent and self.parent.explosive_arrow and table.any(self.parent.classes, function(v) return v == 'ranger' end) then if random:bool((self.parent.explosive_arrow == 1 and 10) or (self.parent.explosive_arrow == 2 and 20) or (self.parent.explosive_arrow == 3 and 30)) then _G[random:table{'cannoneer1', 'cannoneer2'}]:play{pitch = random:float(0.95, 1.05), volume = 0.5} Area{group = main.current.effects, x = self.x, y = self.y, r = self.r + random:float(0, 2*math.pi), w = self.parent.area_size_m*32, color = self.color, @@ -2332,7 +2332,7 @@ function Projectile:on_trigger_enter(other, contact) end end - if self.parent.void_rift and table.any(self.parent.classes, function(v) return v == 'mage' or v == 'nuker' or v == 'voider' end) then + if self.parent and self.parent.void_rift and table.any(self.parent.classes, function(v) return v == 'mage' or v == 'nuker' or v == 'voider' end) then if random:bool(20) then DotArea{group = main.current.effects, x = self.x, y = self.y, rs = self.parent.area_size_m*24, color = self.color, dmg = self.parent.area_dmg_m*self.dmg*(self.parent.dot_dmg_m or 1), void_rift = true, duration = 1} end diff --git a/todo b/todo index 9fa7a89..761cd17 100644 --- a/todo +++ b/todo @@ -97,6 +97,8 @@ Loop Update https://i.imgur.com/G9DosVw.png - lasting 7 bug https://i.imgur.com/8he1WDm.png - infinite money https://i.imgur.com/0wZ5wma.png - max unit bugged when changing ng mid run, https://i.imgur.com/qrExpq5.png + https://i.imgur.com/Ad13Cyo.png + if undead from lasting 7 gets healed it becomes immortal --- @@ -146,6 +148,11 @@ Unit ideas - https://i.imgur.com/VNMS2YV.png Unit ideas - https://steamcommunity.com/app/915310/discussions/0/3069747783693969554/ Unit ideas - https://steamcommunity.com/app/915310/discussions/0/3046104336668792953/ +Draft system +Ban system +Class select +Random select + --