Summary
Ground burgs with sky ports keep land capabilities and land routes.
Only truly flying burgs join the Sky Realm; turning off “flying” restores the ground state.
Replace magic altitude 1000 with a DOM-configurable default.
Guard state hover/pin logic for geometry-less Sky Realm to prevent console errors.
Watabou link uses sky settings only for flying burgs.
Details
Land routing with sky ports:
Change: include sky ports in land road/trail networks; exclude only flying burgs.
Why: sky ports should not impose flying/land restrictions on a ground burg.
File: modules/routes-generator.js
Sky port toggle does not move state:
Change: toggling skyPort no longer assigns the burg’s state to the Sky Realm or reassigns cell ownership.
Why: sky port ≠ flying city; it’s just air connectivity.
File: modules/ui/burg-editor.js
Flying toggle and state restore:
Change: enabling “flying” assigns the burg to the Sky Realm but does not overwrite the cell’s ground state; disabling “flying” restores the burg’s state to the underlying ground state (pack.cells.state[burg.cell]).
Change: when relocating, assign Sky Realm only if the burg is placed over water; ground placements keep ground state.
Why: fixes bug where reverting to ground left burg in Sky Realm and preserves ground sovereignty.
File: modules/ui/burg-editor.js
Default sky altitude via DOM (no more magic 1000):
Change: add hidden input #burgDefaultSkyAltitude (default 1000 m) and read it everywhere altitude is defaulted (editor and “add burg on water” flow).
Why: centralizes default, documents units, and makes it configurable without touching code.
Files: index.html, modules/ui/burg-editor.js, modules/ui/burgs-overview.js
Sky State creation robustness:
Change: initialize a neutral diplomacy row for the new Sky State and extend existing states’ diplomacy arrays.
Change: do not forcibly set the anchor cell ownership to Sky state when creating the Sky Realm.
Why: prevents UI/editor crashes that assume diplomacy is rectangular; avoids accidental land transfer to Sky Realm.
File: modules/ui/editors.js
State hover/pin guards for Sky Realm:
Change: skip fog/hover/highlight when the target state has no geometry (e.g., Sky Realm) or the path is missing.
Why: fixes console errors in State hover and Pin feature.
Files: modules/dynamic/editors/states-editor.js, modules/ui/diplomacy-editor.js, modules/ui/military-overview.js
Watabou integration:
Change: only treat burgs as “sky” for city links when flying is true (not when only skyPort is set).
Why: ground burgs with sky ports should still have gates/roads/hubs/shanty, etc.
File: modules/ui/editors.js
User-visible Effects
Ground cities can have sea port + sky port + roads/trails simultaneously.
Toggling flying on shows altitude row; default altitude is read from the DOM.
Toggling flying off restores the burg to its ground state affiliation.
No more console errors when interacting with state hover/pin around the Sky Realm.
Potential Impacts
Land route generation may produce additional roads because sky-ported (but ground) burgs are now included.
Diplomacy arrays gain a neutral column for the Sky Realm when first created (non-breaking, UI-aligned).
Test Plan
Set sky port on a ground burg: verify roads/trails remain; sea port and other features unaffected.
Toggle flying on: burg state switches to Sky Realm; cell remains with ground state; altitude defaults from #burgDefaultSkyAltitude; air routes generate.
Toggle flying off: burg state returns to the ground state; altitude row hides; routes regenerate.
Hover/fog/pin states with the editors open: no errors with Sky Realm selected or hovered.
Open Watabou (city generator) links:
Ground + sky port: uses ground settings (gates/roads/hubs/shanty allowed).
Flying: uses sky settings (no farms/gates/hub etc. as appropriate).
Files Changed
modules/routes-generator.js
modules/ui/burg-editor.js
modules/ui/burgs-overview.js
modules/ui/editors.js
modules/dynamic/editors/states-editor.js
modules/ui/diplomacy-editor.js
modules/ui/military-overview.js
index.html
* added icon-dot-circled to locate burg
- icon dot-circled
- function zoomIntoBurg()
* pack.burgs[id] and icons
pack.burgs[id].x and y
icon target and map pin
* Update versioning.js to 1.102.0
* Update index.html burg-editor.js to 1.102.00
* feat: style - store emblem size mod in style (v1.99.10)
* fix the isOutdated function for versions past 1.99
* fix: showUploadMessage function not called correctly for isUpdated case
* feat: load - improve version detection
* feat: improve version detection and update process
* feat: Update version and use constant for VERSION in multiple files
* Update versioning.js to fix incorrect message display for stored version
* feat: zones editor - update to work with pack data
* feat: zones editor - update editor
* feat: zones editor - update editor
* chore: update version
* feat: zones - regenerate
* feat: zones - render zones as continuius line
* feat: zones - editot changes
* feat: zones - auto-update
* feat: zones - generation fixes
* feat: zones - generation fixes
* feat: zones - restore layer
* feat: zones - proselytism - check population
---------
Co-authored-by: Azgaar <azgaar.fmg@yandex.com>
* Scale bar styling (#1025)
* feat: style scale bar
* feat: style scale bar - style presets
---------
Co-authored-by: Azgaar <azgaar.fmg@yandex.com>
* Ocean heightmap to v1.96 (#1044)
* feat: allow to render ocean heightmap
* feat: allow to render ocean heightmap - test
* feat: allow to render ocean heightmap - fix issue
* feat: allow to render ocean heightmap - cleanup
---------
Co-authored-by: Azgaar <azgaar.fmg@yandex.com>
* fix: scale bar size
* fix: remove mask on terrs lavel
* fix: regenerate heigtmap preview to use current graph size
* Add the name of culture and namesbase in the name editor dialog (#1033)
* Add the name of culture and namesbase in the name editor dialog
Added the name of the culture and namesbase in the dialog "name editor".
This tells information on the "click to generate a culture-specific name"
It tells you the culture before changing name.
* cultureName into cultureId + cultureName
And deleted the incomplete code of showing culture name on datatip
* refactor: leave culture name only
---------
Co-authored-by: Azgaar <azgaar.fmg@yandex.com>
* Added Burgs column to province editor (#1031)
* Added Burgs column to province editor
Added to province editor:
+ Burgs column
+ the number of Burgs, p.burgs.length
+ "icon-dot-circled" to go to overviewBurgs.
+ overviewBurgs Filtered by state id.
+ Fixed some typos.
* fixed code as Azgaar suggested
+ Corrected provincesHeader distance in em.
+ const stateId = pack.provinces[p].state;
- Deleted cell count.
* deleted HTML code for provincesFooter cells
- Deleted Total land cells number HTML from provincesFooter.
* deleting totalCells in the code, maybe i will add provinceCells in the future.
Deleted lines for const totalCells and for (+cells / totalCells) * 100 + "%";
* refactor: cleanup
* refactor: cleanup
---------
Co-authored-by: Azgaar <azgaar.fmg@yandex.com>
* fix: burgs overview - add MFCG link back
* feat: add more details to burgs export
* feat: don't show auto-update dialog
* feat: pump version
* fix: #1041
* feat: update style presets
---------
Co-authored-by: Azgaar <azgaar.fmg@yandex.com>
Co-authored-by: Ángel Montero Lamas <angel.montero1@gmail.com>
* Option for exporting grid cell (#731)
* Added Save Option for Api-like json export.
Will be updated and set to a scheme
* Save Option for Api-like added
* Moved UI of json export to export dialog.
Moved json export to another file named export-json.js
* Added Seperated json export selections
- all JSON : exports all json data.
- minimal JSON : exports json data without cells data.
- cells JSON : exports json data only with pack.cells data.
* More Stable Cell Export...
* Grid cells export option.
* Graph of temperature changes for the year in the burg
I'm bad at writing in English. Please excuse me for this.
It seems illogical to me the parameter of the average temperature for the year in the burg.
Therefore, I found a database of meteorological measurements at https://ru.climate-data.org/
And I analyzed it. With the help of a neural network. I approximately established the dependence of Dy[X] and Dd[X], Md[X] = f(t,p,l).
Dy[X] - how much the temperature in winter differs from the temperature in summer
Md[X] - how much the temperature during the day differs from the temperature at night, on average per year
Dd[X] - how much the temperature difference between day and night is not constant in winter and summer
t - average temperature for the year
p - average rainfall for the year
l - latitude
Now, for each city, you can plot the temperature change. Based on t,p and l.
ATTENTION!!!
The characteristics of the planet and its orbit coincide with those of the earth!
Further, I will use the Russian language, if you want to know my reasoning, please use the Google Translate capabilities.
Я изменил свою первоначальную идею и доработал её. Что касается качества и используемых функций - жду критики. JavaScript - не знакомый мне язык и я не уверен, что выполнил всё верно.
Что касается самой идеи - её реализация пока далека от совершенства. Я понял, что если установить в настройках мира температуру на экваторе ниже, чем на Земле, то графики получаются слишком далекими от реальности. Эта ошибка связана с тем, что Dy[X] зависит от широты, а не среднегодовой температуры. К сожалению добиться хорошей сходимости удалось только расширением нейросети - ещё больше магических чисел.
Теперь, на основе прошлой выборки из 899 городов, попущенных через нейросеть миллион раз среднеквадратичная ошибка стала 3%.
Входными данными для сети являются широта и влажность, а средняя температура иcпользуется только как ориентир при построении графиков.
* Add legnd in graph
* Editing Coefficients
The coefficients have been changed so that the sign of the latitude does not affect the result
Co-authored-by: Efruz Yıldırır <30903352+yldrefruz@users.noreply.github.com>
* Watabou cities integration change, new Urban Density setting
New setting does not yet save/load - I don't want to change the .map file format.
* new markers - monsters
* markers - fix bridges placement
* markers - fix number
* markers - sacred places
* markers - refactor functions
* markers - course generator for inns
* markers - course generator enhancement
* markers - bandits and pirates
* reset PRNG - make points generation deterministic
* use imperial measures for US only
* split save and export to different files
* remove unused js libs
* markers - statues
* markers - magic portals
* markers - magic portals fix
* markers - palm grove fix
* markers - round coords on zoom
* markers data rework - master data object
* markers rework - optional pin shapes
* markers rework - editor start, dragging
* markers rework - editor functions
* markers rework - editor UI
* editable theme color
* added self-hosted analytics
* collect statistics for a short period
* umami - we do'nt need html class events
* umami - don't collect if noTrack is set
* markers - add on click
* saveTiles clean up listeners on close
* markers - generate from config file
* config generate markers dialog
* config generate markers dialog fixes
* markers overview
* markers - export as geoJSON
* markers overview - export data to csv
* markers - auto-update on load
* markers overview - focus on marker
* burg editor - MFCG preview
* markers - generate tool + lock tooltip
* Watabou cities integration change, new Urban Density setting
New setting does not yet save/load - I don't want to change the .map file format.
* Trying to put the formula in the right place
Again, sorry for the mess
* whoops
* Getting the equation right
* Change default
Co-authored-by: Azgaar <maxganiev@yandex.ru>
* Added a lock function to burgs that will prevent them from being regenerated
* Updated tooltips and fixed culture change from renaming locked burgs and group remove from deleting locked burgs