diff --git a/app/build/generated/source/r/debug/android/support/v7/appcompat/R.java b/app/build/generated/source/r/debug/android/support/v7/appcompat/R.java index 9f2be79..eb879bb 100644 --- a/app/build/generated/source/r/debug/android/support/v7/appcompat/R.java +++ b/app/build/generated/source/r/debug/android/support/v7/appcompat/R.java @@ -619,7 +619,7 @@ public final class R { public static final int abc_shareactionprovider_share_with = 0x7f0d0010; public static final int abc_shareactionprovider_share_with_application = 0x7f0d0011; public static final int abc_toolbar_collapse_description = 0x7f0d0012; - public static final int status_bar_notification_info_overflow = 0x7f0d0050; + public static final int status_bar_notification_info_overflow = 0x7f0d0051; } public static final class style { public static final int AlertDialog_AppCompat = 0x7f0e0000; diff --git a/app/build/intermediates/incremental/mergeDebugAssets/merger.xml b/app/build/intermediates/incremental/mergeDebugAssets/merger.xml index 7f358fa..231eed2 100644 --- a/app/build/intermediates/incremental/mergeDebugAssets/merger.xml +++ b/app/build/intermediates/incremental/mergeDebugAssets/merger.xml @@ -1,2 +1,2 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/build/intermediates/incremental/mergeDebugResources/merger.xml b/app/build/intermediates/incremental/mergeDebugResources/merger.xml index d6b93b8..d3c3bfd 100644 --- a/app/build/intermediates/incremental/mergeDebugResources/merger.xml +++ b/app/build/intermediates/incremental/mergeDebugResources/merger.xml @@ -1346,13 +1346,13 @@ ?android:attr/actionMenuTextAppearance @drawable/abc_control_background_material - \ No newline at end of file + \ No newline at end of file diff --git a/app/build/intermediates/symbols/debug/R.txt b/app/build/intermediates/symbols/debug/R.txt index c7cd25a..c59431a 100644 --- a/app/build/intermediates/symbols/debug/R.txt +++ b/app/build/intermediates/symbols/debug/R.txt @@ -475,8 +475,8 @@ int drawable abc_textfield_search_default_mtrl_alpha 0x7f070043 int drawable abc_textfield_search_material 0x7f070044 int drawable backgrounds_game_cave 0x7f070045 int drawable backgrounds_game_grass 0x7f070046 -int drawable backgrounds_game_mountains 0x7f070047 -int drawable backgrounds_menu_grass 0x7f070048 +int drawable backgrounds_game_snow 0x7f070047 +int drawable backgrounds_menu_grasslands 0x7f070048 int drawable black 0x7f070049 int drawable currency_energy 0x7f07004a int drawable currency_energy_atlas 0x7f07004b @@ -505,62 +505,66 @@ int drawable guis_tool_shop_disabled 0x7f070061 int drawable guis_tool_shop_enabled 0x7f070062 int drawable notification_template_icon_bg 0x7f070063 int drawable obstacles_grass 0x7f070064 -int drawable playershapes_ball 0x7f070065 -int drawable playershapes_clock 0x7f070066 -int drawable playershapes_hypno_spiral 0x7f070067 -int drawable playershapes_locked 0x7f070068 -int drawable playershapes_pacman 0x7f070069 -int drawable playershapes_smiley 0x7f07006a -int drawable playershapes_sun 0x7f07006b -int drawable playershapes_wheel 0x7f07006c -int drawable terrain_c_grass 0x7f07006d -int drawable terrain_t_grass 0x7f07006e -int drawable tools_bomb 0x7f07006f -int drawable tools_bomb_button 0x7f070070 -int drawable tools_button_empty 0x7f070071 -int drawable tools_button_locked 0x7f070072 -int drawable tools_button_unlocked 0x7f070073 -int drawable tools_magnet 0x7f070074 -int drawable tools_magnet_button 0x7f070075 -int drawable tools_power_mushroom 0x7f070076 -int drawable tools_power_mushroom_button 0x7f070077 -int drawable tools_ramp 0x7f070078 -int drawable tools_ramp_button 0x7f070079 -int drawable tools_spring 0x7f07007a -int drawable tools_spring_button 0x7f07007b -int drawable tools_stasis 0x7f07007c -int drawable tools_stasis_button 0x7f07007d -int drawable tutorial_place_ramp_air_1 0x7f07007e -int drawable tutorial_place_ramp_air_2 0x7f07007f -int drawable tutorial_place_ramp_gap 0x7f070080 -int drawable tutorial_place_ramp_obstacle 0x7f070081 -int drawable tutorial_place_tools 0x7f070082 -int drawable tutorial_switch_tools 0x7f070083 -int drawable tutorial_to_toolshop 0x7f070084 -int drawable tutorial_toolshop_all_tools 0x7f070085 -int drawable tutorial_toolshop_equip_spring 0x7f070086 -int drawable tutorial_toolshop_inspector 0x7f070087 -int drawable tutorial_toolshop_select_buy_spring 0x7f070088 -int drawable tutorial_toolshop_toolbar 0x7f070089 -int drawable world_previews_grass 0x7f07008a -int drawable xml_background_bountymessage 0x7f07008b -int drawable xml_background_dialog_button 0x7f07008c -int drawable xml_background_exit_confirm_dialog 0x7f07008d -int drawable xml_background_game_over_message_button 0x7f07008e -int drawable xml_background_levelbutton 0x7f07008f -int drawable xml_background_toolslot 0x7f070090 -int drawable xml_background_toolupgrade 0x7f070091 -int drawable xml_background_tutorialimageview 0x7f070092 -int drawable xml_background_tutorialtextview 0x7f070093 -int drawable xml_background_worldbutton 0x7f070094 -int drawable xml_layers_toolprogressbar 0x7f070095 -int drawable xml_selector_gamebutton 0x7f070096 -int drawable xml_selector_pricebutton 0x7f070097 -int drawable xml_selector_settingsbutton 0x7f070098 -int drawable xml_selector_shapeshopbutton 0x7f070099 -int drawable xml_selector_sound 0x7f07009a -int drawable xml_selector_toolshopbutton 0x7f07009b -int drawable xml_shape_inspector_checkbox 0x7f07009c +int drawable obstacles_snow 0x7f070065 +int drawable playershapes_ball 0x7f070066 +int drawable playershapes_clock 0x7f070067 +int drawable playershapes_hypno_spiral 0x7f070068 +int drawable playershapes_locked 0x7f070069 +int drawable playershapes_pacman 0x7f07006a +int drawable playershapes_smiley 0x7f07006b +int drawable playershapes_sun 0x7f07006c +int drawable playershapes_wheel 0x7f07006d +int drawable terrain_c_grass 0x7f07006e +int drawable terrain_c_ice 0x7f07006f +int drawable terrain_t_grass 0x7f070070 +int drawable terrain_t_ice 0x7f070071 +int drawable tools_bomb 0x7f070072 +int drawable tools_bomb_button 0x7f070073 +int drawable tools_button_empty 0x7f070074 +int drawable tools_button_locked 0x7f070075 +int drawable tools_button_unlocked 0x7f070076 +int drawable tools_magnet 0x7f070077 +int drawable tools_magnet_button 0x7f070078 +int drawable tools_power_mushroom 0x7f070079 +int drawable tools_power_mushroom_button 0x7f07007a +int drawable tools_ramp 0x7f07007b +int drawable tools_ramp_button 0x7f07007c +int drawable tools_spring 0x7f07007d +int drawable tools_spring_button 0x7f07007e +int drawable tools_stasis 0x7f07007f +int drawable tools_stasis_button 0x7f070080 +int drawable tutorial_place_ramp_air_1 0x7f070081 +int drawable tutorial_place_ramp_air_2 0x7f070082 +int drawable tutorial_place_ramp_gap 0x7f070083 +int drawable tutorial_place_ramp_obstacle 0x7f070084 +int drawable tutorial_place_tools 0x7f070085 +int drawable tutorial_switch_tools 0x7f070086 +int drawable tutorial_to_toolshop 0x7f070087 +int drawable tutorial_toolshop_all_tools 0x7f070088 +int drawable tutorial_toolshop_equip_spring 0x7f070089 +int drawable tutorial_toolshop_inspector 0x7f07008a +int drawable tutorial_toolshop_select_buy_spring 0x7f07008b +int drawable tutorial_toolshop_toolbar 0x7f07008c +int drawable world_previews_grasslands 0x7f07008d +int drawable world_previews_icymountains 0x7f07008e +int drawable xml_background_bountymessage 0x7f07008f +int drawable xml_background_dialog_button 0x7f070090 +int drawable xml_background_exit_confirm_dialog 0x7f070091 +int drawable xml_background_game_over_message_button 0x7f070092 +int drawable xml_background_levelbutton 0x7f070093 +int drawable xml_background_toolslot 0x7f070094 +int drawable xml_background_toolupgrade 0x7f070095 +int drawable xml_background_tutorialimageview 0x7f070096 +int drawable xml_background_tutorialtextview 0x7f070097 +int drawable xml_background_worldbutton 0x7f070098 +int drawable xml_layers_toolprogressbar 0x7f070099 +int drawable xml_selector_gamebutton 0x7f07009a +int drawable xml_selector_pricebutton 0x7f07009b +int drawable xml_selector_settingsbutton 0x7f07009c +int drawable xml_selector_shapeshopbutton 0x7f07009d +int drawable xml_selector_sound 0x7f07009e +int drawable xml_selector_toolshopbutton 0x7f07009f +int drawable xml_shape_inspector_checkbox 0x7f0700a0 int id action0 0x7f080000 int id action_bar 0x7f080001 int id action_bar_activity_content 0x7f080002 @@ -893,102 +897,103 @@ int string game_playerprogress_placeholder 0x7f0d0022 int string game_playerspeed_format_f 0x7f0d0023 int string game_playerspeed_placeholder 0x7f0d0024 int string goal_message_next_level_format_d 0x7f0d0025 -int string goal_message_restart_format_d 0x7f0d0026 -int string level_button_format_d 0x7f0d0027 -int string levelup 0x7f0d0028 -int string message_game_over 0x7f0d0029 -int string message_level_finished 0x7f0d002a -int string message_next_level 0x7f0d002b -int string message_restart 0x7f0d002c -int string message_to_menu 0x7f0d002d -int string message_tools 0x7f0d002e -int string message_try_again 0x7f0d002f -int string placeholder_button 0x7f0d0030 -int string placeholder_number 0x7f0d0031 -int string placeholder_percent 0x7f0d0032 -int string placeholder_textview 0x7f0d0033 -int string playershape_description_ball 0x7f0d0034 -int string playershape_description_clock 0x7f0d0035 -int string playershape_description_hypno_spiral 0x7f0d0036 -int string playershape_description_locked 0x7f0d0037 -int string playershape_description_pacman 0x7f0d0038 -int string playershape_description_smiley 0x7f0d0039 -int string playershape_description_sun 0x7f0d003a -int string playershape_description_wheel 0x7f0d003b -int string playershape_name_ball 0x7f0d003c -int string playershape_name_clock 0x7f0d003d -int string playershape_name_hypno_spiral 0x7f0d003e -int string playershape_name_locked 0x7f0d003f -int string playershape_name_pacman 0x7f0d0040 -int string playershape_name_smiley 0x7f0d0041 -int string playershape_name_sun 0x7f0d0042 -int string playershape_name_wheel 0x7f0d0043 -int string pre_start_screen_loading 0x7f0d0044 -int string price_button_buy 0x7f0d0045 -int string price_button_upgrade 0x7f0d0046 -int string settings_reset 0x7f0d0047 -int string short_menu_continue 0x7f0d0048 -int string short_menu_exit 0x7f0d0049 -int string short_menu_restart 0x7f0d004a -int string start_screen_finish_world_1 0x7f0d004b -int string start_screen_gain_90_ep 0x7f0d004c -int string start_screen_play 0x7f0d004d -int string start_screen_to_gl_test_screen 0x7f0d004e -int string start_screen_unlock_all_levels 0x7f0d004f -int string status_bar_notification_info_overflow 0x7f0d0050 -int string task_collect_energy_format_d 0x7f0d0051 -int string task_collect_energy_progress_format_ddd 0x7f0d0052 -int string task_collect_stars_format_d 0x7f0d0053 -int string task_collect_stars_progress_format_ddd 0x7f0d0054 -int string task_complete_world_format_d 0x7f0d0055 -int string task_completed 0x7f0d0056 -int string task_empty 0x7f0d0057 -int string tool_description_bomb 0x7f0d0058 -int string tool_description_locked_format_d 0x7f0d0059 -int string tool_description_magnet 0x7f0d005a -int string tool_description_power_mushroom 0x7f0d005b -int string tool_description_ramp 0x7f0d005c -int string tool_description_spring 0x7f0d005d -int string tool_description_stasis 0x7f0d005e -int string tool_level_format_d 0x7f0d005f -int string tool_name_bomb 0x7f0d0060 -int string tool_name_locked 0x7f0d0061 -int string tool_name_magnet 0x7f0d0062 -int string tool_name_power_mushroom 0x7f0d0063 -int string tool_name_ramp 0x7f0d0064 -int string tool_name_spring 0x7f0d0065 -int string tool_name_stasis 0x7f0d0066 -int string tool_upgrade_force 0x7f0d0067 -int string tool_upgrade_none 0x7f0d0068 -int string tool_upgrade_radius 0x7f0d0069 -int string tool_upgrade_time 0x7f0d006a -int string tool_upgrade_title_format_sd 0x7f0d006b -int string tool_upgrade_title_placeholder 0x7f0d006c -int string tool_upgrade_value_max 0x7f0d006d -int string topbar_level_format_d 0x7f0d006e -int string topbar_level_placeholder 0x7f0d006f -int string topbar_toolshop 0x7f0d0070 -int string tutorial_leveled_up_to_toolshop 0x7f0d0071 -int string tutorial_place_ramp_air 0x7f0d0072 -int string tutorial_place_ramp_air_2 0x7f0d0073 -int string tutorial_place_ramp_gap 0x7f0d0074 -int string tutorial_place_ramp_obstacle 0x7f0d0075 -int string tutorial_place_tools 0x7f0d0076 -int string tutorial_placeholder 0x7f0d0077 -int string tutorial_spring_equipped 0x7f0d0078 -int string tutorial_switch_tools_switch 0x7f0d0079 -int string tutorial_switch_tools_two_neccessary 0x7f0d007a -int string tutorial_toolshop_all_tools 0x7f0d007b -int string tutorial_toolshop_equip_spring 0x7f0d007c -int string tutorial_toolshop_inspector 0x7f0d007d -int string tutorial_toolshop_select_buy_spring 0x7f0d007e -int string tutorial_toolshop_toolbar 0x7f0d007f -int string tutorial_toolshop_welcome 0x7f0d0080 -int string tutorial_welcome 0x7f0d0081 -int string unlock_message_placeholder 0x7f0d0082 -int string world_button_count_format_dd 0x7f0d0083 -int string world_button_progress_placeholder 0x7f0d0084 -int string world_button_title_placeholder 0x7f0d0085 +int string goal_message_next_world_format_s 0x7f0d0026 +int string goal_message_restart_format_d 0x7f0d0027 +int string level_button_format_d 0x7f0d0028 +int string levelup 0x7f0d0029 +int string message_game_over 0x7f0d002a +int string message_level_finished 0x7f0d002b +int string message_next_level 0x7f0d002c +int string message_restart 0x7f0d002d +int string message_to_menu 0x7f0d002e +int string message_tools 0x7f0d002f +int string message_try_again 0x7f0d0030 +int string placeholder_button 0x7f0d0031 +int string placeholder_number 0x7f0d0032 +int string placeholder_percent 0x7f0d0033 +int string placeholder_textview 0x7f0d0034 +int string playershape_description_ball 0x7f0d0035 +int string playershape_description_clock 0x7f0d0036 +int string playershape_description_hypno_spiral 0x7f0d0037 +int string playershape_description_locked 0x7f0d0038 +int string playershape_description_pacman 0x7f0d0039 +int string playershape_description_smiley 0x7f0d003a +int string playershape_description_sun 0x7f0d003b +int string playershape_description_wheel 0x7f0d003c +int string playershape_name_ball 0x7f0d003d +int string playershape_name_clock 0x7f0d003e +int string playershape_name_hypno_spiral 0x7f0d003f +int string playershape_name_locked 0x7f0d0040 +int string playershape_name_pacman 0x7f0d0041 +int string playershape_name_smiley 0x7f0d0042 +int string playershape_name_sun 0x7f0d0043 +int string playershape_name_wheel 0x7f0d0044 +int string pre_start_screen_loading 0x7f0d0045 +int string price_button_buy 0x7f0d0046 +int string price_button_upgrade 0x7f0d0047 +int string settings_reset 0x7f0d0048 +int string short_menu_continue 0x7f0d0049 +int string short_menu_exit 0x7f0d004a +int string short_menu_restart 0x7f0d004b +int string start_screen_finish_world_1 0x7f0d004c +int string start_screen_gain_90_ep 0x7f0d004d +int string start_screen_play 0x7f0d004e +int string start_screen_to_gl_test_screen 0x7f0d004f +int string start_screen_unlock_all_levels 0x7f0d0050 +int string status_bar_notification_info_overflow 0x7f0d0051 +int string task_collect_energy_format_d 0x7f0d0052 +int string task_collect_energy_progress_format_ddd 0x7f0d0053 +int string task_collect_stars_format_d 0x7f0d0054 +int string task_collect_stars_progress_format_ddd 0x7f0d0055 +int string task_complete_world_format_d 0x7f0d0056 +int string task_completed 0x7f0d0057 +int string task_empty 0x7f0d0058 +int string tool_description_bomb 0x7f0d0059 +int string tool_description_locked_format_d 0x7f0d005a +int string tool_description_magnet 0x7f0d005b +int string tool_description_power_mushroom 0x7f0d005c +int string tool_description_ramp 0x7f0d005d +int string tool_description_spring 0x7f0d005e +int string tool_description_stasis 0x7f0d005f +int string tool_level_format_d 0x7f0d0060 +int string tool_name_bomb 0x7f0d0061 +int string tool_name_locked 0x7f0d0062 +int string tool_name_magnet 0x7f0d0063 +int string tool_name_power_mushroom 0x7f0d0064 +int string tool_name_ramp 0x7f0d0065 +int string tool_name_spring 0x7f0d0066 +int string tool_name_stasis 0x7f0d0067 +int string tool_upgrade_force 0x7f0d0068 +int string tool_upgrade_none 0x7f0d0069 +int string tool_upgrade_radius 0x7f0d006a +int string tool_upgrade_time 0x7f0d006b +int string tool_upgrade_title_format_sd 0x7f0d006c +int string tool_upgrade_title_placeholder 0x7f0d006d +int string tool_upgrade_value_max 0x7f0d006e +int string topbar_level_format_d 0x7f0d006f +int string topbar_level_placeholder 0x7f0d0070 +int string topbar_toolshop 0x7f0d0071 +int string tutorial_leveled_up_to_toolshop 0x7f0d0072 +int string tutorial_place_ramp_air 0x7f0d0073 +int string tutorial_place_ramp_air_2 0x7f0d0074 +int string tutorial_place_ramp_gap 0x7f0d0075 +int string tutorial_place_ramp_obstacle 0x7f0d0076 +int string tutorial_place_tools 0x7f0d0077 +int string tutorial_placeholder 0x7f0d0078 +int string tutorial_spring_equipped 0x7f0d0079 +int string tutorial_switch_tools_switch 0x7f0d007a +int string tutorial_switch_tools_two_neccessary 0x7f0d007b +int string tutorial_toolshop_all_tools 0x7f0d007c +int string tutorial_toolshop_equip_spring 0x7f0d007d +int string tutorial_toolshop_inspector 0x7f0d007e +int string tutorial_toolshop_select_buy_spring 0x7f0d007f +int string tutorial_toolshop_toolbar 0x7f0d0080 +int string tutorial_toolshop_welcome 0x7f0d0081 +int string tutorial_welcome 0x7f0d0082 +int string unlock_message_placeholder 0x7f0d0083 +int string world_button_count_format_dd 0x7f0d0084 +int string world_button_progress_placeholder 0x7f0d0085 +int string world_button_title_placeholder 0x7f0d0086 int style AlertDialog_AppCompat 0x7f0e0000 int style AlertDialog_AppCompat_Light 0x7f0e0001 int style Animation_AppCompat_Dialog 0x7f0e0002 diff --git a/app/src/main/assets/levelpacks/Icy Mountains.xml b/app/src/main/assets/levelpacks/Icy Mountains.xml index 0ba629a..43fde4d 100644 --- a/app/src/main/assets/levelpacks/Icy Mountains.xml +++ b/app/src/main/assets/levelpacks/Icy Mountains.xml @@ -223,18 +223,18 @@ - + - - - - - - + + + + + + - + @@ -252,43 +252,194 @@ - + - + - + - + - + - + - + - + - + - + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/particleEffects/snow.pe b/app/src/main/assets/particleEffects/snow.pe new file mode 100644 index 0000000..d65ca07 --- /dev/null +++ b/app/src/main/assets/particleEffects/snow.pe @@ -0,0 +1,151 @@ +Untitled +- Delay - +active: false +- Duration - +lowMin: 1000.0 +lowMax: 1000.0 +- Count - +min: 0 +max: 200 +- Emission - +lowMin: 0.0 +lowMax: 0.0 +highMin: 2.0 +highMax: 4.0 +relative: false +scalingCount: 1 +scaling0: 1.0 +timelineCount: 1 +timeline0: 0.0 +- Life - +lowMin: 0.0 +lowMax: 0.0 +highMin: 1000.0 +highMax: 5000.0 +relative: false +scalingCount: 3 +scaling0: 1.0 +scaling1: 1.0 +scaling2: 1.0 +timelineCount: 3 +timeline0: 0.0 +timeline1: 0.001 +timeline2: 1.0 +- Life Offset - +active: false +- X Offset - +active: false +- Y Offset - +active: false +- Spawn Shape - +shape: square +- Spawn Width - +lowMin: 0.0 +lowMax: 0.0 +highMin: 1500.0 +highMax: 1500.0 +relative: false +scalingCount: 1 +scaling0: 1.0 +timelineCount: 1 +timeline0: 0.0 +- Spawn Height - +lowMin: 0.0 +lowMax: 0.0 +highMin: 1100.0 +highMax: 1100.0 +relative: false +scalingCount: 1 +scaling0: 1.0 +timelineCount: 1 +timeline0: 0.0 +- Scale - +lowMin: 0.0 +lowMax: 30.0 +highMin: 30.0 +highMax: 50.0 +relative: false +scalingCount: 3 +scaling0: 1.0 +scaling1: 1.0 +scaling2: 0.0 +timelineCount: 3 +timeline0: 0.0 +timeline1: 0.37671232 +timeline2: 1.0 +- Velocity - +active: true +lowMin: 10.0 +lowMax: 100.0 +highMin: 20.0 +highMax: 200.0 +relative: false +scalingCount: 4 +scaling0: 1.0 +scaling1: 1.0 +scaling2: 0.64705884 +scaling3: 0.0 +timelineCount: 4 +timeline0: 0.0 +timeline1: 0.49905124 +timeline2: 0.65068495 +timeline3: 0.79452056 +- Angle - +active: true +lowMin: 180.0 +lowMax: 360.0 +highMin: 240.0 +highMax: 300.0 +relative: false +scalingCount: 5 +scaling0: 1.0 +scaling1: 1.0 +scaling2: 1.0 +scaling3: 0.6666667 +scaling4: 0.0 +timelineCount: 5 +timeline0: 0.0 +timeline1: 0.5009488 +timeline2: 0.5019488 +timeline3: 0.65753424 +timeline4: 0.79452056 +- Rotation - +active: false +- Wind - +active: false +- Gravity - +active: false +- Tint - +colorsCount: 3 +colors0: 1.0 +colors1: 1.0 +colors2: 1.0 +timelineCount: 1 +timeline0: 0.0 +- Transparency - +lowMin: 0.0 +lowMax: 0.0 +highMin: 1.0 +highMax: 1.0 +relative: false +scalingCount: 5 +scaling0: 0.0 +scaling1: 1.0 +scaling2: 1.0 +scaling3: 0.0 +scaling4: 0.0 +timelineCount: 5 +timeline0: 0.0 +timeline1: 0.19863014 +timeline2: 0.5890411 +timeline3: 0.999 +timeline4: 1.0 +- Options - +attached: false +continuous: true +aligned: false +additive: true +behind: false +premultipliedAlpha: false +- Image Path - +snow.png diff --git a/app/src/main/assets/particleEffects/snow.png b/app/src/main/assets/particleEffects/snow.png new file mode 100644 index 0000000..562deb1 Binary files /dev/null and b/app/src/main/assets/particleEffects/snow.png differ diff --git a/app/src/main/java/de/frajul/endlessroll/entities/particles/ParticleSource.java b/app/src/main/java/de/frajul/endlessroll/entities/particles/ParticleSource.java index a21a254..106ffd6 100644 --- a/app/src/main/java/de/frajul/endlessroll/entities/particles/ParticleSource.java +++ b/app/src/main/java/de/frajul/endlessroll/entities/particles/ParticleSource.java @@ -168,6 +168,10 @@ public class ParticleSource { this.position = position; } + public Vector getPosition() { + return position; + } + public void setDelayMS(float delay) { currentDelay = delay; delayManuallySet = true; diff --git a/app/src/main/java/de/frajul/endlessroll/entities/particles/ParticleSystem.java b/app/src/main/java/de/frajul/endlessroll/entities/particles/ParticleSystem.java index a00df18..4207588 100644 --- a/app/src/main/java/de/frajul/endlessroll/entities/particles/ParticleSystem.java +++ b/app/src/main/java/de/frajul/endlessroll/entities/particles/ParticleSystem.java @@ -20,6 +20,7 @@ public class ParticleSystem { public final ParticleEffect energyCollect; public final ParticleEffect firework; public final ParticleEffect superPower; + public final ParticleEffect snow; private ParticleEffect[] effects; private TextureLoader textureLoader; @@ -36,8 +37,9 @@ public class ParticleSystem { energyCollect = reader.read("particleEffects/collectEnergy.pe"); firework = reader.read("particleEffects/firework.pe"); superPower = reader.read("particleEffects/superPower.pe"); + snow = reader.read("particleEffects/snow.pe"); - effects = new ParticleEffect[]{stasis, testFire,colorChange, explosion, magnet, starCollect, energyCollect, firework, superPower}; + effects = new ParticleEffect[]{stasis, testFire,colorChange, explosion, magnet, starCollect, energyCollect, firework, superPower, snow}; } public void update(Timer timer) { diff --git a/app/src/main/java/de/frajul/endlessroll/levels/worlds/World.java b/app/src/main/java/de/frajul/endlessroll/levels/worlds/World.java index bf6ee07..cd223a0 100644 --- a/app/src/main/java/de/frajul/endlessroll/levels/worlds/World.java +++ b/app/src/main/java/de/frajul/endlessroll/levels/worlds/World.java @@ -12,9 +12,8 @@ import de.frajul.endlessroll.entities.textures.TexturePack; public enum World { - GRASSLANDS("Grasslands", R.drawable.world_previews_grass, R.drawable.backgrounds_game_grass, R.drawable.terrain_t_grass, R.drawable.terrain_c_grass, R.drawable.obstacles_grass), - TESTCAVE("Testcave", R.drawable.world_previews_grass, R.drawable.backgrounds_game_cave, R.drawable.terrain_t_grass, R.drawable.terrain_c_grass, R.drawable.obstacles_grass), - ICY_MOUNTAINS("Icy Mountains", R.drawable.world_previews_grass, R.drawable.backgrounds_game_mountains, R.drawable.terrain_t_grass, R.drawable.terrain_c_grass, R.drawable.obstacles_grass); + GRASSLANDS("Grasslands", R.drawable.world_previews_grasslands, R.drawable.backgrounds_game_grass, R.drawable.terrain_t_grass, R.drawable.terrain_c_grass, R.drawable.obstacles_grass), + ICY_MOUNTAINS("Icy Mountains", R.drawable.world_previews_icymountains, R.drawable.backgrounds_game_snow, R.drawable.terrain_t_ice, R.drawable.terrain_c_ice, R.drawable.obstacles_snow); private String name; @DrawableRes diff --git a/app/src/main/java/de/frajul/endlessroll/main/game/GameScene.java b/app/src/main/java/de/frajul/endlessroll/main/game/GameScene.java index 3660205..44afb25 100644 --- a/app/src/main/java/de/frajul/endlessroll/main/game/GameScene.java +++ b/app/src/main/java/de/frajul/endlessroll/main/game/GameScene.java @@ -7,6 +7,7 @@ import de.frajul.endlessroll.entities.Obstacle; import de.frajul.endlessroll.entities.collectables.Energy; import de.frajul.endlessroll.entities.collectables.Star; import de.frajul.endlessroll.entities.collision.CollisionDetector; +import de.frajul.endlessroll.entities.particles.ParticleSource; import de.frajul.endlessroll.entities.particles.ParticleSystem; import de.frajul.endlessroll.entities.shapes.PlayerShape; import de.frajul.endlessroll.entities.textures.TexturePack; @@ -37,14 +38,14 @@ public class GameScene extends Scene { goal = new Goal(textures.goal); } - public void loadLevel(Level level, World world, PlayerShape playerPlayerShape) throws Exception { + public void loadLevel(Level level, World world, PlayerShape playerShape) throws Exception { this.currentWorld = world; super.reset(); background.changeTexture(world.getBackgroundTexture()); terrain.loadData(world, level.getTerrainEdge(), level.getTerrainTiles()); ceiling.loadData(world, level.getCeilingEdge(), level.getCeilingTiles()); uncategorizedEntities.add(goal); - player.init(playerPlayerShape, terrain.getEdge(), level.getStartSpeed(), + player.init(playerShape, terrain.getEdge(), level.getStartSpeed(), level.getEndSpeed(), particleSystem); uncategorizedEntities.add(player); collectables.init(level, textures); @@ -53,6 +54,13 @@ public class GameScene extends Scene { goalX = level.getGoalX(); goal.setGoalX(goalX); + + if(world == World.ICY_MOUNTAINS){ + enviromentParticles = new ParticleSource(new Vector(), particleSystem.snow); + enviromentParticles.start(); + }else if(enviromentParticles != null){ + enviromentParticles.kill(); + } GameLog.d("Level " + level.getId() + " successfully loaded"); } diff --git a/app/src/main/java/de/frajul/endlessroll/main/game/Scene.java b/app/src/main/java/de/frajul/endlessroll/main/game/Scene.java index a8f15aa..5479b02 100644 --- a/app/src/main/java/de/frajul/endlessroll/main/game/Scene.java +++ b/app/src/main/java/de/frajul/endlessroll/main/game/Scene.java @@ -12,6 +12,7 @@ import de.frajul.endlessroll.entities.Entity; import de.frajul.endlessroll.entities.Obstacle; import de.frajul.endlessroll.entities.Player; import de.frajul.endlessroll.entities.collectables.Collectables; +import de.frajul.endlessroll.entities.particles.ParticleSource; import de.frajul.endlessroll.entities.particles.ParticleSystem; import de.frajul.endlessroll.entities.textures.TexturePack; import de.frajul.endlessroll.entities.tileLists.Ceiling; @@ -37,6 +38,7 @@ public abstract class Scene { protected Terrain terrain; protected Ceiling ceiling; protected Player player; + protected ParticleSource enviromentParticles; protected List uncategorizedEntities = Collections .synchronizedList(new ArrayList()); @@ -82,6 +84,9 @@ public abstract class Scene { } } else uncategorizedEntities.remove(playerArrow); + + if (enviromentParticles != null) + enviromentParticles.getPosition().setX(camera.getX() + 1.5f); } private void updateEntityList(List list, Timer timer) { diff --git a/app/src/main/java/de/frajul/endlessroll/main/game/StartScene.java b/app/src/main/java/de/frajul/endlessroll/main/game/StartScene.java index bf55be8..ab5580f 100644 --- a/app/src/main/java/de/frajul/endlessroll/main/game/StartScene.java +++ b/app/src/main/java/de/frajul/endlessroll/main/game/StartScene.java @@ -1,5 +1,9 @@ package de.frajul.endlessroll.main.game; +import java.util.Random; + +import de.frajul.endlessroll.data.Vector; +import de.frajul.endlessroll.entities.particles.ParticleSource; import de.frajul.endlessroll.entities.particles.ParticleSystem; import de.frajul.endlessroll.entities.shapes.PlayerShape; import de.frajul.endlessroll.entities.textures.TexturePack; @@ -7,11 +11,37 @@ import de.frajul.endlessroll.levels.worlds.World; public class StartScene extends Scene { + private final float TERRAIN_EDGE = -0.8f; + private Random random; + private World currentWorld = World.GRASSLANDS; + public StartScene(TexturePack texturePack, ParticleSystem particleSystem) { super(texturePack, particleSystem); - terrain.createEndless(World.ICY_MOUNTAINS, -.8f); - player.init(PlayerShape.BALL, terrain.getEdge(), 0.5f, 0.5f, null); + player.init(PlayerShape.BALL, TERRAIN_EDGE, 0.5f, 0.5f, null); uncategorizedEntities.add(player); + + random = new Random(); + randomizeWorld(); + loadTexturesForCurrentWorld(); + } + + public void randomizeWorld() { + int worldId = random.nextInt(World.values().length); + currentWorld = World.values()[worldId]; + if (currentWorld == World.ICY_MOUNTAINS) { + enviromentParticles = new ParticleSource(new Vector(), particleSystem.snow); + enviromentParticles.start(); + } else { + if (enviromentParticles != null) + enviromentParticles.kill(); + particleSystem.deleteAllSources(); + } + } + + public void loadTexturesForCurrentWorld() { + terrain.clear(); + terrain.createEndless(currentWorld, TERRAIN_EDGE); + background.changeTexture(currentWorld.getBackgroundTexture()); } } \ No newline at end of file diff --git a/app/src/main/java/de/frajul/endlessroll/main/screens/StartScreen.java b/app/src/main/java/de/frajul/endlessroll/main/screens/StartScreen.java index 5e8b62a..5cf40a9 100644 --- a/app/src/main/java/de/frajul/endlessroll/main/screens/StartScreen.java +++ b/app/src/main/java/de/frajul/endlessroll/main/screens/StartScreen.java @@ -10,7 +10,7 @@ import android.widget.RelativeLayout; import de.frajul.endlessroll.R; import de.frajul.endlessroll.main.GameActivity; import de.frajul.endlessroll.main.MyGlSurfaceView; -import de.frajul.endlessroll.rendering.Rendering; +import de.frajul.endlessroll.main.game.StartScene; import de.frajul.endlessroll.sqlDatabase.MyDatabase; import de.frajul.endlessroll.views.ConfirmDialog; @@ -22,7 +22,7 @@ public class StartScreen extends GLScreen implements View.OnClic private final int CALL_ID_CONFIRM_EXIT = 1; private final int CALL_ID_CONFIRM_FINISH_WORLD = 2; - private Rendering rendering; + private StartScreenRendering rendering; private Button play; private Button unlockLevels; @@ -62,6 +62,8 @@ public class StartScreen extends GLScreen implements View.OnClic @Override public void prepareToBeShown() { glView.setCurrentRendering(rendering); + ((StartScene) rendering.getScene()).randomizeWorld(); + ((StartScene) rendering.getScene()).loadTexturesForCurrentWorld(); } @Override diff --git a/app/src/main/java/de/frajul/endlessroll/main/screens/StartScreenRendering.java b/app/src/main/java/de/frajul/endlessroll/main/screens/StartScreenRendering.java index d57a0c2..9aa4a78 100644 --- a/app/src/main/java/de/frajul/endlessroll/main/screens/StartScreenRendering.java +++ b/app/src/main/java/de/frajul/endlessroll/main/screens/StartScreenRendering.java @@ -30,8 +30,9 @@ public class StartScreenRendering extends Rendering { this.timer = timer; if (isFirstTime) scene = new StartScene(texturePack, particleSystem); - else + else { scene.setTexturePack(texturePack); + } try { particleSystem.loadTextures(); } catch (Exception e) { diff --git a/app/src/main/java/de/frajul/endlessroll/views/GoalMessage.java b/app/src/main/java/de/frajul/endlessroll/views/GoalMessage.java index 87bbfc8..2e89a32 100644 --- a/app/src/main/java/de/frajul/endlessroll/views/GoalMessage.java +++ b/app/src/main/java/de/frajul/endlessroll/views/GoalMessage.java @@ -57,11 +57,15 @@ public class GoalMessage implements GoalMessageLevelButtonOnClickListener, View. topBar.update(); restart.init(R.string.goal_message_restart_format_d, level); - boolean nextLevelVisible = !levelPack.isLastLevel(level); - nextLevel.setVisible(nextLevelVisible); - if (nextLevelVisible) + boolean isLastLevel = levelPack.isLastLevel(level); + boolean hasNextWorld = gameActivity.getLevelManager().getNextLevelPack(levelPack) != null; + nextLevel.setVisible(!isLastLevel || hasNextWorld); + if (!isLastLevel) nextLevel .init(R.string.goal_message_next_level_format_d, levelPack.getNextLevel(level)); + else if (hasNextWorld) { + nextLevel.initShowToNextWorld(true, levelPack); + } layout.postDelayed(new Runnable() { @Override @@ -96,7 +100,10 @@ public class GoalMessage implements GoalMessageLevelButtonOnClickListener, View. @Override public void onClick(GoalMessageLevelButton goalMessageLevelButton) { hide(); - gameActivity.startGame(levelPack, goalMessageLevelButton.getLevel()); + if (goalMessageLevelButton.isShowingToNextWorld()) { + gameActivity.flipToScreen(Screen.ScreenType.WORLDS); + } else + gameActivity.startGame(levelPack, goalMessageLevelButton.getLevel()); } public void onKeyBack() { diff --git a/app/src/main/java/de/frajul/endlessroll/views/GoalMessageLevelButton.java b/app/src/main/java/de/frajul/endlessroll/views/GoalMessageLevelButton.java index 8db68f3..ba98440 100644 --- a/app/src/main/java/de/frajul/endlessroll/views/GoalMessageLevelButton.java +++ b/app/src/main/java/de/frajul/endlessroll/views/GoalMessageLevelButton.java @@ -1,14 +1,13 @@ package de.frajul.endlessroll.views; -import android.support.annotation.LayoutRes; import android.support.annotation.StringRes; -import android.view.LayoutInflater; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import de.frajul.endlessroll.R; import de.frajul.endlessroll.levels.Level; +import de.frajul.endlessroll.levels.LevelPack; import de.frajul.endlessroll.main.GameActivity; /** @@ -19,6 +18,7 @@ public class GoalMessageLevelButton implements View.OnClickListener { private GameActivity gameActivity; private GoalMessageLevelButtonOnClickListener clickListener; private Level level; + private boolean showingToNextWorld = false; private View layout; private TextView text; @@ -26,6 +26,7 @@ public class GoalMessageLevelButton implements View.OnClickListener { private ImageView star2; private ImageView star3; private ImageView energy; + private View bottomLayout; public GoalMessageLevelButton(GameActivity gameActivity, GoalMessageLevelButtonOnClickListener clickListener, View layout) { this.gameActivity = gameActivity; @@ -42,18 +43,31 @@ public class GoalMessageLevelButton implements View.OnClickListener { star2 = (ImageView) layout.findViewById(R.id.goal_message_levelbutton_star2); star3 = (ImageView) layout.findViewById(R.id.goal_message_levelbutton_star3); energy = (ImageView) layout.findViewById(R.id.goal_message_levelbutton_energy); + bottomLayout = layout.findViewById(R.id.goal_message_bottom_layout); } - public void setVisible(boolean visible){ + public void setVisible(boolean visible) { layout.setVisibility(visible ? View.VISIBLE : View.INVISIBLE); } public void init(@StringRes int textId, Level level) { this.level = level; + initShowToNextWorld(false, null); text.setText(gameActivity.getString(textId, level.getId())); showCollectedCurrency(level.getCollectedStars(), level.isEnergyCollected()); } + public void initShowToNextWorld(boolean show, LevelPack currentLevelPack) { + showingToNextWorld = show; + bottomLayout.setVisibility(show ? View.GONE : View.VISIBLE); + if (show) { + String nextWorld = gameActivity.getLevelManager().getNextLevelPack(currentLevelPack) + .getName(); + text.setText( + gameActivity.getString(R.string.goal_message_next_world_format_s, nextWorld)); + } + } + private void showCollectedCurrency(boolean[] stars, boolean energy) { if (stars[0]) this.star1.setImageResource(R.drawable.currency_star); @@ -69,10 +83,14 @@ public class GoalMessageLevelButton implements View.OnClickListener { return level; } - public View getView(){ + public View getView() { return layout; } + public boolean isShowingToNextWorld() { + return showingToNextWorld; + } + @Override public void onClick(View v) { clickListener.onClick(this); diff --git a/app/src/main/res/drawable/backgrounds_game_mountains.png b/app/src/main/res/drawable/backgrounds_game_mountains.png deleted file mode 100644 index 6924868..0000000 Binary files a/app/src/main/res/drawable/backgrounds_game_mountains.png and /dev/null differ diff --git a/app/src/main/res/drawable/backgrounds_game_snow.png b/app/src/main/res/drawable/backgrounds_game_snow.png new file mode 100644 index 0000000..9ce40c6 Binary files /dev/null and b/app/src/main/res/drawable/backgrounds_game_snow.png differ diff --git a/app/src/main/res/drawable/backgrounds_menu_grass.png b/app/src/main/res/drawable/backgrounds_menu_grass.png deleted file mode 100644 index 5a33827..0000000 Binary files a/app/src/main/res/drawable/backgrounds_menu_grass.png and /dev/null differ diff --git a/app/src/main/res/drawable/backgrounds_menu_grasslands.png b/app/src/main/res/drawable/backgrounds_menu_grasslands.png new file mode 100644 index 0000000..43281b5 Binary files /dev/null and b/app/src/main/res/drawable/backgrounds_menu_grasslands.png differ diff --git a/app/src/main/res/drawable/obstacles_snow.png b/app/src/main/res/drawable/obstacles_snow.png new file mode 100644 index 0000000..5c1cc6c Binary files /dev/null and b/app/src/main/res/drawable/obstacles_snow.png differ diff --git a/app/src/main/res/drawable/terrain_c_ice.png b/app/src/main/res/drawable/terrain_c_ice.png new file mode 100644 index 0000000..5e4c04d Binary files /dev/null and b/app/src/main/res/drawable/terrain_c_ice.png differ diff --git a/app/src/main/res/drawable/terrain_t_ice.png b/app/src/main/res/drawable/terrain_t_ice.png new file mode 100644 index 0000000..5955f61 Binary files /dev/null and b/app/src/main/res/drawable/terrain_t_ice.png differ diff --git a/app/src/main/res/drawable/world_previews_grass.png b/app/src/main/res/drawable/world_previews_grass.png deleted file mode 100644 index 498940e..0000000 Binary files a/app/src/main/res/drawable/world_previews_grass.png and /dev/null differ diff --git a/app/src/main/res/drawable/world_previews_grasslands.png b/app/src/main/res/drawable/world_previews_grasslands.png new file mode 100644 index 0000000..9762619 Binary files /dev/null and b/app/src/main/res/drawable/world_previews_grasslands.png differ diff --git a/app/src/main/res/drawable/world_previews_icymountains.png b/app/src/main/res/drawable/world_previews_icymountains.png new file mode 100644 index 0000000..f7feb6b Binary files /dev/null and b/app/src/main/res/drawable/world_previews_icymountains.png differ diff --git a/app/src/main/res/layout/goal_message.xml b/app/src/main/res/layout/goal_message.xml index e420e2a..65c43b5 100644 --- a/app/src/main/res/layout/goal_message.xml +++ b/app/src/main/res/layout/goal_message.xml @@ -52,12 +52,14 @@ android:id="@+id/goal_message_restart" layout="@layout/goal_message_levelbutton" android:layout_width="wrap_content" + android:layout_centerVertical="true" android:layout_height="wrap_content" android:layout_alignParentStart="true"/> diff --git a/app/src/main/res/layout/goal_message_levelbutton.xml b/app/src/main/res/layout/goal_message_levelbutton.xml index 51b3dd9..9635614 100644 --- a/app/src/main/res/layout/goal_message_levelbutton.xml +++ b/app/src/main/res/layout/goal_message_levelbutton.xml @@ -5,50 +5,51 @@ android:background="@drawable/xml_background_game_over_message_button" android:orientation="vertical"> - + + + + + android:layout_weight="1" + android:src="@drawable/currency_star_empty"/> - + - + - + - - - - - + \ No newline at end of file diff --git a/app/src/main/res/layout/levels.xml b/app/src/main/res/layout/levels.xml index 820fe24..4ce635f 100644 --- a/app/src/main/res/layout/levels.xml +++ b/app/src/main/res/layout/levels.xml @@ -2,7 +2,6 @@ diff --git a/app/src/main/res/layout/settings.xml b/app/src/main/res/layout/settings.xml index 4754a92..ba9c484 100644 --- a/app/src/main/res/layout/settings.xml +++ b/app/src/main/res/layout/settings.xml @@ -2,7 +2,6 @@ + android:layout_height="match_parent"> diff --git a/app/src/main/res/layout/toolshop.xml b/app/src/main/res/layout/toolshop.xml index 7508b87..4e9ba9b 100644 --- a/app/src/main/res/layout/toolshop.xml +++ b/app/src/main/res/layout/toolshop.xml @@ -1,8 +1,7 @@ + android:layout_height="match_parent"> diff --git a/app/src/main/res/layout/tutorial.xml b/app/src/main/res/layout/tutorial.xml index 1f20595..cb83af3 100644 --- a/app/src/main/res/layout/tutorial.xml +++ b/app/src/main/res/layout/tutorial.xml @@ -30,7 +30,7 @@ android:background="@drawable/xml_background_tutorialimageview" android:padding="2dp" android:scaleType="centerCrop" - android:src="@drawable/backgrounds_menu_grass"/> + android:src="@drawable/backgrounds_menu_grasslands"/> diff --git a/app/src/main/res/layout/world_button.xml b/app/src/main/res/layout/world_button.xml index 0dcae03..88fc644 100644 --- a/app/src/main/res/layout/world_button.xml +++ b/app/src/main/res/layout/world_button.xml @@ -27,7 +27,7 @@ android:layout_centerInParent="true" android:layout_marginTop="10dp" android:adjustViewBounds="true" - android:src="@drawable/world_previews_grass"/> + android:src="@drawable/world_previews_grasslands"/> + android:layout_height="match_parent"> + + @@ -27,5 +31,6 @@ + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0071f5f..3c424b6 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -23,6 +23,7 @@ Next level Restart Level %d Next Level: %d + Go to the next world:\n%s LOADING... Continue Restart @@ -76,7 +77,7 @@ You will unlock this mysterious tool at level %d Roll up the ramp to gain height Shoots you in the air - Difficult to handle, but if you master it you can do anything + Difficult to handle, but give it a try Blow up all obstacles near the bomb This will give you super-powers for a few seconds Freezes a certain area which leads to longer in-air time