Conquer Club

Dice analyzer 1.5.1a, 1.5.1b and 1.5.1c

Archival storage to keep things organized and uncluttered. Can't find what you need? Search for old topics here.

Moderator: Tech Team

Forum rules
Please read the Community Guidelines before posting.

Postby P Gizzle on Mon Sep 11, 2006 5:35 pm

cyberdaniel wrote:
P Gizzle wrote:for some reason when i play, it goes like this

i lose 2
opponent loses2
i lose 2
opponent loses 2
1 and 1
1 and 1


yea, I got that sometimes in my lucky streak. Most lucky streaks have something like this.


i also lost 7 people and the other guy lost 1
Gridiron Gang- CC's largest Clan!
User avatar
Cook P Gizzle
 
Posts: 4100
Joined: Fri Aug 04, 2006 5:00 pm
Location: Somewhere being absolutely AWESOME!

Postby cyberdaniel on Mon Sep 11, 2006 5:36 pm

well, shit happens
"Every battle has been won before it's been fought." Sun Tzu
User avatar
Captain cyberdaniel
 
Posts: 281
Joined: Sat Apr 01, 2006 10:31 am

Postby boogiesadda on Mon Sep 11, 2006 5:38 pm

small sample but is still interesting to see the percentage of 6's that the defender rolls compared to the attacker
Is it 2008 yet? Why yes my son and it is time for change
User avatar
Cadet boogiesadda
 
Posts: 196
Joined: Sat Jul 15, 2006 1:25 pm
Location: Land of taxes and more taxes

Postby Tubby Rower on Tue Sep 12, 2006 5:52 am

@ everyone with bad streaks .... I've had that too, but I've also had a 7 take on 20 and me win without losing an army. It's human nature to remember the bad stuff longer than the good stuff.

The dice might be streaky but so are real dice. Have you ever heard of anyone having a "hot hand" at the craps table. People will buy the poor sap drinks so that he won't leave the table and everyone can profit from his "hot hand".

What I do to overcome bad streaks is to pause about 5 seconds then start again. I realize that that might be supersticious but I grew up in a baseball -playing environment and baseball players have have a tendency to be super-supersticitcitious
User avatar
Sergeant 1st Class Tubby Rower
 
Posts: 349
Joined: Wed Mar 22, 2006 8:36 am
Location: under a rolling pin

Postby Tubby Rower on Tue Sep 12, 2006 6:00 am

here are my stats... but I'd like to get closer to 10k before I make any assumptions. It appears as though my stats are fair in my opinion



Image
User avatar
Sergeant 1st Class Tubby Rower
 
Posts: 349
Joined: Wed Mar 22, 2006 8:36 am
Location: under a rolling pin

Postby zip_disk on Tue Sep 12, 2006 6:27 am

Bigger sample size. 4000 and 2000 rolls.

By the way people, use PNG not JPG for these charts. Not only is the image cleaner, its also smaller.

Image
Captain zip_disk
 
Posts: 216
Joined: Thu Mar 23, 2006 9:33 pm

Postby Tubby Rower on Tue Sep 12, 2006 6:44 am

hmm.. I think that the dice are fine... what's interesting is the second table.... I've compiled the data from the people that have supplied it so far

Image

and here are the theoretical probabilities

Image

the sections with high number of samples are pretty much dead on... so I'm happy
User avatar
Sergeant 1st Class Tubby Rower
 
Posts: 349
Joined: Wed Mar 22, 2006 8:36 am
Location: under a rolling pin

Postby Bonquida on Tue Sep 12, 2006 7:37 am

I officially believe that the dice randomizaer is screwy in some way. It could also be that I am phenomenally unlucky... but if thats the case, I've been consistently phenomenally unlucky for about the whole time I've been playing. just 2 minutes ago I didn't kill a single guy in a 7 on 3 attack.
User avatar
Corporal 1st Class Bonquida
 
Posts: 6
Joined: Thu Aug 24, 2006 5:52 pm

Postby Tubby Rower on Tue Sep 12, 2006 7:42 am

have you installed this script?

I'd be interested in any data (> 1000 rolls) that proves this point. As of yet, everyone's data agrees. There's a reason why police trust imperical evidence over witness testimony. Human memory is quite quirky. And I don't doubt that you just had a losing streak of 3 consecutive losses on a 3v2 roll.

The thing about statistics is that true randomness doesn't have memory. So if you've flipped a coin 5999 times and EVERY time it has landed on heads.... the probablility of that 6000th flip is still 50% that it will land on heads.
User avatar
Sergeant 1st Class Tubby Rower
 
Posts: 349
Joined: Wed Mar 22, 2006 8:36 am
Location: under a rolling pin

Postby AndrewO on Fri Sep 15, 2006 10:20 am

Can somebody please post the code for this thing so I can try and install it manually?

I keep getting the error:
403 Forbidden
You must supply a local referer to get URL '/conquerclub.user.js' from this server.
thttpd/2.21 20apr2001


And no matter how many time I try it it won't install the correct script.
User avatar
Lieutenant AndrewO
 
Posts: 136
Joined: Thu Mar 16, 2006 4:45 pm
Location: London

Postby Tubby Rower on Fri Sep 15, 2006 10:24 am

mine has my addition in it as well, but here it is

Code: Select all
// Conquer Club - Card Counter, Card Redemption Value, Status Indicator
// version 0.4 BETA!
// now with additions!!
//-----------------------------------------------------------------------------
//   Installation
//-----------------------------------------------------------------------------
// This is a Greasemonkey user script.
//
// To install, you need Greasemonkey: http://greasemonkey.mozdev.org/
// Then restart Firefox and revisit this script.
// Under Tools, there will be a new menu item to "Install User Script".
// Accept the default configuration and install.
//
// To uninstall, go to Tools/Manage User Scripts,
// select "Conquer Club", and click Uninstall.
//
//-----------------------------------------------------------------------------
//   Description
//-----------------------------------------------------------------------------
// * Adds a status indicators and number of cards for each player
// * Adds card redemption values
// * Adds dynamic countdown timer
// * Adds statistics
// * Automatically Jumps to map.
// * Adds red focus indicators
//
//-----------------------------------------------------------------------------
//   Addons
//-----------------------------------------------------------------------------
// * cyberdaniel's dice statistics
// * Tubby Rower's Terminator points tracker
//-----------------------------------------------------------------------------
//   Notes
//-----------------------------------------------------------------------------
// * The status indicator isn't always accurate. It goes yellow when a player
//   receives men, and red when they fortify, and back to green when a new round
//   is started.
// * Armies per turn DOES NOT INCLUDE BONUSES.. so no continent bonuses.
// * Strength =  # Armies + Potential Armies - ( 2/3 * # Countries )
//-----------------------------------------------------------------------------
//   Meta Data
//-----------------------------------------------------------------------------
// ==UserScript==
// @name      Conquer Club
// @namespace   http://personal.ecu.edu/tnt1202/conquerclub.user.js
// @description   Adds card counter, redemption value, and user status
// @include       http://*conquerclub.com*
// ==/UserScript==
//-----------------------------------------------------------------------------
//   USER SETTINGS
//-----------------------------------------------------------------------------
var OPTIONS = new Object();
OPTIONS['jumptomap'] = true;
OPTIONS['colorblind'] = false;
OPTIONS['donated'] = true;
OPTIONS['focuscolor'] = '#C00';
OPTIONS['stats'] = true;
//-----------------------------------------------------------------------------
//   DO NOT EDIT BELOW THIS ( unless you know what you are doing )
//-----------------------------------------------------------------------------
function gm_ConquerClubGame(OPTIONS){
   /*---- Check for Required Components ----*/
   var log = document.getElementById('log');
   var rightside = document.getElementById('right_hand_side');
   var dashboard = document.getElementById('dashboard');
   var map = document.getElementById('inner-map');

   //If we cannot find any of the following just quit out.
   if( !(log && rightside && dashboard && map) ) return;

   /*---- Prototyping ----*/
   String.prototype.has = function(key) { return this.indexOf(key) > -1; }

   /*---- Object Stuff ----*/

   //Player Status
   var eStatus = { GREEN:0, YELLOW:1, RED:2, UNKNOWN:3, WINNER:4, LOSER:5 }

   //Player Class
   function Player( name, pid, color ){
      this._name = name;
      this._pid = pid;
      this._color = color;
      this._status = eStatus.UNKNOWN;
      this._cards = 0;
      this._score = 0;
      this._armies = 0;
      this._countries = 0;
      this.toString = function() { return this._name; }

      this.getArmiesPerTurn = function() { if( this._countries < 12 ) return 3; return Math.floor(this._countries/3); }
      this.getTurninP = function() { if( this._cards < 3 ) return 0; if( this._cards > 4 ) return 1; if( this._cards == 3 ) return 0.3341; return 0.778; }
      this.alert = function() {
         alert(   "Name:\t"         +   this._name      +
               "\nPID:\t"         +   this._pid      +
               "\nStatus:\t"      +   this._status   +
               "\nCards:\t"      +   this._cards      +
               "\nArmies:\t"      +   this._armies   +
               "\nCountries:\t"   +   this._countries +
               "\nArmies/Turn:\t"  +   this.getArmiesPerTurn()
         );
      }
   }

   //Game Enumerations
   var eGameType = { STANDARD:0, TERMINATOR:1, DOUBLES:2, TRIPLES:3 }
   var ePlayOrder = { NDTFREESTYLE: 0, FREESTYLE:1, SEQUENTIAL:2 }
   var eBonusCards = { NOCARDS:0, FLATRATE:1, ESCALATING:2 }
   //-------------------------------------------------------------------------
   //   VARIABLE DECLARATIONS
   //-------------------------------------------------------------------------

   /*---- Gameplay ----*/
   var num_turnins = 0;
   var num_players = 0;
   var m_gameType;
   var m_playOrder;
   var m_bonusCards;
   var RedemptionValue;

   /*---- Statistics ----*/
   var totalArmies = 0;
   var totalCountries = 0;

   /*---- Player ----*/
   var pl = new Array(); // will hold my players
   var NID = 0; // Neutral ID
   var pl_Colors = new Array("666","f00","090","00f","cc0","0cc","f0f");//Player Colors
   var pl_cbIDs = new Array("n","r","g","b","y","t","p"); //Color Blind Identifiers

   /*---- Player Status IMG Sources ----*/
   pl_StatusSrc = new Array(); // Holds location of default status images
   pl_StatusSrc[eStatus.GREEN] = "data:image/gif,GIF89a%0A%00%0A%00%E6C%00P%B1%12b%9Fd%5E%B0%07%82%AC%862%90%1A3%8324%8534%883%8D%F3%02%89%EE%02%8A%EE%02%BA%F6q%89%EC%02%8B%F1%02%84%ED%06e%BD%07%80%E7%06x%E1%0Ax%E2%0A%83%AE%87%BB%FBcq%CA%05%60%9Ac%A9%FA%3C%3D%93%14%2C%7F%17o%C8%05%E5%FE%C4b%A1e%84%B3%89m%C4%05w%E0%0A%9D%FA!5%8A4%8C%F3%02C%A3%16J%A2%11%2C%81%17E%A6%17z%E3%09.%86%18F%9A%10D%97%0Ft%D1%05%A1%C3%A5i%C5%08S%B6%13%A0%C0%A5%A1%C2%A5M%A9%11p%D2%08S%B8%13y%E1%09%3A%8D%13%8F%F8%022%92%1A%83%EC%06~%DB%02%7B%E3%0F%40%9B%15l%CA%089%8A%13%2B~%17D%95%0F2%7C1_%97b%A0%BE%A4%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00C%00%2C%00%00%00%00%0A%00%0A%00%00%07a%80CC%2C%1C!%07%01%2F%82C%1D7%26.%00%3B(%13C0%043'%0B82%24%25B%01%234%1B%14%20%22-5A%06%00%0E%17%3A%12%08%2B*%40%051%106%11%1F%0A%1A%3F%40%16%18%3C%09%0D%0C9%02%3DAB%19)%0F%15%1E%02%3F%3EBC%03%3E%3D%3F%3F%3D%3E%03%8ABA%40%40%C6%82%81%00%3B";
   pl_StatusSrc[eStatus.YELLOW] = "data:image/gif,GIF89a%0A%00%0A%00%D5%3A%00%C2%94%00%C1%9B%00%C2%A7%05%CD%BF%40%DB%AC%00%D5%A3%00%E9%DD%BF%DB%A7%00%F1%E7_%C1%99%00%C2%A5%04%D9%A6%00%F4%D7%12%C7%98%00%D4%A5%00%F1%D5%12%CA%A40%E9%DC%BA%DB%B4A%CB%A65%C7%9D%1F%CC%BE%3E%E7%CF%1C%EB%D9%3A%DA%B3C%F9%E6%40%DE%B9%02%E8%DB%BA%C1%94%00%E0%B6%3B%C2%A6%05%C1%9A%00%EC%D0%12%E8%DC%BF%C5%9A%00%D4%A2%00%D8%BF%10%D7%A4%00%DD%C9%95%DB%B4F%CC%AA%01%DE%D4W%E2%D2%AC%E0%CF%A3%DA%C3%1B%C3%AC%0F%C4%B2%20%C3%B1%20%C1%9C%00%EA%CE%11%C9%A2*%FF%F7%92%D4%A6%00%C8%9F%25%D1%A0%00%DB%B7%01%F8%EC%60%DE%CB%9B%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%3A%00%2C%00%00%00%00%0A%00%0A%00%00%06E%40%5D'%A2%2B%1A%8B%07%82ds%2C.b%1A%1A%C6p%2C12%96%9B%E3%14*%16%1E3%DC%85%85%12%01t%23%10%225p%09%60%14%9D%8DTyy%025S%B1%D1R%7Cd9G%1C%09%10%2BM%3A%13*%87%3AA%00%3B";
   pl_StatusSrc[eStatus.RED] = "data:image/gif,GIF89a%0A%00%0A%00%D5%00%00%C2**%C0))%BF%08%09%C5**%C1%08%09%C8%2B%2B%E5e%5B%C4%08%09%D8..%E922%BB%08%08%FCod%E3dZ%ED33%D4%5DT%E722%FAZO%AF%07%08%CA%2B%2B%E7e%5B%E200%BE%08%08%F033%B8%07%08%C1))%FF%DC%D9%B7%07%08%FF%7Cr%AE%07%08%ECh%5D%EC33%FC%5BP%BC%08%08%FF%CF%CC%C6**%FF%81x%FD%5BP%E6e%5B%EBg%5D%C3**%F7%16%17%F244%C3%08%09%FF%5CQ%AA%07%08%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%00%00%00%00%00%2C%00%00%00%00%0A%00%0A%00%00%06H%40%82%EA%A0*%AA%04%97%88%E0%91j%A6%2C%14%09%AB%D2%C8%84%AE%9BN%81%05%F2%8CV%60%92I%C4%F5%AEP(1%B9%FBE%ABY%8A%C4%E2C%87L%06%2C%0D%C2P%EA3%1C%18%2C%1C%00'%85'%00%01%01%2C%8B%8C%8D%2CA%00%3B";
   pl_StatusSrc[eStatus.UNKNOWN] = "data:image/gif,GIF89a%01%00%01%00%80%00%00%FF%FF%FF%00%00%00!%F9%04%01%00%00%00%00%2C%00%00%00%00%01%00%01%00%00%02%02D%01%00%3B";
   pl_StatusSrc[eStatus.WINNER] = "data:image/gif,GIF89a%0A%00%0A%00%D5%00%00888z%9F%EAppp~~~b%8D%E4%B6%B6%B6%08%08%08%84%84%847X%9B%03%05%0A%14%1A'%0A%0C%11%1A%1D%244Ky7Kv5O%85%22%3Ag%2FK%83Lv%CA%A5%BB%E7%CC%CC%CC%17%1A!*%3Ed%3Ca%AA%93%B0%EA%09%0E%1A%07%09%0E~%9F%E2Oz%D1%0C%0E%11Ot%BE%0E%15%24%0D%14%22%CA%CA%CA%80%91%B3%0E%18-7Q%84%85%A7%EALWn1%3EX%3Cf%BBDo%C6%04%06%0AW%80%D4%03%06%0BOYn%A7%BD%EA%8A%A9%EAz%8D%B3g%87%C6%15%206h%91%E4%99%B3%E7%18%227%1E2Yjjj%86%86%86%00%00%00%EE%EE%EE%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%00%00%00%00%00%2C%00%00%00%00%0A%00%0A%00%00%06Q%40%9D%90Ra%84%84H%DD%C0%D4%1A%24%85%00%98%08%80%BC%19r%0B%DA%A4%933%DCN%9B%D2%0B%E3r%90%1E%B2%9B%22%16%08%20%10%91%CCM%87%D3%CC%08%1C%14%0B'%2C%D4%08%2B%12)%23%05B%02%0D%1E%1F%20%17%10%02B%07%16*88%096%07%3AA%00%3B";
   pl_StatusSrc[eStatus.LOSER] = "data:image/gif,GIF89a%0A%00%0A%00%D5%00%00*(%12%EE%EE%EEYR%16%EC%D9%23ED%3D%EC%DA%23%EE%DD%23%F0%E1%23%F4%E8u%F0%E12CB6%DC%DC%DC%F5%EA%8D%AC%9D%1A%F1%E3_%C3%B5%3A%F0%E0Y%3F%3D2%25%25%23bZ%16%B2%A4%2B%D6%D6%D3%F4%E9%7B%ED%ED%EC%F3%E7q*(%1121%25%F4%E9%89%5CU%16%D1%C6l%F5%EB%93%F0%E1-%BA%AA%1C0-%13%B7%A7%1B10%25%F3%E6x%0F%0E%09%DA%DA%D9%EE%DCF%96%8FO%EE%EE%ED%06%06%04%40%3F4%1F%1E%1A%ED%DB%23rh%1243)%ED%DA%23LF%17%EF%DF%23%D9%D9%D9%EB%D6%23%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%00%00%00%00%00%2C%00%00%00%00%0A%00%0A%00%00%06U%C0%C0%8C%F0%8A%C5%5E%84%85P%D2%D9x%18%24%14k%F6z%400%16%84%E3DY%C5h%85Z%E2S%1B%D0%00.ZKv8%C8%604A%BAU%AB%D7%E0%82o%CD%20%93%19jg%23%20%60-0f%0D%113*%224%8D4.%253%17%15%1A!%13%1C%19%0A%26)A%00%3B";


   /*---- Clock ----*/
   var today = new Date();
   var time = new Array();// { hh, mm, ss }
   var timeStr;
   var timeLocStr = rightside.innerHTML.has('<span class="countdown-alert">')?'<h4>Time Remaining</h4><span class="countdown-alert">':'<h4>Time Remaining</h4>';
   var timeLoc;//location of the time
   var timeindexOffset;//location of the time + the index ( hr, min, or sec )
   var timeWIDTH = 18;
   var clockInterval;

   /*---- Misc ----*/
   var i;
   var tmp;
   var tmp2;
   var re;
   var pid; // player identifier
   var name; // tmp name

   //-------------------------------------------------------------------------
   //   FUNCTIONS
   //-------------------------------------------------------------------------
   var countDown = function(){
      var hrs = document.getElementById('hrs');
      var mins = document.getElementById('min');
      var secs = document.getElementById('sec');

      if( --secs.value < 0 ){
         if( --mins.value < 0 ){
            if( --hrs.value < 0 ){
               hrs.value = 0;
               if( mins.value <= 0 && secs.value <= 0 ){
                  clearInterval(clockInterval);//No more counting down
                  //No weird negative #s
                  mins.value = 0;
                  secs.value = 0;

                  document.getElementById('countdown').innerHTML = "<b><font color=red>NEW ROUND STARTED!<br />Click Refresh Map</font></b>";
                  //window.location.reload();
                  return;
               }
            }
            mins.value = 59;
         }
         secs.value = 59;
      }
   }
   var calcRedemption = function(){
      if( m_bonusCards == eBonusCards.ESCALATING ){
         if( num_turnins < 5 ) return num_turnins * 2 + 4;
         else return num_turnins * 5 - 10;
      } else if( m_bonusCards == eBonusCards.FLATRATE) return 7;
      return 0; //no cards
   }
   var calcArmiesNextTurn = function(countries){
      if( countries < 12 ) return 3;
      return Math.floor(countries/3);
   }

   /*---- Returns probability of a tunin - http://www.kent.ac.uk/IMS/personal/odl/riskfaq.htm#3.5 ----*/
   var getTurnInP = function(num_cards){
      if( num_cards < 3 ) return 0;
      if( num_cards > 4 ) return 1;
      if( num_cards == 3 ) return 0.3341;
      return 0.778; // has 4 cards
   }

   //-------------------------------------------------------------------------
   //   INIT
   //-------------------------------------------------------------------------

   /*---- Start Clock ----*/
   tmp = rightside.innerHTML.indexOf(timeLocStr);//to make sure there is a clock.
   if( tmp > -1 ){
      timeLoc = tmp + timeLocStr.length + 1;
      tmp = rightside.innerHTML;
      timeStr = tmp.substring(timeLoc,timeLoc + timeWIDTH);
      re = new RegExp( timeStr );//Replace time
      time = timeStr.split(/hrs\n|min\n|sec\n/);

      var formAttr = "style=text-align:right;width:1.1em;border:none;background:#eee; size=1 maxlength=2 type=text";
      timeStr = '<form><input '+formAttr+' id=hrs value='+time[0]+'> hrs <input '+formAttr+' id=min value='+time[1]+'> min <input '+formAttr+' id=sec value='+time[2]+'> sec</form>';

      rightside.innerHTML = tmp.replace(re,"<div id=countdown>" + timeStr + "</div>");

      clockInterval = window.setInterval(countDown,1000);
   }
   /*---- Create Divisions ----*/
   var stats = document.createElement('div');
   dashboard.parentNode.insertBefore(stats, log.previousSibling.previousSibling);
   stats.style.margin = '10px 0 0 0';

   if( !OPTIONS['donated'] ){
      var donation = document.createElement('div');
      dashboard.parentNode.insertBefore(donation, log.previousSibling.previousSibling);
      donation.style.margin = '10px 0 0 0';
      var WWW = 'http://personal.ecu.edu/tnt1202/'
      var NONAG = 'nonag';
      var SCRIPTFILE = 'conquerclub.user.js';
      if( OPTIONS['colorblind'] ) SCRIPTFILE = 'colorblind' + SCRIPTFILE;
      donation.innerHTML = '<form action="https://www.paypal.com/cgi-bin/webscr" method="post"><input type="hidden" name="cmd" value="_xclick"><input type="hidden" name="business" value="troythompson@nc.rr.com"><input type="hidden" name="item_name" value="Donation for Tr0y\'s Greasemonkey Script"><input type="hidden" name="no_shipping" value="1"><input type="hidden" name="return" value="'+ WWW + NONAG +SCRIPTFILE +'"><input type="hidden" name="currency_code" value="USD"><input type="hidden" name="tax" value="0"><input type="hidden" name="lc" value="US"><input type="hidden" name="bn" value="PP-DonationsBF"><input type="image" src="data:image/gif,GIF89an%002%00%E6W%00%DF%DF%DF%DC%DC%DC%9E%9E%9E%F9%F9%F9%84%84%84%3B%3B%3B%CD%CD%CD%F3%F3%F3%AB%AB%AB%ED%D9%26%FB%FB%FB%E7%E7%E7ddd%18%18%18%F5%F5%F5%A5%A5%A5%F1%E1%26%D3%D3%D3%EE%EE%EE%7D%7D%7D%E2%E2%E2OOO%FE%FE%FE%95%95%95%A1%A1%A1%E9%E9%E9%BE%BE%BE%9B%9B%9B%8A%8A%8A%2C)%13%C6%C6%C6%D9%D9%D9sj%13%F1%E0%26MH%18LF%1743)%5BU%18%F0%DE%26ED%3D%B9%00%00%F0%DD%26BA6%FF%FF%FE%F1%E2%5C%F5%E8s%AE%9F%1C%EF%DB%26%E5%E5%E354(%F2%E20%5EV%18GE%3A%F5%EB%8A65%2B%C5%B7%3C%07%06%04%D2%C8n%F3%E5b%F6%EB%7D%F6%EB%8F%F4%E8yc%5B%17%F2%E34%B4%A6-%E8%E8%E8%F6%EC%95%EC%EC%EC%AE%00%00%FE%FE%FD%97%91P%25%25%23%1F%1F%1A%D9%00%00%F6%EAwCB7%EA%EA%E8%EF%DC%2632\'%10%0F%09%F0%DFH%BC%AC%1E1.%15%B9%A9%1E%EB%EB%EB%00%00%00%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00W%00%2C%00%00%00%00n%002%00%00%07%FF%80W%82%06%18%17%1C%1C%04%89%8A%8B%8C%8D%8E%8F%90%91%92%93%94%8A%13%13%0C%0C%1B%82%9C%1A%17%06%14%00%01%A3%A4%A5%A6%A7%A8%A9%AA%AB%AC%AD%AE%A6%1F%11%02%0D%0C%9C%00%1C%11V%BA%BB%BC%BD%BE%BF%C0%C1%C2%C3%C4%C5%C3%0FU%1A%82%02%1B%C6%CE%CF%D0%D1%D2%BC%0A%05%15%82%0C%1E%D3%DB%DC%DD%CF%0A%0E%17%0D%82%15%B9%D3UU%DE%EA%EB%BB%E0%12%08U%E4%E6%BB%E8%BD%E9%BF%F5%DC%E8%FB%EB%F9V%FE%C6%DC%C1%13T%C0%80%3D%7F%00y%25%8C%96o%A14%87%CE%14%1C%A02%F0J%C1%83%F5%F8%FD%D3%D8%F0%DE%BE%7B%F44%EAB%E8Q%E4G%90%1FG%A6%24%D9Q%A4D%8A%F1%2C%1AT%B81%5D%C2%8C6K%AA%C4%87%B2%E7%C6%9D%3F%83%86%04%1A%B4c%D1%7B%2F%2B%5E%A4%F9%0F%E8%C9%9A%3DS%864%E9%D3%E8Q%95%1C%7D%5E%B5%9A4%E6Rz%07%B7R%E5I%94%E4U%B1N%B5%1A%E5%3AQ%E9L%B0%0A%FFs%EE%C4Yv%A8P%ABxu%E6%B5%BBV%A7%95%AE%04%DF%8E%0C%0BU%EE%D1%9BR%0B%C75%7B%98%E5%DD%AC%40%25.p%CB%AE%B2%E5g%16%06%1CX%80LP%03m%97C%8B%EEe%C1%82%03%09%14%3A%CB%1C%CD%BAu%5B%AF%82%5B%CBf%F7%3A%F0%EC%DB%B4a%DA%C6%CD%9B%5B%ED%D5%BD%83G%FB%FDU%B8%BA%0C\'H%8C%18A%E2%C4%90n%C4c3%04%19%EC%24%F5%A9%D02%1C%C9QC%08%8F%1EF%90d%F0%AD%1B%F86%88%BE%20%D2uf%E3%06%8B%16%3B%94%E8%80%02d%09y%CA%E7W%8A%8C%3BW%EEz%F4%22%24%D0D%15%3F%C8P%C5%0B%09t%E0%DBd%B0u%B3%17aO%D1e%D5%2F%20%24%60%02%04I%A0%00A%0A%09%94%B0%A0j%C5%3D%E4%D7B%13%FE%D4%D2u%BDTx!%0ADl%D8%E1%7D%0D%EA3%22%8A%25%FE%B7%9F%2F%01V%11%02%04%10%84PE%820%EE%26cN%0E%95X%13%7F%C28%11E%FF%02%1F%25%E0%82%0AA%9Ag%9C0%E8%E9%12%04%0ES%24%A0e%02%20%3C1%DE6%D1M9L%95%BA%14%01C%0CR%F80C%0740%B1B%94!%8A)\'%2Fa%CEi\'%9D%E5%C5i%CC%8DwzS\'4d%02%93%D8u4%06*Tz(%FE%F2%E73%86%12%D6%D4c%10%3A%98%A8%2F%9B%E1%C7%A8~%7D!%B9%D8%91%9Ab%E5%1F%3FO)%26%CCf%20JW%CC%5E%A1%12%05%D6z%9B%1Ej%9DaF%02%B3%A83%A8%26%8A%93G%26N%CA*%A4%0F%0E3%EB%9E3%1E%CA%17%AEv%C1%B5%ABY%BD%8E%9A%A7%A9%C4%B0%E4%17%A2%1Cu%8A%D5T%86%E5%BA%1F%9F%BD%FC%DA%A7%8C%60.%BB-%3B%8D*%CA%A0%90%DF%8AIjL%9F%95%3B\'j%AA5%80%81%15%16(0%C0%BC%F4%D6k%EF%BD%F8%E6%AB%EF%BE%FC%F6%EB%AF%BD%0E%9C%B6%40%00%04%8CsE%05%058p%80%04T4%EC%F0%C3%10G%2C%F1%C4%14Wl%F1%5B%C5%18G%BC%00%05%B1X%23%88%06U%5C%B01%00%24%97l%F2%C9(%A7%AC%F2%CA%2C%B7%EC%F2%CB\'%07%10%8B%01%13%24%C3%09%03U0%80%01%06%02%F4%EC%F3%CF%40%07-%F4%D0D%17m%F4%D1H%03%BD%C1%068%D7%C2%C9%15%134%F0%EA%D4TWm%F5%D5Xg%ADu%15%0DL%C0I%20%00%3B" border="0" name="submit" alt="Make a donation (any amount) and you get a link to remove the nag, and the warm fuzzy feeling you get when you support something you like."><img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1"></form>';
   }

   /*---- Cleanup Log ----*/
   var log = log.innerHTML;
   log = log.replace(/<br>/g,'');//Remove HTML BR tags
   log = log.split('\n');//Splits Each line.

   /*---- Get Game Modes ----*/
   if( dashboard.innerHTML.has("Terminator") ) m_gameType = eGameType.TERMINATOR;
   if( dashboard.innerHTML.has("Sequential") ) m_playOrder = ePlayOrder.SEQUENTIAL;
   else {
      if( dashboard.innerHTML.has("Freestyle (no double turns)") )
         m_playOrder = ePlayOrder.NDTFREESTYLE;
      else
         m_playOrder = ePlayOrder.FREESTYLE;
      dashboard.innerHTML = dashboard.innerHTML.replace("double turns","dbl turns");
      rightside = document.getElementById('right_hand_side');//DONT REMOVE THIS LINE! :-(

   }

   /*---- Get Player Names ----*/
   tmp = rightside.innerHTML
   tmp = tmp.split("<h4>Players</h4>\n")[1];
   tmp = tmp.split(/class="player[^d]">|<\/a>/m);

   pl["Neutral"] = new Player("Neutral",NID,pl_Colors[NID]);
   for( i = 1; i < tmp.length; i+=2 ) pl[tmp[i]] = new Player(tmp[i],++num_players,pl_Colors[i]);

   /*---- Calculate Cards & Player Status ----*/

   for( i = 0; i < log.length; i++ ){
      name = log[i].split(/<[^>]*>/)[1];
      if( log[i].has(" receives ") ){
         pl[ name ]._status = eStatus.YELLOW;
      }
      else if( log[i].has(" gets a card") ){
         pl[name]._cards += 1;
         pl[name]._status = eStatus.RED;
      }
      else if( log[i].has(" fortified ") || log[i].has(" ran out of time") || log[i].has(" missed a turn") ){
         pl[ name ]._status = eStatus.RED;
      }
      else if( log[i].has(" cashed") ){
         pl[ name ]._cards -= 3;
         num_turnins++;
      }
      else if( log[i].has(" eliminated ") ){
         var tmp = log[i].split(/<[^>]*>/);
         pl[ tmp[1] ]._cards += pl[tmp[3]]._cards;//conquerer gets losers cards
         pl[ tmp[3] ]._cards = 0;
         pl[ tmp[3] ]._status = eStatus.LOSER;
      }
      else if( log[i].has(" gains ") ){
         pl[ log[i].split(/<[^>]*>/)[1] ]._status = eStatus.WINNER;
//
//added in version 0.5
         tmp2 = log[i].split(" gains ")[1];
         pl[name]._score -= - tmp2.split(" ")[0];
      }
      else if( log[i].has(" loses ") ){
         tmp2 = log[i].split(" loses ")[1];
         pl[name]._score -= tmp2.split(" ")[0];
      }
//end of addition
//      }
      else if( log[i].has(" was kicked out ") || log[i].has(" was a deadbeat") ){
         pl[ log[i].split(/<[^>]*>/)[1] ]._status = eStatus.LOSER;
      }
      else if( log[i].has("Incrementing game to round") || log[i].has("Game has been initialized") ){
   //      if( m_playOrder != ePlayOrder.SEQUENTIAL )
            for( tmp in pl )
               if( pl[tmp]._status != eStatus.LOSER ) pl[tmp]._status = eStatus.GREEN;
      }
   }

   /*---- Put status and number next to each player ----*/
   var allPlayers = rightside.getElementsByTagName('a');
   i = allPlayers.length;
   var blankStatusStr = '<img style="float:left;margin-right:5px;" src="'+ pl_StatusSrc[eStatus.UNKNOWN] +'" border="0" height="10" width="10">';
   do {
      var curPlayer = allPlayers[--i];
      if( !pl[curPlayer.innerHTML] ) break;
      name = curPlayer.innerHTML + "";

      var nameStr = OPTIONS['colorblind']?pl_cbIDs[ pl[name]._pid ] + ":" + name:name;
      var cardStr = " (" + pl[name]._cards + ")";
      var statusStr = '<img style="float:left;margin:2px 5px 0 0;" src="'+ pl_StatusSrc[ pl[name]._status ] +'" border="0" height="10" width="10">';

//      if( m_playOrder == ePlayOrder.SEQUENTIAL && !( pl[name]._status == eStatus.LOSER || pl[name]._status == eStatus.WINNER) )
//         curPlayer.innerHTML = blankStatusStr + "<u>" + nameStr + cardStr + "</u>";
//      else
         curPlayer.innerHTML = statusStr + "<u>" + nameStr + cardStr + "</u>";
   } while( i );

   /*---- Add redemption value to dashboard and fix wrapping issue ----*/
   tmp = dashboard.innerHTML;

   //Lets user know how many armies they can expect to receive if they turn in cards.
   if( tmp.indexOf("Escalating") > -1 ){
      m_bonusCards = eBonusCards.ESCALATING;
      RedemptionValue = calcRedemption();
      re = new RegExp("</tbody>");
      tmp = tmp.replace(re,"<tr><td colspan=2><b>Next Redemption Value is " + RedemptionValue +".</b></td></tr></tbody>");
      dashboard.innerHTML = tmp;
   }
   else if( tmp.indexOf("Flat Rate") > -1 ){
      m_bonusCards = eBonusCards.FLATRATE;
      RedemptionValue = calcRedemption();
      re = new RegExp("</tbody>");
      tmp = tmp.replace(re,"<tr><td colspan=2><font color=red><b>Red:</b></font> 4&nbsp;<font color=green><b>Green:</b></font> 6&nbsp;<font color=blue><b>Blue:</b></font> 8&nbsp;<b>Mixed:</b> 10</td></tr></tbody>");
      dashboard.innerHTML = tmp;
   }
   else {
      m_bonusCards = eBonusCards.NOCARDS;
      RedemptionValue = calcRedemption();
   }

   /*---- Map Analysis ----*/

   var armiesArr = map.innerHTML.split(/armies=|,|-|" alt="/);
   if( OPTIONS['colorblind'] ) var cbMapStr = armiesArr[0] + " armies=";

   var tmpArmies = new Array(0,0,0,0,0,0,0); //temp holding for armies
   var tmpCountries = new Array(0,0,0,0,0,0,0); //temp holding for countries

   //Get individual scores
   for( i = 1; i < armiesArr.length-1;i+=2 ){
         pid = parseInt( armiesArr[i] );
         tmpArmies[pid]+= parseInt( armiesArr[i+1] );
         tmpCountries[pid]++;
         if( OPTIONS['colorblind'] )
            cbMapStr+= armiesArr[i] +"-"+ pl_cbIDs[pid] + armiesArr[i+1] + ","
      }

   totalCountries = (armiesArr.length-2)/2;
   i = 0;
   for ( name in pl ){
      totalArmies += tmpArmies[i];
      pl[name]._armies = tmpArmies[i];
      pl[name]._countries = tmpCountries[i++];
   }

   tmp = document.getElementById('inner-map').innerHTML;

   if( OPTIONS['colorblind'] ) {
      cbMapStr = cbMapStr.substring(0,cbMapStr.length-1) + '">';
      tmp = cbMapStr + "";
   }
   //Auto Scroll to Game
   if( OPTIONS['jumptomap'] ){
      document.getElementById('inner-map').innerHTML = '<a name="gmtop">' + tmp + '</a>';
      window.setTimeout(window.location.hash="gmtop",1000);
   }

   /*---- Adds Statistics Table ----*/
   var statsStr = "";
   tmp = "";

//version 0.5 change
//Added an extra column for point accumulation

   statsStr+= "\n<table align=center style='width:100%;border:1px solid #FFF;background:#eee;' rules=rows><tr style='font-weight:bold;'><td>Name</td>";
   if ( m_gameType == eGameType.TERMINATOR ) {
      statsStr+= "<td>Points Difference</td>";
   }
   statsStr+= "<td>Armies</td><td>Countries</td><td>Strength</td><td>Armies/Turn w/o Bonus</td></tr>\n";

   for( name in pl ){
      
      var scoreStr;
      if (pl[name]._score >= 0) {
         scoreStr = '<b><font color="green">+' + pl[name]._score + '</font></b>';
      }
      else {
         scoreStr = '<b><font color="red">' + pl[name]._score + '</font></b>';
      }

      var nameStr = OPTIONS['colorblind']?pl_cbIDs[ pl[name]._pid ]+":"+name:name;
      if( pl[name]._countries != 0 ){

         var pctArmies = Math.round(pl[name]._armies*100/totalArmies);
         var pctCountries = Math.round(pl[name]._countries*100/totalCountries);
         var numArmiesNextTurn = ( pl[name]._pid )?calcArmiesNextTurn(pl[name]._countries):0;

         // strength = Armies + PotentialArmies - 2*Countries/3
         var pl_Strength = Math.round( ( pl[name]._armies + numArmiesNextTurn + (getTurnInP(pl[name]._cards) * RedemptionValue) - (2*pl[name]._countries/3) ) * 100 )/100;
         if( pl[name]._pid )  { // if not neutral
            statsStr+=   "<tr><td><span class='player"+ pl[name]._pid +"'>"+ nameStr + " ( " + pl[name]._cards + " )</span></td>";
                  if ( m_gameType == eGameType.TERMINATOR ) {   statsStr+=   "<td><span class='player"+ pl[name]._pid +"'>"+ scoreStr + "</span></td>";}
               statsStr+=   "<td><span class='player"+ pl[name]._pid +"'>"+ pl[name]._armies +" ( " + pctArmies +"% )</span></td>" +
                     "<td><span class='player"+ pl[name]._pid +"'>"+ pl[name]._countries + " ( " + pctCountries +"% )</span></td>" +
                     "<td><span class='player"+ pl[name]._pid +"'>"+ pl_Strength +"</span></td>" +
                     "<td><span class='player"+ pl[name]._pid +"'>"+ numArmiesNextTurn +"</span></td></tr>\n";
         }
         else   {    //neutral
            tmp =      "<tr><td><span class='player"+ pl[name]._pid +"'>"+ nameStr + "</span></td>";
                  if ( m_gameType == eGameType.TERMINATOR ) {tmp += "<td><span class='player"+ pl[name]._pid +"'>0</span></td>";}
               tmp +=      "<td><span class='player"+ pl[name]._pid +"'>"+ pl[name]._armies +" ( " + pctArmies +"% )</span></td>" +
                     "<td><span class='player"+ pl[name]._pid +"'>"+ pl[name]._countries + " ( " + pctCountries +"% )</span></td>" +
                     "<td><span class='player"+ pl[name]._pid +"'>"+ pl_Strength +"</span></td>" +
                     "<td><span class='player"+ pl[name]._pid +"'>0</span></td></tr>\n";
         }
      }
//
// version 0.5 addition
      else   if ( m_gameType == eGameType.TERMINATOR )  {
         if( pl[name]._pid ) // if not neutral
            statsStr+=   "<tr><td><span class='player" + pl[name]._pid + "'>" + nameStr + " ( 0 )</span></td>" +
                     "<td>" + scoreStr + "</td>" +
                     "<td></td>" +
                     "<td></td>" +
                     "<td></td>" +
                     "<td></td></tr>\n";

      }
//end of addition
//
   }
   statsStr+= tmp; //neutral
   statsStr+="<tr style='font-weight:bold;color:#000;'><td>Totals</td>";
   if ( m_gameType == eGameType.TERMINATOR ) statsStr+="<td></td>";
   statsStr+="<td>" + totalArmies + " ( 100% )</td><td>" + totalCountries + " ( 100% )</td><td> - </td><td> - </td></tr>\n";
   statsStr+= "</table>"
//////////////////////////////////////////cyberdaniel's addon///////////////////////////////////////////////////
       var attacks = document.getElementById('DiceRolls');
       if (attacks)
      analyze(attacks.innerHTML);
   //createCookie("conquerclub","101 47 72 109 94 128 128 101 98 52 57 56 64 44 67 40 47 33 59 39 0 0 0 2 0 0 0 0 0",100);
   var settings=readCookie("statssettings");
   if ( OPTIONS['stats'] ) {
      statsStr+=writeStats();
   }
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   stats.innerHTML = statsStr;
}
//////////////////////////////////////cyberdaniel's functions///////////////////////////////////////////////////

function createCookie(name,value,days) {
   if (days) {
      var date = new Date();
      date.setTime(date.getTime()+(days*24*60*60*1000));
      var expires = "; expires="+date.toGMTString();
   }
   else var expires = "";
   document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
   var nameEQ = name + "=";
   var ca = document.cookie.split(';');
   for(var i=0;i < ca.length;i++) {
      var c = ca[i];
      while (c.charAt(0)==' ') c = c.substring(1,c.length);
      if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
   }
   return null;
}

function eraseCookie(name) {
   createCookie(name,"",-1);
}

function analyze(txt) {
   var stat=new Array();
   //eraseCookie("conquerclub");
   var sCookie = readCookie("conquerclub");
   if(sCookie==null)
      sCookie="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0";
   //alert(sCookie);
/*
num wins / num ties / num loses / att 1s / att 2s / att 3s / att 4s / att 5s / att 6s / def 1s / def 2s /
def 3s / def 4s / def 5s / def 6s / 3v2 win / 3v2 tie / 3v2 loss / 3v1 win / 3v1 loss / 2v2 win / 2v2 loss /
2v1 win / 2v1 loss / 1v2 win / 1v2 loss / 1v1 win / 1v1 loss
*/
   for(i=0;i<29;i++)
   {
      if (sCookie.indexOf(" ")!=-1)
         stat[i]=parseInt(sCookie.substring(0,sCookie.indexOf(" ")));
      else
         stat[i]=parseInt(sCookie);
      sCookie = sCookie.substring(sCookie.indexOf(" ")+1,sCookie.length);
   }
   /*
   var c="";
   for (i=0;i<29;i++)
      c+=stat[i]+" ";
   */
   //alert("'"+c+"'");
   //sCookie = sCookie.substring(sCookie.indexOf(" ")+1,sCookie.length);
   /*
   <span class="infomsg">Attacker rolls 4 2 6 </span>

<span class="infomsg">Defender rolls 2 5 </span>
   */
   var att = txt.substring(0,txt.indexOf("</span>"));
    att = att.replace('<span class="infomsg">Attacker rolls ',"");
   txt=txt.substring(txt.indexOf("</span>")+8,txt.length);
   //alert("'"+att+"'");
   //alert(txt);
   var numa=new Array();
   var i=0;
   while(att.length>1)
   {
      var num=parseInt(att.substring(0,att.indexOf(" ")));
      att=att.substring(att.indexOf(" ")+1,att.length);
      stat[num+2]++;
      numa[i]=num;
      i++;
   }
   //alert("i="+i);
   for(k=0;k<i-1;k++)
      for(r=1;r<i;r++)
         if(numa[k]>numa[r])
         {
            t=numa[k];
            numa[k]=numa[r];
            numa[r]=t;
         }
   att = txt.substring(0,txt.indexOf("</span>"));
   att=att.substring(att.indexOf('<span class="infomsg">Defender rolls '),att.length);
   att = att.replace('<span class="infomsg">Defender rolls ',"");
   //alert("'"+att+"'");
   var numd=new Array();
   var j=0;
   while(att.length>1)
   {
      var num=parseInt(att.substring(0,att.indexOf(" ")));
      att=att.substring(att.indexOf(" ")+1,att.length);
      //alert(att);
      stat[num+8]++;
      numd[j]=num;
      j++;
   }
   //alert("j="+j);
   for(k=0;k<j-1;k++)
      for(r=1;r<j;r++)
         if(numd[k]>numd[r])
         {
            t=numd[k];
            numd[k]=numd[r];
            numd[r]=t;
         }
   if(i>=2&&j>=2)
      if(numa[i-1]>numd[j-1]&&numa[i-2]>numd[j-2])
      {
         stat[0]++;
         if (i==3)
            stat[15]++;
         else
            stat[20]++;
      }
      else if(numa[i-1]<=numd[j-1]&&numa[i-2]<=numd[j-2])
         {
            stat[2]++;
            if (i==3)
               stat[17]++;
            else
               stat[22]++;
         }
         else
         {
            stat[1]++;
            if (i==3)
               stat[16]++;
            else
               stat[21]++;
         }
   else
      if(numa[i-1]>numd[j-1])
      {
         stat[0]++;
         if (i==3)
            stat[18]++;
         else
            if(i==2)
               stat[23]++;
            else
               if(j==2)
                  stat[25]++;
               else   
                  stat[27]++;
      }
      else
      {
         stat[2]++;
         if (i==3)
            stat[19]++;
         else
            if(i==2)
               stat[24]++;
            else
               if(j==2)
                  stat[26]++;
               else
                  stat[28]++;
      }
   eraseCookie("conquerclub");

   var c="";
   for (i=0;i<29;i++)
      c+=stat[i]+" ";

   //alert("'"+c+"'");
   createCookie("conquerclub",c,100);
}

function writeStats()
{
   var statLen=25;
   var stat=new Array();
   var sCookie = readCookie("conquerclub");
   if(sCookie==null)
      sCookie="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0";
   //alert(sCookie);
/*
num wins / num ties / num loses / att 1s / att 2s / att 3s / att 4s / att 5s / att 6s / def 1s / def 2s /
def 3s / def 4s / def 5s / def 6s / 3v2 win / 3v2 tie / 3v2 loss / 3v1 win / 3v1 loss / 2v2 win / 2v2 loss /
2v1 win / 2v1 loss / 1v2 win / 1v2 loss / 1v1 win / 1v1 loss
*/
   for(i=0;i<29;i++)
   {
      if (sCookie.indexOf(" ")!=-1)
         stat[i]=parseInt(sCookie.substring(0,sCookie.indexOf(" ")));
      else
         stat[i]=parseInt(sCookie);
      sCookie = sCookie.substring(sCookie.indexOf(" ")+1,sCookie.length);
   }
   var attTotal=stat[3]+stat[4]+stat[5]+stat[6]+stat[7]+stat[8];
   var defTotal=stat[9]+stat[10]+stat[11]+stat[12]+stat[13]+stat[14];
   var stats="<p><table align=center style='width:100%;border:1px solid #FFF;background:#eee;' rules=rows>" +
            "<tr style='font-weight:bold;'><td></td><td>Attacker dice distribution</td><td>Defender dice distribution</td></tr>";
   for(k=0;k<6;k++)
   {
      stats+="<tr style='font-weight:bold;'><td>"+(k+1)+"s</td><td>";
      
      for(i=0;i<statLen;i++)
         if(4*stat[3+k]/attTotal*statLen>i)
            stats+="<font color='blue'>█</font>";
         else
            stats+="<font color='red'>█</font>";
      stats+=" " + stat[3+k] +" / "+attTotal+" ("+Math.round(stat[3+k]*10000/attTotal)/100+"%)</td><td>";
      for(i=0;i<statLen;i++)
         if(4*stat[9+k]/defTotal*statLen>i)
            stats+="<font color='blue'>█</font>";
         else
            stats+="<font color='red'>█</font>";
      stats+=" "+ stat[9+k] + " / "+defTotal+" ("+Math.round(stat[9+k]*10000/defTotal)/100+"%)</td></tr>";
   }
   stats+="</table>";

   stats+="<p><table style='width:100%;border-spacing:0px;border-collapse: collapse;'><tr><td><table align=center style='width:100%;border:1px solid #FFF;background:#eee;' rules=rows>"+
         "<tr style='font-weight:bold;'><td>Battle Outcomes</td></tr>"+
         "<tr style='font-weight:bold;'><td>3v2 ";
   for(i=0;i<statLen;i++)
      if(i<stat[15]*statLen/(stat[15]+stat[16]+stat[17]))
         stats+="<font color='blue'>█</font>";
      else
         if(i<(stat[15]+stat[16])*statLen/(stat[15]+stat[16]+stat[17]))
            stats+="<font color='yellow'>█</font>";
         else
            stats+="<font color='red'>█</font>";
   stats+=" "+stat[15]+" / "+stat[16]+" / "+stat[17]+"</td></tr><tr style='font-weight:bold;'><td>3v1 ";
   for(i=0;i<statLen;i++)
      if(i<stat[18]*statLen/(stat[18]+stat[19]))
         stats+="<font color='blue'>█</font>";
      else
         stats+="<font color='red'>█</font>";
   stats+=" "+stat[18]+" / "+stat[19]+"</td></tr><tr style='font-weight:bold;'><td>2v2 ";
   for(i=0;i<statLen;i++)
      if(i<stat[20]*statLen/(stat[20]+stat[21]+stat[22]))
         stats+="<font color='blue'>█</font>";
      else
         if(i<(stat[20]+stat[21])*statLen/(stat[20]+stat[21]+stat[22]))
            stats+="<font color='yellow'>█</font>";
         else
            stats+="<font color='red'>█</font>";
   stats+=" "+stat[20]+" / "+stat[21]+" / "+stat[22]+"</td></tr><tr style='font-weight:bold;'><td>2v1 ";
   for(i=0;i<statLen;i++)
      if(i<stat[23]*statLen/(stat[23]+stat[24]))
         stats+="<font color='blue'>█</font>";
      else
         stats+="<font color='red'>█</font>";
   stats+=" "+stat[23]+" / "+stat[24]+"</td></tr><tr style='font-weight:bold;'><td>1v2 ";
   for(i=0;i<statLen;i++)
      if(i<stat[25]*statLen/(stat[25]+stat[26]))
         stats+="<font color='blue'>█</font>";
      else
         stats+="<font color='red'>█</font>";
   stats+=" "+stat[25]+" / "+stat[26]+"</td></tr><tr style='font-weight:bold;'><td>1v1 ";
   for(i=0;i<statLen;i++)
      if(i<stat[27]*statLen/(stat[27]+stat[28]))
         stats+="<font color='blue'>█</font>";
      else
         stats+="<font color='red'>█</font>";
      stats+=" "+stat[27]+" / "+stat[28]+"</td></tr></table>";

   stats+="</td><td><table align=center style='width:100%;border:1px solid #FFF;background:#eee;' rules=rows>" +
         "<tr style='font-weight:bold;'><td>Overall stats</td></tr>" +
         "<tr style='font-weight:bold;'><td>Attacker threw "+attTotal+" dice.</td></tr>" +
         "<tr style='font-weight:bold;'><td>Defender threw "+defTotal+" dice.</td></tr>" +
         "<tr style='font-weight:bold;'><td>Wins / Ties / Loses ";
   for(i=0;i<statLen;i++)
      if(i<stat[0]*statLen/(stat[0]+stat[1]+stat[2]))
         stats+="<font color='blue'>█</font>";
      else
         if(i<(stat[0]+stat[1])*statLen/(stat[0]+stat[1]+stat[2]))
            stats+="<font color='yellow'>█</font>";
         else
            stats+="<font color='red'>█</font>";
   stats+=" "+stat[0]+" / "+stat[1]+" / "+stat[2]+"</td></tr>"+
         "<tr><td><font color='blue'>█████</font> Attacker wins</td></tr>" +
         "<tr><td><font color='yellow'>█████</font> Attacker wins 1, defender wins 1</td></tr>" +
         "<tr><td><font color='red'>█████</font> Defender wins</td></tr>" +
         "</table></td></tr></table>";
   return stats;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////

/*---- Required ----*/
GM_addStyle('body { margin: 0; padding: 0; } div#middleColumn{ padding-top: 5px; } .player0 { font-weight: bold; }');
if( OPTIONS['colorblind'] )
   GM_addStyle('.player1, .player2, .player3, .player4, .player5, .player6 { color: black !important; }' );

/*---- Focus Stuff ----*/
GM_addStyle(
  '*:focus { -moz-outline: 2px solid ' + OPTIONS['focuscolor'] + ' ! important; -moz-outline-offset: 1px ! important; -moz-outline-radius: 5px ! important; }\n' +
  'button:focus::-moz-focus-inner { border-color: transparent ! important; }\n' +
  'button::-moz-focus-inner,\n' +
  'input[type="reset"]::-moz-focus-inner,\n' +
  'input[type="button"]::-moz-focus-inner,\n' +
  'input[type="submit"]::-moz-focus-inner,\n' +
  'input[type="file"] > input[type="button"]::-moz-focus-inner {\n' +
  'border: 1px dotted transparent ! important;\n' +
  '}\n' +
  'textarea:focus, button:focus, select:focus, input:focus { -moz-outline-offset: -1px ! important; }\n' +
  'input[type="radio"]:focus {-moz-outline-radius: 12px; -moz-outline-offset: 0px ! important; }\n' +
  'a:focus { -moz-outline: 0 !important; -moz-outline-offset: 0 !important; -moz-outline-radius: 0 !important; }\n');

var theGame = new gm_ConquerClubGame(OPTIONS);
User avatar
Sergeant 1st Class Tubby Rower
 
Posts: 349
Joined: Wed Mar 22, 2006 8:36 am
Location: under a rolling pin

Postby Tubby Rower on Fri Sep 15, 2006 10:28 am

for each one of the █ .. they need to be replaced with & #9608; with the space left out between the & and the #
User avatar
Sergeant 1st Class Tubby Rower
 
Posts: 349
Joined: Wed Mar 22, 2006 8:36 am
Location: under a rolling pin

Postby AndrewO on Fri Sep 15, 2006 10:38 am

Excellent, got it running now. Thanks!
User avatar
Lieutenant AndrewO
 
Posts: 136
Joined: Thu Mar 16, 2006 4:45 pm
Location: London

Postby cyberdaniel on Fri Sep 15, 2006 2:24 pm

I've uploaded the new one with Tubby's modifications and I've modified the link a bit, hope there woun't be any problems.
"Every battle has been won before it's been fought." Sun Tzu
User avatar
Captain cyberdaniel
 
Posts: 281
Joined: Sat Apr 01, 2006 10:31 am

Postby Pedronicus on Fri Sep 15, 2006 2:43 pm

repost your latest results asap please daniel
Image
Highest position 7th. Highest points 3311 All of my graffiti can be found here
Major Pedronicus
 
Posts: 2080
Joined: Tue Jan 24, 2006 2:42 pm
Location: Busy not shitting you....

Postby cyberdaniel on Fri Sep 15, 2006 6:04 pm

Unfortunatelly because my brother cleared everything in the cash and the cookies I lost around 600 attacker throws. This is the last backup I've made:
Image
"Every battle has been won before it's been fought." Sun Tzu
User avatar
Captain cyberdaniel
 
Posts: 281
Joined: Sat Apr 01, 2006 10:31 am

Postby reverend_kyle on Fri Sep 15, 2006 6:30 pm

cyberdaniel wrote:Unfortunatelly because my brother cleared everything in the cash and the cookies I lost around 600 attacker throws. This is the last backup I've made:
Image



I must say. your dice suck.. grow some balls everyone knows 2v2 1v2 and 1v1 attacks are the bomb..
DANCING MUSTARD FOR POOP IN '08!
User avatar
Sergeant reverend_kyle
 
Posts: 9250
Joined: Tue Mar 21, 2006 4:08 pm
Location: 1000 post club

Postby cyberdaniel on Sat Sep 16, 2006 12:29 pm

lol, I actually had something like 5/0 for 2v1 . I usually don't get to attack 2v1 or 1v1.
"Every battle has been won before it's been fought." Sun Tzu
User avatar
Captain cyberdaniel
 
Posts: 281
Joined: Sat Apr 01, 2006 10:31 am

Postby gavin_sidhu on Wed Sep 20, 2006 3:19 am

...its gone with the latest update of CC... :-({|=
Highest Score: 1843 Ranking (Australians): 3
User avatar
Lieutenant gavin_sidhu
 
Posts: 1428
Joined: Mon May 22, 2006 6:16 am
Location: Brisbane, Australia

Postby zip_disk on Wed Sep 20, 2006 5:05 am

Used bmw's script tweak to view my latest dice stats.

Image
Captain zip_disk
 
Posts: 216
Joined: Thu Mar 23, 2006 9:33 pm

Postby cyberdaniel on Wed Sep 20, 2006 5:30 pm

Ok, the next update of the Dice analyzer script is up. Now it comes as a separate script, not embeded into Troy's script.

I added a button that hides the table with stats for those with a small resolution that don't want to scroll for the chat.

You can get it from the link on the first post.
"Every battle has been won before it's been fought." Sun Tzu
User avatar
Captain cyberdaniel
 
Posts: 281
Joined: Sat Apr 01, 2006 10:31 am

Postby Bad Speler on Wed Sep 20, 2006 5:34 pm

rats, i just had a big battle without the anylyser
Highest Score: 2532
Highest Position: 69 (a long time ago)
User avatar
Sergeant 1st Class Bad Speler
 
Posts: 1027
Joined: Fri Jun 02, 2006 8:16 pm
Location: Ottawa

Postby cyberdaniel on Wed Sep 20, 2006 5:35 pm

sorry for the delay, I was testing it.
"Every battle has been won before it's been fought." Sun Tzu
User avatar
Captain cyberdaniel
 
Posts: 281
Joined: Sat Apr 01, 2006 10:31 am

Postby zip_disk on Wed Sep 20, 2006 9:27 pm

Hmm, does the dice analyzer work when we use the auto-attack button? Never actually looked.

Edit: Yup it does. A fun little 0 kills for 6 attack result showed me the way.
Captain zip_disk
 
Posts: 216
Joined: Thu Mar 23, 2006 9:33 pm

Postby AK_iceman on Thu Sep 21, 2006 2:52 am

Sorry guys, I just did a huge attack and didn't have the analyzer. I have it now though and am almost ready for melee 2! :D
User avatar
Sergeant 1st Class AK_iceman
 
Posts: 5704
Joined: Wed May 10, 2006 10:39 pm

PreviousNext

Return to Tool Archives

Who is online

Users browsing this forum: No registered users