Dice-function is complete, this includes:

- Test-values larger than 20
 - "1" is an ever-success
 - "20" in first roll is an ultimate failure
This commit is contained in:
Oliver Rümpelein 2014-10-23 17:10:33 +02:00
parent 108936324c
commit ce9f06a864
1 changed files with 30 additions and 16 deletions

View File

@ -82,26 +82,40 @@
// Probe-Function: checks, whether a given "effort" is succesfull, according to the rules of DS
// Not yet implemented: Tests for values larger than 20
var dice = function(probe) {
console.log(probe);
var diceval = Math.floor(Math.random() * (21 - 1)) + 1;
if ( diceval <= probe ) {
if (diceval == 1) {
alert ("Immersieg!");
return probe;
}
else {
return diceval;
};
}
else {
if (diceval === 20) {
alert ("Patzer!"); // We need alert here, because most "Patzer"
// affect gameplay (dropping equipement and so on)
};
var diceval=new Array();
var rolls=Math.floor(probe/20)+1; // Player may be allowed to roll the dice several times.
var tvalues=new Array();
var result=0;
var tmpval;
for(var i=0; i<rolls; ++i) {
diceval.push(Math.floor(Math.random() * (21 - 1)) + 1);
tvalues.push(20);
};
console.log(diceval);
tvalues[rolls-1]=probe%20; //the last value is the lowest
if (diceval[0]===20) {
alert ("Patzer!");
return 0;
};
diceval.sort(function(a,b){
if(a===1) return -1;
if(b===1) return 1;
return b-a;}
);
console.log(diceval);
for(var i=0; i<rolls-1; ++i) { //First, evaluate the testvalues "20", that is each except the last one
tmpval=diceval[i];
result+= (tmpval == 1)?20:tmpval; //If result of dice is "1", return maximum.
};
tmpval=diceval[rolls-1];
testval=tvalues[rolls-1];
if(tmpval <= testval){
result+= (tmpval ==1)?tvalues[rolls-1]:tmpval;
}
return result;
};
// Own Classes for Creatures, derived from the Basic Object class from above
// Creature is the base class for every "living" (or dead) "being"