<?php
class Ach{
static private $instance = NULL;
public $data = false;
public $dataOld = false;
public $info = array();
public $all=0;
public $myAll=0;
public function __construct($data){
$this->info['remont'] = array ('name'=>'Ремонтник','text'=>'Отремонтировано аттракционов','bronze' => '100', 'silver' => '250', 'gold' => '600','platinum' => '1500', 'brilliant' => '5000');
$this->info['dohodov'] = array ('name'=>'Бухгалтер','text'=>'Собрано доходов в Лунапарке','bronze' => '1000', 'silver' => '2500', 'gold' => '10000','platinum' => '50000', 'brilliant' => '300000');
$this->info['upgradePark'] = array ('name'=>'Новатор','text'=>'Улучшено аттракционов','bronze' => '25', 'silver' => '50', 'gold' => '100','platinum' => '250', 'brilliant' => '500');
$this->info['workers'] = array ('name'=>'Наниматель','text'=>'Время найма работников в часах','bronze' => 150, 'silver' => 350, 'gold' => 1000,'platinum' => 3000, 'brilliant' => 6000);
$this->info['tehnika'] = array ('name'=>'Технолог','text'=>'Куплено техники','bronze' => '10', 'silver' => '30', 'gold' => '80','platinum' => '200', 'brilliant' => '500');
$this->info['selectTrade'] = array ('name'=>'Приемщик','text'=>'Принято заказов в торговле','bronze' => '50', 'silver' => '150', 'gold' => '450','platinum' => '1500', 'brilliant' => '5000');
$this->info['actionTrade'] = array ('name'=>'Исполнитель','text'=>'Приготовлено порций','bronze' => '150', 'silver' => '450', 'gold' => '1500','platinum' => '5000', 'brilliant' => '15000');
$this->info['finishTrade'] = array ('name'=>'Раздатчик','text'=>'Закончено заказов','bronze' => '50', 'silver' => '150', 'gold' => '450','platinum' => '1500', 'brilliant' => '5000');
$this->info['masterTrade'] = array ('name'=>'Мастер торговли','text'=>'Торговое мастерство','bronze' => '250', 'silver' => '1500', 'gold' => '4000','platinum' => '10000', 'brilliant' => '20000');
$this->info['countPresent'] = array ('name'=>'Даритель','text'=>'Сделано подарков','bronze' => '100', 'silver' => '250', 'gold' => '600','platinum' => '1500', 'brilliant' => '5000');
$this->info['countChat'] = array ('name'=>'Болтун','text'=>'Написано сообщений в чате','bronze' => '200', 'silver' => '500', 'gold' => '1500','platinum' => '3500', 'brilliant' => '10000');
$this->info['countRace'] = array ('name'=>'Гонщик','text'=>'Участий в гонках','bronze' => '20', 'silver' => '50', 'gold' => '150','platinum' => '500', 'brilliant' => '2000');
$this->info['winRace'] = array ('name'=>'Лидер','text'=>'Побед в гонках','bronze' => '5', 'silver' => '25', 'gold' => '100','platinum' => '300', 'brilliant' => '1000');
$this->info['masterRace'] = array ('name'=>'Шустряк','text'=>'Гоночное мастерство','bronze' => '500', 'silver' => '2000', 'gold' => '4000','platinum' => '8000', 'brilliant' => '15000');
$this->info['moneyToCompany'] = array ('name'=>'Вкладчик','text'=>'Вложено монет в бюджет компании','bronze' => '10000', 'silver' => '100000', 'gold' => '1000000','platinum' => '10000000', 'brilliant' => '100000000');
$this->info['donateToCompany']= array ('name'=>'Инвестор','text'=>'Вложено баксов в бюджет компании','bronze' => '100', 'silver' => '250', 'gold' => '600','platinum' => '1500', 'brilliant' => '5000');
$this->info['exchangeCount'] = array ('name'=>'Меняла','text'=>'Обменяно баксов в обменнике','bronze' => '100', 'silver' => '250', 'gold' => '600','platinum' => '1500', 'brilliant' => '5000');
$this->info['lotteryCount'] = array ('name'=>'Счастливчик','text'=>'Сыграно в лотерею','bronze' => '100', 'silver' => '250', 'gold' => '600','platinum' => '1500', 'brilliant' => '5000');
$this->info['winTurnir'] = array ('name'=>'Рыцарь','text'=>'Побед в Турнире','bronze' => '1', 'silver' => '5', 'gold' => '25','platinum' => '100', 'brilliant' => '250');
$this->info['countJobs'] = array ('name'=>'Планировщик','text'=>'Выполнено заданий','bronze' => '20', 'silver' => '50', 'gold' => '150','platinum' => '300', 'brilliant' => '700');
$this->info['director'] = array ('name'=>'Директор цирка','text'=>'Расширений шапито','bronze' => '3', 'silver' => '5', 'gold' => '10','platinum' => '20', 'brilliant' => '25');
$this->info['admin'] = array ('name'=>'Администратор цирка','text'=>'Артистов в шапито','bronze' => '3', 'silver' => '5', 'gold' => '10','platinum' => '20', 'brilliant' => '25');
$this->info['dres'] = array ('name'=>'Дресировщик','text'=>'Тренировок артистов','bronze' => '25', 'silver' => '100', 'gold' => '250','platinum' => '1000', 'brilliant' => '2500');
$this->info['photo'] = array ('name'=>'Фотогиеничный','text'=>'Фото со зрителями','bronze' => '100', 'silver' => '250', 'gold' => '1000','platinum' => '5000', 'brilliant' => '20000');
$this->info['repet'] = array ('name'=>'Репетитор','text'=>'Репетиций','bronze' => '100', 'silver' => '250', 'gold' => '1000','platinum' => '5000', 'brilliant' => '20000');
$this->info['pred'] = array ('name'=>'Циркач','text'=>'Представлений','bronze' => '100', 'silver' => '250', 'gold' => '1000','platinum' => '5000', 'brilliant' => '20000');
$this->info['love'] = array ('name'=>'Любимчик зрителей','text'=>'Получено любви','bronze' => '5000', 'silver' => '10000', 'gold' => '50000','platinum' => '250000', 'brilliant' => '1000000');
$this->dataOld = $data;
$this->data = $data;
$count_jobs = $this->data['countJobs'];
$ach =0;
foreach(Shapito::a($this->data)->dataShapito AS $key => $value){
if($value['id']>0)$ach++;
}
if(empty($this->data['dataDost'])){
$arr = array( "remont"=> 0,
"dohodov"=> 0,
"upgradePark"=> 0,
"workers"=> 0,
"tehnika"=> $this->data['countTech'],
"selectTrade"=> 0,
"actionTrade"=> 0,
"finishTrade"=> 0,
"masterTrade"=> $this->data['tradeMas'],
"countPresent"=> 0,
"countChat"=> 0,
"countRace"=> 0,
"winRace"=> 0,
"masterRace"=> $this->data['racerMas'],
"moneyToCompany"=> 0,
"donateToCompany"=> 0,
"exchangeCount"=> 0,
"lotteryCount"=> 0,
"winTurnir"=> 0,
"countJobs"=> $count_jobs
);
}else{
$arr = json_decode($this->data['dataDost'],true);
$arr['admin'] = $ach;
$arr['countJobs'] = $count_jobs;
$arr['tehnika'] = $this->data['countTech'];
$arr['masterRace'] = $this->data['racerMas'];
$arr['masterTrade'] = $this->data['tradeMas'];
}
if($this->data['id']==User::a()->user['id']){
foreach($arr as $key=>$value){
$count = achievement($this->info[$key]['bronze'],$this->info[$key]['silver'],$this->info[$key]['gold'],$this->info[$key]['platinum'],$this->info[$key]['brilliant'],$value);
$this->myAll+=$count[2];
}
User::a()->user['countDost'] = $this->myAll;
}
$this->data['dataDost'] = json_encode($arr);
$this->update();
return true;
}
public function getAch($data){
$this->dataOld = $data;
$this->data = $data;
$count_jobs = json_decode($this->data['dataJobs'],true);
$count_jobs = $count_jobs['id'] - 1;
if(empty($this->data['dataDost'])){
$arr = array( "remont"=> 0,
"dohodov"=> 0,
"upgradePark"=> 0,
"workers"=> 0,
"tehnika"=> 0,
"selectTrade"=> 0,
"actionTrade"=> 0,
"finishTrade"=> 0,
"masterTrade"=> $data['tradeMas'],
"countPresent"=> 0,
"countChat"=> 0,
"countRace"=> 0,
"winRace"=> 0,
"masterRace"=> $data['racerMas'],
"moneyToCompany"=> 0,
"donateToCompany"=> 0,
"exchangeCount"=> 0,
"lotteryCount"=> 0,
"winTurnir"=> 0,
"countJobs"=> $count_jobs
);
}else{
$arr = json_decode($this->data['dataDost'],true);
}
foreach($arr as $key=>$value){
$count = achievement($this->info[$key]['bronze'],$this->info[$key]['silver'],$this->info[$key]['gold'],$this->info[$key]['platinum'],$this->info[$key]['brilliant'],$value);
$this->all+=$count[2];
}
$this->data['dataDost'] = json_encode($arr);
$this->data['countDost'] = $this->all;
if($this->data['id']==User::a()->user['id'])$this->update();
return $arr;
}
static function a($data){
if(self::$instance==NULL)self::$instance=new Ach($data);
return self::$instance;
}
public function add($name,$count){
$data = json_decode(User::a()->user['dataDost'],true);
$data[$name]+=$count;
User::a()->user['dataDost'] = json_encode($data);
User::a()->update();
}
public function update() {
$this->data['date_last'] = $this->dataOld['date_last'];
User::a()->update($this->data,$this->dataOld,$this->data['id']);
return true;
}
}