Cleaned up the ritual UI some more and solved a few more bugs, then brought in a quick 'dubious combination' image.

master
Zed A. Shaw 4 days ago
parent bac552c3d7
commit edf10c976a
  1. 10
      assets/config.json
  2. 2
      assets/rituals.json
  3. BIN
      assets/rituals/dubious_combination-128.png
  4. BIN
      assets/rituals/dubious_combination-64.png
  5. BIN
      assets/sounds/fireball_01.ogg
  6. 52
      ritual_ui.cpp
  7. 1
      ritual_ui.hpp
  8. 3
      systems.cpp

@ -309,6 +309,16 @@
{"path": "assets/rituals/stone_doll_cursed-128.png",
"frame_width": 128,
"frame_height": 128
},
"dubious_combination-64":
{"path": "assets/rituals/dubious_combination-64.png",
"frame_width": 64,
"frame_height": 64
},
"dubious_combination-128":
{"path": "assets/rituals/dubious_combination-128.png",
"frame_width": 128,
"frame_height": 128
}
},
"worldgen": {

@ -197,6 +197,6 @@
}
},
"starting_junk": [
"dirty_kerchief", "pocket_watch", "chess_pawn", "mushroom", "severed_finger", "rusty_nails"
"pocket_watch", "mushroom", "rusty_nails"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

@ -54,12 +54,6 @@ namespace gui {
[&](auto, auto){ event(Event::TOGGLE); }
});
auto combine = $gui.entity("combine");
$gui.set<Rectangle>(combine, {});
$gui.set<Label>(combine, {L"combine"});
$gui.set<Clickable>(combine, {
[&](auto, auto){ event(Event::COMBINE); }
});
$craft_state = $ritual_engine.start();
$gui.init();
@ -166,12 +160,7 @@ namespace gui {
state(State::OPENED);
} else {
run_crafting_engine();
if(!$craft_state.is_combined()) {
show_craft_failure();
} else {
show_craft_result();
}
show_craft_result();
}
}
@ -226,19 +215,31 @@ namespace gui {
void UI::show_craft_result() {
using enum ::ritual::Element;
auto ritual = $ritual_engine.finalize($craft_state);
auto combine = $gui.entity("result_image");
switch(ritual.element) {
case FIRE:
$gui.show_sprite("result_image", "broken_yoyo-64");
break;
case LIGHTNING:
$gui.show_sprite("result_image", "pocket_watch-64");
break;
default:
$gui.show_sprite("result_image", "severed_finger-64");
}
if($craft_state.is_combined()) {
$gui.show_label("result_text", L"This might work...");
switch(ritual.element) {
case FIRE:
$gui.show_sprite("result_image", "broken_yoyo-64");
break;
case LIGHTNING:
$gui.show_sprite("result_image", "pocket_watch-64");
break;
default:
$gui.show_sprite("result_image", "severed_finger-64");
}
$gui.show_label("result_text", L"CRAFTING");
$gui.set<Clickable>(combine, {
[&](auto, auto){ event(Event::COMBINE); }
});
} else {
$gui.show_label("result_text", L"That won't work.");
$gui.show_sprite("result_image", "dubious_combination-128");
$gui.remove<Clickable>(combine);
return;
}
}
void UI::clear_craft_result() {
@ -246,10 +247,5 @@ namespace gui {
$gui.close<Label>("result_text");
$gui.close<Sprite>("result_image");
}
void UI::show_craft_failure() {
$gui.close<Sprite>("result_image");
$gui.show_label("result_text", L"FAILED!");
}
}
}

@ -61,7 +61,6 @@ namespace gui {
void select_item(SelectedItem pair);
void show_craft_result();
void clear_craft_result();
void show_craft_failure();
void run_crafting_engine();
void complete_combine();
void update_selection_state();

@ -232,8 +232,7 @@ void System::combat(GameLevel &level, int attack_id) {
auto player = world.get_the<Player>();
auto& the_belt = world.get_the<ritual::Belt>();
dbc::check(the_belt.has(attack_id),
fmt::format("the_belt does not have an attack with id={}", attack_id));
if(!the_belt.has(attack_id)) return;
auto& ritual = the_belt.get(attack_id);
const auto& player_position = world.get<Position>(player.entity);

Loading…
Cancel
Save