From 0d0ca8564b640494db3483fcf0add87709bee331 Mon Sep 17 00:00:00 2001 From: a327ex Date: Sat, 27 Feb 2021 01:28:00 -0300 Subject: [PATCH] Day 10 --- arena.lua | 60 ++++++++- assets/sounds/Dagger Stab (Flesh) 4.ogg | Bin 0 -> 27755 bytes assets/sounds/Glass item Breaks 2.ogg | Bin 0 -> 35724 bytes assets/sounds/Sword hits another sword 6.ogg | Bin 0 -> 16552 bytes devlog.md | 17 +++ enemies.lua | 4 + main.lua | 4 +- player.lua | 126 +++++++++++++++---- todo | 19 ++- 9 files changed, 194 insertions(+), 36 deletions(-) create mode 100644 assets/sounds/Dagger Stab (Flesh) 4.ogg create mode 100644 assets/sounds/Glass item Breaks 2.ogg create mode 100644 assets/sounds/Sword hits another sword 6.ogg diff --git a/arena.lua b/arena.lua index d09840c..fa4ed04 100644 --- a/arena.lua +++ b/arena.lua @@ -50,12 +50,14 @@ 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 = 'engineer'} + self.player = Player{group = self.main, x = gw/2, y = gh/2, leader = true, character = 'swordsman'} + self.player:add_follower(Player{group = self.main, character = 'outlaw'}) + -- self.player:add_follower(Player{group = self.main, character = 'squire'}) + self.player:add_follower(Player{group = self.main, character = 'blade'}) --[[ self.player:add_follower(Player{group = self.main, character = 'sage'}) self.player:add_follower(Player{group = self.main, character = 'archer'}) self.player:add_follower(Player{group = self.main, character = 'spellblade'}) - self.player:add_follower(Player{group = self.main, character = 'hunter'}) self.player:add_follower(Player{group = self.main, character = 'cleric'}) self.player:add_follower(Player{group = self.main, character = 'wizard'}) self.player:add_follower(Player{group = self.main, character = 'squire'}) @@ -164,11 +166,65 @@ function Arena:on_enter(from, level) end) end) end + + local units = {} + table.insert(units, self.player) + for _, f in ipairs(self.player.followers) do table.insert(units, f) end + + local rangers = 0 + local warriors = 0 + local healers = 0 + local mages = 0 + local nukers = 0 + local conjurers = 0 + local rogues = 0 + local enchanters = 0 + local psys = 0 + for _, unit in ipairs(units) do + for _, unit_class in ipairs(unit.classes) do + if unit_class == 'ranger' then rangers = rangers + 1 end + if unit_class == 'warrior' then warriors = warriors + 1 end + if unit_class == 'healer' then healers = healers + 1 end + if unit_class == 'mage' then mages = mages + 1 end + if unit_class == 'nuker' then nukers = nukers + 1 end + if unit_class == 'conjurer' then conjurers = conjurers + 1 end + if unit_class == 'rogue' then rogues = rogues + 1 end + if unit_class == 'enchanter' then enchanters = enchanters + 1 end + if unit_class == 'psy' then psys = psys + 1 end + end + end + + self.ranger_level = 0 + if rangers >= 2 then self.ranger_level = 1 end + if rangers >= 4 then self.ranger_level = 2 end + self.warrior_level = 0 + if warriors >= 2 then self.warrior_level = 1 end + if warriors >= 4 then self.warrior_level = 2 end + self.healer_level = 0 + if healers >= 3 then self.healer_level = 1 end + self.mage_level = 0 + if mages >= 2 then self.mage_level = 1 end + if mages >= 4 then self.mage_level = 2 end + self.nuke_level = 0 + if nukers >= 2 then self.nuke_level = 1 end + if nukers >= 4 then self.nuke_level = 2 end + self.conjurer_level = 0 + if conjurers >= 2 then self.conjurer_level = 1 end + self.rogue_level = 0 + if rogues >= 2 then self.rogue_level = 1 end + if rogues >= 4 then self.rogue_level = 2 end + self.enchanter_level = 0 + if enchanters >= 3 then self.enchanter_level = 1 end + self.psy_level = psys end function Arena:update(dt) self:update_game_object(dt*slow_amount) + + if self.enchanter_level == 1 then self.enchanter_dmg_m = 1.25 + else self.enchanter_dmg_m = 1 end + self.main:update(dt*slow_amount) self.post_main:update(dt*slow_amount) self.effects:update(dt*slow_amount) diff --git a/assets/sounds/Dagger Stab (Flesh) 4.ogg b/assets/sounds/Dagger Stab (Flesh) 4.ogg new file mode 100644 index 0000000000000000000000000000000000000000..57b50a3eca4f7fa37832263face64ad6fa2a697f GIT binary patch literal 27755 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

eb= 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 WQGu2p=*-N9H9YuPTrZMug8m1h=VxI6 literal 0 HcmV?d00001 diff --git a/assets/sounds/Glass item Breaks 2.ogg b/assets/sounds/Glass item Breaks 2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..397732a32a2fd5b5d7e3882c07597e72260bbc60 GIT binary patch literal 35724 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 literal 0 HcmV?d00001 diff --git a/assets/sounds/Sword hits another sword 6.ogg b/assets/sounds/Sword hits another sword 6.ogg new file mode 100644 index 0000000000000000000000000000000000000000..07137af22d60f5c784fce9ea4ec0eb76ae2ddc2c GIT binary patch literal 16552 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 BUGD$@ literal 0 HcmV?d00001 diff --git a/devlog.md b/devlog.md index 9db95e4..4b9dfbf 100644 --- a/devlog.md +++ b/devlog.md @@ -214,3 +214,20 @@ Tomorrow I'll probably do some UI work so the player can buy new characters as h and I have a essentially 1 week to do them, which should be more than enough. Note: remember to attribute https://freesound.org/people/Hybrid_V/sounds/321215/ for turret_deploy sound in credits. + +# Day 10 - 26/02/21 + +Another day with almost no sleep and just general low energy because of it... I managed to things done though. I got all the class set bonuses working. Here's what they do: + +| Class | Set Numbers | Set Effect | +| --- | --- | --- | +| Ranger | 2/4 | 10/20% chance to release a barrage | +| Warrior | 2/4 | +25/+50 defense | +| Healer | 3 | +25% healing effectiveness | +| Mage | 2/4 | -15/-30 enemy defense | +| Nuker | 2/4 | +15/25% area damage and size | +| Conjurer | 2 | +25% construct damage and duration | +| Rogue | 2/4 | 10/20% chance to crit dealing 4x damage | +| Enchanter | 3 | +25% damage to all allies | + +Tomorrow I should get started on going from arena to arena, buying characters and figuring out enemy scaling. diff --git a/enemies.lua b/enemies.lua index df1829d..94b95c5 100644 --- a/enemies.lua +++ b/enemies.lua @@ -17,6 +17,10 @@ end function Seeker:update(dt) self:update_game_object(dt) + + if main.current.mage_level == 2 then self.buff_def_a = -30 + elseif main.current.mage_level == 1 then self.buff_def_a = -15 + else self.buff_def_a = 0 end self:calculate_stats() if self.being_pushed then diff --git a/main.lua b/main.lua index 15b7dca..62b1fd5 100644 --- a/main.lua +++ b/main.lua @@ -14,7 +14,7 @@ function init() input:bind('move_up', {'w', 'up'}) input:bind('move_down', {'s', 'down'}) - sfx_tag = {tags = {sfx}} + local s = {tags = {sfx}} shoot1 = Sound('Shooting Projectile (Classic) 11.ogg', s) archer1 = Sound('Releasing Bow String 1.ogg', s) wizard1 = Sound('Wind Bolt 20.ogg', s) @@ -61,6 +61,8 @@ function init() turret_hit_wall1 = Sound('Concrete 6.ogg', s) turret_hit_wall2 = Sound('Concrete 7.ogg', s) turret_deploy = Sound('321215__hybrid-v__sci-fi-weapons-deploy.ogg', s) + rogue_crit1 = Sound('Dagger Stab (Flesh) 4.ogg', s) + rogue_crit2 = Sound('Sword hits another sword 6.ogg', s) main = Main() main:add(Arena'arena') diff --git a/player.lua b/player.lua index f291028..0ec0deb 100644 --- a/player.lua +++ b/player.lua @@ -86,8 +86,8 @@ function Player:init(args) if self.leader then followers = self.followers else followers = self.parent.followers end if (table.any(followers, function(v) return v.hp <= 0.5*v.max_hp end) or (leader.hp <= 0.5*leader.max_hp)) and love.timer.getTime() - self.last_heal_time > 6 then self.last_heal_time = love.timer.getTime() - if self.leader then self:heal(0.1*self.max_hp) else self.parent:heal(0.1*self.parent.max_hp) end - for _, f in ipairs(followers) do f:heal(0.1*f.max_hp) end + if self.leader then self:heal(0.1*self.max_hp*(self.heal_effect_m or 1)) else self.parent:heal(0.1*self.parent.max_hp*(self.heal_effect_m or 1)) end + for _, f in ipairs(followers) do f:heal(0.1*f.max_hp*(self.heal_effect_m or 1)) end heal1:play{pitch = random:float(0.95, 1.05), volume = 0.5} end end) @@ -110,7 +110,7 @@ function Player:init(args) self.color = orange[0] self:set_as_rectangle(9, 9, 'dynamic', 'player') self.visual_shape = 'rectangle' - self.classes = {'warrior', 'rogue'} + self.classes = {'warrior', 'nuker'} self.attack_sensor = Circle(self.x, self.y, 64) self.t:cooldown(4, function() local enemies = self:get_objects_in_shape(self.attack_sensor, main.current.enemies); return enemies and #enemies > 0 end, function() @@ -194,8 +194,8 @@ function Player:init(args) if previous_character then previous_character:squire_buff(8) end self.t:after(8, function() self.applying_buff = false end, 'squire_buff_apply') heal1:play{pitch = random:float(0.95, 1.05), volume = 0.5} - if next_character then next_character:heal(0.1*next_character.max_hp) end - if previous_character then previous_character:heal(0.1*previous_character.max_hp) end + if next_character then next_character:heal(0.1*next_character.max_hp*(self.heal_effect_m or 1)) end + if previous_character then previous_character:heal(0.1*previous_character.max_hp*(self.heal_effect_m or 1)) end end) elseif self.character == 'cannoneer' then @@ -280,8 +280,8 @@ function Player:init(args) if self.psykeeper_heal > 0 then local heal_amount = math.floor(self.psykeeper_heal/(#followers+1)) - if self.leader then self:heal(heal_amount) else self.parent:heal(heal_amount) end - for _, f in ipairs(followers) do f:heal(heal_amount) end + if self.leader then self:heal(heal_amount*(self.heal_effect_m or 1)) else self.parent:heal(heal_amount*(self.heal_effect_m or 1)) end + for _, f in ipairs(followers) do f:heal(heal_amount*(self.heal_effect_m or 1)) end heal1:play{pitch = random:float(0.95, 1.05), volume = 0.5} self.psykeeper_heal = 0 end @@ -313,7 +313,6 @@ end function Player:update(dt) - if self.attack_sensor then self.enemies = self:get_objects_in_shape(self.attack_sensor, main.current.enemies) end self:update_game_object(dt) if self.character == 'squire' then @@ -352,9 +351,51 @@ function Player:update(dt) if previous_character then previous_character.chronomancer_aspd_m = 1.25 end end - self.buff_dmg_a = self.squire_dmg_a or 0 - self.buff_def_a = self.squire_def_a or 0 - self.buff_aspd_m = self.chronomancer_aspd_m or 1 + if table.any(self.classes, function(v) return v == 'ranger' end) then + if main.current.ranger_level == 2 then self.chance_to_barrage = 20 + elseif main.current.ranger_level == 1 then self.chance_to_barrage = 10 + elseif main.current.ranger_level == 0 then self.chance_to_barrage = 0 end + end + + if table.any(self.classes, function(v) return v == 'warrior' end) then + if main.current.warrior_level == 2 then self.warrior_def_a = 50 + elseif main.current.warrior_level == 1 then self.warrior_def_a = 25 + elseif main.current.warrior_level == 0 then self.warrior_def_a = 0 end + end + + if table.any(self.classes, function(v) return v == 'healer' end) then + if main.current.healer_level == 1 then self.heal_effect_m = 1.25 + else self.heal_effect_m = 1 end + end + + if table.any(self.classes, function(v) return v == 'nuker' end) then + if main.current.nuker_level == 2 then self.nuker_area_size_m = 1.25; self.nuker_area_dmg_m = 1.25 + elseif main.current.nuker_level == 1 then self.nuker_area_size_m = 1.15; self.nuker_area_dmg_m = 1.15 + elseif main.current.nuker_level == 0 then self.nuker_area_size_m = 1; self.nuker_area_dmg_m = 1 end + end + + if table.any(self.classes, function(v) return v == 'conjurer' end) then + if main.current.conjurer_level == 1 then self.conjurer_buff_m = 1.25 + else self.conjurer_buff_m = 1 end + end + + if table.any(self.classes, function(v) return v == 'rogue' end) then + if main.current.rogue_level == 2 then self.chance_to_crit = 20 + elseif main.current.rogue_level == 1 then self.chance_to_crit = 10 + elseif main.current.rogue_level == 0 then self.chance_to_crit = 0 end + end + + if table.any(self.classes, function(v) return v == 'enchanter' end) then + if main.current.enchanter_level == 1 then self.enchanter_dmg_m = 1.25 + else self.enchanter_dmg_m = 1 end + end + + self.buff_dmg_a = (self.squire_dmg_a or 0) + self.buff_def_a = (self.squire_def_a or 0) + (self.warrior_def_a or 0) + self.buff_aspd_m = (self.chronomancer_aspd_m or 1) + self.buff_dmg_m = (main.current.enchanter_dmg_m or 1) + self.buff_area_size_m = (self.nuker_area_size_m or 1) + self.buff_area_dmg_m = (self.nuker_area_dmg_m or 1) self:calculate_stats() if self.attack_sensor then self.attack_sensor:move_to(self.x, self.y) end @@ -408,6 +449,10 @@ function Player:update(dt) self.r = self:get_angle() end end + + if self.character == 'blade' then + print(self.def) + end end @@ -509,14 +554,20 @@ end function Player:shoot(r, mods) + mods = mods or {} camera:spring_shake(2, r) self.hfx:use('shoot', 0.25) + local dmg_m = 1 + local crit = false + if self.chance_to_crit and random:bool(self.chance_to_crit) then dmg_m = 4; crit = true end + if self.character == 'outlaw' then HitCircle{group = main.current.effects, x = self.x + 0.8*self.shape.w*math.cos(r), y = self.y + 0.8*self.shape.w*math.sin(r), rs = 6} r = r - 2*math.pi/8 for i = 1, 5 do - local t = {group = main.current.main, x = self.x + 1.6*self.shape.w*math.cos(r), y = self.y + 1.6*self.shape.w*math.sin(r), v = 250, r = r, color = self.color, dmg = self.dmg, character = self.character, parent = self} + local t = {group = main.current.main, x = self.x + 1.6*self.shape.w*math.cos(r), y = self.y + 1.6*self.shape.w*math.sin(r), v = 250, r = r, color = self.color, dmg = self.dmg*dmg_m, crit = crit, character = self.character, + parent = self} Projectile(table.merge(t, mods or {})) r = r + math.pi/8 end @@ -527,7 +578,8 @@ function Player:shoot(r, mods) for _, enemy in ipairs(enemies) do local r = self:angle_to_object(enemy) HitCircle{group = main.current.effects, x = self.x + 0.8*self.shape.w*math.cos(r), y = self.y + 0.8*self.shape.w*math.sin(r), rs = 6} - local t = {group = main.current.main, x = self.x + 1.6*self.shape.w*math.cos(r), y = self.y + 1.6*self.shape.w*math.sin(r), v = 250, r = r, color = self.color, dmg = self.dmg, character = self.character, parent = self} + local t = {group = main.current.main, x = self.x + 1.6*self.shape.w*math.cos(r), y = self.y + 1.6*self.shape.w*math.sin(r), v = 250, r = r, color = self.color, dmg = self.dmg*dmg_m, crit = crit, character = self.character, + parent = self} Projectile(table.merge(t, mods or {})) end end @@ -541,32 +593,37 @@ function Player:shoot(r, mods) HitCircle{group = main.current.effects, x = self.x + 0.8*self.shape.w*math.cos(r) + 4*math.cos(r - math.pi/2), y = self.y + 0.8*self.shape.w*math.sin(r) + 4*math.sin(r - math.pi/2), rs = 6} HitCircle{group = main.current.effects, x = self.x + 0.8*self.shape.w*math.cos(r) + 4*math.cos(r + math.pi/2), y = self.y + 0.8*self.shape.w*math.sin(r) + 4*math.sin(r + math.pi/2), rs = 6} local t1 = {group = main.current.main, x = self.x + 1.6*self.shape.w*math.cos(r) + 4*math.cos(r - math.pi/2) , y = self.y + 1.6*self.shape.w*math.sin(r) + 4*math.sin(r - math.pi/2), - v = 250, r = r, color = self.color, dmg = self.dmg, character = self.character, parent = self} + v = 250, r = r, color = self.color, dmg = self.dmg*dmg_m, crit = crit, character = self.character, parent = self} local t2 = {group = main.current.main, x = self.x + 1.6*self.shape.w*math.cos(r) + 4*math.cos(r + math.pi/2) , y = self.y + 1.6*self.shape.w*math.sin(r) + 4*math.sin(r + math.pi/2), - v = 250, r = r, color = self.color, dmg = self.dmg, character = self.character, parent = self} + v = 250, r = r, color = self.color, dmg = self.dmg*dmg_m, crit = crit, character = self.character, parent = self} Projectile(table.merge(t1, mods or {})) Projectile(table.merge(t2, mods or {})) else HitCircle{group = main.current.effects, x = self.x + 0.8*self.shape.w*math.cos(r), y = self.y + 0.8*self.shape.w*math.sin(r), rs = 6} - local t = {group = main.current.main, x = self.x + 1.6*self.shape.w*math.cos(r), y = self.y + 1.6*self.shape.w*math.sin(r), v = 250, r = r, color = self.color, dmg = self.dmg, character = self.character, parent = self} + local t = {group = main.current.main, x = self.x + 1.6*self.shape.w*math.cos(r), y = self.y + 1.6*self.shape.w*math.sin(r), v = 250, r = r, color = self.color, dmg = self.dmg*dmg_m, crit = crit, character = self.character, + parent = self} Projectile(table.merge(t, mods or {})) end if self.character == 'vagrant' or self.character == 'dual_gunner' then - shoot1:play{pitch = random:float(0.95, 1.05), volume = 0.3} + shoot1:play{pitch = random:float(0.95, 1.05), volume = 0.2} elseif self.character == 'archer' or self.character == 'hunter' then - archer1:play{pitch = random:float(0.95, 1.05), volume = 0.5} + archer1:play{pitch = random:float(0.95, 1.05), volume = 0.35} elseif self.character == 'wizard' then wizard1:play{pitch = random:float(0.95, 1.05), volume = 0.15} elseif self.character == 'scout' or self.character == 'outlaw' or self.character == 'blade' or self.character == 'spellblade' then - _G[random:table{'scout1', 'scout2'}]:play{pitch = random:float(0.95, 1.05), volume = 0.5} + _G[random:table{'scout1', 'scout2'}]:play{pitch = random:float(0.95, 1.05), volume = 0.35} if self.character == 'spellblade' then wizard1:play{pitch = random:float(0.95, 1.05), volume = 0.15} end elseif self.character == 'cannoneer' then _G[random:table{'cannoneer1', 'cannoneer2'}]:play{pitch = random:float(0.95, 1.05), volume = 0.5} end + + if self.chance_to_barrage and random:bool(self.chance_to_barrage) then + self:barrage(r, 4) + end end @@ -585,6 +642,20 @@ function Player:attack(area, mods) end +function Player:barrage(r, n) + n = n or 8 + for i = 1, n do + self.t:after((i-1)*0.075, function() + archer1:play{pitch = random:float(0.95, 1.05), volume = 0.35} + HitCircle{group = main.current.effects, x = self.x + 0.8*self.shape.w*math.cos(r), y = self.y + 0.8*self.shape.w*math.sin(r), rs = 6} + local t = {group = main.current.main, x = self.x + 1.6*self.shape.w*math.cos(r), y = self.y + 1.6*self.shape.w*math.sin(r), v = 250, r = r + random:float(-math.pi/16, math.pi/16), color = self.color, dmg = self.dmg, + parent = self, character = 'barrage'} + Projectile(table.merge(t, mods or {})) + end) + end +end + + Projectile = Object:extend() @@ -694,7 +765,7 @@ function Projectile:on_collision_enter(other, contact) else r = 0 end if other:is(Wall) then - if self.character == 'archer' or self.character == 'hunter' then + if self.character == 'archer' or self.character == 'hunter' or self.character == 'barrage' then self:die(x, y, r, 0) _G[random:table{'arrow_hit_wall1', 'arrow_hit_wall2'}]:play{pitch = random:float(0.9, 1.1), volume = 0.2} WallArrow{group = main.current.main, x = x, y = y, r = self.r, color = self.color} @@ -783,6 +854,15 @@ function Projectile:on_trigger_enter(other, contact) end end end + + if self.crit then + camera:shake(5, 0.25) + rogue_crit1:play{pitch = random:float(0.95, 1.05), volume = 0.5} + rogue_crit2:play{pitch = random:float(0.95, 1.05), volume = 0.15} + for i = 1, 3 do HitParticle{group = main.current.effects, x = other.x, y = other.y, color = self.color, v = random:float(100, 400)} end + for i = 1, 3 do HitParticle{group = main.current.effects, x = other.x, y = other.y, color = other.color, v = random:float(100, 400)} end + HitCircle{group = main.current.effects, x = other.x, y = other.y, rs = 12, color = fg[0], duration = 0.3}:scale_down():change_color(0.5, self.color) + end end end @@ -866,15 +946,15 @@ function Turret:init(args) self.t:every({0.1, 0.2}, function() self.hfx:use('hit', 0.25, 200, 10) HitCircle{group = main.current.effects, x = self.x + 0.8*self.shape.w*math.cos(self.r), y = self.y + 0.8*self.shape.w*math.sin(self.r), rs = 6} - local t = {group = main.current.main, x = self.x + 1.6*self.shape.w*math.cos(self.r), y = self.y + 1.6*self.shape.w*math.sin(self.r), v = 200, r = self.r, color = self.color, dmg = self.parent.dmg, - character = self.parent.character, parent = self.parent} + local t = {group = main.current.main, x = self.x + 1.6*self.shape.w*math.cos(self.r), y = self.y + 1.6*self.shape.w*math.sin(self.r), v = 200, r = self.r, color = self.color, + dmg = self.parent.dmg*(self.parent.conjurer_buff_m or 1), character = self.parent.character, parent = self.parent} Projectile(table.merge(t, mods or {})) turret1:play{pitch = random:float(0.95, 1.05), volume = 0.35} turret2:play{pitch = random:float(0.95, 1.05), volume = 0.35} end, 3) end) - self.t:after(24, function() + self.t:after(24*(self.parent.conjurer_buff_m or 1), function() local n = n or random:int(3, 4) for i = 1, n do HitParticle{group = main.current.effects, x = self.x, y = self.y, r = random:float(0, 2*math.pi), color = self.color} end HitCircle{group = main.current.effects, x = self.x, y = self.y}:scale_down() diff --git a/todo b/todo index 6983700..f18b6f1 100644 --- a/todo +++ b/todo @@ -19,15 +19,15 @@ Spellblade: knives spiral outwards and pierce enemies Psykeeper: all damage taken is stored and distributed as healing Engineer: drops a sentry that uses random attacks, medium range -Ranger: yellow, chance to release a barrage -Warrior: orange, increased defense -Healer: green, increased healing effectiveness -Mage: blue, decreased enemy defense -Nuker: purple, increased area damage and size -Conjurer: orange, increased construct damage and duration -Rogue: red, chance to crit dealing 4x damage -Enchanter: pink, increased damage to all allies -Psy: white, returns damage taken based on number of active psy units +Ranger: yellow, 10%/20% chance to release a barrage on attack +Warrior: orange, +25/+50 defense to all warriors +Healer: green, 25% increased healing effectiveness +Mage: blue, -15/-30 enemy defense +Nuker: purple, 15%/25% increased area damage and size +Conjurer: orange, 25% increased construct damage and duration +Rogue: red, 10%/20% chance to crit dealing 4x damage +Enchanter: pink, 25% increased damage to all allies +Psy: white, 2X damage taken returned Vagrant [warrior, ranger, psy] Scout [rogue] @@ -48,7 +48,6 @@ Hunter [ranger, conjurer] Chronomancer [mage, enchanter] Spellblade [mage, rogue] Psykeeper [healer, psy] - Engineer [conjurer] Ranger [2, 4] (5)