View Source: /source/battle.php

Click here for the source, OR
Other files that you may wish to view the source of:

Source of: /source/battle.php

<?
    
require_once("common.php");
    
$badguy createarray($session[user][badguy]);
    
    if (
date("m-d")=="04-01"){
        if (
strpos($badguy[creaturename],"bork bork")){
        }else{
            
$badguy[creaturename]=$badguy[creaturename]." bork bork";
        }
    }
    
$adjustment = ($session[user][level]/$badguy[creaturelevel]);
    if (
$badguy[pvp]) $adjustment=1;
    if (
$HTTP_GET_VARS[op]=="fight"){
        if (
$HTTP_GET_VARS[skill]=="godmode"){
            
$session[bufflist][100]=array("name"=>"`&GOD MODE","rounds"=>"25","wearoff"=>"You feel mortal again.","atkmod"=>25,"defmod"=>25);
            
$specialdamagemessage="`n`&You feel godlike`n`n";
        }
        if (
$HTTP_GET_VARS[skill]=="MP"){
          if (
$session[user][magicuses] >= $HTTP_GET_VARS[l]){
              
$creaturedmg 0;
                switch(
$HTTP_GET_VARS[l]){
                  case 
1:
                      
$specialdamagemessage "`n`^You begin to regenerate!`n`n";
                        
$session[bufflist][8]=array("name"=>"`%Regeneration","rounds"=>5,"wearoff"=>"You have stopped regenerating");
                      break;
                    case 
2:
                      
$specialdamagemessage "`n`^".$badguy[creaturename]."`% is clutched by a fist of earth and slammed to the ground!`n`n";
                        
$session[bufflist][9]=array("name"=>"`%Earth Fist","rounds"=>5,"wearoff"=>"The earthen fist crumbles to dust.");
                      break;
                    case 
3:
                      
$specialdamagemessage "`n`^Your weapon glows with an unearthly presence.`n`n";
                        
$session[bufflist][10]=array("name"=>"`%Siphon Life","rounds"=>5,"wearoff"=>"Your weapon's aura fades.");
                        break;
                    case 
5:
                      
$specialdamagemessage "`n`^Your skin sparkles as you assume an aura of lightning`n`n";
                        
$session[bufflist][11]=array("name"=>"`%Lightning Aura","rounds"=>5,"wearoff"=>"With a fizzle, your skin returns to normal.");
                        break;
                }
                
$session[user][magicuses]-=$HTTP_GET_VARS[l];
            }else{
                
$specialdamagemessage "`nYou furrow your brow and call on the powers of the elements.  A tiny flame appears.  ".$badguy[creaturename]." lights a cigarrette from it, giving you a word of thanks before swinging at you again.";
            }
        }
        if (
$HTTP_GET_VARS[skill]=="DA"){
          if (
$session[user][darkartuses] >= $HTTP_GET_VARS[l]){
              
$creaturedmg 0;
                switch(
$HTTP_GET_VARS[l]){
                  case 
1:
                    
$specialdamagemessage "`n`\$You call on the spirits of the dead, and skeletal hands claw at ".$badguy[creaturename]." from beyond the grave.`n`n";
                        
$session[bufflist][1]=array("name"=>"`\$Skeleton Crew","rounds"=>5,"wearoff"=>"Your skeleton minions crumble to dust.");
                      break;
                    case 
2:
                    
$specialdamagemessage "`n`\$You pull out a tiny doll that looks like ".$badguy[creaturename].", and thrust a pin in to it.`n`n";
                        
$specialdamage e_rand(round($session[user][attack]*1.5,0),round($session[user][attack]*3,0));
                      break;
                    case 
3:
                    
$specialdamagemessage "`n`\$You place a curse on ".$badguy[creaturename]."'s ancestors.`n`n";
                        
$session[bufflist][3]=array("name"=>"`\$Curse Spirit","rounds"=>5,"wearoff"=>"Your curse has faded.");
                        break;
                    case 
5:
                    
$specialdamagemessage "`n`\$You hold out your hand and ".$badguy[creaturename]." begins to bleed from its ears.`n`n";
                        
$session[bufflist][4]=array("name"=>"`\$Whither Soul","rounds"=>5,"wearoff"=>"Your victim's soul has been restored.");
                        break;
                }
                
$session[user][darkartuses]-=$HTTP_GET_VARS[l];
            }else{
                
$specialdamagemessage "`nExhausted, you try your darkest magic, a bad joke.  ".$badguy[creaturename]." looks at you for a minute, thinking, and finally gets the joke.  Laughing, it swings at you again.`n`n";
            }
        }
        if (
$HTTP_GET_VARS[skill]=="TS"){
          if (
$session[user][thieveryuses] >= $HTTP_GET_VARS[l]){
              
$creaturedmg 0;
                switch(
$HTTP_GET_VARS[l]){
                  case 
1:
                      
$specialdamagemessage "`n`^You call $badguy[creaturename] a bad name, making it cry.`n`n";
                        
$session[bufflist][5]=array("name"=>"`^Insult","rounds"=>5,"wearoff"=>"Your victim stops crying and wipes its nose.");
                      break;
                    case 
2:
                    
$specialdamagemessage "`n`^You apply some poison to your ".$session[user][weapon].".`n`n";
                        
$session[bufflist][6]=array("name"=>"`^Poison Attack","rounds"=>5,"wearoff"=>"Your victim's blood has washed the poison from your blade.","atkmod"=>2);
                      break;
                    case 
3:
                    
$specialdamagemessage "`n`^With the skill of an expert thief, you virtually dissapear, and attack ".$badguy[creaturename]." from a safer vantage point.`n`n";
                        
$session[bufflist][7]=array("name"=>"`^Hidden Attack","rounds"=>5,"wearoff"=>"Your victim has located you.");
                        break;
                    case 
5:
                        
$specialdamagemessage "`n`^Using your skills as a thief, dissapear behind ".$badguy[creaturename]." and slide a thin blade between its vertibrae!`n`n";
                        
$session[bufflist][6]=array("name"=>"`^Backstab","rounds"=>5,"wearoff"=>"Your victim won't be so likely to let you get behind it again!","atkmod"=>3,"defmod"=>3);
                        break;
                }
                
$session[user][thieveryuses]-=$HTTP_GET_VARS[l];
            }else{
                
$specialdamagemessage "`nYou try to attack $badguy[creaturename] by putting your best thievery skills in to practice, but instead, you trip over your feet.";
            }
        }
    }
    
    
output ("`\$`c`b~ ~ ~ Fight ~ ~ ~`b`c`0");
    
    
output("`@You have encountered `^$badguy[creaturename]`@ which lunges at you with `%$badguy[creatureweapon]`@!`0`n`n");
    if (
$session['user']['alive']){
        
output("`2Level: `6$badguy[creaturelevel]`0`n");
    }else{
        
output("`2Level: `6Undead`0`n");
    }
    
output("`2`bStart of round:`b`n");
    
output("`2$badguy[creaturename]`2's ".($session['user']['alive']?"Hitpoints":"Soulpoints").": `6$badguy[creaturehealth]`0`n");
    
output("`2YOUR ".($session['user']['alive']?"Hitpoints":"Soulpoints").": `6".$session[user][hitpoints]."`0`n");
    if (
$badguy[pvp] && count($session[bufflist])>&& is_array($session[bufflist])) {
        
output("`&The gods have stripped you of any special effects!`n");
        
$session[bufflist]=array();
    }
    
reset($session[bufflist]);
    
$creatureatkmod=1;
    
$creaturedefmod=1;
    
$atkmod=1;
    
$defmod=1;
    
output("`%$specialdamagemessage");
    if (
$specialdamage>0){
        
output("`)$badguy[creaturename] is hit for `^$specialdamage`) points of damage!`n`n");
        
$badguy[creaturehealth]-=$specialdamage;
    }
        
    while (list(
$key,$val)=each($session[bufflist])){
        switch(
$key){
            case 
1:
                for (
$i=0;$i<round($session[user][level]/3)+1;$i++){
                    
$r e_rand(0,round($session[user][level]/2,0)+1);
                    if (
$r>0){
                        
output("`)An undead minion hits $badguy[creaturename] for `^$r`) damage.`n");
                        
$badguy[creaturehealth]-=$r;
                    }else{
                        
output("`)An undead minion tries to hit $badguy[creaturename] but `\$MISSES`)!`n");
                    }
                }
                break;
            case 
3:
                
output("`)$badguy[creaturename] staggers under the weight of your curse, and deals only half damage.`n");
                if (
$creaturedmg<0$creaturedmg=round($creaturedmg*0.5,0);
                if (
$selfdmg>0$selfdmg=round($selfdmg*0.5,0);
                
//$creaturedefmod=0.5;
                //$creatureatkmod=0.5;
                
break;
            case 
4:
                
output("`)$badguy[creaturename] claws at its eyes, trying to release its own soul, and cannot attack or defend.`n");
                
$creatureatkmod*=0;
                
$creaturedefmod*=0;
                break;
            case 
5:
                
output("`)$badguy[creaturename] feels dejected, and cannot attack as well.`n");
                
$creatureatkmod*=0.5;
                break;
            case 
6:
                
output("`)Your attack damage is multiplied");
                
$atkmod*=$val[atkmod];
                
$defmod*=$val[defmod];
                if (
$val[defmod]>1output(", as is your defense");
                
output("!`n");
                break;
            case 
7:
                
output("`)$badguy[creaturename] cannot locate you.`n");
                
$creatureatkmod*=0;
                break;
            case 
8:
                
$hptoregen $session['user']['level'];
                
$hpdiff $session['user']['maxhitpoints'] - $session['user']['hitpoints'];
                if (
$hpdiff $hptoregen$hptoregen $hpdiff;
                if (
$hptoregen<0$hptoregen=0;
                if (
$hptoregen>=0)
                    
output("`)You regenerate for $hptoregen points.`n");
                
$session[user][hitpoints]+=$hptoregen;
                
//if ($session[user][hitpoints]>$session[user][maxhitpoints]) $session[user][hitpoints]=$session[user][maxhitpoints];
                
break;
            case 
9:
                
$r=e_rand(1,$session[user][level]*3);
                
output("`)A huge fist of earth pummels your opponent for `^$r points.`n");
                
$badguy[creaturehealth]-=$r;
                break;
            case 
10:
                break;
            case 
101:
                
output("`)You've got a nice buzz going`n");
                
$atkmod*=$val[atkmod];
                break;
            case 
100:
                
output("`)You feel godlike`n");
                
$atkmod=25;
                
$defmod=25;
                break;
            case 
102:
                
output("`)Your horse fights with you!`n");
                
$atkmod=1.2;
                break;
        }
    }
    
//we get hurt
    //if ($creaturedmg<0) $creaturedmg=round($creaturedmg*$creatureatkmod/$defmod,0);
    //if ($selfdmg>0) $selfdmg=round($selfdmg*$creatureatkmod/$defmod,0);
    //we hurt creature
    //if ($creaturedmg>0) $creaturedmg=round($creaturedmg*$creaturedefmod,0);
    //if ($selfdmg<0) $selfdmg=round($selfdmg*$creaturedefmod,0);

    
$adjustedcreaturedefense = (int)($creaturedefmod*$badguy[creaturedefense] / ($adjustment*$adjustment)) * .66;
    if (
$badguy[pvp]) $adjustedcreaturedefense $badguy[creaturedefense];
    
$adjustedselfdefense = (int)($session[user][defence] * $adjustment $defmod);
    while(
$creaturedmg==&& $selfdmg==0){//---------------------------------
        
$atk $session[user][attack]*$atkmod;
        if (
e_rand(1,20)==1$atk*=3;
        
$creaturedmg 0-(int)(e_rand(0,$adjustedcreaturedefense) - e_rand(0,$atk));
        
$selfdmg 0-(int)( e_rand(0,$adjustedselfdefense) - e_rand(0,$badguy[creatureattack]*$creatureatkmod));
        if (
$creaturedmg<0$creaturedmg=(int)($creaturedmg/2);
        if (
$selfdmg<0$selfdmg=(int)($selfdmg/2);
    }
        
    if (isset(
$session[bufflist][100])){
        
$creaturedmg abs($creaturedmg);
        
$selfdmg = -abs($selfdmg);
    }
    if (isset(
$session[bufflist][10])){
        
//Siphon Life
            //we hurt creature with regular attack.
                
$healhp $session[user][maxhitpoints]-$session[user][hitpoints];
                if (
$healhp>$creaturedmg$healhp $creaturedmg;
                if (
$healhp<0$healhp=0;
                if (
$session['user']['hitpoints']>$session['user']['maxhitpoints']) $healhp=0;
                if (
$creaturedmg>0){
                    
output("`)You are healed for $healhp points.`n");
                    
$session[user][hitpoints]+=$healhp;
                }
            
//we hurt creature with riposte.
                
$healhp $session[user][maxhitpoints]-$session[user][hitpoints];
                if (
$healhp>-$selfdmg$healhp = -$selfdmg;
                if (
$healhp<0$healhp=0;
                if (
$session['user']['hitpoints']>$session['user']['maxhitpoints']) $healhp=0;
                if (
$selfdmg<0){
                    
output("`)You are healed for $healhp points.`n");
                    
$session[user][hitpoints]+=$healhp;
                }
                
//if ($session[user][hitpoints]>$session[user][maxhitpoints]) $session[user][hitpoints]=$session[user][maxhitpoints];
    
}
    if (isset(
$session[bufflist][11])){
        if (
$creaturedmg<0){
            
output("`)$badguy[creaturename] is hit for `^".(-$creaturedmg*2)."`) damage.`n");
            
$badguy[creaturehealth]-=($creaturedmg*-2);
        }
        if (
$selfdmg>0){
            
output("`)$badguy[creaturename] is hit for `^".($selfdmg*2)."`) damage.`n");
            
$badguy[creaturehealth]-=($selfdmg*2);
        }
    }
    
    
reset($session[bufflist]);
    while (list(
$key,$val)=each($session[bufflist])){
        if (
$HTTP_GET_VARS[op]=="fight" || $HTTP_GET_VARS[op]=="run"$session[bufflist][$key][rounds]--;
        if (
$val[rounds]<=1) {
            
output("`)".str_replace("Your victim",$badguy[creaturename],$val[wearoff])."`n");
            unset(
$session[bufflist][$key]);
        }
    }
    if (
e_rand(1,3)==&& $HTTP_GET_VARS[op]=="search" || $badguy[pvp] && $HTTP_GET_VARS[act]=="attack"){
        if (
$badguy[pvp]){
          
output("`b`^$badguy[creaturename]`\$'s skill allows them to get the first round of attack!`0`b`n`n");
        }else{
          
output("`b`^$badguy[creaturename]`\$ surprises you and gets the first round of attack!`0`b`n`n");
      }
        
$HTTP_GET_VARS[op]="run";
        
$surprised=true;
    }else{
      if (
$HTTP_GET_VARS[op]=="search"output("`b`\$Your skill allows you to get the first attack!`b`n`n");
        
$surprised=false;
    }
    if (
$HTTP_GET_VARS[op]=="fight" || $HTTP_GET_VARS[op]=="run"){
        if (
$HTTP_GET_VARS[op]=="fight"){
            
//if ($specialdamagemessage>0){
            //  $badguy[creaturehealth]-=$specialdamage;
            //    output("`^$badguy[creaturename]`4 is hit for `^".(int)$specialdamage."`4 points of damage!`n");
            //}else{
             
if ($badguy[creaturehealth]>&& $session[user][hitpoints]>0){
            if (
$atk $session[user][attack]) {
                    if (
$atk $session[user][attack]*3){
                        if (
$atk>$session[user][attack]*4){
                            
output("`&`bYou execute a <font size='+1'>MEGA</font> power move!!!`b`n",true);
                        }else{
                            
output("`&`bYou execute a DOUBLE power move!!!`b`n");
                        }
                    }else{
                        if (
$atk>$session[user][attack]*2){
                            
output("`&`bYou execute a power move!!!`b`0`n");
                        }elseif (
$atk>$session['user']['attack']*1.25){
                            
output("`7`bYou execute a minor power move!`b`0`n");
                        }
                    }
                }
                if (
$badguy[creaturehealth]>0){
                    if (
$creaturedmg==0){
                        
output("`4You try to hit `^$badguy[creaturename]`4 but `\$MISS!`n");
                    }else{
                        if (
$creaturedmg<0){
                            
output("`4You try to hit `^$badguy[creaturename]`4 but are RIPOSTED for `\$".(0-$creaturedmg)."`4 points of damage!`n");
                            
$badguy['diddamage']=1;
                            
$session[user][hitpoints]+=$creaturedmg;
                        }else{
                            
output("`4You hit `^$badguy[creaturename]`4 for `^$creaturedmg`4 points of damage!`n");
                            
$badguy[creaturehealth]-=$creaturedmg;
                        }
                    }
                }
            }
        }else if(
$HTTP_GET_VARS[op]=="run" && !$surprised){
            
output("`4You are too busy trying to run away like a cowardly dog to try to fight `^$badguy[creaturename]`4.`n");
        }
         
// We need to check both user health and creature health. Otherwise the user
         // can win a battle by a RIPOSTE after he has gone <= 0 HP. 
         
if ($badguy[creaturehealth]>&& $session[user][hitpoints]>0){ //-- Gunnar Kreitz
//        if ($badguy[creaturehealth]>0){ //-- Eric Stevens
            
if ($selfdmg==0){
                
output("`^$badguy[creaturename]`4 tries to hit you but `\$MISSES!`n");
            }else{
                if (
$selfdmg<0){
                    
output("`^$badguy[creaturename]`4 tries to hit you but you RIPOSTE for `^".(0-$selfdmg)."`4 points of damage!`n");
                    
$badguy[creaturehealth]+=$selfdmg;
                }else{
                    
output("`^$badguy[creaturename]`4 hits you for `\$$selfdmg`4 points of damage!`n");
                    
$session[user][hitpoints]-=$selfdmg;
                    
$badguy['diddamage']=1;
                }
            }
        }
    }
    
    
    if (
$session[user][hitpoints]>&& $badguy[creaturehealth]>&& ($HTTP_GET_VARS[op]=="fight" || $HTTP_GET_VARS[op]=="run")){
        
output("`2`bEnd of Round:`b`n");
        
output("`2$badguy[creaturename]`2's ".($session['user']['alive']?"Hitpoints":"Soulpoints").": `6$badguy[creaturehealth]`0`n");
        
output("`2YOUR ".($session['user']['alive']?"Hitpoints":"Soulpoints").": `6".$session[user][hitpoints]."`0`n");
    }
    if (
$badguy[creaturehealth]<=0){
        
$victory=true;
        
$defeat=false;
    }else{
        if (
$session[user][hitpoints]<=0){
            
$defeat=true;
            
$victory=false;
        }else{
            
$defeat=false;
            
$victory=false;
        }
    }
    
$session[user][badguy]=createstring($badguy);
?>