From 7f10c5b3d78f10c1dd8b6cac22526de44da1b2a1 Mon Sep 17 00:00:00 2001 From: "Zed A. Shaw" Date: Sun, 12 Oct 2025 14:05:30 -0400 Subject: [PATCH] New boss scene that's really just a pixelated photo bash done quickly. --- assets/animations.json | 6 +++--- assets/boss2/boss_fight_scene_1_floor.png | Bin 0 -> 20125 bytes assets/boss2/boss_fight_scene_1_wall.png | Bin 0 -> 45812 bytes assets/bosses.json | 10 +++++----- assets/config.json | 12 ++++++------ autowalker.cpp | 1 - boss/fight.cpp | 4 ++-- boss/ui.cpp | 20 ++++++++++++++------ scripts/build_assets.ps1 | 9 +++++---- tests/components.cpp | 4 ++-- 10 files changed, 37 insertions(+), 29 deletions(-) create mode 100644 assets/boss2/boss_fight_scene_1_floor.png create mode 100644 assets/boss2/boss_fight_scene_1_wall.png diff --git a/assets/animations.json b/assets/animations.json index 5cdbc6e..97d922b 100644 --- a/assets/animations.json +++ b/assets/animations.json @@ -121,9 +121,9 @@ }, "rat_king_boss": { "_type": "Animation", - "easing": 1, - "ease_rate": 0.5, - "scale": 0.4, + "easing": 4, + "ease_rate": 0.9, + "scale": 0.8, "simple": false, "frames": 2, "speed": 0.02, diff --git a/assets/boss2/boss_fight_scene_1_floor.png b/assets/boss2/boss_fight_scene_1_floor.png new file mode 100644 index 0000000000000000000000000000000000000000..180007bcff991942c50625472d8aeff539a1546d GIT binary patch literal 20125 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 ^n;g6{WCBYTC+wK>PPYC02_TeiH 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 Zv335RX5lth@&q#?&BxkmB`Ovn{|86le`o*z literal 0 HcmV?d00001 diff --git a/assets/bosses.json b/assets/bosses.json index c6f8ff0..bdfe8ac 100644 --- a/assets/bosses.json +++ b/assets/bosses.json @@ -2,8 +2,8 @@ "RAT_KING": { "components": [ {"_type": "BossFight", - "background": "boss_fight_background", - "floor": "devils_fingers_background", + "background": "test_background", + "floor": false, "floor_pos": "floor1", "player": { "sprite": "peasant_girl_rear_view", @@ -12,13 +12,13 @@ "mid_cell": false }, "boss": { - "start_pos": "boss2", - "scale": 0.7, + "start_pos": "boss5", + "scale": 0.6, "mid_cell": true } }, {"_type": "Combat", "hp": 20, "max_hp": 20, "damage": 20, "dead": false}, - {"_type": "Sprite", "name": "rat_king_boss", "width": 720, "height": 720, "scale": 0.8, "stationary": false}, + {"_type": "Sprite", "name": "rat_king_boss", "width": 720, "height": 720, "scale": 0.8, "stationary": true}, {"_type": "Sound", "attack": "Marmot_Scream_1", "death": "Creature_Death_1"} ] } diff --git a/assets/config.json b/assets/config.json index 65e5afe..ac70ced 100644 --- a/assets/config.json +++ b/assets/config.json @@ -246,9 +246,9 @@ "frame_height": 540 }, "test_background": - {"path": "assets/bossfights/test_background.png", - "frame_width": 1920, - "frame_height": 1080 + {"path": "assets/boss2/boss_fight_scene_1_wall.png", + "frame_width": 1080, + "frame_height": 720 }, "test_boss": {"path": "assets/bossfights/test_boss.png", @@ -256,9 +256,9 @@ "frame_height": 832 }, "test_floor": - {"path": "assets/bossfights/test_floor.png", - "frame_width": 1920, - "frame_height": 1080 + {"path": "assets/boss2/boss_fight_scene_1_floor.png", + "frame_width": 1080, + "frame_height": 720 }, "test_player": {"path": "assets/bossfights/test_player.png", diff --git a/autowalker.cpp b/autowalker.cpp index 5cb33e5..bcb4458 100644 --- a/autowalker.cpp +++ b/autowalker.cpp @@ -358,7 +358,6 @@ bool Autowalker::player_health_good() { auto player = GameDB::the_player(); auto combat = world->get(player); float health = float(combat.hp) / float(combat.max_hp); - fmt::println("!!!!!!!!!! HEALTH: {}", health); return health > 0.5f; } diff --git a/boss/fight.cpp b/boss/fight.cpp index 26c7047..9ca5743 100644 --- a/boss/fight.cpp +++ b/boss/fight.cpp @@ -105,7 +105,7 @@ namespace boss { break; case ATTACK: { $ui.status(L"BOSS TURN"); - $ui.move_boss(run % 10 < 5 ? "boss1" : "boss2"); + $ui.move_boss(run % 10 < 5 ? "boss5" : "boss6"); $ui.$boss_anim.play(); int attack_id = std::any_cast(data); boss::System::combat(attack_id); @@ -128,7 +128,7 @@ namespace boss { } void Fight::render(sf::RenderWindow& window) { - $ui.render(window); $ui.play_animations(window); + $ui.render(window); } } diff --git a/boss/ui.cpp b/boss/ui.cpp index 39f5f59..31567bb 100644 --- a/boss/ui.cpp +++ b/boss/ui.cpp @@ -31,7 +31,7 @@ namespace boss { void UI::init() { $arena.position(SCREEN_WIDTH-BOSS_VIEW_WIDTH,0, BOSS_VIEW_WIDTH, SCREEN_HEIGHT); - $arena.set($arena.MAIN, {$arena.$parser, THEME.DARK_MID}); + $arena.set($arena.MAIN, {$arena.$parser, THEME.TRANSPARENT}); auto& background = $arena.get($arena.MAIN); background.set_sprite($scene.background, true); @@ -82,14 +82,16 @@ namespace boss { } void UI::render(sf::RenderWindow& window) { + $actions.render(window); $combat_ui.render(window); - $arena.render(window); if($floor_sprite.sprite) { window.draw(*$floor_sprite.sprite); } + $arena.render(window); + window.draw(*$boss_sprite.sprite); window.draw(*$player_sprite.sprite); @@ -118,19 +120,25 @@ namespace boss { } void UI::play_animations(sf::RenderWindow& window) { - using namespace std::chrono_literals; - auto& sound = $world->get($boss_id); + if($boss_anim.playing) { + using namespace std::chrono_literals; + auto& sound = $world->get($boss_id); - while($boss_anim.playing) { animation::apply($boss_anim, *$boss_sprite.sprite, $boss_pos); if($boss_anim.current == 1 && !sound::playing(sound.attack)) { sound::play(sound.attack); } + // https://www.construct.net/en/blogs/ashleys-blog-2/using-lerp-delta-time-924 + + // frame start render(window); window.display(); - std::this_thread::sleep_for(16ms); + // frame end + // deltaTime = end - start + // lerp(a, b, 1 - f ^ deltaTime) + // std::this_thread::sleep_for(16ms); } } } diff --git a/scripts/build_assets.ps1 b/scripts/build_assets.ps1 index 8d18649..66d7009 100644 --- a/scripts/build_assets.ps1 +++ b/scripts/build_assets.ps1 @@ -29,10 +29,11 @@ function Build-Images { # Build-Images -Source "Sprites" -pixel_count 6 # Build-Images -Source "Items" -pixel_count 2 # Build-Images -Source "Animations" -pixel_count 6 -Build-Images -Source "Hands" -pixel_count 6 +# Build-Images -Source "Hands" -pixel_count 6 +Build-Images -Source "Boss2" -pixel_count 4 -magick montage -tile 3x1 -geometry +0+0 -background transparent .\assets\hands\female_hand_*.png .\assets\hands\female_hand.png +#magick montage -tile 3x1 -geometry +0+0 -background transparent .\assets\hands\female_hand_*.png .\assets\hands\female_hand.png -magick montage -tile 3x1 -geometry +0+0 -background transparent .\assets\hands\male_hand_*.png .\assets\hands\male_hand.png +#magick montage -tile 3x1 -geometry +0+0 -background transparent .\assets\hands\male_hand_*.png .\assets\hands\male_hand.png -cp -recurse -force C:\Users\lcthw\Pictures\Games\Renders\Raycaster\UI assets\ui +#cp -recurse -force C:\Users\lcthw\Pictures\Games\Renders\Raycaster\UI assets\ui diff --git a/tests/components.cpp b/tests/components.cpp index ff8e43a..ae54016 100644 --- a/tests/components.cpp +++ b/tests/components.cpp @@ -38,7 +38,7 @@ TEST_CASE("make sure json_mods works", "[components]") { if(comp_data["_type"] == "BossFight") { auto comp = components::convert(comp_data); // the boss fight for the rat king doesn't have a stage so false=optional - REQUIRE(comp.floor != std::nullopt); + REQUIRE(comp.floor == std::nullopt); } } @@ -51,5 +51,5 @@ TEST_CASE("make sure json_mods works", "[components]") { components::configure_entity(world, rat_king, config["RAT_KING"]["components"]); auto boss = world.get(rat_king); - REQUIRE(boss.floor != std::nullopt); + REQUIRE(boss.floor == std::nullopt); }