Files
core/hwe/sammo/Event/Action.php
Hide_D d17b2518df 전역 하드코드 이벤트를 동적 변경 영역으로 이동 (#230)
기존에 작성해두었던 EventHandler 시스템으로 하드코드 이벤트 이동
- 매달
  - 보급선 설정
  - 전쟁 단기 수입 설정
  - 부대장 부여
- 1월
  - 유산 포인트 계산
  - 도시 인구 변화
  - 수입
  - 관직 제한 해제
  - 재난
  - 상인
  - 새해 알림
  - 특기 부여
- 4월
  - 관직 제한 해제
  - 재난
- 7월
  - 유산 포인트 계산
  - 도시 인구 변화
  - 수입
  - 관직 제한 해제
  - 재난
  - 상인
- 10월
  - 관직 제한 해제
  - 재난
- 천통 시
  - 유산 포인트 계산

Reviewed-on: https://storage.hided.net/gitea/devsam/core/pulls/230
2023-03-12 17:14:49 +09:00

27 lines
941 B
PHP

<?php
namespace sammo\Event;
abstract class Action{
//public abstract function __construct(...$args);
/*
TODO: event trigger를 인자로 보낼 수 있으면 좋을 것
예시로, 도시 점령 시, 점령한 도시의 정보를 인자로 보낼 수 있으면 좋을 것
/*/
public abstract function run(array $env);
public static function build($actionArgs):Action{
if(!is_array($actionArgs)){
throw new \InvalidArgumentException('action을 입력해야 합니다.');
}
$className = __NAMESPACE__.'\\Action\\'.$actionArgs[0];
if(!class_exists($className)){
throw new \InvalidArgumentException('존재하지 않는 Action입니다 :'.$actionArgs[0]);
}
$args = array_slice($actionArgs, 1);
/** @var \ReflectionClass<Action> */
$ref = new \ReflectionClass($className);
return $ref->newInstanceArgs($args);
}
}