Drawbridges (down, up, automatic), frost spell and obsidian over cooled lava
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
76c23a06f0
commit
34b4640d85
32 files changed
+869
-31
No files matched your search
+5
-2
@@ -3,7 +3,7 @@
|
|||||||
Agreed on 2026-11-05. Worked through in this order; every block is committed, pushed and deployed
|
Agreed on 2026-11-05. Worked through in this order; every block is committed, pushed and deployed
|
||||||
on its own. Details not listed here are decided along the way.
|
on its own. Details not listed here are decided along the way.
|
||||||
|
|
||||||
## 1. Open items
|
## 1. Open items – done (v202611-00035)
|
||||||
|
|
||||||
1. **Heroes attack every master** – with rival masters or several players, each hero wave marches
|
1. **Heroes attack every master** – with rival masters or several players, each hero wave marches
|
||||||
to the heart of the *strongest* living master (most creatures and gold), not only the player's.
|
to the heart of the *strongest* living master (most creatures and gold), not only the player's.
|
||||||
@@ -14,7 +14,7 @@ on its own. Details not listed here are decided along the way.
|
|||||||
the reached mission; the host keeps the progress.
|
the reached mission; the host keeps the progress.
|
||||||
4. **New screenshots** – title demo, language dropdown, co-op campaign.
|
4. **New screenshots** – title demo, language dropdown, co-op campaign.
|
||||||
|
|
||||||
## 2. Bridges
|
## 2. Bridges – done (v202611-00036)
|
||||||
|
|
||||||
Stone bridges over lava exist already (75 gold per tile).
|
Stone bridges over lava exist already (75 gold per tile).
|
||||||
|
|
||||||
@@ -27,6 +27,9 @@ Stone bridges over lava exist already (75 gold per tile).
|
|||||||
4. **Repairing bridges** – imps repair damaged bridges; knights wear bridges down step by step
|
4. **Repairing bridges** – imps repair damaged bridges; knights wear bridges down step by step
|
||||||
instead of in one blow.
|
instead of in one blow.
|
||||||
|
|
||||||
|
Built as: `src/bridges.rs` (fire, wear, drawbridges, obsidian), the *Drawbridge* tool (click: down → up →
|
||||||
|
automatic) and the *Frost* spell (lava → obsidian for 40 s); the frost glow trap keeps lava next to it cooled.
|
||||||
|
|
||||||
## 3. The surface world
|
## 3. The surface world
|
||||||
|
|
||||||
1. **Surface terrain** – grass, trees, paths, daylight and sky. Trees act like earth: imps fell
|
1. **Surface terrain** – grass, trees, paths, daylight and sky. Trees act like earth: imps fell
|
||||||
|
|||||||
@@ -399,6 +399,9 @@ help.start_touch = Klepni pro start
|
|||||||
tool.bridge.label = Most
|
tool.bridge.label = Most
|
||||||
tool.bridge.name = Postavit most
|
tool.bridge.name = Postavit most
|
||||||
tool.bridge.desc = Postaví most přes vodu nebo lávu. Táhni z vlastní země přes řeku; most roste políčko po políčku od tvého území.
|
tool.bridge.desc = Postaví most přes vodu nebo lávu. Táhni z vlastní země přes řeku; most roste políčko po políčku od tvého území.
|
||||||
|
tool.drawbridge.label = Padací most
|
||||||
|
tool.drawbridge.name = Postavit padací most
|
||||||
|
tool.drawbridge.desc = Most, který můžeš vytáhnout: táhni přes řeku a postav ho, kliknutím přepínáš: dole, nahoře, automaticky (zvedne se, když se blíží nepřátelé). Dřevo nad vodou hoří, kámen nad lávou ne.
|
||||||
cost.bridge = {0} zlata/políčko přes vodu, {1} přes lávu
|
cost.bridge = {0} zlata/políčko přes vodu, {1} přes lávu
|
||||||
hint.bridge_where = Mosty musí začínat na tvé zemi: táhni ze svého území přes řeku.
|
hint.bridge_where = Mosty musí začínat na tvé zemi: táhni ze svého území přes řeku.
|
||||||
hint.bridge_fire = Dřevěné mosty hoří: drž ohnivé pasti, ohnivý dech a blesky dál od nich – kamenné mosty nad lávou nehoří.
|
hint.bridge_fire = Dřevěné mosty hoří: drž ohnivé pasti, ohnivý dech a blesky dál od nich – kamenné mosty nad lávou nehoří.
|
||||||
@@ -411,6 +414,15 @@ tile.lava = Láva
|
|||||||
tile.lava_info = Co do ní spadne, shoří. Přecházejí ji kamenné mosty.
|
tile.lava_info = Co do ní spadne, shoří. Přecházejí ji kamenné mosty.
|
||||||
tile.bridge = Dřevěný most
|
tile.bridge = Dřevěný most
|
||||||
tile.lavabridge = Kamenný most
|
tile.lavabridge = Kamenný most
|
||||||
|
tile.drawbridge = Padací most
|
||||||
|
tile.drawbridge_up = Vytažený
|
||||||
|
tile.drawbridge_down = Spuštěný
|
||||||
|
tile.drawbridge_auto = Automaticky (dole)
|
||||||
|
tile.drawbridge_auto_up = Automaticky (nahoře)
|
||||||
|
tile.obsidian = Obsidián
|
||||||
|
tile.obsidian_info = Ztuhlá láva – roztaje za {0} s
|
||||||
|
tile.bridge_burning = Hoří!
|
||||||
|
tile.bridge_worn = Poškozený {0}%
|
||||||
tile.shard = Střep tvého jádra duše
|
tile.shard = Střep tvého jádra duše
|
||||||
tile.shard_info = Zaber tuto komnatu a získáš střep zpět.
|
tile.shard_info = Zaber tuto komnatu a získáš střep zpět.
|
||||||
|
|
||||||
@@ -433,6 +445,10 @@ msg.vault_taken = Rytířský trezor dobyt: poklad v hodnotě {0} je tvůj.
|
|||||||
msg.shard_taken = Střep tvého jádra duše je zpět v tvých rukou!
|
msg.shard_taken = Střep tvého jádra duše je zpět v tvých rukou!
|
||||||
msg.bridge_torn = Rytíři strhli jeden z tvých mostů!
|
msg.bridge_torn = Rytíři strhli jeden z tvých mostů!
|
||||||
msg.bridge_fire = Jeden z tvých mostů hoří!
|
msg.bridge_fire = Jeden z tvých mostů hoří!
|
||||||
|
msg.drawbridge_up = Padací most je vytažený.
|
||||||
|
msg.drawbridge_down = Padací most je spuštěný.
|
||||||
|
msg.drawbridge_auto = Padací most se sám zvedne, když se blíží nepřátelé.
|
||||||
|
msg.drawbridge_rises = Blíží se nepřátelé: padací most se zvedá!
|
||||||
job.tear_bridge = Strhává most
|
job.tear_bridge = Strhává most
|
||||||
job.patrol = Na hlídce
|
job.patrol = Na hlídce
|
||||||
job.guard = Na stráži
|
job.guard = Na stráži
|
||||||
@@ -804,6 +820,7 @@ best.b.torture.text = Sem končí zajatí hrdinové. S časem a žalářníkem n
|
|||||||
best.b.temple.text = Modlitby léčí jádro duše a drží dobrou náladu. Kvůli chrámu přichází plamenná kněžka.
|
best.b.temple.text = Modlitby léčí jádro duše a drží dobrou náladu. Kvůli chrámu přichází plamenná kněžka.
|
||||||
best.b.aerie.text = Bidla a hnízda pro létající tvory. Netopýři, chrliči, sovy i žhavý drak tu potřebují místo.
|
best.b.aerie.text = Bidla a hnízda pro létající tvory. Netopýři, chrliči, sovy i žhavý drak tu potřebují místo.
|
||||||
best.b.bridge.text = Dřevo přes vodu, kámen přes lávu. Rytíři tvé mosty strhávají - zaber ty jejich.
|
best.b.bridge.text = Dřevo přes vodu, kámen přes lávu. Rytíři tvé mosty strhávají - zaber ty jejich.
|
||||||
|
best.b.drawbridge.text = Vytažený most dělá z řeky opět zeď. V automatickém režimu se zvedne, když se blíží nepřátelé – a spustí se pro tvé bytosti.
|
||||||
best.b.steel.text = Nýtované železné pláty na zpevněné zdi. Nikdo se rychle neprokope, ani trpaslíci.
|
best.b.steel.text = Nýtované železné pláty na zpevněné zdi. Nikdo se rychle neprokope, ani trpaslíci.
|
||||||
best.b.arrow.text = Šíp prolétne až dvěma dalšími nepřáteli za cílem. Levná a spolehlivá.
|
best.b.arrow.text = Šíp prolétne až dvěma dalšími nepřáteli za cílem. Levná a spolehlivá.
|
||||||
best.b.cannon.text = Plošné poškození a odhození - natlač rytíře do lávy.
|
best.b.cannon.text = Plošné poškození a odhození - natlač rytíře do lávy.
|
||||||
@@ -929,6 +946,9 @@ tool.plague.desc = Nemoc, která užírá nepřátele kolem místa a přeskakuje
|
|||||||
tool.quake.label = Otřes
|
tool.quake.label = Otřes
|
||||||
tool.quake.name = Zemětřesení
|
tool.quake.name = Zemětřesení
|
||||||
tool.quake.desc = Země se otřese: nepřátelé kolem místa jsou zraněni a na dvě sekundy omráčeni. Tví tvorové se udrží na nohou.
|
tool.quake.desc = Země se otřese: nepřátelé kolem místa jsou zraněni a na dvě sekundy omráčeni. Tví tvorové se udrží na nohou.
|
||||||
|
tool.freeze.label = Mráz
|
||||||
|
tool.freeze.name = Mráz
|
||||||
|
tool.freeze.desc = Ledová zima: láva kolem místa na 40 sekund ztuhne v průchozí obsidián, nepřátelé jsou podchlazení a zpomalení.
|
||||||
tile.unexplored = Neprozkoumaná temnota
|
tile.unexplored = Neprozkoumaná temnota
|
||||||
|
|
||||||
# personality
|
# personality
|
||||||
|
|||||||
@@ -398,6 +398,9 @@ help.start_touch = Tryk for at starte
|
|||||||
tool.bridge.label = Bro
|
tool.bridge.label = Bro
|
||||||
tool.bridge.name = Byg bro
|
tool.bridge.name = Byg bro
|
||||||
tool.bridge.desc = Bygger en bro over vand eller lava. Træk fra din egen jord hen over floden; broen vokser felt for felt fra dit område.
|
tool.bridge.desc = Bygger en bro over vand eller lava. Træk fra din egen jord hen over floden; broen vokser felt for felt fra dit område.
|
||||||
|
tool.drawbridge.label = Vindebro
|
||||||
|
tool.drawbridge.name = Byg vindebro
|
||||||
|
tool.drawbridge.desc = En bro du kan hejse op: træk over floden for at bygge den, klik for at skifte: nede, oppe, automatisk (hejses når fjender nærmer sig). Træ over vand brænder, sten over lava gør ikke.
|
||||||
cost.bridge = {0} guld/felt over vand, {1} over lava
|
cost.bridge = {0} guld/felt over vand, {1} over lava
|
||||||
hint.bridge_where = Broer skal starte på din egen jord: træk fra dit område hen over floden.
|
hint.bridge_where = Broer skal starte på din egen jord: træk fra dit område hen over floden.
|
||||||
hint.bridge_fire = Træbroer brænder: hold ildfælder, ildånde og lyn væk fra dem – stenbroer over lava er brandsikre.
|
hint.bridge_fire = Træbroer brænder: hold ildfælder, ildånde og lyn væk fra dem – stenbroer over lava er brandsikre.
|
||||||
@@ -410,6 +413,15 @@ tile.lava = Lava
|
|||||||
tile.lava_info = Hvad der falder i, brænder. Stenbroer fører over.
|
tile.lava_info = Hvad der falder i, brænder. Stenbroer fører over.
|
||||||
tile.bridge = Træbro
|
tile.bridge = Træbro
|
||||||
tile.lavabridge = Stenbro
|
tile.lavabridge = Stenbro
|
||||||
|
tile.drawbridge = Vindebro
|
||||||
|
tile.drawbridge_up = Hejst op
|
||||||
|
tile.drawbridge_down = Sænket
|
||||||
|
tile.drawbridge_auto = Automatisk (nede)
|
||||||
|
tile.drawbridge_auto_up = Automatisk (oppe)
|
||||||
|
tile.obsidian = Obsidian
|
||||||
|
tile.obsidian_info = Afkølet lava – smelter om {0} s
|
||||||
|
tile.bridge_burning = Brænder!
|
||||||
|
tile.bridge_worn = Beskadiget {0}%
|
||||||
tile.shard = Splint af din sjælekerne
|
tile.shard = Splint af din sjælekerne
|
||||||
tile.shard_info = Indtag dette kammer for at tage splinten tilbage.
|
tile.shard_info = Indtag dette kammer for at tage splinten tilbage.
|
||||||
|
|
||||||
@@ -432,6 +444,10 @@ msg.vault_taken = Riddernes boks indtaget: skatte til en værdi af {0} er dine.
|
|||||||
msg.shard_taken = En splint af din sjælekerne er tilbage i dine hænder!
|
msg.shard_taken = En splint af din sjælekerne er tilbage i dine hænder!
|
||||||
msg.bridge_torn = Ridderne har revet en af dine broer ned!
|
msg.bridge_torn = Ridderne har revet en af dine broer ned!
|
||||||
msg.bridge_fire = En af dine broer brænder!
|
msg.bridge_fire = En af dine broer brænder!
|
||||||
|
msg.drawbridge_up = Vindebroen er hejst op.
|
||||||
|
msg.drawbridge_down = Vindebroen er sænket.
|
||||||
|
msg.drawbridge_auto = Vindebroen hejses af sig selv, når fjender nærmer sig.
|
||||||
|
msg.drawbridge_rises = Fjender nærmer sig: en vindebro hejses!
|
||||||
job.tear_bridge = River en bro ned
|
job.tear_bridge = River en bro ned
|
||||||
job.patrol = På patrulje
|
job.patrol = På patrulje
|
||||||
job.guard = På vagt
|
job.guard = På vagt
|
||||||
@@ -803,6 +819,7 @@ best.b.torture.text = Tilfangetagne helte ender her. Med tid og en fangevogter s
|
|||||||
best.b.temple.text = Bønner heler sjælekernen og holder humøret oppe. Flammepræstinden kommer for et tempel.
|
best.b.temple.text = Bønner heler sjælekernen og holder humøret oppe. Flammepræstinden kommer for et tempel.
|
||||||
best.b.aerie.text = Siddepinde og reder til flyvende væsner. Flagermus, gargoyler, ugler og selv glødelindormen skal have plads her.
|
best.b.aerie.text = Siddepinde og reder til flyvende væsner. Flagermus, gargoyler, ugler og selv glødelindormen skal have plads her.
|
||||||
best.b.bridge.text = Træ over vand, sten over lava. Ridderne river dine broer ned - indtag deres.
|
best.b.bridge.text = Træ over vand, sten over lava. Ridderne river dine broer ned - indtag deres.
|
||||||
|
best.b.drawbridge.text = Hejst op er floden igen en mur. På automatisk hejses den, når fjender nærmer sig – og sænkes for dine egne væsner.
|
||||||
best.b.steel.text = Nittede jernplader på en forstærket mur. Ingen graver sig hurtigt igennem, ikke engang dværge.
|
best.b.steel.text = Nittede jernplader på en forstærket mur. Ingen graver sig hurtigt igennem, ikke engang dværge.
|
||||||
best.b.arrow.text = Pilen gennemborer op til to fjender mere bag målet. Billigt og pålideligt.
|
best.b.arrow.text = Pilen gennemborer op til to fjender mere bag målet. Billigt og pålideligt.
|
||||||
best.b.cannon.text = Områdeskade og tilbageslag - skub ridderne i lavaen.
|
best.b.cannon.text = Områdeskade og tilbageslag - skub ridderne i lavaen.
|
||||||
@@ -928,6 +945,9 @@ tool.plague.desc = En sygdom, der æder fjenderne omkring stedet og springer fra
|
|||||||
tool.quake.label = Skælv
|
tool.quake.label = Skælv
|
||||||
tool.quake.name = Jordskælv
|
tool.quake.name = Jordskælv
|
||||||
tool.quake.desc = Jorden ryster: fjender omkring stedet såres og lammes i to sekunder. Dine væsner holder balancen.
|
tool.quake.desc = Jorden ryster: fjender omkring stedet såres og lammes i to sekunder. Dine væsner holder balancen.
|
||||||
|
tool.freeze.label = Frost
|
||||||
|
tool.freeze.name = Frost
|
||||||
|
tool.freeze.desc = Isnende kulde: lava omkring stedet køles til farbar obsidian i 40 sekunder, fjender bliver nedkølet og langsomme.
|
||||||
tile.unexplored = Uudforsket mørke
|
tile.unexplored = Uudforsket mørke
|
||||||
|
|
||||||
# personality
|
# personality
|
||||||
|
|||||||
@@ -398,6 +398,9 @@ help.start_touch = Tippen zum Starten
|
|||||||
tool.bridge.label = Brücke
|
tool.bridge.label = Brücke
|
||||||
tool.bridge.name = Brücke bauen
|
tool.bridge.name = Brücke bauen
|
||||||
tool.bridge.desc = Baut eine Brücke über Wasser oder Lava. Ziehe von deinem Gebiet aus über den Fluss; die Brücke wächst Feld für Feld von deinem Reich aus.
|
tool.bridge.desc = Baut eine Brücke über Wasser oder Lava. Ziehe von deinem Gebiet aus über den Fluss; die Brücke wächst Feld für Feld von deinem Reich aus.
|
||||||
|
tool.drawbridge.label = Zugbrücke
|
||||||
|
tool.drawbridge.name = Zugbrücke bauen
|
||||||
|
tool.drawbridge.desc = Eine Brücke, die du hochziehen kannst: Ziehe über den Fluss, um sie zu bauen, klicke sie an zum Umschalten: unten, oben, automatisch (hebt sich, wenn Feinde nahen). Holz über Wasser brennt, Stein über Lava nicht.
|
||||||
cost.bridge = {0} Gold/Feld über Wasser, {1} über Lava
|
cost.bridge = {0} Gold/Feld über Wasser, {1} über Lava
|
||||||
hint.bridge_where = Brücken müssen an deinem Gebiet beginnen: Ziehe von deinem Reich aus über den Fluss.
|
hint.bridge_where = Brücken müssen an deinem Gebiet beginnen: Ziehe von deinem Reich aus über den Fluss.
|
||||||
hint.bridge_fire = Holzbrücken brennen: Halte Feuerfallen, Feueratem und Blitze von ihnen fern – Steinbrücken über Lava sind feuerfest.
|
hint.bridge_fire = Holzbrücken brennen: Halte Feuerfallen, Feueratem und Blitze von ihnen fern – Steinbrücken über Lava sind feuerfest.
|
||||||
@@ -410,6 +413,15 @@ tile.lava = Lava
|
|||||||
tile.lava_info = Was hineinfällt, verbrennt. Steinbrücken führen hinüber.
|
tile.lava_info = Was hineinfällt, verbrennt. Steinbrücken führen hinüber.
|
||||||
tile.bridge = Holzbrücke
|
tile.bridge = Holzbrücke
|
||||||
tile.lavabridge = Steinbrücke
|
tile.lavabridge = Steinbrücke
|
||||||
|
tile.drawbridge = Zugbrücke
|
||||||
|
tile.drawbridge_up = Hochgezogen
|
||||||
|
tile.drawbridge_down = Herabgelassen
|
||||||
|
tile.drawbridge_auto = Automatisch (unten)
|
||||||
|
tile.drawbridge_auto_up = Automatisch (oben)
|
||||||
|
tile.obsidian = Obsidian
|
||||||
|
tile.obsidian_info = Erkaltete Lava – schmilzt in {0} s wieder
|
||||||
|
tile.bridge_burning = Brennt!
|
||||||
|
tile.bridge_worn = Beschädigt {0}%
|
||||||
tile.shard = Splitter deines Seelenkerns
|
tile.shard = Splitter deines Seelenkerns
|
||||||
tile.shard_info = Erobere diese Kammer, um den Splitter zurückzuholen.
|
tile.shard_info = Erobere diese Kammer, um den Splitter zurückzuholen.
|
||||||
|
|
||||||
@@ -432,6 +444,10 @@ msg.vault_taken = Ritterschatz erobert: Schätze im Wert von {0} gehören dir.
|
|||||||
msg.shard_taken = Ein Splitter deines Seelenkerns ist wieder in deiner Hand!
|
msg.shard_taken = Ein Splitter deines Seelenkerns ist wieder in deiner Hand!
|
||||||
msg.bridge_torn = Die Ritter haben eine deiner Brücken eingerissen!
|
msg.bridge_torn = Die Ritter haben eine deiner Brücken eingerissen!
|
||||||
msg.bridge_fire = Eine deiner Brücken brennt!
|
msg.bridge_fire = Eine deiner Brücken brennt!
|
||||||
|
msg.drawbridge_up = Die Zugbrücke ist hochgezogen.
|
||||||
|
msg.drawbridge_down = Die Zugbrücke ist herabgelassen.
|
||||||
|
msg.drawbridge_auto = Die Zugbrücke hebt sich von selbst, wenn Feinde nahen.
|
||||||
|
msg.drawbridge_rises = Feinde nahen: Eine Zugbrücke hebt sich!
|
||||||
job.tear_bridge = Reißt eine Brücke ein
|
job.tear_bridge = Reißt eine Brücke ein
|
||||||
job.patrol = Auf Patrouille
|
job.patrol = Auf Patrouille
|
||||||
job.guard = Hält Wache
|
job.guard = Hält Wache
|
||||||
@@ -803,6 +819,7 @@ best.b.torture.text = Gefangene Helden landen hier. Mit der Zeit und einem Kerke
|
|||||||
best.b.temple.text = Gebete heilen den Seelenkern und heben die Stimmung. Die Flammenpriesterin kommt für einen Tempel.
|
best.b.temple.text = Gebete heilen den Seelenkern und heben die Stimmung. Die Flammenpriesterin kommt für einen Tempel.
|
||||||
best.b.aerie.text = Sitzstangen und Nester für Flieger. Fledermäuse, Gargoyles, Eulen und sogar der Glutlindwurm brauchen hier Platz.
|
best.b.aerie.text = Sitzstangen und Nester für Flieger. Fledermäuse, Gargoyles, Eulen und sogar der Glutlindwurm brauchen hier Platz.
|
||||||
best.b.bridge.text = Holz über Wasser, Stein über Lava. Die Ritter reißen deine Brücken ein - nimm dir ihre.
|
best.b.bridge.text = Holz über Wasser, Stein über Lava. Die Ritter reißen deine Brücken ein - nimm dir ihre.
|
||||||
|
best.b.drawbridge.text = Hochgezogen ist der Fluss wieder eine Mauer. Auf Automatik hebt sie sich, sobald Feinde nahen – und senkt sich für deine eigenen Kreaturen.
|
||||||
best.b.steel.text = Genietete Eisenplatten auf einer verstärkten Mauer. Da gräbt sich keiner schnell durch, nicht einmal Zwerge.
|
best.b.steel.text = Genietete Eisenplatten auf einer verstärkten Mauer. Da gräbt sich keiner schnell durch, nicht einmal Zwerge.
|
||||||
best.b.arrow.text = Der Pfeil durchbohrt bis zu zwei weitere Feinde hinter dem Ziel. Billig und zuverlässig.
|
best.b.arrow.text = Der Pfeil durchbohrt bis zu zwei weitere Feinde hinter dem Ziel. Billig und zuverlässig.
|
||||||
best.b.cannon.text = Flächenschaden und Rückstoß - schieb die Ritter in die Lava.
|
best.b.cannon.text = Flächenschaden und Rückstoß - schieb die Ritter in die Lava.
|
||||||
@@ -928,6 +945,9 @@ tool.plague.desc = Eine Krankheit, die an den Feinden rund um die Stelle zehrt u
|
|||||||
tool.quake.label = Beben
|
tool.quake.label = Beben
|
||||||
tool.quake.name = Beben
|
tool.quake.name = Beben
|
||||||
tool.quake.desc = Der Boden bebt: Feinde rund um die Stelle werden verletzt und zwei Sekunden betäubt. Deine Kreaturen bleiben standfest.
|
tool.quake.desc = Der Boden bebt: Feinde rund um die Stelle werden verletzt und zwei Sekunden betäubt. Deine Kreaturen bleiben standfest.
|
||||||
|
tool.freeze.label = Frost
|
||||||
|
tool.freeze.name = Frost
|
||||||
|
tool.freeze.desc = Eisige Kälte: Lava rund um die Stelle erkaltet für 40 Sekunden zu begehbarem Obsidian, Feinde werden unterkühlt und verlangsamt.
|
||||||
tile.unexplored = Unerforschte Finsternis
|
tile.unexplored = Unerforschte Finsternis
|
||||||
|
|
||||||
# personality
|
# personality
|
||||||
|
|||||||
@@ -399,6 +399,9 @@ help.start_touch = Πάτησε για αρχή
|
|||||||
tool.bridge.label = Γέφυρα
|
tool.bridge.label = Γέφυρα
|
||||||
tool.bridge.name = Χτίσιμο Γέφυρας
|
tool.bridge.name = Χτίσιμο Γέφυρας
|
||||||
tool.bridge.desc = Χτίζει γέφυρα πάνω από νερό ή λάβα. Σύρε από το δικό σου έδαφος πέρα από το ποτάμι, η γέφυρα μεγαλώνει πλακίδιο-πλακίδιο από την επικράτειά σου.
|
tool.bridge.desc = Χτίζει γέφυρα πάνω από νερό ή λάβα. Σύρε από το δικό σου έδαφος πέρα από το ποτάμι, η γέφυρα μεγαλώνει πλακίδιο-πλακίδιο από την επικράτειά σου.
|
||||||
|
tool.drawbridge.label = Κινητή γέφυρα
|
||||||
|
tool.drawbridge.name = Χτίσε κινητή γέφυρα
|
||||||
|
tool.drawbridge.desc = Γέφυρα που μπορείς να σηκώσεις: σύρε πάνω από το ποτάμι για να τη χτίσεις, κάνε κλικ για αλλαγή: κάτω, πάνω, αυτόματα (σηκώνεται όταν πλησιάζουν εχθροί). Το ξύλο πάνω από νερό καίγεται, η πέτρα πάνω από λάβα όχι.
|
||||||
cost.bridge = {0} χρυσός/πλακίδιο πάνω από νερό, {1} πάνω από λάβα
|
cost.bridge = {0} χρυσός/πλακίδιο πάνω από νερό, {1} πάνω από λάβα
|
||||||
hint.bridge_where = Οι γέφυρες ξεκινούν από το δικό σου έδαφος: σύρε από την επικράτειά σου πέρα από το ποτάμι.
|
hint.bridge_where = Οι γέφυρες ξεκινούν από το δικό σου έδαφος: σύρε από την επικράτειά σου πέρα από το ποτάμι.
|
||||||
hint.bridge_fire = Οι ξύλινες γέφυρες καίγονται: κράτα μακριά παγίδες φωτιάς, πύρινη ανάσα και κεραυνούς – οι πέτρινες γέφυρες πάνω από λάβα δεν καίγονται.
|
hint.bridge_fire = Οι ξύλινες γέφυρες καίγονται: κράτα μακριά παγίδες φωτιάς, πύρινη ανάσα και κεραυνούς – οι πέτρινες γέφυρες πάνω από λάβα δεν καίγονται.
|
||||||
@@ -411,6 +414,15 @@ tile.lava = Λάβα
|
|||||||
tile.lava_info = Ό,τι πέφτει μέσα καίγεται. Οι πέτρινες γέφυρες την περνούν.
|
tile.lava_info = Ό,τι πέφτει μέσα καίγεται. Οι πέτρινες γέφυρες την περνούν.
|
||||||
tile.bridge = Ξύλινη γέφυρα
|
tile.bridge = Ξύλινη γέφυρα
|
||||||
tile.lavabridge = Πέτρινη γέφυρα
|
tile.lavabridge = Πέτρινη γέφυρα
|
||||||
|
tile.drawbridge = Κινητή γέφυρα
|
||||||
|
tile.drawbridge_up = Σηκωμένη
|
||||||
|
tile.drawbridge_down = Κατεβασμένη
|
||||||
|
tile.drawbridge_auto = Αυτόματα (κάτω)
|
||||||
|
tile.drawbridge_auto_up = Αυτόματα (πάνω)
|
||||||
|
tile.obsidian = Οψιδιανός
|
||||||
|
tile.obsidian_info = Κρυωμένη λάβα – λιώνει σε {0} δ
|
||||||
|
tile.bridge_burning = Καίγεται!
|
||||||
|
tile.bridge_worn = Φθορά {0}%
|
||||||
tile.shard = Θραύσμα του πυρήνα ψυχής σου
|
tile.shard = Θραύσμα του πυρήνα ψυχής σου
|
||||||
tile.shard_info = Κατάκτησε αυτόν τον θάλαμο για να πάρεις πίσω το θραύσμα.
|
tile.shard_info = Κατάκτησε αυτόν τον θάλαμο για να πάρεις πίσω το θραύσμα.
|
||||||
|
|
||||||
@@ -433,6 +445,10 @@ msg.vault_taken = Ιπποτικό θησαυροφυλάκιο κατελήφθ
|
|||||||
msg.shard_taken = Ένα θραύσμα του πυρήνα ψυχής σου είναι ξανά στα χέρια σου!
|
msg.shard_taken = Ένα θραύσμα του πυρήνα ψυχής σου είναι ξανά στα χέρια σου!
|
||||||
msg.bridge_torn = Οι ιππότες γκρέμισαν μία από τις γέφυρές σου!
|
msg.bridge_torn = Οι ιππότες γκρέμισαν μία από τις γέφυρές σου!
|
||||||
msg.bridge_fire = Μια από τις γέφυρές σου καίγεται!
|
msg.bridge_fire = Μια από τις γέφυρές σου καίγεται!
|
||||||
|
msg.drawbridge_up = Η κινητή γέφυρα είναι σηκωμένη.
|
||||||
|
msg.drawbridge_down = Η κινητή γέφυρα είναι κατεβασμένη.
|
||||||
|
msg.drawbridge_auto = Η κινητή γέφυρα σηκώνεται μόνη της όταν πλησιάζουν εχθροί.
|
||||||
|
msg.drawbridge_rises = Εχθροί κοντά: μια κινητή γέφυρα σηκώνεται!
|
||||||
job.tear_bridge = Γκρεμίζει γέφυρα
|
job.tear_bridge = Γκρεμίζει γέφυρα
|
||||||
job.patrol = Σε περιπολία
|
job.patrol = Σε περιπολία
|
||||||
job.guard = Σε φρουρά
|
job.guard = Σε φρουρά
|
||||||
@@ -804,6 +820,7 @@ best.b.torture.text = Εδώ καταλήγουν οι αιχμάλωτοι ήρ
|
|||||||
best.b.temple.text = Οι προσευχές γιατρεύουν τον πυρήνα ψυχής και κρατούν ψηλά το ηθικό. Η ιέρεια της φλόγας έρχεται για έναν ναό.
|
best.b.temple.text = Οι προσευχές γιατρεύουν τον πυρήνα ψυχής και κρατούν ψηλά το ηθικό. Η ιέρεια της φλόγας έρχεται για έναν ναό.
|
||||||
best.b.aerie.text = Κούρνιες και φωλιές για ιπτάμενα πλάσματα. Νυχτερίδες, γκάργκοϊλ, κουκουβάγιες, ακόμη και ο δράκος της θράκας χρειάζονται χώρο εδώ.
|
best.b.aerie.text = Κούρνιες και φωλιές για ιπτάμενα πλάσματα. Νυχτερίδες, γκάργκοϊλ, κουκουβάγιες, ακόμη και ο δράκος της θράκας χρειάζονται χώρο εδώ.
|
||||||
best.b.bridge.text = Ξύλο πάνω από νερό, πέτρα πάνω από λάβα. Οι ιππότες γκρεμίζουν τις γέφυρές σου - κατάκτησε τις δικές τους.
|
best.b.bridge.text = Ξύλο πάνω από νερό, πέτρα πάνω από λάβα. Οι ιππότες γκρεμίζουν τις γέφυρές σου - κατάκτησε τις δικές τους.
|
||||||
|
best.b.drawbridge.text = Σηκωμένη, το ποτάμι γίνεται ξανά τείχος. Στο αυτόματο σηκώνεται όταν πλησιάζουν εχθροί – και κατεβαίνει για τα δικά σου πλάσματα.
|
||||||
best.b.steel.text = Καρφωμένες σιδερένιες πλάκες πάνω σε ενισχυμένο τοίχο. Κανείς δεν σκάβει γρήγορα από μέσα, ούτε καν οι νάνοι.
|
best.b.steel.text = Καρφωμένες σιδερένιες πλάκες πάνω σε ενισχυμένο τοίχο. Κανείς δεν σκάβει γρήγορα από μέσα, ούτε καν οι νάνοι.
|
||||||
best.b.arrow.text = Το βέλος διαπερνά έως δύο ακόμη εχθρούς πίσω από τον στόχο. Φθηνός και αξιόπιστος.
|
best.b.arrow.text = Το βέλος διαπερνά έως δύο ακόμη εχθρούς πίσω από τον στόχο. Φθηνός και αξιόπιστος.
|
||||||
best.b.cannon.text = Ζημιά περιοχής και απώθηση - σπρώξε τους ιππότες στη λάβα.
|
best.b.cannon.text = Ζημιά περιοχής και απώθηση - σπρώξε τους ιππότες στη λάβα.
|
||||||
@@ -929,6 +946,9 @@ tool.plague.desc = Μια αρρώστια που κατατρώει τους ε
|
|||||||
tool.quake.label = Σεισμός
|
tool.quake.label = Σεισμός
|
||||||
tool.quake.name = Σεισμός
|
tool.quake.name = Σεισμός
|
||||||
tool.quake.desc = Η γη σείεται: οι εχθροί γύρω από το σημείο πληγώνονται και ζαλίζονται για δύο δευτερόλεπτα. Τα πλάσματά σου μένουν όρθια.
|
tool.quake.desc = Η γη σείεται: οι εχθροί γύρω από το σημείο πληγώνονται και ζαλίζονται για δύο δευτερόλεπτα. Τα πλάσματά σου μένουν όρθια.
|
||||||
|
tool.freeze.label = Παγετός
|
||||||
|
tool.freeze.name = Παγετός
|
||||||
|
tool.freeze.desc = Παγωμένο κρύο: η λάβα γύρω από το σημείο κρυώνει σε βατό οψιδιανό για 40 δευτερόλεπτα, οι εχθροί παγώνουν και επιβραδύνονται.
|
||||||
tile.unexplored = Ανεξερεύνητο σκοτάδι
|
tile.unexplored = Ανεξερεύνητο σκοτάδι
|
||||||
|
|
||||||
# personality
|
# personality
|
||||||
|
|||||||
@@ -399,6 +399,9 @@ help.start_touch = Tap to start
|
|||||||
tool.bridge.label = Bridge
|
tool.bridge.label = Bridge
|
||||||
tool.bridge.name = Build Bridge
|
tool.bridge.name = Build Bridge
|
||||||
tool.bridge.desc = Builds a bridge over water or lava. Drag from your own ground across the river; the bridge grows tile by tile from your territory.
|
tool.bridge.desc = Builds a bridge over water or lava. Drag from your own ground across the river; the bridge grows tile by tile from your territory.
|
||||||
|
tool.drawbridge.label = Drawbridge
|
||||||
|
tool.drawbridge.name = Build Drawbridge
|
||||||
|
tool.drawbridge.desc = A bridge you can raise: drag across the river to build it, click it to switch: down, up, automatic (rises when enemies come near). Wood over water burns, stone over lava does not.
|
||||||
cost.bridge = {0} gold/tile over water, {1} over lava
|
cost.bridge = {0} gold/tile over water, {1} over lava
|
||||||
hint.bridge_where = Bridges must start at your own ground: drag from your territory across the river.
|
hint.bridge_where = Bridges must start at your own ground: drag from your territory across the river.
|
||||||
hint.bridge_fire = Wooden bridges burn: keep fire traps, fire breath and lightning away from them – stone bridges over lava are fireproof.
|
hint.bridge_fire = Wooden bridges burn: keep fire traps, fire breath and lightning away from them – stone bridges over lava are fireproof.
|
||||||
@@ -411,6 +414,15 @@ tile.lava = Lava
|
|||||||
tile.lava_info = Whatever falls in burns. Stone bridges cross it.
|
tile.lava_info = Whatever falls in burns. Stone bridges cross it.
|
||||||
tile.bridge = Wooden bridge
|
tile.bridge = Wooden bridge
|
||||||
tile.lavabridge = Stone bridge
|
tile.lavabridge = Stone bridge
|
||||||
|
tile.drawbridge = Drawbridge
|
||||||
|
tile.drawbridge_up = Raised
|
||||||
|
tile.drawbridge_down = Lowered
|
||||||
|
tile.drawbridge_auto = Automatic (down)
|
||||||
|
tile.drawbridge_auto_up = Automatic (up)
|
||||||
|
tile.obsidian = Obsidian
|
||||||
|
tile.obsidian_info = Cooled lava – melts again in {0} s
|
||||||
|
tile.bridge_burning = Burning!
|
||||||
|
tile.bridge_worn = Worn {0}%
|
||||||
tile.shard = Shard of your soul core
|
tile.shard = Shard of your soul core
|
||||||
tile.shard_info = Claim this chamber to take the shard back.
|
tile.shard_info = Claim this chamber to take the shard back.
|
||||||
|
|
||||||
@@ -433,6 +445,10 @@ msg.vault_taken = Knight vault taken: {0} worth of treasure is yours.
|
|||||||
msg.shard_taken = A shard of your soul core is back in your hands!
|
msg.shard_taken = A shard of your soul core is back in your hands!
|
||||||
msg.bridge_torn = The knights have torn down one of your bridges!
|
msg.bridge_torn = The knights have torn down one of your bridges!
|
||||||
msg.bridge_fire = One of your bridges is on fire!
|
msg.bridge_fire = One of your bridges is on fire!
|
||||||
|
msg.drawbridge_up = The drawbridge is raised.
|
||||||
|
msg.drawbridge_down = The drawbridge is lowered.
|
||||||
|
msg.drawbridge_auto = The drawbridge rises by itself when enemies come near.
|
||||||
|
msg.drawbridge_rises = Enemies near: a drawbridge rises!
|
||||||
job.tear_bridge = Tearing down a bridge
|
job.tear_bridge = Tearing down a bridge
|
||||||
job.patrol = On patrol
|
job.patrol = On patrol
|
||||||
job.guard = On guard
|
job.guard = On guard
|
||||||
@@ -804,6 +820,7 @@ best.b.torture.text = Captured heroes end up here. With time and a jailer, some
|
|||||||
best.b.temple.text = Prayers heal the soul core and keep spirits high. The flame priestess comes for a temple.
|
best.b.temple.text = Prayers heal the soul core and keep spirits high. The flame priestess comes for a temple.
|
||||||
best.b.aerie.text = Perches and nests for flying creatures. Bats, gargoyles, owls and even the ember wyrm need room here.
|
best.b.aerie.text = Perches and nests for flying creatures. Bats, gargoyles, owls and even the ember wyrm need room here.
|
||||||
best.b.bridge.text = Wood over water, stone over lava. The knights tear down your bridges - claim theirs.
|
best.b.bridge.text = Wood over water, stone over lava. The knights tear down your bridges - claim theirs.
|
||||||
|
best.b.drawbridge.text = Pull it up and the river is a wall again. Set to automatic, it rises whenever enemies come close – and comes down for your own creatures.
|
||||||
best.b.steel.text = Riveted iron plates on a reinforced wall. Nobody digs through quickly, not even dwarves.
|
best.b.steel.text = Riveted iron plates on a reinforced wall. Nobody digs through quickly, not even dwarves.
|
||||||
best.b.arrow.text = The arrow pierces up to two more enemies behind the target. Cheap and reliable.
|
best.b.arrow.text = The arrow pierces up to two more enemies behind the target. Cheap and reliable.
|
||||||
best.b.cannon.text = Splash damage and knockback - push the knights into the lava.
|
best.b.cannon.text = Splash damage and knockback - push the knights into the lava.
|
||||||
@@ -929,6 +946,9 @@ tool.plague.desc = A sickness that eats at the enemies around the spot and jumps
|
|||||||
tool.quake.label = Quake
|
tool.quake.label = Quake
|
||||||
tool.quake.name = Quake
|
tool.quake.name = Quake
|
||||||
tool.quake.desc = The ground shakes: enemies around the spot are hurt and stunned for two seconds. Your creatures keep their footing.
|
tool.quake.desc = The ground shakes: enemies around the spot are hurt and stunned for two seconds. Your creatures keep their footing.
|
||||||
|
tool.freeze.label = Frost
|
||||||
|
tool.freeze.name = Frost
|
||||||
|
tool.freeze.desc = Icy cold: lava around the spot cools into walkable obsidian for 40 seconds, enemies are chilled and slowed.
|
||||||
tile.unexplored = Unexplored darkness
|
tile.unexplored = Unexplored darkness
|
||||||
|
|
||||||
# personality
|
# personality
|
||||||
|
|||||||
@@ -399,6 +399,9 @@ help.start_touch = Toca para empezar
|
|||||||
tool.bridge.label = Puente
|
tool.bridge.label = Puente
|
||||||
tool.bridge.name = Construir puente
|
tool.bridge.name = Construir puente
|
||||||
tool.bridge.desc = Construye un puente sobre agua o lava. Arrastra desde tu propio suelo a través del río; el puente crece casilla a casilla desde tu territorio.
|
tool.bridge.desc = Construye un puente sobre agua o lava. Arrastra desde tu propio suelo a través del río; el puente crece casilla a casilla desde tu territorio.
|
||||||
|
tool.drawbridge.label = Levadizo
|
||||||
|
tool.drawbridge.name = Construir puente levadizo
|
||||||
|
tool.drawbridge.desc = Un puente que puedes alzar: arrástralo sobre el río para construirlo y haz clic para cambiar: abajo, arriba, automático (se alza cuando se acercan enemigos). La madera sobre agua arde, la piedra sobre lava no.
|
||||||
cost.bridge = {0} de oro/casilla sobre agua, {1} sobre lava
|
cost.bridge = {0} de oro/casilla sobre agua, {1} sobre lava
|
||||||
hint.bridge_where = Los puentes deben empezar en tu propio suelo: arrastra desde tu territorio a través del río.
|
hint.bridge_where = Los puentes deben empezar en tu propio suelo: arrastra desde tu territorio a través del río.
|
||||||
hint.bridge_fire = Los puentes de madera arden: aleja de ellos las trampas de fuego, el aliento de fuego y los rayos; los puentes de piedra sobre lava son ignífugos.
|
hint.bridge_fire = Los puentes de madera arden: aleja de ellos las trampas de fuego, el aliento de fuego y los rayos; los puentes de piedra sobre lava son ignífugos.
|
||||||
@@ -411,6 +414,15 @@ tile.lava = Lava
|
|||||||
tile.lava_info = Lo que cae dentro arde. Los puentes de piedra lo cruzan.
|
tile.lava_info = Lo que cae dentro arde. Los puentes de piedra lo cruzan.
|
||||||
tile.bridge = Puente de madera
|
tile.bridge = Puente de madera
|
||||||
tile.lavabridge = Puente de piedra
|
tile.lavabridge = Puente de piedra
|
||||||
|
tile.drawbridge = Puente levadizo
|
||||||
|
tile.drawbridge_up = Alzado
|
||||||
|
tile.drawbridge_down = Bajado
|
||||||
|
tile.drawbridge_auto = Automático (abajo)
|
||||||
|
tile.drawbridge_auto_up = Automático (arriba)
|
||||||
|
tile.obsidian = Obsidiana
|
||||||
|
tile.obsidian_info = Lava enfriada: se funde en {0} s
|
||||||
|
tile.bridge_burning = ¡Arde!
|
||||||
|
tile.bridge_worn = Dañado {0}%
|
||||||
tile.shard = Fragmento de tu núcleo de alma
|
tile.shard = Fragmento de tu núcleo de alma
|
||||||
tile.shard_info = Reclama esta cámara para recuperar el fragmento.
|
tile.shard_info = Reclama esta cámara para recuperar el fragmento.
|
||||||
|
|
||||||
@@ -433,6 +445,10 @@ msg.vault_taken = Cámara acorazada tomada: {0} en tesoros son tuyos.
|
|||||||
msg.shard_taken = ¡Un fragmento de tu núcleo de alma vuelve a estar en tus manos!
|
msg.shard_taken = ¡Un fragmento de tu núcleo de alma vuelve a estar en tus manos!
|
||||||
msg.bridge_torn = ¡Los caballeros han derribado uno de tus puentes!
|
msg.bridge_torn = ¡Los caballeros han derribado uno de tus puentes!
|
||||||
msg.bridge_fire = ¡Uno de tus puentes está en llamas!
|
msg.bridge_fire = ¡Uno de tus puentes está en llamas!
|
||||||
|
msg.drawbridge_up = El puente levadizo está alzado.
|
||||||
|
msg.drawbridge_down = El puente levadizo está bajado.
|
||||||
|
msg.drawbridge_auto = El puente levadizo se alza solo cuando se acercan enemigos.
|
||||||
|
msg.drawbridge_rises = ¡Se acercan enemigos: un puente levadizo se alza!
|
||||||
job.tear_bridge = Derribando un puente
|
job.tear_bridge = Derribando un puente
|
||||||
job.patrol = De patrulla
|
job.patrol = De patrulla
|
||||||
job.guard = De guardia
|
job.guard = De guardia
|
||||||
@@ -796,6 +812,7 @@ best.b.torture.text = Los héroes capturados acaban aquí. Con tiempo y un carce
|
|||||||
best.b.temple.text = Las oraciones curan el núcleo de alma y mantienen alta la moral. La sacerdotisa de llamas viene por un templo.
|
best.b.temple.text = Las oraciones curan el núcleo de alma y mantienen alta la moral. La sacerdotisa de llamas viene por un templo.
|
||||||
best.b.aerie.text = Perchas y nidos para criaturas voladoras. Murciélagos, gárgolas, búhos e incluso el dragón de brasas necesitan sitio aquí.
|
best.b.aerie.text = Perchas y nidos para criaturas voladoras. Murciélagos, gárgolas, búhos e incluso el dragón de brasas necesitan sitio aquí.
|
||||||
best.b.bridge.text = Madera sobre agua, piedra sobre lava. Los caballeros derriban tus puentes: reclama los suyos.
|
best.b.bridge.text = Madera sobre agua, piedra sobre lava. Los caballeros derriban tus puentes: reclama los suyos.
|
||||||
|
best.b.drawbridge.text = Álzalo y el río vuelve a ser un muro. En automático se alza cuando se acercan enemigos y baja para tus criaturas.
|
||||||
best.b.steel.text = Placas de hierro remachadas sobre un muro reforzado. Nadie lo atraviesa rápido, ni siquiera los enanos.
|
best.b.steel.text = Placas de hierro remachadas sobre un muro reforzado. Nadie lo atraviesa rápido, ni siquiera los enanos.
|
||||||
best.b.arrow.text = La flecha atraviesa hasta dos enemigos más detrás del objetivo. Barata y fiable.
|
best.b.arrow.text = La flecha atraviesa hasta dos enemigos más detrás del objetivo. Barata y fiable.
|
||||||
best.b.cannon.text = Daño en área y retroceso: empuja a los caballeros a la lava.
|
best.b.cannon.text = Daño en área y retroceso: empuja a los caballeros a la lava.
|
||||||
@@ -921,6 +938,9 @@ tool.plague.desc = Una enfermedad que corroe a los enemigos alrededor del punto
|
|||||||
tool.quake.label = Temblor
|
tool.quake.label = Temblor
|
||||||
tool.quake.name = Terremoto
|
tool.quake.name = Terremoto
|
||||||
tool.quake.desc = La tierra tiembla: los enemigos alrededor del punto sufren daño y quedan aturdidos dos segundos. Tus criaturas no pierden el equilibrio.
|
tool.quake.desc = La tierra tiembla: los enemigos alrededor del punto sufren daño y quedan aturdidos dos segundos. Tus criaturas no pierden el equilibrio.
|
||||||
|
tool.freeze.label = Escarcha
|
||||||
|
tool.freeze.name = Escarcha
|
||||||
|
tool.freeze.desc = Frío glacial: la lava alrededor se enfría en obsidiana transitable durante 40 segundos; los enemigos quedan helados y ralentizados.
|
||||||
tile.unexplored = Oscuridad inexplorada
|
tile.unexplored = Oscuridad inexplorada
|
||||||
|
|
||||||
# personality
|
# personality
|
||||||
|
|||||||
@@ -399,6 +399,9 @@ help.start_touch = Napauta aloittaaksesi
|
|||||||
tool.bridge.label = Silta
|
tool.bridge.label = Silta
|
||||||
tool.bridge.name = Rakenna silta
|
tool.bridge.name = Rakenna silta
|
||||||
tool.bridge.desc = Rakentaa sillan veden tai laavan yli. Vedä omalta maaltasi joen yli; silta kasvaa ruutu kerrallaan alueeltasi.
|
tool.bridge.desc = Rakentaa sillan veden tai laavan yli. Vedä omalta maaltasi joen yli; silta kasvaa ruutu kerrallaan alueeltasi.
|
||||||
|
tool.drawbridge.label = Laskusilta
|
||||||
|
tool.drawbridge.name = Rakenna laskusilta
|
||||||
|
tool.drawbridge.desc = Silta, jonka voit nostaa: vedä joen yli rakentaaksesi, napsauta vaihtaaksesi: alhaalla, ylhäällä, automaattinen (nousee vihollisten lähestyessä). Puu veden yllä palaa, kivi laavan yllä ei.
|
||||||
cost.bridge = {0} kultaa/ruutu veden yli, {1} laavan yli
|
cost.bridge = {0} kultaa/ruutu veden yli, {1} laavan yli
|
||||||
hint.bridge_where = Siltojen on alettava omalta maaltasi: vedä alueeltasi joen yli.
|
hint.bridge_where = Siltojen on alettava omalta maaltasi: vedä alueeltasi joen yli.
|
||||||
hint.bridge_fire = Puusillat palavat: pidä tuliansat, tulihenkäys ja salamat loitolla – kivisillat laavan yllä eivät pala.
|
hint.bridge_fire = Puusillat palavat: pidä tuliansat, tulihenkäys ja salamat loitolla – kivisillat laavan yllä eivät pala.
|
||||||
@@ -411,6 +414,15 @@ tile.lava = Laava
|
|||||||
tile.lava_info = Mikä sinne putoaa, se palaa. Kivisillat ylittävät sen.
|
tile.lava_info = Mikä sinne putoaa, se palaa. Kivisillat ylittävät sen.
|
||||||
tile.bridge = Puusilta
|
tile.bridge = Puusilta
|
||||||
tile.lavabridge = Kivisilta
|
tile.lavabridge = Kivisilta
|
||||||
|
tile.drawbridge = Laskusilta
|
||||||
|
tile.drawbridge_up = Nostettu
|
||||||
|
tile.drawbridge_down = Laskettu
|
||||||
|
tile.drawbridge_auto = Automaattinen (alhaalla)
|
||||||
|
tile.drawbridge_auto_up = Automaattinen (ylhäällä)
|
||||||
|
tile.obsidian = Obsidiaani
|
||||||
|
tile.obsidian_info = Jäähtynyt laava – sulaa {0} s kuluttua
|
||||||
|
tile.bridge_burning = Palaa!
|
||||||
|
tile.bridge_worn = Vaurioitunut {0}%
|
||||||
tile.shard = Sieluytimesi siru
|
tile.shard = Sieluytimesi siru
|
||||||
tile.shard_info = Valtaa tämä kammio saadaksesi sirun takaisin.
|
tile.shard_info = Valtaa tämä kammio saadaksesi sirun takaisin.
|
||||||
|
|
||||||
@@ -433,6 +445,10 @@ msg.vault_taken = Ritarien holvi vallattu: aarteita arvoltaan {0} on nyt sinun.
|
|||||||
msg.shard_taken = Sieluytimesi siru on taas käsissäsi!
|
msg.shard_taken = Sieluytimesi siru on taas käsissäsi!
|
||||||
msg.bridge_torn = Ritarit ovat purkaneet yhden silloistasi!
|
msg.bridge_torn = Ritarit ovat purkaneet yhden silloistasi!
|
||||||
msg.bridge_fire = Yksi silloistasi palaa!
|
msg.bridge_fire = Yksi silloistasi palaa!
|
||||||
|
msg.drawbridge_up = Laskusilta on nostettu.
|
||||||
|
msg.drawbridge_down = Laskusilta on laskettu.
|
||||||
|
msg.drawbridge_auto = Laskusilta nousee itsestään vihollisten lähestyessä.
|
||||||
|
msg.drawbridge_rises = Vihollisia lähellä: laskusilta nousee!
|
||||||
job.tear_bridge = Purkaa siltaa
|
job.tear_bridge = Purkaa siltaa
|
||||||
job.patrol = Partiossa
|
job.patrol = Partiossa
|
||||||
job.guard = Vartiossa
|
job.guard = Vartiossa
|
||||||
@@ -804,6 +820,7 @@ best.b.torture.text = Vangitut sankarit päätyvät tänne. Ajan ja vanginvartij
|
|||||||
best.b.temple.text = Rukoukset parantavat sieluydintä ja pitävät mielialan korkealla. Liekkipapitar tulee temppeliin.
|
best.b.temple.text = Rukoukset parantavat sieluydintä ja pitävät mielialan korkealla. Liekkipapitar tulee temppeliin.
|
||||||
best.b.aerie.text = Orsia ja pesiä lentäville olennoille. Lepakot, gargoilit, pöllöt ja jopa hehkulohikäärme tarvitsevat täällä tilaa.
|
best.b.aerie.text = Orsia ja pesiä lentäville olennoille. Lepakot, gargoilit, pöllöt ja jopa hehkulohikäärme tarvitsevat täällä tilaa.
|
||||||
best.b.bridge.text = Puuta veden yli, kiveä laavan yli. Ritarit purkavat siltasi - valtaa heidän siltansa.
|
best.b.bridge.text = Puuta veden yli, kiveä laavan yli. Ritarit purkavat siltasi - valtaa heidän siltansa.
|
||||||
|
best.b.drawbridge.text = Nostettuna joki on taas muuri. Automaattisena se nousee vihollisten lähestyessä – ja laskeutuu omille olennoillesi.
|
||||||
best.b.steel.text = Niitattuja rautalevyjä vahvistetulla seinällä. Kukaan ei kaiva läpi nopeasti, eivät edes kääpiöt.
|
best.b.steel.text = Niitattuja rautalevyjä vahvistetulla seinällä. Kukaan ei kaiva läpi nopeasti, eivät edes kääpiöt.
|
||||||
best.b.arrow.text = Nuoli lävistää vielä kaksi vihollista kohteen takana. Halpa ja luotettava.
|
best.b.arrow.text = Nuoli lävistää vielä kaksi vihollista kohteen takana. Halpa ja luotettava.
|
||||||
best.b.cannon.text = Roiskevahinkoa ja takaisku - tönäise ritarit laavaan.
|
best.b.cannon.text = Roiskevahinkoa ja takaisku - tönäise ritarit laavaan.
|
||||||
@@ -929,6 +946,9 @@ tool.plague.desc = Tauti, joka kalvaa kohdan ympärillä olevia vihollisia ja hy
|
|||||||
tool.quake.label = Järistys
|
tool.quake.label = Järistys
|
||||||
tool.quake.name = Järistys
|
tool.quake.name = Järistys
|
||||||
tool.quake.desc = Maa järisee: kohdan ympärillä olevat viholliset loukkaantuvat ja huumautuvat kahdeksi sekunniksi. Olentosi pysyvät jaloillaan.
|
tool.quake.desc = Maa järisee: kohdan ympärillä olevat viholliset loukkaantuvat ja huumautuvat kahdeksi sekunniksi. Olentosi pysyvät jaloillaan.
|
||||||
|
tool.freeze.label = Pakkanen
|
||||||
|
tool.freeze.name = Pakkanen
|
||||||
|
tool.freeze.desc = Jäätävä kylmyys: laava kohdan ympärillä jäähtyy 40 sekunniksi kuljettavaksi obsidiaaniksi, viholliset jäähtyvät ja hidastuvat.
|
||||||
tile.unexplored = Tutkimaton pimeys
|
tile.unexplored = Tutkimaton pimeys
|
||||||
|
|
||||||
# personality
|
# personality
|
||||||
|
|||||||
@@ -399,6 +399,9 @@ help.start_touch = Dodirni za početak
|
|||||||
tool.bridge.label = Most
|
tool.bridge.label = Most
|
||||||
tool.bridge.name = Gradnja mosta
|
tool.bridge.name = Gradnja mosta
|
||||||
tool.bridge.desc = Gradi most preko vode ili lave. Povuci sa svog tla preko rijeke; most raste polje po polje od tvog teritorija.
|
tool.bridge.desc = Gradi most preko vode ili lave. Povuci sa svog tla preko rijeke; most raste polje po polje od tvog teritorija.
|
||||||
|
tool.drawbridge.label = Pokretni most
|
||||||
|
tool.drawbridge.name = Izgradi pokretni most
|
||||||
|
tool.drawbridge.desc = Most koji možeš podići: povuci preko rijeke da ga izgradiš, klikni za promjenu: dolje, gore, automatski (diže se kad se neprijatelji približe). Drvo nad vodom gori, kamen nad lavom ne.
|
||||||
cost.bridge = {0} zlata/polje preko vode, {1} preko lave
|
cost.bridge = {0} zlata/polje preko vode, {1} preko lave
|
||||||
hint.bridge_where = Mostovi moraju početi na tvom tlu: povuci sa svog teritorija preko rijeke.
|
hint.bridge_where = Mostovi moraju početi na tvom tlu: povuci sa svog teritorija preko rijeke.
|
||||||
hint.bridge_fire = Drveni mostovi gore: drži vatrene zamke, vatreni dah i munje podalje – kameni mostovi nad lavom ne gore.
|
hint.bridge_fire = Drveni mostovi gore: drži vatrene zamke, vatreni dah i munje podalje – kameni mostovi nad lavom ne gore.
|
||||||
@@ -411,6 +414,15 @@ tile.lava = Lava
|
|||||||
tile.lava_info = Što god upadne, izgori. Kameni mostovi je premošćuju.
|
tile.lava_info = Što god upadne, izgori. Kameni mostovi je premošćuju.
|
||||||
tile.bridge = Drveni most
|
tile.bridge = Drveni most
|
||||||
tile.lavabridge = Kameni most
|
tile.lavabridge = Kameni most
|
||||||
|
tile.drawbridge = Pokretni most
|
||||||
|
tile.drawbridge_up = Podignut
|
||||||
|
tile.drawbridge_down = Spušten
|
||||||
|
tile.drawbridge_auto = Automatski (dolje)
|
||||||
|
tile.drawbridge_auto_up = Automatski (gore)
|
||||||
|
tile.obsidian = Opsidijan
|
||||||
|
tile.obsidian_info = Ohlađena lava – topi se za {0} s
|
||||||
|
tile.bridge_burning = Gori!
|
||||||
|
tile.bridge_worn = Oštećen {0}%
|
||||||
tile.shard = Krhotina tvoje jezgre duše
|
tile.shard = Krhotina tvoje jezgre duše
|
||||||
tile.shard_info = Osvoji ovu odaju da vratiš krhotinu.
|
tile.shard_info = Osvoji ovu odaju da vratiš krhotinu.
|
||||||
|
|
||||||
@@ -433,6 +445,10 @@ msg.vault_taken = Viteški trezor osvojen: blago vrijedno {0} je tvoje.
|
|||||||
msg.shard_taken = Krhotina tvoje jezgre duše opet je u tvojim rukama!
|
msg.shard_taken = Krhotina tvoje jezgre duše opet je u tvojim rukama!
|
||||||
msg.bridge_torn = Vitezovi su srušili jedan od tvojih mostova!
|
msg.bridge_torn = Vitezovi su srušili jedan od tvojih mostova!
|
||||||
msg.bridge_fire = Jedan od tvojih mostova gori!
|
msg.bridge_fire = Jedan od tvojih mostova gori!
|
||||||
|
msg.drawbridge_up = Pokretni most je podignut.
|
||||||
|
msg.drawbridge_down = Pokretni most je spušten.
|
||||||
|
msg.drawbridge_auto = Pokretni most se sam diže kad se neprijatelji približe.
|
||||||
|
msg.drawbridge_rises = Neprijatelji blizu: pokretni most se diže!
|
||||||
job.tear_bridge = Ruši most
|
job.tear_bridge = Ruši most
|
||||||
job.patrol = U ophodnji
|
job.patrol = U ophodnji
|
||||||
job.guard = Na straži
|
job.guard = Na straži
|
||||||
@@ -804,6 +820,7 @@ best.b.torture.text = Zarobljeni junaci završe ovdje. S vremenom i tamničarom
|
|||||||
best.b.temple.text = Molitve liječe jezgru duše i drže duh visoko. Svećenica plamena dolazi zbog hrama.
|
best.b.temple.text = Molitve liječe jezgru duše i drže duh visoko. Svećenica plamena dolazi zbog hrama.
|
||||||
best.b.aerie.text = Prečke i gnijezda za leteća stvorenja. Šišmišima, gargojlima, sovama, pa i žarnom zmaju ovdje treba mjesta.
|
best.b.aerie.text = Prečke i gnijezda za leteća stvorenja. Šišmišima, gargojlima, sovama, pa i žarnom zmaju ovdje treba mjesta.
|
||||||
best.b.bridge.text = Drvo preko vode, kamen preko lave. Vitezovi ruše tvoje mostove - osvoji njihove.
|
best.b.bridge.text = Drvo preko vode, kamen preko lave. Vitezovi ruše tvoje mostove - osvoji njihove.
|
||||||
|
best.b.drawbridge.text = Podignut, rijeka je opet zid. Na automatskom se diže kad se neprijatelji približe – i spušta za tvoja stvorenja.
|
||||||
best.b.steel.text = Zakovane željezne ploče na ojačanom zidu. Nitko se ne prokopa brzo, čak ni patuljci.
|
best.b.steel.text = Zakovane željezne ploče na ojačanom zidu. Nitko se ne prokopa brzo, čak ni patuljci.
|
||||||
best.b.arrow.text = Strijela probija do dva neprijatelja iza mete. Jeftino i pouzdano.
|
best.b.arrow.text = Strijela probija do dva neprijatelja iza mete. Jeftino i pouzdano.
|
||||||
best.b.cannon.text = Šteta u području i odbacivanje - gurni vitezove u lavu.
|
best.b.cannon.text = Šteta u području i odbacivanje - gurni vitezove u lavu.
|
||||||
@@ -929,6 +946,9 @@ tool.plague.desc = Bolest koja izjeda neprijatelje oko mjesta i preskače s jedn
|
|||||||
tool.quake.label = Potres
|
tool.quake.label = Potres
|
||||||
tool.quake.name = Potres
|
tool.quake.name = Potres
|
||||||
tool.quake.desc = Tlo se trese: neprijatelji oko mjesta ozlijeđeni su i omamljeni dvije sekunde. Tvoja stvorenja ostaju na nogama.
|
tool.quake.desc = Tlo se trese: neprijatelji oko mjesta ozlijeđeni su i omamljeni dvije sekunde. Tvoja stvorenja ostaju na nogama.
|
||||||
|
tool.freeze.label = Mraz
|
||||||
|
tool.freeze.name = Mraz
|
||||||
|
tool.freeze.desc = Ledena hladnoća: lava oko mjesta se na 40 sekundi hladi u prohodni opsidijan, neprijatelji se smrzavaju i usporavaju.
|
||||||
tile.unexplored = Neistražena tama
|
tile.unexplored = Neistražena tama
|
||||||
|
|
||||||
# personality
|
# personality
|
||||||
|
|||||||
@@ -399,6 +399,9 @@ help.start_touch = Koppints az indításhoz
|
|||||||
tool.bridge.label = Híd
|
tool.bridge.label = Híd
|
||||||
tool.bridge.name = Hídépítés
|
tool.bridge.name = Hídépítés
|
||||||
tool.bridge.desc = Hidat épít víz vagy láva fölé. Húzd a saját földedről a folyón át; a híd mezőről mezőre nő a területedről.
|
tool.bridge.desc = Hidat épít víz vagy láva fölé. Húzd a saját földedről a folyón át; a híd mezőről mezőre nő a területedről.
|
||||||
|
tool.drawbridge.label = Felvonóhíd
|
||||||
|
tool.drawbridge.name = Felvonóhíd építése
|
||||||
|
tool.drawbridge.desc = Felhúzható híd: húzd át a folyón az építéshez, kattints rá a váltáshoz: lent, fent, automatikus (felemelkedik, ha ellenség közeledik). A víz feletti fa ég, a láva feletti kő nem.
|
||||||
cost.bridge = {0} arany/mező víz fölött, {1} láva fölött
|
cost.bridge = {0} arany/mező víz fölött, {1} láva fölött
|
||||||
hint.bridge_where = A hídnak a saját földedről kell indulnia: húzd a területedről a folyón át.
|
hint.bridge_where = A hídnak a saját földedről kell indulnia: húzd a területedről a folyón át.
|
||||||
hint.bridge_fire = A fahidak égnek: tartsd távol tőlük a tűzcsapdákat, a tűzleheletet és a villámokat – a láva feletti kőhidak tűzállók.
|
hint.bridge_fire = A fahidak égnek: tartsd távol tőlük a tűzcsapdákat, a tűzleheletet és a villámokat – a láva feletti kőhidak tűzállók.
|
||||||
@@ -411,6 +414,15 @@ tile.lava = Láva
|
|||||||
tile.lava_info = Ami beleesik, elég. Kőhidak vezetnek át rajta.
|
tile.lava_info = Ami beleesik, elég. Kőhidak vezetnek át rajta.
|
||||||
tile.bridge = Fahíd
|
tile.bridge = Fahíd
|
||||||
tile.lavabridge = Kőhíd
|
tile.lavabridge = Kőhíd
|
||||||
|
tile.drawbridge = Felvonóhíd
|
||||||
|
tile.drawbridge_up = Felhúzva
|
||||||
|
tile.drawbridge_down = Leeresztve
|
||||||
|
tile.drawbridge_auto = Automatikus (lent)
|
||||||
|
tile.drawbridge_auto_up = Automatikus (fent)
|
||||||
|
tile.obsidian = Obszidián
|
||||||
|
tile.obsidian_info = Kihűlt láva – {0} mp múlva megolvad
|
||||||
|
tile.bridge_burning = Ég!
|
||||||
|
tile.bridge_worn = Sérült {0}%
|
||||||
tile.shard = A Lélekmagod egyik szilánkja
|
tile.shard = A Lélekmagod egyik szilánkja
|
||||||
tile.shard_info = Foglald el ezt a kamrát, hogy visszaszerezd a szilánkot.
|
tile.shard_info = Foglald el ezt a kamrát, hogy visszaszerezd a szilánkot.
|
||||||
|
|
||||||
@@ -433,6 +445,10 @@ msg.vault_taken = Lovagi kincstár elfoglalva: {0} értékű kincs a tiéd.
|
|||||||
msg.shard_taken = A Lélekmagod egyik szilánkja újra a kezedben van!
|
msg.shard_taken = A Lélekmagod egyik szilánkja újra a kezedben van!
|
||||||
msg.bridge_torn = A lovagok lerombolták az egyik hidadat!
|
msg.bridge_torn = A lovagok lerombolták az egyik hidadat!
|
||||||
msg.bridge_fire = Az egyik hidad lángokban áll!
|
msg.bridge_fire = Az egyik hidad lángokban áll!
|
||||||
|
msg.drawbridge_up = A felvonóhíd fel van húzva.
|
||||||
|
msg.drawbridge_down = A felvonóhíd le van eresztve.
|
||||||
|
msg.drawbridge_auto = A felvonóhíd magától felemelkedik, ha ellenség közeledik.
|
||||||
|
msg.drawbridge_rises = Ellenség közeledik: egy felvonóhíd felemelkedik!
|
||||||
job.tear_bridge = Hidat rombol
|
job.tear_bridge = Hidat rombol
|
||||||
job.patrol = Járőrözik
|
job.patrol = Járőrözik
|
||||||
job.guard = Őrt áll
|
job.guard = Őrt áll
|
||||||
@@ -804,6 +820,7 @@ best.b.torture.text = Ide kerülnek a foglyul ejtett hősök. Idővel és egy b
|
|||||||
best.b.temple.text = Az imák gyógyítják a lélekmagot, és jó hangulatban tartanak. A templomért a lángpapnő jön.
|
best.b.temple.text = Az imák gyógyítják a lélekmagot, és jó hangulatban tartanak. A templomért a lángpapnő jön.
|
||||||
best.b.aerie.text = Ülőrudak és fészkek repülő lényeknek. A denevéreknek, vízköpőknek, baglyoknak, sőt a parázssárkánynak is itt kell hely.
|
best.b.aerie.text = Ülőrudak és fészkek repülő lényeknek. A denevéreknek, vízköpőknek, baglyoknak, sőt a parázssárkánynak is itt kell hely.
|
||||||
best.b.bridge.text = Fa a víz fölött, kő a láva fölött. A lovagok lerombolják a hidaidat - foglald el az övéiket.
|
best.b.bridge.text = Fa a víz fölött, kő a láva fölött. A lovagok lerombolják a hidaidat - foglald el az övéiket.
|
||||||
|
best.b.drawbridge.text = Felhúzva a folyó újra fal. Automatikus módban felemelkedik, ha ellenség közeledik – és leereszkedik a saját lényeidnek.
|
||||||
best.b.steel.text = Szegecselt vaslemezek egy megerősített falon. Senki sem ás át rajta gyorsan, még a törpék sem.
|
best.b.steel.text = Szegecselt vaslemezek egy megerősített falon. Senki sem ás át rajta gyorsan, még a törpék sem.
|
||||||
best.b.arrow.text = A nyíl a célpont mögött még legfeljebb két ellenségen áthatol. Olcsó és megbízható.
|
best.b.arrow.text = A nyíl a célpont mögött még legfeljebb két ellenségen áthatol. Olcsó és megbízható.
|
||||||
best.b.cannon.text = Területi sebzés és hátralökés - lökd a lovagokat a lávába.
|
best.b.cannon.text = Területi sebzés és hátralökés - lökd a lovagokat a lávába.
|
||||||
@@ -929,6 +946,9 @@ tool.plague.desc = Kór, amely a hely körüli ellenségeket emészti, és egyik
|
|||||||
tool.quake.label = Rengés
|
tool.quake.label = Rengés
|
||||||
tool.quake.name = Földrengés
|
tool.quake.name = Földrengés
|
||||||
tool.quake.desc = Megremeg a föld: a hely körüli ellenségek megsérülnek, és két másodpercre elkábulnak. A lényeid talpon maradnak.
|
tool.quake.desc = Megremeg a föld: a hely körüli ellenségek megsérülnek, és két másodpercre elkábulnak. A lényeid talpon maradnak.
|
||||||
|
tool.freeze.label = Fagy
|
||||||
|
tool.freeze.name = Fagy
|
||||||
|
tool.freeze.desc = Jeges hideg: a láva a hely körül 40 másodpercre járható obszidiánná hűl, az ellenségek átfagynak és lelassulnak.
|
||||||
tile.unexplored = Feltáratlan sötétség
|
tile.unexplored = Feltáratlan sötétség
|
||||||
|
|
||||||
# personality
|
# personality
|
||||||
|
|||||||
@@ -399,6 +399,9 @@ help.start_touch = Tocca per iniziare
|
|||||||
tool.bridge.label = Ponte
|
tool.bridge.label = Ponte
|
||||||
tool.bridge.name = Costruisci ponte
|
tool.bridge.name = Costruisci ponte
|
||||||
tool.bridge.desc = Costruisce un ponte su acqua o lava. Trascina dal tuo suolo attraverso il fiume; il ponte cresce casella per casella dal tuo territorio.
|
tool.bridge.desc = Costruisce un ponte su acqua o lava. Trascina dal tuo suolo attraverso il fiume; il ponte cresce casella per casella dal tuo territorio.
|
||||||
|
tool.drawbridge.label = Levatoio
|
||||||
|
tool.drawbridge.name = Costruisci ponte levatoio
|
||||||
|
tool.drawbridge.desc = Un ponte che puoi sollevare: trascina sul fiume per costruirlo, clicca per cambiare: giù, su, automatico (si alza quando arrivano nemici). Il legno sull'acqua brucia, la pietra sulla lava no.
|
||||||
cost.bridge = {0} oro/casella sull'acqua, {1} sulla lava
|
cost.bridge = {0} oro/casella sull'acqua, {1} sulla lava
|
||||||
hint.bridge_where = I ponti devono partire dal tuo suolo: trascina dal tuo territorio attraverso il fiume.
|
hint.bridge_where = I ponti devono partire dal tuo suolo: trascina dal tuo territorio attraverso il fiume.
|
||||||
hint.bridge_fire = I ponti di legno bruciano: tieni lontani trappole di fuoco, soffio infuocato e fulmini; i ponti di pietra sulla lava sono ignifughi.
|
hint.bridge_fire = I ponti di legno bruciano: tieni lontani trappole di fuoco, soffio infuocato e fulmini; i ponti di pietra sulla lava sono ignifughi.
|
||||||
@@ -411,6 +414,15 @@ tile.lava = Lava
|
|||||||
tile.lava_info = Ciò che ci cade brucia. I ponti di pietra la attraversano.
|
tile.lava_info = Ciò che ci cade brucia. I ponti di pietra la attraversano.
|
||||||
tile.bridge = Ponte di legno
|
tile.bridge = Ponte di legno
|
||||||
tile.lavabridge = Ponte di pietra
|
tile.lavabridge = Ponte di pietra
|
||||||
|
tile.drawbridge = Ponte levatoio
|
||||||
|
tile.drawbridge_up = Sollevato
|
||||||
|
tile.drawbridge_down = Abbassato
|
||||||
|
tile.drawbridge_auto = Automatico (giù)
|
||||||
|
tile.drawbridge_auto_up = Automatico (su)
|
||||||
|
tile.obsidian = Ossidiana
|
||||||
|
tile.obsidian_info = Lava raffreddata: si scioglie tra {0} s
|
||||||
|
tile.bridge_burning = Brucia!
|
||||||
|
tile.bridge_worn = Danneggiato {0}%
|
||||||
tile.shard = Frammento del tuo nucleo
|
tile.shard = Frammento del tuo nucleo
|
||||||
tile.shard_info = Conquista questa camera per riprenderti il frammento.
|
tile.shard_info = Conquista questa camera per riprenderti il frammento.
|
||||||
|
|
||||||
@@ -433,6 +445,10 @@ msg.vault_taken = Caveau dei cavalieri preso: tesori per {0} sono tuoi.
|
|||||||
msg.shard_taken = Un frammento del tuo nucleo è di nuovo nelle tue mani!
|
msg.shard_taken = Un frammento del tuo nucleo è di nuovo nelle tue mani!
|
||||||
msg.bridge_torn = I cavalieri hanno abbattuto uno dei tuoi ponti!
|
msg.bridge_torn = I cavalieri hanno abbattuto uno dei tuoi ponti!
|
||||||
msg.bridge_fire = Uno dei tuoi ponti è in fiamme!
|
msg.bridge_fire = Uno dei tuoi ponti è in fiamme!
|
||||||
|
msg.drawbridge_up = Il ponte levatoio è sollevato.
|
||||||
|
msg.drawbridge_down = Il ponte levatoio è abbassato.
|
||||||
|
msg.drawbridge_auto = Il ponte levatoio si alza da solo quando arrivano nemici.
|
||||||
|
msg.drawbridge_rises = Arrivano nemici: un ponte levatoio si alza!
|
||||||
job.tear_bridge = Abbatte un ponte
|
job.tear_bridge = Abbatte un ponte
|
||||||
job.patrol = Di pattuglia
|
job.patrol = Di pattuglia
|
||||||
job.guard = Di guardia
|
job.guard = Di guardia
|
||||||
@@ -796,6 +812,7 @@ best.b.torture.text = Gli eroi catturati finiscono qui. Con il tempo e un carcer
|
|||||||
best.b.temple.text = Le preghiere curano il nucleo dell'anima e tengono alto il morale. La sacerdotessa della fiamma viene per un tempio.
|
best.b.temple.text = Le preghiere curano il nucleo dell'anima e tengono alto il morale. La sacerdotessa della fiamma viene per un tempio.
|
||||||
best.b.aerie.text = Posatoi e nidi per creature volanti. Pipistrelli, gargoyle, gufi e perfino il drago di brace hanno bisogno di spazio qui.
|
best.b.aerie.text = Posatoi e nidi per creature volanti. Pipistrelli, gargoyle, gufi e perfino il drago di brace hanno bisogno di spazio qui.
|
||||||
best.b.bridge.text = Legno sull'acqua, pietra sulla lava. I cavalieri abbattono i tuoi ponti - conquista i loro.
|
best.b.bridge.text = Legno sull'acqua, pietra sulla lava. I cavalieri abbattono i tuoi ponti - conquista i loro.
|
||||||
|
best.b.drawbridge.text = Sollevato, il fiume torna a essere un muro. In automatico si alza quando arrivano nemici e si abbassa per le tue creature.
|
||||||
best.b.steel.text = Piastre di ferro rivettate su un muro rinforzato. Nessuno ci scava attraverso in fretta, nemmeno i nani.
|
best.b.steel.text = Piastre di ferro rivettate su un muro rinforzato. Nessuno ci scava attraverso in fretta, nemmeno i nani.
|
||||||
best.b.arrow.text = La freccia trapassa fino a due nemici dietro il bersaglio. Economica e affidabile.
|
best.b.arrow.text = La freccia trapassa fino a due nemici dietro il bersaglio. Economica e affidabile.
|
||||||
best.b.cannon.text = Danno ad area e contraccolpo - spingi i cavalieri nella lava.
|
best.b.cannon.text = Danno ad area e contraccolpo - spingi i cavalieri nella lava.
|
||||||
@@ -921,6 +938,9 @@ tool.plague.desc = Una malattia che divora i nemici intorno al punto e salta dal
|
|||||||
tool.quake.label = Sisma
|
tool.quake.label = Sisma
|
||||||
tool.quake.name = Terremoto
|
tool.quake.name = Terremoto
|
||||||
tool.quake.desc = La terra trema: i nemici intorno al punto vengono feriti e storditi per due secondi. Le tue creature restano in piedi.
|
tool.quake.desc = La terra trema: i nemici intorno al punto vengono feriti e storditi per due secondi. Le tue creature restano in piedi.
|
||||||
|
tool.freeze.label = Gelo
|
||||||
|
tool.freeze.name = Gelo
|
||||||
|
tool.freeze.desc = Freddo glaciale: la lava intorno si raffredda in ossidiana calpestabile per 40 secondi, i nemici vengono gelati e rallentati.
|
||||||
tile.unexplored = Oscurità inesplorata
|
tile.unexplored = Oscurità inesplorata
|
||||||
|
|
||||||
# personality
|
# personality
|
||||||
|
|||||||
@@ -399,6 +399,9 @@ help.start_touch = Tik om te beginnen
|
|||||||
tool.bridge.label = Brug
|
tool.bridge.label = Brug
|
||||||
tool.bridge.name = Brug bouwen
|
tool.bridge.name = Brug bouwen
|
||||||
tool.bridge.desc = Bouwt een brug over water of lava. Sleep vanaf je eigen grond over de rivier; de brug groeit vak voor vak vanuit je gebied.
|
tool.bridge.desc = Bouwt een brug over water of lava. Sleep vanaf je eigen grond over de rivier; de brug groeit vak voor vak vanuit je gebied.
|
||||||
|
tool.drawbridge.label = Ophaalbrug
|
||||||
|
tool.drawbridge.name = Ophaalbrug bouwen
|
||||||
|
tool.drawbridge.desc = Een brug die je kunt ophalen: sleep over de rivier om hem te bouwen, klik om te wisselen: omlaag, omhoog, automatisch (gaat omhoog als vijanden naderen). Hout boven water brandt, steen boven lava niet.
|
||||||
cost.bridge = {0} goud/vak over water, {1} over lava
|
cost.bridge = {0} goud/vak over water, {1} over lava
|
||||||
hint.bridge_where = Bruggen moeten op je eigen grond beginnen: sleep vanuit je gebied over de rivier.
|
hint.bridge_where = Bruggen moeten op je eigen grond beginnen: sleep vanuit je gebied over de rivier.
|
||||||
hint.bridge_fire = Houten bruggen branden: houd vuurvallen, vuuradem en bliksem uit de buurt – stenen bruggen over lava zijn vuurvast.
|
hint.bridge_fire = Houten bruggen branden: houd vuurvallen, vuuradem en bliksem uit de buurt – stenen bruggen over lava zijn vuurvast.
|
||||||
@@ -411,6 +414,15 @@ tile.lava = Lava
|
|||||||
tile.lava_info = Wat erin valt, verbrandt. Stenen bruggen gaan eroverheen.
|
tile.lava_info = Wat erin valt, verbrandt. Stenen bruggen gaan eroverheen.
|
||||||
tile.bridge = Houten brug
|
tile.bridge = Houten brug
|
||||||
tile.lavabridge = Stenen brug
|
tile.lavabridge = Stenen brug
|
||||||
|
tile.drawbridge = Ophaalbrug
|
||||||
|
tile.drawbridge_up = Opgehaald
|
||||||
|
tile.drawbridge_down = Neergelaten
|
||||||
|
tile.drawbridge_auto = Automatisch (omlaag)
|
||||||
|
tile.drawbridge_auto_up = Automatisch (omhoog)
|
||||||
|
tile.obsidian = Obsidiaan
|
||||||
|
tile.obsidian_info = Afgekoelde lava – smelt over {0} s
|
||||||
|
tile.bridge_burning = Brandt!
|
||||||
|
tile.bridge_worn = Beschadigd {0}%
|
||||||
tile.shard = Scherf van je zielenkern
|
tile.shard = Scherf van je zielenkern
|
||||||
tile.shard_info = Neem deze kamer in om de scherf terug te halen.
|
tile.shard_info = Neem deze kamer in om de scherf terug te halen.
|
||||||
|
|
||||||
@@ -433,6 +445,10 @@ msg.vault_taken = Riddergewelf ingenomen: schatten ter waarde van {0} zijn van j
|
|||||||
msg.shard_taken = Een scherf van je zielenkern is weer in jouw handen!
|
msg.shard_taken = Een scherf van je zielenkern is weer in jouw handen!
|
||||||
msg.bridge_torn = De ridders hebben een van je bruggen afgebroken!
|
msg.bridge_torn = De ridders hebben een van je bruggen afgebroken!
|
||||||
msg.bridge_fire = Een van je bruggen staat in brand!
|
msg.bridge_fire = Een van je bruggen staat in brand!
|
||||||
|
msg.drawbridge_up = De ophaalbrug is opgehaald.
|
||||||
|
msg.drawbridge_down = De ophaalbrug is neergelaten.
|
||||||
|
msg.drawbridge_auto = De ophaalbrug gaat vanzelf omhoog als vijanden naderen.
|
||||||
|
msg.drawbridge_rises = Vijanden naderen: een ophaalbrug gaat omhoog!
|
||||||
job.tear_bridge = Breekt een brug af
|
job.tear_bridge = Breekt een brug af
|
||||||
job.patrol = Op patrouille
|
job.patrol = Op patrouille
|
||||||
job.guard = Op wacht
|
job.guard = Op wacht
|
||||||
@@ -804,6 +820,7 @@ best.b.torture.text = Gevangen helden belanden hier. Met tijd en een cipier lope
|
|||||||
best.b.temple.text = Gebeden genezen de zielenkern en houden de moed erin. De vlampriesteres komt voor een tempel.
|
best.b.temple.text = Gebeden genezen de zielenkern en houden de moed erin. De vlampriesteres komt voor een tempel.
|
||||||
best.b.aerie.text = Zitstokken en nesten voor vliegende wezens. Vleermuizen, gargouilles, uilen en zelfs de gloeddraak hebben hier ruimte nodig.
|
best.b.aerie.text = Zitstokken en nesten voor vliegende wezens. Vleermuizen, gargouilles, uilen en zelfs de gloeddraak hebben hier ruimte nodig.
|
||||||
best.b.bridge.text = Hout over water, steen over lava. De ridders breken je bruggen af - neem de hunne in.
|
best.b.bridge.text = Hout over water, steen over lava. De ridders breken je bruggen af - neem de hunne in.
|
||||||
|
best.b.drawbridge.text = Opgehaald is de rivier weer een muur. Op automatisch gaat hij omhoog zodra vijanden naderen – en zakt voor je eigen wezens.
|
||||||
best.b.steel.text = Geklonken ijzeren platen op een versterkte muur. Niemand graaft er snel doorheen, zelfs dwergen niet.
|
best.b.steel.text = Geklonken ijzeren platen op een versterkte muur. Niemand graaft er snel doorheen, zelfs dwergen niet.
|
||||||
best.b.arrow.text = De pijl doorboort tot twee extra vijanden achter het doelwit. Goedkoop en betrouwbaar.
|
best.b.arrow.text = De pijl doorboort tot twee extra vijanden achter het doelwit. Goedkoop en betrouwbaar.
|
||||||
best.b.cannon.text = Spatschade en terugslag - duw de ridders de lava in.
|
best.b.cannon.text = Spatschade en terugslag - duw de ridders de lava in.
|
||||||
@@ -929,6 +946,9 @@ tool.plague.desc = Een ziekte die de vijanden rond de plek aanvreet en van de ee
|
|||||||
tool.quake.label = Beving
|
tool.quake.label = Beving
|
||||||
tool.quake.name = Aardbeving
|
tool.quake.name = Aardbeving
|
||||||
tool.quake.desc = De grond schudt: vijanden rond de plek raken gewond en zijn twee seconden verdoofd. Je wezens blijven overeind.
|
tool.quake.desc = De grond schudt: vijanden rond de plek raken gewond en zijn twee seconden verdoofd. Je wezens blijven overeind.
|
||||||
|
tool.freeze.label = Vorst
|
||||||
|
tool.freeze.name = Vorst
|
||||||
|
tool.freeze.desc = IJzige kou: lava rond de plek koelt 40 seconden af tot begaanbaar obsidiaan, vijanden worden onderkoeld en vertraagd.
|
||||||
tile.unexplored = Onverkend duister
|
tile.unexplored = Onverkend duister
|
||||||
|
|
||||||
# personality
|
# personality
|
||||||
|
|||||||
@@ -398,6 +398,9 @@ help.start_touch = Trykk for å starte
|
|||||||
tool.bridge.label = Bro
|
tool.bridge.label = Bro
|
||||||
tool.bridge.name = Bygg bro
|
tool.bridge.name = Bygg bro
|
||||||
tool.bridge.desc = Bygger en bro over vann eller lava. Dra fra din egen grunn over elven; broen vokser rute for rute fra området ditt.
|
tool.bridge.desc = Bygger en bro over vann eller lava. Dra fra din egen grunn over elven; broen vokser rute for rute fra området ditt.
|
||||||
|
tool.drawbridge.label = Vindebro
|
||||||
|
tool.drawbridge.name = Bygg vindebro
|
||||||
|
tool.drawbridge.desc = En bro du kan heise opp: dra over elva for å bygge den, klikk for å bytte: nede, oppe, automatisk (heises når fiender nærmer seg). Tre over vann brenner, stein over lava gjør ikke.
|
||||||
cost.bridge = {0} gull/rute over vann, {1} over lava
|
cost.bridge = {0} gull/rute over vann, {1} over lava
|
||||||
hint.bridge_where = Broer må starte på din egen grunn: dra fra området ditt over elven.
|
hint.bridge_where = Broer må starte på din egen grunn: dra fra området ditt over elven.
|
||||||
hint.bridge_fire = Trebroer brenner: hold ildfeller, ildpust og lyn unna dem – steinbroer over lava er brannsikre.
|
hint.bridge_fire = Trebroer brenner: hold ildfeller, ildpust og lyn unna dem – steinbroer over lava er brannsikre.
|
||||||
@@ -410,6 +413,15 @@ tile.lava = Lava
|
|||||||
tile.lava_info = Det som faller i, brenner. Steinbroer fører over.
|
tile.lava_info = Det som faller i, brenner. Steinbroer fører over.
|
||||||
tile.bridge = Trebro
|
tile.bridge = Trebro
|
||||||
tile.lavabridge = Steinbro
|
tile.lavabridge = Steinbro
|
||||||
|
tile.drawbridge = Vindebro
|
||||||
|
tile.drawbridge_up = Heist opp
|
||||||
|
tile.drawbridge_down = Senket
|
||||||
|
tile.drawbridge_auto = Automatisk (nede)
|
||||||
|
tile.drawbridge_auto_up = Automatisk (oppe)
|
||||||
|
tile.obsidian = Obsidian
|
||||||
|
tile.obsidian_info = Avkjølt lava – smelter om {0} s
|
||||||
|
tile.bridge_burning = Brenner!
|
||||||
|
tile.bridge_worn = Skadet {0}%
|
||||||
tile.shard = Skår av sjelekjernen din
|
tile.shard = Skår av sjelekjernen din
|
||||||
tile.shard_info = Innta dette kammeret for å ta skåret tilbake.
|
tile.shard_info = Innta dette kammeret for å ta skåret tilbake.
|
||||||
|
|
||||||
@@ -432,6 +444,10 @@ msg.vault_taken = Riddernes hvelv inntatt: skatter verdt {0} er dine.
|
|||||||
msg.shard_taken = Et skår av sjelekjernen din er tilbake i hendene dine!
|
msg.shard_taken = Et skår av sjelekjernen din er tilbake i hendene dine!
|
||||||
msg.bridge_torn = Ridderne har revet ned en av broene dine!
|
msg.bridge_torn = Ridderne har revet ned en av broene dine!
|
||||||
msg.bridge_fire = En av broene dine brenner!
|
msg.bridge_fire = En av broene dine brenner!
|
||||||
|
msg.drawbridge_up = Vindebroen er heist opp.
|
||||||
|
msg.drawbridge_down = Vindebroen er senket.
|
||||||
|
msg.drawbridge_auto = Vindebroen heises av seg selv når fiender nærmer seg.
|
||||||
|
msg.drawbridge_rises = Fiender nærmer seg: en vindebro heises!
|
||||||
job.tear_bridge = River ned en bro
|
job.tear_bridge = River ned en bro
|
||||||
job.patrol = På patrulje
|
job.patrol = På patrulje
|
||||||
job.guard = På vakt
|
job.guard = På vakt
|
||||||
@@ -803,6 +819,7 @@ best.b.torture.text = Fangede helter havner her. Med tid og en fangevokter bytte
|
|||||||
best.b.temple.text = Bønner leger sjelekjernen og holder humøret oppe. Flammeprestinnen kommer for et tempel.
|
best.b.temple.text = Bønner leger sjelekjernen og holder humøret oppe. Flammeprestinnen kommer for et tempel.
|
||||||
best.b.aerie.text = Sittepinner og reder for flygende skapninger. Flaggermus, gargoyler, ugler og til og med glødlindormen trenger plass her.
|
best.b.aerie.text = Sittepinner og reder for flygende skapninger. Flaggermus, gargoyler, ugler og til og med glødlindormen trenger plass her.
|
||||||
best.b.bridge.text = Tre over vann, stein over lava. Ridderne river ned broene dine - innta deres.
|
best.b.bridge.text = Tre over vann, stein over lava. Ridderne river ned broene dine - innta deres.
|
||||||
|
best.b.drawbridge.text = Heist opp er elva en mur igjen. På automatisk heises den når fiender nærmer seg – og senkes for dine egne skapninger.
|
||||||
best.b.steel.text = Naglede jernplater på en forsterket vegg. Ingen graver seg raskt gjennom, ikke engang dverger.
|
best.b.steel.text = Naglede jernplater på en forsterket vegg. Ingen graver seg raskt gjennom, ikke engang dverger.
|
||||||
best.b.arrow.text = Pilen gjennomborer opptil to fiender til bak målet. Billig og pålitelig.
|
best.b.arrow.text = Pilen gjennomborer opptil to fiender til bak målet. Billig og pålitelig.
|
||||||
best.b.cannon.text = Områdeskade og tilbakeslag - dytt ridderne i lavaen.
|
best.b.cannon.text = Områdeskade og tilbakeslag - dytt ridderne i lavaen.
|
||||||
@@ -928,6 +945,9 @@ tool.plague.desc = En sykdom som tærer på fiendene rundt stedet og hopper fra
|
|||||||
tool.quake.label = Skjelv
|
tool.quake.label = Skjelv
|
||||||
tool.quake.name = Jordskjelv
|
tool.quake.name = Jordskjelv
|
||||||
tool.quake.desc = Bakken rister: fiender rundt stedet skades og lammes i to sekunder. Skapningene dine holder balansen.
|
tool.quake.desc = Bakken rister: fiender rundt stedet skades og lammes i to sekunder. Skapningene dine holder balansen.
|
||||||
|
tool.freeze.label = Frost
|
||||||
|
tool.freeze.name = Frost
|
||||||
|
tool.freeze.desc = Isende kulde: lava rundt stedet kjøles til gangbar obsidian i 40 sekunder, fiender blir nedkjølt og trege.
|
||||||
tile.unexplored = Uutforsket mørke
|
tile.unexplored = Uutforsket mørke
|
||||||
|
|
||||||
# personality
|
# personality
|
||||||
|
|||||||
@@ -399,6 +399,9 @@ help.start_touch = Toca para começar
|
|||||||
tool.bridge.label = Ponte
|
tool.bridge.label = Ponte
|
||||||
tool.bridge.name = Construir Ponte
|
tool.bridge.name = Construir Ponte
|
||||||
tool.bridge.desc = Constrói uma ponte sobre água ou lava. Arrasta a partir do teu chão através do rio; a ponte cresce casa a casa a partir do teu território.
|
tool.bridge.desc = Constrói uma ponte sobre água ou lava. Arrasta a partir do teu chão através do rio; a ponte cresce casa a casa a partir do teu território.
|
||||||
|
tool.drawbridge.label = Levadiça
|
||||||
|
tool.drawbridge.name = Construir ponte levadiça
|
||||||
|
tool.drawbridge.desc = Uma ponte que podes levantar: arrasta sobre o rio para a construir, clica para mudar: em baixo, em cima, automática (sobe quando os inimigos se aproximam). Madeira sobre água arde, pedra sobre lava não.
|
||||||
cost.bridge = {0} de ouro/casa sobre água, {1} sobre lava
|
cost.bridge = {0} de ouro/casa sobre água, {1} sobre lava
|
||||||
hint.bridge_where = As pontes têm de começar no teu chão: arrasta a partir do teu território através do rio.
|
hint.bridge_where = As pontes têm de começar no teu chão: arrasta a partir do teu território através do rio.
|
||||||
hint.bridge_fire = As pontes de madeira ardem: mantém armadilhas de fogo, sopro de fogo e relâmpagos longe delas – as pontes de pedra sobre lava não ardem.
|
hint.bridge_fire = As pontes de madeira ardem: mantém armadilhas de fogo, sopro de fogo e relâmpagos longe delas – as pontes de pedra sobre lava não ardem.
|
||||||
@@ -411,6 +414,15 @@ tile.lava = Lava
|
|||||||
tile.lava_info = O que cai lá dentro arde. As pontes de pedra atravessam-na.
|
tile.lava_info = O que cai lá dentro arde. As pontes de pedra atravessam-na.
|
||||||
tile.bridge = Ponte de madeira
|
tile.bridge = Ponte de madeira
|
||||||
tile.lavabridge = Ponte de pedra
|
tile.lavabridge = Ponte de pedra
|
||||||
|
tile.drawbridge = Ponte levadiça
|
||||||
|
tile.drawbridge_up = Levantada
|
||||||
|
tile.drawbridge_down = Baixada
|
||||||
|
tile.drawbridge_auto = Automática (em baixo)
|
||||||
|
tile.drawbridge_auto_up = Automática (em cima)
|
||||||
|
tile.obsidian = Obsidiana
|
||||||
|
tile.obsidian_info = Lava arrefecida – derrete em {0} s
|
||||||
|
tile.bridge_burning = A arder!
|
||||||
|
tile.bridge_worn = Danificada {0}%
|
||||||
tile.shard = Fragmento do teu núcleo de alma
|
tile.shard = Fragmento do teu núcleo de alma
|
||||||
tile.shard_info = Reclama esta câmara para recuperar o fragmento.
|
tile.shard_info = Reclama esta câmara para recuperar o fragmento.
|
||||||
|
|
||||||
@@ -433,6 +445,10 @@ msg.vault_taken = Cofre dos cavaleiros tomado: {0} em tesouros são teus.
|
|||||||
msg.shard_taken = Um fragmento do teu núcleo de alma está de novo nas tuas mãos!
|
msg.shard_taken = Um fragmento do teu núcleo de alma está de novo nas tuas mãos!
|
||||||
msg.bridge_torn = Os cavaleiros destruíram uma das tuas pontes!
|
msg.bridge_torn = Os cavaleiros destruíram uma das tuas pontes!
|
||||||
msg.bridge_fire = Uma das tuas pontes está a arder!
|
msg.bridge_fire = Uma das tuas pontes está a arder!
|
||||||
|
msg.drawbridge_up = A ponte levadiça está levantada.
|
||||||
|
msg.drawbridge_down = A ponte levadiça está baixada.
|
||||||
|
msg.drawbridge_auto = A ponte levadiça sobe sozinha quando os inimigos se aproximam.
|
||||||
|
msg.drawbridge_rises = Inimigos perto: uma ponte levadiça sobe!
|
||||||
job.tear_bridge = A destruir uma ponte
|
job.tear_bridge = A destruir uma ponte
|
||||||
job.patrol = De patrulha
|
job.patrol = De patrulha
|
||||||
job.guard = De guarda
|
job.guard = De guarda
|
||||||
@@ -804,6 +820,7 @@ best.b.torture.text = Os heróis capturados acabam aqui. Com tempo e um carcerei
|
|||||||
best.b.temple.text = As orações curam o núcleo de alma e mantêm o moral alto. A sacerdotisa das chamas vem por um templo.
|
best.b.temple.text = As orações curam o núcleo de alma e mantêm o moral alto. A sacerdotisa das chamas vem por um templo.
|
||||||
best.b.aerie.text = Poleiros e ninhos para criaturas voadoras. Morcegos, gárgulas, corujas e até a serpe de brasa precisam de espaço aqui.
|
best.b.aerie.text = Poleiros e ninhos para criaturas voadoras. Morcegos, gárgulas, corujas e até a serpe de brasa precisam de espaço aqui.
|
||||||
best.b.bridge.text = Madeira sobre água, pedra sobre lava. Os cavaleiros destroem as tuas pontes - reclama as deles.
|
best.b.bridge.text = Madeira sobre água, pedra sobre lava. Os cavaleiros destroem as tuas pontes - reclama as deles.
|
||||||
|
best.b.drawbridge.text = Levantada, o rio volta a ser uma muralha. Em automático sobe quando os inimigos se aproximam e desce para as tuas criaturas.
|
||||||
best.b.steel.text = Placas de ferro rebitadas numa parede reforçada. Ninguém a escava depressa, nem sequer os anões.
|
best.b.steel.text = Placas de ferro rebitadas numa parede reforçada. Ninguém a escava depressa, nem sequer os anões.
|
||||||
best.b.arrow.text = A flecha trespassa até mais dois inimigos atrás do alvo. Barata e fiável.
|
best.b.arrow.text = A flecha trespassa até mais dois inimigos atrás do alvo. Barata e fiável.
|
||||||
best.b.cannon.text = Dano em área e repulsão - empurra os cavaleiros para a lava.
|
best.b.cannon.text = Dano em área e repulsão - empurra os cavaleiros para a lava.
|
||||||
@@ -929,6 +946,9 @@ tool.plague.desc = Uma doença que corrói os inimigos à volta do ponto e salta
|
|||||||
tool.quake.label = Sismo
|
tool.quake.label = Sismo
|
||||||
tool.quake.name = Sismo
|
tool.quake.name = Sismo
|
||||||
tool.quake.desc = O chão treme: os inimigos à volta do ponto são feridos e atordoados durante dois segundos. As tuas criaturas mantêm-se de pé.
|
tool.quake.desc = O chão treme: os inimigos à volta do ponto são feridos e atordoados durante dois segundos. As tuas criaturas mantêm-se de pé.
|
||||||
|
tool.freeze.label = Gelo
|
||||||
|
tool.freeze.name = Gelo
|
||||||
|
tool.freeze.desc = Frio gélido: a lava à volta arrefece em obsidiana transitável durante 40 segundos, os inimigos ficam gelados e lentos.
|
||||||
tile.unexplored = Escuridão inexplorada
|
tile.unexplored = Escuridão inexplorada
|
||||||
|
|
||||||
# personality
|
# personality
|
||||||
|
|||||||
@@ -399,6 +399,9 @@ help.start_touch = Atinge pentru a începe
|
|||||||
tool.bridge.label = Pod
|
tool.bridge.label = Pod
|
||||||
tool.bridge.name = Construiește Pod
|
tool.bridge.name = Construiește Pod
|
||||||
tool.bridge.desc = Construiește un pod peste apă sau lavă. Trage de pe terenul tău peste râu; podul crește dală cu dală dinspre teritoriul tău.
|
tool.bridge.desc = Construiește un pod peste apă sau lavă. Trage de pe terenul tău peste râu; podul crește dală cu dală dinspre teritoriul tău.
|
||||||
|
tool.drawbridge.label = Pod mobil
|
||||||
|
tool.drawbridge.name = Construiește pod mobil
|
||||||
|
tool.drawbridge.desc = Un pod pe care îl poți ridica: trage peste râu ca să-l construiești, dă clic pentru a schimba: jos, sus, automat (se ridică atunci când se apropie dușmanii). Lemnul peste apă arde, piatra peste lavă nu.
|
||||||
cost.bridge = {0} aur/dală peste apă, {1} peste lavă
|
cost.bridge = {0} aur/dală peste apă, {1} peste lavă
|
||||||
hint.bridge_where = Podurile trebuie să pornească de pe terenul tău: trage de pe teritoriul tău peste râu.
|
hint.bridge_where = Podurile trebuie să pornească de pe terenul tău: trage de pe teritoriul tău peste râu.
|
||||||
hint.bridge_fire = Podurile de lemn ard: ține capcanele de foc, suflarea de foc și fulgerele departe de ele – podurile de piatră peste lavă nu ard.
|
hint.bridge_fire = Podurile de lemn ard: ține capcanele de foc, suflarea de foc și fulgerele departe de ele – podurile de piatră peste lavă nu ard.
|
||||||
@@ -411,6 +414,15 @@ tile.lava = Lavă
|
|||||||
tile.lava_info = Ce cade înăuntru arde. Podurile de piatră o traversează.
|
tile.lava_info = Ce cade înăuntru arde. Podurile de piatră o traversează.
|
||||||
tile.bridge = Pod de lemn
|
tile.bridge = Pod de lemn
|
||||||
tile.lavabridge = Pod de piatră
|
tile.lavabridge = Pod de piatră
|
||||||
|
tile.drawbridge = Pod mobil
|
||||||
|
tile.drawbridge_up = Ridicat
|
||||||
|
tile.drawbridge_down = Coborât
|
||||||
|
tile.drawbridge_auto = Automat (jos)
|
||||||
|
tile.drawbridge_auto_up = Automat (sus)
|
||||||
|
tile.obsidian = Obsidian
|
||||||
|
tile.obsidian_info = Lavă răcită – se topește în {0} s
|
||||||
|
tile.bridge_burning = Arde!
|
||||||
|
tile.bridge_worn = Deteriorat {0}%
|
||||||
tile.shard = Ciob din miezul sufletului tău
|
tile.shard = Ciob din miezul sufletului tău
|
||||||
tile.shard_info = Cucerește această cameră ca să iei ciobul înapoi.
|
tile.shard_info = Cucerește această cameră ca să iei ciobul înapoi.
|
||||||
|
|
||||||
@@ -433,6 +445,10 @@ msg.vault_taken = Seif al cavalerilor cucerit: o comoară în valoare de {0} e a
|
|||||||
msg.shard_taken = Un ciob din miezul sufletului tău e din nou în mâinile tale!
|
msg.shard_taken = Un ciob din miezul sufletului tău e din nou în mâinile tale!
|
||||||
msg.bridge_torn = Cavalerii ți-au dărâmat unul dintre poduri!
|
msg.bridge_torn = Cavalerii ți-au dărâmat unul dintre poduri!
|
||||||
msg.bridge_fire = Unul dintre podurile tale arde!
|
msg.bridge_fire = Unul dintre podurile tale arde!
|
||||||
|
msg.drawbridge_up = Podul mobil este ridicat.
|
||||||
|
msg.drawbridge_down = Podul mobil este coborât.
|
||||||
|
msg.drawbridge_auto = Podul mobil se ridică singur când se apropie dușmanii.
|
||||||
|
msg.drawbridge_rises = Se apropie dușmani: un pod mobil se ridică!
|
||||||
job.tear_bridge = Dărâmă un pod
|
job.tear_bridge = Dărâmă un pod
|
||||||
job.patrol = În patrulă
|
job.patrol = În patrulă
|
||||||
job.guard = De pază
|
job.guard = De pază
|
||||||
@@ -804,6 +820,7 @@ best.b.torture.text = Eroii capturați ajung aici. Cu timp și un temnicer, unii
|
|||||||
best.b.temple.text = Rugăciunile vindecă miezul sufletului și țin moralul sus. Preoteasa flăcării vine pentru un templu.
|
best.b.temple.text = Rugăciunile vindecă miezul sufletului și țin moralul sus. Preoteasa flăcării vine pentru un templu.
|
||||||
best.b.aerie.text = Stinghii și cuiburi pentru creaturile zburătoare. Liliecii, gargujii, bufnițele și chiar balaurul de jar au nevoie de loc aici.
|
best.b.aerie.text = Stinghii și cuiburi pentru creaturile zburătoare. Liliecii, gargujii, bufnițele și chiar balaurul de jar au nevoie de loc aici.
|
||||||
best.b.bridge.text = Lemn peste apă, piatră peste lavă. Cavalerii îți dărâmă podurile - cucerește-le pe ale lor.
|
best.b.bridge.text = Lemn peste apă, piatră peste lavă. Cavalerii îți dărâmă podurile - cucerește-le pe ale lor.
|
||||||
|
best.b.drawbridge.text = Ridicat, râul devine din nou zid. Pe automat se ridică atunci când se apropie dușmanii – și coboară pentru creaturile tale.
|
||||||
best.b.steel.text = Plăci de fier nituite pe un zid întărit. Nimeni nu sapă repede prin el, nici măcar piticii.
|
best.b.steel.text = Plăci de fier nituite pe un zid întărit. Nimeni nu sapă repede prin el, nici măcar piticii.
|
||||||
best.b.arrow.text = Săgeata străpunge până la doi dușmani din spatele țintei. Ieftin și de încredere.
|
best.b.arrow.text = Săgeata străpunge până la doi dușmani din spatele țintei. Ieftin și de încredere.
|
||||||
best.b.cannon.text = Daune în zonă și recul - împinge cavalerii în lavă.
|
best.b.cannon.text = Daune în zonă și recul - împinge cavalerii în lavă.
|
||||||
@@ -929,6 +946,9 @@ tool.plague.desc = O boală care roade dușmanii din jurul locului și sare de l
|
|||||||
tool.quake.label = Cutremur
|
tool.quake.label = Cutremur
|
||||||
tool.quake.name = Cutremur
|
tool.quake.name = Cutremur
|
||||||
tool.quake.desc = Pământul se cutremură: dușmanii din jurul locului sunt răniți și amețiți două secunde. Creaturile tale rămân în picioare.
|
tool.quake.desc = Pământul se cutremură: dușmanii din jurul locului sunt răniți și amețiți două secunde. Creaturile tale rămân în picioare.
|
||||||
|
tool.freeze.label = Ger
|
||||||
|
tool.freeze.name = Ger
|
||||||
|
tool.freeze.desc = Frig cumplit: lava din jur se răcește în obsidian pe care se poate merge timp de 40 de secunde, dușmanii sunt înghețați și încetiniți.
|
||||||
tile.unexplored = Întuneric neexplorat
|
tile.unexplored = Întuneric neexplorat
|
||||||
|
|
||||||
# personality
|
# personality
|
||||||
|
|||||||
@@ -399,6 +399,9 @@ help.start_touch = Коснись, чтобы начать
|
|||||||
tool.bridge.label = Мост
|
tool.bridge.label = Мост
|
||||||
tool.bridge.name = Построить мост
|
tool.bridge.name = Построить мост
|
||||||
tool.bridge.desc = Строит мост через воду или лаву. Тяни от своей земли через реку; мост растёт клетка за клеткой от твоей территории.
|
tool.bridge.desc = Строит мост через воду или лаву. Тяни от своей земли через реку; мост растёт клетка за клеткой от твоей территории.
|
||||||
|
tool.drawbridge.label = Подъёмный
|
||||||
|
tool.drawbridge.name = Построить подъёмный мост
|
||||||
|
tool.drawbridge.desc = Мост, который можно поднять: протяните через реку, чтобы построить, щёлкните, чтобы переключить: опущен, поднят, автоматически (поднимается при приближении врагов). Дерево над водой горит, камень над лавой — нет.
|
||||||
cost.bridge = {0} золота/клетка над водой, {1} над лавой
|
cost.bridge = {0} золота/клетка над водой, {1} над лавой
|
||||||
hint.bridge_where = Мост должен начинаться у твоей земли: тяни от своей территории через реку.
|
hint.bridge_where = Мост должен начинаться у твоей земли: тяни от своей территории через реку.
|
||||||
hint.bridge_fire = Деревянные мосты горят: держите огненные ловушки, огненное дыхание и молнии подальше; каменные мосты над лавой не горят.
|
hint.bridge_fire = Деревянные мосты горят: держите огненные ловушки, огненное дыхание и молнии подальше; каменные мосты над лавой не горят.
|
||||||
@@ -411,6 +414,15 @@ tile.lava = Лава
|
|||||||
tile.lava_info = Всё, что туда падает, сгорает. Её пересекают каменные мосты.
|
tile.lava_info = Всё, что туда падает, сгорает. Её пересекают каменные мосты.
|
||||||
tile.bridge = Деревянный мост
|
tile.bridge = Деревянный мост
|
||||||
tile.lavabridge = Каменный мост
|
tile.lavabridge = Каменный мост
|
||||||
|
tile.drawbridge = Подъёмный мост
|
||||||
|
tile.drawbridge_up = Поднят
|
||||||
|
tile.drawbridge_down = Опущен
|
||||||
|
tile.drawbridge_auto = Автоматически (опущен)
|
||||||
|
tile.drawbridge_auto_up = Автоматически (поднят)
|
||||||
|
tile.obsidian = Обсидиан
|
||||||
|
tile.obsidian_info = Застывшая лава — растает через {0} с
|
||||||
|
tile.bridge_burning = Горит!
|
||||||
|
tile.bridge_worn = Повреждён на {0}%
|
||||||
tile.shard = Осколок твоего ядра души
|
tile.shard = Осколок твоего ядра души
|
||||||
tile.shard_info = Захвати этот зал, чтобы вернуть осколок.
|
tile.shard_info = Захвати этот зал, чтобы вернуть осколок.
|
||||||
|
|
||||||
@@ -433,6 +445,10 @@ msg.vault_taken = Рыцарское хранилище взято: сокров
|
|||||||
msg.shard_taken = Осколок твоего ядра души снова в твоих руках!
|
msg.shard_taken = Осколок твоего ядра души снова в твоих руках!
|
||||||
msg.bridge_torn = Рыцари разрушили один из твоих мостов!
|
msg.bridge_torn = Рыцари разрушили один из твоих мостов!
|
||||||
msg.bridge_fire = Один из ваших мостов горит!
|
msg.bridge_fire = Один из ваших мостов горит!
|
||||||
|
msg.drawbridge_up = Подъёмный мост поднят.
|
||||||
|
msg.drawbridge_down = Подъёмный мост опущен.
|
||||||
|
msg.drawbridge_auto = Подъёмный мост сам поднимается при приближении врагов.
|
||||||
|
msg.drawbridge_rises = Враги близко: подъёмный мост поднимается!
|
||||||
job.tear_bridge = Ломает мост
|
job.tear_bridge = Ломает мост
|
||||||
job.patrol = В дозоре
|
job.patrol = В дозоре
|
||||||
job.guard = На страже
|
job.guard = На страже
|
||||||
@@ -796,6 +812,7 @@ best.b.torture.text = Сюда попадают пленные герои. Со
|
|||||||
best.b.temple.text = Молитвы лечат ядро души и поднимают дух. Жрица пламени приходит на храм.
|
best.b.temple.text = Молитвы лечат ядро души и поднимают дух. Жрица пламени приходит на храм.
|
||||||
best.b.aerie.text = Насесты и гнёзда для летунов. Нетопырям, горгульям, совам и даже огненному змию нужно здесь место.
|
best.b.aerie.text = Насесты и гнёзда для летунов. Нетопырям, горгульям, совам и даже огненному змию нужно здесь место.
|
||||||
best.b.bridge.text = Дерево над водой, камень над лавой. Рыцари ломают твои мосты - захватывай их мосты.
|
best.b.bridge.text = Дерево над водой, камень над лавой. Рыцари ломают твои мосты - захватывай их мосты.
|
||||||
|
best.b.drawbridge.text = Поднимите его — и река снова стена. В автоматическом режиме он поднимается при приближении врагов и опускается для ваших существ.
|
||||||
best.b.steel.text = Клёпаные железные листы на укреплённой стене. Быстро никто не прокопает, даже гномы.
|
best.b.steel.text = Клёпаные железные листы на укреплённой стене. Быстро никто не прокопает, даже гномы.
|
||||||
best.b.arrow.text = Стрела пробивает ещё до двух врагов за целью. Дёшево и надёжно.
|
best.b.arrow.text = Стрела пробивает ещё до двух врагов за целью. Дёшево и надёжно.
|
||||||
best.b.cannon.text = Урон по площади и отбрасывание - столкни рыцарей в лаву.
|
best.b.cannon.text = Урон по площади и отбрасывание - столкни рыцарей в лаву.
|
||||||
@@ -921,6 +938,9 @@ tool.plague.desc = Хворь, которая гложет врагов вокр
|
|||||||
tool.quake.label = Толчок
|
tool.quake.label = Толчок
|
||||||
tool.quake.name = Землетрясение
|
tool.quake.name = Землетрясение
|
||||||
tool.quake.desc = Земля дрожит: враги вокруг точки ранены и оглушены на две секунды. Твои существа стоят на ногах.
|
tool.quake.desc = Земля дрожит: враги вокруг точки ранены и оглушены на две секунды. Твои существа стоят на ногах.
|
||||||
|
tool.freeze.label = Мороз
|
||||||
|
tool.freeze.name = Мороз
|
||||||
|
tool.freeze.desc = Ледяной холод: лава вокруг на 40 секунд застывает в проходимый обсидиан, враги замерзают и замедляются.
|
||||||
tile.unexplored = Неизведанная тьма
|
tile.unexplored = Неизведанная тьма
|
||||||
|
|
||||||
# personality
|
# personality
|
||||||
|
|||||||
@@ -399,6 +399,9 @@ help.start_touch = Ťukni pre štart
|
|||||||
tool.bridge.label = Most
|
tool.bridge.label = Most
|
||||||
tool.bridge.name = Postaviť most
|
tool.bridge.name = Postaviť most
|
||||||
tool.bridge.desc = Postaví most cez vodu alebo lávu. Ťahaj z vlastnej zeme cez rieku; most rastie políčko po políčku od tvojho územia.
|
tool.bridge.desc = Postaví most cez vodu alebo lávu. Ťahaj z vlastnej zeme cez rieku; most rastie políčko po políčku od tvojho územia.
|
||||||
|
tool.drawbridge.label = Padací most
|
||||||
|
tool.drawbridge.name = Postaviť padací most
|
||||||
|
tool.drawbridge.desc = Most, ktorý môžeš vytiahnuť: potiahni cez rieku a postav ho, kliknutím prepínaš: dole, hore, automaticky (zdvihne sa, keď sa blížia nepriatelia). Drevo nad vodou horí, kameň nad lávou nie.
|
||||||
cost.bridge = {0} zlata/políčko cez vodu, {1} cez lávu
|
cost.bridge = {0} zlata/políčko cez vodu, {1} cez lávu
|
||||||
hint.bridge_where = Mosty musia začínať na tvojej zemi: ťahaj zo svojho územia cez rieku.
|
hint.bridge_where = Mosty musia začínať na tvojej zemi: ťahaj zo svojho územia cez rieku.
|
||||||
hint.bridge_fire = Drevené mosty horia: drž ohnivé pasce, ohnivý dych a blesky ďalej od nich – kamenné mosty nad lávou nehoria.
|
hint.bridge_fire = Drevené mosty horia: drž ohnivé pasce, ohnivý dych a blesky ďalej od nich – kamenné mosty nad lávou nehoria.
|
||||||
@@ -411,6 +414,15 @@ tile.lava = Láva
|
|||||||
tile.lava_info = Čo do nej spadne, zhorí. Prechádzajú ju kamenné mosty.
|
tile.lava_info = Čo do nej spadne, zhorí. Prechádzajú ju kamenné mosty.
|
||||||
tile.bridge = Drevený most
|
tile.bridge = Drevený most
|
||||||
tile.lavabridge = Kamenný most
|
tile.lavabridge = Kamenný most
|
||||||
|
tile.drawbridge = Padací most
|
||||||
|
tile.drawbridge_up = Vytiahnutý
|
||||||
|
tile.drawbridge_down = Spustený
|
||||||
|
tile.drawbridge_auto = Automaticky (dole)
|
||||||
|
tile.drawbridge_auto_up = Automaticky (hore)
|
||||||
|
tile.obsidian = Obsidián
|
||||||
|
tile.obsidian_info = Stuhnutá láva – roztopí sa o {0} s
|
||||||
|
tile.bridge_burning = Horí!
|
||||||
|
tile.bridge_worn = Poškodený {0}%
|
||||||
tile.shard = Črep tvojho jadra duše
|
tile.shard = Črep tvojho jadra duše
|
||||||
tile.shard_info = Zaber túto komnatu a získaš črep späť.
|
tile.shard_info = Zaber túto komnatu a získaš črep späť.
|
||||||
|
|
||||||
@@ -433,6 +445,10 @@ msg.vault_taken = Rytiersky trezor dobytý: poklad v hodnote {0} je tvoj.
|
|||||||
msg.shard_taken = Črep tvojho jadra duše je späť v tvojich rukách!
|
msg.shard_taken = Črep tvojho jadra duše je späť v tvojich rukách!
|
||||||
msg.bridge_torn = Rytieri strhli jeden z tvojich mostov!
|
msg.bridge_torn = Rytieri strhli jeden z tvojich mostov!
|
||||||
msg.bridge_fire = Jeden z tvojich mostov horí!
|
msg.bridge_fire = Jeden z tvojich mostov horí!
|
||||||
|
msg.drawbridge_up = Padací most je vytiahnutý.
|
||||||
|
msg.drawbridge_down = Padací most je spustený.
|
||||||
|
msg.drawbridge_auto = Padací most sa sám zdvihne, keď sa blížia nepriatelia.
|
||||||
|
msg.drawbridge_rises = Blížia sa nepriatelia: padací most sa zdvíha!
|
||||||
job.tear_bridge = Strháva most
|
job.tear_bridge = Strháva most
|
||||||
job.patrol = Na hliadke
|
job.patrol = Na hliadke
|
||||||
job.guard = Na stráži
|
job.guard = Na stráži
|
||||||
@@ -804,6 +820,7 @@ best.b.torture.text = Sem končia zajatí hrdinovia. S časom a žalárnikom nie
|
|||||||
best.b.temple.text = Modlitby liečia jadro duše a držia dobrú náladu. Kvôli chrámu prichádza plamenná kňažka.
|
best.b.temple.text = Modlitby liečia jadro duše a držia dobrú náladu. Kvôli chrámu prichádza plamenná kňažka.
|
||||||
best.b.aerie.text = Bidlá a hniezda pre lietajúce tvory. Netopiere, chrliče, sovy aj žeravý šarkan tu potrebujú miesto.
|
best.b.aerie.text = Bidlá a hniezda pre lietajúce tvory. Netopiere, chrliče, sovy aj žeravý šarkan tu potrebujú miesto.
|
||||||
best.b.bridge.text = Drevo cez vodu, kameň cez lávu. Rytieri tvoje mosty strhávajú - zaber tie ich.
|
best.b.bridge.text = Drevo cez vodu, kameň cez lávu. Rytieri tvoje mosty strhávajú - zaber tie ich.
|
||||||
|
best.b.drawbridge.text = Vytiahnutý most robí z rieky opäť múr. V automatickom režime sa zdvihne, keď sa blížia nepriatelia – a spustí sa pre tvoje bytosti.
|
||||||
best.b.steel.text = Nitované železné pláty na spevnenej stene. Nikto sa rýchlo neprekope, ani trpaslíci.
|
best.b.steel.text = Nitované železné pláty na spevnenej stene. Nikto sa rýchlo neprekope, ani trpaslíci.
|
||||||
best.b.arrow.text = Šíp preletí až dvoma ďalšími nepriateľmi za cieľom. Lacná a spoľahlivá.
|
best.b.arrow.text = Šíp preletí až dvoma ďalšími nepriateľmi za cieľom. Lacná a spoľahlivá.
|
||||||
best.b.cannon.text = Plošné poškodenie a odhodenie - natlač rytierov do lávy.
|
best.b.cannon.text = Plošné poškodenie a odhodenie - natlač rytierov do lávy.
|
||||||
@@ -929,6 +946,9 @@ tool.plague.desc = Choroba, ktorá zožiera nepriateľov okolo miesta a preskaku
|
|||||||
tool.quake.label = Otras
|
tool.quake.label = Otras
|
||||||
tool.quake.name = Zemetrasenie
|
tool.quake.name = Zemetrasenie
|
||||||
tool.quake.desc = Zem sa otrasie: nepriatelia okolo miesta sú zranení a na dve sekundy omráčení. Tvoje tvory sa udržia na nohách.
|
tool.quake.desc = Zem sa otrasie: nepriatelia okolo miesta sú zranení a na dve sekundy omráčení. Tvoje tvory sa udržia na nohách.
|
||||||
|
tool.freeze.label = Mráz
|
||||||
|
tool.freeze.name = Mráz
|
||||||
|
tool.freeze.desc = Ľadová zima: láva okolo miesta na 40 sekúnd stuhne na priechodný obsidián, nepriatelia sú podchladení a spomalení.
|
||||||
tile.unexplored = Nepreskúmaná temnota
|
tile.unexplored = Nepreskúmaná temnota
|
||||||
|
|
||||||
# personality
|
# personality
|
||||||
|
|||||||
@@ -399,6 +399,9 @@ help.start_touch = Додирни за почетак
|
|||||||
tool.bridge.label = Мост
|
tool.bridge.label = Мост
|
||||||
tool.bridge.name = Градња моста
|
tool.bridge.name = Градња моста
|
||||||
tool.bridge.desc = Гради мост преко воде или лаве. Превуци са свог тла преко реке; мост расте поље по поље од твоје територије.
|
tool.bridge.desc = Гради мост преко воде или лаве. Превуци са свог тла преко реке; мост расте поље по поље од твоје територије.
|
||||||
|
tool.drawbridge.label = Покретни мост
|
||||||
|
tool.drawbridge.name = Изгради покретни мост
|
||||||
|
tool.drawbridge.desc = Мост који можеш подићи: повуци преко реке да га изградиш, кликни за промену: доле, горе, аутоматски (диже се кад се непријатељи приближе). Дрво над водом гори, камен над лавом не.
|
||||||
cost.bridge = {0} злата/поље преко воде, {1} преко лаве
|
cost.bridge = {0} злата/поље преко воде, {1} преко лаве
|
||||||
hint.bridge_where = Мостови морају да почну на твом тлу: превуци са своје територије преко реке.
|
hint.bridge_where = Мостови морају да почну на твом тлу: превуци са своје територије преко реке.
|
||||||
hint.bridge_fire = Дрвени мостови горе: држи ватрене замке, ватрени дах и муње подаље – камени мостови над лавом не горе.
|
hint.bridge_fire = Дрвени мостови горе: држи ватрене замке, ватрени дах и муње подаље – камени мостови над лавом не горе.
|
||||||
@@ -411,6 +414,15 @@ tile.lava = Лава
|
|||||||
tile.lava_info = Шта год упадне, изгори. Камени мостови је премошћују.
|
tile.lava_info = Шта год упадне, изгори. Камени мостови је премошћују.
|
||||||
tile.bridge = Дрвени мост
|
tile.bridge = Дрвени мост
|
||||||
tile.lavabridge = Камени мост
|
tile.lavabridge = Камени мост
|
||||||
|
tile.drawbridge = Покретни мост
|
||||||
|
tile.drawbridge_up = Подигнут
|
||||||
|
tile.drawbridge_down = Спуштен
|
||||||
|
tile.drawbridge_auto = Аутоматски (доле)
|
||||||
|
tile.drawbridge_auto_up = Аутоматски (горе)
|
||||||
|
tile.obsidian = Опсидијан
|
||||||
|
tile.obsidian_info = Охлађена лава – топи се за {0} s
|
||||||
|
tile.bridge_burning = Гори!
|
||||||
|
tile.bridge_worn = Оштећен {0}%
|
||||||
tile.shard = Крхотина твог језгра душе
|
tile.shard = Крхотина твог језгра душе
|
||||||
tile.shard_info = Освоји ову одају да вратиш крхотину.
|
tile.shard_info = Освоји ову одају да вратиш крхотину.
|
||||||
|
|
||||||
@@ -433,6 +445,10 @@ msg.vault_taken = Витешки трезор освојен: благо вре
|
|||||||
msg.shard_taken = Крхотина твог језгра душе поново је у твојим рукама!
|
msg.shard_taken = Крхотина твог језгра душе поново је у твојим рукама!
|
||||||
msg.bridge_torn = Витезови су срушили један од твојих мостова!
|
msg.bridge_torn = Витезови су срушили један од твојих мостова!
|
||||||
msg.bridge_fire = Један од твојих мостова гори!
|
msg.bridge_fire = Један од твојих мостова гори!
|
||||||
|
msg.drawbridge_up = Покретни мост је подигнут.
|
||||||
|
msg.drawbridge_down = Покретни мост је спуштен.
|
||||||
|
msg.drawbridge_auto = Покретни мост се сам диже кад се непријатељи приближе.
|
||||||
|
msg.drawbridge_rises = Непријатељи близу: покретни мост се диже!
|
||||||
job.tear_bridge = Руши мост
|
job.tear_bridge = Руши мост
|
||||||
job.patrol = У патроли
|
job.patrol = У патроли
|
||||||
job.guard = На стражи
|
job.guard = На стражи
|
||||||
@@ -804,6 +820,7 @@ best.b.torture.text = Заробљени хероји заврше овде. С
|
|||||||
best.b.temple.text = Молитве лече језгро душе и држе дух високо. Свештеница пламена долази због храма.
|
best.b.temple.text = Молитве лече језгро душе и држе дух високо. Свештеница пламена долази због храма.
|
||||||
best.b.aerie.text = Пречке и гнезда за летећа створења. Шишмишима, гаргојлима, совама, па и жарком змају овде треба места.
|
best.b.aerie.text = Пречке и гнезда за летећа створења. Шишмишима, гаргојлима, совама, па и жарком змају овде треба места.
|
||||||
best.b.bridge.text = Дрво преко воде, камен преко лаве. Витезови руше твоје мостове - освоји њихове.
|
best.b.bridge.text = Дрво преко воде, камен преко лаве. Витезови руше твоје мостове - освоји њихове.
|
||||||
|
best.b.drawbridge.text = Подигнут, река је опет зид. На аутоматском се диже кад се непријатељи приближе – и спушта за твоја створења.
|
||||||
best.b.steel.text = Заковане гвоздене плоче на ојачаном зиду. Нико се не прокопа брзо, чак ни патуљци.
|
best.b.steel.text = Заковане гвоздене плоче на ојачаном зиду. Нико се не прокопа брзо, чак ни патуљци.
|
||||||
best.b.arrow.text = Стрела пробија до два непријатеља иза мете. Јефтино и поуздано.
|
best.b.arrow.text = Стрела пробија до два непријатеља иза мете. Јефтино и поуздано.
|
||||||
best.b.cannon.text = Штета у подручју и одбацивање - гурни витезове у лаву.
|
best.b.cannon.text = Штета у подручју и одбацивање - гурни витезове у лаву.
|
||||||
@@ -929,6 +946,9 @@ tool.plague.desc = Болест која изједа непријатеље о
|
|||||||
tool.quake.label = Потрес
|
tool.quake.label = Потрес
|
||||||
tool.quake.name = Земљотрес
|
tool.quake.name = Земљотрес
|
||||||
tool.quake.desc = Тло се тресе: непријатељи око места су повређени и ошамућени две секунде. Твоја створења остају на ногама.
|
tool.quake.desc = Тло се тресе: непријатељи око места су повређени и ошамућени две секунде. Твоја створења остају на ногама.
|
||||||
|
tool.freeze.label = Мраз
|
||||||
|
tool.freeze.name = Мраз
|
||||||
|
tool.freeze.desc = Ледена хладноћа: лава око места се на 40 секунди хлади у проходни опсидијан, непријатељи се смрзавају и успоравају.
|
||||||
tile.unexplored = Неистражена тама
|
tile.unexplored = Неистражена тама
|
||||||
|
|
||||||
# personality
|
# personality
|
||||||
|
|||||||
@@ -399,6 +399,9 @@ help.start_touch = Tryck för att börja
|
|||||||
tool.bridge.label = Bro
|
tool.bridge.label = Bro
|
||||||
tool.bridge.name = Bygg bro
|
tool.bridge.name = Bygg bro
|
||||||
tool.bridge.desc = Bygger en bro över vatten eller lava. Dra från din egen mark över floden; bron växer ruta för ruta från ditt territorium.
|
tool.bridge.desc = Bygger en bro över vatten eller lava. Dra från din egen mark över floden; bron växer ruta för ruta från ditt territorium.
|
||||||
|
tool.drawbridge.label = Vindbrygga
|
||||||
|
tool.drawbridge.name = Bygg vindbrygga
|
||||||
|
tool.drawbridge.desc = En bro du kan hissa upp: dra över floden för att bygga den, klicka för att växla: nere, uppe, automatisk (hissas när fiender närmar sig). Trä över vatten brinner, sten över lava gör det inte.
|
||||||
cost.bridge = {0} guld/ruta över vatten, {1} över lava
|
cost.bridge = {0} guld/ruta över vatten, {1} över lava
|
||||||
hint.bridge_where = Broar måste börja vid din egen mark: dra från ditt territorium över floden.
|
hint.bridge_where = Broar måste börja vid din egen mark: dra från ditt territorium över floden.
|
||||||
hint.bridge_fire = Träbroar brinner: håll eldfällor, eldande och blixtar borta från dem – stenbroar över lava är brandsäkra.
|
hint.bridge_fire = Träbroar brinner: håll eldfällor, eldande och blixtar borta från dem – stenbroar över lava är brandsäkra.
|
||||||
@@ -411,6 +414,15 @@ tile.lava = Lava
|
|||||||
tile.lava_info = Det som faller i brinner upp. Stenbroar korsar den.
|
tile.lava_info = Det som faller i brinner upp. Stenbroar korsar den.
|
||||||
tile.bridge = Träbro
|
tile.bridge = Träbro
|
||||||
tile.lavabridge = Stenbro
|
tile.lavabridge = Stenbro
|
||||||
|
tile.drawbridge = Vindbrygga
|
||||||
|
tile.drawbridge_up = Uppdragen
|
||||||
|
tile.drawbridge_down = Nedsänkt
|
||||||
|
tile.drawbridge_auto = Automatisk (nere)
|
||||||
|
tile.drawbridge_auto_up = Automatisk (uppe)
|
||||||
|
tile.obsidian = Obsidian
|
||||||
|
tile.obsidian_info = Avsvalnad lava – smälter om {0} s
|
||||||
|
tile.bridge_burning = Brinner!
|
||||||
|
tile.bridge_worn = Skadad {0}%
|
||||||
tile.shard = Skärva av din själskärna
|
tile.shard = Skärva av din själskärna
|
||||||
tile.shard_info = Erövra den här kammaren för att ta tillbaka skärvan.
|
tile.shard_info = Erövra den här kammaren för att ta tillbaka skärvan.
|
||||||
|
|
||||||
@@ -433,6 +445,10 @@ msg.vault_taken = Riddarvalv erövrat: skatter värda {0} är dina.
|
|||||||
msg.shard_taken = En skärva av din själskärna är tillbaka i dina händer!
|
msg.shard_taken = En skärva av din själskärna är tillbaka i dina händer!
|
||||||
msg.bridge_torn = Riddarna har rivit en av dina broar!
|
msg.bridge_torn = Riddarna har rivit en av dina broar!
|
||||||
msg.bridge_fire = En av dina broar brinner!
|
msg.bridge_fire = En av dina broar brinner!
|
||||||
|
msg.drawbridge_up = Vindbryggan är uppdragen.
|
||||||
|
msg.drawbridge_down = Vindbryggan är nedsänkt.
|
||||||
|
msg.drawbridge_auto = Vindbryggan hissas av sig själv när fiender närmar sig.
|
||||||
|
msg.drawbridge_rises = Fiender närmar sig: en vindbrygga hissas!
|
||||||
job.tear_bridge = River en bro
|
job.tear_bridge = River en bro
|
||||||
job.patrol = På patrull
|
job.patrol = På patrull
|
||||||
job.guard = På vakt
|
job.guard = På vakt
|
||||||
@@ -804,6 +820,7 @@ best.b.torture.text = Tillfångatagna hjältar hamnar här. Med tid och en fång
|
|||||||
best.b.temple.text = Böner läker själskärnan och håller humöret uppe. Flamprästinnan kommer för ett tempel.
|
best.b.temple.text = Böner läker själskärnan och håller humöret uppe. Flamprästinnan kommer för ett tempel.
|
||||||
best.b.aerie.text = Sittpinnar och bon för flygande varelser. Fladdermöss, gargoyler, ugglor och till och med glödlindormen behöver plats här.
|
best.b.aerie.text = Sittpinnar och bon för flygande varelser. Fladdermöss, gargoyler, ugglor och till och med glödlindormen behöver plats här.
|
||||||
best.b.bridge.text = Trä över vatten, sten över lava. Riddarna river dina broar - erövra deras.
|
best.b.bridge.text = Trä över vatten, sten över lava. Riddarna river dina broar - erövra deras.
|
||||||
|
best.b.drawbridge.text = Uppdragen är floden en mur igen. På automatik hissas den när fiender närmar sig – och sänks för dina egna varelser.
|
||||||
best.b.steel.text = Nitade järnplåtar på en förstärkt vägg. Ingen gräver sig snabbt igenom, inte ens dvärgar.
|
best.b.steel.text = Nitade järnplåtar på en förstärkt vägg. Ingen gräver sig snabbt igenom, inte ens dvärgar.
|
||||||
best.b.arrow.text = Pilen genomborrar upp till två fiender till bakom målet. Billigt och pålitligt.
|
best.b.arrow.text = Pilen genomborrar upp till två fiender till bakom målet. Billigt och pålitligt.
|
||||||
best.b.cannon.text = Områdesskada och tillbakaslag - knuffa ner riddarna i lavan.
|
best.b.cannon.text = Områdesskada och tillbakaslag - knuffa ner riddarna i lavan.
|
||||||
@@ -929,6 +946,9 @@ tool.plague.desc = En sjukdom som fräter på fienderna runt platsen och hoppar
|
|||||||
tool.quake.label = Skalv
|
tool.quake.label = Skalv
|
||||||
tool.quake.name = Jordskalv
|
tool.quake.name = Jordskalv
|
||||||
tool.quake.desc = Marken skakar: fiender runt platsen skadas och bedövas i två sekunder. Dina varelser står kvar på fötterna.
|
tool.quake.desc = Marken skakar: fiender runt platsen skadas och bedövas i två sekunder. Dina varelser står kvar på fötterna.
|
||||||
|
tool.freeze.label = Frost
|
||||||
|
tool.freeze.name = Frost
|
||||||
|
tool.freeze.desc = Isande kyla: lava runt platsen kyls till gångbar obsidian i 40 sekunder, fiender blir nedkylda och långsamma.
|
||||||
tile.unexplored = Outforskat mörker
|
tile.unexplored = Outforskat mörker
|
||||||
|
|
||||||
# personality
|
# personality
|
||||||
|
|||||||
+234
-2
@@ -1,6 +1,8 @@
|
|||||||
// Bridges under strain: wooden bridges catch fire (fire traps, fire breath, fireballs, lightning),
|
// Bridges under strain: wooden bridges catch fire (fire traps, fire breath, fireballs, lightning),
|
||||||
// the fire spreads along the planks and the bridge collapses into the river; knights wear bridges
|
// the fire spreads along the planks and the bridge collapses into the river; knights wear bridges
|
||||||
// down step by step, pit imps mend them again. Stone bridges over lava never burn.
|
// down step by step, pit imps mend them again. Stone bridges over lava never burn.
|
||||||
|
// Drawbridges are raised and lowered by hand or rise by themselves when enemies come near.
|
||||||
|
// Frost (the frost glow trap, the frost spell) cools lava into walkable obsidian for a while.
|
||||||
|
|
||||||
use crate::game::*;
|
use crate::game::*;
|
||||||
use crate::map::*;
|
use crate::map::*;
|
||||||
@@ -17,17 +19,26 @@ pub const BURN_DPS: f32 = 6.0;
|
|||||||
pub const TEAR_RATE: f32 = 0.12;
|
pub const TEAR_RATE: f32 = 0.12;
|
||||||
// wear an imp mends per second
|
// wear an imp mends per second
|
||||||
pub const MEND_RATE: f32 = 0.25;
|
pub const MEND_RATE: f32 = 0.25;
|
||||||
|
// an automatic drawbridge rises when an enemy comes this close (tiles)
|
||||||
|
pub const DRAWBRIDGE_WATCH: f32 = 6.0;
|
||||||
|
// seconds the frost spell keeps lava cooled; the last seconds it steams
|
||||||
|
pub const FREEZE_TIME: f32 = 40.0;
|
||||||
|
pub const MELT_WARN: f32 = 5.0;
|
||||||
|
|
||||||
#[derive(Clone, Debug, Default, Serialize, Deserialize)]
|
#[derive(Clone, Debug, Default, Serialize, Deserialize)]
|
||||||
pub struct BridgeWork {
|
pub struct BridgeWork {
|
||||||
pub burning: Vec<(usize, f32)>, // tile, seconds it burns already
|
pub burning: Vec<(usize, f32)>, // tile, seconds it burns already
|
||||||
pub wear: Vec<(usize, f32)>, // tile, damage 0..1
|
pub wear: Vec<(usize, f32)>, // tile, damage 0..1
|
||||||
|
#[serde(default)]
|
||||||
|
pub cooled: Vec<(usize, f32)>, // obsidian tile, seconds until it melts
|
||||||
|
#[serde(default)]
|
||||||
|
pub watch_t: f32, // automatic drawbridges look around twice a second
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Game {
|
impl Game {
|
||||||
// a wooden bridge (or wooden drawbridge) that can burn
|
// a wooden bridge (or wooden drawbridge) that can burn
|
||||||
pub fn wooden_bridge(&self, i: usize) -> bool {
|
pub fn wooden_bridge(&self, i: usize) -> bool {
|
||||||
self.map.t.get(i).map_or(false, |t| t.kind == Kind::Bridge)
|
self.map.t.get(i).map_or(false, |t| t.kind == Kind::Bridge || (t.kind == Kind::Drawbridge && t.res & DB_LAVA == 0))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn burning(&self, i: usize) -> bool {
|
pub fn burning(&self, i: usize) -> bool {
|
||||||
@@ -65,8 +76,10 @@ impl Game {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// the shared part of every step: fire, collapse
|
// the shared part of every step: fire, collapse, drawbridges, melting obsidian
|
||||||
pub(crate) fn update_bridges(&mut self, dt: f32) {
|
pub(crate) fn update_bridges(&mut self, dt: f32) {
|
||||||
|
self.update_drawbridges(dt);
|
||||||
|
self.update_obsidian(dt);
|
||||||
if self.bridgework.burning.is_empty() {
|
if self.bridgework.burning.is_empty() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -135,6 +148,7 @@ impl Game {
|
|||||||
tl.reserved = 0;
|
tl.reserved = 0;
|
||||||
tl.res = 0;
|
tl.res = 0;
|
||||||
self.bridgework.wear.retain(|w| w.0 != i);
|
self.bridgework.wear.retain(|w| w.0 != i);
|
||||||
|
self.bridgework.burning.retain(|w| w.0 != i);
|
||||||
self.ground_lost(i);
|
self.ground_lost(i);
|
||||||
let (x, y) = xy(i);
|
let (x, y) = xy(i);
|
||||||
self.fx(6, x as f32 + 0.5, y as f32 + 0.5, 0.0, 0.0, 0.6, 0xff3a5a7a);
|
self.fx(6, x as f32 + 0.5, y as f32 + 0.5, 0.0, 0.0, 0.6, 0xff3a5a7a);
|
||||||
@@ -187,6 +201,181 @@ impl Game {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ------------------------------------------------------------------ drawbridges and frost
|
||||||
|
impl Game {
|
||||||
|
// the drawbridge tiles connected to tile i (same owner)
|
||||||
|
pub fn drawbridge_group(&self, i: usize) -> Vec<usize> {
|
||||||
|
let owner = self.map.t[i].owner;
|
||||||
|
let mut group = vec![i];
|
||||||
|
let mut k = 0;
|
||||||
|
while k < group.len() {
|
||||||
|
let (x, y) = xy(group[k]);
|
||||||
|
for &(dx, dy) in DIR4.iter() {
|
||||||
|
if !inb(x + dx, y + dy) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
let n = idx(x + dx, y + dy);
|
||||||
|
let t = &self.map.t[n];
|
||||||
|
if t.kind == Kind::Drawbridge && t.owner == owner && !group.contains(&n) {
|
||||||
|
group.push(n);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
k += 1;
|
||||||
|
}
|
||||||
|
group
|
||||||
|
}
|
||||||
|
|
||||||
|
// the drawbridge tool: a click on an own drawbridge switches it (down -> up -> automatic -> down),
|
||||||
|
// anything else builds drawbridges like bridges
|
||||||
|
pub fn drawbridge_order(&mut self, x0: i32, y0: i32, x1: i32, y1: i32) {
|
||||||
|
if x0 == x1 && y0 == y1 && inb(x0, y0) {
|
||||||
|
let i = idx(x0, y0);
|
||||||
|
let t = self.map.t[i];
|
||||||
|
if t.kind == Kind::Drawbridge && t.owner == self.me {
|
||||||
|
let state = t.res & (DB_RAISED | DB_AUTO);
|
||||||
|
let next = match state {
|
||||||
|
0 => DB_RAISED,
|
||||||
|
s if s & DB_AUTO != 0 => 0,
|
||||||
|
_ => DB_AUTO,
|
||||||
|
};
|
||||||
|
self.set_drawbridge(i, next);
|
||||||
|
let key = match next {
|
||||||
|
DB_RAISED => "msg.drawbridge_up",
|
||||||
|
DB_AUTO => "msg.drawbridge_auto",
|
||||||
|
_ => "msg.drawbridge_down",
|
||||||
|
};
|
||||||
|
self.msg(key, vec![]);
|
||||||
|
self.sfx_ui(Sfx::Click);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
self.build_bridges_of(x0, y0, x1, y1, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// sets the state bits (DB_RAISED, DB_AUTO) of the whole drawbridge at tile i
|
||||||
|
pub fn set_drawbridge(&mut self, i: usize, state: u8) {
|
||||||
|
let group = self.drawbridge_group(i);
|
||||||
|
let raise = state & DB_RAISED != 0 && !self.map.t[i].raised();
|
||||||
|
let lower = state & DB_RAISED == 0 && self.map.t[i].raised();
|
||||||
|
for &g in &group {
|
||||||
|
let t = &mut self.map.t[g];
|
||||||
|
t.res = (t.res & DB_LAVA) | state;
|
||||||
|
}
|
||||||
|
if raise {
|
||||||
|
// whoever stands on it jumps to the bank (or falls)
|
||||||
|
for &g in &group {
|
||||||
|
self.ground_lost(g);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if raise || lower {
|
||||||
|
let (x, y) = xy(i);
|
||||||
|
self.sfx(Sfx::Build, x as f32 + 0.5, y as f32 + 0.5);
|
||||||
|
for &g in &group {
|
||||||
|
let (gx, gy) = xy(g);
|
||||||
|
self.fx(6, gx as f32 + 0.5, gy as f32 + 0.5, 0.0, 0.0, 0.3, 0xff506070);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// automatic drawbridges rise while an enemy of their master is near, and come down again
|
||||||
|
fn update_drawbridges(&mut self, dt: f32) {
|
||||||
|
self.bridgework.watch_t -= dt;
|
||||||
|
if self.bridgework.watch_t > 0.0 {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
self.bridgework.watch_t = 0.5;
|
||||||
|
let mut seen: Vec<usize> = Vec::new();
|
||||||
|
for i in 0..self.map.t.len() {
|
||||||
|
let t = self.map.t[i];
|
||||||
|
if t.kind != Kind::Drawbridge || t.res & DB_AUTO == 0 || seen.contains(&i) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
let group = self.drawbridge_group(i);
|
||||||
|
seen.extend(group.iter().copied());
|
||||||
|
let side = t.owner.side();
|
||||||
|
let r2 = DRAWBRIDGE_WATCH * DRAWBRIDGE_WATCH;
|
||||||
|
let enemy = self.ents.iter().any(|e| {
|
||||||
|
e.alive
|
||||||
|
&& !e.held
|
||||||
|
&& e.captive == 0
|
||||||
|
&& !e.chained
|
||||||
|
&& e.side() != side
|
||||||
|
&& !self.allied(side, e.side())
|
||||||
|
&& group.iter().any(|&g| {
|
||||||
|
let (gx, gy) = xy(g);
|
||||||
|
(e.x - gx as f32 - 0.5).powi(2) + (e.y - gy as f32 - 0.5).powi(2) < r2
|
||||||
|
})
|
||||||
|
});
|
||||||
|
if enemy != t.raised() {
|
||||||
|
self.set_drawbridge(i, DB_AUTO | if enemy { DB_RAISED } else { 0 });
|
||||||
|
if enemy && t.owner == self.me {
|
||||||
|
self.msg("msg.drawbridge_rises", vec![]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// frost on tile i: lava turns to obsidian (or stays it) for at least `secs`
|
||||||
|
pub fn cool_lava(&mut self, i: usize, secs: f32) {
|
||||||
|
let t = &mut self.map.t[i];
|
||||||
|
match t.kind {
|
||||||
|
Kind::Lava => {
|
||||||
|
t.kind = Kind::Obsidian;
|
||||||
|
t.owner = Owner::None;
|
||||||
|
self.bridgework.cooled.push((i, secs));
|
||||||
|
let (x, y) = xy(i);
|
||||||
|
for _ in 0..3 {
|
||||||
|
self.parts.push(Part { kind: SMOKE, x: x as f32 + self.vrng.f(), y: y as f32 + self.vrng.f(), h: 0.1, vx: 0.0, vy: 0.0, vh: 0.5, t: 0.0, max: 1.6, col: abgr(200, 210, 220), size: 0.16 });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Kind::Obsidian => {
|
||||||
|
if let Some(c) = self.bridgework.cooled.iter_mut().find(|c| c.0 == i) {
|
||||||
|
c.1 = c.1.max(secs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_ => {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// frost in a circle around (x, y)
|
||||||
|
pub fn cool_lava_around(&mut self, x: f32, y: f32, r: f32, secs: f32) {
|
||||||
|
let ri = r.ceil() as i32;
|
||||||
|
let (cx, cy) = (x.floor() as i32, y.floor() as i32);
|
||||||
|
for ty in cy - ri..=cy + ri {
|
||||||
|
for tx in cx - ri..=cx + ri {
|
||||||
|
if inb(tx, ty) && (tx as f32 + 0.5 - x).powi(2) + (ty as f32 + 0.5 - y).powi(2) <= r * r {
|
||||||
|
self.cool_lava(idx(tx, ty), secs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// obsidian melts again: it steams before, and whoever still stands there is burnt
|
||||||
|
fn update_obsidian(&mut self, dt: f32) {
|
||||||
|
let mut k = 0;
|
||||||
|
while k < self.bridgework.cooled.len() {
|
||||||
|
let (i, left) = self.bridgework.cooled[k];
|
||||||
|
if self.map.t[i].kind != Kind::Obsidian {
|
||||||
|
self.bridgework.cooled.swap_remove(k);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
let left = left - dt;
|
||||||
|
self.bridgework.cooled[k].1 = left;
|
||||||
|
let (x, y) = xy(i);
|
||||||
|
if left < MELT_WARN && self.vrng.f() < dt * 4.0 {
|
||||||
|
self.parts.push(Part { kind: SMOKE, x: x as f32 + self.vrng.f(), y: y as f32 + self.vrng.f(), h: 0.05, vx: 0.0, vy: 0.0, vh: 0.4, t: 0.0, max: 1.4, col: abgr(150, 150, 160), size: 0.14 });
|
||||||
|
}
|
||||||
|
if left <= 0.0 {
|
||||||
|
self.bridgework.cooled.swap_remove(k);
|
||||||
|
self.map.t[i].kind = Kind::Lava;
|
||||||
|
self.ground_lost(i);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
k += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
@@ -245,4 +434,47 @@ mod tests {
|
|||||||
while g.wear_bridge(tiles[1], 1.0) {}
|
while g.wear_bridge(tiles[1], 1.0) {}
|
||||||
assert_eq!(g.map.t[tiles[1]].kind, Kind::Water);
|
assert_eq!(g.map.t[tiles[1]].kind, Kind::Water);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn drawbridges_switch_and_rise_by_themselves() {
|
||||||
|
let (mut g, tiles) = bridge_game();
|
||||||
|
for &i in &tiles {
|
||||||
|
g.map.t[i].kind = Kind::Drawbridge;
|
||||||
|
g.map.t[i].res = 0;
|
||||||
|
}
|
||||||
|
let (x, y) = xy(tiles[2]);
|
||||||
|
g.drawbridge_order(x, y, x, y);
|
||||||
|
assert!(tiles.iter().all(|&i| g.map.t[i].raised()), "the whole bridge goes up");
|
||||||
|
assert!(!g.map.walk(x, y));
|
||||||
|
g.drawbridge_order(x, y, x, y);
|
||||||
|
assert!(tiles.iter().all(|&i| g.map.t[i].res & DB_AUTO != 0 && !g.map.t[i].raised()), "automatic");
|
||||||
|
// a knight comes near: it rises
|
||||||
|
let id = g.spawn(EK::Knight, true, x as f32 + 0.5, y as f32 + 3.5, 1);
|
||||||
|
for _ in 0..20 {
|
||||||
|
g.update(0.05);
|
||||||
|
}
|
||||||
|
assert!(g.map.t[tiles[2]].raised(), "risen for the knight");
|
||||||
|
g.ents.retain(|e| e.id != id);
|
||||||
|
for _ in 0..20 {
|
||||||
|
g.update(0.05);
|
||||||
|
}
|
||||||
|
assert!(!g.map.t[tiles[2]].raised(), "down again");
|
||||||
|
g.drawbridge_order(x, y, x, y);
|
||||||
|
assert_eq!(g.map.t[tiles[2]].res & (DB_RAISED | DB_AUTO), 0, "back to manual, down");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn frost_cools_lava_for_a_while() {
|
||||||
|
let mut g = Game::new(5, 64, 64);
|
||||||
|
let (cx, cy) = g.map.core;
|
||||||
|
let i = idx(cx + 6, cy + 6);
|
||||||
|
g.map.t[i].kind = Kind::Lava;
|
||||||
|
g.cool_lava(i, 2.0);
|
||||||
|
assert_eq!(g.map.t[i].kind, Kind::Obsidian);
|
||||||
|
assert!(g.map.t[i].walkable());
|
||||||
|
for _ in 0..(3 * 20) {
|
||||||
|
g.update(0.05);
|
||||||
|
}
|
||||||
|
assert_eq!(g.map.t[i].kind, Kind::Lava, "melted again");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
+3
-1
@@ -34,6 +34,7 @@ pub enum Act {
|
|||||||
Sell(Rect),
|
Sell(Rect),
|
||||||
Bridge(Rect),
|
Bridge(Rect),
|
||||||
Steel(Rect),
|
Steel(Rect),
|
||||||
|
Drawbridge(Rect), // build drawbridges, or (one tile on an own drawbridge) switch it: down, up, automatic
|
||||||
Tower {
|
Tower {
|
||||||
kind: TowerKind,
|
kind: TowerKind,
|
||||||
x: i32,
|
x: i32,
|
||||||
@@ -141,7 +142,7 @@ impl Game {
|
|||||||
Act::Dig(r) => (rect_center(r), MARK_DIG, 4.0),
|
Act::Dig(r) => (rect_center(r), MARK_DIG, 4.0),
|
||||||
Act::Room { r, .. } => (rect_center(r), MARK_ROOM, 5.0),
|
Act::Room { r, .. } => (rect_center(r), MARK_ROOM, 5.0),
|
||||||
Act::Sell(r) => (rect_center(r), MARK_SELL, 4.0),
|
Act::Sell(r) => (rect_center(r), MARK_SELL, 4.0),
|
||||||
Act::Bridge(r) => (rect_center(r), MARK_BRIDGE, 4.0),
|
Act::Bridge(r) | Act::Drawbridge(r) => (rect_center(r), MARK_BRIDGE, 4.0),
|
||||||
Act::Steel(r) => (rect_center(r), MARK_STEEL, 4.0),
|
Act::Steel(r) => (rect_center(r), MARK_STEEL, 4.0),
|
||||||
Act::Tower { x, y, .. } => (point(x as f32, y as f32), MARK_TOWER, 6.0),
|
Act::Tower { x, y, .. } => (point(x as f32, y as f32), MARK_TOWER, 6.0),
|
||||||
Act::Trap { x, y, .. } => (point(x as f32, y as f32), MARK_TRAP, 6.0),
|
Act::Trap { x, y, .. } => (point(x as f32, y as f32), MARK_TRAP, 6.0),
|
||||||
@@ -185,6 +186,7 @@ impl Game {
|
|||||||
Act::Room { room, r } => self.build_rect(room as usize, r.x0, r.y0, r.x1, r.y1),
|
Act::Room { room, r } => self.build_rect(room as usize, r.x0, r.y0, r.x1, r.y1),
|
||||||
Act::Sell(r) => self.sell_rect(r.x0, r.y0, r.x1, r.y1),
|
Act::Sell(r) => self.sell_rect(r.x0, r.y0, r.x1, r.y1),
|
||||||
Act::Bridge(r) => self.build_bridges(r.x0, r.y0, r.x1, r.y1),
|
Act::Bridge(r) => self.build_bridges(r.x0, r.y0, r.x1, r.y1),
|
||||||
|
Act::Drawbridge(r) => self.drawbridge_order(r.x0, r.y0, r.x1, r.y1),
|
||||||
Act::Steel(r) => self.build_steel(r.x0, r.y0, r.x1, r.y1),
|
Act::Steel(r) => self.build_steel(r.x0, r.y0, r.x1, r.y1),
|
||||||
Act::Tower { kind, x, y } => self.build_tower(kind, x, y),
|
Act::Tower { kind, x, y } => self.build_tower(kind, x, y),
|
||||||
Act::Trap { kind, x, y } => self.place_trap(kind, x, y),
|
Act::Trap { kind, x, y } => self.place_trap(kind, x, y),
|
||||||
|
|||||||
+22
-7
@@ -750,6 +750,8 @@ pub const ROOM_NAMES: [&str; N_ROOMS] = [
|
|||||||
|
|
||||||
// bridge cost per tile: over water, over lava
|
// bridge cost per tile: over water, over lava
|
||||||
pub const BRIDGE_COST: [i32; 2] = [30, 75];
|
pub const BRIDGE_COST: [i32; 2] = [30, 75];
|
||||||
|
// a drawbridge tile (over water or lava)
|
||||||
|
pub const DRAWBRIDGE_COST: i32 = 150;
|
||||||
// steel wall cost per tile: from earth, from a reinforced wall
|
// steel wall cost per tile: from earth, from a reinforced wall
|
||||||
pub const STEEL_COST: [i32; 2] = [80, 40];
|
pub const STEEL_COST: [i32; 2] = [80, 40];
|
||||||
pub const STEEL_HP: f32 = 40.0;
|
pub const STEEL_HP: f32 = 40.0;
|
||||||
@@ -2820,7 +2822,7 @@ impl Game {
|
|||||||
|
|
||||||
// the ground of tile i turned into river (bridge removed): units on it fall in
|
// the ground of tile i turned into river (bridge removed): units on it fall in
|
||||||
pub(crate) fn ground_lost(&mut self, i: usize) {
|
pub(crate) fn ground_lost(&mut self, i: usize) {
|
||||||
let lava = self.map.t[i].kind == Kind::Lava;
|
let lava = self.map.t[i].river() == Some(Kind::Lava);
|
||||||
let (x, y) = xy(i);
|
let (x, y) = xy(i);
|
||||||
for j in 0..self.ents.len() {
|
for j in 0..self.ents.len() {
|
||||||
let e = &self.ents[j];
|
let e = &self.ents[j];
|
||||||
@@ -2890,6 +2892,10 @@ impl Game {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn build_bridges(&mut self, x0: i32, y0: i32, x1: i32, y1: i32) {
|
pub fn build_bridges(&mut self, x0: i32, y0: i32, x1: i32, y1: i32) {
|
||||||
|
self.build_bridges_of(x0, y0, x1, y1, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn build_bridges_of(&mut self, x0: i32, y0: i32, x1: i32, y1: i32, draw: bool) {
|
||||||
let (mut built, mut broke, mut any_river) = (0, false, false);
|
let (mut built, mut broke, mut any_river) = (0, false, false);
|
||||||
loop {
|
loop {
|
||||||
let mut add = Vec::new();
|
let mut add = Vec::new();
|
||||||
@@ -2911,14 +2917,21 @@ impl Game {
|
|||||||
let mut progress = false;
|
let mut progress = false;
|
||||||
for i in add {
|
for i in add {
|
||||||
let lava = self.map.t[i].kind == Kind::Lava;
|
let lava = self.map.t[i].kind == Kind::Lava;
|
||||||
let cost = BRIDGE_COST[lava as usize] as f32;
|
let cost = if draw { DRAWBRIDGE_COST } else { BRIDGE_COST[lava as usize] } as f32;
|
||||||
if self.gold < cost {
|
if self.gold < cost {
|
||||||
broke = true;
|
broke = true;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
self.gold -= cost;
|
self.gold -= cost;
|
||||||
let t = &mut self.map.t[i];
|
let t = &mut self.map.t[i];
|
||||||
t.kind = if lava { Kind::LavaBridge } else { Kind::Bridge };
|
t.kind = if draw {
|
||||||
|
Kind::Drawbridge
|
||||||
|
} else if lava {
|
||||||
|
Kind::LavaBridge
|
||||||
|
} else {
|
||||||
|
Kind::Bridge
|
||||||
|
};
|
||||||
|
t.res = if draw && lava { DB_LAVA } else { 0 };
|
||||||
t.owner = self.me;
|
t.owner = self.me;
|
||||||
built += 1;
|
built += 1;
|
||||||
progress = true;
|
progress = true;
|
||||||
@@ -3060,7 +3073,7 @@ impl Game {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if let Some(t) = self.map.get(cx + dx, cy + dy) {
|
if let Some(t) = self.map.get(cx + dx, cy + dy) {
|
||||||
if t.bridge() && t.owner == self.me {
|
if t.bridge() && !t.raised() && t.owner == self.me {
|
||||||
return Some(idx(cx + dx, cy + dy));
|
return Some(idx(cx + dx, cy + dy));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3073,7 +3086,7 @@ impl Game {
|
|||||||
// a knight walks next to the bridge tile and tears it down
|
// a knight walks next to the bridge tile and tears it down
|
||||||
fn tear_bridge(&mut self, e: &mut Ent, i: usize, dt: f32) -> bool {
|
fn tear_bridge(&mut self, e: &mut Ent, i: usize, dt: f32) -> bool {
|
||||||
let t = self.map.t[i];
|
let t = self.map.t[i];
|
||||||
if !t.bridge() || t.owner != self.me {
|
if !t.bridge() || t.raised() || t.owner != self.me {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
let (bx, by) = xy(i);
|
let (bx, by) = xy(i);
|
||||||
@@ -4714,11 +4727,13 @@ impl Game {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if t.owner == self.me && t.bridge() {
|
if t.owner == self.me && t.bridge() {
|
||||||
let lava = t.kind == Kind::LavaBridge;
|
let lava = t.river() == Some(Kind::Lava);
|
||||||
|
let cost = if t.kind == Kind::Drawbridge { DRAWBRIDGE_COST } else { BRIDGE_COST[lava as usize] };
|
||||||
t.kind = if lava { Kind::Lava } else { Kind::Water };
|
t.kind = if lava { Kind::Lava } else { Kind::Water };
|
||||||
t.owner = Owner::None;
|
t.owner = Owner::None;
|
||||||
t.reserved = 0;
|
t.reserved = 0;
|
||||||
refund += BRIDGE_COST[lava as usize] as f32 * 0.5;
|
t.res = 0;
|
||||||
|
refund += cost as f32 * 0.5;
|
||||||
self.ground_lost(i);
|
self.ground_lost(i);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
+51
-3
@@ -80,6 +80,9 @@ pub const T_ARENA: u32 = 178;
|
|||||||
pub const T_ALTAR: u32 = 182;
|
pub const T_ALTAR: u32 = 182;
|
||||||
pub const I_ORDERS: u32 = 186; // attack, guard
|
pub const I_ORDERS: u32 = 186; // attack, guard
|
||||||
pub const T_RIVAL3: u32 = 189; // 4 variants: floor of the yellow master
|
pub const T_RIVAL3: u32 = 189; // 4 variants: floor of the yellow master
|
||||||
|
pub const I_DRAWBRIDGE: u32 = 193; // drawbridge tool: a raised flap on chains
|
||||||
|
pub const I_FREEZE: u32 = 194; // frost spell: a snowflake
|
||||||
|
pub const T_OBSIDIAN: u32 = 195; // 4 variants: cooled lava, dark glass with glowing seams
|
||||||
|
|
||||||
pub struct Gfx {
|
pub struct Gfx {
|
||||||
pub atlas: Texture2D,
|
pub atlas: Texture2D,
|
||||||
@@ -803,6 +806,50 @@ fn gen_atlas() -> Image {
|
|||||||
None
|
None
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
// drawbridge tool icon: a raised flap with its chains above a river
|
||||||
|
cv.cell(I_DRAWBRIDGE, |x, y| {
|
||||||
|
if (3..=5).contains(&x) && (2..=12).contains(&y) {
|
||||||
|
Some(if y % 3 == 0 { c(70, 46, 26) } else { c(150, 106, 60) })
|
||||||
|
} else if y == 12 && (5..=13).contains(&x) {
|
||||||
|
Some(c(110, 76, 44))
|
||||||
|
} else if (x - 5) * 2 == (y - 2) * 1 + 2 && (6..=12).contains(&x) {
|
||||||
|
Some(c(170, 170, 180)) // chain
|
||||||
|
} else if x == 13 && (3..=12).contains(&y) {
|
||||||
|
Some(c(90, 90, 100)) // post
|
||||||
|
} else if y >= 13 && (1..=14).contains(&x) {
|
||||||
|
Some(c(60, 110, 170))
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// frost spell icon: a snowflake
|
||||||
|
cv.cell(I_FREEZE, |x, y| {
|
||||||
|
let (dx, dy) = (x - 8, y - 8);
|
||||||
|
let arm = dx == 0 || dy == 0 || dx == dy || dx == -dy;
|
||||||
|
let r = dx.abs().max(dy.abs());
|
||||||
|
if arm && r <= 6 {
|
||||||
|
Some(if r <= 1 { c(240, 250, 255) } else { c(150, 210, 255) })
|
||||||
|
} else if r == 4 && (dx.abs() == 1 || dy.abs() == 1) && (dx == 0 || dy == 0 || dx.abs() == dy.abs() + 1 || dy.abs() == dx.abs() + 1) {
|
||||||
|
Some(c(200, 235, 255))
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// obsidian: cooled lava, dark glass with a few glowing seams
|
||||||
|
for v in 0..4u32 {
|
||||||
|
cv.cell(T_OBSIDIAN + v, |x, y| {
|
||||||
|
let r = hash(x, y, v + 400);
|
||||||
|
if (x * 5 + y * 3 + v as i32 * 7) % 29 == 0 || ((x + 2 * y + v as i32) % 23 == 0 && r % 2 == 0) {
|
||||||
|
Some(c(230, 90, 30))
|
||||||
|
} else if r % 11 == 0 {
|
||||||
|
Some(c(70, 60, 90))
|
||||||
|
} else if (x + y) % 7 == 0 {
|
||||||
|
Some(c(34, 26, 40))
|
||||||
|
} else {
|
||||||
|
Some(c(22, 16, 26))
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
// ---- more treasures: veins (earth with embedded pieces) and treasury piles
|
// ---- more treasures: veins (earth with embedded pieces) and treasury piles
|
||||||
let vein = |x: i32, y: i32, v: u32, seed: u32, hi: Color, mid: Color, lo: Color, size: f32| -> Color {
|
let vein = |x: i32, y: i32, v: u32, seed: u32, hi: Color, mid: Color, lo: Color, size: f32| -> Color {
|
||||||
let mut best = 99.0f32;
|
let mut best = 99.0f32;
|
||||||
@@ -1927,7 +1974,8 @@ impl Gfx {
|
|||||||
Kind::Tower => T_CLAIM + v,
|
Kind::Tower => T_CLAIM + v,
|
||||||
Kind::Water => T_WATER + v,
|
Kind::Water => T_WATER + v,
|
||||||
Kind::Lava => T_LAVA + v,
|
Kind::Lava => T_LAVA + v,
|
||||||
Kind::Bridge => T_BRIDGE + (v & 1),
|
Kind::Bridge | Kind::Drawbridge => T_BRIDGE + (v & 1),
|
||||||
|
Kind::Obsidian => T_OBSIDIAN + v,
|
||||||
Kind::LavaBridge => T_STONEBRIDGE + (v & 1),
|
Kind::LavaBridge => T_STONEBRIDGE + (v & 1),
|
||||||
Kind::Shard => T_HEROFLOOR + v,
|
Kind::Shard => T_HEROFLOOR + v,
|
||||||
Kind::Aerie => T_AERIE + v,
|
Kind::Aerie => T_AERIE + v,
|
||||||
@@ -2137,8 +2185,8 @@ mod doc_images {
|
|||||||
for (k, t) in crate::traps::TRAP_KINDS.iter().enumerate() {
|
for (k, t) in crate::traps::TRAP_KINDS.iter().enumerate() {
|
||||||
save(&atlas, Gfx::cell(I_TRAPS + k as u32), 4, &format!("docs/img/icons/{}.png", t.id()));
|
save(&atlas, Gfx::cell(I_TRAPS + k as u32), 4, &format!("docs/img/icons/{}.png", t.id()));
|
||||||
}
|
}
|
||||||
for (k, s) in crate::spells::SPELLS.iter().enumerate() {
|
for s in crate::spells::SPELLS.iter() {
|
||||||
save(&atlas, Gfx::cell(I_SPELLS + k as u32), 4, &format!("docs/img/icons/{}.png", s.id()));
|
save(&atlas, Gfx::cell(crate::spells::spell_icon(*s)), 4, &format!("docs/img/icons/{}.png", s.id()));
|
||||||
}
|
}
|
||||||
for (id, cell) in [("lightning", I_BOLT), ("heal", I_HEAL), ("summon", I_SUMMON), ("arrow", I_ARROW), ("cannon", I_CANNON), ("magic", I_MAGIC), ("rune", I_RUNE)] {
|
for (id, cell) in [("lightning", I_BOLT), ("heal", I_HEAL), ("summon", I_SUMMON), ("arrow", I_ARROW), ("cannon", I_CANNON), ("magic", I_MAGIC), ("rune", I_RUNE)] {
|
||||||
save(&atlas, Gfx::cell(cell), 4, &format!("docs/img/icons/{}.png", id));
|
save(&atlas, Gfx::cell(cell), 4, &format!("docs/img/icons/{}.png", id));
|
||||||
|
|||||||
+4
-3
@@ -107,7 +107,7 @@ fn tool_tile(cam: &Cam, map: &map::Map, tool: Tool, mx: f32, my: f32) -> Option<
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn area_tool(t: Tool) -> bool {
|
fn area_tool(t: Tool) -> bool {
|
||||||
matches!(t, Tool::Dig | Tool::Room(_) | Tool::Sell | Tool::Bridge | Tool::Steel)
|
matches!(t, Tool::Dig | Tool::Room(_) | Tool::Sell | Tool::Bridge | Tool::Steel | Tool::Drawbridge)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Use the active tool on the world at (mx, my) (CSS pixels): a click, or a tap on touch screens
|
// Use the active tool on the world at (mx, my) (CSS pixels): a click, or a tap on touch screens
|
||||||
@@ -120,7 +120,7 @@ fn world_action(app: &mut App, ui: &mut Ui, r3d: &R3d, inp: &mut Input, mx: f32,
|
|||||||
let ground = app.cam.ground_point(mx, my);
|
let ground = app.cam.ground_point(mx, my);
|
||||||
let (wx, wy) = (ground.x, ground.y);
|
let (wx, wy) = (ground.x, ground.y);
|
||||||
match (ui.tool, tile) {
|
match (ui.tool, tile) {
|
||||||
(Tool::Dig | Tool::Room(_) | Tool::Sell | Tool::Bridge | Tool::Steel, Some(t)) => inp.ldown = Some(t),
|
(Tool::Dig | Tool::Room(_) | Tool::Sell | Tool::Bridge | Tool::Steel | Tool::Drawbridge, Some(t)) => inp.ldown = Some(t),
|
||||||
(Tool::Hand, _) => {
|
(Tool::Hand, _) => {
|
||||||
let j = r3d.pick_ent(&app.game, &app.cam, mx, my, false);
|
let j = r3d.pick_ent(&app.game, &app.cam, mx, my, false);
|
||||||
let Some(j) = j else { return };
|
let Some(j) = j else { return };
|
||||||
@@ -163,6 +163,7 @@ fn finish_rect(app: &mut App, tool: Tool, start: (i32, i32), mx: f32, my: f32) {
|
|||||||
Tool::Room(room) => app.game.queue(Act::Room { room: room as u8, r }),
|
Tool::Room(room) => app.game.queue(Act::Room { room: room as u8, r }),
|
||||||
Tool::Sell => app.game.queue(Act::Sell(r)),
|
Tool::Sell => app.game.queue(Act::Sell(r)),
|
||||||
Tool::Bridge => app.game.queue(Act::Bridge(r)),
|
Tool::Bridge => app.game.queue(Act::Bridge(r)),
|
||||||
|
Tool::Drawbridge => app.game.queue(Act::Drawbridge(r)),
|
||||||
Tool::Steel => app.game.queue(Act::Steel(r)),
|
Tool::Steel => app.game.queue(Act::Steel(r)),
|
||||||
_ => {}
|
_ => {}
|
||||||
}
|
}
|
||||||
@@ -1946,7 +1947,7 @@ fn draw_frame(app: &mut App, gfx: &Gfx, r3d: &mut R3d, ui: &mut Ui, menu: &mut M
|
|||||||
Tool::Lightning => (Color::new(1.0, 1.0, 0.6, 1.0), Some((ground.x, ground.y, 1.6))),
|
Tool::Lightning => (Color::new(1.0, 1.0, 0.6, 1.0), Some((ground.x, ground.y, 1.6))),
|
||||||
Tool::Heal => (Color::new(0.4, 1.0, 0.5, 1.0), Some((ground.x, ground.y, 2.55))),
|
Tool::Heal => (Color::new(0.4, 1.0, 0.5, 1.0), Some((ground.x, ground.y, 2.55))),
|
||||||
Tool::Summon => (Color::new(0.8, 0.5, 1.0, 1.0), None),
|
Tool::Summon => (Color::new(0.8, 0.5, 1.0, 1.0), None),
|
||||||
Tool::Bridge => (Color::new(0.9, 0.7, 0.4, 1.0), None),
|
Tool::Bridge | Tool::Drawbridge => (Color::new(0.9, 0.7, 0.4, 1.0), None),
|
||||||
Tool::Steel => (Color::new(0.75, 0.8, 0.9, 1.0), None),
|
Tool::Steel => (Color::new(0.75, 0.8, 0.9, 1.0), None),
|
||||||
Tool::Tower(_) => (Color::new(1.0, 0.6, 0.25, 1.0), None),
|
Tool::Tower(_) => (Color::new(1.0, 0.6, 0.25, 1.0), None),
|
||||||
Tool::Trap(_) => (Color::new(1.0, 0.4, 0.3, 1.0), None),
|
Tool::Trap(_) => (Color::new(1.0, 0.4, 0.3, 1.0), None),
|
||||||
|
|||||||
+32
-5
@@ -68,8 +68,15 @@ pub enum Kind {
|
|||||||
GuardPost, // room: creatures hold the position
|
GuardPost, // room: creatures hold the position
|
||||||
Arena, // room: sparring
|
Arena, // room: sparring
|
||||||
Altar, // room: sacrifices
|
Altar, // room: sacrifices
|
||||||
|
Drawbridge, // bridge that can be raised (res: see DB_RAISED, DB_AUTO, DB_LAVA)
|
||||||
|
Obsidian, // lava cooled by frost: walkable until it melts again
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// drawbridge state in Tile::res
|
||||||
|
pub const DB_RAISED: u8 = 1; // raised: nobody can cross
|
||||||
|
pub const DB_AUTO: u8 = 2; // rises by itself when enemies come near
|
||||||
|
pub const DB_LAVA: u8 = 4; // spans lava (stone), else water (wood)
|
||||||
|
|
||||||
// options for the map generator (campaign missions)
|
// options for the map generator (campaign missions)
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug)]
|
||||||
pub struct GenOpts {
|
pub struct GenOpts {
|
||||||
@@ -96,7 +103,7 @@ pub struct River {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// order matters for the packed savegame codec: only append new kinds
|
// order matters for the packed savegame codec: only append new kinds
|
||||||
const KINDS: [Kind; 34] = [
|
const KINDS: [Kind; 36] = [
|
||||||
Kind::Rock,
|
Kind::Rock,
|
||||||
Kind::Earth,
|
Kind::Earth,
|
||||||
Kind::Gold,
|
Kind::Gold,
|
||||||
@@ -131,6 +138,8 @@ const KINDS: [Kind; 34] = [
|
|||||||
Kind::GuardPost,
|
Kind::GuardPost,
|
||||||
Kind::Arena,
|
Kind::Arena,
|
||||||
Kind::Altar,
|
Kind::Altar,
|
||||||
|
Kind::Drawbridge,
|
||||||
|
Kind::Obsidian,
|
||||||
];
|
];
|
||||||
|
|
||||||
// treasures (veins, treasury content, imp loads): 0 gold, 1 silver, 2 ruby, 3 diamond
|
// treasures (veins, treasury content, imp loads): 0 gold, 1 silver, 2 ruby, 3 diamond
|
||||||
@@ -151,6 +160,18 @@ pub enum Owner {
|
|||||||
const OWNERS: [Owner; 6] = [Owner::None, Owner::Player, Owner::Hero, Owner::Rival1, Owner::Rival2, Owner::Rival3];
|
const OWNERS: [Owner; 6] = [Owner::None, Owner::Player, Owner::Hero, Owner::Rival1, Owner::Rival2, Owner::Rival3];
|
||||||
|
|
||||||
impl Owner {
|
impl Owner {
|
||||||
|
// the side of a ground owner (255: nobody)
|
||||||
|
pub fn side(self) -> u8 {
|
||||||
|
match self {
|
||||||
|
Owner::Player => 0,
|
||||||
|
Owner::Hero => 1,
|
||||||
|
Owner::Rival1 => 2,
|
||||||
|
Owner::Rival2 => 3,
|
||||||
|
Owner::Rival3 => 4,
|
||||||
|
Owner::None => 255,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub fn of_side(side: u8) -> Owner {
|
pub fn of_side(side: u8) -> Owner {
|
||||||
match side {
|
match side {
|
||||||
0 => Owner::Player,
|
0 => Owner::Player,
|
||||||
@@ -240,20 +261,26 @@ impl Tile {
|
|||||||
| Kind::GuardPost
|
| Kind::GuardPost
|
||||||
| Kind::Arena
|
| Kind::Arena
|
||||||
| Kind::Altar
|
| Kind::Altar
|
||||||
)
|
| Kind::Obsidian
|
||||||
|
) || (self.kind == Kind::Drawbridge && self.res & DB_RAISED == 0)
|
||||||
}
|
}
|
||||||
// river tiles (open, but nobody can walk there)
|
// river tiles (open, but nobody can walk there)
|
||||||
pub fn liquid(&self) -> bool {
|
pub fn liquid(&self) -> bool {
|
||||||
matches!(self.kind, Kind::Water | Kind::Lava)
|
matches!(self.kind, Kind::Water | Kind::Lava)
|
||||||
}
|
}
|
||||||
pub fn bridge(&self) -> bool {
|
pub fn bridge(&self) -> bool {
|
||||||
matches!(self.kind, Kind::Bridge | Kind::LavaBridge)
|
matches!(self.kind, Kind::Bridge | Kind::LavaBridge | Kind::Drawbridge)
|
||||||
}
|
}
|
||||||
// the river below a bridge or river tile
|
pub fn raised(&self) -> bool {
|
||||||
|
self.kind == Kind::Drawbridge && self.res & DB_RAISED != 0
|
||||||
|
}
|
||||||
|
// the river below a bridge or river tile (obsidian: the lava under the crust)
|
||||||
pub fn river(&self) -> Option<Kind> {
|
pub fn river(&self) -> Option<Kind> {
|
||||||
match self.kind {
|
match self.kind {
|
||||||
Kind::Water | Kind::Bridge => Some(Kind::Water),
|
Kind::Water | Kind::Bridge => Some(Kind::Water),
|
||||||
Kind::Lava | Kind::LavaBridge => Some(Kind::Lava),
|
Kind::Lava | Kind::LavaBridge | Kind::Obsidian => Some(Kind::Lava),
|
||||||
|
Kind::Drawbridge if self.res & DB_LAVA != 0 => Some(Kind::Lava),
|
||||||
|
Kind::Drawbridge => Some(Kind::Water),
|
||||||
_ => None,
|
_ => None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ pub const TABS: [&str; 4] = ["best.tab.creatures", "best.tab.humans", "best.tab.
|
|||||||
const CREATURES: [EK; 14] = [EK::Worker, EK::Kobold, EK::Spider, EK::Mage, EK::Ogre, EK::Jailer, EK::Priestess, EK::Chainbreaker, EK::Cogling, EK::Revenant, EK::Bat, EK::Gargoyle, EK::Owl, EK::Wyrm];
|
const CREATURES: [EK; 14] = [EK::Worker, EK::Kobold, EK::Spider, EK::Mage, EK::Ogre, EK::Jailer, EK::Priestess, EK::Chainbreaker, EK::Cogling, EK::Revenant, EK::Bat, EK::Gargoyle, EK::Owl, EK::Wyrm];
|
||||||
const HUMANS: [EK; 8] = [EK::Knight, EK::Archer, EK::Priest, EK::Dwarf, EK::Fairy, EK::BattleMage, EK::Giant, EK::Paladin];
|
const HUMANS: [EK; 8] = [EK::Knight, EK::Archer, EK::Priest, EK::Dwarf, EK::Fairy, EK::BattleMage, EK::Giant, EK::Paladin];
|
||||||
// buildings: indices into ui::TOOLS
|
// buildings: indices into ui::TOOLS
|
||||||
const BUILDINGS: [usize; 30] = [2, 3, 4, 5, 6, 12, 40, 13, 18, 21, 41, 42, 43, 44, 17, 19, 14, 15, 16, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31];
|
const BUILDINGS: [usize; 31] = [2, 3, 4, 5, 6, 12, 40, 13, 18, 21, 41, 42, 43, 44, 17, 47, 19, 14, 15, 16, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31];
|
||||||
|
|
||||||
#[derive(Clone, Copy)]
|
#[derive(Clone, Copy)]
|
||||||
enum Entry {
|
enum Entry {
|
||||||
@@ -266,6 +266,7 @@ impl Menu {
|
|||||||
crate::ui::Tool::Room(r) => crate::game::ROOM_NAMES[r].trim_start_matches("room.").to_string(),
|
crate::ui::Tool::Room(r) => crate::game::ROOM_NAMES[r].trim_start_matches("room.").to_string(),
|
||||||
crate::ui::Tool::Tower(k) => crate::game::tower_name(k).trim_start_matches("tower.").to_string(),
|
crate::ui::Tool::Tower(k) => crate::game::tower_name(k).trim_start_matches("tower.").to_string(),
|
||||||
crate::ui::Tool::Bridge => "bridge".into(),
|
crate::ui::Tool::Bridge => "bridge".into(),
|
||||||
|
crate::ui::Tool::Drawbridge => "drawbridge".into(),
|
||||||
crate::ui::Tool::Trap(k) => k.id().into(),
|
crate::ui::Tool::Trap(k) => k.id().into(),
|
||||||
_ => "steel".into(),
|
_ => "steel".into(),
|
||||||
};
|
};
|
||||||
|
|||||||
+54
-1
@@ -722,12 +722,54 @@ fn build_chunk(map: &Map, amb: &[f32], glow: &[f32], cx: i32, cz: i32, atlas: &T
|
|||||||
[inward; 4],
|
[inward; 4],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
if t.kind == Kind::Obsidian {
|
||||||
|
// a crust of cooled lava just above the glowing river
|
||||||
|
let (oa, ob) = cell_uv(T_OBSIDIAN + (t.var as u32 & 3));
|
||||||
|
let oc = col(lava_lit(Vec3::splat(amb_at(amb, xf + 0.5, zf + 0.5).max(0.45)), lg), 1.0);
|
||||||
|
let y = -0.02;
|
||||||
|
mb.quad([vec3(xf, y, zf), vec3(xf + 1.0, y, zf), vec3(xf + 1.0, y, zf + 1.0), vec3(xf, y, zf + 1.0)], [vec2(oa.x, oa.y), vec2(ob.x, oa.y), vec2(ob.x, ob.y), vec2(oa.x, ob.y)], [oc; 4], [Vec3::Y; 4]);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if t.raised() {
|
||||||
|
// a raised drawbridge: the flap stands upright at the bank it is hinged on
|
||||||
|
let tex = if lava { T_STONEBRIDGE } else { T_BRIDGE };
|
||||||
|
let (ba, bb) = cell_uv(tex);
|
||||||
|
let fc = col(lava_lit(Vec3::splat(amb_at(amb, xf + 0.5, zf + 0.5).max(if lava { 0.6 } else { 0.0 }) * 0.85), lg), 1.0);
|
||||||
|
for (d, &(dx, dz)) in DIR4.iter().enumerate() {
|
||||||
|
if !map.get(x + dx, z + dz).map_or(false, |o| o.walkable() && !o.bridge()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
// the hinge edge, from p to q
|
||||||
|
let (p, q) = match d {
|
||||||
|
0 => (vec3(xf, 0.0, zf), vec3(xf + 1.0, 0.0, zf)),
|
||||||
|
1 => (vec3(xf + 1.0, 0.0, zf), vec3(xf + 1.0, 0.0, zf + 1.0)),
|
||||||
|
2 => (vec3(xf + 1.0, 0.0, zf + 1.0), vec3(xf, 0.0, zf + 1.0)),
|
||||||
|
_ => (vec3(xf, 0.0, zf + 1.0), vec3(xf, 0.0, zf)),
|
||||||
|
};
|
||||||
|
let inward = vec3(-dx as f32, 0.0, -dz as f32);
|
||||||
|
let off = inward * 0.12;
|
||||||
|
let up = Vec3::Y * 1.0;
|
||||||
|
// both faces of the flap, a little in front of the bank
|
||||||
|
mb.quad([p + off, q + off, q + off + up, p + off + up], [vec2(ba.x, bb.y), vec2(bb.x, bb.y), vec2(bb.x, ba.y), vec2(ba.x, ba.y)], [fc; 4], [inward; 4]);
|
||||||
|
mb.quad([q + off, p + off, p + off + up, q + off + up], [vec2(ba.x, bb.y), vec2(bb.x, bb.y), vec2(bb.x, ba.y), vec2(ba.x, ba.y)], [fc; 4], [-inward; 4]);
|
||||||
|
ln.strip(p + off + up, q + off + up, inward, OUTLINE_W, OUTLINE_C);
|
||||||
|
// the chains from the top of the flap down to the bank
|
||||||
|
let chain = col(Vec3::splat(0.55), 1.0);
|
||||||
|
for e in [p, q] {
|
||||||
|
let a = e + off + up + (if e == p { (q - p) * 0.1 } else { (p - q) * 0.1 });
|
||||||
|
let b = e - inward * 0.6 + Vec3::Y * 1.3;
|
||||||
|
ln.strip(a, b, inward, OUTLINE_W * 0.7, chain);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if t.bridge() {
|
if t.bridge() {
|
||||||
// deck: planks across the direction of the bridge, rails along it
|
// deck: planks across the direction of the bridge, rails along it
|
||||||
let run_x = |dx: i32| map.get(x + dx, z).map_or(false, |o| o.bridge() || (o.walkable() && !o.bridge()));
|
let run_x = |dx: i32| map.get(x + dx, z).map_or(false, |o| o.bridge() || (o.walkable() && !o.bridge()));
|
||||||
let run_z = |dz: i32| map.get(x, z + dz).map_or(false, |o| o.bridge() || (o.walkable() && !o.bridge()));
|
let run_z = |dz: i32| map.get(x, z + dz).map_or(false, |o| o.bridge() || (o.walkable() && !o.bridge()));
|
||||||
let along_x = (run_x(-1) as i32 + run_x(1) as i32) > (run_z(-1) as i32 + run_z(1) as i32);
|
let along_x = (run_x(-1) as i32 + run_x(1) as i32) > (run_z(-1) as i32 + run_z(1) as i32);
|
||||||
let (ba, bb) = cell_uv(tex);
|
// a drawbridge over lava is made of stone
|
||||||
|
let (ba, bb) = cell_uv(if t.kind == Kind::Drawbridge && lava { T_STONEBRIDGE + (t.var as u32 & 1) } else { tex });
|
||||||
let dc = col(lava_lit(Vec3::splat(amb_at(amb, xf + 0.5, zf + 0.5).max(if lava { 0.6 } else { 0.0 })), lg), 1.0);
|
let dc = col(lava_lit(Vec3::splat(amb_at(amb, xf + 0.5, zf + 0.5).max(if lava { 0.6 } else { 0.0 })), lg), 1.0);
|
||||||
let uv = if along_x {
|
let uv = if along_x {
|
||||||
[vec2(ba.x, ba.y), vec2(ba.x, bb.y), vec2(bb.x, bb.y), vec2(bb.x, ba.y)]
|
[vec2(ba.x, ba.y), vec2(ba.x, bb.y), vec2(bb.x, bb.y), vec2(bb.x, ba.y)]
|
||||||
@@ -735,6 +777,14 @@ fn build_chunk(map: &Map, amb: &[f32], glow: &[f32], cx: i32, cz: i32, atlas: &T
|
|||||||
[vec2(ba.x, ba.y), vec2(bb.x, ba.y), vec2(bb.x, bb.y), vec2(ba.x, bb.y)]
|
[vec2(ba.x, ba.y), vec2(bb.x, ba.y), vec2(bb.x, bb.y), vec2(ba.x, bb.y)]
|
||||||
};
|
};
|
||||||
mb.quad([vec3(xf, DECK_Y, zf), vec3(xf + 1.0, DECK_Y, zf), vec3(xf + 1.0, DECK_Y, zf + 1.0), vec3(xf, DECK_Y, zf + 1.0)], uv, [dc; 4], [Vec3::Y; 4]);
|
mb.quad([vec3(xf, DECK_Y, zf), vec3(xf + 1.0, DECK_Y, zf), vec3(xf + 1.0, DECK_Y, zf + 1.0), vec3(xf, DECK_Y, zf + 1.0)], uv, [dc; 4], [Vec3::Y; 4]);
|
||||||
|
if t.kind == Kind::Drawbridge {
|
||||||
|
// iron bands across the planks mark a drawbridge
|
||||||
|
let iron = col(Vec3::splat(0.32), 1.0);
|
||||||
|
for f in [0.18, 0.82] {
|
||||||
|
let (a, b) = if along_x { (vec3(xf + f, DECK_Y + 0.005, zf), vec3(xf + f, DECK_Y + 0.005, zf + 1.0)) } else { (vec3(xf, DECK_Y + 0.005, zf + f), vec3(xf + 1.0, DECK_Y + 0.005, zf + f)) };
|
||||||
|
ln.strip(a, b, Vec3::Y, OUTLINE_W * 1.6, iron);
|
||||||
|
}
|
||||||
|
}
|
||||||
// deck edges above open river
|
// deck edges above open river
|
||||||
for (d, &(dx, dz)) in DIR4.iter().enumerate() {
|
for (d, &(dx, dz)) in DIR4.iter().enumerate() {
|
||||||
if !map.get(x + dx, z + dz).map_or(false, |o| o.liquid()) {
|
if !map.get(x + dx, z + dz).map_or(false, |o| o.liquid()) {
|
||||||
@@ -994,6 +1044,7 @@ fn chunk_sig(map: &Map, cx: i32, cz: i32) -> u64 {
|
|||||||
let extra = match t.kind {
|
let extra = match t.kind {
|
||||||
Kind::Farm => t.food as u64,
|
Kind::Farm => t.food as u64,
|
||||||
Kind::Treasury => (t.gold / 50) as u64 | (t.res as u64) << 5,
|
Kind::Treasury => (t.gold / 50) as u64 | (t.res as u64) << 5,
|
||||||
|
Kind::Drawbridge => t.res as u64,
|
||||||
_ => 0,
|
_ => 0,
|
||||||
};
|
};
|
||||||
let shown = map.shown(idx(x, z)) as u64;
|
let shown = map.shown(idx(x, z)) as u64;
|
||||||
@@ -3030,6 +3081,8 @@ pub fn minimap_color(tile: &Tile) -> [u8; 4] {
|
|||||||
Kind::Lava => [250, 110, 30, 255],
|
Kind::Lava => [250, 110, 30, 255],
|
||||||
Kind::Bridge => [150, 110, 60, 255],
|
Kind::Bridge => [150, 110, 60, 255],
|
||||||
Kind::LavaBridge => [130, 120, 115, 255],
|
Kind::LavaBridge => [130, 120, 115, 255],
|
||||||
|
Kind::Drawbridge => [120, 80, 50, 255],
|
||||||
|
Kind::Obsidian => [60, 40, 70, 255],
|
||||||
Kind::Shard => [255, 60, 120, 255],
|
Kind::Shard => [255, 60, 120, 255],
|
||||||
Kind::Aerie => [170, 140, 90, 255],
|
Kind::Aerie => [170, 140, 90, 255],
|
||||||
Kind::Steel => [150, 160, 180, 255],
|
Kind::Steel => [150, 160, 180, 255],
|
||||||
|
|||||||
@@ -34,7 +34,9 @@ pub const RESEARCH: &[(usize, f32)] = &[
|
|||||||
(25, 650.0), // stone roller
|
(25, 650.0), // stone roller
|
||||||
(37, 700.0), // invisibility
|
(37, 700.0), // invisibility
|
||||||
(19, 700.0), // steel walls
|
(19, 700.0), // steel walls
|
||||||
|
(47, 700.0), // drawbridge
|
||||||
(28, 800.0), // frost glow
|
(28, 800.0), // frost glow
|
||||||
|
(48, 800.0), // frost spell
|
||||||
(38, 850.0), // plague
|
(38, 850.0), // plague
|
||||||
(27, 900.0), // rune mine
|
(27, 900.0), // rune mine
|
||||||
(39, 950.0), // quake
|
(39, 950.0), // quake
|
||||||
|
|||||||
@@ -162,4 +162,31 @@ fn export_scenes() {
|
|||||||
g.place_all_torches();
|
g.place_all_torches();
|
||||||
run(&mut g, 4.0);
|
run(&mut g, 4.0);
|
||||||
save("lava-light", &mut g, cx as f32 + 5.0, cy as f32, 22.0, 0.0, false);
|
save("lava-light", &mut g, cx as f32 + 5.0, cy as f32, 22.0, 0.0, false);
|
||||||
|
|
||||||
|
// bridges: a raised and a lowered drawbridge over water, a burning bridge, obsidian on lava
|
||||||
|
let mut g = Game::new(17, 80, 64);
|
||||||
|
let (cx, cy) = g.map.core;
|
||||||
|
g.gold = 50000.0;
|
||||||
|
open(&mut g, cx - 6, cy - 9, cx + 18, cy + 9);
|
||||||
|
for y in cy - 9..=cy + 9 {
|
||||||
|
for x in cx + 6..cx + 9 {
|
||||||
|
let t = &mut g.map.t[idx(x, y)];
|
||||||
|
t.kind = Kind::Water;
|
||||||
|
t.owner = Owner::None;
|
||||||
|
}
|
||||||
|
for x in cx + 12..cx + 15 {
|
||||||
|
let t = &mut g.map.t[idx(x, y)];
|
||||||
|
t.kind = Kind::Lava;
|
||||||
|
t.owner = Owner::None;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
g.drawbridge_order(cx + 5, cy - 5, cx + 9, cy - 5);
|
||||||
|
g.drawbridge_order(cx + 5, cy - 1, cx + 9, cy - 1);
|
||||||
|
g.drawbridge_order(cx + 6, cy - 1, cx + 6, cy - 1); // raised
|
||||||
|
g.build_bridges(cx + 5, cy + 4, cx + 9, cy + 4);
|
||||||
|
g.ignite_at(cx as f32 + 7.5, cy as f32 + 4.5);
|
||||||
|
g.cool_lava_around(cx as f32 + 13.5, cy as f32 + 1.5, 2.5, 60.0);
|
||||||
|
g.place_all_torches();
|
||||||
|
run(&mut g, 2.5);
|
||||||
|
save("bridges", &mut g, cx as f32 + 9.0, cy as f32, 18.0, 0.0, false);
|
||||||
}
|
}
|
||||||
+30
-1
@@ -16,9 +16,18 @@ pub enum Spell {
|
|||||||
Invisible,
|
Invisible,
|
||||||
Plague,
|
Plague,
|
||||||
Quake,
|
Quake,
|
||||||
|
Freeze, // frost: cools lava into obsidian, chills enemies
|
||||||
}
|
}
|
||||||
|
|
||||||
pub const SPELLS: [Spell; 8] = [Spell::Eye, Spell::CaveIn, Spell::Haste, Spell::Stoneskin, Spell::GoldRain, Spell::Invisible, Spell::Plague, Spell::Quake];
|
pub const SPELLS: [Spell; 9] = [Spell::Eye, Spell::CaveIn, Spell::Haste, Spell::Stoneskin, Spell::GoldRain, Spell::Invisible, Spell::Plague, Spell::Quake, Spell::Freeze];
|
||||||
|
|
||||||
|
// the icon of a spell (the first eight share one row of the atlas)
|
||||||
|
pub fn spell_icon(sp: Spell) -> u32 {
|
||||||
|
match SPELLS.iter().position(|&t| t == sp).unwrap_or(0) {
|
||||||
|
k if k < 8 => crate::gfx::I_SPELLS + k as u32,
|
||||||
|
_ => crate::gfx::I_FREEZE,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub const EYE_TIME: f32 = 20.0;
|
pub const EYE_TIME: f32 = 20.0;
|
||||||
pub const EYE_RADIUS: f32 = 8.0;
|
pub const EYE_RADIUS: f32 = 8.0;
|
||||||
@@ -34,6 +43,7 @@ impl Spell {
|
|||||||
Spell::Invisible => 50.0,
|
Spell::Invisible => 50.0,
|
||||||
Spell::Plague => 80.0,
|
Spell::Plague => 80.0,
|
||||||
Spell::Quake => 90.0,
|
Spell::Quake => 90.0,
|
||||||
|
Spell::Freeze => 80.0,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// radius shown under the pointer
|
// radius shown under the pointer
|
||||||
@@ -43,6 +53,7 @@ impl Spell {
|
|||||||
Spell::CaveIn => 1.5,
|
Spell::CaveIn => 1.5,
|
||||||
Spell::Plague => 2.0,
|
Spell::Plague => 2.0,
|
||||||
Spell::Quake => 3.0,
|
Spell::Quake => 3.0,
|
||||||
|
Spell::Freeze => 2.5,
|
||||||
Spell::GoldRain => 0.0,
|
Spell::GoldRain => 0.0,
|
||||||
_ => 1.6,
|
_ => 1.6,
|
||||||
}
|
}
|
||||||
@@ -57,6 +68,7 @@ impl Spell {
|
|||||||
Spell::Invisible => "invisible",
|
Spell::Invisible => "invisible",
|
||||||
Spell::Plague => "plague",
|
Spell::Plague => "plague",
|
||||||
Spell::Quake => "quake",
|
Spell::Quake => "quake",
|
||||||
|
Spell::Freeze => "freeze",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -232,6 +244,23 @@ impl Game {
|
|||||||
}
|
}
|
||||||
self.sfx(Sfx::Cannon, wx, wy);
|
self.sfx(Sfx::Cannon, wx, wy);
|
||||||
}
|
}
|
||||||
|
Spell::Freeze => {
|
||||||
|
// lava turns to obsidian for a while; enemies are chilled and slowed
|
||||||
|
self.cool_lava_around(wx, wy, 2.5, crate::bridges::FREEZE_TIME);
|
||||||
|
let hit: Vec<usize> = (0..self.ents.len()).filter(|&j| foe(&self.ents[j]) && near(&self.ents[j])).collect();
|
||||||
|
for j in hit {
|
||||||
|
let e = &mut self.ents[j];
|
||||||
|
e.hp -= 20.0;
|
||||||
|
e.slow = e.slow.max(4.0);
|
||||||
|
e.flash = 0.15;
|
||||||
|
if e.hp <= 0.0 {
|
||||||
|
self.kill(j);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
self.part(RING, (wx, wy, 0.05), (0.0, 0.0, 0.0), 0.6, abgr(170, 230, 255), 2.5);
|
||||||
|
self.sparkle(wx, wy, 24, abgr(200, 240, 255));
|
||||||
|
self.sfx(Sfx::Magic, wx, wy);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
self.mana -= cost;
|
self.mana -= cost;
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -485,7 +485,8 @@ impl Game {
|
|||||||
let near = |r: f32, ents: &Vec<Ent>| -> Vec<usize> { (0..ents.len()).filter(|&j| enemy(&ents[j]) && (ents[j].x - cx).powi(2) + (ents[j].y - cy).powi(2) < r * r).collect() };
|
let near = |r: f32, ents: &Vec<Ent>| -> Vec<usize> { (0..ents.len()).filter(|&j| enemy(&ents[j]) && (ents[j].x - cx).powi(2) + (ents[j].y - cy).powi(2) < r * r).collect() };
|
||||||
match t.kind {
|
match t.kind {
|
||||||
TrapKind::Frost => {
|
TrapKind::Frost => {
|
||||||
// always on: cold around it slows and bites
|
// always on: cold around it slows and bites, and keeps lava next to it cooled
|
||||||
|
self.cool_lava_around(cx, cy, 2.5, 3.0);
|
||||||
for j in near(2.5, &self.ents) {
|
for j in near(2.5, &self.ents) {
|
||||||
self.ents[j].slow = self.ents[j].slow.max(0.5);
|
self.ents[j].slow = self.ents[j].slow.max(0.5);
|
||||||
self.damage_unit(j, 2.0 * dt);
|
self.damage_unit(j, 2.0 * dt);
|
||||||
|
|||||||
@@ -174,13 +174,14 @@ pub enum Tool {
|
|||||||
Tower(TowerKind),
|
Tower(TowerKind),
|
||||||
Bridge,
|
Bridge,
|
||||||
Steel,
|
Steel,
|
||||||
|
Drawbridge,
|
||||||
Trap(crate::traps::TrapKind),
|
Trap(crate::traps::TrapKind),
|
||||||
Spell(crate::spells::Spell),
|
Spell(crate::spells::Spell),
|
||||||
Order(u8), // 0 attack, 1 guard
|
Order(u8), // 0 attack, 1 guard
|
||||||
}
|
}
|
||||||
|
|
||||||
// New tools are appended so that existing key bindings ("tool<i>") keep their meaning
|
// New tools are appended so that existing key bindings ("tool<i>") keep their meaning
|
||||||
pub const TOOLS: [Tool; 47] = [
|
pub const TOOLS: [Tool; 49] = [
|
||||||
Tool::Dig,
|
Tool::Dig,
|
||||||
Tool::Hand,
|
Tool::Hand,
|
||||||
Tool::Room(0),
|
Tool::Room(0),
|
||||||
@@ -228,6 +229,8 @@ pub const TOOLS: [Tool; 47] = [
|
|||||||
Tool::Room(13),
|
Tool::Room(13),
|
||||||
Tool::Order(0),
|
Tool::Order(0),
|
||||||
Tool::Order(1),
|
Tool::Order(1),
|
||||||
|
Tool::Drawbridge,
|
||||||
|
Tool::Spell(crate::spells::Spell::Freeze),
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
@@ -259,7 +262,7 @@ pub fn tool_info(t: Tool) -> ToolInfo {
|
|||||||
Tool::Trap(k) => (k.id(), I_TRAPS + crate::traps::TRAP_KINDS.iter().position(|&t| t == k).unwrap_or(0) as u32, None),
|
Tool::Trap(k) => (k.id(), I_TRAPS + crate::traps::TRAP_KINDS.iter().position(|&t| t == k).unwrap_or(0) as u32, None),
|
||||||
Tool::Order(0) => ("order_attack", I_ORDERS, None),
|
Tool::Order(0) => ("order_attack", I_ORDERS, None),
|
||||||
Tool::Order(_) => ("order_guard", I_ORDERS + 1, None),
|
Tool::Order(_) => ("order_guard", I_ORDERS + 1, None),
|
||||||
Tool::Spell(sp) => (sp.id(), I_SPELLS + crate::spells::SPELLS.iter().position(|&t| t == sp).unwrap_or(0) as u32, None),
|
Tool::Spell(sp) => (sp.id(), crate::spells::spell_icon(sp), None),
|
||||||
Tool::Tower(TowerKind::Arrow) => ("arrow", I_ARROW, None),
|
Tool::Tower(TowerKind::Arrow) => ("arrow", I_ARROW, None),
|
||||||
Tool::Tower(TowerKind::Cannon) => ("cannon", I_CANNON, None),
|
Tool::Tower(TowerKind::Cannon) => ("cannon", I_CANNON, None),
|
||||||
Tool::Tower(TowerKind::Magic) => ("magic", I_MAGIC, None),
|
Tool::Tower(TowerKind::Magic) => ("magic", I_MAGIC, None),
|
||||||
@@ -270,6 +273,7 @@ pub fn tool_info(t: Tool) -> ToolInfo {
|
|||||||
Tool::Heal => ("heal", I_HEAL, None),
|
Tool::Heal => ("heal", I_HEAL, None),
|
||||||
Tool::Summon => ("summon", I_SUMMON, None),
|
Tool::Summon => ("summon", I_SUMMON, None),
|
||||||
Tool::Bridge => ("bridge", I_BRIDGE, None),
|
Tool::Bridge => ("bridge", I_BRIDGE, None),
|
||||||
|
Tool::Drawbridge => ("drawbridge", I_DRAWBRIDGE, None),
|
||||||
Tool::Steel => ("steel", I_STEEL, None),
|
Tool::Steel => ("steel", I_STEEL, None),
|
||||||
};
|
};
|
||||||
let name = match room {
|
let name = match room {
|
||||||
@@ -285,6 +289,7 @@ pub fn tool_cost_static(t: Tool) -> String {
|
|||||||
Tool::Spell(sp) => trf("cost.mana", &[(sp.cost() as i32).to_string()]),
|
Tool::Spell(sp) => trf("cost.mana", &[(sp.cost() as i32).to_string()]),
|
||||||
Tool::Trap(k) => trf("cost.work", &[(k.work() as i32).to_string()]),
|
Tool::Trap(k) => trf("cost.work", &[(k.work() as i32).to_string()]),
|
||||||
Tool::Bridge => trf("cost.bridge", &[BRIDGE_COST[0].to_string(), BRIDGE_COST[1].to_string()]),
|
Tool::Bridge => trf("cost.bridge", &[BRIDGE_COST[0].to_string(), BRIDGE_COST[1].to_string()]),
|
||||||
|
Tool::Drawbridge => trf("cost.gold_tile", &[DRAWBRIDGE_COST.to_string()]),
|
||||||
Tool::Steel => trf("cost.steel", &[STEEL_COST[0].to_string(), STEEL_COST[1].to_string()]),
|
Tool::Steel => trf("cost.steel", &[STEEL_COST[0].to_string(), STEEL_COST[1].to_string()]),
|
||||||
Tool::Tower(TowerKind::Rune) => {
|
Tool::Tower(TowerKind::Rune) => {
|
||||||
let s = tower_stats(TowerKind::Rune);
|
let s = tower_stats(TowerKind::Rune);
|
||||||
@@ -310,6 +315,7 @@ pub fn tool_cost(t: Tool, g: &Game) -> String {
|
|||||||
Tool::Heal => trf("cost.mana", &["60".into()]),
|
Tool::Heal => trf("cost.mana", &["60".into()]),
|
||||||
Tool::Summon => trf("cost.mana", &[(g.summon_cost() as i32).to_string()]),
|
Tool::Summon => trf("cost.mana", &[(g.summon_cost() as i32).to_string()]),
|
||||||
Tool::Bridge => trf("cost.bridge", &[BRIDGE_COST[0].to_string(), BRIDGE_COST[1].to_string()]),
|
Tool::Bridge => trf("cost.bridge", &[BRIDGE_COST[0].to_string(), BRIDGE_COST[1].to_string()]),
|
||||||
|
Tool::Drawbridge => trf("cost.gold_tile", &[DRAWBRIDGE_COST.to_string()]),
|
||||||
Tool::Steel => trf("cost.steel", &[STEEL_COST[0].to_string(), STEEL_COST[1].to_string()]),
|
Tool::Steel => trf("cost.steel", &[STEEL_COST[0].to_string(), STEEL_COST[1].to_string()]),
|
||||||
Tool::Tower(TowerKind::Rune) => {
|
Tool::Tower(TowerKind::Rune) => {
|
||||||
let s = tower_stats(TowerKind::Rune);
|
let s = tower_stats(TowerKind::Rune);
|
||||||
@@ -331,10 +337,10 @@ pub fn tool_cost(t: Tool, g: &Game) -> String {
|
|||||||
pub const CATS: [(&str, &[usize]); 7] = [
|
pub const CATS: [(&str, &[usize]); 7] = [
|
||||||
("cat.dig", &[0]),
|
("cat.dig", &[0]),
|
||||||
("cat.hand", &[1]),
|
("cat.hand", &[1]),
|
||||||
("cat.rooms", &[2, 3, 4, 5, 6, 12, 40, 13, 18, 21, 41, 42, 43, 44, 17]),
|
("cat.rooms", &[2, 3, 4, 5, 6, 12, 40, 13, 18, 21, 41, 42, 43, 44, 17, 47]),
|
||||||
("cat.towers", &[14, 15, 16, 20]),
|
("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]),
|
||||||
("cat.spells", &[9, 10, 11, 32, 33, 34, 35, 36, 37, 38, 39]),
|
("cat.spells", &[9, 10, 11, 32, 33, 34, 35, 36, 37, 38, 39, 48]),
|
||||||
("cat.orders", &[8, 45, 46, 7, 19]),
|
("cat.orders", &[8, 45, 46, 7, 19]),
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -1412,6 +1418,17 @@ impl Ui {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Info text for the unit or tile under the mouse (first line = title)
|
// Info text for the unit or tile under the mouse (first line = title)
|
||||||
|
// fire and wear of a bridge tile
|
||||||
|
fn bridge_state(g: &Game, i: usize, out: &mut Vec<(String, Color)>) {
|
||||||
|
if g.burning(i) {
|
||||||
|
out.push((tr("tile.bridge_burning"), RED));
|
||||||
|
}
|
||||||
|
let w = g.wear_of(i);
|
||||||
|
if w > 0.0 {
|
||||||
|
out.push((trf("tile.bridge_worn", &[((w * 100.0) as i32).to_string()]), GOLD));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub fn hover_info(g: &Game, ent: Option<usize>, tile: Option<(i32, i32)>) -> Vec<(String, Color)> {
|
pub fn hover_info(g: &Game, ent: Option<usize>, tile: Option<(i32, i32)>) -> Vec<(String, Color)> {
|
||||||
let mut out = Vec::new();
|
let mut out = Vec::new();
|
||||||
if let Some(j) = ent {
|
if let Some(j) = ent {
|
||||||
@@ -1475,6 +1492,7 @@ pub fn hover_info(g: &Game, ent: Option<usize>, tile: Option<(i32, i32)>) -> Vec
|
|||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
let Some(t) = g.map.get(x, y) else { return out };
|
let Some(t) = g.map.get(x, y) else { return out };
|
||||||
|
let i = idx(x, y);
|
||||||
let owner = match t.owner {
|
let owner = match t.owner {
|
||||||
Owner::Player => "owner.player",
|
Owner::Player => "owner.player",
|
||||||
Owner::Hero => "owner.hero",
|
Owner::Hero => "owner.hero",
|
||||||
@@ -1532,6 +1550,25 @@ pub fn hover_info(g: &Game, ent: Option<usize>, tile: Option<(i32, i32)>) -> Vec
|
|||||||
Kind::Bridge | Kind::LavaBridge => {
|
Kind::Bridge | Kind::LavaBridge => {
|
||||||
out.push((tr(if t.kind == Kind::Bridge { "tile.bridge" } else { "tile.lavabridge" }), FRAME_HI));
|
out.push((tr(if t.kind == Kind::Bridge { "tile.bridge" } else { "tile.lavabridge" }), FRAME_HI));
|
||||||
out.push((tr(owner), DIM));
|
out.push((tr(owner), DIM));
|
||||||
|
bridge_state(g, i, &mut out);
|
||||||
|
}
|
||||||
|
Kind::Drawbridge => {
|
||||||
|
out.push((tr("tile.drawbridge"), FRAME_HI));
|
||||||
|
out.push((tr(owner), DIM));
|
||||||
|
let state = if t.res & DB_AUTO != 0 {
|
||||||
|
if t.raised() { "tile.drawbridge_auto_up" } else { "tile.drawbridge_auto" }
|
||||||
|
} else if t.raised() {
|
||||||
|
"tile.drawbridge_up"
|
||||||
|
} else {
|
||||||
|
"tile.drawbridge_down"
|
||||||
|
};
|
||||||
|
out.push((tr(state), BLUE));
|
||||||
|
bridge_state(g, i, &mut out);
|
||||||
|
}
|
||||||
|
Kind::Obsidian => {
|
||||||
|
out.push((tr("tile.obsidian"), FRAME_HI));
|
||||||
|
let left = g.bridgework.cooled.iter().find(|c| c.0 == i).map_or(0.0, |c| c.1);
|
||||||
|
out.push((trf("tile.obsidian_info", &[(left.ceil() as i32).to_string()]), if left < crate::bridges::MELT_WARN { RED } else { DIM }));
|
||||||
}
|
}
|
||||||
Kind::Shard => {
|
Kind::Shard => {
|
||||||
out.push((tr("tile.shard"), RED));
|
out.push((tr("tile.shard"), RED));
|
||||||
|
|||||||
Reference in new issue
Block a user