diff --git a/lang/cs.lang b/lang/cs.lang index 067e760..8eaa416 100644 --- a/lang/cs.lang +++ b/lang/cs.lang @@ -884,7 +884,7 @@ room.forge = Kovárna tool.forge.label = Kovárna tool.forge.desc = Tvorové tu vyrábějí pasti a dveře - práce, žádné zlato. Hotové kusy čekají v bednách, dokud je čertík nenainstaluje. Kvůli kovárně od 6 políček přicházejí coglingové. unit.cogling = Cogling -cat.traps = Pasti +cat.traps = Stavby cost.work = {0} práce v kovárně job.forge = Kuje job.install = Instaluje past diff --git a/lang/da.lang b/lang/da.lang index 2236d7e..061e2b9 100644 --- a/lang/da.lang +++ b/lang/da.lang @@ -883,7 +883,7 @@ room.forge = Smedje tool.forge.label = Smedje tool.forge.desc = Væsner fremstiller fælder og døre her - arbejde, intet guld. Færdige stykker venter i kasser, til en imp installerer dem. Tandhjulinger kommer for en smedje på 6+ felter. unit.cogling = Tandhjuling -cat.traps = Fælder +cat.traps = Byg cost.work = {0} arbejde i smedjen job.forge = Smeder job.install = Installerer en fælde diff --git a/lang/de.lang b/lang/de.lang index 857bcbe..6b16562 100644 --- a/lang/de.lang +++ b/lang/de.lang @@ -883,7 +883,7 @@ room.forge = Schmiede tool.forge.label = Schmiede tool.forge.desc = Kreaturen fertigen hier Fallen und Türen - Arbeit, kein Gold. Fertige Stücke warten in Kisten, bis ein Imp sie einbaut. Coglinge kommen für eine Schmiede ab 6 Feldern. unit.cogling = Cogling -cat.traps = Fallen +cat.traps = Bauen cost.work = {0} Arbeit in der Schmiede job.forge = Schmiedet job.install = Baut eine Falle ein diff --git a/lang/el.lang b/lang/el.lang index 386746f..35de2ee 100644 --- a/lang/el.lang +++ b/lang/el.lang @@ -884,7 +884,7 @@ room.forge = Σιδηρουργείο tool.forge.label = Σιδηρουργ. tool.forge.desc = Εδώ τα πλάσματα κατασκευάζουν παγίδες και πόρτες - με δουλειά, όχι χρυσό. Τα έτοιμα κομμάτια περιμένουν σε κιβώτια ώσπου να τα εγκαταστήσει ένα δαιμονάκι. Οι Γραναζάκηδες έρχονται για σιδηρουργείο 6+ πλακιδίων. unit.cogling = Γραναζάκης -cat.traps = Παγίδες +cat.traps = Κατασκευή cost.work = {0} δουλειά στο σιδηρουργείο job.forge = Σφυρηλατεί job.install = Εγκαθιστά παγίδα diff --git a/lang/en.lang b/lang/en.lang index 3f6297c..f71e392 100644 --- a/lang/en.lang +++ b/lang/en.lang @@ -884,7 +884,7 @@ room.forge = Forge tool.forge.label = Forge tool.forge.desc = Creatures manufacture traps and doors here - work, no gold. Finished pieces wait in crates until an imp installs them. Coglings come for a forge of 6+ tiles. unit.cogling = Cogling -cat.traps = Traps +cat.traps = Build cost.work = {0} work in the forge job.forge = Forging job.install = Installing a trap diff --git a/lang/es.lang b/lang/es.lang index 764901b..1f99aec 100644 --- a/lang/es.lang +++ b/lang/es.lang @@ -876,7 +876,7 @@ room.forge = Forja tool.forge.label = Forja tool.forge.desc = Las criaturas fabrican aquí trampas y puertas: trabajo, no oro. Las piezas terminadas esperan en cajas hasta que un diablillo las instala. Con una forja de 6+ casillas vienen engranajillos. unit.cogling = Engranajillo -cat.traps = Trampas +cat.traps = Construir cost.work = {0} de trabajo en la forja job.forge = Forjando job.install = Instalando una trampa diff --git a/lang/fi.lang b/lang/fi.lang index 58605b7..b343303 100644 --- a/lang/fi.lang +++ b/lang/fi.lang @@ -884,7 +884,7 @@ room.forge = Paja tool.forge.label = Paja tool.forge.desc = Olennot valmistavat täällä ansoja ja ovia - työtä, ei kultaa. Valmiit kappaleet odottavat laatikoissa, kunnes piru asentaa ne. Rattaiset tulevat pajaan, jossa on 6+ ruutua. unit.cogling = Rattainen -cat.traps = Ansat +cat.traps = Rakenna cost.work = {0} työtä pajassa job.forge = Takoo job.install = Asentaa ansaa diff --git a/lang/hr.lang b/lang/hr.lang index dfe2b02..bd820b9 100644 --- a/lang/hr.lang +++ b/lang/hr.lang @@ -884,7 +884,7 @@ room.forge = Kovačnica tool.forge.label = Kovačnica tool.forge.desc = Stvorenja ovdje izrađuju zamke i vrata - rad, bez zlata. Gotovi komadi čekaju u sanducima dok ih vražić ne postavi. Zupčići dolaze zbog kovačnice od 6+ polja. unit.cogling = Zupčić -cat.traps = Zamke +cat.traps = Gradnja cost.work = {0} rada u kovačnici job.forge = Kuje job.install = Postavlja zamku diff --git a/lang/hu.lang b/lang/hu.lang index 9024cfa..8027492 100644 --- a/lang/hu.lang +++ b/lang/hu.lang @@ -884,7 +884,7 @@ room.forge = Kohó tool.forge.label = Kohó tool.forge.desc = Itt gyártanak a lények csapdákat és ajtókat - munkával, arany nélkül. A kész darabok ládákban várnak, amíg egy manó be nem szereli őket. Egy 6+ mezős kohóért fogasmanók jönnek. unit.cogling = Fogasmanó -cat.traps = Csapdák +cat.traps = Építés cost.work = {0} munka a kohóban job.forge = Kovácsol job.install = Csapdát szerel be diff --git a/lang/it.lang b/lang/it.lang index 65b47fc..bd3686e 100644 --- a/lang/it.lang +++ b/lang/it.lang @@ -876,7 +876,7 @@ room.forge = Fucina tool.forge.label = Fucina tool.forge.desc = Le creature fabbricano qui trappole e porte - lavoro, niente oro. I pezzi finiti aspettano in casse finché un imp non li installa. Gli Ingranotti vengono per una fucina di 6+ caselle. unit.cogling = Ingranotto -cat.traps = Trappole +cat.traps = Costruire cost.work = {0} di lavoro in fucina job.forge = Forgia job.install = Installa una trappola diff --git a/lang/nl.lang b/lang/nl.lang index a1b7717..bcb0f5a 100644 --- a/lang/nl.lang +++ b/lang/nl.lang @@ -884,7 +884,7 @@ room.forge = Smederij tool.forge.label = Smederij tool.forge.desc = Wezens maken hier vallen en deuren - werk, geen goud. Afgewerkte stukken wachten in kisten tot een imp ze plaatst. Tandwielers komen voor een smederij van 6+ vakken. unit.cogling = Tandwieler -cat.traps = Vallen +cat.traps = Bouwen cost.work = {0} werk in de smederij job.forge = Smeedt job.install = Plaatst een val diff --git a/lang/no.lang b/lang/no.lang index 6b388d0..e1b690c 100644 --- a/lang/no.lang +++ b/lang/no.lang @@ -883,7 +883,7 @@ room.forge = Smie tool.forge.label = Smie tool.forge.desc = Skapninger lager feller og dører her - arbeid, ikke gull. Ferdige stykker venter i kasser til en imp installerer dem. Tannhjulinger kommer for en smie på 6+ ruter. unit.cogling = Tannhjuling -cat.traps = Feller +cat.traps = Bygg cost.work = {0} arbeid i smia job.forge = Smir job.install = Installerer en felle diff --git a/lang/pt.lang b/lang/pt.lang index d004ddf..1bdb65d 100644 --- a/lang/pt.lang +++ b/lang/pt.lang @@ -884,7 +884,7 @@ room.forge = Forja tool.forge.label = Forja tool.forge.desc = As criaturas fabricam aqui armadilhas e portas - trabalho, sem ouro. As peças prontas esperam em caixotes até um diabrete as instalar. Com uma forja de 6+ casas, vêm Engrenitos. unit.cogling = Engrenito -cat.traps = Armadilhas +cat.traps = Construir cost.work = {0} de trabalho na forja job.forge = A forjar job.install = A instalar uma armadilha diff --git a/lang/ro.lang b/lang/ro.lang index 3d3eeca..0adb254 100644 --- a/lang/ro.lang +++ b/lang/ro.lang @@ -884,7 +884,7 @@ room.forge = Forjă tool.forge.label = Forjă tool.forge.desc = Creaturile fabrică aici capcane și uși - muncă, nu aur. Piesele terminate așteaptă în lăzi până le montează un drăcușor. Rotițarii vin pentru o forjă de 6+ dale. unit.cogling = Rotițar -cat.traps = Capcane +cat.traps = Construcții cost.work = {0} muncă în forjă job.forge = Forjează job.install = Montează o capcană diff --git a/lang/ru.lang b/lang/ru.lang index 5baae99..127c014 100644 --- a/lang/ru.lang +++ b/lang/ru.lang @@ -876,7 +876,7 @@ room.forge = Кузница tool.forge.label = Кузница tool.forge.desc = Здесь существа делают ловушки и двери - за работу, не за золото. Готовые изделия ждут в ящиках, пока бесёнок их не установит. На кузницу от 6 клеток приходят шестерёнки. unit.cogling = Шестерёнок -cat.traps = Ловушки +cat.traps = Постройки cost.work = {0} работы в кузнице job.forge = Куёт job.install = Ставит ловушку diff --git a/lang/sk.lang b/lang/sk.lang index bf88863..b4f057e 100644 --- a/lang/sk.lang +++ b/lang/sk.lang @@ -884,7 +884,7 @@ room.forge = Vyhňa tool.forge.label = Vyhňa tool.forge.desc = Tvory tu vyrábajú pasce a dvere - práca, žiadne zlato. Hotové kusy čakajú v debnách, kým ich čertík nenainštaluje. Kvôli vyhni od 6 políčok prichádzajú coglingovia. unit.cogling = Cogling -cat.traps = Pasce +cat.traps = Stavby cost.work = {0} práce vo vyhni job.forge = Kuje job.install = Inštaluje pascu diff --git a/lang/sr.lang b/lang/sr.lang index 9f2b9bf..6b4193f 100644 --- a/lang/sr.lang +++ b/lang/sr.lang @@ -884,7 +884,7 @@ room.forge = Ковачница tool.forge.label = Ковачница tool.forge.desc = Створења овде израђују замке и врата - рад, без злата. Готови комади чекају у сандуцима док их ђаволак не постави. Зупчићи долазе због ковачнице од 6+ поља. unit.cogling = Зупчић -cat.traps = Замке +cat.traps = Градња cost.work = {0} рада у ковачници job.forge = Кује job.install = Поставља замку diff --git a/lang/sv.lang b/lang/sv.lang index 0a09623..7fecc31 100644 --- a/lang/sv.lang +++ b/lang/sv.lang @@ -884,7 +884,7 @@ room.forge = Smedja tool.forge.label = Smedja tool.forge.desc = Varelser tillverkar fällor och dörrar här - arbete, inget guld. Färdiga delar väntar i lådor tills en hob installerar dem. Kugglingar kommer för en smedja på 6+ rutor. unit.cogling = Kuggling -cat.traps = Fällor +cat.traps = Bygg cost.work = {0} arbete i smedjan job.forge = Smider job.install = Installerar en fälla diff --git a/src/campaign.rs b/src/campaign.rs index df8f1ad..88bc586 100644 --- a/src/campaign.rs +++ b/src/campaign.rs @@ -10,7 +10,7 @@ use serde::{Deserialize, Serialize}; // From which mission (0-based) on each tool is available (same order as ui::TOOLS): // dig, hand, treasury, lair, farm, training, library, sell, flag, lightning, heal, imp, // torture, temple, arrow tower, cannon tower, magic tower, bridge, aerie, steel -pub const TOOL_UNLOCK: [usize; 47] = [0, 0, 0, 0, 0, 2, 5, 0, 0, 3, 5, 0, 8, 12, 3, 7, 12, 1, 8, 17, 0, 7, 7, 10, 12, 12, 7, 16, 16, 7, 10, 16, 9, 13, 6, 10, 14, 17, 19, 22, 9, 13, 6, 11, 18, 0, 0]; +pub const TOOL_UNLOCK: [usize; crate::ui::TOOLS.len()] = [0, 0, 0, 0, 0, 2, 5, 0, 0, 3, 5, 0, 8, 12, 3, 7, 12, 1, 8, 17, 0, 7, 7, 10, 12, 12, 7, 16, 16, 7, 10, 16, 9, 13, 6, 10, 14, 17, 19, 22, 9, 13, 6, 11, 18, 0, 0, 17, 16, 7, 13, 17]; pub struct FortDef { pub at: (f32, f32), // centre as a fraction of the map size diff --git a/src/research.rs b/src/research.rs index 0d9f6d0..45925bd 100644 --- a/src/research.rs +++ b/src/research.rs @@ -207,6 +207,14 @@ mod tests { assert!(!g.can_research(31), "magic doors are far away"); } + #[test] + fn siege_engines_are_not_known_in_the_first_missions() { + let g = crate::campaign::start_mission(0, None); + for t in [19, 47, 48, 50, 51] { + assert!(!g.tool_allowed(t), "tool {} known in mission 1", t); + } + } + #[test] fn once_everything_is_known_the_library_raises_room_levels() { let mut g = Game::new(9, 64, 64); diff --git a/src/ui.rs b/src/ui.rs index b521762..14fac58 100644 --- a/src/ui.rs +++ b/src/ui.rs @@ -446,9 +446,9 @@ pub const CATS: [(&str, &[usize]); 7] = [ ("cat.hand", &[1]), ("cat.rooms", &[2, 3, 4, 5, 6, 12, 40, 13, 18, 21, 41, 42, 43, 44, 17, 47, 49]), ("cat.towers", &[14, 15, 16, 20]), - ("cat.traps", &[22, 23, 24, 25, 26, 27, 28, 29, 30, 31]), + ("cat.traps", &[22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 19, 50, 51]), ("cat.spells", &[9, 10, 11, 32, 33, 34, 35, 36, 37, 38, 39, 48]), - ("cat.orders", &[8, 45, 46, 7, 19, 50, 51]), + ("cat.orders", &[8, 45, 46, 7]), ]; #[derive(Clone, Copy, PartialEq, Debug)] @@ -1156,7 +1156,7 @@ impl Ui { hover_tool = Some(i); } let key = if touch_ui() { "" } else { keys[i].as_str() }; - let r = tool_button(bx, by, bw, ti.icon, key, &ti.label, self.tool == TOOLS[i], hovered, !g.tool_allowed(i)); + let r = tool_button(bx, by, bw, ti.icon, key, &ti.label, self.tool == TOOLS[i], hovered, !g.tool_allowed(i) || (matches!(TOOLS[i], Tool::Siege(_)) && g.forge_tiles() == 0)); self.touch_btns.push((r, TBtn::Tool(i))); } popup_top = py0;