diff --git a/hwe/join.php b/hwe/join.php index 94618e7d..5d08dabd 100644 --- a/hwe/join.php +++ b/hwe/join.php @@ -59,7 +59,7 @@ echo Json::encode((object)$charInfoText); =WebUtil::printJS('../d_shared/common_path.js')?> =WebUtil::printJS('dist_js/vendors.js')?> =WebUtil::printJS('dist_js/common.js')?> -=WebUtil::printJS('js/join.js')?> +=WebUtil::printJS('dist_js/join.js')?>
diff --git a/hwe/js/join.js b/hwe/js/join.js deleted file mode 100644 index 0dff2e05..00000000 --- a/hwe/js/join.js +++ /dev/null @@ -1,205 +0,0 @@ - -jQuery(function($){ - var $leadership = $('#leadership'); - var $strength = $('#strength'); - var $intel = $('#intel'); - - function abilityRand(){ - var leadership = Math.random()*65 + 10; - var strength = Math.random()*65 + 10; - var intel = Math.random()*65 + 10; - var rate = leadership + strength + intel; - - leadership = Math.floor(leadership / rate * defaultStatTotal); - strength = Math.floor(strength / rate * defaultStatTotal); - intel = Math.floor(intel / rate * defaultStatTotal); - - - while(leadership+strength+intel < defaultStatTotal){ - leadership+=1; - } - - if(leadership > defaultStatMax || strength > defaultStatMax || intel > defaultStatMax || leadership < defaultStatMin || strength < defaultStatMin || intel < defaultStatMin){ - return abilityRand(); - } - - $leadership.val(leadership); - $strength.val(strength); - $intel.val(intel); - } - - - function abilityLeadpow(){ - var leadership = Math.random() * 6; - var strength = Math.random() * 6; - var intel = Math.random() * 1; - var rate = leadership + strength + intel; - - leadership = Math.floor(leadership / rate * defaultStatTotal); - strength = Math.floor(strength / rate * defaultStatTotal); - intel = Math.floor(intel / rate * defaultStatTotal); - - while(leadership+strength+intel < defaultStatTotal){ - strength+=1; - } - - if(intel < defaultStatMin){ - leadership -= defaultStatMin - intel; - intel = defaultStatMin; - } - - if(leadership > defaultStatMax){ - strength += leadership - defaultStatMax; - leadership = defaultStatMax; - } - - if(strength > defaultStatMax){ - leadership += strength - defaultStatMax; - strength = defaultStatMax; - } - - if(leadership > defaultStatMax){ - intel += leadership - defaultStatMax; - leadership = defaultStatMax; - } - - $leadership.val(leadership); - $strength.val(strength); - $intel.val(intel); - } - - function abilityLeadint(){ - var leadership = Math.random() * 6; - var strength = Math.random() * 1; - var intel = Math.random() * 6; - var rate = leadership + strength + intel; - - leadership = Math.floor(leadership / rate * defaultStatTotal); - strength = Math.floor(strength / rate * defaultStatTotal); - intel = Math.floor(intel / rate * defaultStatTotal); - - while(leadership+strength+intel < defaultStatTotal){ - intel+=1; - } - - if(strength < defaultStatMin){ - leadership -= defaultStatMin - strength; - strength = defaultStatMin; - } - - if(leadership > defaultStatMax){ - intel += leadership - defaultStatMax; - leadership = defaultStatMax; - } - - if(intel > defaultStatMax){ - leadership += intel - defaultStatMax; - intel = defaultStatMax; - } - - if(leadership > defaultStatMax){ - strength += leadership - defaultStatMax; - leadership = defaultStatMax; - } - - $leadership.val(leadership); - $strength.val(strength); - $intel.val(intel); - } - - function abilityPowint(){ - var leadership = Math.random() * 1; - var strength = Math.random() * 6; - var intel = Math.random() * 6; - var rate = leadership + strength + intel; - - leadership = Math.floor(leadership / rate * defaultStatTotal); - strength = Math.floor(strength / rate * defaultStatTotal); - intel = Math.floor(intel / rate * defaultStatTotal); - - while(leadership+strength+intel < defaultStatTotal){ - intel+=1; - } - - if(leadership < defaultStatMin){ - strength -= defaultStatMin - leadership; - leadership = defaultStatMin; - } - - if(strength > defaultStatMax){ - intel += strength - defaultStatMax; - strength = defaultStatMax; - } - - if(intel > defaultStatMax){ - strength += intel - defaultStatMax; - intel = defaultStatMax; - } - - if(strength > defaultStatMax){ - leadership += strength - defaultStatMax; - strength = defaultStatMax; - } - - $leadership.val(leadership); - $strength.val(strength); - $intel.val(intel); - } - - window.abilityRand = abilityRand; - window.abilityLeadpow = abilityLeadpow; - window.abilityLeadint = abilityLeadint; - window.abilityPowint = abilityPowint; - - var $charInfoText = $('#charInfoText'); - var $selChar = $('#selChar'); - $selChar.change(function(){ - var $this = $(this); - var char = $this.val(); - if(char in charInfoText){ - $charInfoText.html(charInfoText[char]); - } - else{ - $charInfoText.html(''); - } - }); - - var $generalName = $('#generalName'); - if($generalName.on('change keyup paste', function(){ - var generalName = $generalName.val(); - var len = mb_strwidth(generalName); - if(len == 0 || len > 18){ - $generalName.css('color','red'); - } - else{ - $generalName.css('color','white'); - } - })); - - $('#join_form').submit(function(){ - var generalName = $generalName.val(); - if(mb_strwidth(generalName) > 18){ - alert('장수 이름이 너무 깁니다!'); - return false; - } - var currentStatTotal = parseInt($leadership.val()) + parseInt($strength.val()) + parseInt($intel.val()); - if(currentStatTotal < defaultStatTotal){ - if(!confirm('현재 능력치 총합은 {0}으로, {1}보다 낮습니다. 장수 생성을 진행할까요?'.format(currentStatTotal, defaultStatTotal))){ - return false; - } - } - return true; - }); - - var randomGenType = Math.floor(Math.random()*7); - if(randomGenType < 3){ - abilityLeadpow(); - } - else if(randomGenType < 6){ - abilityLeadint(); - } - else{ - abilityPowint(); - } - -}); \ No newline at end of file diff --git a/hwe/select_general_from_pool.php b/hwe/select_general_from_pool.php index d80299e4..3886f16e 100644 --- a/hwe/select_general_from_pool.php +++ b/hwe/select_general_from_pool.php @@ -66,7 +66,7 @@ var validCustomOption = =Json::encode(GameConst::$generalPoolAllowOption)?>; =WebUtil::printJS('../d_shared/common_path.js')?> =WebUtil::printJS('dist_js/vendors.js')?> =WebUtil::printJS('dist_js/common.js')?> -=WebUtil::printJS('js/join.js')?> +=WebUtil::printJS('dist_js/join.js')?> =WebUtil::printJS('js/select_general_from_pool.js')?> diff --git a/hwe/ts/join.ts b/hwe/ts/join.ts new file mode 100644 index 00000000..47be56c7 --- /dev/null +++ b/hwe/ts/join.ts @@ -0,0 +1,213 @@ +import $ from 'jquery'; +import { exportWindow } from './util/exportWindow'; +import { mb_strwidth } from './util/mb_strwidth'; +import { unwrap_any } from './util/unwrap_any'; + +declare const defaultStatTotal: number; +declare const defaultStatMax: number; +declare const defaultStatMin: number; +declare const charInfoText: Record