Mostly does everything I need, minus the ritual description. That'll have to probably be a separate generator. Next, rewrite this crap.
This commit is contained in:
parent
2ceab51c40
commit
d1bd6b7c45
2 changed files with 31 additions and 6 deletions
|
@ -78,6 +78,26 @@ namespace gui {
|
|||
auto& blanket = $level.world->get_the<ritual::Blanket>();
|
||||
blanket.select(item_id);
|
||||
|
||||
attempt_combine();
|
||||
|
||||
// display the possible outcome here
|
||||
if($craft_state.is_combined()) {
|
||||
auto ritual = $engine.finalize($craft_state);
|
||||
using enum ritual::Element;
|
||||
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");
|
||||
}
|
||||
} else {
|
||||
$gui.close<Sprite>("result_image");
|
||||
}
|
||||
|
||||
update_items();
|
||||
}
|
||||
|
||||
|
@ -97,12 +117,8 @@ namespace gui {
|
|||
update_items();
|
||||
}
|
||||
|
||||
void RitualUI::combine_clicked(DinkyECS::Entity ent) {
|
||||
// auto cell = $gui.cell_for(ent);
|
||||
void RitualUI::attempt_combine() {
|
||||
auto& blanket = $level.world->get_the<ritual::Blanket>();
|
||||
auto& bs = $gui.get<Sprite>(ent);
|
||||
bs.sprite->setColor({200, 0, 0});
|
||||
|
||||
$craft_state = $engine.start();
|
||||
|
||||
for(auto [ent, yes] : blanket.selected) {
|
||||
|
@ -111,6 +127,14 @@ namespace gui {
|
|||
|
||||
// finalize here ritual here
|
||||
$engine.plan($craft_state);
|
||||
}
|
||||
|
||||
void RitualUI::combine_clicked(DinkyECS::Entity ent) {
|
||||
// auto cell = $gui.cell_for(ent);
|
||||
auto& bs = $gui.get<Sprite>(ent);
|
||||
bs.sprite->setColor({200, 0, 0});
|
||||
|
||||
attempt_combine();
|
||||
|
||||
if($craft_state.is_combined()) {
|
||||
// add it to the belt
|
||||
|
@ -141,10 +165,10 @@ namespace gui {
|
|||
|
||||
for(auto& [item_id, item] : blanket.contents) {
|
||||
auto button = $gui.entity("inv_slot", i++);
|
||||
auto selector = $gui.entity("craft", j++);
|
||||
std::string sprite_name = fmt::format("{}-64", item);
|
||||
|
||||
if(blanket.is_selected(item_id)) {
|
||||
auto selector = $gui.entity("craft", j++);
|
||||
$gui.set_init<Sprite>(selector, {sprite_name});
|
||||
} else if($gui.has<Clickable>(button)) {
|
||||
$gui.set_init<Sprite>(button, {sprite_name});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue