Optimising Stat()::class.
This commit is contained in:
@@ -18,6 +18,7 @@ class InfoBox
|
||||
public function __construct(private readonly User $user, private readonly Stat $statname = new Stat())
|
||||
{
|
||||
$this->info = $user->info;
|
||||
$this->statname->getBonus();
|
||||
}
|
||||
|
||||
public function getInfoPers($uid, $i1, $sn = 0, $ivv = 0): array
|
||||
@@ -384,17 +385,16 @@ class InfoBox
|
||||
|
||||
//Действие эффекта
|
||||
$tr = '';
|
||||
$t = array_keys($this->statname->getBonusNames());
|
||||
$x = 0;
|
||||
$ed = Conversion::dataStringToArray($e['data']);
|
||||
while ($x < count($t)) {
|
||||
$n = $t[$x];
|
||||
while ($x < count($this->statname->sysBonusNames)) {
|
||||
$n = $this->statname->sysBonusNames[$x];
|
||||
if (isset($ed['add_' . $n])) {
|
||||
$z = '';
|
||||
if ($ed['add_' . $n] > 0) {
|
||||
$z = '+';
|
||||
}
|
||||
$tr .= '<br>' . $this->statname->getBonusNames()[$n] . ': ' . $z . $ed['add_' . $n];
|
||||
$tr .= '<br>' . $this->statname->bonusNames[$n] . ': ' . $z . $ed['add_' . $n];
|
||||
}
|
||||
$x++;
|
||||
}
|
||||
@@ -708,16 +708,15 @@ class InfoBox
|
||||
$lvar .= '<br>Урон: ' . $po['sv_yron_min'] . '-' . $po['sv_yron_max'];
|
||||
}
|
||||
|
||||
$t = array_keys($this->statname->getBonusNames());
|
||||
$x = 0;
|
||||
while ($x < count($t)) {
|
||||
$n = $t[$x];
|
||||
while ($x < count($this->statname->sysBonusNames)) {
|
||||
$n = $this->statname->sysBonusNames[$x];
|
||||
if (isset($po['add_' . $n])) {
|
||||
$z = '+';
|
||||
if ($po['add_' . $n] < 0) {
|
||||
$z = '';
|
||||
}
|
||||
$lvar .= '<br>' . $this->statname->getBonusNames()[$n] . ': ' . $z . $po['add_' . $n];
|
||||
$lvar .= '<br>' . $this->statname->bonusNames[$n] . ': ' . $z . $po['add_' . $n];
|
||||
}
|
||||
$x++;
|
||||
}
|
||||
|
||||
@@ -31,8 +31,9 @@ class Item
|
||||
] = $item;
|
||||
$this->durability = $iMax - $iNow;
|
||||
$stat = new Stat();
|
||||
$stat->getBonus();
|
||||
$dataArr = Conversion::dataStringToArray(strtolower($this->data));
|
||||
foreach (array_keys($stat->getBonusNames()) as $bonusName) {
|
||||
foreach ($stat->sysBonusNames as $bonusName) {
|
||||
if (!isset($dataArr["add_$bonusName"])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user