- 기존의 랜덤 코드는 deprecated 처리 - 서버 시작 시 랜덤하게 정해진 hiddenSeed를 활용 - 랜덤 생성 단위 - 월 실행 - 사령턴 실행 결과 - 커맨드 실행 결과 - 작위 보상 - 부대장 생성 - 유니크 획득 시도 - 설문 조사 - 장수 생성 - NPC국 생성, NPC 생성, NPC의 토너먼트 베팅 - 전투 - 도시 점령 - 자율 행동 선택 - 랜덤 턴 변경 - 거래장, 토너먼트 등 구 랜덤 코드를 이용하는 잔여 코드 있음
56 lines
1.6 KiB
PHP
56 lines
1.6 KiB
PHP
<?php
|
|
namespace sammo\ActionItem;
|
|
use \sammo\iAction;
|
|
use \sammo\General;
|
|
use \sammo\GeneralTrigger;
|
|
use \sammo\GeneralTriggerCaller;
|
|
use sammo\RandUtil;
|
|
|
|
class che_치료_환약 extends \sammo\BaseItem{
|
|
|
|
protected $rawName = '환약';
|
|
protected $name = '환약(치료)';
|
|
protected $info = '[군사] 턴 실행 전 부상 회복. 3회용';
|
|
protected $cost = 200;
|
|
protected $consumable = true;
|
|
protected $buyable = true;
|
|
protected $reqSecu = 0;
|
|
|
|
const REMAIN_KEY = 'remain환약';
|
|
|
|
public function getPreTurnExecuteTriggerList(General $general):?GeneralTriggerCaller{
|
|
return new GeneralTriggerCaller(
|
|
new GeneralTrigger\che_아이템치료($general, $general->getAuxVar('use_treatment')??10)
|
|
);
|
|
}
|
|
|
|
function onArbitraryAction(General $general, RandUtil $rng, string $actionType, ?string $phase = null, $aux = null): ?array
|
|
{
|
|
if($actionType != '장비매매'){
|
|
return $aux;
|
|
}
|
|
if($phase != '구매'){
|
|
return $aux;
|
|
}
|
|
|
|
$general->setAuxVar(static::REMAIN_KEY, 3);
|
|
return $aux;
|
|
}
|
|
|
|
function tryConsumeNow(General $general, string $actionType, string $command):bool{
|
|
if($actionType != 'GeneralTrigger'){
|
|
return false;
|
|
}
|
|
if($command != 'che_아이템치료'){
|
|
return false;
|
|
}
|
|
$remainCnt = $general->getAuxVar(static::REMAIN_KEY)??1;
|
|
if($remainCnt > 1){
|
|
$general->setAuxVar(static::REMAIN_KEY, $remainCnt - 1);
|
|
return false;
|
|
}
|
|
|
|
$general->setAuxVar(static::REMAIN_KEY, null);
|
|
return true;
|
|
}
|
|
} |