Optimising Stat()::class.

This commit is contained in:
2024-01-16 09:13:15 +02:00
parent 68ef35d14a
commit 7dc27047b6
9 changed files with 43 additions and 65 deletions
+10 -15
View File
@@ -14,16 +14,17 @@ class Stats
private User $u;
/** Список разрешённых для бонусов системных названий статов
* @var array
* @var Stat
*/
private array $sysNames;
private Stat $sysNames;
private array $statsKeys = [];
public function __construct(User $user)
{
$this->u = $user;
$this->sysNames = (new Stat())->getBonusNames();
$this->sysNames = new Stat();
$this->sysNames->getBonus();
}
@@ -137,7 +138,8 @@ class Stats
}
// Как? Нахуя 4 переменные разные для одного и того же?
$st = array_fill_keys(array_keys($this->sysNames), 0);
$st = array_fill_keys($this->sysNames->sysBonusNames, 0);
$sti = $st;
$s_v = $st;
$s_vi = $st;
@@ -310,7 +312,7 @@ class Stats
}
$sti = Conversion::dataStringToArray($com);
foreach ($this->sysNames as $stat) {
foreach ($this->sysNames->sysBonusNames as $stat) {
if (!isset($sti[$stat])) {
continue;
}
@@ -596,7 +598,7 @@ class Stats
//Добавляем статы от данного предмета
if (!isset($data['restart_stats'])) {
foreach ($this->sysNames as $stat) {
foreach ($this->sysNames->sysBonusNames as $stat) {
if (!isset($data['add_' . $stat])) {
continue;
}
@@ -605,13 +607,6 @@ class Stats
} else {
$reitm[] = $data;
}
foreach ($this->sysNames as $stat) {
if (!isset($data['sv_' . $stat])) {
continue;
}
$s_v[$stat] += (int)$data['sv_' . $stat];
}
}
//Сохраненные хар-ки и умения
@@ -662,7 +657,7 @@ class Stats
foreach ($efs as $data) {
$sts = Conversion::dataStringToArray($data);
foreach ($sts as $paramName => $value) {
if (!in_array($paramName, $this->sysNames, true)) { // есть ли параметр в разрешенных?
if (!in_array($paramName, $this->sysNames->sysBonusNames, true)) { // есть ли параметр в разрешенных?
continue;
}
$st[$paramName] += $value;
@@ -672,7 +667,7 @@ class Stats
private function addValuesToAllArrays(array $sts, array &$st, array &$sti, array &$s_v, array &$s_vi): void
{
foreach ($this->sysNames as $stat) {
foreach ($this->sysNames->sysBonusNames as $stat) {
if (!isset($sts['add_' . $stat])) {
continue;
}