@@ -143,6 +143,7 @@ function load_progress () {
143143 difficulty_halve_time_left = blockSettings . readNumber ( "game_difficulty_halve_time_left" )
144144 difficulty_halve_max_time = blockSettings . readNumber ( "game_difficulty_halve_max_time" )
145145 difficulty_halve_chance = blockSettings . readNumber ( "game_difficulty_halve_chance" )
146+ difficulty_halving = read_bool ( "game_difficulty_halving" )
146147}
147148controller . A . onEvent ( ControllerButtonEvent . Pressed , function ( ) {
148149 if ( sprite_cursor_pointer . overlapsWith ( sprite_computer ) ) {
@@ -157,6 +158,8 @@ controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
157158 get_upgrades_menu ( )
158159 } else if ( sprite_cursor_pointer . overlapsWith ( sprite_menu_button ) ) {
159160 menu_menu ( )
161+ } else if ( sprite_overlapping_kind ( sprite_cursor_pointer , SpriteKind . Thing ) ) {
162+ difficulty_halving = true
160163 }
161164} )
162165function menu_menu ( ) {
@@ -195,6 +198,9 @@ function sprite_overlapping_kind (sprite: Sprite, kind: number) {
195198 }
196199 return false
197200}
201+ function read_bool ( name : string ) {
202+ return blockSettings . readNumber ( name ) == 1
203+ }
198204function buy_asic_menu ( ) {
199205 local_menu_options = [ "Cancel" ]
200206 if ( asic_count > 0 ) {
@@ -412,6 +418,7 @@ function set_default_save () {
412418 difficulty_halve_time_left = 0
413419 difficulty_halve_max_time = 30
414420 difficulty_halve_chance = 1
421+ difficulty_halving = false
415422}
416423function wipe_save ( ) {
417424 for ( let value of blockSettings . list ( ) ) {
@@ -469,6 +476,7 @@ function save_progress () {
469476 blockSettings . writeNumber ( "game_difficulty_halve_time_left" , difficulty_halve_time_left )
470477 blockSettings . writeNumber ( "game_difficulty_halve_max_time" , difficulty_halve_max_time )
471478 blockSettings . writeNumber ( "game_difficulty_halve_chance" , difficulty_halve_chance )
479+ save_bool ( "game_difficulty_halving" , difficulty_halving )
472480}
473481function enable_cursor ( en : boolean ) {
474482 if ( en ) {
@@ -479,6 +487,13 @@ function enable_cursor (en: boolean) {
479487 sprite_cursor_pointer . setFlag ( SpriteFlag . Invisible , ! ( en ) )
480488 sprite_cursor . setFlag ( SpriteFlag . Invisible , ! ( en ) )
481489}
490+ function save_bool ( name : string , value : boolean ) {
491+ if ( value ) {
492+ blockSettings . writeNumber ( name , 0 )
493+ } else {
494+ blockSettings . writeNumber ( name , 1 )
495+ }
496+ }
482497function make_menu_button ( ) {
483498 sprite_menu_button = sprites . create ( assets . image `menu_button` , SpriteKind . Shop )
484499 sprite_menu_button . left = sprite_upgrades_button . right + 2
@@ -510,7 +525,7 @@ function get_upgrades_menu () {
510525 local_menu_options . push ( "" + blockObject . getStringProperty ( value , StrProp . name ) + ": ($" + blockObject . getNumberProperty ( value , NumProp . cost ) + ") " + blockObject . getStringProperty ( value , StrProp . description ) )
511526 local_upgrades_shown += 1
512527 }
513- if ( local_upgrades_shown >= 11 ) {
528+ if ( local_upgrades_shown >= 10 ) {
514529 break ;
515530 }
516531 }
@@ -542,6 +557,7 @@ blockMenu.onMenuOptionSelected(function (option, index) {
542557function pretty_hashes_per_sec ( hashes_per_sec : number ) {
543558 return "" + number_to_si_prefix ( hashes_per_sec ) + "H/S: " + spriteutils . roundWithPrecision ( hashes_per_sec / number_to_si_divider ( hashes_per_sec ) , 2 )
544559}
560+ let sprite_difficulty_halver : Sprite = null
545561let local_upgrade_got : blockObject . BlockObject = null
546562let local_upgrades_shown = 0
547563let local_available_upgrades : blockObject . BlockObject [ ] = [ ]
@@ -556,6 +572,7 @@ let sprite_menu_button: Sprite = null
556572let sprite_upgrades_button : Sprite = null
557573let sprite_buy_autoclicker : Sprite = null
558574let sprite_computer : Sprite = null
575+ let difficulty_halving = false
559576let difficulty_halve_chance = 0
560577let difficulty_halve_max_time = 0
561578let difficulty_halve_time_left = 0
@@ -662,7 +679,19 @@ forever(function () {
662679 score_change = Math . ceil ( score_change * 1.5 )
663680 }
664681 Notification . waitForNotificationFinish ( )
665- Notification . notify ( "Difficulty has been set to " + max_height + "!" + " (Reward is $" + score_change + ")" , assets . image `star` )
682+ Notification . notify ( "Difficulty has been set to " + max_height + "!" + " (Reward is $" + score_change + ")" , assets . image `arrow` )
683+ }
684+ pause ( 1000 )
685+ } )
686+ forever ( function ( ) {
687+ if ( ( Math . percentChance ( difficulty_halve_chance ) || true ) && difficulty_halve_time_left <= 0 ) {
688+ sprite_difficulty_halver = sprites . create ( assets . image `difficulty_halver` , SpriteKind . Thing )
689+ sprite_difficulty_halver . z = 30
690+ sprite_difficulty_halver . setPosition ( randint ( 0 , scene . screenWidth ( ) ) , randint ( 0 , scene . screenHeight ( ) ) )
691+ sprite_difficulty_halver . setStayInScreen ( true )
692+ sprite_difficulty_halver . startEffect ( effects . halo , 1750 )
693+ sprite_difficulty_halver . lifespan = 10000
694+ pause ( 10000 )
666695 }
667696 pause ( 1000 )
668697} )
0 commit comments