Bug fixes

master
a327ex 2021-06-05 22:43:33 -03:00
parent 2276925f34
commit f5b8eaf2a3
5 changed files with 31 additions and 58 deletions

View File

@ -1178,7 +1178,7 @@ function Arena:spawn_n_enemies(p, j, n, pass)
spawn1:play{pitch = random:float(0.8, 1.2), volume = 0.15} spawn1:play{pitch = random:float(0.8, 1.2), volume = 0.15}
if not pass then if not pass then
check_circle:move_to(x, y) check_circle:move_to(x, y)
local objects = self.main:get_objects_in_shape(check_circle, {Seeker, EnemyCritter, Critter, Player}) local objects = self.main:get_objects_in_shape(check_circle, {Seeker, EnemyCritter, Critter, Player, Illusion, Volcano, Saboteur, Pet, Turret})
if #objects > 0 then self.enemy_spawns_prevented = self.enemy_spawns_prevented + 1; return end if #objects > 0 then self.enemy_spawns_prevented = self.enemy_spawns_prevented + 1; return end
end end

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

@ -1317,15 +1317,22 @@ function init()
end end
-- main_song_instance = _G[random:table{'song1', 'song2', 'song3', 'song4', 'song5'}]:play{volume = 0.5} -- main_song_instance = _G[random:table{'song1', 'song2', 'song3', 'song4', 'song5'}]:play{volume = 0.5}
main:add(BuyScreen'buy_screen') main:add(BuyScreen'buy_screen')
main:go_to('buy_screen', run.level or 0, run.units or {}, passives) main:go_to('buy_screen', run.level or 0, run.units or {}, passives)
-- main:go_to('buy_screen', 2, run.units or {}, passives) -- main:go_to('buy_screen', 2, run.units or {}, passives)
--[[ --[[
main:add(Arena'arena') main:add(Arena'arena')
main:go_to('arena', 1, { main:go_to('arena', 21, {
{character = 'dual_gunner', level = 1}, {character = 'arcanist', level = 3},
{character = 'scout', level = 1}, {character = 'silencer', level = 2},
{character = 'warden', level = 2},
{character = 'chronomancer', level = 1},
{character = 'witch', level = 2},
{character = 'illusionist', level = 3},
{character = 'psychic', level = 2},
{character = 'vulcanist', level = 2},
}, passives) }, passives)
]]-- ]]--
@ -1345,6 +1352,13 @@ function init()
end) end)
print(table.tostring(love.graphics.getSupported())) print(table.tostring(love.graphics.getSupported()))
print(love.graphics.getRendererInfo())
local formats = love.graphics.getImageFormats()
for f, s in pairs(formats) do print(f, tostring(s)) end
local canvasformats = love.graphics.getCanvasFormats()
for f, s in pairs(canvasformats) do print(f, tostring(s)) end
print(table.tostring(love.graphics.getSystemLimits()))
print(table.tostring(love.graphics.getStats()))
end end

View File

@ -130,7 +130,9 @@ function Player:init(args)
self.t:every(0.25, function() self.t:every(0.25, function()
SpawnEffect{group = main.current.effects, x = self.x, y = self.y, color = self.color, action = function(x, y) SpawnEffect{group = main.current.effects, x = self.x, y = self.y, color = self.color, action = function(x, y)
illusion1:play{pitch = random:float(0.95, 1.05), volume = 0.5} illusion1:play{pitch = random:float(0.95, 1.05), volume = 0.5}
Illusion{group = main.current.main, x = x, y = y, parent = self, level = self.level, conjurer_buff_m = self.conjurer_buff_m or 1, crit = (self.level == 3) and random:bool(50)} local check_circle = Circle(self.x, self.y, 2)
local objects = main.current.main:get_objects_in_shape(check_circle, {Seeker, EnemyCritter, Critter, Illusion, Volcano, Saboteur, Pet, Turret})
if #objects == 0 then Illusion{group = main.current.main, x = x, y = y, parent = self, level = self.level, conjurer_buff_m = self.conjurer_buff_m or 1} end
end} end}
if main.current.sorcerer_level > 0 then if main.current.sorcerer_level > 0 then
self.sorcerer_count = self.sorcerer_count + 1 self.sorcerer_count = self.sorcerer_count + 1
@ -139,7 +141,9 @@ function Player:init(args)
self.t:after(0.25, function() self.t:after(0.25, function()
SpawnEffect{group = main.current.effects, x = self.x, y = self.y, color = self.color, action = function(x, y) SpawnEffect{group = main.current.effects, x = self.x, y = self.y, color = self.color, action = function(x, y)
illusion1:play{pitch = random:float(0.95, 1.05), volume = 0.5} illusion1:play{pitch = random:float(0.95, 1.05), volume = 0.5}
Illusion{group = main.current.main, x = x, y = y, parent = self, level = self.level, conjurer_buff_m = self.conjurer_buff_m or 1, crit = (self.level == 3) and random:bool(50)} local check_circle = Circle(self.x, self.y, 2)
local objects = main.current.main:get_objects_in_shape(check_circle, {Seeker, EnemyCritter, Critter, Illusion, Volcano, Saboteur, Pet, Turret})
if #objects == 0 then Illusion{group = main.current.main, x = x, y = y, parent = self, level = self.level, conjurer_buff_m = self.conjurer_buff_m or 1} end
end} end}
end) end)
end end
@ -1563,7 +1567,9 @@ function Projectile:init(args)
local r = self:angle_to_object(enemy) local r = self:angle_to_object(enemy)
local t = {group = main.current.main, x = self.x + 8*math.cos(r), y = self.y + 8*math.sin(r), v = 250, r = r, color = self.parent.color, dmg = self.parent.dmg, pierce = 1000, character = 'arcanist_projectile', local t = {group = main.current.main, x = self.x + 8*math.cos(r), y = self.y + 8*math.sin(r), v = 250, r = r, color = self.parent.color, dmg = self.parent.dmg, pierce = 1000, character = 'arcanist_projectile',
parent = self.parent, level = self.parent.level} parent = self.parent, level = self.parent.level}
Projectile(table.merge(t, mods or {})) local check_circle = Circle(t.x, t.y, 2)
local objects = main.current.main:get_objects_in_shape(check_circle, {Player, Seeker, EnemyCritter, Critter, Illusion, Volcano, Saboteur, Pet, Turret})
if #objects == 0 then Projectile(table.merge(t, mods or {})) end
end end
end) end)
@ -2716,12 +2722,12 @@ function Illusion:update(dt)
self:seek_point(gw/2, gh/2) self:seek_point(gw/2, gh/2)
self:wander(50, 200, 50) self:wander(50, 200, 50)
self:rotate_towards_velocity(1) self:rotate_towards_velocity(1)
self:steering_separate(32, {Illusion, Seeker}) self:steering_separate(32, {Seeker})
else else
self:seek_point(self.target.x, self.target.y) self:seek_point(self.target.x, self.target.y)
self:wander(50, 200, 50) self:wander(50, 200, 50)
self:rotate_towards_velocity(1) self:rotate_towards_velocity(1)
self:steering_separate(32, {Illusion, Seeker}) self:steering_separate(32, {Seeker})
end end
self.r = self:get_angle() self.r = self:get_angle()

51
todo
View File

@ -1,52 +1,5 @@
Sorcerer update patch notes Unleash does not affect Witch
Summary: This update adds 1 new class with 8 new units, implements more QoL features, further balance changes and lots of bug fixes.
Added sorcerer class: sorcerers repeat their attacks once every 4/3/2 attacks
Added 8 new units:
Arcanist (tier 1 sorcerer) - launches a slow piercing orb that launches other piercing projectiles, Lv.3 effect - 50% increased attack speed for the orb and 2 projectiles are released per cast
Illusionist (tier 3 sorcerer, conjurer) - launches a projectile that deals X damage and creates copies that do the same, Lv.3 effect - doubles the number of copies created and they release 12 projectiles on death that pierce and ricochet once
Witch (tier 2 sorcerer, voider) - creates an area that ricochets around the arena and deals X damage over time, Lv.3 effect - the area periodically releases projectiles that chain once
Silencer (tier 2 sorcerer, curser) - curses 6 nearby enemies for 6 seconds, preventing them from using special attacks, Lv.3 effect - the curse also deals X damage over time
Vulcanist (tier 4 sorcerer, nuker) - creates a volcano that explodes the nearby area 4 times, Lv.3 effect - the number and speed of explosions is doubled
Warden (tier 4 sorcerer, forcer) - creates a force field around a random unit that prevents enemies from entering, Lv.3 effect - creates the force field around 2 units instead
Psychic (tier 2 sorcerer, psyker) - creates a small area that deals X damage, Lv.3 effect - the attack can happen from any distance and repeats twice
Magician (tier 1 mage) - creates a small area that deals X damage, Lv.3 effect - the magician becomes invulnerable for 6 seconds
Changed cursers to trigger only when near enemies
Decreased projectile speed for the exploder (blue enemy)
Changed shooters (white enemy) to scale with NG+ difficulty
Increased damage and movement speed for enemy swarmers (small purple enemies)
Added tooltips for "restart run" and "guide" buttons on the shop
Fixed text that was going outside the screen for the Priest and the Assassin
Fixed bug where Divine Punishment would continue triggering after death
Removed cooldown visuals on snake for units that don't have cooldowns (Squire, Chronomancer and Psykeeper)
Slightly decreased base game's difficulty
Fixed NG+ difficulty only being able to be lowered, now you can lower or increase it (up to your maximum acquired value)
Buffed swarmer movement speed
Fixed a visual bug with the cleric, its cooldown was showing as faster than it actually was and thus gave the impression of not healing when it should
Changed Corruptor to tier 4
Changed Host to tier 3
Changed Wizard to tier 2
Removed Lich (will come back in future update)
Added Magician (tier 1 mage)
Change Outlaw to tier 2
Added Forcer class to Sage
Added Nuker class to Wizard
Change Wizard's Lv.3 effect's chain to 2 (from 3)
Fixed Blade's Lv.3 effect's damage text not being rounded
Fixed headbutter (orange enemy) damage buff lasting too long after an attack
Fixed a crash whenever the Fairy would try to select a unit that just died this or last frame
Fixed a crash that would happen when trying to restart the game through the menu on the passive selection screen
Fixed a bug where you could die and win at the same time
Fixed a crash triggered rarely by infested enemies on death
Fixed a bug where quitting on level 1 would automatically jump to level 2
Fixed a bug where the shop's lock state would carry over after a run death/win/restart
Fixed a bug where items from a previous restarted run would remain after the 1st round of a new run
Fixed a bug where the leader's (snake head) distance was off by 1 or 2 pixels on certain snake speeds
Added item reroll for 15 gold
Buffed tank (yellow enemy) and added a special attack
Buffed boss HP for levels 18, 24 and 25 (again)
Added an option to have an arrow at the head of the snake
Added an option to turn off camera movement
Slightly decreased enemy damage across all difficulties
--- ---