Файл: wenr.online/app/json/dragons_fight.php
Строк: 61
<?php
if (!$user->isAuth()) {
redirect('/');
exit;
}
if($user->get()->lvl < 7){
exit(json_encode(['text'=>'Доступно только с 7-го уровня']));
}
$rolls = $db->prepare('select * from `bag` where `user` = ? and `type` = ? limit 4');
$rolls -> execute([$user->get()->user_id,'rolls']);
$rolls = $rolls -> fetchAll();
$mob = $db->prepare('select * from dragons where id = ?');
$mob -> execute([Clean :: int($_GET['id'])]);
$mob = $mob -> fetch(PDO :: FETCH_OBJ);
if(!isset($mob->id)){
redirect('/dragons');
exit;
}
$mobArray = $_SESSION['dragons'];
if(!isset($mobArray['mob']) or $mobArray['mob'] != $mob->id){
$session = ['mob' => $mob->id, 'hp' => $mob->hp];
$_SESSION['dragons'] = $session;
redirect('/dragons/fight?id='.$mob->id);
exit;
}
if(isset($_GET['attack'])){
if($user->get()->hp < 2){
exit(json_encode(['text'=>'Слишком мало здоровья для нападения']));
}
$magic = $db->prepare('select * from `bag` where `id` = ? and `user` = ?');
$magic -> execute([Clean :: int($_GET['rolls']),$user->get()->user_id]);
$magic = $magic -> fetch(PDO :: FETCH_OBJ);
$dop_uron = 0;
$fight_skill = $user->get()->one_handed+$user->get()->two_handed+$user->get()->bow+$user->get()->crossbow;
if($figth_skill > 200) $dop_uron .= rand(1,$fight_skill);
if($magic->mana > $user->get()->mana and isset($magic->id)){
exit(json_encode(['text'=>'Нехватает маны для использования свитка']));
}
if(isset($magic->force)) $dop_uron .= $magic->force;
$uron = ['user' => $user->get()->force+$user->get()->dex+$dop_uron,
'mob' => $mob->force+$mob->dex];
if(empty($_SESSION['fight_time'])){
$fight_time = 100;
}else{
$fight_time = intval((time()-$_SESSION['fight_time']))*20;
if($fight_time > 100) $fight_time = 100;
}
if($fight_time < 40) exit(json_encode(['text'=>'Нельзя атаковать пока шкала состояния меньше 40%']));
$uron['user'] = $uron['user']*($fight_time/100);
$_SESSION['fight_time'] = time();
$hp_mob = $mobArray['hp']-$uron['user'];
$hp_user = $user->get()->hp-$uron['mob'];
if($hp_user <= 0) $hp_user = 0;
$udar_mob = $db->prepare('update `users` set `hp` = ? where `user_id` = ?');
$udar_mob -> execute([$hp_user,$user->get()->user_id]);
if(isset($magic->id)){
$del_magic = $db->prepare('DELETE FROM `bag` WHERE `id` = ?');
$del_magic -> execute([$magic->id]);
}
if($hp_user == 0){
unset($_SESSION['mob']);
$sql = $db->prepare('update `users` set `exp` = ? where `user_id` = ?');
$sql -> execute([$user->get()->exp+1,$user->get()->user_id]);
exit(json_encode(['text'=>$mob->name.' победил. Награда: <img src="/public/assets/images/xp.png"> 1']));
}
if($hp_mob < 1){
unset($_SESSION['mob']);
$sql = $db->prepare('update `users` set `exp` = ? where `user_id` = ?');
$sql -> execute([$user->get()->exp+$mob->exp,$user->get()->user_id]);
$kill = $db->prepare('insert into `kills` (`user`,`dragon`) values (?,?)');
$kill -> execute([$user->get()->user_id,$mob->id]);
unset($_SESSION['dragons']);
exit(json_encode(['text'=>'Вы убили дракона «'.$mob->name.'» Награда: <img src="/public/assets/images/xp.png"> '.$mob->exp]));
}else{
$session = ['mob' => $mob->id, 'hp' => $hp_mob];
$_SESSION['dragons'] = $session;
exit(json_encode(['text'=>'Вы нанесли '.$uron['user'].' урона дракону «'.$mob->name.'»']));
}
}