info['id'], $id)); if (!$this->isSmeltable($item)) { return $this->error; } User\ItemsModel::delete($id); return 'Удачно растворен предмет "' . $item->name . '"!' . self::addReputation(1); } private function isSmeltable(KnowledgeTempleItem $item): bool { $reputation = User::start()->rep['rep1']; if (!$item->exists()) { $this->error = 'Предмет не найден.'; } elseif ($item->level < 4 && $item->id != 1035) { $this->error = 'Предмет должен быть 4-го и выше уровня'; } elseif ( !in_array($item->type, [1, 3, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 18, 19, 20, 21, 22]) && $item->id != 1035 ) { $this->error = 'Хрен вам, а не руны! Куда кидаешь предмет? Не подходит он! Приходи как будет что-то стоющее!'; } elseif ($item->level >= 7 && $reputation < 0) { $this->error = 'Для растворения предметов 7-го и старше уровня требуется знак Храма Знаний первого круга'; } elseif ($item->level >= 9 && $reputation < 1000) { $this->error = 'Для растворения предметов 9-го и старше уровня требуется знак Храма Знаний второго круга'; } elseif ($item->level >= 10 && $reputation < 10000) { $this->error = 'Для растворения предметов 10-го и старше уровня требуется знак Храма Знаний третьего круга'; } return empty($this->error); } public static function addReputation(int $value): string { if ($value < 1) { trigger_error(self::class . '::addReputation - $value can not be below zero.'); } Db::sql('update rep set rep1 = rep1 + ? where id = ?', [$value, User::start()->info['id']]); User::start()->rep['rep1'] += $value; return "Получено репутации: +$value ед."; } }