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>();
|
auto& blanket = $level.world->get_the<ritual::Blanket>();
|
||||||
blanket.select(item_id);
|
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();
|
update_items();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -97,12 +117,8 @@ namespace gui {
|
||||||
update_items();
|
update_items();
|
||||||
}
|
}
|
||||||
|
|
||||||
void RitualUI::combine_clicked(DinkyECS::Entity ent) {
|
void RitualUI::attempt_combine() {
|
||||||
// auto cell = $gui.cell_for(ent);
|
|
||||||
auto& blanket = $level.world->get_the<ritual::Blanket>();
|
auto& blanket = $level.world->get_the<ritual::Blanket>();
|
||||||
auto& bs = $gui.get<Sprite>(ent);
|
|
||||||
bs.sprite->setColor({200, 0, 0});
|
|
||||||
|
|
||||||
$craft_state = $engine.start();
|
$craft_state = $engine.start();
|
||||||
|
|
||||||
for(auto [ent, yes] : blanket.selected) {
|
for(auto [ent, yes] : blanket.selected) {
|
||||||
|
@ -111,6 +127,14 @@ namespace gui {
|
||||||
|
|
||||||
// finalize here ritual here
|
// finalize here ritual here
|
||||||
$engine.plan($craft_state);
|
$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()) {
|
if($craft_state.is_combined()) {
|
||||||
// add it to the belt
|
// add it to the belt
|
||||||
|
@ -141,10 +165,10 @@ namespace gui {
|
||||||
|
|
||||||
for(auto& [item_id, item] : blanket.contents) {
|
for(auto& [item_id, item] : blanket.contents) {
|
||||||
auto button = $gui.entity("inv_slot", i++);
|
auto button = $gui.entity("inv_slot", i++);
|
||||||
auto selector = $gui.entity("craft", j++);
|
|
||||||
std::string sprite_name = fmt::format("{}-64", item);
|
std::string sprite_name = fmt::format("{}-64", item);
|
||||||
|
|
||||||
if(blanket.is_selected(item_id)) {
|
if(blanket.is_selected(item_id)) {
|
||||||
|
auto selector = $gui.entity("craft", j++);
|
||||||
$gui.set_init<Sprite>(selector, {sprite_name});
|
$gui.set_init<Sprite>(selector, {sprite_name});
|
||||||
} else if($gui.has<Clickable>(button)) {
|
} else if($gui.has<Clickable>(button)) {
|
||||||
$gui.set_init<Sprite>(button, {sprite_name});
|
$gui.set_init<Sprite>(button, {sprite_name});
|
||||||
|
|
|
@ -35,6 +35,7 @@ namespace gui {
|
||||||
void render(sf::RenderWindow &window);
|
void render(sf::RenderWindow &window);
|
||||||
void update();
|
void update();
|
||||||
|
|
||||||
|
void attempt_combine();
|
||||||
void update_items();
|
void update_items();
|
||||||
void combine_clicked(DinkyECS::Entity ent);
|
void combine_clicked(DinkyECS::Entity ent);
|
||||||
void inv_slot_clicked(DinkyECS::Entity ent, DinkyECS::Entity item_id);
|
void inv_slot_clicked(DinkyECS::Entity ent, DinkyECS::Entity item_id);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue