Reworked repair equipment interface in crafting menu

This commit is contained in:
coffee-compiler 2024-07-31 13:04:12 +00:00 committed by Marcel
parent 366cf18603
commit 7a3f3cc555
29 changed files with 98 additions and 151 deletions

View File

@ -38,6 +38,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Improved Mindflayer anticheese measures.
- Recipe pricing with NPCs.
- Broad entity and loot updates to Gnarling Fortifications
- Reworked spacing and labels in crafting menu.
- Reworked design of repair equipment interface in crafting menu.
### Removed

View File

@ -2,8 +2,6 @@ hud-crafting = Рамяство
hud-crafting-recipes = Рэцэпты
hud-crafting-ingredients = Інгрэдыенты:
hud-crafting-craft = Стварыць
hud-crafting-tool_cata = Патрэбна:
hud-crafting-req_crafting_station = Патрэбна:
hud-crafting-anvil = Кавадла
hud-crafting-cauldron = Кацёл
hud-crafting-cooking_pot = Казан
@ -35,9 +33,6 @@ hud-crafting-dismantle_explanation =
hud-crafting-modular_desc = Перацягніце часткі зброі каб стварыць зброю
hud-crafting-mod_weap_prim_slot_title = Асноўны Кампанент Зброі
hud-crafting-mod_weap_sec_slot_title = Другі Кампанент Зброі
hud-crafting-repair = Адрамантаваць
hud-crafting-repair_equipped = Адрамантаваць Апрананае
hud-crafting-repair_all = Адрамантаваць Усё
hud-crafting-mod_weap_prim_slot_desc = Змясціце асноўны кампанент зброі тут (напрыклад sword blade, axe head, альбо bow limbs).
hud-crafting-mod_weap_sec_slot_desc = Змясціце другі кампанент зброі тут (напрыклад sword hilt, bow grip, альбо staff core).
hud-crafting-repair_bench = Рамонтны Стол

View File

@ -3,8 +3,6 @@ hud-crafting-recipes = Receptes
hud-crafting-ingredients = Ingredients:
hud-crafting-craft = Elaborar
hud-crafting-craft_all = Elaborar Tot
hud-crafting-tool_cata = Requereix:
hud-crafting-req_crafting_station = Requereix:
hud-crafting-anvil = Enclusa
hud-crafting-cauldron = Calderó
hud-crafting-cooking_pot = Cassola per Cuinar

View File

@ -2,8 +2,6 @@ hud-crafting = Výroba
hud-crafting-recipes = Recepty
hud-crafting-ingredients = Ingredience:
hud-crafting-craft = Vyrobit
hud-crafting-tool_cata = Vyžaduje:
hud-crafting-req_crafting_station = Vyžaduje:
hud-crafting-anvil = Kovadlina
hud-crafting-cauldron = Kotel
hud-crafting-cooking_pot = Hrnec na vaření

View File

@ -3,11 +3,11 @@ hud-crafting-recipes = Rezepte
hud-crafting-ingredients = Zutaten:
hud-crafting-craft = Herstellen
hud-crafting-craft_all = Alle herstellen
hud-crafting-tool_cata = Benötigt:
hud-crafting-repair = Reparieren
hud-crafting-repair_equipped = Repariere ausgerüstete
hud-crafting-repair_all = Repariere alles
hud-crafting-req_crafting_station = Benötigt:
hud-crafting-tool_cata = Werkzeuge:
hud-crafting-repair-selection = Auswahl
hud-crafting-repair_equipped = Ausgerüstete
hud-crafting-repair_all = Alle
hud-crafting-req_crafting_station = Station:
hud-crafting-anvil = Amboss
hud-crafting-cauldron = Kessel
hud-crafting-cooking_pot = Kochtopf
@ -41,6 +41,7 @@ hud-crafting-dismantle_explanation =
## Modular Weapons
hud-crafting-modular_desc = Lege Item Bauteile hier ab, um eine Waffe herzustellen.
hud-crafting-repair_desc = Lege beschädigte Items hier ab, um sie zu reparieren.
hud-crafting-mod_weap_prim_slot_title = Primäres Waffen Bauteil
hud-crafting-mod_weap_prim_slot_desc = Lege hier ein primäres Waffen Bauteil ab (z.B. eine Schwertklinge, Axtkopf oder Bogensehne).
hud-crafting-mod_weap_sec_slot_title = Sekundäres Waffen Bauteil

View File

@ -3,11 +3,12 @@ hud-crafting-recipes = Recipes
hud-crafting-ingredients = Ingredients:
hud-crafting-craft = Craft
hud-crafting-craft_all = Craft All
hud-crafting-repair = Repair
hud-crafting-repair_equipped = Repair Equipped
hud-crafting-repair_all = Repair All
hud-crafting-tool_cata = Requires:
hud-crafting-req_crafting_station = Requires:
hud-crafting-repair-selection = Selection
hud-crafting-repair_equipped = Equipped
hud-crafting-repair_all = All
hud-crafting-tool_cata = Tools:
hud-crafting-req_crafting_station = Station:
hud-crafting-required_crafting_station = Station:
hud-crafting-anvil = Anvil
hud-crafting-cauldron = Cauldron
hud-crafting-cooking_pot = Cooking Pot
@ -37,6 +38,7 @@ hud-crafting-dismantle_explanation =
Double-Click them to start dismantling.
hud-crafting-modular_desc = Drag Item-Parts here to craft a weapon
hud-crafting-repair_desc = Drag damaged items here to repair them
hud-crafting-mod_weap_prim_slot_title = Primary Weapon Component
hud-crafting-mod_weap_prim_slot_desc = Place a primary weapon component here (e.g. a sword blade, axe head, or bow limbs).
hud-crafting-mod_weap_sec_slot_title = Secondary Weapon Component

View File

@ -2,9 +2,7 @@ hud-crafting = Kreante
hud-crafting-recipes = Receptoj
hud-crafting-ingredients = Konsistigaĵoj =
hud-crafting-craft = Krei
hud-crafting-tool_cata = Bezonas =
## Crafting Stations
hud-crafting-req_crafting_station = Bezonas =
hud-crafting-anvil = Amboso
hud-crafting-cauldron = Kaldrono
hud-crafting-cooking_pot = Kuirpoto

View File

@ -3,11 +3,6 @@ hud-crafting-recipes = Recetas
hud-crafting-ingredients = Ingredientes:
hud-crafting-craft = Fabricar
hud-crafting-craft_all = Fabricar todo
hud-crafting-repair = Reparar
hud-crafting-repair_equipped = Reparar equipo
hud-crafting-repair_all = Reparar todo
hud-crafting-tool_cata = Requisitos:
hud-crafting-req_crafting_station = Requiere:
hud-crafting-anvil = Yunque
hud-crafting-cauldron = Caldero
hud-crafting-cooking_pot = Olla de Cocina

View File

@ -3,11 +3,6 @@ hud-crafting-recipes = Recetas
hud-crafting-ingredients = Ingredientes:
hud-crafting-craft = Fabricar
hud-crafting-craft_all = Fabricar todo
hud-crafting-repair = Reparar
hud-crafting-repair_equipped = Reparar objetos equipados
hud-crafting-repair_all = Reparar todo
hud-crafting-tool_cata = Requisitos:
hud-crafting-req_crafting_station = Requisitos:
hud-crafting-anvil = Yunque
hud-crafting-cauldron = Caldero
hud-crafting-cooking_pot = Olla de cocina

View File

@ -5,8 +5,6 @@ hud-crafting-craft = Sortu
hud-crafting-craft_all = Sortu denak
hud-crafting-salvaging_station = Desmuntatzeko mahaia
hud-crafting-campfire = Sua
hud-crafting-tool_cata = Beharrezko tresneria:
hud-crafting-req_crafting_station = Beharrezko tresneria:
hud-crafting-anvil = Ingudea
hud-crafting-cauldron = Pertza
hud-crafting-cooking_pot = Kozinatzeko lapikoa

View File

@ -3,11 +3,6 @@ hud-crafting-recipes = Recettes
hud-crafting-ingredients = Ingrédients :
hud-crafting-craft = Fabriquer
hud-crafting-craft_all = Tout Fabriquer
hud-crafting-repair = Réparer
hud-crafting-repair_equipped = Réparer équipé
hud-crafting-repair_all = Tout réparer
hud-crafting-tool_cata = Nécessite :
hud-crafting-req_crafting_station = Nécessite:
hud-crafting-anvil = Enclume
hud-crafting-cauldron = Chaudron
hud-crafting-cooking_pot = Marmite

View File

@ -2,8 +2,6 @@ hud-crafting = Tárgykészítés
hud-crafting-recipes = Receptek
hud-crafting-ingredients = Alapanyagok:
hud-crafting-craft = Elkészít
hud-crafting-tool_cata = Szükséges hozzá:
hud-crafting-req_crafting_station = Szükséges hozzá:
hud-crafting-anvil = Üllő
hud-crafting-cauldron = Üst
hud-crafting-cooking_pot = Kondér

View File

@ -3,11 +3,6 @@ hud-crafting-recipes = Ricette
hud-crafting-ingredients = Ingredienti:
hud-crafting-craft = Crea
hud-crafting-craft_all = Crea tutti
hud-crafting-repair = Ripara
hud-crafting-repair_equipped = Ripara equipaggiamento
hud-crafting-repair_all = Ripara tutto
hud-crafting-tool_cata = Richiede:
hud-crafting-req_crafting_station = Richiede:
hud-crafting-anvil = Incudine
hud-crafting-cauldron = Calderone
hud-crafting-cooking_pot = Pentola

View File

@ -2,4 +2,3 @@ hud-crafting = クラフト
hud-crafting-recipes = レシピ
hud-crafting-ingredients = 材料:
hud-crafting-craft = クラフト
hud-crafting-tool_cata = 必要:

View File

@ -3,8 +3,6 @@ hud-crafting-recipes = 레시피
hud-crafting-ingredients = 재료:
hud-crafting-craft = 만들기
hud-crafting-craft_all = 모두 만들기
hud-crafting-tool_cata = 필요함:
hud-crafting-req_crafting_station = 필요함:
hud-crafting-anvil = 모루
hud-crafting-cauldron = 솥
hud-crafting-cooking_pot = 요리용 냄비

View File

@ -2,4 +2,3 @@ hud-crafting = Håndverk
hud-crafting-recipes = Oppskrifter
hud-crafting-ingredients = Ingredienser:
hud-crafting-craft = Lag
hud-crafting-tool_cata = Krever:

View File

@ -2,4 +2,3 @@ hud-crafting = Fabriceren
hud-crafting-recipes = Recepten
hud-crafting-ingredients = Ingrediënten:
hud-crafting-craft = Maak
hud-crafting-tool_cata = Vereisten:

View File

@ -3,8 +3,6 @@ hud-crafting-recipes = Receptury
hud-crafting-ingredients = Składniki:
hud-crafting-craft = Stwórz
hud-crafting-craft_all = Stwórz wszystko
hud-crafting-tool_cata = Wymaga:
hud-crafting-req_crafting_station = Wymaga:
hud-crafting-anvil = Kowadło
hud-crafting-cauldron = Kocioł
hud-crafting-cooking_pot = Gar

View File

@ -3,11 +3,6 @@ hud-crafting-recipes = Receitas
hud-crafting-ingredients = Ingredientes:
hud-crafting-craft = Forjar
hud-crafting-craft_all = Forjar Tudo
hud-crafting-repair = Reparar
hud-crafting-repair_equipped = Reparar apenas equipados
hud-crafting-repair_all = Reparar Tudo
hud-crafting-tool_cata = Requer:
hud-crafting-req_crafting_station = Requer:
hud-crafting-anvil = Bigorna
hud-crafting-repair_bench = Bancada de Reparo
hud-crafting-cauldron = Caldeirão

View File

@ -2,8 +2,6 @@ hud-crafting = Meșteșug
hud-crafting-recipes = Rețete
hud-crafting-ingredients = Ingrediente:
hud-crafting-craft = Craft
hud-crafting-tool_cata = Necesită:
hud-crafting-req_crafting_station = Necesită:
hud-crafting-anvil = Nicovală
hud-crafting-cauldron = Cazan
hud-crafting-cooking_pot = Oală de gătit

View File

@ -3,8 +3,6 @@ hud-crafting-recipes = Рецепты
hud-crafting-ingredients = Ингредиенты:
hud-crafting-craft = Создать
hud-crafting-craft_all = Создать все
hud-crafting-tool_cata = Необходимо:
hud-crafting-req_crafting_station = Необходимо:
hud-crafting-anvil = Наковальня
hud-crafting-cauldron = Зельеварочный котёл
hud-crafting-cooking_pot = Котелок
@ -43,8 +41,5 @@ hud-crafting-mod_comp_wood_prim_slot_title = Дерево
hud-crafting-mod_comp_wood_prim_slot_desc = Положите сюда дерево, только определённое дерево можно использовать для изготовления оружия.
hud-crafting-mod_comp_sec_slot_title = Животный материал
hud-crafting-mod_comp_sec_slot_desc = При желании поместите сюда животный материал, только определённые ингредиенты можно использовать для улучшения оружия.
hud-crafting-repair_equipped = Ремонт экипированного
hud-crafting-repair_all = Починить всё
hud-crafting-repair_slot_desc = Поместите сюда предмет, чтобы узнать стоимость его ремонта при текущем уровне прочности.
hud-crafting-repair = Ремонт
hud-crafting-repair_bench = Ремонтный стол

View File

@ -2,8 +2,6 @@ hud-crafting = Прављење
hud-crafting-recipes = Рецепти
hud-crafting-ingredients = Састојци:
hud-crafting-craft = Направи
hud-crafting-tool_cata = Захтева:
hud-crafting-req_crafting_station = Захтева:
hud-crafting-anvil = Наковањ
hud-crafting-cauldron = Казан
hud-crafting-cooking_pot = Лонац за Кување

View File

@ -3,11 +3,6 @@ hud-crafting-recipes = Recept
hud-crafting-ingredients = Ingredienser:
hud-crafting-craft = Tillverka
hud-crafting-craft_all = Tillverka Alla
hud-crafting-repair = Reparera
hud-crafting-repair_equipped = Reparera Utrustning
hud-crafting-repair_all = Reparera Alla
hud-crafting-tool_cata = Kräver:
hud-crafting-req_crafting_station = Kräver:
hud-crafting-anvil = Städ
hud-crafting-cauldron = Kittel
hud-crafting-cooking_pot = Kokkärl

View File

@ -2,8 +2,6 @@ hud-crafting = สร้างสิ่งของ
hud-crafting-recipes = สูตรการสร้าง
hud-crafting-ingredients = วัตถุดิบ:
hud-crafting-craft = สร้าง
hud-crafting-tool_cata = สิ่งที่ต้องใช้:
hud-crafting-req_crafting_station = สิ่งที่ต้องใช้:
hud-crafting-anvil = ทั่ง
hud-crafting-cauldron = หม้อต้มยา
hud-crafting-cooking_pot = หม้อทำอาหาร

View File

@ -2,4 +2,3 @@ hud-crafting = Üretim
hud-crafting-recipes = Tarifler
hud-crafting-ingredients = Malzemeler:
hud-crafting-craft = Üret
hud-crafting-tool_cata = Gerektiriyor:

View File

@ -3,13 +3,6 @@ hud-crafting-recipes = Рецепти
hud-crafting-ingredients = Інгрідієнти:
hud-crafting-craft = Створити
hud-crafting-craft_all = Створити Все
hud-crafting-repair = Ремонтувати
hud-crafting-repair_equipped =
Ремонтувати
екіпіроване
hud-crafting-repair_all = Ремонтувати все
hud-crafting-tool_cata = Необхідно:
hud-crafting-req_crafting_station = Необхідно:
hud-crafting-anvil = Ковадло
hud-crafting-cauldron = Казан для зілля
hud-crafting-cooking_pot = Казан для їжї

View File

@ -2,8 +2,6 @@ hud-crafting = Chế tạo
hud-crafting-recipes = Công thức
hud-crafting-ingredients = Nguyên liệu:
hud-crafting-craft = Chế tạo
hud-crafting-tool_cata = Yêu cầu:
hud-crafting-req_crafting_station = Yêu cầu:
hud-crafting-anvil = Đe
hud-crafting-cauldron = Vạc
hud-crafting-cooking_pot = Nồi Nấu Ăn

View File

@ -3,11 +3,6 @@ hud-crafting-recipes = 菜单
hud-crafting-ingredients = 配方:
hud-crafting-craft = 制作
hud-crafting-craft_all = 全部制作
hud-crafting-repair = 维修
hud-crafting-repair_equipped = 维修身上的装备
hud-crafting-repair_all = 维修所有
hud-crafting-tool_cata = 需要:
hud-crafting-req_crafting_station = 需要:
hud-crafting-anvil = 铁砧
hud-crafting-cauldron = 坩埚
hud-crafting-cooking_pot = 煮锅

View File

@ -1480,6 +1480,16 @@ impl<'a> Widget for Crafting<'a> {
});
}
// Repair instructions
Text::new(&self.localized_strings.get_msg("hud-crafting-repair_desc"))
.mid_top_of(state.ids.align_ing)
.w(264.0)
.center_justify()
.font_id(self.fonts.cyri.conrod_id)
.font_size(self.fonts.cyri.scale(13))
.color(TEXT_COLOR)
.set(state.ids.modular_desc_txt, ui);
// Slot for item to be repaired
let repair_slot = CraftSlot {
index: 0,
@ -1489,8 +1499,9 @@ impl<'a> Widget for Crafting<'a> {
};
let repair_slot_widget = slot_maker
.fabricate(repair_slot, [40.0; 2])
.top_left_with_margins_on(state.ids.align_ing, 20.0, 40.0)
.fabricate(repair_slot, [80.0; 2])
.down_from(state.ids.modular_desc_txt, 15.0)
.align_middle_x()
.parent(state.ids.align_ing);
if let Some(item) = repair_slot.item(self.inventory) {
@ -1518,6 +1529,14 @@ impl<'a> Widget for Crafting<'a> {
.set(state.ids.craft_slots[0], ui);
}
if repair_slot.slot.is_none() {
Image::new(self.imgs.icon_mod_weap)
.middle_of(state.ids.craft_slots[0])
.w_h(70.0, 70.0)
.graphics_for(state.ids.craft_slots[0])
.set(state.ids.modular_wep_ing_1_bg, ui);
}
let can_repair = |item: &Item| {
// Check that item needs to be repaired, and that inventory has sufficient
// materials to repair
@ -1547,7 +1566,8 @@ impl<'a> Widget for Crafting<'a> {
.label_font_size(self.fonts.cyri.scale(12))
.label_font_id(self.fonts.cyri.conrod_id)
.image_color(TEXT_COLOR)
.top_right_with_margins_on(state.ids.align_ing, 20.0, 20.0)
.down_from(state.ids.craft_slots[0], 45.0)
.x_relative_to(state.ids.craft_slots[0], 0.0)
.set(state.ids.repair_buttons[0], ui)
.was_clicked()
{
@ -1572,7 +1592,8 @@ impl<'a> Widget for Crafting<'a> {
.label_font_size(self.fonts.cyri.scale(12))
.label_font_id(self.fonts.cyri.conrod_id)
.image_color(TEXT_COLOR)
.mid_bottom_with_margin_on(state.ids.repair_buttons[0], -45.0)
.down_from(state.ids.repair_buttons[0], 5.0)
.x_relative_to(state.ids.craft_slots[0], 0.0)
.set(state.ids.repair_buttons[1], ui)
.was_clicked()
{
@ -1602,7 +1623,9 @@ impl<'a> Widget for Crafting<'a> {
// Craft button
let label = &match recipe_kind {
RecipeKind::Repair => self.localized_strings.get_msg("hud-crafting-repair"),
RecipeKind::Repair => self
.localized_strings
.get_msg("hud-crafting-repair-selection"),
_ => self.localized_strings.get_msg("hud-crafting-craft"),
};
let craft_button_init = Button::image(self.imgs.button)
@ -1631,8 +1654,15 @@ impl<'a> Widget for Crafting<'a> {
} else {
TEXT_GRAY_COLOR
})
.bottom_left_with_margins_on(state.ids.align_ing, -31.0, 15.0)
.parent(state.ids.window_frame);
.and(|b| match recipe_kind {
RecipeKind::Repair => b
.down_from(state.ids.craft_slots[0], 15.0)
.x_relative_to(state.ids.craft_slots[0], 0.0)
.parent(state.ids.align_ing),
_ => b
.bottom_left_with_margins_on(state.ids.align_ing, -31.0, 10.0)
.parent(state.ids.window_frame),
});
let craft_button = if !recipe_known {
craft_button_init
@ -1692,8 +1722,8 @@ impl<'a> Widget for Crafting<'a> {
}
// Craft All button
let can_perform_all = can_perform && matches!(recipe_kind, RecipeKind::Simple);
if Button::image(self.imgs.button)
if matches!(recipe_kind, RecipeKind::Simple)
&& Button::image(self.imgs.button)
.w_h(105.0, 25.0)
.hover_image(if can_perform {
self.imgs.button_hover
@ -1707,27 +1737,25 @@ impl<'a> Widget for Crafting<'a> {
})
.label(&self.localized_strings.get_msg("hud-crafting-craft_all"))
.label_y(conrod_core::position::Relative::Scalar(1.0))
.label_color(if can_perform_all {
.label_color(if can_perform {
TEXT_COLOR
} else {
TEXT_GRAY_COLOR
})
.label_font_size(self.fonts.cyri.scale(12))
.label_font_id(self.fonts.cyri.conrod_id)
.image_color(if can_perform_all {
.image_color(if can_perform {
TEXT_COLOR
} else {
TEXT_GRAY_COLOR
})
.bottom_right_with_margins_on(state.ids.align_ing, -31.0, 15.0)
.bottom_right_with_margins_on(state.ids.align_ing, -31.0, 10.0)
.parent(state.ids.window_frame)
.set(state.ids.btn_craft_all, ui)
.was_clicked()
&& can_perform_all
{
if let (RecipeKind::Simple, Some(selected_recipe)) =
(recipe_kind, &state.selected_recipe)
&& can_perform
{
if let Some(selected_recipe) = &state.selected_recipe {
let amount = recipe.max_from_ingredients(self.inventory);
if amount > 0 {
events.push(Event::CraftRecipe {
@ -1755,11 +1783,11 @@ impl<'a> Widget for Crafting<'a> {
t.top_left_with_margins_on(state.ids.align_ing, 10.0, 5.0)
},
RecipeKind::ModularWeapon | RecipeKind::Component(_) => t
.down_from(state.ids.modular_art, 20.0)
.down_from(state.ids.modular_art, 25.0)
.x_place_on(state.ids.align_ing, Place::Start(Some(5.0))),
RecipeKind::Repair => t
.down_from(state.ids.repair_buttons[1], 20.0)
.x_place_on(state.ids.align_ing, Place::Start(Some(5.0))),
RecipeKind::Repair => {
t.top_left_with_margins_on(state.ids.align_ing, 80.0, 5.0)
},
})
.set(state.ids.req_station_title, ui);
let station_img = match recipe.craft_sprite {
@ -2013,15 +2041,7 @@ impl<'a> Widget for Crafting<'a> {
} else {
state.ids.ingredient_frame[i - 1]
};
// add a larger offset for the the first ingredient and the "Required Text
// for Catalysts/Tools"
let frame_offset = if i == 0 {
10.0
} else if amount == 0 {
5.0
} else {
0.0
};
let quality_col_img = match &item_def.quality() {
Quality::Low => self.imgs.inv_slot_grey,
Quality::Common => self.imgs.inv_slot,
@ -2034,9 +2054,9 @@ impl<'a> Widget for Crafting<'a> {
};
let frame = Image::new(quality_col_img).w_h(25.0, 25.0);
let frame = if amount == 0 {
frame.down_from(state.ids.req_text[i], 10.0 + frame_offset)
frame.down_from(state.ids.req_text[i], 10.0)
} else {
frame.down_from(frame_pos, 10.0 + frame_offset)
frame.down_from(frame_pos, 10.0)
};
frame.set(state.ids.ingredient_frame[i], ui);
// Item button for auto search
@ -2087,9 +2107,9 @@ impl<'a> Widget for Crafting<'a> {
state.ids.ingredient_frame[i - 1]
};
Text::new(&self.localized_strings.get_msg("hud-crafting-tool_cata"))
.down_from(ref_widget, 20.0)
.down_from(ref_widget, 10.0)
.font_id(self.fonts.cyri.conrod_id)
.font_size(self.fonts.cyri.scale(14))
.font_size(self.fonts.cyri.scale(18))
.color(TEXT_COLOR)
.set(state.ids.req_text[i], ui);