mirror of
https://github.com/Azgaar/Fantasy-Map-Generator.git
synced 2025-12-17 01:41:22 +01:00
v1.22.20
This commit is contained in:
parent
614aaae733
commit
d1b249ae79
6 changed files with 82 additions and 58 deletions
95
index.html
95
index.html
|
|
@ -1520,7 +1520,7 @@
|
|||
<p data-tip="Map generation settings. Generate a new map to apply the settings">Map settings (new map to apply):</p>
|
||||
<table>
|
||||
|
||||
<tr data-tip="Canvas size in pixels, keep equal to screen size or less to improve performance. The best aspect ratio for maps is 2:1">
|
||||
<tr data-tip="Canvas size in pixels. Defines map size on generation, then map size cannot be changed and canvas size changes only visible area. Keep canvas size equal to screen size or less to improve performance. The best aspect ratio for maps is 2:1">
|
||||
<td></td>
|
||||
<td>Canvas size</td>
|
||||
<td>
|
||||
|
|
@ -2661,51 +2661,52 @@
|
|||
<div data-tip="State form name" class="label">Form name:</div>
|
||||
<select id="stateNameEditorSelectForm" style="display: inline-block; width: 11.7em; height: 1.645em">
|
||||
<option value="">blank</option>
|
||||
<option value="Beylik">Beylik</option>
|
||||
<option value="Caliphate">Caliphate</option>
|
||||
<option value="City-state">City-state</option>
|
||||
<option value="Commonwealth">Commonwealth</option>
|
||||
<option value="Confederacy">Confederacy</option>
|
||||
<option value="Confederation">Confederation</option>
|
||||
<option value="Conglomerate">Conglomerate</option>
|
||||
<option value="Despotate">Despotate</option>
|
||||
<option value="Diarchy">Diarchy</option>
|
||||
<option value="Diocese">Diocese</option>
|
||||
<option value="Duchy">Duchy</option>
|
||||
<option value="Emirate">Emirate</option>
|
||||
<option value="Empire">Empire</option>
|
||||
<option value="Eparchy">Eparchy</option>
|
||||
<option value="Federation">Federation</option>
|
||||
<option value="Free City">Free City</option>
|
||||
<option value="Grand Duchy">Grand Duchy</option>
|
||||
<option value="Heptarchy">Heptarchy</option>
|
||||
<option value="Horde">Horde</option>
|
||||
<option value="Imamah">Imamah</option>
|
||||
<option value="Khaganate">Khaganate</option>
|
||||
<option value="Kingdom">Kingdom</option>
|
||||
<option value="League">League</option>
|
||||
<option value="Marches">Marches</option>
|
||||
<option value="Oligarchy">Oligarchy</option>
|
||||
<option value="Principality">Principality</option>
|
||||
<option value="Protectorate">Protectorate</option>
|
||||
<option value="Republic">Republic</option>
|
||||
<option value="Satrapy">Satrapy</option>
|
||||
<option value="Shogunate">Shogunate</option>
|
||||
<option value="Sultanate">Sultanate</option>
|
||||
<option value="Tetrarchy">Tetrarchy</option>
|
||||
<option value="Theocracy">Theocracy</option>
|
||||
<option value="Trade Company">Trade Company</option>
|
||||
<option value="Tribes">Tribes</option>
|
||||
<option value="Triumvirate">Triumvirate</option>
|
||||
<option value="Tsardom">Tsardom</option>
|
||||
<option value="Ulus">Ulus</option>
|
||||
<option value="Union">Union</option>
|
||||
<option value="United Hordes">United Hordes</option>
|
||||
<option value="United Kingdom">United Kingdom</option>
|
||||
<option value="United Provinces">United Provinces</option>
|
||||
<option value="United Republic">United Republic</option>
|
||||
<option value="United States">United States</option>
|
||||
<option value="United Tribes">United Tribes</option>
|
||||
<option data-form="Monarchy" value="Beylik">Beylik</option>
|
||||
<option data-form="Theocracy" value="Caliphate">Caliphate</option>
|
||||
<option data-form="Republic" value="City-state">City-state</option>
|
||||
<option data-form="Union" value="Commonwealth">Commonwealth</option>
|
||||
<option data-form="Union" value="Confederacy">Confederacy</option>
|
||||
<option data-form="Union" value="Confederation">Confederation</option>
|
||||
<option data-form="Union" value="Conglomerate">Conglomerate</option>
|
||||
<option data-form="Monarchy" value="Despotate">Despotate</option>
|
||||
<option data-form="Republic" value="Diarchy">Diarchy</option>
|
||||
<option data-form="Theocracy" value="Diocese">Diocese</option>
|
||||
<option data-form="Monarchy" value="Duchy">Duchy</option>
|
||||
<option data-form="Monarchy" value="Emirate">Emirate</option>
|
||||
<option data-form="Monarchy" value="Empire">Empire</option>
|
||||
<option data-form="Theocracy" value="Eparchy">Eparchy</option>
|
||||
<option data-form="Republic" value="Federation">Federation</option>
|
||||
<option data-form="Republic" value="Free City">Free City</option>
|
||||
<option data-form="Monarchy" value="Grand Duchy">Grand Duchy</option>
|
||||
<option data-form="Monarchy" value="Heptarchy">Heptarchy</option>
|
||||
<option data-form="Horde" value="Horde">Horde</option>
|
||||
<option data-form="Theocracy" value="Imamah">Imamah</option>
|
||||
<option data-form="Monarchy" value="Khaganate">Khaganate</option>
|
||||
<option data-form="Monarchy" value="Khanate">Khanate</option>
|
||||
<option data-form="Monarchy" value="Kingdom">Kingdom</option>
|
||||
<option data-form="Union" value="League">League</option>
|
||||
<option data-form="Monarchy" value="Marches">Marches</option>
|
||||
<option data-form="Republic" value="Oligarchy">Oligarchy</option>
|
||||
<option data-form="Monarchy" value="Principality">Principality</option>
|
||||
<option data-form="Republic" value="Protectorate">Protectorate</option>
|
||||
<option data-form="Republic" value="Republic">Republic</option>
|
||||
<option data-form="Monarchy" value="Satrapy">Satrapy</option>
|
||||
<option data-form="Monarchy" value="Shogunate">Shogunate</option>
|
||||
<option data-form="Monarchy" value="Sultanate">Sultanate</option>
|
||||
<option data-form="Republic" value="Tetrarchy">Tetrarchy</option>
|
||||
<option data-form="Theocracy" value="Theocracy">Theocracy</option>
|
||||
<option data-form="Republic" value="Trade Company">Trade Company</option>
|
||||
<option data-form="Wild" value="Tribes">Tribes</option>
|
||||
<option data-form="Republic" value="Triumvirate">Triumvirate</option>
|
||||
<option data-form="Monarchy" value="Tsardom">Tsardom</option>
|
||||
<option data-form="Monarchy" value="Ulus">Ulus</option>
|
||||
<option data-form="Union" value="Union">Union</option>
|
||||
<option data-form="Horde" value="United Hordes">United Hordes</option>
|
||||
<option data-form="Union" value="United Kingdom">United Kingdom</option>
|
||||
<option data-form="Union" value="United Provinces">United Provinces</option>
|
||||
<option data-form="Union" value="United Republic">United Republic</option>
|
||||
<option data-form="Union" value="United States">United States</option>
|
||||
<option data-form="Wild" value="United Tribes">United Tribes</option>
|
||||
</select>
|
||||
<input id="stateNameEditorCustomForm" placeholder="type form name" data-tip="Create custom state form name" style="display: none; width: 11em;">
|
||||
<span id="stateNameEditorAddForm" data-tip="Click to add custom state form name to the list" class="icon-plus pointer"></span>
|
||||
|
|
@ -3302,7 +3303,7 @@
|
|||
</select>
|
||||
</div>
|
||||
|
||||
<div data-tip="Equirectangular projection is used: distortion is max on poles. Use map with aspect ratio 2:1 for best result" style="font-style: italic; margin: .2em 0">Equirectangular projection is used</div>
|
||||
<div data-tip="Equirectangular projection is used: distortion is maximum on poles. Use map with aspect ratio 2:1 for best result" style="font-style: italic; margin: .2em 0">Equirectangular projection is used</div>
|
||||
</div>
|
||||
|
||||
<div id="options3dBottom" style="margin-top: .2em">
|
||||
|
|
|
|||
5
main.js
5
main.js
|
|
@ -115,9 +115,8 @@ let scale = 1, viewX = 0, viewY = 0;
|
|||
const zoom = d3.zoom().scaleExtent([1, 20]).on("zoom", zoomed);
|
||||
|
||||
applyStoredOptions();
|
||||
let graphWidth = +mapWidthInput.value; // voronoi graph extention, should be stable for each map
|
||||
let graphHeight = +mapHeightInput.value;
|
||||
let svgWidth = graphWidth, svgHeight = graphHeight; // svg canvas resolution, can vary for each map
|
||||
let graphWidth = +mapWidthInput.value, graphHeight = +mapHeightInput.value; // voronoi graph extention, cannot be changed arter generation
|
||||
let svgWidth = graphWidth, svgHeight = graphHeight; // svg canvas resolution, can be changed
|
||||
landmass.append("rect").attr("x", 0).attr("y", 0).attr("width", graphWidth).attr("height", graphHeight);
|
||||
oceanPattern.append("rect").attr("fill", "url(#oceanic)").attr("x", 0).attr("y", 0).attr("width", graphWidth).attr("height", graphHeight);
|
||||
oceanLayers.append("rect").attr("id", "oceanBase").attr("x", 0).attr("y", 0).attr("width", graphWidth).attr("height", graphHeight);
|
||||
|
|
|
|||
|
|
@ -758,6 +758,15 @@
|
|||
|
||||
for (const s of states) {
|
||||
if (list && !list.includes(s.i)) continue;
|
||||
|
||||
// some nomadic states
|
||||
if (s.type === "Nomadic" && P(.8)) {
|
||||
s.form = "Horde";
|
||||
s.formName = expTiers[s.i] > 2 ? "United Hordes" : "Horde";
|
||||
s.fullName = getFullName(s);
|
||||
continue;
|
||||
}
|
||||
|
||||
const religion = pack.cells.religion[s.center];
|
||||
const theocracy = religion && pack.religions[religion].expansion === "state" || (P(.1) && pack.religions[religion].type === "Organized");
|
||||
s.form = theocracy ? "Theocracy" : s.type === "Naval" ? ra(navalArray) : ra(genericArray);
|
||||
|
|
@ -767,7 +776,6 @@
|
|||
|
||||
function selectForm(s) {
|
||||
const base = pack.cultures[s.culture].base;
|
||||
if (s.type === "Nomadic" && P(.3)) return "Horde"; // some nomadic states
|
||||
|
||||
if (s.form === "Monarchy") {
|
||||
const form = monarchy[expTiers[s.i]];
|
||||
|
|
@ -842,7 +850,8 @@
|
|||
Republic:{Province:6, Department:2, Governorate:2, State:1, Canton:1, Prefecture:1},
|
||||
Theocracy:{Parish:5, Deanery:3, Province:2, Council:1, District:1},
|
||||
Union:{Province:2, State:1, Canton:1, Republic:1, County:1},
|
||||
Wild:{Territory:6, Land:3, Province:1, Region:1}
|
||||
Wild:{Territory:10, Land:5, Province:2, Region:2, Tribe:1, Clan:1},
|
||||
Horde:{Horde:1}
|
||||
}
|
||||
|
||||
// generate provinces for a selected burgs
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
// fit full-screen map if window is resized
|
||||
$(window).resize(function(e) {
|
||||
if (localStorage.getItem("mapWidth") && localStorage.getItem("mapHeight")) return;
|
||||
mapWidthInput.value = window.innerWidth;
|
||||
mapHeightInput.value = window.innerHeight;
|
||||
changeMapSize();
|
||||
|
|
|
|||
|
|
@ -134,8 +134,8 @@ function mapSizeInputChange() {
|
|||
|
||||
// change svg size on manual size change or window resize, do not change graph size
|
||||
function changeMapSize() {
|
||||
const svgWidth = Math.min(+mapWidthInput.value, window.innerWidth);
|
||||
const svgHeight = Math.min(+mapHeightInput.value, window.innerHeight);
|
||||
svgWidth = Math.min(+mapWidthInput.value, window.innerWidth);
|
||||
svgHeight = Math.min(+mapHeightInput.value, window.innerHeight);
|
||||
svg.attr("width", svgWidth).attr("height", svgHeight);
|
||||
|
||||
const maxWidth = Math.max(+mapWidthInput.value, graphWidth);
|
||||
|
|
|
|||
|
|
@ -275,10 +275,24 @@ function editStates() {
|
|||
}
|
||||
|
||||
function applyNameChange(s) {
|
||||
s.name = document.getElementById("stateNameEditorShort").value;
|
||||
s.formName = document.getElementById("stateNameEditorSelectForm").value;
|
||||
s.fullName = document.getElementById("stateNameEditorFull").value;
|
||||
if (stateNameEditorUpdateLabel.checked) BurgsAndStates.drawStateLabels([s.i]);
|
||||
const nameInput = document.getElementById("stateNameEditorShort");
|
||||
const formSelect = document.getElementById("stateNameEditorSelectForm");
|
||||
const fullNameInput = document.getElementById("stateNameEditorFull");
|
||||
|
||||
const nameChanged = nameInput.value !== s.name;
|
||||
const formChanged = formSelect.value !== s.formName;
|
||||
const fullNameChanged = fullNameInput.value !== s.fullName;
|
||||
const changed = nameChanged || formChanged || fullNameChanged;
|
||||
|
||||
if (formChanged) {
|
||||
const form = formSelect.selectedOptions[0].dataset.form || null;
|
||||
if (form) s.form = form;
|
||||
}
|
||||
|
||||
s.name = nameInput.value;
|
||||
s.formName = formSelect.value;
|
||||
s.fullName = fullNameInput.value;
|
||||
if (changed && stateNameEditorUpdateLabel.checked) BurgsAndStates.drawStateLabels([s.i]);
|
||||
refreshStatesEditor();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue