From 31c7bf53483c878c34a65cdadb171e74caebb97b Mon Sep 17 00:00:00 2001 From: hide_d Date: Wed, 12 Sep 2018 01:16:17 +0900 Subject: [PATCH 01/62] =?UTF-8?q?=EB=A9=94=EB=89=B4=20=EC=95=84=EC=9D=B4?= =?UTF-8?q?=ED=85=9C=20=EA=B8=B8=EC=9D=B4=20=EB=B2=84=EA=B7=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/sammo/WebUtil.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sammo/WebUtil.php b/src/sammo/WebUtil.php index d403061e..9c2b9fab 100644 --- a/src/sammo/WebUtil.php +++ b/src/sammo/WebUtil.php @@ -141,7 +141,7 @@ class WebUtil $result = []; foreach($json as $menuItem){ - if (count($path) == 2) { + if (count($menuItem) == 2) { [$url, $title] = $menuItem; $targetAttr = ''; } From c160c5a5555ca12f1b3922491a586a067170efab Mon Sep 17 00:00:00 2001 From: hide_d Date: Wed, 12 Sep 2018 01:46:16 +0900 Subject: [PATCH 02/62] =?UTF-8?q?=EC=B2=9C=ED=86=B5=EC=8B=9C=20=EB=AA=A8?= =?UTF-8?q?=EB=93=A0=20=EA=B5=AD=EA=B0=80=20=EB=93=B1=EC=9E=AC=20=EC=9E=A5?= =?UTF-8?q?=EC=88=98=EC=9D=98=20=EC=9D=B4=EB=A6=84=EC=9D=B4=209=EA=B8=80?= =?UTF-8?q?=EC=9E=90=20=EC=9D=B8=20=EA=B2=BD=EC=9A=B0=20=EB=B0=9C=EC=83=9D?= =?UTF-8?q?=ED=95=98=EB=8A=94=20=EB=B2=84=EA=B7=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hwe/sql/schema.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hwe/sql/schema.sql b/hwe/sql/schema.sql index c63f32ff..6aef4421 100644 --- a/hwe/sql/schema.sql +++ b/hwe/sql/schema.sql @@ -627,8 +627,8 @@ CREATE TABLE IF NOT EXISTS `emperior` ( `l6pic` CHAR(32) NULL DEFAULT '', `l5name` CHAR(64) NULL DEFAULT '', `l5pic` CHAR(32) NULL DEFAULT '', - `tiger` CHAR(64) NULL DEFAULT '', - `eagle` CHAR(64) NULL DEFAULT '', + `tiger` VARCHAR(128) NULL DEFAULT '', + `eagle` VARCHAR(128) NULL DEFAULT '', `gen` TEXT NULL DEFAULT '', `history` MEDIUMTEXT NULL DEFAULT '', `aux` MEDIUMTEXT NULL DEFAULT '' COMMENT 'json', From 78f8b562034a503300d30bb7cc1d27007be9ccc4 Mon Sep 17 00:00:00 2001 From: hide_d Date: Sun, 16 Sep 2018 17:58:56 +0900 Subject: [PATCH 03/62] =?UTF-8?q?reset=5Ftoken=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EB=B6=88=ED=95=84=EC=9A=94=ED=95=9C=20=EB=AA=85=EB=A0=B9=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oauth_kakao/j_reset_token.php | 1 - 1 file changed, 1 deletion(-) diff --git a/oauth_kakao/j_reset_token.php b/oauth_kakao/j_reset_token.php index 92f6c143..2f8c8faa 100644 --- a/oauth_kakao/j_reset_token.php +++ b/oauth_kakao/j_reset_token.php @@ -31,7 +31,6 @@ if($expectedDate <= $tokenValidUntil){ ]); } -unset($oauthInfo['tokenValidUntil']); RootDB::db()->update('member', [ 'token_valid_until'=> null ], 'no=%i', $userID); From 87171b4246c6f90d212e44fd840cd233c17d0a8a Mon Sep 17 00:00:00 2001 From: hide_d Date: Tue, 18 Sep 2018 00:29:44 +0900 Subject: [PATCH 04/62] =?UTF-8?q?=EC=A7=91=ED=95=A9=EC=9E=A5=20=ED=85=8C?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hwe/b_myBossInfo.php | 5 ++++- hwe/c_myBossInfo.php | 6 ++++++ hwe/func_gamerule.php | 34 ++++++++++++++++++++++++++++++++++ hwe/func_npc.php | 24 ++++++++++++++++++++++++ hwe/sammo/Scenario/NPC.php | 17 ++++++++++++++++- src/sammo/StringUtil.php | 2 +- 6 files changed, 85 insertions(+), 3 deletions(-) diff --git a/hwe/b_myBossInfo.php b/hwe/b_myBossInfo.php index da998868..95ff3730 100644 --- a/hwe/b_myBossInfo.php +++ b/hwe/b_myBossInfo.php @@ -150,12 +150,15 @@ if($meLevel >= 5 && $nation["l{$meLevel}set"] == 0) { echo " ' + + ''; + + var footer = ''; + + this.$dialog = ui.dialog({ + title: lang.imageFlip.edit, + body: body, + footer: footer + }).render().appendTo($container); + }; + + this.destroy = function () { + ui.hideDialog(this.$dialog); + this.$dialog.remove(); + }; + + this.bindEnterKey = function ($input, $btn) { + $input.on('keypress', function (event) { + if (event.keyCode === 13) { + $btn.trigger('click'); + } + }); + }; + + this.show = function () { + var $img = $($editable.data('target')); + console.log($img); + var imgInfo = { + imgDom: $img, + flip: $img.data('flip'), + }; + this.showLinkDialog(imgInfo).then(function (imgInfo) { + ui.hideDialog(self.$dialog); + var $img = imgInfo.imgDom; + + console.log(imgInfo.flip); + if (imgInfo.flip) { + $img.attr('data-flip', imgInfo.flip); + } + else { + $img.removeData('flip'); + } + + $note.val(context.invoke('code')); + $note.change(); + }); + }; + + this.showLinkDialog = function (imgInfo) { + return $.Deferred(function (deferred) { + var $imageFlip = self.$dialog.find('.note-image-flip-text'); + var $editBtn = self.$dialog.find('.note-image-flip-btn'); + + ui.onDialogShown(self.$dialog, function () { + context.triggerEvent('dialog.shown'); + + $editBtn.click(function (event) { + event.preventDefault(); + deferred.resolve({ + imgDom: imgInfo.imgDom, + flip: $imageFlip.val(), + }); + }); + + $imageFlip.val(imgInfo.flip).trigger('focus'); + self.bindEnterKey($imageFlip, $editBtn); + + }); + + ui.onDialogHidden(self.$dialog, function () { + $editBtn.off('click'); + + if (deferred.state() === 'pending') { + deferred.reject(); + } + }); + + ui.showDialog(self.$dialog); + }); + }; + } + }); +})); \ No newline at end of file diff --git a/hwe/b_dipcenter.php b/hwe/b_dipcenter.php index db19f0d4..8a53b62b 100644 --- a/hwe/b_dipcenter.php +++ b/hwe/b_dipcenter.php @@ -55,6 +55,7 @@ var editable = =5?'true':'false')?>; + diff --git a/hwe/js/dipcenter.js b/hwe/js/dipcenter.js index f225e4e9..ebc8f30c 100644 --- a/hwe/js/dipcenter.js +++ b/hwe/js/dipcenter.js @@ -37,6 +37,14 @@ jQuery(function($){ ['para', ['ul', 'ol', 'paragraph']], ['height', ['height', 'codeview']] ], + popover: { + image: [ + ['imagesize', ['imageSize100', 'imageSize50', 'imageSize25']], + ['float', ['floatLeft', 'floatRight', 'floatNone']], + ['remove', ['removeMedia']], + ['custom', ['imageFlip']], + ], + }, fontNames: ['맑은 고딕', 'Nanum Gothic', 'Nanum Myeongjo', 'Nanum Pen Script', '굴림', '굴림체', '바탕', '바탕체', '궁서', '궁서체'], fontSizes: ['8', '9', '10', '11', '12', '14', '16', '20', '24', '28', '32', '36', '40', '46', '52', '60'], callbacks: { diff --git a/src/sammo/WebUtil.php b/src/sammo/WebUtil.php index 8ec87853..c4798b78 100644 --- a/src/sammo/WebUtil.php +++ b/src/sammo/WebUtil.php @@ -132,6 +132,8 @@ class WebUtil } $config = \HTMLPurifier_HTML5Config::createDefault(); + $def = $config->getHTMLDefinition(); + $def->info_global_attr['data-flip'] = new \HTMLPurifier_AttrDef_Text; $purifier = new \HTMLPurifier($config); return $purifier->purify($text); } From 422b3be0c55d554c20133c8e92dac3c25a58407e Mon Sep 17 00:00:00 2001 From: hide_d Date: Mon, 24 Sep 2018 04:17:54 +0900 Subject: [PATCH 55/62] =?UTF-8?q?flip=20image=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hwe/js/common.js | 39 +++++++++++++++++++++++++++++++++++++++ hwe/js/dipcenter.js | 4 +++- 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/hwe/js/common.js b/hwe/js/common.js index 782b9de9..e8c02f32 100644 --- a/hwe/js/common.js +++ b/hwe/js/common.js @@ -143,6 +143,41 @@ function getIconPath(imgsvr, picture){ } } +function activeFlip($obj){ + var $result; + if($obj === undefined){ + $result = $('img[data-flip]'); + } + else{ + $result = $obj.find('img[data-flip]'); + } + + $result.each(function(){ + activeFlipItem($(this)); + }); + +} + +function activeFlipItem($img){ + var imageList = []; + imageList.push($img.attr('src')); + imageList = imageList.concat($img.data('flip').split(',')); + if(imageList.length <= 1){ + return; + } + $img.data('computed_flip_array', imageList); + $img.data('computed_flip_idx', 0); + + $img.click(function(){ + var arr = $img.data('computed_flip_array'); + var idx = $img.data('computed_flip_idx'); + idx = (idx + 1)%(arr.length); + $img.attr('src', arr[idx]); + $img.data('computed_flip_idx', idx); + }); + $img.css('cursor','pointer'); +} + jQuery(function($){ $('.obj_tooltip').each(function(){ var $objTooltip = $(this); @@ -164,10 +199,14 @@ jQuery(function($){ }); + activeFlip(); + var customCSS = localStorage.getItem('sam_customCSS'); if(customCSS){ var $style = $(''); $style.text(customCSS); $style.appendTo($('head')); } + + }); diff --git a/hwe/js/dipcenter.js b/hwe/js/dipcenter.js index ebc8f30c..e5796b16 100644 --- a/hwe/js/dipcenter.js +++ b/hwe/js/dipcenter.js @@ -20,7 +20,7 @@ jQuery(function($){ if(!inputText || inputText == '

'){ inputText = '


'; } - console.log(inputText); + $editForm.removeClass('viewer').summernote({ minHeight:200, maxHeight:null, @@ -97,10 +97,12 @@ jQuery(function($){ $editForm.summernote('destroy'); $cancelEdit.hide(); $editForm.html($noticeInput.val()).addClass('viewer'); + activeFlip($editForm); } $cancelEdit.hide(); $editForm.html($noticeInput.val()); + activeFlip($editForm); if(editable){ $submitBtn.prop('disabled', false); } From 8bf1ed33dcaa09ba02a487433f89242f12ccd06b Mon Sep 17 00:00:00 2001 From: hide_d Date: Mon, 24 Sep 2018 04:23:47 +0900 Subject: [PATCH 56/62] =?UTF-8?q?=EC=A0=84=ED=99=98=20=EC=8B=9C=20'?= =?UTF-8?q?=EB=B9=88=EC=B9=B8'=20=EB=B3=B4=EC=A0=95,=20=EC=84=A4=EB=AA=85?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/image-sammo/summernote-image-flip.js | 5 ++--- hwe/js/common.js | 8 +++++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/e_lib/summernote/plugin/image-sammo/summernote-image-flip.js b/e_lib/summernote/plugin/image-sammo/summernote-image-flip.js index e4457287..65754746 100644 --- a/e_lib/summernote/plugin/image-sammo/summernote-image-flip.js +++ b/e_lib/summernote/plugin/image-sammo/summernote-image-flip.js @@ -23,7 +23,7 @@ 'ko-KR': { imageFlip: { edit: '이미지 전환', - flipLabel: '대체 이미지' + flipLabel: '대체 이미지( , 로 구분)' } }, }); @@ -95,7 +95,7 @@ this.show = function () { var $img = $($editable.data('target')); - console.log($img); + var imgInfo = { imgDom: $img, flip: $img.data('flip'), @@ -104,7 +104,6 @@ ui.hideDialog(self.$dialog); var $img = imgInfo.imgDom; - console.log(imgInfo.flip); if (imgInfo.flip) { $img.attr('data-flip', imgInfo.flip); } diff --git a/hwe/js/common.js b/hwe/js/common.js index e8c02f32..32cfb77c 100644 --- a/hwe/js/common.js +++ b/hwe/js/common.js @@ -161,7 +161,13 @@ function activeFlip($obj){ function activeFlipItem($img){ var imageList = []; imageList.push($img.attr('src')); - imageList = imageList.concat($img.data('flip').split(',')); + $.each($img.data('flip').split(','), function(idx, value){ + var value = $.trim(value); + if(!value){ + return true; + } + imageList.push(value); + }); if(imageList.length <= 1){ return; } From 3cfde2b40d79722e7981e07e85a389a7b92d1513 Mon Sep 17 00:00:00 2001 From: hide_d Date: Tue, 25 Sep 2018 10:12:42 +0900 Subject: [PATCH 57/62] =?UTF-8?q?=EC=A3=BC=EC=9E=90=EC=82=AC,=20=EA=B3=B5,?= =?UTF-8?q?=20=ED=99=A9=EC=A0=9C=EC=9D=BC=20=EB=95=8C=20=EC=9E=A5=EC=88=98?= =?UTF-8?q?=20=EC=88=98=EA=B0=80=20=EB=82=B4=EB=B6=80=EC=A0=81=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=201=20=EC=B0=A8=EC=9D=B4=EB=82=98=EA=B2=8C=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9=EB=90=98=EB=8A=94=20=EB=B2=84=EA=B7=B8=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hwe/func_gamerule.php | 1 + 1 file changed, 1 insertion(+) diff --git a/hwe/func_gamerule.php b/hwe/func_gamerule.php index bdc5caa2..d2dcf59c 100644 --- a/hwe/func_gamerule.php +++ b/hwe/func_gamerule.php @@ -1055,6 +1055,7 @@ function updateNationState() { 'gennum'=>$nation['gennum']+1, 'totaltech'=>Util::valueFit($nation['gennum']+1, GameConst::$initialNationGenLimit) * $nation['tech'], ], 'nation=%i', $nation['nation']); + $nation['gennum'] += 1; $command = EncodeCommand(0, 0, 0, 26); //집합 $db->update('general', [ From a391650472430dc51977a6eca663d696738b0dfa Mon Sep 17 00:00:00 2001 From: hide_d Date: Tue, 25 Sep 2018 10:45:21 +0900 Subject: [PATCH 58/62] =?UTF-8?q?=EC=9D=B8=EC=A6=9D=20=EC=BD=94=EB=93=9C?= =?UTF-8?q?=20=EC=9E=90=EB=A6=AC=20=EC=88=98=20=ED=95=98=EB=82=98=20?= =?UTF-8?q?=EA=B0=90=EC=86=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oauth_kakao/lib.join.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oauth_kakao/lib.join.php b/oauth_kakao/lib.join.php index 9f9565cf..1f6c6721 100644 --- a/oauth_kakao/lib.join.php +++ b/oauth_kakao/lib.join.php @@ -107,7 +107,7 @@ function createOTPbyUserNO(int $userNo):bool{ function createOTP(string $accessToken):?array{ $restAPI = new Kakao_REST_API_Helper($accessToken); - $OTPValue = Util::randRangeInt(10000, 99999); + $OTPValue = Util::randRangeInt(1000, 9999); $OTPTrialUntil = TimeUtil::DatetimeFromNowSecond(180); $sendResult = $restAPI->talk_to_me_default([ From e4c1e414c846990b07edda5fed349e1821e87ae6 Mon Sep 17 00:00:00 2001 From: hide_d Date: Thu, 27 Sep 2018 16:27:38 +0900 Subject: [PATCH 59/62] =?UTF-8?q?=EC=82=AC=EC=8B=A4=20=EB=AA=A8=EB=93=9C?= =?UTF-8?q?=20=EB=9E=9C=EC=9E=84=20=EC=BD=94=EB=93=9C=20=EB=B2=84=EA=B7=B8?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hwe/func_process_personnel.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hwe/func_process_personnel.php b/hwe/func_process_personnel.php index edfe4221..48226321 100644 --- a/hwe/func_process_personnel.php +++ b/hwe/func_process_personnel.php @@ -84,7 +84,7 @@ function process_25(&$general) { $joinedNations = Json::decode($general['nations']); // 랜덤임관인 경우 - if($general['npc'] > 2 && $where >= 98 && ($admin['scenario'] < 100 || $admin['scenario'] >= 2000 || !$admin['fiction'])){ + if($general['npc'] >= 2 && $where >= 98 && !$admin['fiction']){ //'사실' 모드에서는 '성향'에 우선을 두되, 장수수, 랜덤에 비중을 둠 $nations = $db->query( 'SELECT nation.`name` as `name`,nation.nation as nation,scout,nation.`level` as `level`,gennum,`affinity` FROM nation join general on general.nation = nation.nation and general.level = 12 WHERE nation.nation not in %li and gennum < %i and scout = 0', From 9ec5dfc8b1d07ee68a043aa0b3e3d44e7aba94d1 Mon Sep 17 00:00:00 2001 From: hide_d Date: Thu, 27 Sep 2018 16:29:49 +0900 Subject: [PATCH 60/62] =?UTF-8?q?=EC=82=AC=EC=8B=A4=20=EB=AA=A8=EB=93=9C?= =?UTF-8?q?=20=EC=9E=84=EA=B4=80=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hwe/func_process_personnel.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hwe/func_process_personnel.php b/hwe/func_process_personnel.php index 48226321..49360da1 100644 --- a/hwe/func_process_personnel.php +++ b/hwe/func_process_personnel.php @@ -84,7 +84,7 @@ function process_25(&$general) { $joinedNations = Json::decode($general['nations']); // 랜덤임관인 경우 - if($general['npc'] >= 2 && $where >= 98 && !$admin['fiction']){ + if($general['npc'] >= 2 && $where >= 98 && !$admin['fiction'] && $admin['scenario'] >= 1000){ //'사실' 모드에서는 '성향'에 우선을 두되, 장수수, 랜덤에 비중을 둠 $nations = $db->query( 'SELECT nation.`name` as `name`,nation.nation as nation,scout,nation.`level` as `level`,gennum,`affinity` FROM nation join general on general.nation = nation.nation and general.level = 12 WHERE nation.nation not in %li and gennum < %i and scout = 0', From 27f53ff4a6999c14092b28c6eb0ff5f4b283a160 Mon Sep 17 00:00:00 2001 From: hide_d Date: Thu, 27 Sep 2018 16:36:55 +0900 Subject: [PATCH 61/62] =?UTF-8?q?=EC=9E=84=EA=B4=80=20=EC=BD=94=EB=93=9C?= =?UTF-8?q?=20=EC=B5=9C=EC=A2=85=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hwe/func_process_personnel.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hwe/func_process_personnel.php b/hwe/func_process_personnel.php index 49360da1..9d58ef53 100644 --- a/hwe/func_process_personnel.php +++ b/hwe/func_process_personnel.php @@ -84,7 +84,7 @@ function process_25(&$general) { $joinedNations = Json::decode($general['nations']); // 랜덤임관인 경우 - if($general['npc'] >= 2 && $where >= 98 && !$admin['fiction'] && $admin['scenario'] >= 1000){ + if($general['npc'] >= 2 && $where >= 98 && !$admin['fiction'] && 1000 <= $admin['scenario'] && $admin['scenario'] < 2000){ //'사실' 모드에서는 '성향'에 우선을 두되, 장수수, 랜덤에 비중을 둠 $nations = $db->query( 'SELECT nation.`name` as `name`,nation.nation as nation,scout,nation.`level` as `level`,gennum,`affinity` FROM nation join general on general.nation = nation.nation and general.level = 12 WHERE nation.nation not in %li and gennum < %i and scout = 0', From f0a7990404e4066ab9dd6058571423684eb9093d Mon Sep 17 00:00:00 2001 From: hide_d Date: Thu, 27 Sep 2018 17:00:56 +0900 Subject: [PATCH 62/62] =?UTF-8?q?=EA=B3=84=EB=9E=B5=20=EA=B8=B0=EB=B3=B8?= =?UTF-8?q?=20=EC=84=B1=EA=B3=B5=EB=A5=A0=EC=9D=84=20'=EB=B3=B4=EA=B8=89'?= =?UTF-8?q?=EA=B3=BC=20=EA=B1=B0=EA=BE=B8=EB=A1=9C=20=EC=A0=81=EC=9A=A9?= =?UTF-8?q?=ED=95=9C=20=EB=B2=84=EA=B7=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hwe/sammo/GameConstBase.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hwe/sammo/GameConstBase.php b/hwe/sammo/GameConstBase.php index bfe8755b..2dd96626 100644 --- a/hwe/sammo/GameConstBase.php +++ b/hwe/sammo/GameConstBase.php @@ -40,7 +40,7 @@ class GameConstBase /** @var float 훈련시 사기 감소율*/ public static $atmosSideEffectByTraining = 1; /** @var float 계략 기본 성공률*/ - public static $sabotageDefaultProb = 0.15; + public static $sabotageDefaultProb = 0.35; /** @var int 계략시 확률 가중치(수치가 클수록 변화가 적음 : (지력차/$firing + $basefiring)*/ public static $sabotageProbCoefByStat = 300; /** @var int 계략시 최소 수치 감소량*/