object = $unit; $this->raiseType = $raiseType; $this->ratio = $ratio; $this->woundMin = $woundMin; $this->woundMax = $woundMax; $this->addAtmos = $addAtmos; } 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; } if($self->hasActivatedSkill('저격불가')){ return true; } if(!Util::randBool($this->ratio)){ return true; } $self->activateSkill('저격'); $selfEnv['woundMin'] = $this->woundMin; $selfEnv['woundMax'] = $this->woundMax; $selfEnv['addAtmos'] = $this->addAtmos; return true; } }