Added all drawables for IcyMountains

Added snow particle system
World on StartScene is randomly chosen
Last-level onGoalScreen shows "toNextWorld"
This commit is contained in:
= 2018-01-13 17:50:27 +01:00
parent 1ca222187e
commit fb3290a3b2
37 changed files with 642 additions and 250 deletions

View File

@ -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;

View File

@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet config="main"><source path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets"><file name="fontBaron.ttf" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\fontBaron.ttf"/><file name="levelpacks/Grasslands.xml" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\levelpacks\Grasslands.xml"/><file name="levelpacks/Icy Mountains.xml" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\levelpacks\Icy Mountains.xml"/><file name="particleEffects/collectEnergy.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\collectEnergy.pe"/><file name="particleEffects/collectStar.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\collectStar.pe"/><file name="particleEffects/colorChange.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\colorChange.pe"/><file name="particleEffects/explosion.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\explosion.pe"/><file name="particleEffects/firework.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\firework.pe"/><file name="particleEffects/magnet.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\magnet.pe"/><file name="particleEffects/particle.png" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\particle.png"/><file name="particleEffects/star.png" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\star.png"/><file name="particleEffects/stasis.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\stasis.pe"/><file name="particleEffects/superPower.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\superPower.pe"/><file name="particleEffects/test_fire.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\test_fire.pe"/><file name="shader/entityFragmentShader.glsl" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\shader\entityFragmentShader.glsl"/><file name="shader/entityVertexShader.glsl" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\shader\entityVertexShader.glsl"/><file name="shader/obstacleFragmentShader.glsl" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\shader\obstacleFragmentShader.glsl"/><file name="shader/particleFragmentShader.glsl" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\shader\particleFragmentShader.glsl"/><file name="shader/simpleFragmentShader.glsl" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\shader\simpleFragmentShader.glsl"/><file name="shader/simpleVertexShader.glsl" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\shader\simpleVertexShader.glsl"/><file name="shader/terrainVertexShader.glsl" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\shader\terrainVertexShader.glsl"/></source><source path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\build\generated\assets\shaders\debug"/></dataSet><dataSet config="debug"><source path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\debug\assets"/></dataSet></merger>
<merger version="3"><dataSet config="main"><source path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets"><file name="fontBaron.ttf" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\fontBaron.ttf"/><file name="levelpacks/Grasslands.xml" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\levelpacks\Grasslands.xml"/><file name="levelpacks/Icy Mountains.xml" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\levelpacks\Icy Mountains.xml"/><file name="particleEffects/collectEnergy.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\collectEnergy.pe"/><file name="particleEffects/collectStar.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\collectStar.pe"/><file name="particleEffects/colorChange.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\colorChange.pe"/><file name="particleEffects/explosion.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\explosion.pe"/><file name="particleEffects/firework.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\firework.pe"/><file name="particleEffects/magnet.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\magnet.pe"/><file name="particleEffects/particle.png" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\particle.png"/><file name="particleEffects/star.png" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\star.png"/><file name="particleEffects/stasis.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\stasis.pe"/><file name="particleEffects/superPower.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\superPower.pe"/><file name="particleEffects/test_fire.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\test_fire.pe"/><file name="shader/entityFragmentShader.glsl" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\shader\entityFragmentShader.glsl"/><file name="shader/entityVertexShader.glsl" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\shader\entityVertexShader.glsl"/><file name="shader/obstacleFragmentShader.glsl" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\shader\obstacleFragmentShader.glsl"/><file name="shader/particleFragmentShader.glsl" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\shader\particleFragmentShader.glsl"/><file name="shader/simpleFragmentShader.glsl" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\shader\simpleFragmentShader.glsl"/><file name="shader/simpleVertexShader.glsl" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\shader\simpleVertexShader.glsl"/><file name="shader/terrainVertexShader.glsl" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\shader\terrainVertexShader.glsl"/><file name="particleEffects/snow.pe" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\snow.pe"/><file name="particleEffects/snow.png" path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\main\assets\particleEffects\snow.png"/></source><source path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\build\generated\assets\shaders\debug"/></dataSet><dataSet config="debug"><source path="C:\Users\Julian\AndroidStudioProjects\EndlessRoll\app\src\debug\assets"/></dataSet></merger>

File diff suppressed because one or more lines are too long

View File

@ -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

View File

@ -223,18 +223,18 @@
</stars>
<energy x="22.146631" y="-0.24666664"/>
</level>
<level packId="2" id="4" goalX="29.313349" startSpeed="0.5" endSpeed="0.5" terrainEdge="-0.6" ceilingEdge="1.0">
<level packId="2" id="4" goalX="29.760025" startSpeed="0.5" endSpeed="0.5" terrainEdge="-0.6" ceilingEdge="1.0">
<terrainTiles class="java.util.ArrayList">
<tileData x="-0.77800035" width="4.4439993"/>
<tileData x="7.711343" width="4.390688"/>
<tileData x="11.118361" width="1.2233505"/>
<tileData x="12.970045" width="1.2800169"/>
<tileData x="15.317139" width="2.2141714"/>
<tileData x="19.00354" width="3.428629"/>
<tileData x="26.584368" width="4.3910217"/>
<tileData x="7.8180113" width="4.604025"/>
<tileData x="11.331698" width="1.2233505"/>
<tileData x="13.183382" width="1.2800179"/>
<tileData x="15.893645" width="2.9405117"/>
<tileData x="19.537718" width="3.629631"/>
<tileData x="26.777042" width="4.899023"/>
</terrainTiles>
<ceilingTiles class="java.util.ArrayList">
<tileData x="13.156673" width="32.313347"/>
<tileData x="13.3800125" width="32.760025"/>
</ceilingTiles>
<obstacles class="java.util.ArrayList">
<obstacleData floating="false" moving="false" deadly="false" leftEdge="1.0356662" rightEdge="1.6976664" height="0.599" y="-0.30050004">
@ -252,43 +252,194 @@
<obstacleData floating="false" moving="false" deadly="false" leftEdge="8.220012" rightEdge="8.720012" height="0.318" y="-0.44100004">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="false" leftEdge="9.960027" rightEdge="10.460027" height="0.5" y="-0.35666674">
<obstacleData floating="true" moving="true" deadly="false" leftEdge="10.173364" rightEdge="10.673364" height="0.5" y="-0.35666674">
<moveComponent length="1.959" rotation="0.0" startOffset="0.301" direction="1.0" speed="0.467" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="false" leftEdge="11.773375" rightEdge="12.273375" height="0.5" y="0.39999986">
<obstacleData floating="true" moving="true" deadly="false" leftEdge="11.9867115" rightEdge="12.4867115" height="0.5" y="0.39999986">
<moveComponent length="1.985" rotation="0.0" startOffset="0.697" direction="1.0" speed="0.29" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="true" leftEdge="13.636717" rightEdge="14.136717" height="0.5" y="-0.006666666">
<obstacleData floating="true" moving="true" deadly="true" leftEdge="13.850054" rightEdge="14.350054" height="0.5" y="-0.006666666">
<moveComponent length="1.856" rotation="0.0" startOffset="0.462" direction="1.0" speed="0.548" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="false" moving="false" deadly="false" leftEdge="17.287226" rightEdge="18.306227" height="0.382" y="-0.40900004">
<obstacleData floating="false" moving="false" deadly="false" leftEdge="17.733902" rightEdge="18.752903" height="0.382" y="-0.40900004">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="false" moving="false" deadly="false" leftEdge="19.328707" rightEdge="20.704706" height="0.382" y="-0.40900004">
<obstacleData floating="false" moving="false" deadly="false" leftEdge="19.775383" rightEdge="21.151382" height="0.382" y="-0.40900004">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="false" leftEdge="21.054178" rightEdge="22.099176" height="0.293" y="-0.59333324">
<obstacleData floating="true" moving="false" deadly="false" leftEdge="21.500854" rightEdge="22.545853" height="0.293" y="-0.59333324">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="22.329338" rightEdge="22.737339" height="0.395" y="-0.49333328">
<obstacleData floating="true" moving="false" deadly="true" leftEdge="22.602682" rightEdge="23.010683" height="0.395" y="-0.5199999">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="false" leftEdge="22.973795" rightEdge="23.992796" height="0.306" y="-0.24666682">
<obstacleData floating="true" moving="false" deadly="false" leftEdge="23.040468" rightEdge="24.05947" height="0.306" y="-0.38666672">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="false" moving="false" deadly="false" leftEdge="26.663101" rightEdge="28.370102" height="0.331" y="-0.43450004">
<obstacleData floating="false" moving="false" deadly="false" leftEdge="27.109777" rightEdge="28.816778" height="0.331" y="-0.43450004">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="false" leftEdge="28.176752" rightEdge="28.60975" height="0.548" y="0.0333333">
<obstacleData floating="true" moving="false" deadly="false" leftEdge="28.623428" rightEdge="29.056427" height="0.548" y="0.0333333">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
</obstacles>
<stars class="java.util.ArrayList">
<positionData x="4.706664" y="0.11333333"/>
<positionData x="12.033373" y="-0.020000003"/>
<positionData x="18.820047" y="-0.43333328"/>
<positionData x="12.24671" y="-0.020000003"/>
<positionData x="19.266724" y="-0.43333328"/>
</stars>
<energy x="28.576557" y="-0.42666665"/>
<energy x="29.023233" y="-0.42666665"/>
</level>
<level packId="2" id="5" goalX="29.693392" startSpeed="0.5" endSpeed="0.5" terrainEdge="-0.6" ceilingEdge="1.0">
<terrainTiles class="java.util.ArrayList">
<tileData x="-0.14266706" width="5.714666"/>
<tileData x="4.8209186" width="3.284505"/>
<tileData x="8.044092" width="0.58784294"/>
<tileData x="18.51693" width="10.189796"/>
<tileData x="26.184725" width="0.419796"/>
<tileData x="29.734295" width="5.751343"/>
</terrainTiles>
<ceilingTiles class="java.util.ArrayList">
<tileData x="13.346695" width="32.69339"/>
</ceilingTiles>
<obstacles class="java.util.ArrayList">
<obstacleData floating="false" moving="false" deadly="true" leftEdge="1.6766654" rightEdge="2.1766653" height="0.153" y="-0.5235">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="false" moving="false" deadly="true" leftEdge="2.2038326" rightEdge="2.7028327" height="0.102" y="-0.549">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="false" leftEdge="5.7611623" rightEdge="6.3721623" height="0.089" y="-0.55550003">
<moveComponent length="2.268" rotation="47.12" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="true" triggerDistance="-0.408"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="false" leftEdge="7.7503433" rightEdge="8.336344" height="0.204" y="-0.006666662">
<moveComponent length="3.943" rotation="96.126" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="true" triggerDistance="-0.398"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="false" leftEdge="9.605867" rightEdge="10.420868" height="0.306" y="0.14000008">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="false" moving="true" deadly="true" leftEdge="16.987053" rightEdge="17.293053" height="0.306" y="-0.44700003">
<moveComponent length="2.706" rotation="90.0" startOffset="1.0" direction="-1.0" speed="0.699" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="false" moving="false" deadly="false" leftEdge="17.320065" rightEdge="19.460064" height="0.573" y="-0.31350002">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="false" leftEdge="19.997581" rightEdge="21.88258" height="0.268" y="0.10666663">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="false" moving="true" deadly="true" leftEdge="19.4934" rightEdge="19.773403" height="0.306" y="-0.44700003">
<moveComponent length="3.144" rotation="90.0" startOffset="0.0" direction="1.0" speed="1.0" hasPlayerXSpeed="false" triggerDistance="1.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="false" leftEdge="20.113596" rightEdge="22.126596" height="0.268" y="0.79333323">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="false" moving="false" deadly="false" leftEdge="22.9124" rightEdge="23.574398" height="0.701" y="-0.24950004">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="false" leftEdge="22.872902" rightEdge="23.433903" height="0.255" y="0.65999985">
<moveComponent length="2.371" rotation="90.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="true" triggerDistance="-0.357"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="false" leftEdge="23.75283" rightEdge="24.59383" height="0.28" y="-0.26000002">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="false" leftEdge="24.770325" rightEdge="25.636326" height="0.268" y="-0.35999998">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="false" moving="false" deadly="true" leftEdge="25.998997" rightEdge="26.380997" height="0.5" y="-0.35000002">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="false" moving="false" deadly="false" leftEdge="28.194616" rightEdge="28.958616" height="0.268" y="-0.46600002">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="false" moving="false" deadly="false" leftEdge="28.995289" rightEdge="30.09129" height="0.535" y="-0.3325">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="true" leftEdge="7.581509" rightEdge="7.9385095" height="0.344" y="-0.37999997">
<moveComponent length="1.804" rotation="90.0" startOffset="0.503" direction="1.0" speed="0.899" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
</obstacles>
<stars class="java.util.ArrayList">
<positionData x="2.926665" y="-0.6266666"/>
<positionData x="12.433375" y="-0.20666666"/>
<positionData x="26.090067" y="0.73333335"/>
</stars>
<energy x="20.93333" y="-0.40666708"/>
</level>
<level packId="2" id="6" goalX="32.52677" startSpeed="0.5" endSpeed="0.5" terrainEdge="-0.6" ceilingEdge="1.0">
<terrainTiles class="java.util.ArrayList">
<tileData x="-0.89958334" width="4.2008333"/>
<tileData x="1.7709996" width="0.17033267"/>
<tileData x="4.670251" width="4.826171"/>
<tileData x="8.864195" width="2.3617125"/>
<tileData x="13.809405" width="5.588709"/>
<tileData x="21.600117" width="2.0607834"/>
<tileData x="29.288116" width="5.6772213"/>
</terrainTiles>
<ceilingTiles class="java.util.ArrayList">
<tileData x="14.763386" width="35.52677"/>
</ceilingTiles>
<obstacles class="java.util.ArrayList">
<obstacleData floating="true" moving="false" deadly="true" leftEdge="4.2246637" rightEdge="4.9886637" height="0.318" y="0.41999972">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="false" moving="false" deadly="false" leftEdge="3.0214982" rightEdge="3.6584983" height="0.268" y="-0.46600002">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="false" moving="false" deadly="false" leftEdge="6.5699973" rightEdge="7.0699973" height="0.344" y="-0.42800003">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="false" leftEdge="7.1346707" rightEdge="7.618671" height="2.0" y="-1.3266662">
<moveComponent length="1.933" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.806" hasPlayerXSpeed="false" triggerDistance="-0.01"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="false" leftEdge="8.433706" rightEdge="11.159706" height="0.344" y="0.26000017">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="false" moving="false" deadly="false" leftEdge="13.846086" rightEdge="15.094085" height="0.229" y="-0.48550004">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="false" moving="false" deadly="false" leftEdge="15.60644" rightEdge="16.60044" height="0.395" y="-0.40250003">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="false" leftEdge="16.60941" rightEdge="17.577408" height="0.318" y="-1.2399998">
<moveComponent length="3.273" rotation="71.623" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="true" triggerDistance="-0.372"/>
</obstacleData>
<obstacleData floating="false" moving="false" deadly="true" leftEdge="20.558361" rightEdge="21.06836" height="0.306" y="-0.44700003">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="false" moving="false" deadly="false" leftEdge="21.069693" rightEdge="22.623693" height="0.28" y="-0.46000004">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="false" leftEdge="22.658495" rightEdge="24.161493" height="0.369" y="-0.3333333">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="false" leftEdge="24.258179" rightEdge="24.89518" height="0.255" y="-0.3466667">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="false" leftEdge="24.985664" rightEdge="25.647663" height="0.28" y="-0.44666666">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="false" leftEdge="27.173311" rightEdge="27.673311" height="0.318" y="-0.44100004">
<moveComponent length="0.928" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.404" hasPlayerXSpeed="false" triggerDistance="0.505"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="false" leftEdge="29.002832" rightEdge="29.843832" height="0.217" y="-0.49150002">
<moveComponent length="1.186" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.801" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="false" moving="true" deadly="true" leftEdge="30.963612" rightEdge="31.829613" height="0.191" y="-0.50450003">
<moveComponent length="1.211" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.301" hasPlayerXSpeed="false" triggerDistance="1.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="31.885813" rightEdge="32.420815" height="0.433" y="0.006666662">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="11.342353" rightEdge="11.724353" height="0.561" y="0.25999996">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
</obstacles>
<stars class="java.util.ArrayList">
<positionData x="3.9999979" y="0.44666645"/>
<positionData x="9.76005" y="0.6066667"/>
<positionData x="26.976616" y="0.27333334"/>
</stars>
<energy x="18.570074" y="0.46666658"/>
</level>
</levels>
</levelPack>

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -168,6 +168,10 @@ public class ParticleSource {
this.position = position;
}
public Vector getPosition() {
return position;
}
public void setDelayMS(float delay) {
currentDelay = delay;
delayManuallySet = true;

View File

@ -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) {

View File

@ -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

View File

@ -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");
}

View File

@ -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<Entity> uncategorizedEntities = Collections
.synchronizedList(new ArrayList<Entity>());
@ -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<? extends Entity> list, Timer timer) {

View File

@ -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());
}
}

View File

@ -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<RelativeLayout> 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<RelativeLayout> implements View.OnClic
@Override
public void prepareToBeShown() {
glView.setCurrentRendering(rendering);
((StartScene) rendering.getScene()).randomizeWorld();
((StartScene) rendering.getScene()).loadTexturesForCurrentWorld();
}
@Override

View File

@ -30,8 +30,9 @@ public class StartScreenRendering extends Rendering<StartScene> {
this.timer = timer;
if (isFirstTime)
scene = new StartScene(texturePack, particleSystem);
else
else {
scene.setTexturePack(texturePack);
}
try {
particleSystem.loadTextures();
} catch (Exception e) {

View File

@ -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() {

View File

@ -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);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

View File

@ -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"/>
<include
android:id="@+id/goal_message_next_level"
layout="@layout/goal_message_levelbutton"
android:layout_centerVertical="true"
android:layout_alignParentEnd="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

View File

@ -5,50 +5,51 @@
android:background="@drawable/xml_background_game_over_message_button"
android:orientation="vertical">
<TextView
android:id="@+id/goal_message_levelbutton_textview"
<TextView
android:id="@+id/goal_message_levelbutton_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/placeholder_textview"
android:textAlignment="center"
android:textColor="@color/message_views"
android:textSize="30sp"/>
<LinearLayout
android:id="@+id/goal_message_bottom_layout"
android:layout_width="140dp"
android:layout_height="40dp"
android:layout_gravity="center_horizontal"
android:orientation="horizontal">
<ImageView
android:id="@+id/goal_message_levelbutton_star1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/placeholder_textview"
android:textSize="30sp"
android:textColor="@color/message_views"
android:layout_gravity="center_horizontal"
android:textAlignment="center"/>
android:layout_weight="1"
android:src="@drawable/currency_star_empty"/>
<LinearLayout
android:orientation="horizontal"
android:layout_width="140dp"
android:layout_height="40dp"
android:layout_gravity="center_horizontal">
<ImageView
android:id="@+id/goal_message_levelbutton_star2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/currency_star_empty"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/currency_star_empty"
android:id="@+id/goal_message_levelbutton_star1"
android:layout_weight="1"/>
<ImageView
android:id="@+id/goal_message_levelbutton_star3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/currency_star_empty"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/currency_star_empty"
android:id="@+id/goal_message_levelbutton_star2"
android:layout_weight="1"/>
<ImageView
android:id="@+id/goal_message_levelbutton_energy"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/currency_energy_empty"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/currency_star_empty"
android:id="@+id/goal_message_levelbutton_star3"
android:layout_weight="1"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/currency_energy_empty"
android:id="@+id/goal_message_levelbutton_energy"
android:layout_weight="1"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>

View File

@ -2,7 +2,6 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/backgrounds_menu_grass"
android:orientation="vertical">
<include
@ -13,6 +12,7 @@
<HorizontalScrollView
android:id="@+id/horizontalScrollView"
android:background="@drawable/backgrounds_menu_grasslands"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center">

View File

@ -2,7 +2,6 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/backgrounds_menu_grass"
android:orientation="vertical">
<include
@ -14,6 +13,7 @@
<RelativeLayout
android:layout_width="match_parent"
android:background="@drawable/backgrounds_menu_grasslands"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"

View File

@ -1,8 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/backgrounds_menu_grass">
android:layout_height="match_parent">
<include
android:id="@+id/shape_shop_topbar"
@ -12,6 +11,7 @@
<RelativeLayout
android:layout_width="match_parent"
android:background="@drawable/backgrounds_menu_grasslands"
android:layout_height="match_parent"
android:layout_below="@id/shape_shop_topbar">

View File

@ -1,8 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/backgrounds_menu_grass">
android:layout_height="match_parent">
<include
android:id="@+id/toolshop_topbar"
@ -13,6 +12,7 @@
<RelativeLayout
android:layout_width="match_parent"
android:background="@drawable/backgrounds_menu_grasslands"
android:layout_height="match_parent"
android:layout_below="@+id/toolshop_topbar">

View File

@ -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"/>
</RelativeLayout>

View File

@ -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"/>
<ImageView
android:id="@+id/worldbutton_lock"

View File

@ -1,8 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/backgrounds_menu_grass">
android:layout_height="match_parent">
<include
android:id="@+id/worlds_topbar"
@ -11,10 +10,15 @@
android:layout_height="wrap_content"
android:layout_alignParentTop="true"/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_below="@+id/worlds_topbar"
android:background="@drawable/backgrounds_menu_grasslands"
android:layout_height="match_parent">
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/worlds_topbar"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp">
@ -27,5 +31,6 @@
</LinearLayout>
</HorizontalScrollView>
</RelativeLayout>
</RelativeLayout>

View File

@ -23,6 +23,7 @@
<string name="message_next_level">Next level</string>
<string name="goal_message_restart_format_d">Restart Level %d</string>
<string name="goal_message_next_level_format_d">Next Level: %d</string>
<string name="goal_message_next_world_format_s">Go to the next world:\n%s</string>
<string name="pre_start_screen_loading">LOADING...</string>
<string name="short_menu_continue">Continue</string>
<string name="short_menu_restart">Restart</string>
@ -76,7 +77,7 @@
<string name="tool_description_locked_format_d">You will unlock this mysterious tool at level %d</string>
<string name="tool_description_ramp">Roll up the ramp to gain height</string>
<string name="tool_description_spring">Shoots you in the air</string>
<string name="tool_description_magnet">Difficult to handle, but if you master it you can do anything</string>
<string name="tool_description_magnet">Difficult to handle, but give it a try</string>
<string name="tool_description_bomb">Blow up all obstacles near the bomb</string>
<string name="tool_description_power_mushroom">This will give you super-powers for a few seconds</string>
<string name="tool_description_stasis">Freezes a certain area which leads to longer in-air time</string>