Restart tooltip

master
a327ex 2021-05-29 22:06:47 -03:00
parent 9c39ae7e8c
commit e44363cc75
4 changed files with 32 additions and 28 deletions

View File

@ -78,7 +78,7 @@ function BuyScreen:on_enter(from, level, units, passives)
if not self.first_screen then RerollButton{group = self.main, x = 150, y = 18, parent = self} end if not self.first_screen then RerollButton{group = self.main, x = 150, y = 18, parent = self} end
GoButton{group = self.main, x = gw - 90, y = gh - 20, parent = self} GoButton{group = self.main, x = gw - 90, y = gh - 20, parent = self}
self.tutorial_button = Button{group = self.main, x = gw/2 + 136, y = 18, button_text = '?', fg_color = 'bg10', bg_color = 'bg', action = function() self.tutorial_button = Button{group = self.main, x = gw/2 + 134, y = 18, button_text = '?', fg_color = 'bg10', bg_color = 'bg', action = function()
self.in_tutorial = true self.in_tutorial = true
self.title_text = Text2{group = self.tutorial, x = gw/2, y = 35, lines = {{text = '[fg]WELCOME TO SNKRX!', font = fat_font, alignment = 'center'}}} self.title_text = Text2{group = self.tutorial, x = gw/2, y = 35, lines = {{text = '[fg]WELCOME TO SNKRX!', font = fat_font, alignment = 'center'}}}
self.tutorial_text = Text2{group = self.tutorial, x = 228, y = 160, lines = { self.tutorial_text = Text2{group = self.tutorial, x = 228, y = 160, lines = {
@ -113,9 +113,19 @@ function BuyScreen:on_enter(from, level, units, passives)
self:quit_tutorial() self:quit_tutorial()
end) end)
end} end}
end, mouse_enter = function(b)
b.info_text = InfoText{group = main.current.ui, force_update = true}
b.info_text:activate({
{text = '[fg]tutorial', font = pixul_font, alignment = 'center'},
}, nil, nil, nil, nil, 16, 4, nil, 2)
b.info_text.x, b.info_text.y = b.x, b.y + 16
end, mouse_exit = function(b)
b.info_text:deactivate()
b.info_text.dead = true
b.info_text = nil
end} end}
self.restart_button = Button{group = self.ui, x = gw/2 + 154, y = 18, force_update = true, button_text = 'R', fg_color = 'bg10', bg_color = 'bg', action = function(b) self.restart_button = Button{group = self.ui, x = gw/2 + 156, y = 18, force_update = true, button_text = 'R', fg_color = 'bg10', bg_color = 'bg', action = function(b)
self.transitioning = true self.transitioning = true
ui_transition2:play{pitch = random:float(0.95, 1.05), volume = 0.5} ui_transition2:play{pitch = random:float(0.95, 1.05), volume = 0.5}
ui_switch2:play{pitch = random:float(0.95, 1.05), volume = 0.5} ui_switch2:play{pitch = random:float(0.95, 1.05), volume = 0.5}
@ -137,6 +147,16 @@ function BuyScreen:on_enter(from, level, units, passives)
system.save_run() system.save_run()
main:go_to('buy_screen', 0, {}, passives) main:go_to('buy_screen', 0, {}, passives)
end, text = Text({{text = '[wavy, bg]restarting...', font = pixul_font, alignment = 'center'}}, global_text_tags)} end, text = Text({{text = '[wavy, bg]restarting...', font = pixul_font, alignment = 'center'}}, global_text_tags)}
end, mouse_enter = function(b)
b.info_text = InfoText{group = main.current.ui, force_update = true}
b.info_text:activate({
{text = '[fg]restart run', font = pixul_font, alignment = 'center'},
}, nil, nil, nil, nil, 16, 4, nil, 2)
b.info_text.x, b.info_text.y = b.x, b.y + 16
end, mouse_exit = function(b)
b.info_text:deactivate()
b.info_text.dead = true
b.info_text = nil
end} end}
trigger:tween(1, main_song_instance, {volume = 0.2}, math.linear) trigger:tween(1, main_song_instance, {volume = 0.2}, math.linear)
@ -578,6 +598,7 @@ function Button:on_mouse_enter()
self.selected = true self.selected = true
self.text:set_text{{text = '[fgm5]' .. self.button_text, font = pixul_font, alignment = 'center'}} self.text:set_text{{text = '[fgm5]' .. self.button_text, font = pixul_font, alignment = 'center'}}
self.spring:pull(0.2, 200, 10) self.spring:pull(0.2, 200, 10)
if self.mouse_enter then self:mouse_enter() end
end end
@ -585,6 +606,7 @@ function Button:on_mouse_exit()
if main.current.in_credits and not self.credits_button then return end if main.current.in_credits and not self.credits_button then return end
self.text:set_text{{text = '[' .. self.fg_color .. ']' .. self.button_text, font = pixul_font, alignment = 'center'}} self.text:set_text{{text = '[' .. self.fg_color .. ']' .. self.button_text, font = pixul_font, alignment = 'center'}}
self.selected = false self.selected = false
if self.mouse_exit then self:mouse_exit() end
end end

View File

@ -97,7 +97,7 @@ function Seeker:init(args)
enemy:hit(10000) enemy:hit(10000)
shoot1:play{pitch = random:float(0.95, 1.05), volume = 0.4} shoot1:play{pitch = random:float(0.95, 1.05), volume = 0.4}
local n = 8 + new_game_plus*2 local n = 8 + new_game_plus*2
for i = 1, n do EnemyProjectile{group = main.current.main, x = enemy.x, y = enemy.y, color = blue[0], r = (i-1)*math.pi/(n/2), v = 150 + 5*enemy.level, dmg = (1 + 0.1*new_game_plus)*enemy.dmg} end for i = 1, n do EnemyProjectile{group = main.current.main, x = enemy.x, y = enemy.y, color = blue[0], r = (i-1)*math.pi/(n/2), v = 120 + 5*enemy.level, dmg = (1 + 0.1*new_game_plus)*enemy.dmg} end
end end
end) end)

View File

@ -470,7 +470,7 @@ function init()
['launcher'] = function(lvl) return '[fg]all nearby enemies are pushed after [yellow]4[fg] seconds, taking [yellow]' .. 2*get_character_stat('launcher', lvl, 'dmg') .. '[fg] damage on wall hit' end, ['launcher'] = function(lvl) return '[fg]all nearby enemies are pushed after [yellow]4[fg] seconds, taking [yellow]' .. 2*get_character_stat('launcher', lvl, 'dmg') .. '[fg] damage on wall hit' end,
['jester'] = function(lvl) return "[fg]curses [yellow]5[fg] nearby enemies for [yellow]6[fg] seconds, they will explode into [yellow]3[fg] knives on death" end, ['jester'] = function(lvl) return "[fg]curses [yellow]5[fg] nearby enemies for [yellow]6[fg] seconds, they will explode into [yellow]3[fg] knives on death" end,
['assassin'] = function(lvl) return '[fg]throws a piercing knife that deals [yellow]' .. get_character_stat('assassin', lvl, 'dmg') .. '[fg] damage + [yellow]' .. ['assassin'] = function(lvl) return '[fg]throws a piercing knife that deals [yellow]' .. get_character_stat('assassin', lvl, 'dmg') .. '[fg] damage + [yellow]' ..
get_character_stat('assassin', lvl, 'dmg')/2 .. '[fg] damage per second for [yellow]3[fg] seconds' end, get_character_stat('assassin', lvl, 'dmg')/2 .. '[fg] damage per second' end,
['host'] = function(lvl) return '[fg]periodically spawn [yellow]1[fg] small critter' end, ['host'] = function(lvl) return '[fg]periodically spawn [yellow]1[fg] small critter' end,
['carver'] = function(lvl) return '[fg]carves a statue that periodically heals [yellow]1[fg] unit for [yellow]20%[fg] max HP if in range' end, ['carver'] = function(lvl) return '[fg]carves a statue that periodically heals [yellow]1[fg] unit for [yellow]20%[fg] max HP if in range' end,
['bane'] = function(lvl) return '[fg]curses [yellow]5[fg] nearby enemies for [yellow]6[fg] seconds, they will create small void rifts on death' end, ['bane'] = function(lvl) return '[fg]curses [yellow]5[fg] nearby enemies for [yellow]6[fg] seconds, they will create small void rifts on death' end,
@ -610,7 +610,7 @@ function init()
['barrager'] = function() return '[fg]every 3rd attack the barrage shoots [yellow]15[fg] projectiles and they push harder' end, ['barrager'] = function() return '[fg]every 3rd attack the barrage shoots [yellow]15[fg] projectiles and they push harder' end,
['highlander'] = function() return '[fg]quickly repeats the attack [yellow]3[fg] times' end, ['highlander'] = function() return '[fg]quickly repeats the attack [yellow]3[fg] times' end,
['fairy'] = function() return '[fg]heals [yellow]2[fg] units instead and grants them an additional [yellow]100%[fg] attack speed' end, ['fairy'] = function() return '[fg]heals [yellow]2[fg] units instead and grants them an additional [yellow]100%[fg] attack speed' end,
['priest'] = function() return '[fg]at the start of the round pick [yellow]3[fg] units at random and grants them a buff that prevents death once' end, ['priest'] = function() return '[fg]picks [yellow]3[fg] units at random and grants them a buff that prevents death once' end,
['infestor'] = function() return '[fg][yellow]triples[fg] the number of critters released' end, ['infestor'] = function() return '[fg][yellow]triples[fg] the number of critters released' end,
['flagellant'] = function() return '[fg]deals [yellow]' .. 2*get_character_stat('flagellant', 3, 'dmg') .. '[fg] damage to all allies and grants [yellow]+12%[fg] damage to all allies per cast' end, ['flagellant'] = function() return '[fg]deals [yellow]' .. 2*get_character_stat('flagellant', 3, 'dmg') .. '[fg] damage to all allies and grants [yellow]+12%[fg] damage to all allies per cast' end,
} }
@ -654,7 +654,7 @@ function init()
['barrager'] = function() return '[light_bg]every 3rd attack the barrage shoots 15 projectiles and they push harder' end, ['barrager'] = function() return '[light_bg]every 3rd attack the barrage shoots 15 projectiles and they push harder' end,
['highlander'] = function() return '[light_bg]quickly repeats the attack 3 times' end, ['highlander'] = function() return '[light_bg]quickly repeats the attack 3 times' end,
['fairy'] = function() return '[light_bg]heals 2 units instead and grants them an additional 100% attack speed' end, ['fairy'] = function() return '[light_bg]heals 2 units instead and grants them an additional 100% attack speed' end,
['priest'] = function() return '[light_bg]at the start of the round pick 3 units at random and grants them a buff that prevents death once' end, ['priest'] = function() return '[light_bg]picks 3 units at random and grants them a buff that prevents death once' end,
['infestor'] = function() return '[light_bg]triples the number of critters released' end, ['infestor'] = function() return '[light_bg]triples the number of critters released' end,
['flagellant'] = function() return '[light_bg]deals ' .. 2*get_character_stat('flagellant', 3, 'dmg') .. ' damage to all allies and grants +12% damage to all allies per cast' end, ['flagellant'] = function() return '[light_bg]deals ' .. 2*get_character_stat('flagellant', 3, 'dmg') .. ' damage to all allies and grants +12% damage to all allies per cast' end,
} }

26
todo
View File

@ -1,22 +1,4 @@
* Curser buff - change all cursers to trigger like the infestor does and for the effects to be on-death effects Hide cursor during waves
* Forcer buff - buff juggernaut Mouse follow control?
* Conjurer buff - buff saboteur, buff engineer Bench - https://i.imgur.com/B1gNVKk.png
* Vagrant buff - increase "active set" bonuses Item reroll for 10 gold
* AoE nerf - Unleash 1%, rephrase it to more clear
* Cryomancer buff - double tick rate
* Save runs
* Move units
* Lock shop button
* Harder difficulty on NG+0
* Increase boss HP on levels 24 and 25
* Show next level in shop (also if elite or not)
* Restart run button on shop
* View synergy after beating game
* Option to turn off screen shake
* Option to show cooldowns on snake
* New game plus decrease button
* https://i.imgur.com/CLtk9nZ.png
* https://i.imgur.com/WWP8GBn.png
* https://i.imgur.com/AU3O0u9.png, https://i.imgur.com/UE78u7f.png
* https://i.imgur.com/5TquKsS.png
* https://i.imgur.com/XbtACuy.png <- probably the cause of most of those mysterious crashes and slow downs i havent been able to track down