View Source: /source/battle.php
Click here for the source, OR
Other files that you may wish to view the source of:
<?
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])>0 && 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]>1) output(", 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==0 && $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)==1 && $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]>0 && $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]>0 && $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]>0 && $badguy[creaturehealth]>0 && ($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);
?>