diff --git a/arena.lua b/arena.lua index e7409fb..8bb13b2 100644 --- a/arena.lua +++ b/arena.lua @@ -50,13 +50,20 @@ function Arena:on_enter(from, level) WallCover{group = self.post_main, vertices = math.to_rectangle_vertices(self.x1, -40, self.x2, self.y1), color = bg[-1]} WallCover{group = self.post_main, vertices = math.to_rectangle_vertices(self.x1, self.y2, self.x2, gh + 40), color = bg[-1]} - self.player = Player{group = self.main, x = gw/2, y = gh/2, leader = true, character = 'vagrant'} + + for i, unit in ipairs(units) do + if i == 1 then + self.player = Player{group = self.main, x = gw/2, y = gh/2, leader = true, character = unit.character, level = unit.level} + else + self.player:add_follower(Player{group = self.main, character = unit.character, level = unit.level}) + end + end -- self.player:add_follower(Player{group = self.main, character = 'elementor'}) self.win_condition = random:table{'time', 'enemy_kill', 'wave'} if self.win_condition == 'wave' then self.level_to_max_waves = { - 2, 2, random:int(2, 3), + 1, 2, random:int(2, 3), 3, 3, 3, random:int(3, 4), 4, 4, 4, 4, random:int(4, 5), 5, 5, 5, 5, 5, random:int(5, 6), @@ -89,8 +96,8 @@ function Arena:on_enter(from, level) elseif self.win_condition == 'enemy_kill' then self.level_to_enemies_to_kill = { - 16, 16, random:int(16, 18), - 18, 18, 18, random:int(18, 20), + 8, 12, random:int(14, 16), + 16, 16, 18, random:int(18, 20), 20, 20, 20, 20, random:int(20, 22), 22, 22, 22, 22, 22, random:int(22, 24), 24, 26, 28, 30, 30, 32 @@ -340,34 +347,7 @@ function Arena:spawn_n_enemies(p, j, n) local o = self.spawn_offsets[(self.t:get_every_iteration('spawn_enemies_' .. j) % 5) + 1] SpawnEffect{group = self.effects, x = p.x + o.x, y = p.y + o.y, action = function(x, y) spawn1:play{pitch = random:float(0.8, 1.2), volume = 0.15} - if self.level == 1 then - Seeker{group = self.main, x = x, y = y, character = 'seeker'} - elseif self.level == 2 then - Seeker{group = self.main, x = x, y = y, character = 'seeker'} - elseif self.level == 3 then - elseif self.level == 4 then - elseif self.level == 5 then - elseif self.level == 6 then - elseif self.level == 7 then - elseif self.level == 8 then - elseif self.level == 9 then - elseif self.level == 10 then - elseif self.level == 11 then - elseif self.level == 12 then - elseif self.level == 13 then - elseif self.level == 14 then - elseif self.level == 15 then - elseif self.level == 16 then - elseif self.level == 17 then - elseif self.level == 18 then - elseif self.level == 19 then - elseif self.level == 20 then - elseif self.level == 21 then - elseif self.level == 22 then - elseif self.level == 23 then - elseif self.level == 24 then - elseif self.level == 25 then - end + Seeker{group = self.main, x = x, y = y, character = 'seeker', level = self.level} end} end, n, nil, 'spawn_enemies_' .. j) end @@ -379,6 +359,7 @@ PostArenaScreen = Object:extend() PostArenaScreen:implement(GameObject) function PostArenaScreen:init(args) self:init_game_object(args) + self.transparent = Color(0.1, 0.1, 0.1, 0.5) end diff --git a/devlog.md b/devlog.md index 52dc2e1..93a374a 100644 --- a/devlog.md +++ b/devlog.md @@ -313,3 +313,7 @@ based on what's actually in the code: | Conjurer | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | Enchanter | 1.2 | 1 | 1 | 1 | 1 | 1.2 | 1.2 | | Psy | 1.5 | 1 | 1 | 1 | 1 | 0.5 | 1 | + +# Day 12-13 - 28/02/21 & 01/03/21 + +I didn't work on anything. diff --git a/main.lua b/main.lua index 62b1fd5..9bcba43 100644 --- a/main.lua +++ b/main.lua @@ -64,9 +64,12 @@ function init() rogue_crit1 = Sound('Dagger Stab (Flesh) 4.ogg', s) rogue_crit2 = Sound('Sword hits another sword 6.ogg', s) + units = {} + gold = 0 + main = Main() main:add(Arena'arena') - main:go_to'arena' + main:go_to('arena', {first_run = true}) end diff --git a/objects.lua b/objects.lua index a7f1004..2cb0b26 100644 --- a/objects.lua +++ b/objects.lua @@ -132,6 +132,7 @@ end Unit = Object:extend() function Unit:init_unit() + self.level = self.level or 1 self.hfx:add('hit', 1) self.hfx:add('shoot', 1) self.hp_bar = HPBar{group = main.current.effects, parent = self} @@ -196,13 +197,21 @@ end function Unit:calculate_stats(first_run) - self.base_hp = 100 - self.base_dmg = 10 + if self:is(Player) then + self.base_hp = 100*math.pow(2, self.level-1) + self.base_dmg = 10*math.pow(2, self.level-1) + self.base_mvspd = 75 + elseif self:is(Seeker) then + local x = self.level + local y = {0, 1, 4, 2, 3, 6, 3, 4, 8, 4, 5, 10, 5, 6, 12, 7, 8, 15, 9, 10, 18, 14, 15, 24, 25} + self.base_hp = 50 + 20*y[x] + self.base_dmg = 10 + 3*y[x] + self.base_mvspd = 70 + 2*y[x] + end self.base_aspd_m = 1 self.base_area_dmg_m = 1 self.base_area_size_m = 1 self.base_def = 25 - self.base_mvspd = 75 self.class_hp_a = 0 self.class_dmg_a = 0 self.class_def_a = 0