Files
core/hwe/sammo/BaseStatItem.php
Hide_D 43997b9117 fix: phan 메시지에 따라 수정
- array에 +=를 phan 알아듣기 쉽게 array_merge로
- Util::array_get이 더 이상 필요없으므로 null coalescing
- array로 tuple류를 반환하는 함수에 index를 포함하도록 변경
  - php intelephense에게는 현재 무효
- getPost 일부 값에 int 지정
- 아이템에 id property를 없앴으므로 관련 코드 제거
- enum은 array key로 사용할 수 없으므로 \Ds\Map으로 변경
- KakaoKey PhanRedefineClass 에러 우회
2022-05-09 01:25:12 +09:00

40 lines
1.2 KiB
PHP

<?php
namespace sammo;
use \sammo\iAction;
use \sammo\General;
class BaseStatItem extends BaseItem{
protected $statNick = '통솔';
protected $statType = 'leadership';
protected $statValue = 1;
protected $cost = 1000;
protected $rawName = '노기';
protected $consumable = false;
protected $buyable = true;
protected const ITEM_TYPE = [
'명마'=>['통솔', 'leadership'],
'무기'=>['무력', 'strength'],
'서적'=>['지력', 'intel']
];
public function __construct(){
$nameTokens = explode('_', static::class);
$tokenLen = count($nameTokens);
$this->statValue = (int)$nameTokens[$tokenLen-2];
assert(is_numeric($this->statValue));
$this->rawName = $nameTokens[$tokenLen-1];
[$this->statNick, $this->statType] = static::ITEM_TYPE[$nameTokens[$tokenLen-3]];
$this->name = sprintf('%s(+%d)',$this->rawName, $this->statValue);
$this->info = sprintf('%s +%d', $this->statNick, $this->statValue);
}
public function onCalcStat(General $general, string $statName, $value, $aux=null){
if($statName === $this->statType){
return $value + $this->statValue;
}
return $value;
}
}