feat, game: 초반 '배신 수치' 1 증가, 배신 패널티 증가

- 184년 1월부터 배신수치 1 증가.
- 배신 패널티 당 15%, 최대 6회
This commit is contained in:
2022-09-21 23:12:56 +09:00
parent c89bd2f63f
commit 635f1ae077
6 changed files with 39 additions and 7 deletions
+2 -2
View File
@@ -226,8 +226,8 @@ function do추방(General $general, int $myOfficerLevel):?string{
}
else{
$betrayCnt = $general->getVar('betray');
$general->addExperience(-$general->getVar('experience')*0.1*$betrayCnt);
$general->addDedication(-$general->getVar('dedication')*0.1*$betrayCnt);
$general->addExperience(-$general->getVar('experience')*0.15*$betrayCnt);
$general->addDedication(-$general->getVar('dedication')*0.15*$betrayCnt);
$general->increaseVarWithLimit('betray', 1, null, GameConst::$maxBetrayCnt);
}
+6
View File
@@ -337,6 +337,11 @@ class Join extends \sammo\BaseAPI
//상성 랜덤
$affinity = $rng->nextRangeInt(1, 150);
$betray = 0;
if($relYear >= 4){
$betray += 1;
}
########## 회원정보 테이블에 입력값을 등록한다. ##########
$db->insert('general', [
'owner' => $userID,
@@ -365,6 +370,7 @@ class Join extends \sammo\BaseAPI
'lastrefresh' => $now,
'crewtype' => GameUnitConst::DEFAULT_CREWTYPE,
'makelimit' => 0,
'betray' => $betray,
'age' => $age,
'startage' => $age,
'personal' => $character,
@@ -144,9 +144,9 @@ class che_등용수락 extends Command\GeneralCommand{
}
// 재야가 아니면 명성N*10% 공헌N*10%감소
$general->setVar('experience', $general->getVar('experience') * (1 - 0.1 * $general->getVar('betray')));
$general->setVar('experience', $general->getVar('experience') * (1 - 0.15 * $general->getVar('betray')));
$general->addExperience(0, false);
$general->setVar('dedication', $general->getVar('dedication') * (1 - 0.1 * $general->getVar('betray')));
$general->setVar('dedication', $general->getVar('dedication') * (1 - 0.15 * $general->getVar('betray')));
$general->addDedication(0, false);
$general->increaseVarWithLimit('betray', 1, null, GameConst::$maxBetrayCnt);
}
+2 -2
View File
@@ -73,9 +73,9 @@ class che_하야 extends Command\GeneralCommand{
$logger->pushGeneralActionLog("<D><b>{$nationName}</b></>에서 하야했습니다. <1>$date</>");
$logger->pushGeneralHistoryLog("<D><b>{$nationName}</b></>에서 하야");
$logger->pushGlobalActionLog("<Y>{$generalName}</>{$josaYi} <D><b>{$nationName}</b></>에서 <R>하야</>했습니다.");
$general->setVar('experience', $general->getVar('experience') * (1 - 0.1 * $general->getVar('betray')));
$general->setVar('experience', $general->getVar('experience') * (1 - 0.15 * $general->getVar('betray')));
$general->addExperience(0, false);
$general->setVar('dedication', $general->getVar('dedication') * (1 - 0.1 * $general->getVar('betray')));
$general->setVar('dedication', $general->getVar('dedication') * (1 - 0.15 * $general->getVar('betray')));
$general->addDedication(0, false);
$general->increaseVarWithLimit('betray', 1, null, GameConst::$maxBetrayCnt);
$general->setVar('permission', 'normal');
@@ -0,0 +1,20 @@
<?php
namespace sammo\Event\Action;
use sammo\DB;
class AddGlobalBetray extends \sammo\Event\Action
{
public function __construct(private int $cnt = 1, private int $ifMax = 0)
{
}
public function run(array $env)
{
$db = DB::db();
$db->update('general', [
'betray' => $db->sqleval('betray + %i', $this->cnt),
], 'betray <= %i', $this->ifMax);
}
}
+7 -1
View File
@@ -79,7 +79,7 @@ class GameConstBase
/** @var int 최대 기술 레벨 */
public static $maxTechLevel = 12;
/** @var int 최대 하야 패널티 수 */
public static $maxBetrayCnt = 9;
public static $maxBetrayCnt = 6;
/** @var int 최소 인구 증가량 */
public static $basePopIncreaseAmount = 5000;
@@ -431,5 +431,11 @@ class GameConstBase
["NoticeToHistoryLog", "<S>출병 제한이 풀렸습니다.</>", ActionLogger::EVENT_YEAR_MONTH],
["DeleteEvent"]
],
[
"month", 2000,
["DateRelative", "==", 4, 1],
["AddGlobalBetray"],
["DeleteEvent"]
],
];
}