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

This commit is contained in:
Zed A. Shaw 2025-05-02 11:39:39 -04:00
parent bac552c3d7
commit edf10c976a
8 changed files with 36 additions and 32 deletions

View file

@ -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.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;
}
$gui.show_label("result_text", L"CRAFTING");
}
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!");
}
}
}