@@ -119,9 +119,14 @@ var espeed = 2;
119
119
//Every second the opponent can shoot
120
120
var ttshot = 2 ;
121
121
122
- var minutes = 0 ;
122
+ var minutes = 3 ;
123
123
var seconds = 0 ;
124
124
var tcounter = 0 ;
125
+ var maxtime = minutes * 60 + seconds ;
126
+
127
+ //Number of shot
128
+ var noshot = 0 ;
129
+ var score = [ ] ;
125
130
126
131
//Images
127
132
var enemyimg ;
@@ -280,6 +285,8 @@ function stageCompleted() {
280
285
textSize ( 50 ) ;
281
286
fill ( '#000000' ) ;
282
287
text ( "Congratulations!!!" , 500 , 100 ) ;
288
+ text ( "Your score:" , 575 , 175 ) ;
289
+ text ( score , 640 , 250 ) ;
283
290
text ( "Level " + ( stageid + 1 ) + " Completed" , 500 , 400 ) ;
284
291
text ( "Press SPACE to Continue" , 500 , 700 ) ;
285
292
fill ( '#FFFFFF' ) ;
@@ -482,7 +489,10 @@ function gravity(maxy, maxid) {
482
489
else
483
490
py = maxy - sy - 1 ;
484
491
} else {
485
- if ( maxid === maxp [ stageid ] ) completed = true ;
492
+ if ( maxid === maxp [ stageid ] ) {
493
+ completed = true ;
494
+ countPoints ( ) ;
495
+ }
486
496
}
487
497
}
488
498
@@ -582,6 +592,7 @@ function newBullet(enumber) {
582
592
for ( i = 0 ; i < bmax ; i ++ ) {
583
593
if ( ! bullets [ i ] [ 5 ] ) {
584
594
if ( enumber === - 1 ) {
595
+ noshot ++ ;
585
596
bullets [ i ] [ 1 ] = py ;
586
597
bullets [ i ] [ 2 ] = bsize ;
587
598
if ( direction [ 0 ] && direction [ 2 ] ) {
@@ -663,7 +674,9 @@ function restartGame() {
663
674
}
664
675
for ( j = 0 ; j < bmax ; j ++ ) bullets [ j ] [ 5 ] = 0 ;
665
676
seconds = 0 ;
666
- minutes = 0 ;
677
+ minutes = 3 ;
678
+ score [ stageid ] = 0 ;
679
+ noshot = 0 ;
667
680
lastp = getLastPlatform ( ) ;
668
681
}
669
682
@@ -723,16 +736,18 @@ function drawHUD() {
723
736
fill ( 'black' ) ;
724
737
text ( plifep , 82 , 65 ) ;
725
738
drawTimer ( ) ;
739
+ fill ( '#FFFFFF' ) ;
726
740
}
727
741
728
742
function drawTimer ( ) {
729
- if ( tcounter < 60 ) tcounter ++ ;
730
- else if ( tcounter === 60 ) {
743
+ if ( tcounter < 59 ) tcounter ++ ;
744
+ else if ( tcounter === 59 ) {
731
745
tcounter = 0 ;
732
- seconds ++ ;
733
- if ( seconds === 60 ) {
734
- minutes ++ ;
735
- seconds = 0 ;
746
+ seconds -- ;
747
+ if ( minutes === 0 && seconds === 0 ) lose ( ) ;
748
+ if ( seconds === - 1 ) {
749
+ seconds = 59 ;
750
+ minutes -- ;
736
751
}
737
752
}
738
753
text ( minutes , 647 , 65 ) ;
@@ -743,7 +758,6 @@ function drawTimer() {
743
758
text ( '0' , 707 , 65 ) ;
744
759
text ( seconds , 732 , 65 ) ;
745
760
}
746
- fill ( '#FFFFFF' ) ;
747
761
}
748
762
749
763
function damage ( ) {
@@ -768,6 +782,10 @@ function damage() {
768
782
if ( bullets [ j ] [ 0 ] >= enemies [ stageid ] [ l ] [ 0 ] - bullets [ j ] [ 2 ] / 2 && bullets [ j ] [ 0 ] <= enemies [ stageid ] [ l ] [ 0 ] + esize + bullets [ j ] [ 2 ] / 2 ) {
769
783
bullets [ j ] [ 5 ] = false ;
770
784
lifePoints ( l , - 1 ) ;
785
+ if ( enemies [ stageid ] [ l ] [ 7 ] === 0 ) {
786
+ if ( enemies [ stageid ] [ l ] [ 5 ] === 0 ) score [ stageid ] += 150 ;
787
+ else score [ stageid ] += 250 ;
788
+ }
771
789
}
772
790
}
773
791
}
@@ -833,3 +851,12 @@ function spikesCollision() {
833
851
if ( ( spikes [ stageid ] [ i ] [ 2 ] === 2 && pposx >= spikes [ stageid ] [ i ] [ 0 ] - sheight - sx / 3 && pposx <= spikes [ stageid ] [ i ] [ 0 ] + sx ) || ( spikes [ stageid ] [ i ] [ 2 ] === 3 && pposx >= spikes [ stageid ] [ i ] [ 0 ] && pposx <= spikes [ stageid ] [ i ] [ 0 ] + sheight ) ) lifePoints ( - 1 , - 1 ) ;
834
852
}
835
853
}
854
+
855
+ function countPoints ( ) {
856
+ for ( k = 1 ; k <= plifep ; k ++ ) score [ stageid ] += 75 ;
857
+ var points = ( 60 * minutes + seconds ) * 300 / maxtime ;
858
+ if ( noshot === 0 ) noshot ++ ;
859
+ var points2 = 350 / noshot ;
860
+ score [ stageid ] = score [ stageid ] + points + points2 ;
861
+ score [ stageid ] = Math . round ( score [ stageid ] ) ;
862
+ }
0 commit comments