Large

Ikariam Medieval Theme

By bluesman Last update May 30, 2011 — Installed 17,365 times.

There are 27 previous versions of this script.

// coding: utf-8
// ==UserScript==
// @name        Ikariam Medieval Theme
// @version 	0.4.1
// @icon		http://img121.imageshack.us/img121/4765/iconrr.png
// @author		bluesman ( http://userscripts.org/users/165018 )
// @homepage	http://userscripts.org/scripts/show/77049
// @description	Ikariam skin to replace original Ikariam artwork with medieval ambience
// @namespace	medieval.ikariam
// @include		http://s*.ikariam.*
// @exclude		http://support.ikariam.*
// @require		http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js
//
// @resource	mayor				http://www.speedbadminton.rs/ikariam/mayor.png
// @resource	mayor_active 		http://www.speedbadminton.rs/ikariam/mayor_active.png
// @resource	general				http://www.speedbadminton.rs/ikariam/general.png
// @resource	general_active		http://www.speedbadminton.rs/ikariam/general_active.png
// @resource	general_alert		http://www.speedbadminton.rs/ikariam/general_alert.png
// @resource	scientist			http://www.speedbadminton.rs/ikariam/scientist.png
// @resource	scientist_active 	http://www.speedbadminton.rs/ikariam/scientist_active.png
// @resource	diplomat 			http://www.speedbadminton.rs/ikariam/diplomat.png
// @resource	diplomat_active		http://www.speedbadminton.rs/ikariam/diplomat_active.png
// @resource	unit_swordsman		http://www.speedbadminton.rs/ikariam/units/swordsman_r_120x100.png
// @resource	unit_spearman		http://www.speedbadminton.rs/ikariam/units/spearman_r_120x100.png
// @resource	unit_phalanx		http://www.speedbadminton.rs/ikariam/units/phalanx_r_120x100.png
// @resource	unit_archer			http://www.speedbadminton.rs/ikariam/units/archer_r_120x100.png
// @resource	unit_ram			http://www.speedbadminton.rs/ikariam/units/ram_r_120x100.png
// @resource	unit_catapult		http://www.speedbadminton.rs/ikariam/units/catapult_r_120x100.png
// @resource	unit_steamgiant		http://www.speedbadminton.rs/ikariam/units/steamgiant_r_120x100.png
// @resource	unit_cook			http://www.speedbadminton.rs/ikariam/units/cook_r_120x100.png
// @resource	unit_medic			http://www.speedbadminton.rs/ikariam/units/medic_r_120x100.png
// @resource	building_townhall		http://www.speedbadminton.rs/ikariam/building_townhall.png
// @resource	building_palace			http://www.speedbadminton.rs/ikariam/building_palace.png
// @resource	building_palaceColony	http://www.speedbadminton.rs/ikariam/building_palaceColony.png
// @resource	building_embassy		http://www.speedbadminton.rs/ikariam/building_embassy.png
// @resource	building_academy		http://www.speedbadminton.rs/ikariam/building_academy.png
// @resource	building_tavern			http://www.speedbadminton.rs/ikariam/building_tavern.png
// @resource	building_wall			http://www.speedbadminton.rs/ikariam/building_wall.png
// @resource	building_museum			http://www.speedbadminton.rs/ikariam/building_museum.png
// @resource	building_safehouse		http://www.speedbadminton.rs/ikariam/building_safehouse.png
// @resource	building_barracks		http://www.speedbadminton.rs/ikariam/building_barracks.png
// @resource	building_warehouse		http://www.speedbadminton.rs/ikariam/building_warehouse.png
// @resource	building_glassblowing	http://www.speedbadminton.rs/ikariam/building_glassblowing.png
// @resource	building_alchemist		http://www.speedbadminton.rs/ikariam/building_alchemist.png
// @resource	building_architect		http://www.speedbadminton.rs/ikariam/building_architect.png
// @resource	building_winegrower		http://www.speedbadminton.rs/ikariam/building_winegrower.png
// @resource	building_vineyard		http://www.speedbadminton.rs/ikariam/building_vineyard.png
// @resource	building_fireworker		http://www.speedbadminton.rs/ikariam/building_fireworker.png
// @resource	building_optician		http://www.speedbadminton.rs/ikariam/building_optician.png
// @resource	building_port			http://www.speedbadminton.rs/ikariam/building_port.png
// @resource	building_shipyard		http://www.speedbadminton.rs/ikariam/building_shipyard.png
// @resource	building_temple			http://www.speedbadminton.rs/ikariam/building_temple.png
// @resource	building_workshop		http://www.speedbadminton.rs/ikariam/building_workshop.png
// @resource	building_forester		http://www.speedbadminton.rs/ikariam/building_forester.png
// @resource	building_branchOffice	http://www.speedbadminton.rs/ikariam/building_branchOffice.png
// @resource	building_stonemason		http://www.speedbadminton.rs/ikariam/building_stonemason.png
// @resource	building_carpentering	http://www.speedbadminton.rs/ikariam/building_carpentering.png
// @resource	bg_body 				http://www.speedbadminton.rs/ikariam/bg/bg_stone.jpg
// @resource	bg_container2			http://www.speedbadminton.rs/ikariam//bg/bg_content.png
// @resource	bg_footer				http://www.speedbadminton.rs/ikariam/bg/bg_footer.png
// @resource	bg_extraDiv2			http://www.speedbadminton.rs/ikariam/bg/bg_ocean.jpg
// @resource	bg_extraDiv1			http://www.speedbadminton.rs/ikariam/bg/bg_sky.jpg
// @resource	bg_header				http://www.speedbadminton.rs/ikariam/bg/bg_header.jpg
// @resource	bg_day_city_level1		http://www.speedbadminton.rs/ikariam/bg/day/city_level1.jpg
// @resource	bg_day_city_level2		http://www.speedbadminton.rs/ikariam/bg/day/city_level2.jpg
// @resource	bg_day_city_level3		http://www.speedbadminton.rs/ikariam/bg/day/city_level3.jpg
// @resource	bg_day_city_level4		http://www.speedbadminton.rs/ikariam/bg/day/city_level4.jpg
// @resource	bg_day_city_level5		http://www.speedbadminton.rs/ikariam/bg/day/city_level5.jpg
// @resource	bg_day_city_level6		http://www.speedbadminton.rs/ikariam/bg/day/city_level6.jpg
// @resource	bg_day_city_level7		http://www.speedbadminton.rs/ikariam/bg/day/city_level7.jpg
// @resource	bg_day_city_level8 		http://www.speedbadminton.rs/ikariam/bg/day/city_level8.jpg
// @resource	bg_day_city_level9		http://www.speedbadminton.rs/ikariam/bg/day/city_level9.jpg
// @resource	bg_day_city_level10		http://www.speedbadminton.rs/ikariam/bg/day/city_level10.jpg
// @resource	bg_day_city_level11		http://www.speedbadminton.rs/ikariam/bg/day/city_level11.jpg
// @resource	bg_day_city_level12		http://www.speedbadminton.rs/ikariam/bg/day/city_level12.jpg
// @resource	bg_day_city_level13		http://www.speedbadminton.rs/ikariam/bg/day/city_level13.jpg
// @resource	bg_day_city_level14		http://www.speedbadminton.rs/ikariam/bg/day/city_level14.jpg
// @resource	bg_day_city_level15		http://www.speedbadminton.rs/ikariam/bg/day/city_level15.jpg
// @resource	bg_day_city_level16		http://www.speedbadminton.rs/ikariam/bg/day/city_level16.jpg
// @resource	bg_day_city_level17		http://www.speedbadminton.rs/ikariam/bg/day/city_level17.jpg
// @resource	bg_day_city_level18		http://www.speedbadminton.rs/ikariam/bg/day/city_level18.jpg
// @resource	bg_day_city_level19		http://www.speedbadminton.rs/ikariam/bg/day/city_level19.jpg
// @resource	bg_day_city_level20		http://www.speedbadminton.rs/ikariam/bg/day/city_level20.jpg
// @resource	bg_day_city_level21		http://www.speedbadminton.rs/ikariam/bg/day/city_level21.jpg
// @resource	bg_day_city_level22		http://www.speedbadminton.rs/ikariam/bg/day/city_level22.jpg
// @resource	bg_day_city_level23		http://www.speedbadminton.rs/ikariam/bg/day/city_level23.jpg
// @resource	bg_day_city_level24		http://www.speedbadminton.rs/ikariam/bg/day/city_level24.jpg
//
//-----------------------------
// CHANGELOG
//
// @history 0.3.3 removed annoying images for ambrosia and facebook in v0.4.0
// @history 0.3.2 two more buildings and new feature: different building for different city level
// @history 0.3.1 active advisor bug fix
// @history 0.3.0 units and more buildings
// @history 0.2.3 couple more graphics and some cosmetics
// @history 0.2.2 added jqeury as required, added building replacement in buildingGround view
// @history 0.2.1 new graphics
// @history 0.2.0 changed some interface images
// @history 0.1.0 initial version
//
// ==/UserScript==

Skin = {
	view : '',			// current view
	position : '',		// current building position
	cityLevel : 0,		// currentu city level
	timeOfDay : 'day',	// time of day
	hour : 12,			// default hour

	// time of day settings (hours)
	todSettings : {
		// night is from 0:00
		morning: 7,		// from 7 am to "day"
		day : 8,		// from 8 am to "evening"
		evening: 19,	// from 7 pm to "night"
		night: 20		// from 8 pm (until midnigt, and then from 0 to morning)
	},

	// where all images are
	url : 'http://www.speedbadminton.rs/ikariam/',

	// parent container
	parentElement : '#city #container #mainview #locations ',

	// list of buildings to replace
	buildings : [
		{ 'name' : 'townHall',		'res' : 'building_townhall' },
		{ 'name' : 'palace',		'res' : 'building_palace' },
		{ 'name' : 'palaceColony',	'res' : 'building_palaceColony' },
		{ 'name' : 'embassy',		'res' : 'building_embassy' },
		{ 'name' : 'academy',		'res' : 'building_academy' },
		{ 'name' : 'tavern',		'res' : 'building_tavern' },
		{ 'name' : 'wall',			'res' : 'building_wall' },
		{ 'name' : 'museum',		'res' : 'building_museum' },
		{ 'name' : 'safehouse',		'res' : 'building_safehouse' },
		{ 'name' : 'barracks',		'res' : 'building_barracks' },
		{ 'name' : 'warehouse',		'res' : 'building_warehouse' },
		{ 'name' : 'glassblowing',	'res' : 'building_glassblowing' },
		{ 'name' : 'alchemist',		'res' : 'building_alchemist' },
		{ 'name' : 'architect',		'res' : 'building_architect' },
		{ 'name' : 'winegrower',	'res' : 'building_winegrower' },
		{ 'name' : 'vineyard',		'res' : 'building_vineyard' },
		{ 'name' : 'fireworker',	'res' : 'building_fireworker' },
		{ 'name' : 'optician',		'res' : 'building_optician' },
		{ 'name' : 'port',			'res' : 'building_port' },
		{ 'name' : 'shipyard',		'res' : 'building_shipyard' },
		{ 'name' : 'temple',		'res' : 'building_temple',		'css' : 'width:100px; height:100px; margin-top:-29px; margin-left:-10px;' },
		{ 'name' : 'workshop',		'res' : 'building_workshop' },
		{ 'name' : 'forester',		'res' : 'building_forester' },
		{ 'name' : 'branchOffice',	'res' : 'building_branchOffice' },
		{ 'name' : 'stonemason',	'res' : 'building_stonemason' },
		{ 'name' : 'carpentering',	'res' : 'building_carpentering' }
	],

	units : [
		{ 'name' : 'swordsman',		'res' : 'unit_swordsman' },
		{ 'name' : 'spearman',		'res' : 'unit_spearman' },
		{ 'name' : 'phalanx',		'res' : 'unit_phalanx' },
		{ 'name' : 'archer',		'res' : 'unit_archer' },
		{ 'name' : 'ram',			'res' : 'unit_ram' },
		{ 'name' : 'catapult',		'res' : 'unit_catapult' },
		{ 'name' : 'steamgiant',	'res' : 'unit_steamgiant' },
		{ 'name' : 'cook',			'res' : 'unit_cook' },
		{ 'name' : 'medic',			'res' : 'unit_medic' }
	],

	advisors : [
		{ 'name' : 'advCities',		'normal' : 'mayor',		'active' : 'mayor_active' },
		{ 'name' : 'advMilitary',	'normal' : 'general',	'active' : 'general_active' },
		{ 'name' : 'advResearch',	'normal' : 'scientist',	'active' : 'scientist_active' },
		{ 'name' : 'advDiplomacy',	'normal' : 'diplomat',	'active' : 'diplomat_active' }
	],

	// add custom css styles
	addStyles : function ()
	{
		GM_addStyle("body { background:#202020 url(" 	 + GM_getResourceURL('bg_body')      + ") repeat top center; }");
		GM_addStyle("#container2 {background-image:url(" + GM_getResourceURL('bg_container2')+ "); } ");
		GM_addStyle("#footer { background-image:url(" 	 + GM_getResourceURL('bg_footer')    + "); } ");
		GM_addStyle("#extraDiv2 { background:url(" 		 + GM_getResourceURL('bg_extraDiv2') + ") repeat top center; } ");
		GM_addStyle("#extraDiv1 { background:url(" 		 + GM_getResourceURL('bg_extraDiv1') + ") repeat top center; } ");
		GM_addStyle("#header { background:#f3dcb6 url("  + GM_getResourceURL('bg_header')    + ") no-repeat; }");

		// replace advisors
		for (i = 0; i < this.advisors.length; i++)
		{
			GM_addStyle ("#advisors UL LI#"+this.advisors[i]['name'] + " .normal { background-image:url(" + GM_getResourceURL(this.advisors[i]['normal']) +"); }");
			GM_addStyle ("#advisors UL LI#"+this.advisors[i]['name'] + " .normalactive { background-image:url(" + GM_getResourceURL(this.advisors[i]['active']) +"); }");
		}
//		GM_addStyle ("#advisors UL LI#advMilitary .normalalert { background-image:url(" + GM_getResourceURL('mayor') + "); }");
		GM_addStyle ("#advisors UL LI#advMilitary .normalalert { background-image:url(" + GM_getResourceURL('general_alert') +"); }");

		/*  replace background for current city only */
		var level = this.cityLevel > 24 ? 24 : this.cityLevel;
		level = level < 1 ? 1 : level;

		GM_addStyle("#city #container .phase" + level + " { background-image:url(" + GM_getResourceURL("bg_" + this.timeOfDay + "_city_level" + level) +"); }");

		// for buidling view replace all building images
		if (this.view == 'buildingGround')		{ this.replaceBuildingGrounds() }
		else if (this.view == 'barracks')		{ this.replaceUnits(); }
		else if (this.view == 'city')			{ this.replaceBuildings(); }

	},

	// replace building images
	replaceBuildings: function ()
	{
		for (i = 0; i < this.buildings.length; i++)
		{
			GM_addStyle (this.parentElement + " ."+this.buildings[i]['name'] + " .buildingimg { background-image:url(" + GM_getResourceURL(this.buildings[i]['res']) +"); }");
		}

		for (i = 0; i < this.buildings.length; i++)
		{
			if (this.buildings[i]['css'])
			{
				GM_addStyle (this.parentElement + " ."+this.buildings[i]['name'] + " .buildingimg { " + this.buildings[i]['css'] +" }");
			}
		}

	},

	// replace all units images
	replaceUnits : function ()
	{
		for (i = 0; i < this.units.length; i++)
		{
			$("."+this.units[i]['name'] + " div.unitinfo a IMG").attr('src', GM_getResourceURL(this.units[i]['res']));
		}
	},

	replaceBuildingGrounds : function ()
	{
		if (this.position == 14) // for city wall
		{
			$(".wall .buildinginfo IMG").attr('src', GM_getResourceURL('building_wall'));
		}
		else
		{
			$(".buildinginfo IMG").css('margin-left','10px');
			for (i = 0; i < this.buildings.length; i++)
			{
				$("." + this.buildings[i]['name']+" .buildinginfo IMG").attr('src', GM_getResourceURL(this.buildings[i]['res']));
			}
		}
	},

	// Find current city level
	getCityLevel : function ()
	{
		if (document.getElementById('position0'))
		{
			this.cityLevel = document.getElementById('position0').getElementsByTagName('a')[0].title;
			this.cityLevel = parseInt (this.cityLevel.substr(this.cityLevel.length - 2));

			if ( this.cityLevel > 26 )
			{
				this.cityLevel = 26;
			}
		}
	},

	// get current time of day
	getTimeOfDay : function ()
	{
		d = new Date();
		this.hour = d.getHours();

		if 		(this.hour > this.todSettings.night)	{ this.timeOfDay = 'night'; }
		else if (this.hour > this.todSettings.evening)	{ this.timeOfDay = 'evening'; }
		else if (this.hour > this.todSettings.day)		{ this.timeOfDay = 'day'; }
		else if (this.hour > this.todSettings.morning)	{ this.timeOfDay = 'morning'; }
		else 											{ this.timeOfDay = 'night'; }

		// temporary set to day because I'm not done with all backgrounds
		this.timeOfDay = 'day';
	},

	getView : function ()
	{
		this.view = $('BODY').attr('id');

		if (this.view == 'buildingGround')
		{
			var regExp = new RegExp("position\=([a-zA-Z0-9]+)", "ig");
			var RegExpRes = regExp.exec(document.location.href);
			this.position = (RegExpRes == null) ? '' : RegExpRes[1];
		}
	},

	// initialize
	init : function()
	{
		this.getView();
		this.getTimeOfDay();
		this.getCityLevel();
	}

};

// execute
Skin.init();
Skin.addStyles();