本文整理汇总了PHP中SR_Player::getEffects方法的典型用法代码示例。如果您正苦于以下问题:PHP SR_Player::getEffects方法的具体用法?PHP SR_Player::getEffects怎么用?PHP SR_Player::getEffects使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SR_Player
的用法示例。
在下文中一共展示了SR_Player::getEffects方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getEffects
public static function getEffects(SR_Player $player)
{
// $b = chr(2);
$e = $player->getEffects();
if (count($e) === 0) {
return Shadowrun4::lang('none');
}
$sorted = array();
foreach ($e as $effect) {
$effect instanceof SR_Effect;
$t = $effect->getTimeEnd();
$raw = $effect->getModifiersRaw();
foreach ($raw as $k => $v) {
if (isset($sorted[$k])) {
$sorted[$k][0] += $v;
if ($t < $sorted[$k][1]) {
$sorted[$k][1] = $t;
}
} else {
$sorted[$k] = array($v, $t);
}
}
}
$t2 = Shadowrun4::getTime();
$format = Shadowrun4::lang('fmt_effect');
$back = '';
foreach ($sorted as $k => $data) {
list($v, $t) = $data;
$back .= sprintf($format, $k, $v, GWF_Time::humanDuration($t - $t2));
// $back .= sprintf(', %s:%s(%s)', $b.$k.$b, $v, GWF_Time::humanDuration($t-$t2));
}
return ltrim($back, ',; ');
}
示例2: lowerSpellIncrement
public function lowerSpellIncrement(SR_Player $target, $by, $field)
{
# Count number of effects with same field
$count = 1;
foreach ($target->getEffects() as $effect) {
$effect instanceof SR_Effect;
foreach ($effect->getModifiersRaw() as $k => $v) {
if ($k === $field) {
$count++;
}
}
}
return round($by * 1 / $count, 2);
}