// ==UserScript==
// @name The West Fortbattle Tool
// @namespace The West Fortbattle Tool
// @author westernblumi
// @description Fort battle tools for The West!
// @include https://*.the-west.*/game.php*
// @version 0.5
// @grant none
// ==/UserScript==
// translation: westernblumi(German & English), pepe100(Spanish)
(function (fn) {
var script = document.createElement('script');
script.setAttribute('type', 'application/javascript');
script.textContent = '(' + fn.toString() + ')();';
document.body.appendChild(script);
document.body.removeChild(script);
}) (function () {
TWFBTstart = {
version: '0.5',
langs: {
en: {
language: 'English',
aim: 'Aiming',
adventurer: 'Adventurer',
attack: 'Attack',
bonusByClothes: 'Bonus by Clothes',
bonusBySets: 'Bonus by Sets',
bonusBySkill: 'Bonus by skill',
bonusDefault: 'Defaultbonus',
bonusTotal: 'Total',
calcBonus: 'Calculate fort battle bonus',
calculator: 'Calculator',
clear: 'Clear Window',
clothes: 'Clothes',
damage: 'Damage bonus',
defense: 'Defense',
dodge: 'Dodging',
duelist: 'Duelist',
endurance: 'Stamina',
hide: 'Hiding',
leadership: 'Leadership',
lifepoints: 'Lifepoints',
newFormula: 'new formula',
oldFormula: 'old formula',
pa: 'Premium (soldier and worker fort battle bonus)',
pitfall: 'Setting traps',
resistance: 'Resistance',
scriptName: 'The West Fortbattle Tool',
soldier: 'Soldier',
worker: 'Worker',
name: 'Name',
author: 'Author: </b>',
version: 'Version: </b>',
update: 'Update',
updateAvailable: 'A new version of the script is available',
},
de: {
language: 'German (Deutsch)',
aim: 'Zielen',
adventurer: 'Abenteurer',
attack: 'Angriff',
bonusByClothes: 'Bonus durch Bekleidung',
bonusBySets: 'Bonus durch Sets',
bonusBySkill: 'Bonus durch Skillung',
bonusDefault: 'Grundbonus',
bonusTotal: 'Gesamt',
calcBonus: 'Berechne Fortkampf Bonus',
calculator: 'Rechner',
clear: 'Lösche Berechnungen',
clothes: 'Klamotten',
damage: 'Schadensbonus',
defense: 'Verteidigung',
dodge: 'Ausweichen',
duelist: 'Duellant',
endurance: 'Ausdauer',
hide: 'Verstecken',
leadership: 'Leiten',
lifepoints: 'Lebenspunkte',
newFormula: 'neue Formel',
oldFormula: 'alte Formel',
pa: 'Premium (Soldaten und Arbeiterbonus)',
pitfall: 'Fallen stellen',
resistance: 'Widerstand',
scriptName: 'The West FK Tool',
soldier: 'Soldat',
worker: 'Arbeiter',
name: 'Name',
author: 'Autor: </b>',
version: 'Version: </b>',
update: 'Update',
updateAvailable: 'Für das Script ist eine neue Version erhältlich',
},
es: {
language: 'Español',
aim: 'Apuntar',
adventurer: 'Adventurero',
attack: 'Ataque',
bonusByClothes: 'Bono por Ropas',
bonusBySets: 'Bono por Conjuntos',
bonusBySkill: 'Bono por Habilidad',
bonusDefault: 'Bono por Defecto',
bonusTotal: 'Total',
calcBonus: 'Calcular Bono de Batalla',
calculator: 'Calculadora',
clear: 'Limpiar Ventana',
clothes: 'Ropa',
damage: 'Bono de Daño',
defense: 'Defensa',
dodge: 'Eludir',
duelist: 'Duelista',
endurance: 'Condición',
hide: 'Esconderg',
leadership: 'Liderazgo',
lifepoints: 'Puntos de Vida',
newFormula: 'new formula',
oldFormula: 'old formula',
pa: 'Premium (bonus Soldado/Trabajador)',
pitfall: 'Setting traps',
resistance: 'Resistencia',
scriptName: 'The West Fortbattle Tool',
soldier: 'Soldado',
worker: 'Trabajador',
name: 'Nombre',
author: 'Autor: ',
version: 'Versión: ',
update: 'actualizar',
updateAvailable: 'Una nueva versión del script está disponible',
},
}
};
TWFBT = {
name: 'The West Fortbattle Tool',
author: 'westernblumi',
minGame: '2.4',
maxGame: Game.version.toString(),
website: 'https://greasyfork.org/de/scripts/22880-the-west-fortbattle-tool',
updateUrl: 'https://raw.githack.com/westernblumi/thewest/master/skriptUpdater.js',
side: 'attack',
pa: false,
characterClass: Character.charClass,
formula: 'newFormula',
Images: {
settings: 'data:image/jpeg;base64,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',
},
updateLang: function () {
var lg = TWFBTstart.langs;
TWFBT.lang = lg[Game.locale.substr(0, 2)] ? Game.locale.substr(0, 2) : 'en';
TWFBTlang = lg[TWFBT.lang];
},
};
TWFBT.updateLang();
TWFBT.Skript = {
init: function () {
TWFBT['Calculator'].init();
TWFBT['Reminder'].init();
var menuContainer = $('<div id="TWFBT-menu" class="menulink" onclick="TWFBT.GUI.openTWFBTWindow();" title="' + TWFBTlang.scriptName + '" />').css('background-image', 'url(' + TWFBT.Images.settings + ')').css('background-position', '0px 0px').mouseenter(function () {
$(this).css('background-position', '-25px 0px');
}).mouseleave(function () {
$(this).css('background-position', '0px 0px');
});
$('#ui_menubar').append($('<div class="ui_menucontainer" />').append(menuContainer).append('<div class="menucontainer_bottom" />'));
},
};
TWFBT.GUI = {
openTWFBTWindow: function () {
TWFBT.GUI.open();
TWFBT.GUI.calcSkill();
},
open: function () {
TWFBT.GUI.window = wman.open('TWFBT', TWFBTlang.scriptName, 'noreload').setMiniTitle(TWFBTlang.scriptName).setMaxSize(1268, 838);
TWFBT.GUI.window.addTab(TWFBTlang.calculator, 'TWFBTCalcSkill', TWFBT.GUI.calcSkill);
},
getDefault: function (tab) {
TWFBT.GUI.window.setResizeable(false).setSize(748, 471).clearContentPane().removeClass('nocloseall').setTitle('TWFBTCalcSkill');
TWFBT.GUI.window.dontCloseAll = false;
$(TWFBT.GUI.window.getContentPane()).css('margin-top', '0px');
var wnd = TWFBT.GUI.window.getMainDiv();
$('.textart_title', wnd).css('display', '');
TWFBT.GUI.window.activateTab(tab);
},
calcSkill: function () {
TWFBT.GUI.getDefault('TWFBTCalcSkill');
TWFBT.GUI.window.setTitle(TWFBTlang.scriptName);
var featScroll = new west.gui.Scrollpane();
$(featScroll.getMainDiv()).css({
'margin-top': '10px'
});
var calcButton = new west.gui.Button(TWFBTlang.calcBonus, function () {
TWFBT.Calculator.calcSkills();
});
var clearButton = new west.gui.Button(TWFBTlang.clear, function () {
clearTable();
});
var paCheckbox = new west.gui.Checkbox().setLabel(TWFBTlang.pa).setSelected(Premium.hasBonus('character'));
paCheckbox.setCallback(function(){TWFBT.pa = paCheckbox.isSelected();}.bind(this));
var charClassBox = new west.gui.Combobox();
charClassBox.addItem('adventurer', TWFBTlang.adventurer);
charClassBox.addItem('duelist', TWFBTlang.duelist);
charClassBox.addItem('worker', TWFBTlang.worker);
charClassBox.addItem('soldier', TWFBTlang.soldier);
charClassBox.select(Character.charClass);
TWFBT.characterClass = Character.charClass;
charClassBox.addListener(function(val){TWFBT.characterClass = val;});
var formulaBox = new west.gui.Combobox();
formulaBox.addItem('newFormula', TWFBTlang.newFormula);
formulaBox.addItem('oldFormula', TWFBTlang.oldFormula);
formulaBox.select('newFormula');
TWFBT.formula = 'newFormula';
formulaBox.addListener(function(val){TWFBT.formula = val;});
var modeBox = new west.gui.Combobox();
modeBox.addItem('attack', TWFBTlang.attack);
modeBox.addItem('defense', TWFBTlang.defense);
modeBox.addListener(function(val){TWFBT.side = val;});
featScroll.appendContent(modeBox.getMainDiv());
featScroll.appendContent(' ');
featScroll.appendContent(paCheckbox.getMainDiv());
featScroll.appendContent(' ');
featScroll.appendContent(charClassBox.getMainDiv());
featScroll.appendContent(formulaBox.getMainDiv());
featScroll.appendContent('<br>');
featScroll.appendContent(calcButton.getMainDiv());
featScroll.appendContent(clearButton.getMainDiv());
featScroll.appendContent('<table border="1" id="TWFBTCalculatorTable"></table>');
$(TWFBT.GUI.window.getContentPane()).append(featScroll.getMainDiv());
var clearTable = function () {
$('#TWFBTCalculatorTable').empty();
}
},
};
TWFBT.Calculator = {
init: function () {
TWFBT.Calculator.values = {
offense: 0,
defense: 0,
offense_skillwithbonus: 0,
defense_skillwithbonus: 0,
offense_defaultbonus: 25,
defense_defaultbonus: 10,
offense_fortbattlebonus: 0,
defense_fortbattlebonus: 0,
offense_setbonus: 0,
defense_setbonus: 0,
damage: 0,
resistance: 0,
lifepoints: 0,
side_skill: 'endurance'
};
var update = function (key, stage) {
var offense = 0;
var defense = 0;
var damage = 0;
var resistance = 0;
if(stage > 1){
switch(key) {
case 'instance_set_1': //Banditen
if(stage < 10){
offense += (stage-1)*0.5;
defense += (stage-1)*0.5;
damage += (stage-1)*0.05*Character.level;
}
else{
offense += 5;
defense += 5;
damage += 0.5*Character.level;
}
break;
case 'set_4july_2014_animal_1': //Black Barts Pferd und Sattel
damage += 15;
break;
case 'set_4july_2014_1': //Black Barts Set
if(stage >=6){
damage += 40;
}
break;
case 'set_octoberfest_gun_winner': //Blitz und Donner
offense += 5;
defense += 5;
resistance += 25;
break;
case 'set_4july_2014_animal_2': //Bob Daltons Pferd und Sattel
resistance += 25;
break;
case 'set_4july_2014_2': //Bob Daltons Set
if(stage >=6){
resistance += 75;
}
break;
case 'set_october_2014_animal_2': //Deadwood Dicks Pferd und Sattel
defense += 2;
break;
case 'set_octoberfest_2014_2': //Deadwood Dicks Set
if(stage >=6){
resistance += 35;
}
break;
case 'set_independence_gun_winner': //Feuer und Eis
offense += 2;
defense += 2;
damage += 25;
resistance += 25;
break;
case 'set_4july_2016_3': //Fremder aus dem Norden Set
if(stage >=6){
damage += (stage-1)*0.1*Character.level;
}
break;
case 'set_octoberfest_2': //George McJunkins Kleidung
if(stage >=6){
resistance += 25;
}
break;
case 'set_octoberfest_gun_2': //George McJunkins Waffen
defense += 5;
break;
case 'set_sale_2016_1'://Glücksbringer des Spielers
offense += 4;
defense += 4;
damage += 20;
resistance += 20;
break;
case 'set_speedworld_2014': //Gonzales Speedstar
if(stage < 10){
offense += (stage-1)*0.3;
defense += (stage-1)*0.3;
}
else{
offense += 3;
defense += 3;
}
break;
case 'set_4july_2016_5': //Guter alter Westen Kollektion
offense += 5;
defense += 5;
damage += 30;
resistance += 30;
break;
case 'set_independence_2': //Jeremiah Johnsons Kleider
if(stage >= 6){
resistance += 35;
}
break;
case 'set_independence_gun_2': //Jeremiah Johnsons Waffen
resistance += 25;
break;
case 'set_easter_2015_4': //Jerry Easters Set
if(stage >= 10){
offense += 2;
}
break;
case 'set_octoberfest_2014_weapon_ranking_winner': //Manitus Waffen
offense += 5;
defense += 5;
damage += 25;
resistance += 25;
break;
case 'set_fort': //Natty Bumppos Kleider
if(stage >=6){
offense += 3;
defense += 3;
}
break;
case 'set_fort_gun': //Natty Bumppos Waffen
damage += 30;
break;
case 'set_4july_2014_weapon_ranking_winner': //Nihon no Buki
offense += 5;
defense += 5;
damage += 25;
resistance += 25;
break;
case 'set_4july_2015_animal_2': //Pferd und Sattel des Spähers
resistance += 2;
break;
case 'collector_set': //Sammlerset
if(stage >=9){
offense += 2;
defense += 2;
}
if(stage == 9){
damage += 25;
} else if(stage == 10){
damage += 30;
}
break;
case 'set_easter_2016_3': //Shawneekleidung
if(stage >=6){
defense += 2;
}
break;
case 'set_shop_soldier': //Soldatenset
if(stage >=6){
offense += 3;
defense += 3;
}
break;
case 'set_4july_2015_2': //Späherset
if(stage >=6){
defense += 2;
}
break;
case 'set_easter_2016_5w': //Stammesartefakte
offense += 7;
defense += 7;
damage += 45;
resistance += 45;
break;
case 'set_easter_2014_weapon_ranking_winner': //Steampunk Set
offense += 5;
defense += 5;
damage += 25;
resistance += 25;
break;
case 'set_easter_2015_5': //Volldampf voraus!
offense += 5;
defense += 5;
damage += 25;
resistance += 30;
break;
case 'set_easter_2016_3w': //Waffen der Shawnee
offense += 2;
break;
case 'set_october_2015_winner': //Waffenset von Bali
offense += 5;
defense += 5;
damage += 35;
resistance += 35;
break;
case 'set_4july_2015_weapon_ranking_winner': //Wild Bills Sammlung
offense += 5;
defense += 5;
damage += 30;
resistance += 30;
break;
case 'set_4july_2016_4': //Wolfsmensch Set
if(stage >=8){
offense += 4;
defense += 4;
}
break;
case 'set_independence_1': //Will Munnys Kleider
damage += 35;
break;
case 'set_independence_gun_1': //Will Munnys Waffen
damage += 15;
break;
default:
break;
}
}
return [offense,defense,damage,resistance];
}
TWFBT.Calculator.calcSkills = function () {
TWFBT.Calculator.values.offense = 0;
TWFBT.Calculator.values.defense = 0;
TWFBT.Calculator.values.offense_skillwithbonus = 0;
TWFBT.Calculator.values.defense_skillwithbonus = 0;
TWFBT.Calculator.values.offense_defaultbonus = 25;
TWFBT.Calculator.values.defense_defaultbonus = 10;
TWFBT.Calculator.values.offense_fortbattlebonus = 0;
TWFBT.Calculator.values.defense_fortbattlebonus = 0;
TWFBT.Calculator.values.offense_setbonus = 0;
TWFBT.Calculator.values.defense_setbonus = 0;
TWFBT.Calculator.values.damage = 0;
TWFBT.Calculator.values.resistance = 0;
TWFBT.Calculator.values.lifepoints = 0;
var wear = [];
var number_database = [];
var name_database = [];
var soldierBonus = 1;
if(TWFBT.pa && TWFBT.characterClass == 'soldier'){
soldierBonus = 1.5;
} else if (TWFBT.characterClass == 'soldier') {
soldierBonus = 1.25;
}
//add skillbonus (with clothes)
var side = TWFBT.side;
var formula = TWFBT.formula;
if(formula == 'oldFormula'){
if(side == 'attack'){
var side_skill = 'endurance';
} else {
var side_skill = 'hide';
}
TWFBT.Calculator.values.defense_skillwithbonus = Math.pow(CharacterSkills.getSkill(side_skill).getPointsWithBonus(), 0.6) +
Math.pow(CharacterSkills.getSkill('dodge').getPointsWithBonus(), 0.4) +
Math.pow(CharacterSkills.getSkill('leadership').getPointsWithBonus()*soldierBonus, 0.5);
TWFBT.Calculator.values.defense += TWFBT.Calculator.values.defense_skillwithbonus;
TWFBT.Calculator.values.offense_skillwithbonus = Math.pow(CharacterSkills.getSkill(side_skill).getPointsWithBonus(), 0.6) +
Math.pow(CharacterSkills.getSkill('aim').getPointsWithBonus(), 0.4) +
Math.pow(CharacterSkills.getSkill('leadership').getPointsWithBonus()*soldierBonus, 0.5);
TWFBT.Calculator.values.offense += TWFBT.Calculator.values.offense_skillwithbonus;
}
else{
if(side == 'attack'){
var side_skill = 'hide';
} else {
var side_skill = 'pitfall';
}
TWFBT.Calculator.values.defense_skillwithbonus = Math.pow(CharacterSkills.getSkill(side_skill).getPointsWithBonus(), 0.6) +
Math.pow(CharacterSkills.getSkill('dodge').getPointsWithBonus(), 0.5) +
Math.pow(CharacterSkills.getSkill('leadership').getPointsWithBonus()*soldierBonus, 0.5);
TWFBT.Calculator.values.defense += TWFBT.Calculator.values.defense_skillwithbonus;
TWFBT.Calculator.values.offense_skillwithbonus = Math.pow(CharacterSkills.getSkill(side_skill).getPointsWithBonus(), 0.6) +
Math.pow(CharacterSkills.getSkill('aim').getPointsWithBonus(), 0.5) +
Math.pow(CharacterSkills.getSkill('leadership').getPointsWithBonus()*soldierBonus, 0.5);
TWFBT.Calculator.values.offense += TWFBT.Calculator.values.offense_skillwithbonus;
}
//add defaultbonus
TWFBT.Calculator.values.defense += TWFBT.Calculator.values.defense_defaultbonus;
TWFBT.Calculator.values.offense += TWFBT.Calculator.values.offense_defaultbonus;
var items = ['animal','belt','body','foot','head','left_arm','neck','pants','right_arm','yield'];
for(i=0 ; i<items.length; i++){
try {
//Get fortbattle and fortbattlesector bonuses of the current equipment
var item_obj = ItemManager.get(Wear.get(items[i]).obj.item_id);
TWFBT.Calculator.values.defense_fortbattlebonus += item_obj.bonus.fortbattle.defense;
TWFBT.Calculator.values.defense_fortbattlebonus += item_obj.bonus.fortbattlesector.defense;
TWFBT.Calculator.values.offense_fortbattlebonus += item_obj.bonus.fortbattle.offense;
TWFBT.Calculator.values.offense_fortbattlebonus += item_obj.bonus.fortbattlesector.offense;
TWFBT.Calculator.values.damage += item_obj.bonus.fortbattlesector.damage;
TWFBT.Calculator.values.resistance += item_obj.bonus.fortbattle.resistance;
for(j=0 ; j< item_obj.bonus.item.length; j++){
try{
if(item_obj.bonus.item[j].name == 'offense'){
TWFBT.Calculator.values.offense_fortbattlebonus += item_obj.bonus.item[j].value;
}
} catch(e){}
try{
if(item_obj.bonus.item[j].name == 'defense'){
TWFBT.Calculator.values.defense_fortbattlebonus += item_obj.bonus.item[j].value;
}
} catch(e){}
try{
if(item_obj.bonus.item[j].type == 'damage'){
TWFBT.Calculator.values.damage += item_obj.bonus.item[j].value;
}
} catch(e){}
}
//Get set bonuses of the current equipment
var item_id = Wear.get(items[i]).obj.item_id;
var item_obj = ItemManager.get(item_id);
if(item_obj.set != null){
if(number_database[item_obj.set] == undefined){
number_database[item_obj.set] = 1;
name_database.push(item_obj.set);
}
else{
number_database[item_obj.set] = number_database[item_obj.set]+1;
}
}
} catch (e) {
}
}
TWFBT.Calculator.values.offense += TWFBT.Calculator.values.offense_fortbattlebonus;
TWFBT.Calculator.values.defense += TWFBT.Calculator.values.defense_fortbattlebonus;
for(var i=0;i<name_database.length; i++)
{
var obj = west.storage.ItemSetManager.get(name_database[i]);
var key = name_database[i];
var stage = number_database[key];
var setbonusArray = [0,0,0,0];
setbonusArray = update(key,stage);
TWFBT.Calculator.values.offense_setbonus += setbonusArray[0];
TWFBT.Calculator.values.defense_setbonus += setbonusArray[1];
TWFBT.Calculator.values.damage += setbonusArray[2];
TWFBT.Calculator.values.resistance += setbonusArray[3];
}
TWFBT.Calculator.values.offense += TWFBT.Calculator.values.offense_setbonus;
TWFBT.Calculator.values.defense += TWFBT.Calculator.values.defense_setbonus
//calc new worker bonus
var workerBonus = 1;
if(TWFBT.pa && TWFBT.characterClass == 'worker'){
workerBonus = 1.4;
} else if (TWFBT.characterClass == 'worker') {
workerBonus = 1.2;
}
TWFBT.Calculator.values.offense *= workerBonus;
TWFBT.Calculator.values.defense *= workerBonus;
TWFBT.Calculator.values.offense_skillwithbonus = Math.round(TWFBT.Calculator.values.offense_skillwithbonus * 100) / 100;
TWFBT.Calculator.values.defense_skillwithbonus = Math.round(TWFBT.Calculator.values.defense_skillwithbonus * 100) / 100;
TWFBT.Calculator.values.offense_fortbattlebonus = Math.round(TWFBT.Calculator.values.offense_fortbattlebonus * 100) / 100;
TWFBT.Calculator.values.defense_fortbattlebonus = Math.round(TWFBT.Calculator.values.defense_fortbattlebonus * 100) / 100;
TWFBT.Calculator.values.offense_setbonus = Math.round(TWFBT.Calculator.values.offense_setbonus * 100) / 100;
TWFBT.Calculator.values.defense_setbonus = Math.round(TWFBT.Calculator.values.defense_setbonus * 100) / 100;
TWFBT.Calculator.values.offense = Math.round(TWFBT.Calculator.values.offense * 100) / 100;
TWFBT.Calculator.values.defense = Math.round(TWFBT.Calculator.values.defense * 100) / 100;
TWFBT.Calculator.values.damage = Math.ceil(Math.round(TWFBT.Calculator.values.damage * 10) / 10);
TWFBT.Calculator.values.lifepoints = Character.maxHealth;
window.setTimeout(function () {
showData(side_skill);
}, 1000);
}
var showData = function (side_skill) {
var content = $('<tr></tr>');
content.append('<th colspan="9">' + TWFBTlang[TWFBT.side] + '</th>');
$('#TWFBTCalculatorTable').append(content);
var content = $('<tr><th>' +
TWFBTlang.leadership + '</th><th>' +
TWFBTlang[side_skill] + '</th><th>' +
TWFBTlang.aim + '</th><th>' +
TWFBTlang.dodge + '</th><th>' +
TWFBTlang.bonusBySkill + '</th><th>' +
TWFBTlang.bonusByClothes + '</th><th>' +
TWFBTlang.bonusBySets + '</th><th>' +
TWFBTlang.bonusDefault + '</th><th>' +
TWFBTlang.bonusTotal + '</th></tr>');
$('#TWFBTCalculatorTable').append(content);
content = $('<tr></tr>');
content.append('<td align="center">' + CharacterSkills.getSkill('leadership').getPointsWithBonus() + '</td>');
content.append('<td align="center">' + CharacterSkills.getSkill(side_skill).getPointsWithBonus() + '</td>');
content.append('<td align="center">' + CharacterSkills.getSkill('aim').getPointsWithBonus() + '</td>');
content.append('<td align="center">' + CharacterSkills.getSkill('dodge').getPointsWithBonus() + '</td>');
content.append('<td align="center">' + TWFBT.Calculator.values.offense_skillwithbonus + '<br>' + TWFBT.Calculator.values.defense_skillwithbonus +'</td>');
content.append('<td align="center">' + TWFBT.Calculator.values.offense_fortbattlebonus + '<br>' + TWFBT.Calculator.values.defense_fortbattlebonus +'</td>');
content.append('<td align="center">' + TWFBT.Calculator.values.offense_setbonus + '<br>' + TWFBT.Calculator.values.defense_setbonus +'</td>');
content.append('<td align="center">' + TWFBT.Calculator.values.offense_defaultbonus + '<br>' + TWFBT.Calculator.values.defense_defaultbonus +'</td>');
content.append('<td align="center">' + TWFBT.Calculator.values.offense + '<br>' + TWFBT.Calculator.values.defense +'</td>');
$('#TWFBTCalculatorTable').append(content);
content = $('<tr></tr>');
content.append('<th colspan="2">' + TWFBTlang.damage + '</th><td align="left">'+ TWFBT.Calculator.values.damage +'</td>' +
'<th colspan="2">' + TWFBTlang.resistance + '</th><td align="left">'+ TWFBT.Calculator.values.resistance +'</td>'+
'<th colspan="2">' + TWFBTlang.lifepoints + '</th><td align="left">'+ TWFBT.Calculator.values.lifepoints+'</td>');
$('#TWFBTCalculatorTable').append(content);
content = $('<tr></tr>');
var items = ['animal','belt','body','foot','head','left_arm','neck','pants','right_arm','yield'];
var item_string = '';
//MessageSuccess(items[0]+' '+items[1]+' '+items[2]+' '+items[3]+' '+items[4]+' ').show();
/*for(i=0 ; i<items.length; i++){
try {
item_string += '<a class="itemlink hasMousePopup" href="javascript:void(0)" title="' + escapeHTML(new ItemPopup(ItemManager.get(Wear.get(items[i]).obj.item_id)).getXHTML()) + '">' + ItemManager.get(Wear.get(items[i]).obj.item_id).name + ' <img width="15" height="15" src="' + ItemManager.get(Wear.get(items[i]).obj.item_id).image + '"></a>';
} catch (e) {
}
}*/
try { item_string += '<a class="itemlink hasMousePopup" href="javascript:void(0)" title="' + escapeHTML(new ItemPopup(ItemManager.get(Wear.get(items[0]).obj.item_id)).getXHTML()) + '">' + ItemManager.get(Wear.get(items[0]).obj.item_id).name + ' <img width="15" height="15" src="' + ItemManager.get(Wear.get(items[0]).obj.item_id).image + '"></a>';} catch (e) {}
try { item_string += '<a class="itemlink hasMousePopup" href="javascript:void(0)" title="' + escapeHTML(new ItemPopup(ItemManager.get(Wear.get(items[0]).obj.item_id)).getXHTML()) + '">' + ItemManager.get(Wear.get(items[0]).obj.item_id).name + ' <img width="15" height="15" src="' + ItemManager.get(Wear.get(items[0]).obj.item_id).image + '"></a>';} catch (e) {}
try { item_string += '<a class="itemlink hasMousePopup" href="javascript:void(0)" title="' + escapeHTML(new ItemPopup(ItemManager.get(Wear.get(items[1]).obj.item_id)).getXHTML()) + '">' + ItemManager.get(Wear.get(items[1]).obj.item_id).name + ' <img width="15" height="15" src="' + ItemManager.get(Wear.get(items[1]).obj.item_id).image + '"></a>';} catch (e) {}
try { item_string += '<a class="itemlink hasMousePopup" href="javascript:void(0)" title="' + escapeHTML(new ItemPopup(ItemManager.get(Wear.get(items[2]).obj.item_id)).getXHTML()) + '">' + ItemManager.get(Wear.get(items[2]).obj.item_id).name + ' <img width="15" height="15" src="' + ItemManager.get(Wear.get(items[2]).obj.item_id).image + '"></a>';} catch (e) {}
try { item_string += '<a class="itemlink hasMousePopup" href="javascript:void(0)" title="' + escapeHTML(new ItemPopup(ItemManager.get(Wear.get(items[3]).obj.item_id)).getXHTML()) + '">' + ItemManager.get(Wear.get(items[3]).obj.item_id).name + ' <img width="15" height="15" src="' + ItemManager.get(Wear.get(items[3]).obj.item_id).image + '"></a>';} catch (e) {}
try { item_string += '<a class="itemlink hasMousePopup" href="javascript:void(0)" title="' + escapeHTML(new ItemPopup(ItemManager.get(Wear.get(items[4]).obj.item_id)).getXHTML()) + '">' + ItemManager.get(Wear.get(items[4]).obj.item_id).name + ' <img width="15" height="15" src="' + ItemManager.get(Wear.get(items[4]).obj.item_id).image + '"></a>';} catch (e) {}
try { item_string += '<a class="itemlink hasMousePopup" href="javascript:void(0)" title="' + escapeHTML(new ItemPopup(ItemManager.get(Wear.get(items[5]).obj.item_id)).getXHTML()) + '">' + ItemManager.get(Wear.get(items[5]).obj.item_id).name + ' <img width="15" height="15" src="' + ItemManager.get(Wear.get(items[5]).obj.item_id).image + '"></a>';} catch (e) {}
try { item_string += '<a class="itemlink hasMousePopup" href="javascript:void(0)" title="' + escapeHTML(new ItemPopup(ItemManager.get(Wear.get(items[6]).obj.item_id)).getXHTML()) + '">' + ItemManager.get(Wear.get(items[6]).obj.item_id).name + ' <img width="15" height="15" src="' + ItemManager.get(Wear.get(items[6]).obj.item_id).image + '"></a>';} catch (e) {}
try { item_string += '<a class="itemlink hasMousePopup" href="javascript:void(0)" title="' + escapeHTML(new ItemPopup(ItemManager.get(Wear.get(items[7]).obj.item_id)).getXHTML()) + '">' + ItemManager.get(Wear.get(items[7]).obj.item_id).name + ' <img width="15" height="15" src="' + ItemManager.get(Wear.get(items[7]).obj.item_id).image + '"></a>';} catch (e) {}
try { item_string += '<a class="itemlink hasMousePopup" href="javascript:void(0)" title="' + escapeHTML(new ItemPopup(ItemManager.get(Wear.get(items[8]).obj.item_id)).getXHTML()) + '">' + ItemManager.get(Wear.get(items[8]).obj.item_id).name + ' <img width="15" height="15" src="' + ItemManager.get(Wear.get(items[8]).obj.item_id).image + '"></a>';} catch (e) {}
try { item_string += '<a class="itemlink hasMousePopup" href="javascript:void(0)" title="' + escapeHTML(new ItemPopup(ItemManager.get(Wear.get(items[9]).obj.item_id)).getXHTML()) + '">' + ItemManager.get(Wear.get(items[9]).obj.item_id).name + ' <img width="15" height="15" src="' + ItemManager.get(Wear.get(items[9]).obj.item_id).image + '"></a>';} catch (e) {}
content.append('<th>' + TWFBTlang.clothes + '</th><td align="left" colspan="8">'+item_string+'</td>');
$('#TWFBTCalculatorTable').append(content);
/*var buttontest = new west.gui.Button('Wieder anziehen', function () {
});*/
//content.append('<td colspan="2">' + buttontest.getMainDiv() +'</td>');
//content.append('<td colspan="2"><a href="clearTable()">Wieder anziehen</a> +</td>');
/*
//calc new worker bonus
var workerBonus = 1;
if(TWFBT.pa && TWFBT.characterClass == 'worker'){
workerBonus = 1.4;
} else if (TWFBT.characterClass == 'worker') {
workerBonus = 1.2;
}
var attplus = TWFBT.Calculator.values.offense+TWFBT.Calculator.values.offense_skillwithbonus*(workerBonus-1);
var deffplus = TWFBT.Calculator.values.defense+TWFBT.Calculator.values.defense_skillwithbonus*(workerBonus-1);
var string = '';
string = string.concat('Total Att: ' + TWFBT.Calculator.values.offense*workerBonus + '\n');
string = string.concat('Total Deff: ' + TWFBT.Calculator.values.defense*workerBonus + '\n')
//string = string.concat('Skill Att: ' + TWFBT.Calculator.values.offense_skillwithbonus*workerBonus + '\n');
//string = string.concat('Skill Deff: ' + TWFBT.Calculator.values.defense_skillwithbonus*workerBonus + '\n');
string = string.concat('Skill Att: ' + attplus + '\n');
string = string.concat('Skill Deff: ' + deffplus + '\n')
alert(string);*/
}
var escapeHTML = function (unsafe_str) {
return unsafe_str.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/\"/g, '"').replace(/\'/g, ''');
}
}
};
TWFBT.Reminder = {
init: function () {
TWFBT.Reminder.values = {
};
var remind = function () {
/*Ajax.remoteCall('fort_overview','',{
offset: '0'},function(response) {
if (response.error){
return MessageError(response.msg).show();
} else {
for(var i=0; i<response.js.length;i++){
if(response.js[i][3]){
var stadtname = response.js[i][5];
var alli_id = Character.homeTown.alliance_id;
Ajax.remoteCallMode('alliance','get_data',{
alliance_id: alli_id
},function(json){
for (x=0;x<json.data.towns.length;x++){
if (json.data.towns[x].name == stadtname){
MessageSuccess('Angriff aus meiner Bündnisstadt ' + stadtname).show();
}
}
});
/*var name = response.js[i][4];
Ajax.remoteCallMode('ranking','get_data',{
rank:NaN,
search:name,
tab:'experience'},function(json){
for (x=0;x<json.ranking.length;x++){
if (json.ranking[x].name == name){
MessageSuccess(name + ' aus ' + 'response.js[i][5]').show();
EventHandler.signal("ready.ok");
}
}
});
EventHandler.listen("ready.ok", function() {
showData();
});
}
}
}
});*/
/*var updateMessage = new west.gui.Dialog('Test', west.gui.Dialog.SYS_WARNING).addButton(TWFBTlang.update, function () {
updateMessage.hide();
location.href = TWFBT.website + '/code.user.js';
}).addButton('cancel').show();*/
}
window.setTimeout(function () {
remind();
}, 5000);
}
};
TWFBT.Updater = function () {
$.getScript(TWFBT.updateUrl, function () {
if (scriptUpdate.TWFBT > TWFBTstart.version) {
var updateMessage = new west.gui.Dialog(TWFBTlang.update + ': ' + TWFBT.name, '<span>' + TWFBTlang.updateAvailable + '<br><br><b>v' + scriptUpdate.TWFBT + ':</b><br>' + scriptUpdate.TWFBTNew + '</span>', west.gui.Dialog.SYS_WARNING).addButton(TWFBTlang.update, function () {
updateMessage.hide();
location.href = TWFBT.website + '/code.user.js';
}).addButton('cancel').show();
}
});
};
setTimeout(TWFBT.Updater, 4000);
TWFBT.Skript.init();
});