diff --git a/arena.lua b/arena.lua index e0cb96d..39d4e3b 100644 --- a/arena.lua +++ b/arena.lua @@ -54,7 +54,6 @@ function Arena:on_enter(from, level, units, passives, shop_level, shop_xp, lock) self.main:enable_trigger_between('enemy_projectile', 'player') self.main:enable_trigger_between('player', 'enemy_projectile') self.main:enable_trigger_between('enemy_projectile', 'enemy') - self.main:enable_trigger_between('enemy', 'enemy_projectile') self.main:enable_trigger_between('player', 'ghost') self.main:enable_trigger_between('ghost', 'player') diff --git a/assets/media/item_cover.png b/assets/media/item_cover.png new file mode 100644 index 0000000..2c8b88d Binary files /dev/null and b/assets/media/item_cover.png differ diff --git a/enemies.lua b/enemies.lua index 0af918d..dda6222 100644 --- a/enemies.lua +++ b/enemies.lua @@ -393,12 +393,14 @@ function Seeker:on_collision_enter(other, contact) end if main.current.player.fracture then - trigger:after(0.01, function() - earth2:play{pitch = random:float(0.95, 1.05), volume = 0.5} - for i = 1, 6 do - Projectile{group = main.current.main, x = self.x, y = self.y, color = red[0], r = (i-1)*math.pi/3, v = 200, dmg = 30, parent = main.current.player, pierce = 1} - end - end) + if self.being_pushed then + trigger:after(0.01, function() + earth2:play{pitch = random:float(0.95, 1.05), volume = 0.5} + for i = 1, 6 do + Projectile{group = main.current.main, x = self.x, y = self.y, color = red[0], r = (i-1)*math.pi/3, v = 200, dmg = 30, parent = main.current.player, pierce = 1} + end + end) + end end if self.headbutter and self.headbutting then diff --git a/main.lua b/main.lua index 4cd504a..f317686 100644 --- a/main.lua +++ b/main.lua @@ -1502,20 +1502,12 @@ function init() --[[ main:add(Arena'arena') - main:go_to('arena', 3, { - {character = 'vulcanist', level = 3}, - {character = 'vulcanist', level = 3}, - {character = 'vulcanist', level = 3}, - {character = 'vulcanist', level = 3}, - {character = 'vulcanist', level = 3}, - {character = 'vulcanist', level = 3}, - {character = 'vulcanist', level = 3}, - {character = 'vulcanist', level = 3}, - {character = 'vulcanist', level = 3}, - {character = 'vulcanist', level = 3}, - {character = 'vulcanist', level = 3}, - {character = 'vulcanist', level = 3}, - }, passives) + main:go_to('arena', 4, { + {character = 'arcanist', level = 1}, + {character = 'witch', level = 1}, + {character = 'gambler', level = 1}, + {character = 'illusionist', level = 1}, + }, {{passive = 'freezing_field', level = 1}}) ]]-- --[[ diff --git a/player.lua b/player.lua index 07dda38..378a0eb 100644 --- a/player.lua +++ b/player.lua @@ -2313,7 +2313,7 @@ function Area:init(args) self.parent.t:every(0.3, function() _G[random:table{'cannoneer1', 'cannoneer2'}]:play{pitch = random:float(0.95, 1.05), volume = 0.5} Area{group = main.current.effects, x = self.x + random:float(-32, 32), y = self.y + random:float(-32, 32), r = self.r + random:float(0, 2*math.pi), w = self.parent.area_size_m*48, color = self.parent.color, - dmg = 0.5*self.parent.area_dmg_m*self.dmg, character = self.character, level = self.parent.level, parent = self.parent, echo_barrage_area = true} + dmg = 0.5*self.parent.area_dmg_m*(self.dmg or self.parent.dmg), character = self.character, level = self.parent.level, parent = self.parent, echo_barrage_area = true} end, self.parent.echo_barrage) end end @@ -3127,7 +3127,7 @@ function Gold:update(dt) self:apply_force(20*math.cos(r), 20*math.sin(r)) end end - self.magnet_sensor:move_to(self.x, self.y) + if self.magnet_sensor then self.magnet_sensor:move_to(self.x, self.y) end end diff --git a/todo b/todo index 620a64e..2fb8f69 100644 --- a/todo +++ b/todo @@ -1,132 +1,3 @@ -Item Update - New mechanics - * Spend gold to level items up - * Block levelling for unlevellable items - Items - General: - * Centipede - +10/20/30% movement speed - * Ouroboros Technique R - rotating around yourself to the right releases 2/3/4 projectiles per second - * Ouroboros Technique L - rotating around yourself to the left grants +15/25/35% defense to all units - * Amplify - +20/35/50% AoE damage - * Resonance - all AoE attacks deal +3/5/7% damage per unit hit - * Ballista - +20/35/50% projectile damage - * Call of the Void - +30/60/90% DoT damage - * Crucio - taking damage also shares that damage across all enemies at 20/30/40% its value - Position: - * Speed 3 - position 3 has +50% attack speed - * Damage 4 - position 4 has +30% damage - * Level 5 - position 5 is 1 level higher - * Death 6 - position 6 takes 15% of its health as damage every 3 seconds - * Lasting 7 - position 7 will stay alive for 10 seconds after dying - * Defense Stance - first and last positions have +10/20/30% defense - * Offensive Stance - first and last positions have +10/20/30% damage - Death: - * Kinetic Bomb - when a unit dies it explodes, launching enemies away - * Porcupine Technique - when a unit dies it explodes, releasing piercing projectiles - * Last Stand - the last unit alive is fully healed and receives a +20% bonus to all stats - Voider: - * Seeping - enemies taking DoT damage take +15/20/25% damage from all sources for 6 seconds - * Deceleration - enemies damaged by voiders have their movement speed reduced by 15/20/25% - * Annihilation - when a voider dies deal its DoT damage to all enemies for 3 seconds - Curser: - * Malediction - +1/3/5 max curse targets to all allied cursers - * Hextouch - enemies take 10/15/20 damage per second for 3 seconds when cursed - * Whispers of Doom - curses apply doom, when 4/3/2 doom instances are reached they deal 100/150/200 - Forcer: - * Tremor - when enemies die from hitting walls they create a damaging area with size according to the knockback force - * Heavy Impact - when enemies hit walls they take damage according to the knockback force - * Fracture - when enemies die from hitting walls explode into projectiles - Swarmer: - * Meat Shield - critters block enemy projectiles - * Hive - critters have +1/2/3 HP - * Baneling Burst - critters die immediately on contact but also deal AoE damage - Ranger: - * Blunt Arrow - arrows fired by rangers have a 10/20/30% chance to knockback - * Explosive Arrow - arrows fired by rangers have a 10/20/30% chance to explode, dealing 10/20/30% AoE damage - * Divine Machine Arrow - arrows fired by rangers have a 10/20/30% chance to seek enemies and pierce 1/2/3 times - Mage: - * Chronomancy - mages cast their spells 15/25/35% faster - * Awakening - +50/75/100% attack speed and damage to 1 mage every round for that round - * Divine Punishment - repeatedly deal damage to all enemies based on how many mages you have - Rogue: - * Assassination - crits from rogues deal 8/10/12x damage but normal attacks deal half damage - * Flying Daggers - all projectiles thrown by rogues chain +2/3/4 times - * Ultimatum - projectiles that chain gain +10/20/30% damage with each chain - Nuker: - * Magnify - +20/35/50% area size - * Echo Barrage - 10/20/30% chance to create 1/2/3 secondary AoEs on AoE hit - * Unleash - all nukers gain +1% area size and damage every second - Enchanter: - * Reinforce - +10/20/30% damage, defense and attack speed to all allies with at leats one enchanter - * Payback - +2/5/8% damage to all allies whenever an enchanter is hit - * Enchanted - when enemies die they have a 10/20/30% release X homing projectiles, where X is how many enchanters you have - Sorcerer: - * Freezing Field - Create an area that slows enemies by 50% for 2 seconds whenever a sorcerer repeats a spell - * Burning Field - Create an area that deals 30 damage per second for 2 seconds whenever a sorcerer repeats a spell - * Gravity Field - Create an area that sucks enemies in for 2 seconds whenever a sorcerer repeats a spell - Mercenary: - * Magnetism - Gold coins are attracted to the snake - * Insurance - Dying heroes have 4 times the chance of mercenary's bonus to drop 2 gold on death - * Dividends - Mercenaries deal +X% extra damage, where X is how much gold you have - Warrior: - * Berserking - all warriors have up to +50/75/100% attack speed based on missing HP - * Unwavering Stance - all warriors gain +4/8/12% defense every 5 seconds - * Unrelenting Stance - +2/5/8% defense to all allies whenever a warrior is hit - Removed items - * Wall Echo - * Wall Rider - * Point Blank - * Longshot - * Hex Master - * Force Push - * Spawning Pool - * Void Rift - * Blessing - * Immolation - Balance - * Increased voider DoT damage bonus to 20/40% (from 15/25%) - * Decreased shop reroll cost to 10 - * Decreased mercenary gold drop chance to 8/16% (from 10/20%) - * Changed Merchant to tier 1 - * Changed Merchant interest to cap at 10 (having more than 100 gold won't generate more interest from the merchant) - * Changed Miner to tier 2 - * Changed Arcanist projectiles to pierce once (from infinite) - * Changed Exploder to create a mine on death, it will explode into projectiles after a delay (this delay is smaller on higher NG+ difficulties) - * Decreased Shooter projectile fire rate, speed, and now the projectiles can also be blocked by enemies - * Decreased Tank knockback resistance - * Decreased level 25 elite knockback resistance - * Changed Beastmaster's Lv.3 effect to spawn 4 small critters when it gets hit (from 2) - * Changed Corruptor's Lv.3 effect to spawn 2 small critters on hit (from 3) - QoL - * Added snake to the passive selection screen - * Changed Volcano's icon to be a triangle instead of X so it isn't confused with a spawn marker - * Improved Beastmaster and Corruptor description with text describing their attack and how much damage it deals - * Added visual effect for when defensive ouroboros is active - * Added an option to force all screen transitions to be dark - * Added tier text to characters on the shop screen - * Added shop unit highlights/markers to make it easier to tell when you already own something - * Added unit names to the "your build" section of the end game screen - Bug fixes - * Fixed ouroboros technique passives not working with mouse controls - * Fixed mouse not showing up on death - * Fixed NG+5 achievement not triggering (this happened only between last Sunday night and Monday morning due to a small update I pushed breaking it) - * Fixed a bug where the nuker class was not counting towards Vagrant's and Psyker's active set bonus - * Fixed a bug where passives would sometimes disappear from a run? - * Fixed a bug where clicking "window size-" too many times could bug out the game - * Fixed a bug where the shop would be rerolled after quitting in the arena - * Fixed a bug where units could be duplicated in the shop by locking and quitting the game at certain steps - * Fixed a bug where quitting on level 2 would go back to level 1 shop (again) - * Fixed multiple bugs related to locking the shop and quitting - * Fixed a bug where mouse cursor wasn't visible on death - * Fixed a bug where NG+ level wasn't increased when the game is beaten but only when the NG+ button was clicked - * Fixed a bug where level 2 and level 3 achievements (win with only level 2/3 units) were not triggering correctly sometimes - * Fixed a bug where shop level wasn't respected on the shop's first roll - * Fixed multiple crashes that would happen when picking up gold - * Fixed a crash when the jester's curse would trigger - * Fixed a crash when gold would be picked up with a Miner in the party - * Fixed a crash involving broken state for Pets, Critters or Volcanos - * Fixed a crash that happened after rerolling items too many times - Endless Update Healer rework: Enemies have an X/Y% chance to create healing cells on death @@ -149,12 +20,17 @@ Endless Update Arena run button Options button Quit button + https://i.imgur.com/4hOt5uX.png "party 7/9" Bug fixes Fix fullscreen with different resolutions that don't scale properly - https://steamcommunity.com/app/915310/discussions/0/3106901665841020282/ Fix enemies still spawning after arena clear (this happens with the extra enemy spawns that were blocked earlier) Kill enemies that go outside play area - https://i.imgur.com/QPgZbve.png https://i.imgur.com/lCdPFZx.png https://i.imgur.com/qrExpq5.png + https://i.imgur.com/Rk6qbDD.png - merchant doesnt give reroll if dies + 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/1soUUdk.png - 5th position stops shooting when 1-4 die --- @@ -169,6 +45,7 @@ Brawlers: units focused on crashing on enemies https://i.imgur.com/5YubukS.png - unit idea Conjurer unit that creates an unit that actively protects you from enemy projectiles Guardians - https://i.imgur.com/Ynu5Cdw.png +Cultists - https://i.imgur.com/GsfoZBd.png Assists (2/4) - Ringmaster (tier 4 assist, nuker) - +15% to all stats to adjacent units, Lv.3 effect - create a cross that deals AoE damage 5 times for 10 seconds Absorber (tier 2 assist, warrior) - absorbs 50% damage from adjacent units, Lv.3 effect - absorbs 75% damage from adjacent units and gives the absorber +25% defense