<?
//función para leer elementos de un archivo
function randfile($file) {
$data = file($file);
return $data[rand(0, count($data)-1)];}


//Definición de puntuaciones y parámetros

// Cantidad de puntos de características
$PC = $_POST["PC"];
//Cantidad de puntos de generación de personaje
$PG = $_POST["PG"];
//numero de personajes generados simultaneamente
$numero=$_POST["Num"];
//máximo en atributos
$maximo=$_POST["Max"];
//valor mínimo en atributos.
$minimo=$_POST["Min"];
//máximo en habilidades
$maximo2=$_POST["Max2"];
//Máxima cantidad posible de objetos extras
$num_ob=$_POST["Num_ob"];
//cantidad máxima de desventajas por personaje
$maximo_desventajas=$_POST["Num_desv"];


//definición de habilidades  básicas

  $habibas = file("habilidadesbasicas.txt");

//definición de habilidades  adquiridas
  $habi = file($_POST["habi"]);

//definición de equipamiento

$armasRango = file($_POST["rango"]);

$armasCqC = file($_POST["cqc"]);

$protecciones = file($_POST["armor"]);

for ($cont=0; $cont<$numero; $cont++)
{

//definición de trasfondos

$trans= array();
$archivo_TR = $_POST["tran"];
$identificador = fopen($archivo_TR, 'r');

while(!feof($identificador))
{
  $cadena= fgets($identificador);
  for($i=0; $i<strlen($cadena); $i++)
  {
   $caracter=$cadena[$i];
   if ($caracter==1or$caracter==1or$caracter==2or$caracter==3or$caracter==4or$caracter==5
   or$caracter==6or$caracter==7or$caracter==8or$caracter==9or$caracter=="0"or$caracter=="-")
   {
   $v=$v.$caracter;
   }
   else
   {
   $ca = $ca.$caracter;
   }
  }
  $trans [$ca]=$v;
  $cadena="";
  $v="";
  $ca="";
}
if ($_POST["poder"]=="1")
 {
	$archivo_TR = "trasfondos_poderes.txt";
$identificador = fopen($archivo_TR, 'r');

while(!feof($identificador))
{
  $cadena= fgets($identificador);
  for($i=0; $i<strlen($cadena); $i++)
  {
   $caracter=$cadena[$i];
   if ($caracter==1or$caracter==1or$caracter==2or$caracter==3or$caracter==4or$caracter==5
   or$caracter==6or$caracter==7or$caracter==8or$caracter==9or$caracter=="0"or$caracter=="-")
   {
   $v=$v.$caracter;
   }
   else
   {
   $ca = $ca.$caracter;
   }
  }
  $trans [$ca]=$v;
  $cadena="";
  $v="";
  $ca="";
} 
 }

 if ($_POST["animal"]=="1")
 {
	$archivo_TR = "trasfondos_animales.txt";
$identificador = fopen($archivo_TR, 'r');

while(!feof($identificador))
{
  $cadena= fgets($identificador);
  for($i=0; $i<strlen($cadena); $i++)
  {
   $caracter=$cadena[$i];
   if ($caracter==1or$caracter==1or$caracter==2or$caracter==3or$caracter==4or$caracter==5
   or$caracter==6or$caracter==7or$caracter==8or$caracter==9or$caracter=="0"or$caracter=="-")
   {
   $v=$v.$caracter;
   }
   else
   {
   $ca = $ca.$caracter;
   }
  }
  $trans [$ca]=$v;
  $cadena="";
  $v="";
  $ca="";
} 
 }
 
//definición de equipo extra

$extras = file($_POST["extra"]);

//asignaciónde atributos

$PC2=($minimo*8)+$PC;
Do {
$fue=rand($minimo,$maximo);
$con=rand($minimo,$maximo);
$per=rand($minimo,$maximo);
$des=rand($minimo,$maximo);
$vol=rand($minimo,$maximo);
$int=rand($minimo,$maximo);
$hab=rand($minimo,$maximo);
$car=rand($minimo,$maximo);
$sumaAT=($fue+$con+$per+$des+$vol+$int+$hab+$car);
}while($sumaAT!=$PC2);

//asignación de trasondos

$totalTr=0;
$contdesv=0;
$contransf = rand(-3,7);
if( $contransf>0)
{
for ($i=0; $i<=$contransf; $i++)
{
 $g= array_rand($trans);
 $coste=$trans[$g];
 if ($coste<1)
 {
     $contdesv++;
 }
 if ($contdesv>=$maximo_desventajas+1)
 {
   $coste=-1;
   While($coste<1)
   {
    $g= array_rand($trans);
    $coste=$trans[$g];
   }
 }
 if ($totalTr+$coste<=$PG)
 {
   $cadenaTR= $cadenaTR. " $g"." ,";
   $totalTr = ($totalTr+$coste);
   unset ($trans[$g]);
 }
}
}

//asignación de habildiades básicas

$P11 = $PG-$totalTr;
$P1= rand (0,$P11);
$maximo3= $maximo2-3;
//shuffle($habibas);
foreach ($habibas as $i => $value)
{
 $valor=rand(0,$maximo3);
 $valor2=3;
 if($valor+$suma1<=$P1)
 {
    $suma1 = $suma1+$valor;
    $valor2= $valor+$valor2;
 }
 $cadenabas=$cadenabas.$habibas[$i].": ".$valor2.", ";
}

//asignación de habilidades adquiridas

$P22=($suma1+$totalTr);
$P2=($PG-$P22);

shuffle($habi);
foreach ($habi as $i => $value)
{
 $valor=rand(0,$maximo2);
 if($valor+$totalseg<=$P2)
 {
  $totalseg = $totalseg+$valor;
  if ($valor!=0) $cadenahab=$cadenahab.$habi[$i].": ".$valor.", ";
 }
}

/*Esto es por si se da la remota posibilidad de que sobra algún PG.
Convertiremos los PG libres en bono a la vitalidad.*/

$P33= ($P22+$totalseg);
$PV=(($PG-$P33)*2);
if($PV>0){$cadenaTR= $cadenaTR . " Bono a la vitalidad: +$PV.";}

//asignación de armamento

If ($fue<$per)
   {
   $equipo =" ".$armasRango[array_rand($armasRango)]. ", ";
   }
else
   {
   $equipo =" ".$armasCqC[array_rand($armasCqC)]. ", ";
   }

$equipo= $equipo.$protecciones[array_rand($protecciones)]. ", ";

//asignación de objetos adicionales

shuffle($extras);
$contr=rand (0,$num_ob);

 foreach ($extras as $j => $value)
 {
  if($contr>0)
   {
    $equipo=$equipo.$extras[$j].", ";
    unset ($extras[$j]);
   }
   $contr--;
 }

//descripción del personaje

$sex=rand(1,2);

if (rand(0,1)) {
	$sexo=1;
        $nombre=" ";
        $nombre=$nombre.trim(randfile("nombres_varon.txt"));
        $cadenaPJ= "Varón de unos ".rand(15,55)." años de edad,";
}
else {
	$sexo=0;
        $nombre=" ";
        $nombre=$nombre.trim(randfile("nombres_mujer.txt"));
        $cadenaPJ= "Mujer de unos ".rand(15,55)." años de edad,";
}


$nombre=$nombre." ".trim(randfile("apellidos.txt"));
$cadenaPJ=$cadenaPJ." su comportamiento es ".trim(randfile("personalidad.txt"));


//Escritura de la ficha ya terminada
$PH= $suma1+$totalseg;
$totalTr= ($PV/2)+$totalTr;
$cont2=$cont+1;
echo "<table border=1  width=100% colspan=8 cellspacing=0>";
echo"      <tr>
               <th colspan=8> $nombre.</td>
      </tr>";
 echo"      <tr>
               <td colspan=8>  Descripción: $cadenaPJ.   </td>
      </tr>";
 echo "<tr>
         <td align='center'> Fuerza: $fue </td>
         <td align='center'> Constitución: $con </td>
         <td align='center'> Percepción: $per </td>
         <td align='center'> Destreza: $des </td>
         <td align='center'> Voluntad: $vol </td>
         <td align='center'> Inteligencia: $int </td>
         <td align='center'> Habilidad: $hab </td>
         <td align='center'> Carisma: $car </td>
      </tr>";

echo"      <tr>
               <td colspan=8>  Habilidades: $cadenabas $cadenahab   </td>
      </tr>";
echo"      <tr>
               <td colspan=8>  Trasfondos:  $cadenaTR   </td>
      </tr>";
echo"      <tr>
               <td colspan=8>  Equipo: $equipo   </td>
      </tr>";
echo "</table>";
echo "<BR>";

//limpiando las variables para iniciar de nuevo el bucle

  $totalseg=0;
  $cadenahab= "";
  $cadenabas= "";
  $suma1 = 0;
  $cadenaTR = "";
  $nombre="";
}

?>

<a href="Index.php">Volver a la pantalla anterior</a> 

