[html]<script>
function Sim(sldrId) {
let id = document.getElementById(sldrId);
if(id) {
this.sldrRoot = id
}
else {
this.sldrRoot = document.querySelector('.sim-slider')
};
// Carousel objects
this.sldrList = this.sldrRoot.querySelector('.sim-slider-list');
this.sldrElements = this.sldrList.querySelectorAll('.sim-slider-element');
this.sldrElemFirst = this.sldrList.querySelector('.sim-slider-element');
this.leftArrow = this.sldrRoot.querySelector('div.sim-slider-arrow-left');
this.rightArrow = this.sldrRoot.querySelector('div.sim-slider-arrow-right');
this.indicatorDots = this.sldrRoot.querySelector('div.sim-slider-dots');
// Initialization
this.options = Sim.defaults;
Sim.initialize(this)
};
Sim.defaults = {
// Default options for the carousel
loop: true, // Бесконечное зацикливание слайдера
auto: true, // Автоматическое пролистывание
interval: 5000, // Интервал между пролистыванием элементов (мс)
arrows: true, // Пролистывание стрелками
dots: true // Индикаторные точки
};
Sim.prototype.elemPrev = function(num) {
num = num || 1;
let prevElement = this.currentElement;
this.currentElement -= num;
if(this.currentElement < 0) this.currentElement = this.elemCount-1;
if(!this.options.loop) {
if(this.currentElement == 0) {
this.leftArrow.style.display = 'none'
};
this.rightArrow.style.display = 'block'
};
this.sldrElements[this.currentElement].style.opacity = '1';
this.sldrElements[prevElement].style.opacity = '0';
if(this.options.dots) {
this.dotOn(prevElement); this.dotOff(this.currentElement)
}
};
Sim.prototype.elemNext = function(num) {
num = num || 1;
let prevElement = this.currentElement;
this.currentElement += num;
if(this.currentElement >= this.elemCount) this.currentElement = 0;
if(!this.options.loop) {
if(this.currentElement == this.elemCount-1) {
this.rightArrow.style.display = 'none'
};
this.leftArrow.style.display = 'block'
};
this.sldrElements[this.currentElement].style.opacity = '1';
this.sldrElements[prevElement].style.opacity = '0';
if(this.options.dots) {
this.dotOn(prevElement); this.dotOff(this.currentElement)
}
};
Sim.prototype.dotOn = function(num) {
this.indicatorDotsAll[num].style.cssText = 'background-color:#7a6843; cursor:pointer;'
};
Sim.prototype.dotOff = function(num) {
this.indicatorDotsAll[num].style.cssText = 'background-color:rgb(82 67 36); cursor:default;'
};
Sim.initialize = function(that) {
// Constants
that.elemCount = that.sldrElements.length; // Количество элементов
// Variables
that.currentElement = 0;
let bgTime = getTime();
// Functions
function getTime() {
return new Date().getTime();
};
function setAutoScroll() {
that.autoScroll = setInterval(function() {
let fnTime = getTime();
if(fnTime - bgTime + 10 > that.options.interval) {
bgTime = fnTime; that.elemNext()
}
}, that.options.interval)
};
// Start initialization
if(that.elemCount <= 1) { // Отключить навигацию
that.options.auto = false; that.options.arrows = false; that.options.dots = false;
that.leftArrow.style.display = 'none'; that.rightArrow.style.display = 'none'
};
if(that.elemCount >= 1) { // показать первый элемент
that.sldrElemFirst.style.opacity = '1';
};
if(!that.options.loop) {
that.leftArrow.style.display = 'none'; // отключить левую стрелку
that.options.auto = false; // отключить автопркрутку
}
else if(that.options.auto) { // инициализация автопрокруки
setAutoScroll();
// Остановка прокрутки при наведении мыши на элемент
that.sldrList.addEventListener('mouseenter', function() {clearInterval(that.autoScroll)}, false);
that.sldrList.addEventListener('mouseleave', setAutoScroll, false)
};
if(that.options.arrows) { // инициализация стрелок
that.leftArrow.addEventListener('click', function() {
let fnTime = getTime();
if(fnTime - bgTime > 1000) {
bgTime = fnTime; that.elemPrev()
}
}, false);
that.rightArrow.addEventListener('click', function() {
let fnTime = getTime();
if(fnTime - bgTime > 1000) {
bgTime = fnTime; that.elemNext()
}
}, false)
}
else {
that.leftArrow.style.display = 'none'; that.rightArrow.style.display = 'none'
};
if(that.options.dots) { // инициализация индикаторных точек
let sum = '', diffNum;
for(let i=0; i<that.elemCount; i++) {
sum += '<span class="sim-dot"></span>'
};
that.indicatorDots.innerHTML = sum;
that.indicatorDotsAll = that.sldrRoot.querySelectorAll('span.sim-dot');
// Назначаем точкам обработчик события 'click'
for(let n=0; n<that.elemCount; n++) {
that.indicatorDotsAll[n].addEventListener('click', function() {
diffNum = Math.abs(n - that.currentElement);
if(n < that.currentElement) {
bgTime = getTime(); that.elemPrev(diffNum)
}
else if(n > that.currentElement) {
bgTime = getTime(); that.elemNext(diffNum)
}
// Если n == that.currentElement ничего не делаем
}, false)
};
that.dotOff(0); // точка[0] выключена, остальные включены
for(let i=1; i<that.elemCount; i++) {
that.dotOn(i)
}
}
};
new Sim();
</script>
<style>
*, ::after, ::before {
box-sizing:content-box; -moz-box-sizing:initial; -webkit-box-sizing:initial;
}
</style>
[/html]
Империя Меча
Империя людей созывает своих подданных!
Империя Меча, пожалуй, самая разнообразная из стран Терры, состоящая из нескольких Доминионов, совершенно не похожих друг на друга.
Основанная людьми крупнейшая из стран Старого Света переживает непростой период из-за смерти её лидера — прямо сейчас разворачивается борьба наследников за опустевший трон императора и каждый из них, кажется, не готов идти на уступки. Церковь Судьи же, бывшая некогда духовным объединителем Империи, теряет свои позиции, уступая набирающей популярность Церкви Четырёх. И ведь помимо этого у каждой страны есть и свои внутренние проблемы, решение которых не приемлет отлагательств.
Внимание! Действует акция — приём жителей Империи по упрощённому шаблону анкеты!
N.B. Быстрица, Авалон и Сильвания (в рекламе не нуждается) — также представители Империи и участники этой акции.
Кнопки выше
открывают содержимое
Сердце переживающей кризис Империи, до сих пор не отошедшее от Войны Двух Лиг, разделившей на два противоборствующих лагеря и без того не бывшую единой землю. Местные дворяне готовы бороться как за влияние на недавно вернувшегося короля Свена, так и продолжать конфликты друг с другом, ведь поводов для них достаточно — здесь как привычные земельные споры, так и вопросы веры. Казалось бы, айзенцы привыкли жить войной, но, может быть, они уже устали от этого, и уже пора объединиться вокруг нового монарха?
Кто может найти себе приют в Железном королевстве:
король Свен — один из основных претендентов на императорский трон, сын почившего Альбрехта II Миренберга
вдовствующая императрица — последняя супруга почившего императора и мать короля
аристократия всех сортов и рангов — курфюрсты, герцоги, графы, бароны, каждый из которых готов установить свои правила на своих землях
бывшие участники Войны Двух Лиг — как те же аристократы, воевавшие со вчерашними друзьями, так и полководцы и простые рыцари, солдаты, наёмники
духовенство Церкви Судьи и Церкви Четырёх — противоборствующие стороны в борьбе за прихожан, священники различных рангов и инквизиция двух Церквей
оружейники, металлурги — айзенцы известные мастера в изготовлении оружия, в том числе огнестрельного
простые жители, пытающиеся найти себе место в эти трудные времена
Интриги придворных лиц и церковных авторитетов, блеск Южного Карнавала, галантный век во всей его красе. Совсем недавно Италика объявила о своём выходе из унии с Франкией, и некогда единый Валуар находится на пороге своего раздела. При этом в выборах будущего императора, возможно, именно эта часть империи сыграет свою главную роль — голос правителя Валуара может стать решающим в Совете Империи, а Великий Понтифик до сих пор формально считается председателем Совета
Кто может найти себя во Франкии и Италике:
близнецы-дофины — наследницы Валуара, среди которых пока не ясно, кто станет королевой
Великий понтифик Церкви Судьи — тот, от кого во многом зависит судьба конфессии в эти непростые времена и кто, желая укрепить свою власть и авторитет, объявил о переносе Святого Престола из Гранады в Италику
придворные, министры, представители знати, фавориты и фаворитки — приближённые к королевскому двору, стремящиеся оказать своё влияние на короля и наследниц
мушкетёры — представители королевских гвардейских подразделений
люди искусства и науки, представители модного мира — за Валуаром закрепилась слава культурной столицы всей Империи
завсегдатаи Южного Карнавала — знаменитого нескончаемого праздника в Венето
духовенство Италики и представители инквизиции — приближённые понтифика и его соперники, в своём ревностном отношении к вере в Судью италийцы вполне могут соперничать с гранадцами
прочие жители — жители городов, защитники правопорядка, крестьяне, купцы, прислуга и бродяги
Обладательница некогда самого сильного флота в Империи переживает сейчас не самые простые времена после поражения в войне с Авалоном и истощения королевских рудников. Однако, сильная рука династии Кастро продолжает вести свой народ дальше и не намерена оставлять Гранаду на задворках истории.
Кто может найти себе место в южных краях:
королевская семья — супруга короля Фердинанда и их сын, а так же его сестра, проживающая в Авалоне
представители Кортесов — собрания выдающихся лиц государства, имеющего определенное влияние на короля (высшее духовенство, дворяне (идальго), отдельные выдающиеся горожане)
придворный маг Гранады — советник короля по магическим вопросам
инквизиция — ревностные защитники веры, моральных норм и общественного порядка, имеющие здесь больше власти, чем в любой другой из стран
представители Церкви Судьи — церковь всегда играла очень большую роль в Гранаде и на фоне новостей о переносе Святого Престола в Италику не намерена терять своих позиций и влияния на короля южного королевства
морские командующие, моряки и каперы — Великая Армада, пусть и перенесла яркий разгром, всё ещё остаётся силой, с которой стоит считаться
участники реконкисты — командующие и солдаты, участники уже много веков не прекращающейся войны с Султанатом, вошедшей сейчас на новый виток активности
конкистадоры — те, кто пытаются найти для королевства новые земли, неизведанные острова, а может быть даже найти путь к неизвестным континентам
тореодоры — любимцы народа, рискующие своей жизнью ради самого захватывающего из зрелищ
представители Лос Вагос — нелегальной тайной организации борцов за справедливость
обычные жители — в основной своей массе верные Церкви и королю, дорожащие своими многочисленными традициями и никогда не упускающие возможности устроить очередную фиесту
Жители Империи Людей (антуражка, фэнтези)
[html]<script>
function Sim(sldrId) {
let id = document.getElementById(sldrId);
if(id) {
this.sldrRoot = id
}
else {
this.sldrRoot = document.querySelector('.sim-slider')
};
// Carousel objects
this.sldrList = this.sldrRoot.querySelector('.sim-slider-list');
this.sldrElements = this.sldrList.querySelectorAll('.sim-slider-element');
this.sldrElemFirst = this.sldrList.querySelector('.sim-slider-element');
this.leftArrow = this.sldrRoot.querySelector('div.sim-slider-arrow-left2');
this.rightArrow = this.sldrRoot.querySelector('div.sim-slider-arrow-right2');
this.indicatorDots = this.sldrRoot.querySelector('div.sim-slider-dots');
// Initialization
this.options = Sim.defaults;
Sim.initialize(this)
};
Sim.defaults = {
// Default options for the carousel
loop: true, // Бесконечное зацикливание слайдера
auto: true, // Автоматическое пролистывание
interval: 5000, // Интервал между пролистыванием элементов (мс)
arrows: true, // Пролистывание стрелками
dots: true // Индикаторные точки
};
Sim.prototype.elemPrev = function(num) {
num = num || 1;
let prevElement = this.currentElement;
this.currentElement -= num;
if(this.currentElement < 0) this.currentElement = this.elemCount-1;
if(!this.options.loop) {
if(this.currentElement == 0) {
this.leftArrow.style.display = 'none'
};
this.rightArrow.style.display = 'block'
};
this.sldrElements[this.currentElement].style.opacity = '1';
this.sldrElements[prevElement].style.opacity = '0';
if(this.options.dots) {
this.dotOn(prevElement); this.dotOff(this.currentElement)
}
};
Sim.prototype.elemNext = function(num) {
num = num || 1;
let prevElement = this.currentElement;
this.currentElement += num;
if(this.currentElement >= this.elemCount) this.currentElement = 0;
if(!this.options.loop) {
if(this.currentElement == this.elemCount-1) {
this.rightArrow.style.display = 'none'
};
this.leftArrow.style.display = 'block'
};
this.sldrElements[this.currentElement].style.opacity = '1';
this.sldrElements[prevElement].style.opacity = '0';
if(this.options.dots) {
this.dotOn(prevElement); this.dotOff(this.currentElement)
}
};
Sim.prototype.dotOn = function(num) {
this.indicatorDotsAll[num].style.cssText = 'background-color:#7a6843; cursor:pointer;'
};
Sim.prototype.dotOff = function(num) {
this.indicatorDotsAll[num].style.cssText = 'background-color:rgb(82 67 36); cursor:default;'
};
Sim.initialize = function(that) {
// Constants
that.elemCount = that.sldrElements.length; // Количество элементов
// Variables
that.currentElement = 0;
let bgTime = getTime();
// Functions
function getTime() {
return new Date().getTime();
};
function setAutoScroll() {
that.autoScroll = setInterval(function() {
let fnTime = getTime();
if(fnTime - bgTime + 10 > that.options.interval) {
bgTime = fnTime; that.elemNext()
}
}, that.options.interval)
};
// Start initialization
if(that.elemCount <= 1) { // Отключить навигацию
that.options.auto = false; that.options.arrows = false; that.options.dots = false;
that.leftArrow.style.display = 'none'; that.rightArrow.style.display = 'none'
};
if(that.elemCount >= 1) { // показать первый элемент
that.sldrElemFirst.style.opacity = '1';
};
if(!that.options.loop) {
that.leftArrow.style.display = 'none'; // отключить левую стрелку
that.options.auto = false; // отключить автопркрутку
}
else if(that.options.auto) { // инициализация автопрокруки
setAutoScroll();
// Остановка прокрутки при наведении мыши на элемент
that.sldrList.addEventListener('mouseenter', function() {clearInterval(that.autoScroll)}, false);
that.sldrList.addEventListener('mouseleave', setAutoScroll, false)
};
if(that.options.arrows) { // инициализация стрелок
that.leftArrow.addEventListener('click', function() {
let fnTime = getTime();
if(fnTime - bgTime > 1000) {
bgTime = fnTime; that.elemPrev()
}
}, false);
that.rightArrow.addEventListener('click', function() {
let fnTime = getTime();
if(fnTime - bgTime > 1000) {
bgTime = fnTime; that.elemNext()
}
}, false)
}
else {
that.leftArrow.style.display = 'none'; that.rightArrow.style.display = 'none'
};
if(that.options.dots) { // инициализация индикаторных точек
let sum = '', diffNum;
for(let i=0; i<that.elemCount; i++) {
sum += '<span class="sim-dot"></span>'
};
that.indicatorDots.innerHTML = sum;
that.indicatorDotsAll = that.sldrRoot.querySelectorAll('span.sim-dot');
// Назначаем точкам обработчик события 'click'
for(let n=0; n<that.elemCount; n++) {
that.indicatorDotsAll[n].addEventListener('click', function() {
diffNum = Math.abs(n - that.currentElement);
if(n < that.currentElement) {
bgTime = getTime(); that.elemPrev(diffNum)
}
else if(n > that.currentElement) {
bgTime = getTime(); that.elemNext(diffNum)
}
// Если n == that.currentElement ничего не делаем
}, false)
};
that.dotOff(0); // точка[0] выключена, остальные включены
for(let i=1; i<that.elemCount; i++) {
that.dotOn(i)
}
}
};
new Sim();
</script>
<style>
*, ::after, ::before {
box-sizing:content-box; -moz-box-sizing:initial; -webkit-box-sizing:initial;
}
</style>
</div>[/html]