From f1b0045829d5761bc3687454d01fb51d77b41fee Mon Sep 17 00:00:00 2001 From: Linus Probert Date: Wed, 22 Aug 2018 11:05:12 +0200 Subject: [PATCH] Introduces the "orc levels" Also fixes some minor buggs. --- data/monstergen.lua | 56 ++++++++++++++++++++++++++++++++------------- src/main.c | 6 +++-- src/skillbar.c | 8 ++++--- 3 files changed, 49 insertions(+), 21 deletions(-) diff --git a/data/monstergen.lua b/data/monstergen.lua index bd28aba..6331efe 100644 --- a/data/monstergen.lua +++ b/data/monstergen.lua @@ -84,6 +84,13 @@ local stats = { def = 0, speed = 1 }, + orc = { + hp = 20, + dmg = 2, + atk = 0, + def = 0, + speed = 1 + }, boss = { hp = 60, dmg = 4, @@ -134,6 +141,16 @@ for i=1,#pests do pests[i] = concat({ texturePaths.pest0, texturePaths.pest1 }, pests[i]) end +local avian = { + { stats.default, 0, 11*16, "A Small Brown Bat", behaviour.pacifist }, + { stats.default, 16, 11*16, "A Big Brown Bat", behaviour.normal }, + { stats.default, 32, 11*16, "A Vampire Bat", behaviour.guerilla }, + { stats.default, 48, 11*16, "A Rabid Bat", behaviour.hostile }, +} +for i=1,#avian do + avian[i] = concat({ texturePaths.avian0, texturePaths.avian1 }, avian[i]) +end + local misc = { { stats.misc, 0, 0, "A Giant Black Rat", behaviour.sentinel }, { stats.misc, 16, 0, "A Giant White Rat", behaviour.sentinel }, @@ -188,10 +205,25 @@ for i=1,#demon do demon[i] = concat({ texturePaths.demon0, texturePaths.demon1 }, demon[i]) end +local orcs = { + { stats.orc, 0, 4*16, "An Orc Guard", behaviour.normal }, + { stats.orc, 16, 4*16, "An Orc Seargeant", behaviour.coward }, + { stats.orc, 32, 4*16, "An Orc Militia", behaviour.hostile }, + { stats.orc, 48, 4*16, "An Orc Sentry", behaviour.sentinel }, + { stats.orc, 64, 4*16, "An Orc Brute", behaviour.guerilla }, + { stats.orc, 80, 4*16, "An Orc Captain", behaviour.hostile }, + { stats.orc, 80, 4*16, "An Orc Pyro", behaviour.fire_demon }, +} +for i=1,#orcs do + orcs[i] = concat({ texturePaths.humanoid0, texturePaths.humanoid1 }, orcs[i]) +end + local bosses = { - { stats.boss, 16, 5*16, "The Hell Hound", behaviour.fire_demon, true } + { stats.boss, 16, 5*16, "The Hell Hound", behaviour.fire_demon, true }, + { stats.boss, 32, 23*16, "The Cleric", behaviour.sentinel, true }, } bosses[1] = concat({ texturePaths.dog0, texturePaths.dog1 }, bosses[1]) +bosses[2] = concat({ texturePaths.humanoid0, texturePaths.humanoid1 }, bosses[2]) local platino = { { @@ -224,29 +256,21 @@ if(CURRENT_LEVEL > 0) then if (CURRENT_LEVEL == 1) then enemies = concat(enemies, pests) enemies = concat(enemies, misc) - enemies = concat(enemies, dogs) - elseif (CURRENT_LEVEL > 5) then + elseif (CURRENT_LEVEL > 15) then enemies = {} enemies = concat(enemies, demon) - enemies = concat(enemies, undead) - enemies = concat(enemies, reptile) - enemies = concat(enemies, misc) - elseif (CURRENT_LEVEL > 3) then + elseif (CURRENT_LEVEL > 10) then enemies = {} - enemies = concat(enemies, undead) - enemies = concat(enemies, reptile) - enemies = concat(enemies, misc) - enemies = concat(enemies, dogs) - elseif (CURRENT_LEVEL > 2) then + enemies = concat(enemies, demon) + elseif (CURRENT_LEVEL > 5) then enemies = {} - enemies = concat(enemies, undead) - enemies = concat(enemies, reptile) - enemies = concat(enemies, misc) - enemies = concat(enemies, dogs) + enemies = concat(enemies, orcs) + enemies = concat(enemies, avian) elseif (CURRENT_LEVEL > 1) then enemies = {} enemies = concat(enemies, undead) enemies = concat(enemies, reptile) + enemies = concat(enemies, avian) enemies = concat(enemies, misc) enemies = concat(enemies, dogs) end diff --git a/src/main.c b/src/main.c index 547e848..1aff808 100644 --- a/src/main.c +++ b/src/main.c @@ -663,10 +663,12 @@ run_game_update(void) skillActivated = skillbar_check_skill_activation(gSkillBar, gPlayer); } - if (skillActivated && settings_get()->tooltips_enabled && playerLevel < 5) { + + Settings *settings = settings_get(); + if (skillActivated && settings->tooltips_enabled && playerLevel < 5) { gGui->activeTooltip = new_skill_tooltip; } - if (!artifactTooltipShown && gPlayer->equipment.hasArtifacts) { + if (!artifactTooltipShown && gPlayer->equipment.hasArtifacts && settings->tooltips_enabled) { artifactTooltipShown = true; gGui->activeTooltip = new_artifact_tooltip; } diff --git a/src/skillbar.c b/src/skillbar.c index 9f91a72..167a3a5 100644 --- a/src/skillbar.c +++ b/src/skillbar.c @@ -374,21 +374,23 @@ skillbar_update(SkillBar *bar, UpdateData *data) if (data->player->equipment.artifacts[i].level == bar->artifacts[i].lvl) continue; + Uint32 origLevel = bar->artifacts[i].lvl; + bar->artifacts[i].lvl = data->player->equipment.artifacts[i].level; + char lvl[4]; m_sprintf(lvl, 4, "%u", bar->artifacts[i].lvl); texture_load_from_text(bar->artifacts[i].lvlSprite->textures[0], - lvl, C_BLUE, C_WHITE, data->cam->renderer); + lvl, C_PURPLE, C_WHITE, data->cam->renderer); // Only update position if this is the first pickup - if (bar->artifacts[i].lvl == 0) { + if (origLevel == 0) { bar->artifacts[i].lvlSprite->pos.x = bar->artifactDisplayOffset + 12; bar->artifacts[i].lvlSprite->pos.y = 16; bar->artifacts[i].aSprite->pos.x = bar->artifactDisplayOffset; bar->artifacts[i].aSprite->pos.y = 8; bar->artifactDisplayOffset += 32; } - bar->artifacts[i].lvl = data->player->equipment.artifacts[i].level; } }