205 lines
6.2 KiB
JavaScript
205 lines
6.2 KiB
JavaScript
|
|
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();
|
|
}
|
|
|
|
}); |