전특 대 개편
This commit is contained in:
@@ -1,41 +1,38 @@
|
||||
<?php
|
||||
namespace sammo\WarUnitTrigger;
|
||||
use sammo\BaseWarUnitTrigger;
|
||||
use sammo\WarUnitGeneral;
|
||||
use sammo\WarUnitCity;
|
||||
use sammo\WarUnit;
|
||||
use sammo\GameUnitDetail;
|
||||
use sammo\ObjectTrigger;
|
||||
use sammo\Util;
|
||||
|
||||
class che_격노시도 extends BaseWarUnitTrigger{
|
||||
protected $priority = ObjectTrigger::PRIORITY_POST + 300;
|
||||
|
||||
protected function actionWar(WarUnit $self, WarUnit $oppose, array &$selfEnv, array &$opposeEnv):bool{
|
||||
if(!$oppose->hasActivatedSkill('필살') && !$oppose->hasActivatedSkill('회피')){
|
||||
return true;
|
||||
}
|
||||
if($self->hasActivatedSkill('격노불가')){
|
||||
return true;
|
||||
}
|
||||
|
||||
if($self->isAttacker()){
|
||||
if(Util::randBool(1/3)){
|
||||
$self->activateSkill('진노', '격노');
|
||||
$oppose->deactivateSkill('회피');
|
||||
}
|
||||
else if(Util::randBool(1/4)){
|
||||
$self->activateSkill('격노');
|
||||
$oppose->deactivateSkill('회피');
|
||||
}
|
||||
}
|
||||
else{
|
||||
if(Util::randBool(1/2)){
|
||||
$self->activateSkill('격노');
|
||||
$oppose->deactivateSkill('회피');
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
<?php
|
||||
namespace sammo\WarUnitTrigger;
|
||||
use sammo\BaseWarUnitTrigger;
|
||||
use sammo\WarUnitGeneral;
|
||||
use sammo\WarUnitCity;
|
||||
use sammo\WarUnit;
|
||||
use sammo\GameUnitDetail;
|
||||
use sammo\ObjectTrigger;
|
||||
use sammo\Util;
|
||||
|
||||
class che_격노시도 extends BaseWarUnitTrigger{
|
||||
protected $priority = ObjectTrigger::PRIORITY_POST + 300;
|
||||
|
||||
protected function actionWar(WarUnit $self, WarUnit $oppose, array &$selfEnv, array &$opposeEnv):bool{
|
||||
if(!$oppose->hasActivatedSkill('필살') && !$oppose->hasActivatedSkill('회피')){
|
||||
return true;
|
||||
}
|
||||
if($self->hasActivatedSkill('격노불가')){
|
||||
return true;
|
||||
}
|
||||
|
||||
if($oppose->hasActivatedSkill('필살')){
|
||||
$self->activateSkill('격노');
|
||||
$oppose->deactivateSkill('회피');
|
||||
if($self->isAttacker() && Util::randBool(1/3)){
|
||||
$self->activateSkill('진노');
|
||||
}
|
||||
}
|
||||
else if(Util::randBool(1/4)){
|
||||
$self->activateSkill('격노');
|
||||
$oppose->deactivateSkill('회피');
|
||||
if($self->isAttacker() && Util::randBool(1/3)){
|
||||
$self->activateSkill('진노');
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
namespace sammo\WarUnitTrigger;
|
||||
use sammo\BaseWarUnitTrigger;
|
||||
use sammo\WarUnitGeneral;
|
||||
use sammo\WarUnitCity;
|
||||
use sammo\WarUnit;
|
||||
use sammo\GameUnitDetail;
|
||||
use sammo\Util;
|
||||
use sammo\ObjectTrigger;
|
||||
use sammo\ActionLogger;
|
||||
|
||||
class che_돌격지속 extends BaseWarUnitTrigger{
|
||||
protected $priority = ObjectTrigger::PRIORITY_POST + 900;
|
||||
|
||||
protected function actionWar(WarUnit $self, WarUnit $oppose, array &$selfEnv, array &$opposeEnv):bool{
|
||||
/** @var WarUnitGeneral $self */
|
||||
if($oppose instanceof WarUnitCity){
|
||||
return true;
|
||||
}
|
||||
if(!$self->isAttacker()){
|
||||
return true;
|
||||
}
|
||||
if($self->getPhase() < $self->getMaxPhase() - 1){
|
||||
return true;
|
||||
}
|
||||
$attackCoef = $self->getCrewType()->getAttackCoef($oppose->getCrewType());
|
||||
if($attackCoef < 1){
|
||||
return true;
|
||||
}
|
||||
$self->addBonusPhase(1);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1,26 +1,27 @@
|
||||
<?php
|
||||
namespace sammo\WarUnitTrigger;
|
||||
use sammo\BaseWarUnitTrigger;
|
||||
use sammo\WarUnitGeneral;
|
||||
use sammo\WarUnitCity;
|
||||
use sammo\WarUnit;
|
||||
use sammo\GameUnitDetail;
|
||||
use sammo\Util;
|
||||
use sammo\ObjectTrigger;
|
||||
use sammo\ActionLogger;
|
||||
|
||||
class che_위압발동 extends BaseWarUnitTrigger{
|
||||
protected $priority = ObjectTrigger::PRIORITY_POST + 700;
|
||||
|
||||
protected function actionWar(WarUnit $self, WarUnit $oppose, array &$selfEnv, array &$opposeEnv):bool{
|
||||
if(!$self->hasActivatedSkill('위압')){
|
||||
return true;
|
||||
}
|
||||
|
||||
$oppose->getLogger()->pushGeneralBattleDetailLog('상대에게 <R>위압</>받았다!</>', ActionLogger::PLAIN);
|
||||
$self->getLogger()->pushGeneralBattleDetailLog('상대에게 <C>위압</>을 줬다!</>', ActionLogger::PLAIN);
|
||||
$oppose->setWarPowerMultiply(0);
|
||||
|
||||
return true;
|
||||
}
|
||||
<?php
|
||||
namespace sammo\WarUnitTrigger;
|
||||
use sammo\BaseWarUnitTrigger;
|
||||
use sammo\WarUnitGeneral;
|
||||
use sammo\WarUnitCity;
|
||||
use sammo\WarUnit;
|
||||
use sammo\GameUnitDetail;
|
||||
use sammo\Util;
|
||||
use sammo\ObjectTrigger;
|
||||
use sammo\ActionLogger;
|
||||
|
||||
class che_위압발동 extends BaseWarUnitTrigger{
|
||||
protected $priority = ObjectTrigger::PRIORITY_POST + 700;
|
||||
|
||||
protected function actionWar(WarUnit $self, WarUnit $oppose, array &$selfEnv, array &$opposeEnv):bool{
|
||||
if(!$self->hasActivatedSkill('위압')){
|
||||
return true;
|
||||
}
|
||||
|
||||
$oppose->getLogger()->pushGeneralBattleDetailLog('상대에게 <R>위압</>받았다!</>', ActionLogger::PLAIN);
|
||||
$self->getLogger()->pushGeneralBattleDetailLog('상대에게 <C>위압</>을 줬다!</>', ActionLogger::PLAIN);
|
||||
$oppose->setWarPowerMultiply(0);
|
||||
$oppose->increaseVarWithLimit('atmos', -5, 40);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1,38 +1,30 @@
|
||||
<?php
|
||||
namespace sammo\WarUnitTrigger;
|
||||
use sammo\BaseWarUnitTrigger;
|
||||
use sammo\WarUnitGeneral;
|
||||
use sammo\WarUnitCity;
|
||||
use sammo\WarUnit;
|
||||
use sammo\GameUnitDetail;
|
||||
use sammo\ObjectTrigger;
|
||||
|
||||
class che_위압시도 extends BaseWarUnitTrigger{
|
||||
protected $priority = ObjectTrigger::PRIORITY_BEGIN + 100;
|
||||
|
||||
protected $woundMin;
|
||||
protected $woundMax;
|
||||
protected $ratio;
|
||||
|
||||
protected function actionWar(WarUnit $self, WarUnit $oppose, array &$selfEnv, array &$opposeEnv):bool{
|
||||
assert($self instanceof WarUnitGeneral, 'General만 발동 가능');
|
||||
if($self->getPhase() != 0){
|
||||
return true;
|
||||
}
|
||||
if($self->getHP() < 1000){
|
||||
return true;
|
||||
}
|
||||
if($self->getComputedAtmos() < 90){
|
||||
return true;
|
||||
}
|
||||
if($self->getComputedTrain() < 90){
|
||||
return true;
|
||||
}
|
||||
if($self->hasActivatedSkill('위압불가')){
|
||||
return true;
|
||||
}
|
||||
|
||||
$self->activateSkill('위압');
|
||||
return true;
|
||||
}
|
||||
<?php
|
||||
namespace sammo\WarUnitTrigger;
|
||||
use sammo\BaseWarUnitTrigger;
|
||||
use sammo\WarUnitGeneral;
|
||||
use sammo\WarUnitCity;
|
||||
use sammo\WarUnit;
|
||||
use sammo\GameUnitDetail;
|
||||
use sammo\ObjectTrigger;
|
||||
|
||||
class che_위압시도 extends BaseWarUnitTrigger{
|
||||
protected $priority = ObjectTrigger::PRIORITY_BEGIN + 100;
|
||||
|
||||
protected $woundMin;
|
||||
protected $woundMax;
|
||||
protected $ratio;
|
||||
|
||||
protected function actionWar(WarUnit $self, WarUnit $oppose, array &$selfEnv, array &$opposeEnv):bool{
|
||||
assert($self instanceof WarUnitGeneral, 'General만 발동 가능');
|
||||
if($self->getPhase() !== 0 && $oppose->getPhase() !== 0){
|
||||
return true;
|
||||
}
|
||||
if($self->hasActivatedSkill('위압불가')){
|
||||
return true;
|
||||
}
|
||||
|
||||
$self->activateSkill('위압');
|
||||
$oppose->activateSkill('회피불가', '필살불가', '계략불가');
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1,34 +1,35 @@
|
||||
<?php
|
||||
namespace sammo\WarUnitTrigger;
|
||||
use sammo\BaseWarUnitTrigger;
|
||||
use sammo\WarUnitGeneral;
|
||||
use sammo\WarUnitCity;
|
||||
use sammo\WarUnit;
|
||||
use sammo\GameUnitDetail;
|
||||
use sammo\Util;
|
||||
use sammo\ObjectTrigger;
|
||||
use sammo\ActionLogger;
|
||||
|
||||
class che_전투치료발동 extends BaseWarUnitTrigger{
|
||||
protected $priority = ObjectTrigger::PRIORITY_POST + 300;
|
||||
|
||||
protected function actionWar(WarUnit $self, WarUnit $oppose, array &$selfEnv, array &$opposeEnv):bool{
|
||||
if(!$self->hasActivatedSkill('치료')){
|
||||
return true;
|
||||
}
|
||||
|
||||
if($selfEnv['치료발동']??false){
|
||||
return true;
|
||||
}
|
||||
$selfEnv['치료발동'] = true;
|
||||
|
||||
$oppose->getLogger()->pushGeneralBattleDetailLog("상대가 <C>치료</>했다!", ActionLogger::PLAIN);
|
||||
$self->getLogger()->pushGeneralBattleDetailLog("<C>치료</>했다!", ActionLogger::PLAIN);
|
||||
|
||||
$oppose->multiplyWarPowerMultiply(1/1.5);
|
||||
|
||||
$this->processConsumableItem();
|
||||
|
||||
return true;
|
||||
}
|
||||
<?php
|
||||
namespace sammo\WarUnitTrigger;
|
||||
use sammo\BaseWarUnitTrigger;
|
||||
use sammo\WarUnitGeneral;
|
||||
use sammo\WarUnitCity;
|
||||
use sammo\WarUnit;
|
||||
use sammo\GameUnitDetail;
|
||||
use sammo\Util;
|
||||
use sammo\ObjectTrigger;
|
||||
use sammo\ActionLogger;
|
||||
|
||||
class che_전투치료발동 extends BaseWarUnitTrigger{
|
||||
protected $priority = ObjectTrigger::PRIORITY_POST + 300;
|
||||
|
||||
protected function actionWar(WarUnit $self, WarUnit $oppose, array &$selfEnv, array &$opposeEnv):bool{
|
||||
if(!$self->hasActivatedSkill('치료')){
|
||||
return true;
|
||||
}
|
||||
|
||||
if($selfEnv['치료발동']??false){
|
||||
return true;
|
||||
}
|
||||
$selfEnv['치료발동'] = true;
|
||||
|
||||
$oppose->getLogger()->pushGeneralBattleDetailLog("상대가 <C>치료</>했다!", ActionLogger::PLAIN);
|
||||
$self->getLogger()->pushGeneralBattleDetailLog("<C>치료</>했다!", ActionLogger::PLAIN);
|
||||
|
||||
$oppose->multiplyWarPowerMultiply(0.5);
|
||||
$self->getGeneral()->setVar('injury', 0);
|
||||
|
||||
$this->processConsumableItem();
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1,31 +1,31 @@
|
||||
<?php
|
||||
namespace sammo\WarUnitTrigger;
|
||||
use sammo\BaseWarUnitTrigger;
|
||||
use sammo\WarUnitGeneral;
|
||||
use sammo\WarUnitCity;
|
||||
use sammo\WarUnit;
|
||||
use sammo\GameUnitDetail;
|
||||
use sammo\Util;
|
||||
use sammo\ObjectTrigger;
|
||||
|
||||
class che_전투치료시도 extends BaseWarUnitTrigger{
|
||||
protected $priority = ObjectTrigger::PRIORITY_PRE + 300;
|
||||
|
||||
protected function actionWar(WarUnit $self, WarUnit $oppose, array &$selfEnv, array &$opposeEnv):bool{
|
||||
assert($self instanceof WarUnitGeneral, 'General만 발동 가능');
|
||||
if($self->hasActivatedSkill('치료')){
|
||||
return true;
|
||||
}
|
||||
if($self->hasActivatedSkill('치료불가')){
|
||||
return true;
|
||||
}
|
||||
if(!Util::randBool(1/5)){
|
||||
return true;
|
||||
}
|
||||
|
||||
$self->activateSkill('치료');
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
<?php
|
||||
namespace sammo\WarUnitTrigger;
|
||||
use sammo\BaseWarUnitTrigger;
|
||||
use sammo\WarUnitGeneral;
|
||||
use sammo\WarUnitCity;
|
||||
use sammo\WarUnit;
|
||||
use sammo\GameUnitDetail;
|
||||
use sammo\Util;
|
||||
use sammo\ObjectTrigger;
|
||||
|
||||
class che_전투치료시도 extends BaseWarUnitTrigger{
|
||||
protected $priority = ObjectTrigger::PRIORITY_PRE + 300;
|
||||
|
||||
protected function actionWar(WarUnit $self, WarUnit $oppose, array &$selfEnv, array &$opposeEnv):bool{
|
||||
assert($self instanceof WarUnitGeneral, 'General만 발동 가능');
|
||||
if($self->hasActivatedSkill('치료')){
|
||||
return true;
|
||||
}
|
||||
if($self->hasActivatedSkill('치료불가')){
|
||||
return true;
|
||||
}
|
||||
if(!Util::randBool(0.4)){
|
||||
return true;
|
||||
}
|
||||
|
||||
$self->activateSkill('치료');
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user