diff --git a/xtrn/knk/knk.js b/xtrn/knk/knk.js index 26f86390f989032431c8195f71b6181212bd6f38..c898b39f3de9bd2f98039726c8a99336b84da381 100644 --- a/xtrn/knk/knk.js +++ b/xtrn/knk/knk.js @@ -117,7 +117,9 @@ function show_intro() console.center("Running on "+system.name+" courtesy of "+system.operator+"."); console.crlf(); syncterm_music=check_syncterm_music(); - console.pause(); + console.gotoxy(1,console.screen_rows); + if(console.line_counter > console.screen_rows/2) + console.pause(); console.clear(); console.crlf(); @@ -576,6 +578,7 @@ function Player_dodamage(other, damage, men) console.attributes=LIGHTCYAN; for(i=0; i<damage; i++) { + console.line_counter=0; bad=random(7); // Each damage does 0-7 points of "bad" for(j=0; j<bad; j++) { rnd=other.soldiers+other.kastle+other.guards+other.assassins+other.kannons+other.katapults+other.civilians; @@ -698,6 +701,7 @@ function Player_dodamage(other, damage, men) } if(booms%7) console.crlf(); + console.line_counter=0; if(nodamage) { if(this.isplayer) @@ -1057,7 +1061,7 @@ function Player_computermove(month, other) { var weight={loss_soldiers:0, loss_kastle:0, loss_guards:0, loss_food:0 ,win_soldiers:0, win_kastle:0, win_assassins:0 - ,need_assassins:0, need_katapults:0, need_kannons:0, need_food:0, need_soldiers:0, need_guards:0, need_kastle:0}; + ,need_assassins:0, need_weapons:0, need_food:0, need_soldiers:0, need_guards:0, need_kastle:0}; var names=new Array(); var name; @@ -1066,6 +1070,7 @@ function Player_computermove(month, other) console.line_counter=0; console.crlf(); console.crlf(); + console.line_counter=0; for(name in weight) names.push(name); @@ -1092,10 +1097,7 @@ function Player_computermove(month, other) return(this.kannonattack(other, true)); if(this.katapults > 1) return(this.katapultattack(other, true)); - if(this.kannons > this.katapults * 500) - weight.need_kannons=1; - else - weight.need_katapults=1; + weight.need_weapons=1; } else { if(other.soldiers < this.soldiers * .66) @@ -1144,27 +1146,14 @@ function Player_computermove(month, other) return(this.kannonattack(other, true)); if(this.katapults > 1) return(this.katapultattack(other, true)); - if(this.kannons > this.katapults * 500) - weight.need_kannons=1; - else - weight.need_katapults=1; + weight.need_weapons=1; } else { if(other.kastle < 10000) weight.win_kastle += 1-other.kastle/10000; } - if(this.kannons > this.katapults?this.katapults:1 * 500) { - if(weight.need_kannons==0) - weight.need_kannons=0.1; - if(weight.need_katapults==0) - weight.need_katapults=0.05; - } - else { - if(weight.need_kannons==0) - weight.need_kannons=0.05; - if(weight.need_katapults==0) - weight.need_katapults=0.1; - } + if(weight.need_weapons==0) + weight.need_weapons=0.05; if(weight.win_kastle==0) weight.win_kastle=0.01; @@ -1258,32 +1247,36 @@ function Player_computermove(month, other) console.writeln("The draft animals strain to haul the heavy wagons to "+this.refer_posessive+" kastle!"); this.loadwagons('assassins',amount); return(false); - case 'need_katapults': - amount=parseInt(this.gold/25000); - if(this.mfood < 2) - amount=parseInt(amount/2); - if(this.katapults > 2 && amount < this.katapults/2) - break; - if(amount < 1) - break; - console.writeln("Buying "+amount+" katapults for "+amount*25000+" gold!"); - console.crlf(); - console.writeln("The draft animals strain to haul the heavy wagons to "+this.refer_posessive+" kastle!"); - this.loadwagons('katapults',amount); - return(false); - case 'need_kannons': - amount=parseInt(this.gold/100); - if(this.mfood < 2) - amount=parseInt(amount/2); - if(this.kannons > 2 && amount < this.kannons/2) - break; - if(amount < 20) - break; - console.writeln("Buying "+amount+" kannons for "+amount*100+" gold!"); - console.crlf(); - console.writeln("The draft animals strain to haul the heavy wagons to "+this.refer_posessive+" kastle!"); - this.loadwagons('kannons',amount); - return(false); + case 'need_weapons': + if(this.kannons > this.katapults * 500 && (this.kannons > 500 || this.gold < 25000)) { + amount=parseInt(this.gold/100); + if(this.mfood < 2) + amount=parseInt(amount/2); + if(this.kannons > 2 && amount < this.kannons/2) + break; + if(amount < 20) + break; + console.writeln("Buying "+amount+" kannons for "+amount*100+" gold!"); + console.crlf(); + console.writeln("The draft animals strain to haul the heavy wagons to "+this.refer_posessive+" kastle!"); + this.loadwagons('kannons',amount); + return(false); + } + else { + amount=parseInt(this.gold/25000); + if(this.mfood < 2) + amount=parseInt(amount/2); + if(this.katapults > 2 && amount < this.katapults/2) + break; + if(amount < 1) + break; + console.writeln("Buying "+amount+" katapults for "+amount*25000+" gold!"); + console.crlf(); + console.writeln("The draft animals strain to haul the heavy wagons to "+this.refer_posessive+" kastle!"); + this.loadwagons('katapults',amount); + return(false); + } + break; } } console.attributes=CYAN; @@ -1581,14 +1574,16 @@ function play_game() playmusic("MFO2T96L2P32CL3CL8CP32L3CP6E-L8DL3DL8CL3CO1L8BO2L1C"); } console.crlf(); - console.pause(); + if(console.line_counter > console.screen_rows/2) + console.pause(); winner.drawscreen(month); console.crlf(); console.attributes=WHITE; loser.score=0; console.writeln(computer.full_name+" got "+computer.score+" points and you got "+player.score+" points for this game."); console.writeln(); - console.pause(); + if(console.line_counter > console.screen_rows/2) + console.pause(); update_userfile(player, computer, winner.isplayer); show_scoreboard(true); var dat_file=read_dat();