Bug fixes
parent
2276925f34
commit
f5b8eaf2a3
|
@ -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 |
20
main.lua
20
main.lua
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
16
player.lua
16
player.lua
|
@ -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
51
todo
|
@ -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
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue