Compare commits

...

7 Commits

1953 changed files with 14752 additions and 20659 deletions
3dtree.tscn
Assets
Classes
Enemies
PCs
Resources
Scenes
Scripts
Shader
Textures
Towers
UI
AchievementPopup
EnemyCard
KeybindEntry.gd
Keybinding
KennyControllerPrompts
Mouse
Playstation
controller_playstation1.pngcontroller_playstation1.png.importcontroller_playstation2.pngcontroller_playstation2.png.importcontroller_playstation3.pngcontroller_playstation3.png.importcontroller_playstation4.pngcontroller_playstation4.png.importcontroller_playstation5.pngcontroller_playstation5.png.importplaystation3_button_select.pngplaystation3_button_select.png.importplaystation3_button_select_outline.pngplaystation3_button_select_outline.png.importplaystation3_button_start.pngplaystation3_button_start.png.importplaystation3_button_start_outline.pngplaystation3_button_start_outline.png.importplaystation4_button_options.pngplaystation4_button_options.png.importplaystation4_button_options_outline.pngplaystation4_button_options_outline.png.importplaystation4_button_share.pngplaystation4_button_share.png.importplaystation4_button_share_outline.pngplaystation4_button_share_outline.png.importplaystation4_touchpad.pngplaystation4_touchpad.png.importplaystation4_touchpad_outline.pngplaystation4_touchpad_outline.png.importplaystation4_touchpad_press.pngplaystation4_touchpad_press.png.importplaystation4_touchpad_press_center.pngplaystation4_touchpad_press_center.png.importplaystation4_touchpad_press_left.pngplaystation4_touchpad_press_left.png.importplaystation4_touchpad_press_right.pngplaystation4_touchpad_press_right.png.importplaystation4_touchpad_selected.pngplaystation4_touchpad_selected.png.importplaystation4_touchpad_swipe_down.pngplaystation4_touchpad_swipe_down.png.importplaystation4_touchpad_swipe_horizontal.pngplaystation4_touchpad_swipe_horizontal.png.importplaystation4_touchpad_swipe_left.pngplaystation4_touchpad_swipe_left.png.importplaystation4_touchpad_swipe_right.pngplaystation4_touchpad_swipe_right.png.importplaystation4_touchpad_swipe_up.pngplaystation4_touchpad_swipe_up.png.importplaystation4_touchpad_swipe_vertical.pngplaystation4_touchpad_swipe_vertical.png.importplaystation4_touchpad_touch.pngplaystation4_touchpad_touch.png.importplaystation4_touchpad_touch_outline.pngplaystation4_touchpad_touch_outline.png.importplaystation5_button_create.pngplaystation5_button_create.png.importplaystation5_button_create_alternative.pngplaystation5_button_create_alternative.png.importplaystation5_button_create_alternative_outline.pngplaystation5_button_create_alternative_outline.png.importplaystation5_button_create_outline.pngplaystation5_button_create_outline.png.importplaystation5_button_mute.pngplaystation5_button_mute.png.importplaystation5_button_mute_outline.pngplaystation5_button_mute_outline.png.importplaystation5_button_options.pngplaystation5_button_options.png.importplaystation5_button_options_alternative.pngplaystation5_button_options_alternative.png.importplaystation5_button_options_alternative_outline.pngplaystation5_button_options_alternative_outline.png.importplaystation5_button_options_outline.pngplaystation5_button_options_outline.png.importplaystation5_elite_fn_l.pngplaystation5_elite_fn_l.png.importplaystation5_elite_fn_l_outline.pngplaystation5_elite_fn_l_outline.png.importplaystation5_elite_fn_r.pngplaystation5_elite_fn_r.png.importplaystation5_elite_fn_r_outline.pngplaystation5_elite_fn_r_outline.png.importplaystation5_elite_lb.pngplaystation5_elite_lb.png.importplaystation5_elite_lb_outline.pngplaystation5_elite_lb_outline.png.importplaystation5_elite_rb.pngplaystation5_elite_rb.png.importplaystation5_elite_rb_outline.pngplaystation5_elite_rb_outline.png.importplaystation5_touchpad.pngplaystation5_touchpad.png.importplaystation5_touchpad_outline.pngplaystation5_touchpad_outline.png.importplaystation5_touchpad_press.pngplaystation5_touchpad_press.png.importplaystation5_touchpad_press_center.pngplaystation5_touchpad_press_center.png.importplaystation5_touchpad_press_left.pngplaystation5_touchpad_press_left.png.importplaystation5_touchpad_press_right.pngplaystation5_touchpad_press_right.png.importplaystation5_touchpad_selected.pngplaystation5_touchpad_selected.png.importplaystation5_touchpad_swipe_down.pngplaystation5_touchpad_swipe_down.png.importplaystation5_touchpad_swipe_horizontal.pngplaystation5_touchpad_swipe_horizontal.png.importplaystation5_touchpad_swipe_left.pngplaystation5_touchpad_swipe_left.png.importplaystation5_touchpad_swipe_right.pngplaystation5_touchpad_swipe_right.png.importplaystation5_touchpad_swipe_up.pngplaystation5_touchpad_swipe_up.png.importplaystation5_touchpad_swipe_vertical.pngplaystation5_touchpad_swipe_vertical.png.importplaystation5_touchpad_touch.pngplaystation5_touchpad_touch.png.importplaystation5_touchpad_touch_outline.pngplaystation5_touchpad_touch_outline.png.importplaystation_button_analog.pngplaystation_button_analog.png.importplaystation_button_analog_outline.pngplaystation_button_analog_outline.png.importplaystation_button_circle.pngplaystation_button_circle.png.importplaystation_button_circle_outline.pngplaystation_button_circle_outline.png.importplaystation_button_color_circle.pngplaystation_button_color_circle.png.importplaystation_button_color_circle_outline.pngplaystation_button_color_circle_outline.png.importplaystation_button_color_cross.pngplaystation_button_color_cross.png.importplaystation_button_color_cross_outline.pngplaystation_button_color_cross_outline.png.importplaystation_button_color_square.pngplaystation_button_color_square.png.importplaystation_button_color_square_outline.pngplaystation_button_color_square_outline.png.importplaystation_button_color_triangle.pngplaystation_button_color_triangle.png.importplaystation_button_color_triangle_outline.pngplaystation_button_color_triangle_outline.png.importplaystation_button_cross.pngplaystation_button_cross.png.importplaystation_button_cross_outline.pngplaystation_button_cross_outline.png.importplaystation_button_l3.pngplaystation_button_l3.png.importplaystation_button_l3_outline.pngplaystation_button_l3_outline.png.importplaystation_button_r3.pngplaystation_button_r3.png.importplaystation_button_r3_outline.pngplaystation_button_r3_outline.png.importplaystation_button_square.pngplaystation_button_square.png.importplaystation_button_square_outline.pngplaystation_button_square_outline.png.importplaystation_button_triangle.pngplaystation_button_triangle.png.importplaystation_button_triangle_outline.pngplaystation_button_triangle_outline.png.importplaystation_dpad.pngplaystation_dpad.png.importplaystation_dpad_all.pngplaystation_dpad_all.png.importplaystation_dpad_down.pngplaystation_dpad_down.png.importplaystation_dpad_down_outline.pngplaystation_dpad_down_outline.png.importplaystation_dpad_horizontal.pngplaystation_dpad_horizontal.png.importplaystation_dpad_horizontal_outline.pngplaystation_dpad_horizontal_outline.png.importplaystation_dpad_left.pngplaystation_dpad_left.png.importplaystation_dpad_left_outline.pngplaystation_dpad_left_outline.png.importplaystation_dpad_none.pngplaystation_dpad_none.png.importplaystation_dpad_right.pngplaystation_dpad_right.png.importplaystation_dpad_right_outline.pngplaystation_dpad_right_outline.png.importplaystation_dpad_up.pngplaystation_dpad_up.png.importplaystation_dpad_up_outline.pngplaystation_dpad_up_outline.png.importplaystation_dpad_vertical.pngplaystation_dpad_vertical.png.importplaystation_dpad_vertical_outline.pngplaystation_dpad_vertical_outline.png.importplaystation_stick_l.pngplaystation_stick_l.png.importplaystation_stick_l_down.pngplaystation_stick_l_down.png.importplaystation_stick_l_horizontal.pngplaystation_stick_l_horizontal.png.importplaystation_stick_l_left.pngplaystation_stick_l_left.png.importplaystation_stick_l_press.pngplaystation_stick_l_press.png.importplaystation_stick_l_right.pngplaystation_stick_l_right.png.importplaystation_stick_l_up.pngplaystation_stick_l_up.png.importplaystation_stick_l_vertical.pngplaystation_stick_l_vertical.png.importplaystation_stick_r.pngplaystation_stick_r.png.importplaystation_stick_r_down.pngplaystation_stick_r_down.png.importplaystation_stick_r_horizontal.pngplaystation_stick_r_horizontal.png.importplaystation_stick_r_left.pngplaystation_stick_r_left.png.importplaystation_stick_r_press.pngplaystation_stick_r_press.png.importplaystation_stick_r_right.pngplaystation_stick_r_right.png.importplaystation_stick_r_up.pngplaystation_stick_r_up.png.importplaystation_stick_r_vertical.pngplaystation_stick_r_vertical.png.importplaystation_stick_side_l.pngplaystation_stick_side_l.png.importplaystation_stick_side_r.pngplaystation_stick_side_r.png.importplaystation_stick_top_l.pngplaystation_stick_top_l.png.importplaystation_stick_top_r.pngplaystation_stick_top_r.png.importplaystation_trigger_l1.pngplaystation_trigger_l1.png.importplaystation_trigger_l1_alternative.pngplaystation_trigger_l1_alternative.png.importplaystation_trigger_l1_alternative_outline.pngplaystation_trigger_l1_alternative_outline.png.importplaystation_trigger_l1_outline.pngplaystation_trigger_l1_outline.png.importplaystation_trigger_l2.pngplaystation_trigger_l2.png.importplaystation_trigger_l2_alternative.pngplaystation_trigger_l2_alternative.png.importplaystation_trigger_l2_alternative_outline.pngplaystation_trigger_l2_alternative_outline.png.importplaystation_trigger_l2_outline.pngplaystation_trigger_l2_outline.png.importplaystation_trigger_r1.pngplaystation_trigger_r1.png.importplaystation_trigger_r1_alternative.pngplaystation_trigger_r1_alternative.png.importplaystation_trigger_r1_alternative_outline.pngplaystation_trigger_r1_alternative_outline.png.importplaystation_trigger_r1_outline.pngplaystation_trigger_r1_outline.png.importplaystation_trigger_r2.pngplaystation_trigger_r2.png.importplaystation_trigger_r2_alternative.pngplaystation_trigger_r2_alternative.png.importplaystation_trigger_r2_alternative_outline.pngplaystation_trigger_r2_alternative_outline.png.importplaystation_trigger_r2_outline.pngplaystation_trigger_r2_outline.png.import
Xbox
controller_xbox360.pngcontroller_xbox360.png.importcontroller_xbox_adaptive.pngcontroller_xbox_adaptive.png.importcontroller_xboxone.pngcontroller_xboxone.png.importcontroller_xboxseries.pngcontroller_xboxseries.png.importxbox_button_a.pngxbox_button_a.png.importxbox_button_a_outline.pngxbox_button_a_outline.png.importxbox_button_b.pngxbox_button_b.png.importxbox_button_b_outline.pngxbox_button_b_outline.png.importxbox_button_back.pngxbox_button_back.png.importxbox_button_back_icon.pngxbox_button_back_icon.png.importxbox_button_back_icon_outline.pngxbox_button_back_icon_outline.png.importxbox_button_back_outline.pngxbox_button_back_outline.png.importxbox_button_color_a.pngxbox_button_color_a.png.importxbox_button_color_a_outline.pngxbox_button_color_a_outline.png.importxbox_button_color_b.pngxbox_button_color_b.png.importxbox_button_color_b_outline.pngxbox_button_color_b_outline.png.importxbox_button_color_x.pngxbox_button_color_x.png.importxbox_button_color_x_outline.pngxbox_button_color_x_outline.png.importxbox_button_color_y.pngxbox_button_color_y.png.importxbox_button_color_y_outline.pngxbox_button_color_y_outline.png.importxbox_button_menu.pngxbox_button_menu.png.importxbox_button_menu_outline.pngxbox_button_menu_outline.png.importxbox_button_share.pngxbox_button_share.png.importxbox_button_share_outline.pngxbox_button_share_outline.png.importxbox_button_start.pngxbox_button_start.png.importxbox_button_start_icon.pngxbox_button_start_icon.png.importxbox_button_start_icon_outline.pngxbox_button_start_icon_outline.png.importxbox_button_start_outline.pngxbox_button_start_outline.png.importxbox_button_view.pngxbox_button_view.png.importxbox_button_view_outline.pngxbox_button_view_outline.png.importxbox_button_x.pngxbox_button_x.png.importxbox_button_x_outline.pngxbox_button_x_outline.png.importxbox_button_y.pngxbox_button_y.png.importxbox_button_y_outline.pngxbox_button_y_outline.png.importxbox_dpad.pngxbox_dpad.png.importxbox_dpad_all.pngxbox_dpad_all.png.importxbox_dpad_down.pngxbox_dpad_down.png.importxbox_dpad_down_outline.pngxbox_dpad_down_outline.png.importxbox_dpad_horizontal.pngxbox_dpad_horizontal.png.importxbox_dpad_horizontal_outline.pngxbox_dpad_horizontal_outline.png.importxbox_dpad_left.pngxbox_dpad_left.png.importxbox_dpad_left_outline.pngxbox_dpad_left_outline.png.importxbox_dpad_none.pngxbox_dpad_none.png.importxbox_dpad_right.pngxbox_dpad_right.png.importxbox_dpad_right_outline.pngxbox_dpad_right_outline.png.importxbox_dpad_round.pngxbox_dpad_round.png.importxbox_dpad_round_all.pngxbox_dpad_round_all.png.importxbox_dpad_round_down.pngxbox_dpad_round_down.png.importxbox_dpad_round_horizontal.pngxbox_dpad_round_horizontal.png.importxbox_dpad_round_left.pngxbox_dpad_round_left.png.importxbox_dpad_round_right.pngxbox_dpad_round_right.png.importxbox_dpad_round_up.pngxbox_dpad_round_up.png.importxbox_dpad_round_vertical.pngxbox_dpad_round_vertical.png.importxbox_dpad_up.pngxbox_dpad_up.png.importxbox_dpad_up_outline.pngxbox_dpad_up_outline.png.importxbox_dpad_vertical.pngxbox_dpad_vertical.png.importxbox_dpad_vertical_outline.pngxbox_dpad_vertical_outline.png.importxbox_elite_paddle_bottom_left.pngxbox_elite_paddle_bottom_left.png.importxbox_elite_paddle_bottom_left_outline.pngxbox_elite_paddle_bottom_left_outline.png.importxbox_elite_paddle_bottom_right.pngxbox_elite_paddle_bottom_right.png.importxbox_elite_paddle_bottom_right_outline.pngxbox_elite_paddle_bottom_right_outline.png.importxbox_elite_paddle_top_left.pngxbox_elite_paddle_top_left.png.importxbox_elite_paddle_top_left_outline.pngxbox_elite_paddle_top_left_outline.png.importxbox_elite_paddle_top_right.pngxbox_elite_paddle_top_right.png.importxbox_elite_paddle_top_right_outline.pngxbox_elite_paddle_top_right_outline.png.importxbox_guide.pngxbox_guide.png.importxbox_guide_outline.pngxbox_guide_outline.png.importxbox_lb.pngxbox_lb.png.importxbox_lb_outline.pngxbox_lb_outline.png.importxbox_ls.pngxbox_ls.png.importxbox_ls_outline.pngxbox_ls_outline.png.importxbox_lt.pngxbox_lt.png.importxbox_lt_outline.pngxbox_lt_outline.png.importxbox_rb.pngxbox_rb.png.importxbox_rb_outline.pngxbox_rb_outline.png.importxbox_rs.pngxbox_rs.png.importxbox_rs_outline.pngxbox_rs_outline.png.importxbox_rt.pngxbox_rt.png.importxbox_rt_outline.pngxbox_rt_outline.png.importxbox_stick_l.pngxbox_stick_l.png.importxbox_stick_l_down.pngxbox_stick_l_down.png.importxbox_stick_l_horizontal.pngxbox_stick_l_horizontal.png.importxbox_stick_l_left.pngxbox_stick_l_left.png.importxbox_stick_l_press.pngxbox_stick_l_press.png.importxbox_stick_l_right.pngxbox_stick_l_right.png.importxbox_stick_l_up.pngxbox_stick_l_up.png.importxbox_stick_l_vertical.pngxbox_stick_l_vertical.png.importxbox_stick_r.pngxbox_stick_r.png.importxbox_stick_r_down.pngxbox_stick_r_down.png.importxbox_stick_r_horizontal.pngxbox_stick_r_horizontal.png.importxbox_stick_r_left.pngxbox_stick_r_left.png.importxbox_stick_r_press.pngxbox_stick_r_press.png.importxbox_stick_r_right.pngxbox_stick_r_right.png.importxbox_stick_r_up.pngxbox_stick_r_up.png.importxbox_stick_r_vertical.pngxbox_stick_r_vertical.png.importxbox_stick_side_l.pngxbox_stick_side_l.png.importxbox_stick_side_r.pngxbox_stick_side_r.png.importxbox_stick_top_l.pngxbox_stick_top_l.png.importxbox_stick_top_r.pngxbox_stick_top_r.png.import
XeluController&KeyPrompts
Keyboard & Mouse
Light
0_Key_Light.png0_Key_Light.png.import10_Key_Light.png10_Key_Light.png.import11_Key_Light.png11_Key_Light.png.import12_Key_Light.png12_Key_Light.png.import1_Key_Light.png1_Key_Light.png.import2_Key_Light.png2_Key_Light.png.import3_Key_Light.png3_Key_Light.png.import4_Key_Light.png4_Key_Light.png.import5_Key_Light.png5_Key_Light.png.import6_Key_Light.png6_Key_Light.png.import7_Key_Light.png7_Key_Light.png.import8_Key_Light.png8_Key_Light.png.import9_Key_Light.png9_Key_Light.png.importA_Key_Light.pngA_Key_Light.png.importAlt_Key_Light.pngAlt_Key_Light.png.importArrow_Down_Key_Light.pngArrow_Down_Key_Light.png.importArrow_Left_Key_Light.pngArrow_Left_Key_Light.png.importArrow_Right_Key_Light.pngArrow_Right_Key_Light.png.importArrow_Up_Key_Light.pngArrow_Up_Key_Light.png.importAsterisk_Key_Light.pngAsterisk_Key_Light.png.importB_Key_Light.pngB_Key_Light.png.importBackspace_Alt_Key_Light.pngBackspace_Alt_Key_Light.png.importBackspace_Key_Light.pngBackspace_Key_Light.png.importBracket_Left_Key_Light.pngBracket_Left_Key_Light.png.importBracket_Right_Key_Light.pngBracket_Right_Key_Light.png.importC_Key_Light.pngC_Key_Light.png.importCaps_Lock_Key_Light.pngCaps_Lock_Key_Light.png.importCommand_Key_Light.pngCommand_Key_Light.png.importCtrl_Key_Light.pngCtrl_Key_Light.png.importD_Key_Light.pngD_Key_Light.png.importDel_Key_Light.pngDel_Key_Light.png.importE_Key_Light.pngE_Key_Light.png.importEnd_Key_Light.pngEnd_Key_Light.png.importEnter_Alt_Key_Light.pngEnter_Alt_Key_Light.png.importEnter_Key_Light.pngEnter_Key_Light.png.importEnter_Tall_Key_Light.pngEnter_Tall_Key_Light.png.importEsc_Key_Light.pngEsc_Key_Light.png.importF10_Key_Light.pngF10_Key_Light.png.importF11_Key_Light.pngF11_Key_Light.png.importF12_Key_Light.pngF12_Key_Light.png.importF1_Key_Light.pngF1_Key_Light.png.importF2_Key_Light.pngF2_Key_Light.png.importF3_Key_Light.pngF3_Key_Light.png.importF4_Key_Light.pngF4_Key_Light.png.importF5_Key_Light.pngF5_Key_Light.png.importF6_Key_Light.pngF6_Key_Light.png.importF7_Key_Light.pngF7_Key_Light.png.importF8_Key_Light.pngF8_Key_Light.png.importF9_Key_Light.pngF9_Key_Light.png.importF_Key_Light.pngF_Key_Light.png.importG_Key_Light.pngG_Key_Light.png.importH_Key_Light.pngH_Key_Light.png.importHome_Key_Light.pngHome_Key_Light.png.importI_Key_Light.pngI_Key_Light.png.importInsert_Key_Light.pngInsert_Key_Light.png.importJ_Key_Light.pngJ_Key_Light.png.importK_Key_Light.pngK_Key_Light.png.importL_Key_Light.pngL_Key_Light.png.importM_Key_Light.pngM_Key_Light.png.importMark_Left_Key_Light.pngMark_Left_Key_Light.png.importMark_Right_Key_Light.pngMark_Right_Key_Light.png.importMinus_Key_Light.pngMinus_Key_Light.png.importMouse_Left_Key_Light.pngMouse_Left_Key_Light.png.importMouse_Middle_Key_Light.pngMouse_Middle_Key_Light.png.importMouse_Right_Key_Light.pngMouse_Right_Key_Light.png.importMouse_Simple_Key_Light.pngMouse_Simple_Key_Light.png.importN_Key_Light.pngN_Key_Light.png.importNum_Lock_Key_Light.pngNum_Lock_Key_Light.png.importO_Key_Light.pngO_Key_Light.png.importP_Key_Light.pngP_Key_Light.png.importPage_Down_Key_Light.pngPage_Down_Key_Light.png.importPage_Up_Key_Light.pngPage_Up_Key_Light.png.importPlus_Key_Light.pngPlus_Key_Light.png.importPlus_Tall_Key_Light.pngPlus_Tall_Key_Light.png.importPrint_Screen_Key_Light.pngPrint_Screen_Key_Light.png.importQ_Key_Light.pngQ_Key_Light.png.importQuestion_Key_Light.pngQuestion_Key_Light.png.importQuote_Key_Light.pngQuote_Key_Light.png.importR_Key_Light.pngR_Key_Light.png.importS_Key_Light.pngS_Key_Light.png.importSemicolon_Key_Light.pngSemicolon_Key_Light.png.importShift_Alt_Key_Light.pngShift_Alt_Key_Light.png.importShift_Key_Light.pngShift_Key_Light.png.importSlash_Key_Light.pngSlash_Key_Light.png.importSpace_Key_Light.pngSpace_Key_Light.png.importT_Key_Light.pngT_Key_Light.png.importTab_Key_Light.pngTab_Key_Light.png.importTilda_Key_Light.pngTilda_Key_Light.png.importU_Key_Light.pngU_Key_Light.png.importV_Key_Light.pngV_Key_Light.png.importW_Key_Light.pngW_Key_Light.png.importWin_Key_Light.pngWin_Key_Light.png.importX_Key_Light.pngX_Key_Light.png.importY_Key_Light.pngY_Key_Light.png.importZ_Key_Light.pngZ_Key_Light.png.import
Vector Source.fla
key_icon_map.gdkey_icon_map.gd.uid
keybind_screen.gdnew_theme.tres
Weapons
Worlds
XeluController&KeyPrompts
Keyboard & Mouse
Blanks
Dark
0_Key_Dark.png10_Key_Dark.png11_Key_Dark.png12_Key_Dark.png1_Key_Dark.png2_Key_Dark.png2_Key_Dark.png.import3_Key_Dark.png4_Key_Dark.png4_Key_Dark.png.import5_Key_Dark.png5_Key_Dark.png.import6_Key_Dark.png6_Key_Dark.png.import7_Key_Dark.png7_Key_Dark.png.import8_Key_Dark.png8_Key_Dark.png.import9_Key_Dark.png9_Key_Dark.png.importA_Key_Dark.pngA_Key_Dark.png.importAlt_Key_Dark.pngAlt_Key_Dark.png.importArrow_Down_Key_Dark.pngArrow_Down_Key_Dark.png.importArrow_Left_Key_Dark.pngArrow_Left_Key_Dark.png.importArrow_Right_Key_Dark.pngArrow_Right_Key_Dark.png.importArrow_Up_Key_Dark.pngArrow_Up_Key_Dark.png.importAsterisk_Key_Dark.pngAsterisk_Key_Dark.png.importB_Key_Dark.pngBackspace_Alt_Key_Dark.pngBackspace_Alt_Key_Dark.png.importBackspace_Key_Dark.pngBackspace_Key_Dark.png.importBracket_Left_Key_Dark.pngBracket_Left_Key_Dark.png.importBracket_Right_Key_Dark.pngBracket_Right_Key_Dark.png.importC_Key_Dark.pngC_Key_Dark.png.importCaps_Lock_Key_Dark.pngCaps_Lock_Key_Dark.png.importCommand_Key_Dark.pngCommand_Key_Dark.png.importCtrl_Key_Dark.pngCtrl_Key_Dark.png.importD_Key_Dark.pngD_Key_Dark.png.importDel_Key_Dark.pngDel_Key_Dark.png.importE_Key_Dark.pngE_Key_Dark.png.importEnd_Key_Dark.pngEnd_Key_Dark.png.importEnter_Alt_Key_Dark.pngEnter_Key_Dark.pngEnter_Key_Dark.png.importEnter_Tall_Key_Dark.pngEnter_Tall_Key_Dark.png.importEsc_Key_Dark.pngEsc_Key_Dark.png.importF10_Key_Dark.pngF10_Key_Dark.png.importF11_Key_Dark.pngF12_Key_Dark.pngF12_Key_Dark.png.importF1_Key_Dark.pngF1_Key_Dark.png.importF2_Key_Dark.pngF2_Key_Dark.png.importF3_Key_Dark.pngF3_Key_Dark.png.importF4_Key_Dark.pngF4_Key_Dark.png.importF5_Key_Dark.pngF5_Key_Dark.png.importF6_Key_Dark.pngF6_Key_Dark.png.importF7_Key_Dark.pngF7_Key_Dark.png.importF8_Key_Dark.pngF8_Key_Dark.png.importF9_Key_Dark.pngF9_Key_Dark.png.importF_Key_Dark.pngF_Key_Dark.png.importG_Key_Dark.pngG_Key_Dark.png.importH_Key_Dark.pngH_Key_Dark.png.importHome_Key_Dark.pngHome_Key_Dark.png.importI_Key_Dark.pngInsert_Key_Dark.pngInsert_Key_Dark.png.importJ_Key_Dark.pngJ_Key_Dark.png.importK_Key_Dark.pngK_Key_Dark.png.importL_Key_Dark.pngL_Key_Dark.png.importM_Key_Dark.pngM_Key_Dark.png.importMark_Left_Key_Dark.pngMark_Left_Key_Dark.png.importMark_Right_Key_Dark.pngMark_Right_Key_Dark.png.importMinus_Key_Dark.pngMinus_Key_Dark.png.importMouse_Left_Key_Dark.pngMouse_Left_Key_Dark.png.importMouse_Middle_Key_Dark.pngMouse_Middle_Key_Dark.png.importMouse_Right_Key_Dark.pngMouse_Right_Key_Dark.png.importMouse_Simple_Key_Dark.pngMouse_Simple_Key_Dark.png.importN_Key_Dark.pngNum_Lock_Key_Dark.pngO_Key_Dark.pngO_Key_Dark.png.importP_Key_Dark.pngP_Key_Dark.png.importPage_Down_Key_Dark.pngPage_Down_Key_Dark.png.importPage_Up_Key_Dark.pngPage_Up_Key_Dark.png.importPlus_Key_Dark.pngPlus_Tall_Key_Dark.pngPlus_Tall_Key_Dark.png.importPrint_Screen_Key_Dark.pngPrint_Screen_Key_Dark.png.importQ_Key_Dark.pngQ_Key_Dark.png.importQuestion_Key_Dark.pngQuestion_Key_Dark.png.importQuote_Key_Dark.pngQuote_Key_Dark.png.importR_Key_Dark.pngR_Key_Dark.png.importS_Key_Dark.pngS_Key_Dark.png.importSemicolon_Key_Dark.pngSemicolon_Key_Dark.png.importShift_Alt_Key_Dark.pngShift_Key_Dark.pngShift_Key_Dark.png.importSlash_Key_Dark.pngSlash_Key_Dark.png.importSpace_Key_Dark.pngSpace_Key_Dark.png.importT_Key_Dark.pngT_Key_Dark.png.importTab_Key_Dark.pngTab_Key_Dark.png.importTilda_Key_Dark.pngTilda_Key_Dark.png.importU_Key_Dark.pngU_Key_Dark.png.importV_Key_Dark.pngV_Key_Dark.png.importW_Key_Dark.pngW_Key_Dark.png.importWin_Key_Dark.pngX_Key_Dark.pngX_Key_Dark.png.importY_Key_Dark.pngY_Key_Dark.png.importZ_Key_Dark.pngZ_Key_Dark.png.import
Light
Others
Amazon Luna
Arrows
Controller_Disconnected.pngController_Disconnected.png.import
Gestures
Google Stadia
Ouya
PS Move
PS Vita
PS3
PS4
Positional Prompts
Preview.fla
Steam
VR
Oculus
Vive
Wii
WiiU
Xbox 360
Xbox One
PS5
Readme.txt
Steam Deck
Switch
Xbox Series
achievement_popup.gdblk-nx64-1x.pngblk-nx64-1x.png.importbridge.glbcube.glbcube.glb.importcube2.tscndrafting_table.glbdrafting_table.glb.importdrafting_table_plan_tex.pngdrafting_table_plan_tex.png.importenergy_bar.gdenergy_bar.tscnexport_presets.cfgflow_field.gdflow_field.gd.uidflow_field.tscnflow_field_tool.tscnflow_field_tool_output.tscnflow_node.glbflow_node.glb.importflow_node.tscnflow_node2.tscnfoliage.gdshaderfoliage.gdshader.uid
foliage
gif_animation.gdgif_animation.gd.uidjitter.gdshaderjitter.gdshader.uidlost-century-1x.pnglost-century-1x.png.importmain.gdmain.gd.uidmain.tscnpath_polygon.tscnpixelate.gdshaderpixelate.gdshader.uidpixeldither.gdshaderpixeldither.gdshader.uidplaystation.gdshaderplaystation.gdshader.uidproject.godotprototype.trespsx.gdshaderpsx.gdshader.uidresurrect-64-1x.pngresurrect-64-1x.png.importtextmesh.restile.trestiler.gdshadertiler.gdshader.uidtree_test.glbtree_test.glb.importtutorial.gdtutorial.gd.uidtutorial.tscnworld_test.tscn

15
3dtree.tscn Normal file

@ -0,0 +1,15 @@
[gd_scene load_steps=4 format=3 uid="uid://406wnf58lo7h"]
[ext_resource type="PackedScene" uid="uid://bvyx8hxvka7vu" path="res://tree_test.glb" id="1_pscrb"]
[ext_resource type="Material" uid="uid://cqwo7la40rbkn" path="res://foliage/foliage.material" id="2_kkjgf"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_us4dp"]
albedo_color = Color(0.326727, 0.157357, 0.00483305, 1)
[node name="tree_test" instance=ExtResource("1_pscrb")]
[node name="Cube" parent="." index="0"]
surface_material_override/0 = SubResource("StandardMaterial3D_us4dp")
[node name="Cube_001" parent="." index="1"]
surface_material_override/0 = ExtResource("2_kkjgf")

Binary file not shown.

@ -0,0 +1,35 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://batrfsos6x38m"
path="res://.godot/imported/Kaph-Italic.otf-b932c8d71aaa63b737342951ee078e8c.fontdata"
[deps]
source_file="res://Assets/Fonts/OpenType (.otf)/Kaph-Italic.otf"
dest_files=["res://.godot/imported/Kaph-Italic.otf-b932c8d71aaa63b737342951ee078e8c.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
hinting=1
subpixel_positioning=4
keep_rounding_remainders=true
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

Binary file not shown.

@ -0,0 +1,35 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://c3hwdjscf2hnk"
path="res://.godot/imported/Kaph-Regular.otf-c770fc91b9eb1ce8db6944bab31619b9.fontdata"
[deps]
source_file="res://Assets/Fonts/OpenType (.otf)/Kaph-Regular.otf"
dest_files=["res://.godot/imported/Kaph-Regular.otf-c770fc91b9eb1ce8db6944bab31619b9.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
hinting=1
subpixel_positioning=4
keep_rounding_remainders=true
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

Binary file not shown.

@ -0,0 +1,35 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://cx86thi8mw004"
path="res://.godot/imported/Kaph-Italic.ttf-31eaeaf877ae291841853cd19c804cff.fontdata"
[deps]
source_file="res://Assets/Fonts/TrueType (.ttf)/Kaph-Italic.ttf"
dest_files=["res://.godot/imported/Kaph-Italic.ttf-31eaeaf877ae291841853cd19c804cff.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
hinting=1
subpixel_positioning=4
keep_rounding_remainders=true
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

Binary file not shown.

@ -0,0 +1,35 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://nplrjxvauux5"
path="res://.godot/imported/Kaph-Regular.ttf-3e4a3d814747db553ebe53d1dc381d87.fontdata"
[deps]
source_file="res://Assets/Fonts/TrueType (.ttf)/Kaph-Regular.ttf"
dest_files=["res://.godot/imported/Kaph-Regular.ttf-3e4a3d814747db553ebe53d1dc381d87.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
hinting=1
subpixel_positioning=4
keep_rounding_remainders=true
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

Binary file not shown.

@ -0,0 +1,35 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://ybhk4hblpvu2"
path="res://.godot/imported/Kaph-Italic.woff-408cfefde00325f89e26cdd96bcff524.fontdata"
[deps]
source_file="res://Assets/Fonts/Web Open Font Format (.woff)/Kaph-Italic.woff"
dest_files=["res://.godot/imported/Kaph-Italic.woff-408cfefde00325f89e26cdd96bcff524.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
hinting=1
subpixel_positioning=4
keep_rounding_remainders=true
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

Binary file not shown.

@ -0,0 +1,35 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://e2e3jmoyo8p6"
path="res://.godot/imported/Kaph-Italic.woff2-00d7afb1c8d47f57b914cef10b8f58d1.fontdata"
[deps]
source_file="res://Assets/Fonts/Web Open Font Format (.woff)/Kaph-Italic.woff2"
dest_files=["res://.godot/imported/Kaph-Italic.woff2-00d7afb1c8d47f57b914cef10b8f58d1.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
hinting=1
subpixel_positioning=4
keep_rounding_remainders=true
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

Binary file not shown.

@ -0,0 +1,35 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://cnikb22cx5s51"
path="res://.godot/imported/Kaph-Regular.woff-fc271f9b94e07fbf896c6ad9c61a5014.fontdata"
[deps]
source_file="res://Assets/Fonts/Web Open Font Format (.woff)/Kaph-Regular.woff"
dest_files=["res://.godot/imported/Kaph-Regular.woff-fc271f9b94e07fbf896c6ad9c61a5014.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
hinting=1
subpixel_positioning=4
keep_rounding_remainders=true
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

Binary file not shown.

@ -0,0 +1,35 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://dskkuioa22v7a"
path="res://.godot/imported/Kaph-Regular.woff2-79e390799d1d1d3f7ecd9fa77b6726a8.fontdata"
[deps]
source_file="res://Assets/Fonts/Web Open Font Format (.woff)/Kaph-Regular.woff2"
dest_files=["res://.godot/imported/Kaph-Regular.woff2-79e390799d1d1d3f7ecd9fa77b6726a8.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
hinting=1
subpixel_positioning=4
keep_rounding_remainders=true
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

Binary file not shown.

After

(image error) Size: 228 KiB

@ -2,16 +2,16 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://i4ls0ikg5j1n" uid="uid://6frn8lcwwehv"
path="res://.godot/imported/Wii_1.png-dd049b4cdf931ece103a262eefc0c13a.ctex" path="res://.godot/imported/puppyfruit.png-4202c2b53b1e609128620576392b70df.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://XeluController&KeyPrompts/Others/Wii/Wii_1.png" source_file="res://Assets/TextureAtlases/puppyfruit.png"
dest_files=["res://.godot/imported/Wii_1.png-dd049b4cdf931ece103a262eefc0c13a.ctex"] dest_files=["res://.godot/imported/puppyfruit.png-4202c2b53b1e609128620576392b70df.ctex"]
[params] [params]

Binary file not shown.

After

(image error) Size: 260 B

@ -2,16 +2,16 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://cuqfsr204gxn8" uid="uid://broy365egmulr"
path="res://.godot/imported/Luna_LB.png-42d343970348c7d636d3675795d56263.ctex" path="res://.godot/imported/bracket_b_vertical.png-315545aada90ad95c2805a4864e6e856.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://XeluController&KeyPrompts/Others/Amazon Luna/Luna_LB.png" source_file="res://Assets/Textures/bracket_b_vertical.png"
dest_files=["res://.godot/imported/Luna_LB.png-42d343970348c7d636d3675795d56263.ctex"] dest_files=["res://.godot/imported/bracket_b_vertical.png-315545aada90ad95c2805a4864e6e856.ctex"]
[params] [params]

Binary file not shown.

After

(image error) Size: 1.3 MiB

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dqrfgw65d0sq8"
path.s3tc="res://.godot/imported/bridge_map.png-c72524a9194bfb29ec0afa9089c51f6d.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://Assets/Textures/bridge_map.png"
dest_files=["res://.godot/imported/bridge_map.png-c72524a9194bfb29ec0afa9089c51f6d.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

Binary file not shown.

After

(image error) Size: 482 B

@ -2,16 +2,16 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://2v3sc50kir27" uid="uid://bs2mskoyvyehv"
path="res://.godot/imported/Wii_2.png-e142711e6b8cdb75d801339e85ea1fc3.ctex" path="res://.godot/imported/crosshair159.png-1ca12955e39d6730ad57a007ee3592c9.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://XeluController&KeyPrompts/Others/Wii/Wii_2.png" source_file="res://Assets/Textures/crosshair159.png"
dest_files=["res://.godot/imported/Wii_2.png-e142711e6b8cdb75d801339e85ea1fc3.ctex"] dest_files=["res://.godot/imported/crosshair159.png-1ca12955e39d6730ad57a007ee3592c9.ctex"]
[params] [params]

Binary file not shown.

After

(image error) Size: 409 B

@ -2,16 +2,16 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://bmaodu0s0vawf" uid="uid://bc2pqfjucp6c3"
path="res://.godot/imported/PS5_L1.png-d0a582e9abb3c86d4a67b6ae378efc4b.ctex" path="res://.godot/imported/cursor_none.png-8ef0d513f5b0742e2a06563125975c2c.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://XeluController&KeyPrompts/PS5/PS5_L1.png" source_file="res://Assets/Textures/cursor_none.png"
dest_files=["res://.godot/imported/PS5_L1.png-d0a582e9abb3c86d4a67b6ae378efc4b.ctex"] dest_files=["res://.godot/imported/cursor_none.png-8ef0d513f5b0742e2a06563125975c2c.ctex"]
[params] [params]

Binary file not shown.

Before

(image error) Size: 2.1 KiB

After

(image error) Size: 3.2 KiB

Binary file not shown.

Before

(image error) Size: 1.1 KiB

After

(image error) Size: 1.7 KiB

Binary file not shown.

After

(image error) Size: 905 B

@ -2,16 +2,16 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://dr4j3818dn22s" uid="uid://0ru2mv88fn4i"
path="res://.godot/imported/Ouya_A.png-d8654cd3b5c0e3404fe33b5205ebe49b.ctex" path="res://.godot/imported/energy_bar_bg2.png-4fa638f691860d1c3297be47b7732390.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://XeluController&KeyPrompts/Others/Ouya/Ouya_A.png" source_file="res://Assets/Textures/energy_bar_bg2.png"
dest_files=["res://.godot/imported/Ouya_A.png-d8654cd3b5c0e3404fe33b5205ebe49b.ctex"] dest_files=["res://.godot/imported/energy_bar_bg2.png-4fa638f691860d1c3297be47b7732390.ctex"]
[params] [params]

Binary file not shown.

After

(image error) Size: 914 B

@ -2,16 +2,16 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://c4efie5gwboy7" uid="uid://c0kwkv021p7gl"
path="res://.godot/imported/Ouya_U.png-ac242332cbda7ce28ebf3926ed59b68a.ctex" path="res://.godot/imported/energy_bar_bg3.png-a0e1a418885324d3b559a2593ef99013.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://XeluController&KeyPrompts/Others/Ouya/Ouya_U.png" source_file="res://Assets/Textures/energy_bar_bg3.png"
dest_files=["res://.godot/imported/Ouya_U.png-ac242332cbda7ce28ebf3926ed59b68a.ctex"] dest_files=["res://.godot/imported/energy_bar_bg3.png-a0e1a418885324d3b559a2593ef99013.ctex"]
[params] [params]

Binary file not shown.

Before

(image error) Size: 8.5 KiB

After

(image error) Size: 7.5 KiB

Binary file not shown.

After

(image error) Size: 514 B

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://djosixf2hc571"
path="res://.godot/imported/flair_disabled_cross.png-40ec3651e457381d8ef418b0ddfed86f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/Textures/flair_disabled_cross.png"
dest_files=["res://.godot/imported/flair_disabled_cross.png-40ec3651e457381d8ef418b0ddfed86f.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

(image error) Size: 673 B

@ -2,16 +2,16 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://cuamimpkdl8jq" uid="uid://0x80ptif1diq"
path="res://.godot/imported/Luna_A.png-93db3f2756934bd8f064b80faedf6978.ctex" path="res://.godot/imported/hand_small_point.png-dd650890c01dd4526b4ed41c883582ff.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://XeluController&KeyPrompts/Others/Amazon Luna/Luna_A.png" source_file="res://Assets/Textures/hand_small_point.png"
dest_files=["res://.godot/imported/Luna_A.png-93db3f2756934bd8f064b80faedf6978.ctex"] dest_files=["res://.godot/imported/hand_small_point.png-dd650890c01dd4526b4ed41c883582ff.ctex"]
[params] [params]

@ -3,25 +3,26 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://cb66pspr16scy" uid="uid://cb66pspr16scy"
path="res://.godot/imported/leapfrog_2.png-6ca968bda2f2a97809552ed0bab21743.ctex" path.s3tc="res://.godot/imported/leapfrog_2.png-6ca968bda2f2a97809552ed0bab21743.s3tc.ctex"
metadata={ metadata={
"vram_texture": false "imported_formats": ["s3tc_bptc"],
"vram_texture": true
} }
[deps] [deps]
source_file="res://Assets/Textures/leapfrog_2.png" source_file="res://Assets/Textures/leapfrog_2.png"
dest_files=["res://.godot/imported/leapfrog_2.png-6ca968bda2f2a97809552ed0bab21743.ctex"] dest_files=["res://.godot/imported/leapfrog_2.png-6ca968bda2f2a97809552ed0bab21743.s3tc.ctex"]
[params] [params]
compress/mode=0 compress/mode=2
compress/high_quality=false compress/high_quality=false
compress/lossy_quality=0.7 compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
@ -31,4 +32,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false process/hdr_as_srgb=false
process/hdr_clamp_exposure=false process/hdr_clamp_exposure=false
process/size_limit=0 process/size_limit=0
detect_3d/compress_to=1 detect_3d/compress_to=0

Binary file not shown.

After

(image error) Size: 16 KiB

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cwykwcaxbrxdi"
path.s3tc="res://.godot/imported/prototype.png-2678c44321b389387a13e51fcac78d61.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://Assets/Textures/prototype.png"
dest_files=["res://.godot/imported/prototype.png-2678c44321b389387a13e51fcac78d61.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

BIN
Assets/Textures/tile.png Normal file

Binary file not shown.

After

(image error) Size: 2.1 KiB

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ds4ccfym5ej7w"
path.s3tc="res://.godot/imported/tile.png-f2c836729428dd06f567f8db05c6afb6.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://Assets/Textures/tile.png"
dest_files=["res://.godot/imported/tile.png-f2c836729428dd06f567f8db05c6afb6.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

BIN
Assets/Textures/tile.png~ Normal file

Binary file not shown.

After

(image error) Size: 3.3 KiB

@ -1,5 +1,6 @@
[gd_resource type="Resource" script_class="HeroClass" load_steps=10 format=3 uid="uid://b5pc3frhx467q"] [gd_resource type="Resource" script_class="HeroClass" load_steps=11 format=3 uid="uid://b5pc3frhx467q"]
[ext_resource type="PackedScene" uid="uid://dq8v5e11rvyi6" path="res://Classes/Engineer/plan.tscn" id="1_2m5d7"]
[ext_resource type="Script" uid="uid://d40isem6w5d8" path="res://Scripts/Resources/card.gd" id="1_t4fvj"] [ext_resource type="Script" uid="uid://d40isem6w5d8" path="res://Scripts/Resources/card.gd" id="1_t4fvj"]
[ext_resource type="Resource" uid="uid://deer0awg4d18o" path="res://Cards/assault.tres" id="2_62g46"] [ext_resource type="Resource" uid="uid://deer0awg4d18o" path="res://Cards/assault.tres" id="2_62g46"]
[ext_resource type="Resource" uid="uid://ckm88acryitl4" path="res://Cards/sniper.tres" id="3_eml7q"] [ext_resource type="Resource" uid="uid://ckm88acryitl4" path="res://Cards/sniper.tres" id="3_eml7q"]
@ -18,3 +19,4 @@ hand_texture = ExtResource("6_a8dvt")
deck = Array[ExtResource("1_t4fvj")]([ExtResource("2_62g46"), ExtResource("2_62g46"), ExtResource("3_eml7q"), ExtResource("4_ovvb2"), ExtResource("5_vqkxt")]) deck = Array[ExtResource("1_t4fvj")]([ExtResource("2_62g46"), ExtResource("2_62g46"), ExtResource("3_eml7q"), ExtResource("4_ovvb2"), ExtResource("5_vqkxt")])
faction = 1 faction = 1
podium = ExtResource("7_nyup7") podium = ExtResource("7_nyup7")
card_item = ExtResource("1_2m5d7")

Binary file not shown.

@ -4,12 +4,12 @@ importer="scene"
importer_version=1 importer_version=1
type="PackedScene" type="PackedScene"
uid="uid://bycbnjk8snesp" uid="uid://bycbnjk8snesp"
path="res://.godot/imported/plan.glb-2c2d7728d6bf7c4f7aa3b51315acac6d.scn" path="res://.godot/imported/plan.glb-1550a2307197fee30ac7089f8e7db254.scn"
[deps] [deps]
source_file="res://plan.glb" source_file="res://Classes/Engineer/plan.glb"
dest_files=["res://.godot/imported/plan.glb-2c2d7728d6bf7c4f7aa3b51315acac6d.scn"] dest_files=["res://.godot/imported/plan.glb-1550a2307197fee30ac7089f8e7db254.scn"]
[params] [params]

File diff suppressed because one or more lines are too long

@ -1,6 +1,6 @@
[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://dlftx7c32euh0"] [gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://dlftx7c32euh0"]
[ext_resource type="Texture2D" uid="uid://dds48gjgiyjp6" path="res://plan_plan_tex.png" id="1_jpetr"] [ext_resource type="Texture2D" uid="uid://dds48gjgiyjp6" path="res://Classes/Engineer/plan_plan_tex.png" id="1_jpetr"]
[resource] [resource]
albedo_texture = ExtResource("1_jpetr") albedo_texture = ExtResource("1_jpetr")

Before

(image error) Size: 80 KiB

After

(image error) Size: 80 KiB

@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://dds48gjgiyjp6" uid="uid://dds48gjgiyjp6"
path.s3tc="res://.godot/imported/plan_plan_tex.png-901144cd225dba1a169b1b1548c880b8.s3tc.ctex" path.s3tc="res://.godot/imported/plan_plan_tex.png-e4a279734396ed977f4f903ec94343a1.s3tc.ctex"
metadata={ metadata={
"imported_formats": ["s3tc_bptc"], "imported_formats": ["s3tc_bptc"],
"vram_texture": true "vram_texture": true
@ -14,8 +14,8 @@ generator_parameters={
[deps] [deps]
source_file="res://plan_plan_tex.png" source_file="res://Classes/Engineer/plan_plan_tex.png"
dest_files=["res://.godot/imported/plan_plan_tex.png-901144cd225dba1a169b1b1548c880b8.s3tc.ctex"] dest_files=["res://.godot/imported/plan_plan_tex.png-e4a279734396ed977f4f903ec94343a1.s3tc.ctex"]
[params] [params]

@ -18,36 +18,39 @@ radius = 3.0
height = 1.0 height = 1.0
sides = 32 sides = 32
[node name="CharacterSprite" type="Sprite3D" parent="Base"]
transform = Transform3D(1.6895, 0, -2.47903, 0, 3, 0, 2.47903, 0, 1.6895, -0.0459526, 1.91885, -0.305444)
modulate = Color(0.517184, 0.517184, 0.517184, 1)
billboard = 2
texture_filter = 0
texture = ExtResource("2_4b5pd")
[node name="Node3D" parent="Base" instance=ExtResource("3_pmyku")] [node name="Node3D" parent="Base" instance=ExtResource("3_pmyku")]
transform = Transform3D(0.563166, 0, -0.826344, 0, 1, 0, 0.826344, 0, 0.563166, -1.32611, 0.5, -0.864711) transform = Transform3D(0.563166, 0, -0.826344, 0, 1, 0, 0.826344, 0, 0.563166, -1.32611, 0.5, -0.864711)
[node name="Assaultmod" type="MeshInstance3D" parent="Base"]
transform = Transform3D(-0.155908, 0.191531, -0.37018, -7.29442e-09, 0.395231, 0.204492, 0.416795, 0.0716447, -0.138472, 1.08392, 0.959456, -1.22038)
mesh = ExtResource("4_1jafm")
skeleton = NodePath("../../..")
[node name="Snipermodel" type="MeshInstance3D" parent="Base"]
transform = Transform3D(0.410348, 0.0352013, 0.0823131, 0.0231825, 0.331215, -0.257215, -0.0864702, 0.255847, 0.32166, -1.09654, 0.957512, 0.64087)
mesh = ExtResource("5_851y4")
skeleton = NodePath("../../..")
[node name="Gattlemesh" type="MeshInstance3D" parent="Base"]
transform = Transform3D(0.11298, -0.0560454, 0.277704, 2.63199e-09, 0.298972, 0.0603377, -0.283303, -0.0223507, 0.110748, 0.976316, 0.901463, 0.843925)
mesh = ExtResource("6_iftlf")
skeleton = NodePath("../../..")
[node name="SpotLight3D" type="SpotLight3D" parent="Base"] [node name="SpotLight3D" type="SpotLight3D" parent="Base"]
transform = Transform3D(0.563166, 0.826344, 3.61207e-08, 1.35728e-16, -4.37114e-08, 1, 0.826344, -0.563166, -2.46168e-08, -0.0459526, 4, -0.305444) transform = Transform3D(0.563166, 0.826344, 3.61207e-08, 1.35728e-16, -4.37114e-08, 1, 0.826344, -0.563166, -2.46168e-08, -0.0459526, 4, -0.305444)
spot_range = 10.0 spot_range = 10.0
spot_attenuation = 0.39 spot_attenuation = 0.39
[node name="Tower2" parent="Base" instance=ExtResource("7_pmyku")] [node name="Content" type="Node3D" parent="Base"]
visible = false
[node name="CharacterSprite" type="Sprite3D" parent="Base/Content"]
transform = Transform3D(1.6895, 0, -2.47903, 0, 3, 0, 2.47903, 0, 1.6895, -0.0459526, 1.91885, -0.305444)
modulate = Color(0.517184, 0.517184, 0.517184, 1)
billboard = 2
texture_filter = 0
texture = ExtResource("2_4b5pd")
[node name="Assaultmod" type="MeshInstance3D" parent="Base/Content"]
transform = Transform3D(-0.155908, 0.191531, -0.37018, -7.29442e-09, 0.395231, 0.204492, 0.416795, 0.0716447, -0.138472, 1.08392, 0.959456, -1.22038)
mesh = ExtResource("4_1jafm")
skeleton = NodePath("../../../..")
[node name="Snipermodel" type="MeshInstance3D" parent="Base/Content"]
transform = Transform3D(0.410348, 0.0352013, 0.0823131, 0.0231825, 0.331215, -0.257215, -0.0864702, 0.255847, 0.32166, -1.09654, 0.957512, 0.64087)
mesh = ExtResource("5_851y4")
skeleton = NodePath("../../../..")
[node name="Gattlemesh" type="MeshInstance3D" parent="Base/Content"]
transform = Transform3D(0.11298, -0.0560454, 0.277704, 2.63199e-09, 0.298972, 0.0603377, -0.283303, -0.0223507, 0.110748, 0.976316, 0.901463, 0.843925)
mesh = ExtResource("6_iftlf")
skeleton = NodePath("../../../..")
[node name="Tower2" parent="Base/Content" instance=ExtResource("7_pmyku")]
transform = Transform3D(0.563166, 0, -0.826344, 0, 1, 0, 0.826344, 0, 0.563166, 2.31578, 1.01612, -0.162108) transform = Transform3D(0.563166, 0, -0.826344, 0, 1, 0, 0.826344, 0, 0.563166, 2.31578, 1.01612, -0.162108)
stats = ExtResource("8_1jafm") stats = ExtResource("8_1jafm")

@ -1,5 +1,6 @@
[gd_resource type="Resource" script_class="HeroClass" load_steps=10 format=3 uid="uid://dxonpv8qbyrjy"] [gd_resource type="Resource" script_class="HeroClass" load_steps=11 format=3 uid="uid://dxonpv8qbyrjy"]
[ext_resource type="PackedScene" uid="uid://bfxgtf1v1okat" path="res://Classes/Mage/scroll.tscn" id="1_6eh1f"]
[ext_resource type="Script" uid="uid://dcwtg2gev3uia" path="res://Scripts/Resources/hero_class.gd" id="1_aeu85"] [ext_resource type="Script" uid="uid://dcwtg2gev3uia" path="res://Scripts/Resources/hero_class.gd" id="1_aeu85"]
[ext_resource type="Script" uid="uid://d40isem6w5d8" path="res://Scripts/Resources/card.gd" id="1_gq5ju"] [ext_resource type="Script" uid="uid://d40isem6w5d8" path="res://Scripts/Resources/card.gd" id="1_gq5ju"]
[ext_resource type="Resource" uid="uid://deer0awg4d18o" path="res://Cards/assault.tres" id="2_3yr5a"] [ext_resource type="Resource" uid="uid://deer0awg4d18o" path="res://Cards/assault.tres" id="2_3yr5a"]
@ -18,3 +19,4 @@ hand_texture = ExtResource("4_srskc")
deck = Array[ExtResource("1_gq5ju")]([ExtResource("2_3yr5a"), ExtResource("2_3yr5a"), ExtResource("3_wyb0n"), ExtResource("3_sh7d1"), ExtResource("5_k7b5b")]) deck = Array[ExtResource("1_gq5ju")]([ExtResource("2_3yr5a"), ExtResource("2_3yr5a"), ExtResource("3_wyb0n"), ExtResource("3_sh7d1"), ExtResource("5_k7b5b")])
faction = 2 faction = 2
podium = ExtResource("7_aglom") podium = ExtResource("7_aglom")
card_item = ExtResource("1_6eh1f")

@ -0,0 +1,9 @@
[gd_resource type="StandardMaterial3D" format=3 uid="uid://0273wjmwcpa5"]
[resource]
resource_local_to_scene = true
cull_mode = 1
shading_mode = 0
albedo_color = Color(0.751102, 0.459619, 0.112211, 1)
grow = true
grow_amount = 0.02

@ -20,41 +20,45 @@ radius = 3.0
height = 1.0 height = 1.0
sides = 32 sides = 32
[node name="Sprite3D" type="Sprite3D" parent="Base"]
transform = Transform3D(3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 1.91885, 0)
modulate = Color(0.446777, 0.446777, 0.446777, 1)
billboard = 2
texture_filter = 0
texture = ExtResource("2_skplt")
[node name="Node3D" parent="Base" instance=ExtResource("3_m1210")] [node name="Node3D" parent="Base" instance=ExtResource("3_m1210")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.21433, 0.5, -1.47375) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.21433, 0.5, -1.47375)
[node name="Assaultmod" type="MeshInstance3D" parent="Base"]
transform = Transform3D(-0.216168, 0.271014, 0.279012, 0.174778, 0.352842, -0.207317, -0.347489, 0.00887582, -0.277844, 1.62687, 1.06376, -1.0274)
mesh = ExtResource("4_5wuy8")
skeleton = NodePath("../../..")
[node name="Snipermodel" type="MeshInstance3D" parent="Base"]
transform = Transform3D(0.332265, 0.0519786, -0.251592, -8.9882e-09, 0.411314, 0.0849769, 0.256905, -0.0672257, 0.325393, 0.500198, 0.978789, 1.90895)
mesh = ExtResource("5_tnndn")
skeleton = NodePath("../../..")
[node name="Magetowermesh" type="MeshInstance3D" parent="Base"]
transform = Transform3D(0.432921, 0, 0.719847, 0, 0.84, 0, -0.719847, 0, 0.432921, -1.62727, 0.5, -0.00850296)
mesh = ExtResource("6_67jsi")
[node name="OmniLight3D" type="OmniLight3D" parent="Base/Magetowermesh"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.38274, 0)
light_color = Color(0.697081, 0.170704, 0.131545, 1)
light_energy = 3.586
omni_range = 1.824
[node name="SpotLight3D2" type="SpotLight3D" parent="Base"] [node name="SpotLight3D2" type="SpotLight3D" parent="Base"]
transform = Transform3D(-4.37114e-08, 1, 4.37114e-08, 0, -4.37114e-08, 1, 1, 4.37114e-08, 1.91069e-15, 0, 4, 0) transform = Transform3D(-4.37114e-08, 1, 4.37114e-08, 0, -4.37114e-08, 1, 1, 4.37114e-08, 1.91069e-15, 0, 4, 0)
spot_range = 10.0 spot_range = 10.0
spot_attenuation = 0.39 spot_attenuation = 0.39
[node name="Tower" parent="Base" instance=ExtResource("7_3ilqd")] [node name="Content" type="Node3D" parent="Base"]
visible = false
[node name="Sprite3D" type="Sprite3D" parent="Base/Content"]
transform = Transform3D(3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 1.91885, 0)
modulate = Color(0.446777, 0.446777, 0.446777, 1)
billboard = 2
texture_filter = 0
texture = ExtResource("2_skplt")
[node name="Assaultmod" type="MeshInstance3D" parent="Base/Content"]
transform = Transform3D(-0.216168, 0.271014, 0.279012, 0.174778, 0.352842, -0.207317, -0.347489, 0.00887582, -0.277844, 1.62687, 1.06376, -1.0274)
mesh = ExtResource("4_5wuy8")
skeleton = NodePath("../../../..")
[node name="Snipermodel" type="MeshInstance3D" parent="Base/Content"]
transform = Transform3D(0.332265, 0.0519786, -0.251592, -8.9882e-09, 0.411314, 0.0849769, 0.256905, -0.0672257, 0.325393, 0.500198, 0.978789, 1.90895)
mesh = ExtResource("5_tnndn")
skeleton = NodePath("../../../..")
[node name="Magetowermesh" type="MeshInstance3D" parent="Base/Content"]
transform = Transform3D(0.432921, 0, 0.719847, 0, 0.84, 0, -0.719847, 0, 0.432921, -1.62727, 0.5, -0.0085029)
mesh = ExtResource("6_67jsi")
skeleton = NodePath("../..")
[node name="OmniLight3D" type="OmniLight3D" parent="Base/Content/Magetowermesh"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.38274, 0)
light_color = Color(0.697081, 0.170704, 0.131545, 1)
light_energy = 3.586
omni_range = 1.824
[node name="Tower" parent="Base/Content" instance=ExtResource("7_3ilqd")]
transform = Transform3D(-0.642788, 0, -0.766044, 0, 1, 0, 0.766044, 0, -0.642788, 0.228261, 1.16271, -1.45948) transform = Transform3D(-0.642788, 0, -0.766044, 0, 1, 0, 0.766044, 0, -0.642788, 0.228261, 1.16271, -1.45948)
stats = ExtResource("8_2wywa") stats = ExtResource("8_2wywa")

109
Classes/Mage/scroll.tscn Normal file

File diff suppressed because one or more lines are too long

BIN
Classes/Mage/scroll2.glb Normal file

Binary file not shown.

@ -0,0 +1,37 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://chg7jricce3j2"
path="res://.godot/imported/scroll2.glb-6b5967f06d00f195f8bc4925f70159e4.scn"
[deps]
source_file="res://Classes/Mage/scroll2.glb"
dest_files=["res://.godot/imported/scroll2.glb-6b5967f06d00f195f8bc4925f70159e4.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={}
gltf/naming_version=1
gltf/embedded_image_handling=1

Binary file not shown.

After

(image error) Size: 1.5 MiB

@ -0,0 +1,38 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b0sl2tvwle1m7"
path.s3tc="res://.godot/imported/scroll2_paper.png-729535889b5d0fe9dcd7ec73b98d3019.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
generator_parameters={
"md5": "619c35ba3f70be465132fb35a0fd6eb8"
}
[deps]
source_file="res://Classes/Mage/scroll2_paper.png"
dest_files=["res://.godot/imported/scroll2_paper.png-729535889b5d0fe9dcd7ec73b98d3019.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

@ -18,34 +18,35 @@ radius = 3.0
height = 1.0 height = 1.0
sides = 32 sides = 32
[node name="Sprite3D" type="Sprite3D" parent="Base"] [node name="Node3D" parent="Base" instance=ExtResource("3_il1ej")]
transform = Transform3D(3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 1.91885, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.18309, 0.5, 0.742893)
[node name="Content" type="Node3D" parent="Base"]
visible = false visible = false
[node name="Sprite3D" type="Sprite3D" parent="Base/Content"]
transform = Transform3D(3, 0, 5.96046e-08, 0, 3, 0, -5.96046e-08, 0, 3, 0, 1.91885, 0)
modulate = Color(0.517184, 0.517184, 0.517184, 1) modulate = Color(0.517184, 0.517184, 0.517184, 1)
billboard = 2 billboard = 2
texture_filter = 0 texture_filter = 0
texture = ExtResource("2_05uii") texture = ExtResource("2_05uii")
[node name="Node3D" parent="Base" instance=ExtResource("3_il1ej")] [node name="Assaultmod" type="MeshInstance3D" parent="Base/Content"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.18309, 0.5, 0.742893)
[node name="Assaultmod" type="MeshInstance3D" parent="Base"]
transform = Transform3D(0.256614, 0.167067, -0.322898, -7.90479e-16, 0.395231, 0.204492, 0.363558, -0.117923, 0.227914, -0.119748, 0.959456, -1.44893) transform = Transform3D(0.256614, 0.167067, -0.322898, -7.90479e-16, 0.395231, 0.204492, 0.363558, -0.117923, 0.227914, -0.119748, 0.959456, -1.44893)
mesh = ExtResource("4_mrig3") mesh = ExtResource("4_mrig3")
skeleton = NodePath("../../..") skeleton = NodePath("../../../..")
[node name="Snipermodel" type="MeshInstance3D" parent="Base"] [node name="Snipermodel" type="MeshInstance3D" parent="Base/Content"]
transform = Transform3D(0.15964, 0.231242, 0.312158, 0.0231825, 0.331215, -0.257215, -0.387786, 0.114996, 0.113129, 0.190324, 0.957512, 1.40108) transform = Transform3D(0.15964, 0.231242, 0.312158, 0.0231825, 0.331215, -0.257215, -0.387786, 0.114996, 0.113129, 0.190324, 0.957512, 1.40108)
mesh = ExtResource("5_yj8b1") mesh = ExtResource("5_yj8b1")
skeleton = NodePath("../../..") skeleton = NodePath("../../../..")
[node name="Gattlemesh" type="MeshInstance3D" parent="Base"] [node name="Gattlemesh" type="MeshInstance3D" parent="Base/Content"]
transform = Transform3D(-0.170479, -0.0500322, 0.247909, 0, 0.298972, 0.0603377, -0.252907, 0.0337256, -0.16711, 1.52548, 0.901463, -0.197461) transform = Transform3D(-0.170479, -0.0500322, 0.247909, 0, 0.298972, 0.0603377, -0.252907, 0.0337256, -0.16711, 1.52548, 0.901463, -0.197461)
mesh = ExtResource("6_jr17d") mesh = ExtResource("6_jr17d")
skeleton = NodePath("../../..") skeleton = NodePath("../../../..")
[node name="SpotLight3D" type="SpotLight3D" parent="Base"] [node name="SpotLight3D" type="SpotLight3D" parent="Base/Content"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 4, 0) transform = Transform3D(1, -2.98023e-08, -1.77636e-15, 0, -4.37114e-08, 1, -2.98023e-08, -1, -4.37114e-08, 0, 4, 0)
visible = false
spot_range = 10.0 spot_range = 10.0
spot_attenuation = 0.39 spot_attenuation = 0.39

@ -18,40 +18,41 @@ radius = 3.0
height = 1.0 height = 1.0
sides = 32 sides = 32
[node name="Sprite3D" type="Sprite3D" parent="Base"] [node name="Node3D" parent="Base" instance=ExtResource("3_brui3")]
transform = Transform3D(3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 1.91885, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.21433, 0.5, -1.47375)
[node name="Content" type="Node3D" parent="Base"]
visible = false visible = false
[node name="Sprite3D" type="Sprite3D" parent="Base/Content"]
transform = Transform3D(3, 0, 2.38419e-07, 0, 3, 0, -2.38419e-07, 0, 3, 0, 1.91885, 0)
modulate = Color(0.446777, 0.446777, 0.446777, 1) modulate = Color(0.446777, 0.446777, 0.446777, 1)
billboard = 2 billboard = 2
texture_filter = 0 texture_filter = 0
texture = ExtResource("2_e7ajb") texture = ExtResource("2_e7ajb")
[node name="Node3D" parent="Base" instance=ExtResource("3_brui3")] [node name="Assaultmod" type="MeshInstance3D" parent="Base/Content"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.21433, 0.5, -1.47375)
[node name="Assaultmod" type="MeshInstance3D" parent="Base"]
transform = Transform3D(-0.216168, 0.271014, 0.279012, 0.174778, 0.352842, -0.207317, -0.347489, 0.00887582, -0.277844, 1.62687, 1.06376, -1.0274) transform = Transform3D(-0.216168, 0.271014, 0.279012, 0.174778, 0.352842, -0.207317, -0.347489, 0.00887582, -0.277844, 1.62687, 1.06376, -1.0274)
mesh = ExtResource("4_6igfd") mesh = ExtResource("4_6igfd")
skeleton = NodePath("../../..") skeleton = NodePath("../../../..")
[node name="Snipermodel" type="MeshInstance3D" parent="Base"] [node name="Snipermodel" type="MeshInstance3D" parent="Base/Content"]
transform = Transform3D(0.332265, 0.0519786, -0.251592, -8.9882e-09, 0.411314, 0.0849769, 0.256905, -0.0672257, 0.325393, 0.500198, 0.978789, 1.90895) transform = Transform3D(0.332265, 0.0519786, -0.251592, -8.9882e-09, 0.411314, 0.0849769, 0.256905, -0.0672257, 0.325393, 0.500198, 0.978789, 1.90895)
mesh = ExtResource("5_2o81e") mesh = ExtResource("5_2o81e")
skeleton = NodePath("../../..") skeleton = NodePath("../../../..")
[node name="Magetowermesh" type="MeshInstance3D" parent="Base"] [node name="Magetowermesh" type="MeshInstance3D" parent="Base/Content"]
transform = Transform3D(0.432921, 0, 0.719847, 0, 0.84, 0, -0.719847, 0, 0.432921, -1.62727, 0.5, -0.00850296) transform = Transform3D(0.432921, 0, 0.719847, 0, 0.84, 0, -0.719847, 0, 0.432921, -1.62727, 0.5, -0.00850284)
mesh = ExtResource("6_qcqfx") mesh = ExtResource("6_qcqfx")
skeleton = NodePath("../..")
[node name="OmniLight3D" type="OmniLight3D" parent="Base/Magetowermesh"] [node name="OmniLight3D" type="OmniLight3D" parent="Base/Content/Magetowermesh"]
transform = Transform3D(1.19048, 0, 0, 0, 1.19048, 0, 0, 0, 1.19048, 0, 3.38274, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.38274, 0)
visible = false
light_color = Color(0.697081, 0.170704, 0.131545, 1) light_color = Color(0.697081, 0.170704, 0.131545, 1)
light_energy = 3.586 light_energy = 3.586
omni_range = 1.824 omni_range = 1.824
[node name="SpotLight3D2" type="SpotLight3D" parent="Base"] [node name="SpotLight3D2" type="SpotLight3D" parent="Base/Content"]
transform = Transform3D(-4.37114e-08, 1, 4.37114e-08, 0, -4.37114e-08, 1, 1, 4.37114e-08, 1.91069e-15, 0, 4, 0) transform = Transform3D(-2.98023e-08, 1, 4.37114e-08, 0, -4.37114e-08, 1, 1, 2.98023e-08, 1.77636e-15, 0, 4, 0)
visible = false
spot_range = 10.0 spot_range = 10.0
spot_attenuation = 0.39 spot_attenuation = 0.39

@ -0,0 +1,31 @@
[gd_resource type="Resource" script_class="Enemy" load_steps=6 format=3 uid="uid://bffhb5krs5elm"]
[ext_resource type="Texture2D" uid="uid://b1lwaxw62yp3p" path="res://Assets/Textures/dead_spike.png" id="1_skyfd"]
[ext_resource type="Texture2D" uid="uid://duywsy7jmh4u" path="res://Assets/Textures/spike.png" id="2_idym2"]
[ext_resource type="PackedScene" uid="uid://cveiaa0y66gln" path="res://Enemies/Crystalisk/crystal_enemy.tscn" id="3_7w5fm"]
[ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="4_x2l2n"]
[ext_resource type="Texture2D" uid="uid://sybn6bjbj5fh" path="res://Assets/TextureAtlases/spike.tres" id="5_okcvf"]
[resource]
script = ExtResource("4_x2l2n")
title = "Crystalisk"
target_type = 2
scene = ExtResource("3_7w5fm")
icon = ExtResource("2_idym2")
death_sprite = ExtResource("1_skyfd")
sprite = ExtResource("5_okcvf")
spawn_power = 6
health = 120
penalty = 7
movement_speed = 1.0
spawn_cooldown = 1.0
common_group = 5
common_cost = 2
uncommon_group = 10
uncommon_cost = 3
rare_group = 18
rare_cost = 4
epic_group = 26
epic_cost = 6
legendary_group = 42
legendary_cost = 8

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

(image error) Size: 354 B

@ -2,16 +2,16 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://b12jovvcde2dl" uid="uid://d01y8kogfuayr"
path="res://.godot/imported/Ouya_O.png-7f3b969ad3acb705c10f9080e209d0ca.ctex" path="res://.godot/imported/crystal_enemy.png-47c4105ce5ff19d6a767c397a2a82c0d.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://XeluController&KeyPrompts/Others/Ouya/Ouya_O.png" source_file="res://Enemies/Crystalisk/crystal_enemy.png"
dest_files=["res://.godot/imported/Ouya_O.png-7f3b969ad3acb705c10f9080e209d0ca.ctex"] dest_files=["res://.godot/imported/crystal_enemy.png-47c4105ce5ff19d6a767c397a2a82c0d.ctex"]
[params] [params]
@ -21,7 +21,7 @@ compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
@ -31,4 +31,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false process/hdr_as_srgb=false
process/hdr_clamp_exposure=false process/hdr_clamp_exposure=false
process/size_limit=0 process/size_limit=0
detect_3d/compress_to=1 detect_3d/compress_to=0

@ -0,0 +1,58 @@
[gd_scene load_steps=7 format=3 uid="uid://cveiaa0y66gln"]
[ext_resource type="PackedScene" uid="uid://bjo2q6vca5qlv" path="res://Worlds/GreenPlanet/Enemies/air_enemy.tscn" id="1_aormu"]
[ext_resource type="PackedScene" uid="uid://o6whohcbalui" path="res://Enemies/Crystalisk/crystal_enemy.glb" id="2_myjng"]
[ext_resource type="Script" uid="uid://cummt2be3r1gq" path="res://Scripts/hitbox.gd" id="3_myjng"]
[sub_resource type="ViewportTexture" id="ViewportTexture_c5uwa"]
viewport_path = NodePath("SubViewport")
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_c5uwa"]
radius = 0.332871
height = 1.415
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_d7aub"]
radius = 0.133503
height = 0.56
[node name="Dog" instance=ExtResource("1_aormu")]
[node name="Sprite3D" parent="." index="1"]
texture = SubResource("ViewportTexture_c5uwa")
[node name="crystal_enemy" parent="." index="7" instance=ExtResource("2_myjng")]
[node name="RemoteTransform3D" type="RemoteTransform3D" parent="crystal_enemy/Cube_001" index="0"]
remote_path = NodePath("../../../MiniHitbox2")
[node name="RemoteTransform3D" type="RemoteTransform3D" parent="crystal_enemy/Cube_002" index="0"]
remote_path = NodePath("../../../MiniHitbox")
[node name="AnimationPlayer" parent="crystal_enemy" index="3"]
autoplay = "Spin"
speed_scale = 2.0
[node name="MainHitbox" type="CollisionShape3D" parent="." index="8"]
shape = SubResource("CapsuleShape3D_c5uwa")
script = ExtResource("3_myjng")
metadata/_custom_type_script = "uid://cummt2be3r1gq"
[node name="MiniHitbox" type="CollisionShape3D" parent="." index="9"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.601335, 0.59523, 0)
shape = SubResource("CapsuleShape3D_d7aub")
script = ExtResource("3_myjng")
critical_zone = true
metadata/_custom_type_script = "uid://cummt2be3r1gq"
[node name="MiniHitbox2" type="CollisionShape3D" parent="." index="10"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.599804, -0.600394, 0)
shape = SubResource("CapsuleShape3D_d7aub")
script = ExtResource("3_myjng")
critical_zone = true
metadata/_custom_type_script = "uid://cummt2be3r1gq"
[connection signal="took_damage" from="MainHitbox" to="Health" method="take_damage"]
[connection signal="took_damage" from="MiniHitbox" to="Health" method="take_damage"]
[connection signal="took_damage" from="MiniHitbox2" to="Health" method="take_damage"]
[editable path="crystal_enemy"]

@ -0,0 +1,13 @@
[gd_resource type="ShaderMaterial" load_steps=3 format=3 uid="uid://dylmoyx1tasat"]
[ext_resource type="Shader" uid="uid://c5bffujq0l70k" path="res://jitter.gdshader" id="1_4cwdh"]
[ext_resource type="Texture2D" uid="uid://d01y8kogfuayr" path="res://Enemies/Crystalisk/crystal_enemy.png" id="2_l5awy"]
[resource]
render_priority = 0
shader = ExtResource("1_4cwdh")
shader_parameter/affine_mapping = true
shader_parameter/albedo = ExtResource("2_l5awy")
shader_parameter/alpha_scissor = 0.5
shader_parameter/jitter = 0.25
shader_parameter/resolution = Vector2i(320, 240)

@ -1,8 +1,9 @@
[gd_resource type="Resource" script_class="Enemy" load_steps=6 format=3 uid="uid://8eba45hql7bo"] [gd_resource type="Resource" script_class="Enemy" load_steps=7 format=3 uid="uid://8eba45hql7bo"]
[ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="1_ivs7a"] [ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="1_ivs7a"]
[ext_resource type="Texture2D" uid="uid://cdnhe2mi5c5ln" path="res://Assets/Textures/dead_eye_dog.png" id="1_r8gpy"] [ext_resource type="Texture2D" uid="uid://cdnhe2mi5c5ln" path="res://Assets/Textures/dead_eye_dog.png" id="1_r8gpy"]
[ext_resource type="Texture2D" uid="uid://g00wwrlxxdc5" path="res://Assets/Textures/icon_eye_dog.png" id="2_tyyee"] [ext_resource type="Texture2D" uid="uid://g00wwrlxxdc5" path="res://Assets/Textures/icon_eye_dog.png" id="2_tyyee"]
[ext_resource type="PackedScene" uid="uid://bvq6tbkuv2mfp" path="res://Enemies/EyeDog/eye_dog.tscn" id="3_tyyee"]
[ext_resource type="Texture2D" uid="uid://dj13g1w14mekw" path="res://Assets/Textures/eye_dog.png" id="4_7ypa6"] [ext_resource type="Texture2D" uid="uid://dj13g1w14mekw" path="res://Assets/Textures/eye_dog.png" id="4_7ypa6"]
[sub_resource type="AtlasTexture" id="AtlasTexture_n6kdu"] [sub_resource type="AtlasTexture" id="AtlasTexture_n6kdu"]
@ -15,6 +16,7 @@ resource_local_to_scene = true
script = ExtResource("1_ivs7a") script = ExtResource("1_ivs7a")
title = "dog" title = "dog"
target_type = 1 target_type = 1
scene = ExtResource("3_tyyee")
icon = ExtResource("2_tyyee") icon = ExtResource("2_tyyee")
death_sprite = ExtResource("1_r8gpy") death_sprite = ExtResource("1_r8gpy")
sprite = SubResource("AtlasTexture_n6kdu") sprite = SubResource("AtlasTexture_n6kdu")
@ -23,13 +25,13 @@ health = 180
penalty = 10 penalty = 10
movement_speed = 1.2 movement_speed = 1.2
spawn_cooldown = 1.2 spawn_cooldown = 1.2
common_group = 4 common_group = 8
common_cost = 1 common_cost = 1
uncommon_group = 6 uncommon_group = 12
uncommon_cost = 2 uncommon_cost = 2
rare_group = 8 rare_group = 18
rare_cost = 3 rare_cost = 3
epic_group = 10 epic_group = 26
epic_cost = 4 epic_cost = 5
legendary_group = 12 legendary_group = 34
legendary_cost = 5 legendary_cost = 6

100
Enemies/EyeDog/eye_dog.tscn Normal file

@ -0,0 +1,100 @@
[gd_scene load_steps=14 format=3 uid="uid://bvq6tbkuv2mfp"]
[ext_resource type="Script" uid="uid://ejqql2660u6h" path="res://Worlds/GreenPlanet/Enemies/enemy_controller.gd" id="1_1dh2f"]
[ext_resource type="PackedScene" uid="uid://canrxnpxcugc2" path="res://Scenes/corpse.tscn" id="2_1dh2f"]
[ext_resource type="Script" uid="uid://bamhci3kawuyt" path="res://Scripts/health.gd" id="2_bckix"]
[ext_resource type="PackedScene" uid="uid://cqtew0t8sttpm" path="res://Scenes/damage_particle.tscn" id="3_wnwjl"]
[ext_resource type="Script" uid="uid://cummt2be3r1gq" path="res://Scripts/hitbox.gd" id="6_3v8fr"]
[ext_resource type="Texture2D" uid="uid://b1fn60m6xfcsq" path="res://Assets/Textures/minimap_enemy.png" id="7_bkkhh"]
[ext_resource type="PackedScene" uid="uid://hjq3nrnumklp" path="res://Scenes/health_bar.tscn" id="8_k2835"]
[ext_resource type="Script" uid="uid://b62xnsbki8axa" path="res://Scripts/EnemyAI/pathing_controller.gd" id="9_t4oco"]
[ext_resource type="PackedScene" uid="uid://dlhx6r23m5ceg" path="res://Enemies/EyeDog/eyedog.glb" id="10_h25mw"]
[ext_resource type="Script" uid="uid://cojjgevmbhwal" path="res://Scripts/status_effector.gd" id="11_kpdsm"]
[sub_resource type="SphereShape3D" id="SphereShape3D_cavbv"]
radius = 0.42
[sub_resource type="SphereShape3D" id="SphereShape3D_h25mw"]
radius = 0.151085
[sub_resource type="ViewportTexture" id="ViewportTexture_1kwxq"]
viewport_path = NodePath("SubViewport")
[node name="Node3D" type="CharacterBody3D" node_paths=PackedStringArray("status_manager", "movement_controller", "health", "d_n") groups=["Enemies"]]
collision_layer = 4
collision_mask = 0
script = ExtResource("1_1dh2f")
status_manager = NodePath("StatusEffector")
movement_controller = NodePath("PathingController")
health = NodePath("Health")
d_n = NodePath("Node3D")
corpse_scene = ExtResource("2_1dh2f")
metadata/_custom_type_script = "uid://ejqql2660u6h"
[node name="Health" type="Node" parent="."]
script = ExtResource("2_bckix")
damage_particle_scene = ExtResource("3_wnwjl")
[node name="Hitbox" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.33811, 0.0832841)
shape = SubResource("SphereShape3D_cavbv")
script = ExtResource("6_3v8fr")
metadata/_custom_type_script = "uid://cummt2be3r1gq"
[node name="Hitbox2" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.601201, -0.436369)
shape = SubResource("SphereShape3D_h25mw")
script = ExtResource("6_3v8fr")
critical_zone = true
metadata/_custom_type_script = "uid://cummt2be3r1gq"
[node name="HealthBar" type="Sprite3D" parent="."]
transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, 1.20821, 0)
sorting_offset = 1.0
pixel_size = 0.02
billboard = 1
texture_filter = 0
texture = SubResource("ViewportTexture_1kwxq")
[node name="MinimapIcon" type="Sprite3D" parent="."]
transform = Transform3D(2, 0, 0, 0, -8.74228e-08, 2, 0, -2, -8.74228e-08, 0, 1.40824, 0)
layers = 4
texture_filter = 0
texture = ExtResource("7_bkkhh")
[node name="SubViewport" type="SubViewport" parent="."]
transparent_bg = true
size = Vector2i(200, 55)
render_target_update_mode = 4
[node name="HBoxContainer" type="HBoxContainer" parent="SubViewport"]
anchors_preset = 10
anchor_right = 1.0
offset_bottom = 32.0
grow_horizontal = 2
alignment = 1
[node name="HealthBar" parent="SubViewport" instance=ExtResource("8_k2835")]
visible = false
offset_top = 36.0
offset_bottom = 236.0
[node name="PathingController" type="Node" parent="." node_paths=PackedStringArray("character")]
script = ExtResource("9_t4oco")
character = NodePath("..")
[node name="StatusEffector" type="Node" parent="." node_paths=PackedStringArray("sprite_container")]
script = ExtResource("11_kpdsm")
sprite_container = NodePath("../SubViewport/HBoxContainer")
metadata/_custom_type_script = "uid://cojjgevmbhwal"
[node name="Node3D" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.39813, 0)
[node name="eyedog" parent="." instance=ExtResource("10_h25mw")]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0.3764, 0)
[connection signal="health_changed" from="Health" to="SubViewport/HealthBar" method="on_health_changed"]
[connection signal="health_depleted" from="Health" to="." method="die"]
[connection signal="took_damage" from="Hitbox" to="Health" method="take_damage"]
[connection signal="took_damage" from="Hitbox2" to="Health" method="take_damage"]

BIN
Enemies/EyeDog/eyedog.glb Normal file

Binary file not shown.

@ -0,0 +1,44 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://dlhx6r23m5ceg"
path="res://.godot/imported/eyedog.glb-066d1d46e7943baa72fec506b08447f4.scn"
[deps]
source_file="res://Enemies/EyeDog/eyedog.glb"
dest_files=["res://.godot/imported/eyedog.glb-066d1d46e7943baa72fec506b08447f4.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=0.08
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={
"materials": {
"Material": {
"use_external/enabled": true,
"use_external/path": "uid://bo82o88d7vo1x"
}
}
}
gltf/naming_version=1
gltf/embedded_image_handling=1

Binary file not shown.

After

(image error) Size: 4.8 KiB

@ -0,0 +1,38 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://wx4d2upch81n"
path.s3tc="res://.godot/imported/eyedog_eyedog_tex.png-1f14344e8bf95fbf8ece2e5fc948c9ad.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
generator_parameters={
"md5": "27dfa54e4c46b8fd6e6f12450e4ca070"
}
[deps]
source_file="res://Enemies/EyeDog/eyedog_eyedog_tex.png"
dest_files=["res://.godot/imported/eyedog_eyedog_tex.png-1f14344e8bf95fbf8ece2e5fc948c9ad.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

@ -0,0 +1,13 @@
[gd_resource type="ShaderMaterial" load_steps=3 format=3 uid="uid://bo82o88d7vo1x"]
[ext_resource type="Shader" uid="uid://c5bffujq0l70k" path="res://jitter.gdshader" id="1_crvh7"]
[ext_resource type="Texture2D" uid="uid://wx4d2upch81n" path="res://Enemies/EyeDog/eyedog_eyedog_tex.png" id="2_j3hec"]
[resource]
render_priority = 0
shader = ExtResource("1_crvh7")
shader_parameter/affine_mapping = true
shader_parameter/albedo = ExtResource("2_j3hec")
shader_parameter/alpha_scissor = 0.5
shader_parameter/jitter = 0.25
shader_parameter/resolution = Vector2i(320, 240)

@ -0,0 +1,190 @@
class_name PathEditTool extends Node3D
@export var hero: Hero
@export var inventory: Inventory
@export var ray: RayCast3D
@export var wall_preview: TowerBase
@export var progress_bar: TextureProgressBar
var enabled: bool = true
var level: Level
var point: FlowNode
var obstacle_last_point: int = -1
var valid_point: bool = false # a point is valid if the path would still be traversable overall if this point was made untraversable
var tower_preview: Tower
var ray_collider: Object
var ray_point: Vector3
var last_point: FlowNode
var last_tower_base: TowerBase
var interact_key_held: bool = false
var interacted_once: bool = false
var interact_held_time: float = 0.0
var interact_hold_time: float = 0.4
func _ready() -> void:
var c: Color = Color.GREEN
c.a = 0.8
wall_preview.set_color(c)
wall_preview.set_float(0.0)
wall_preview.toggle_collision()
func _process(delta: float) -> void:
if !enabled:
reset()
return
if interact_key_held:
if !interacted_once:
if valid_point and hero.currency >= Data.wall_cost and ray_collider and point.buildable:
interact_held_time += delta
set_progress_percent(interact_held_time / interact_hold_time)
wall_preview.set_float(interact_held_time / interact_hold_time)
if interact_held_time >= interact_hold_time:
set_progress_percent(0)
interacted_once = true
build_wall()
elif ray_collider is TowerBase:
interact_held_time += delta
set_progress_percent(interact_held_time / interact_hold_time)
if interact_held_time >= interact_hold_time:
set_progress_percent(0)
interacted_once = true
refund_wall(ray_collider)
else:
interact_held_time = 0.0
interacted_once = false
set_progress_percent(0)
wall_preview.set_float(0.0)
if !interacted_once and ray.is_colliding():
#if statement makes sure once the building animation has started then
#the position the wall builds in is already decided and moving the mouse
#around isnt going to make the resulting
#wall teleport to the new mouse location
if !interact_key_held:
wall_preview.set_visible(true)
if is_instance_valid(ray_collider) and ray_collider is TowerBase:
level.walls[ray_collider.point].set_float(1.0)
ray_collider = ray.get_collider()
ray_point = ray.get_collision_point()
if ray_collider is TowerBase:
process_looking_at_tower()
elif level:
process_looking_at_level()
elif !interact_key_held:
reset()
if !valid_point:
wall_preview.set_visible(false)
if point:
wall_preview.global_position = point.global_position
wall_preview.global_rotation = Vector3.ZERO
func reset() -> void:
if is_instance_valid(ray_collider) and ray_collider is TowerBase and level.walls.has(ray_collider.point):
level.walls[ray_collider.point].set_float(1.0)
ray_collider = null
delete_tower_preview()
wall_preview.set_visible(false)
clear_previous_point()
last_point = null
func process_looking_at_level() -> void:
if tower_preview:
delete_tower_preview()
point = level.flow_field.get_closest_buildable_point(ray_point)
if level.walls.has(point) or !point.buildable or hero.currency < Data.wall_cost:
wall_preview.set_visible(false)
valid_point = false
clear_previous_point()
last_point = point
else:
if last_point != point:
clear_previous_point()
last_point = point
if !level.walls.has(point) and level.flow_field.traversable_after_blocking_point(point):
level.flow_field.toggle_traversable(point)
wall_preview.set_float(0.0)
valid_point = true
else:
valid_point = false
func clear_previous_point() -> void:
if last_point and !level.walls.has(last_point) and !last_point.traversable:
level.flow_field.toggle_traversable(last_point)
func process_looking_at_tower() -> void:
valid_point = false
point = ray_collider.point
if last_point != point:
clear_previous_point()
if tower_preview:
delete_tower_preview()
wall_preview.set_visible(false)
ray_collider.set_color(Color.RED)
ray_collider.set_float(0.0)
if inventory.contents.size() > 0 and !ray_collider.has_card:
if ray_collider != last_tower_base or inventory.selected_item != inventory.contents.keys()[hero.inventory_selected_index]:
spawn_tower_preview()
func spawn_tower_preview() -> void:
delete_tower_preview()
last_tower_base = ray_collider
var card: Card = inventory.contents.keys()[hero.inventory_selected_index]
tower_preview = card.turret_scene.instantiate() as Tower
tower_preview.stats = card.tower_stats
tower_preview.position = Vector3.UP
tower_preview.preview_range(true)
ray_collider.add_child(tower_preview)
func delete_tower_preview() -> void:
last_tower_base = null
if is_instance_valid(tower_preview):
tower_preview.queue_free()
tower_preview = null
func interact() -> void:
if ray_collider is TowerBase:
var tower_base: TowerBase = ray_collider as TowerBase
put_card_in_tower_base(tower_base)
func build_wall() -> void:
if point and valid_point and hero.currency >= Data.wall_cost:
hero.currency -= Data.wall_cost
level.set_wall(point, multiplayer.get_unique_id())
wall_preview.visible = false
func refund_wall(wall: TowerBase) -> void:
if !is_instance_valid(wall):
return
if wall.has_card:
wall.remove_card()
level.remove_wall(wall.point)
func put_card_in_tower_base(tower_base: TowerBase) -> void:
if tower_base.has_card:
tower_base.remove_card()
elif inventory.size > 0:
var card: Card = inventory.remove_at(hero.inventory_selected_index)
if !inventory.contents.has(card):
hero.decrement_selected()
tower_base.add_card(card, multiplayer.get_unique_id())
hero.place_card_audio.play()
func set_progress_percent(value: float) -> void:
progress_bar.value = progress_bar.max_value * value

@ -1,26 +1,20 @@
[gd_scene load_steps=5 format=3 uid="uid://dqt1ggtkpkuhs"] [gd_scene load_steps=4 format=3 uid="uid://dqt1ggtkpkuhs"]
[ext_resource type="Script" uid="uid://ckm02cx0ai624" path="res://Scripts/edit_tool.gd" id="1_yf8lt"] [ext_resource type="Script" uid="uid://ckm02cx0ai624" path="res://PCs/PathEditTool/path_edit_tool.gd" id="1_l8cck"]
[ext_resource type="PackedScene" uid="uid://ddbbwx0yy16lh" path="res://Scenes/TowerBase/tower_base.tscn" id="2_r3632"] [ext_resource type="PackedScene" uid="uid://ddbbwx0yy16lh" path="res://Scenes/TowerBase/tower_base.tscn" id="2_pjtpe"]
[ext_resource type="Texture2D" uid="uid://gh4yvnerf1f5" path="res://Assets/Textures/radial.png" id="3_a323w"] [ext_resource type="Texture2D" uid="uid://gh4yvnerf1f5" path="res://Assets/Textures/radial.png" id="3_fs118"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_36ot1"] [node name="PathEditTool" type="Node3D" node_paths=PackedStringArray("ray", "wall_preview", "progress_bar")]
transparency = 1 script = ExtResource("1_l8cck")
depth_draw_mode = 1
[node name="EditTool" type="Node3D" node_paths=PackedStringArray("ray", "wall_preview", "progress_bar")]
script = ExtResource("1_yf8lt")
ray = NodePath("RayCast3D") ray = NodePath("RayCast3D")
wall_preview = NodePath("WallPreview") wall_preview = NodePath("WallPreview")
build_preview_material = SubResource("StandardMaterial3D_36ot1")
progress_bar = NodePath("ProgressBar") progress_bar = NodePath("ProgressBar")
[node name="RayCast3D" type="RayCast3D" parent="."] [node name="RayCast3D" type="RayCast3D" parent="."]
target_position = Vector3(0, 0, -20) target_position = Vector3(0, 0, -20)
collision_mask = 25 collision_mask = 25
[node name="WallPreview" parent="." instance=ExtResource("2_r3632")] [node name="WallPreview" parent="." instance=ExtResource("2_pjtpe")]
visible = false
[node name="ProgressBar" type="TextureProgressBar" parent="."] [node name="ProgressBar" type="TextureProgressBar" parent="."]
anchors_preset = 8 anchors_preset = 8
@ -38,4 +32,4 @@ scale = Vector2(0.5, 0.5)
pivot_offset = Vector2(90, 90) pivot_offset = Vector2(90, 90)
step = 0.0 step = 0.0
fill_mode = 4 fill_mode = 4
texture_progress = ExtResource("3_a323w") texture_progress = ExtResource("3_fs118")

@ -10,7 +10,7 @@ signal ready_state_changed(state: bool)
@export var left_hand: Node3D @export var left_hand: Node3D
@export var right_hand: Node3D @export var right_hand: Node3D
@export var right_hand_animator: AnimationPlayer @export var right_hand_animator: AnimationPlayer
@export var edit_tool: EditTool @export var edit_tool: PathEditTool
@export var gauntlet_sprite: Sprite3D @export var gauntlet_sprite: Sprite3D
@export var sprite: EightDirectionSprite3D @export var sprite: EightDirectionSprite3D
@export var hand_sprite: Sprite2D @export var hand_sprite: Sprite2D
@ -35,6 +35,7 @@ signal ready_state_changed(state: bool)
@export var swap_off_audio: AudioStreamPlayer @export var swap_off_audio: AudioStreamPlayer
@export var swap_on_audio: AudioStreamPlayer @export var swap_on_audio: AudioStreamPlayer
var game_manager: GameManager
var hovering_item: InteractButton = null var hovering_item: InteractButton = null
var weapons_spawn_count: int = 0 #Used to prevent node name collisions for multiplayer var weapons_spawn_count: int = 0 #Used to prevent node name collisions for multiplayer
var inventory_selected_index: int = 0 var inventory_selected_index: int = 0
@ -120,7 +121,7 @@ func _process(delta: float) -> void:
hovering_item.disable_hover_effect() hovering_item.disable_hover_effect()
hovering_item = null hovering_item = null
if edit_tool.is_looking_at_tower_base: if is_instance_valid(edit_tool.ray_collider) and edit_tool.ray_collider is TowerBase:
card_sprites[0].view_tower() card_sprites[0].view_tower()
else: else:
card_sprites[0].view_weapon() card_sprites[0].view_weapon()
@ -175,7 +176,13 @@ func _process(delta: float) -> void:
movement.can_sprint = false movement.can_sprint = false
if Input.is_action_pressed("Secondary Fire"): if Input.is_action_pressed("Secondary Fire"):
movement.can_sprint = false movement.can_sprint = false
if Input.is_action_just_pressed("Equip In Gauntlet"): if Input.is_action_just_pressed("Equip Primary Weapon"):
if equipped_weapon == 1 and weapons[0]:
swap_weapons()
if Input.is_action_just_pressed("Equip Secondary Weapon"):
if equipped_weapon == 0 and weapons[1]:
swap_weapons()
if Input.is_action_just_pressed("Swap Weapons"):
swap_weapons() swap_weapons()
if movement.sprinting: if movement.sprinting:
@ -185,10 +192,10 @@ func _process(delta: float) -> void:
camera.fov = Data.graphics.hfov * (1.0 / movement.zoom_factor) camera.fov = Data.graphics.hfov * (1.0 / movement.zoom_factor)
if Input.is_action_just_pressed("View Map"): if Input.is_action_just_pressed("View Map"):
hud.maximise_minimap(Game.level) hud.maximise_minimap()
#Input.mouse_mode = Input.MOUSE_MODE_VISIBLE #Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
if Input.is_action_just_released("View Map"): if Input.is_action_just_released("View Map"):
hud.minimize_minimap(self) hud.minimize_minimap()
#Input.mouse_mode = Input.MOUSE_MODE_CAPTURED #Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
check_left_hand_valid() check_left_hand_valid()
@ -216,6 +223,9 @@ func _unhandled_input(event: InputEvent) -> void:
if event.is_action_pressed("Pause"): if event.is_action_pressed("Pause"):
var menu: PauseMenu = pause_menu_scene.instantiate() as PauseMenu var menu: PauseMenu = pause_menu_scene.instantiate() as PauseMenu
pause() pause()
menu.game_manager = game_manager
menu.quit_to_desktop_pressed.connect(game_manager.quit_to_desktop)
menu.quit_to_main_menu_pressed.connect(game_manager.scene_switch_main_menu)
menu.closed.connect(unpause) menu.closed.connect(unpause)
hud.add_child(menu) hud.add_child(menu)
@ -266,7 +276,6 @@ func enter_editing_mode(value: int) -> void:
weapons_active = false weapons_active = false
hud.set_wave_count(value + 1) hud.set_wave_count(value + 1)
hud.set_energy_visible(false) hud.set_energy_visible(false)
hud.set_offhand_energy_visible(false)
hud.grow_wave_start_label() hud.grow_wave_start_label()
editing_mode = true editing_mode = true
edit_tool.enabled = true edit_tool.enabled = true
@ -282,17 +291,18 @@ func exit_editing_mode(value: int) -> void:
hud.set_wave_count(value) hud.set_wave_count(value)
#if !weapon and offhand_weapon: #if !weapon and offhand_weapon:
# swap_weapons() # swap_weapons()
var offhand_weapon: Weapon = weapons[0] if equipped_weapon == 1 else weapons[1]
if offhand_weapon:
offhand_weapon.current_energy = offhand_weapon.max_energy
#offhand_weapon.energy_changed.emit(offhand_weapon.current_energy)
if (!weapons[equipped_weapon] and offhand_weapon) or (weapons[0] and equipped_weapon == 1):
swap_weapons()
if weapons[equipped_weapon]: if weapons[equipped_weapon]:
hud.set_energy_visible(true) hud.set_energy_visible(true)
#weapon.set_visible(false) #weapon.set_visible(false)
weapons[equipped_weapon].current_energy = weapons[equipped_weapon].max_energy weapons[equipped_weapon].current_energy = weapons[equipped_weapon].max_energy
#this had to be commented out coz the new energy bar thinks "energy changed" is "energy used" #this had to be commented out coz the new energy bar thinks "energy changed" is "energy used"
#weapons[equipped_weapon].energy_changed.emit(weapons[equipped_weapon].current_energy) #weapons[equipped_weapon].energy_changed.emit(weapons[equipped_weapon].current_energy)
var offhand_weapon: Weapon = weapons[0] if equipped_weapon == 1 else weapons[1]
if offhand_weapon:
hud.set_offhand_energy_visible(true)
offhand_weapon.current_energy = offhand_weapon.max_energy
#offhand_weapon.energy_changed.emit(offhand_weapon.current_energy)
edit_tool.enabled = false edit_tool.enabled = false
edit_tool.delete_tower_preview() edit_tool.delete_tower_preview()
left_hand.visible = false left_hand.visible = false
@ -355,13 +365,9 @@ func equip_weapon(slot: int = 0) -> void:
if weapons[slot].stats.energy_type == Data.EnergyType.DISCRETE: if weapons[slot].stats.energy_type == Data.EnergyType.DISCRETE:
hud.new_energy_bar.create_discrete_icons(weapons[slot].max_energy) hud.new_energy_bar.create_discrete_icons(weapons[slot].max_energy)
else: else:
weapons[slot].energy_spent.connect(hud.new_energy_bar2.use_energy) weapons[slot].energy_recharged.connect(hud.new_energy_bar.gain_secondary_energy)
weapons[slot].energy_recharged.connect(hud.new_energy_bar2.gain_energy) hud.new_energy_bar.secondary_max_energy = weapons[slot].max_energy
hud.new_energy_bar2.max_energy = weapons[slot].max_energy hud.new_energy_bar.secondary_energy = weapons[slot].current_energy
if weapons[slot].stats.energy_type == Data.EnergyType.CONTINUOUS:
hud.new_energy_bar2.enable_progress_bar()
if weapons[slot].stats.energy_type == Data.EnergyType.DISCRETE:
hud.new_energy_bar2.create_discrete_icons(weapons[slot].max_energy)
func stow_weapon(slot: int = 0) -> void: func stow_weapon(slot: int = 0) -> void:
@ -370,21 +376,15 @@ func stow_weapon(slot: int = 0) -> void:
weapons[slot].visible = false weapons[slot].visible = false
weapons[slot].energy_spent.disconnect(hud.new_energy_bar.use_energy) weapons[slot].energy_spent.disconnect(hud.new_energy_bar.use_energy)
weapons[slot].energy_recharged.disconnect(hud.new_energy_bar.gain_energy) weapons[slot].energy_recharged.disconnect(hud.new_energy_bar.gain_energy)
weapons[slot].energy_spent.connect(hud.new_energy_bar2.use_energy) weapons[slot].energy_recharged.connect(hud.new_energy_bar.gain_secondary_energy)
weapons[slot].energy_recharged.connect(hud.new_energy_bar2.gain_energy) hud.new_energy_bar.secondary_max_energy = weapons[slot].max_energy
hud.set_offhand_energy(weapons[slot].current_energy) hud.new_energy_bar.secondary_energy = weapons[slot].current_energy
hud.new_energy_bar2.max_energy = weapons[slot].max_energy
if weapons[slot].stats.energy_type == Data.EnergyType.CONTINUOUS:
hud.new_energy_bar2.enable_progress_bar()
if weapons[slot].stats.energy_type == Data.EnergyType.DISCRETE:
hud.new_energy_bar2.create_discrete_icons(weapons[slot].max_energy)
func show_weapon(slot: int = 0) -> void: func show_weapon(slot: int = 0) -> void:
weapons[slot].release_trigger() weapons[slot].release_trigger()
weapons[slot].release_second_trigger() weapons[slot].release_second_trigger()
weapons[slot].energy_spent.disconnect(hud.new_energy_bar2.use_energy) weapons[slot].energy_recharged.disconnect(hud.new_energy_bar.gain_secondary_energy)
weapons[slot].energy_recharged.disconnect(hud.new_energy_bar2.gain_energy)
weapons[slot].energy_spent.connect(hud.new_energy_bar.use_energy) weapons[slot].energy_spent.connect(hud.new_energy_bar.use_energy)
weapons[slot].energy_recharged.connect(hud.new_energy_bar.gain_energy) weapons[slot].energy_recharged.connect(hud.new_energy_bar.gain_energy)
hud.set_weapon_energy(weapons[slot].current_energy, weapons[slot].stats.energy_type) hud.set_weapon_energy(weapons[slot].current_energy, weapons[slot].stats.energy_type)
@ -393,6 +393,10 @@ func show_weapon(slot: int = 0) -> void:
hud.new_energy_bar.enable_progress_bar() hud.new_energy_bar.enable_progress_bar()
if weapons[slot].stats.energy_type == Data.EnergyType.DISCRETE: if weapons[slot].stats.energy_type == Data.EnergyType.DISCRETE:
hud.new_energy_bar.create_discrete_icons(weapons[slot].max_energy) hud.new_energy_bar.create_discrete_icons(weapons[slot].max_energy)
hud.new_energy_bar.use_energy(weapons[slot].max_energy - weapons[slot].current_energy, weapons[slot].stats.energy_type)
var offhand: int = 0 if equipped_weapon == 1 else 1
if !weapons[offhand]:
hud.new_energy_bar.disable_secondary_energy()
func swap_weapons() -> void: func swap_weapons() -> void:
@ -401,7 +405,8 @@ func swap_weapons() -> void:
weapons_active = false weapons_active = false
swap_off_audio.play() swap_off_audio.play()
hud.audio_guard = true hud.audio_guard = true
stow_weapon(equipped_weapon) if weapons[equipped_weapon]:
stow_weapon(equipped_weapon)
equipped_weapon = 0 if equipped_weapon == 1 else 1 equipped_weapon = 0 if equipped_weapon == 1 else 1
show_weapon(equipped_weapon) show_weapon(equipped_weapon)
weapon_swap_timer.start() weapon_swap_timer.start()
@ -422,7 +427,7 @@ func unequip_weapon(slot: int = 0) -> void:
hud.new_energy_bar.blank() hud.new_energy_bar.blank()
else: else:
hud.swap_icon.visible = true hud.swap_icon.visible = true
hud.new_energy_bar2.blank() hud.new_energy_bar.disable_secondary_energy()
#gauntlet_sprite.set_visible(true) #gauntlet_sprite.set_visible(true)
weapons[slot].queue_free() weapons[slot].queue_free()
weapons[slot] = null weapons[slot] = null

@ -1,4 +1,4 @@
[gd_scene load_steps=64 format=3 uid="uid://dxgxbtf68lcv5"] [gd_scene load_steps=62 format=3 uid="uid://dxgxbtf68lcv5"]
[ext_resource type="Script" uid="uid://1fqpoegbdm6n" path="res://PCs/hero.gd" id="1_pihpe"] [ext_resource type="Script" uid="uid://1fqpoegbdm6n" path="res://PCs/hero.gd" id="1_pihpe"]
[ext_resource type="Resource" uid="uid://b5pc3frhx467q" path="res://Classes/Engineer/class.tres" id="2_dbyo0"] [ext_resource type="Resource" uid="uid://b5pc3frhx467q" path="res://Classes/Engineer/class.tres" id="2_dbyo0"]
@ -7,7 +7,7 @@
[ext_resource type="PackedScene" uid="uid://buvgdem68wtev" path="res://Scenes/Menus/PauseMenu/pause_menu.tscn" id="3_avnsx"] [ext_resource type="PackedScene" uid="uid://buvgdem68wtev" path="res://Scenes/Menus/PauseMenu/pause_menu.tscn" id="3_avnsx"]
[ext_resource type="Script" uid="uid://cij76at0nbs1v" path="res://PCs/view_movement.gd" id="4_mhexa"] [ext_resource type="Script" uid="uid://cij76at0nbs1v" path="res://PCs/view_movement.gd" id="4_mhexa"]
[ext_resource type="PackedScene" uid="uid://dixtx38u4jhd7" path="res://Scenes/UI/card_hand.tscn" id="4_mwtvp"] [ext_resource type="PackedScene" uid="uid://dixtx38u4jhd7" path="res://Scenes/UI/card_hand.tscn" id="4_mwtvp"]
[ext_resource type="PackedScene" uid="uid://dqt1ggtkpkuhs" path="res://Scenes/gauntlet.tscn" id="5_jlxb3"] [ext_resource type="PackedScene" uid="uid://dqt1ggtkpkuhs" path="res://PCs/PathEditTool/path_edit_tool.tscn" id="5_jlxb3"]
[ext_resource type="Script" uid="uid://do24iuot0j7d7" path="res://Scripts/inventory.gd" id="6_cf5ap"] [ext_resource type="Script" uid="uid://do24iuot0j7d7" path="res://Scripts/inventory.gd" id="6_cf5ap"]
[ext_resource type="Texture2D" uid="uid://cjqxkraykhxxk" path="res://Classes/Engineer/red.png" id="6_yyp8i"] [ext_resource type="Texture2D" uid="uid://cjqxkraykhxxk" path="res://Classes/Engineer/red.png" id="6_yyp8i"]
[ext_resource type="Script" uid="uid://b6kjrl7ae1mi0" path="res://PCs/hud.gd" id="8_yl6ka"] [ext_resource type="Script" uid="uid://b6kjrl7ae1mi0" path="res://PCs/hud.gd" id="8_yl6ka"]
@ -20,15 +20,14 @@
[ext_resource type="Texture2D" uid="uid://chhmkmlfrobhu" path="res://Assets/Textures/bubble.png" id="15_q3yot"] [ext_resource type="Texture2D" uid="uid://chhmkmlfrobhu" path="res://Assets/Textures/bubble.png" id="15_q3yot"]
[ext_resource type="Texture2D" uid="uid://cqnapc8cscl7i" path="res://Assets/Textures/border.png" id="16_x1xjr"] [ext_resource type="Texture2D" uid="uid://cqnapc8cscl7i" path="res://Assets/Textures/border.png" id="16_x1xjr"]
[ext_resource type="PackedScene" uid="uid://chnj376d3lcjd" path="res://Scenes/UI/pickup_notification.tscn" id="17_oyeww"] [ext_resource type="PackedScene" uid="uid://chnj376d3lcjd" path="res://Scenes/UI/pickup_notification.tscn" id="17_oyeww"]
[ext_resource type="PackedScene" uid="uid://d17c77pqsi8oy" path="res://enemy_card_ui.tscn" id="18_dfkac"] [ext_resource type="PackedScene" uid="uid://d17c77pqsi8oy" path="res://UI/EnemyCard/enemy_card_ui.tscn" id="18_dfkac"]
[ext_resource type="Texture2D" uid="uid://cvjcu3hofahr6" path="res://Assets/Textures/place_slot.png" id="18_okmpi"] [ext_resource type="Texture2D" uid="uid://cvjcu3hofahr6" path="res://Assets/Textures/place_slot.png" id="18_okmpi"]
[ext_resource type="Script" uid="uid://b5wle8f6rv3e7" path="res://PCs/player_movement.gd" id="20_cfhw8"] [ext_resource type="Script" uid="uid://b5wle8f6rv3e7" path="res://PCs/player_movement.gd" id="20_cfhw8"]
[ext_resource type="Shader" uid="uid://dhtylicctk3g4" path="res://UI/crosshair.gdshader" id="20_gxpgc"]
[ext_resource type="Texture2D" uid="uid://r202vo47jw1q" path="res://Assets/Textures/enemyhealth.png" id="21_apps2"]
[ext_resource type="AudioStream" uid="uid://csu2hce4bfoki" path="res://Audio/cardPlace1.ogg" id="24_8ch4w"] [ext_resource type="AudioStream" uid="uid://csu2hce4bfoki" path="res://Audio/cardPlace1.ogg" id="24_8ch4w"]
[ext_resource type="Texture2D" uid="uid://b8woqvpwq3tsq" path="res://Assets/Textures/swap_slot.png" id="24_gr6xt"]
[ext_resource type="AudioStream" uid="uid://dxq8b77wa41os" path="res://Audio/cardPlace2.ogg" id="25_awl6m"] [ext_resource type="AudioStream" uid="uid://dxq8b77wa41os" path="res://Audio/cardPlace2.ogg" id="25_awl6m"]
[ext_resource type="Texture2D" uid="uid://bs2mskoyvyehv" path="res://Assets/Textures/crosshair159.png" id="25_l7gpx"]
[ext_resource type="AudioStream" uid="uid://bxripx3suub1v" path="res://Audio/cardPlace3.ogg" id="26_7tm07"] [ext_resource type="AudioStream" uid="uid://bxripx3suub1v" path="res://Audio/cardPlace3.ogg" id="26_7tm07"]
[ext_resource type="Texture2D" uid="uid://0x80ptif1diq" path="res://Assets/Textures/hand_small_point.png" id="26_dfkac"]
[ext_resource type="PackedScene" uid="uid://c2id8hjico4w8" path="res://energy_bar.tscn" id="27_14ugt"] [ext_resource type="PackedScene" uid="uid://c2id8hjico4w8" path="res://energy_bar.tscn" id="27_14ugt"]
[ext_resource type="AudioStream" uid="uid://k1lsqkvohjpa" path="res://Audio/cardPlace4.ogg" id="27_xvxs8"] [ext_resource type="AudioStream" uid="uid://k1lsqkvohjpa" path="res://Audio/cardPlace4.ogg" id="27_xvxs8"]
[ext_resource type="AudioStream" uid="uid://bn8lkvy5wibvo" path="res://Audio/cardSlide1.ogg" id="28_1thk8"] [ext_resource type="AudioStream" uid="uid://bn8lkvy5wibvo" path="res://Audio/cardSlide1.ogg" id="28_1thk8"]
@ -96,21 +95,6 @@ viewport_path = NodePath("FirstPersonViewport")
[sub_resource type="ViewportTexture" id="ViewportTexture_574jy"] [sub_resource type="ViewportTexture" id="ViewportTexture_574jy"]
viewport_path = NodePath("MiniMapViewport") viewport_path = NodePath("MiniMapViewport")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_lg5jo"]
shader = ExtResource("20_gxpgc")
shader_parameter/center_enabled = true
shader_parameter/legs_enabled = true
shader_parameter/inverted = false
shader_parameter/color_id = 0
shader_parameter/color_0 = Vector4(1, 0, 0, 0.95)
shader_parameter/color_1 = Vector4(1, 0, 0, 1)
shader_parameter/color_2 = Vector4(0, 0, 1, 1)
shader_parameter/center_radius = 0.002
shader_parameter/width = 0.002
shader_parameter/len = 0.012
shader_parameter/spacing = 0.008
shader_parameter/spread = 1.0
[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_tsiqi"] [sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_tsiqi"]
properties/0/path = NodePath(".:position") properties/0/path = NodePath(".:position")
properties/0/spawn = true properties/0/spawn = true
@ -384,23 +368,20 @@ max_look_down_angle = 80.0
max_look_up_angle = 80.0 max_look_up_angle = 80.0
enable_jumping = true enable_jumping = true
[node name="HUD" type="CanvasLayer" parent="." node_paths=PackedStringArray("player", "wave_count", "lives_count", "currency_count", "minimap_outline", "crosshair", "minimap", "minimap_cam", "minimap_viewport", "fps_label", "hover_text", "enemy_sprites", "enemy_counts", "weapon_energy_bar", "offhand_energy_bar", "wave_start_label", "place_icon", "swap_icon", "place_text", "swap_text", "new_energy_bar", "new_energy_bar2")] [node name="HUD" type="CanvasLayer" parent="." node_paths=PackedStringArray("player", "wave_count", "lives_count", "currency_count", "minimap_outline", "minimap", "minimap_cam", "minimap_viewport", "fps_label", "hover_text", "enemy_sprites", "enemy_counts", "wave_start_label", "place_icon", "swap_icon", "place_text", "swap_text", "new_energy_bar")]
script = ExtResource("8_yl6ka") script = ExtResource("8_yl6ka")
player = NodePath("..") player = NodePath("..")
wave_count = NodePath("WaveCount") wave_count = NodePath("EnemyTracker/WaveCount")
lives_count = NodePath("LivesCount") lives_count = NodePath("LivesBar/LivesCount")
currency_count = NodePath("CurrencyCount") currency_count = NodePath("Minimap/CurrencyCount")
minimap_outline = NodePath("MinimapBorder") minimap_outline = NodePath("Minimap/MinimapBorder")
crosshair = NodePath("Crosshair")
minimap = NodePath("Minimap") minimap = NodePath("Minimap")
minimap_cam = NodePath("../MiniMapViewport/Camera3D") minimap_cam = NodePath("../MiniMapViewport/Camera3D")
minimap_viewport = NodePath("../MiniMapViewport") minimap_viewport = NodePath("../MiniMapViewport")
fps_label = NodePath("FPSCounter") fps_label = NodePath("FPSCounter")
hover_text = NodePath("RichTextLabel2") hover_text = NodePath("InteractLabel")
enemy_sprites = [NodePath("EnemyTracker/TextureRect"), NodePath("EnemyTracker/TextureRect2"), NodePath("EnemyTracker/TextureRect3"), NodePath("EnemyTracker/TextureRect4"), NodePath("EnemyTracker/TextureRect5")] enemy_sprites = [NodePath("EnemyTracker/TextureRect"), NodePath("EnemyTracker/TextureRect2"), NodePath("EnemyTracker/TextureRect3"), NodePath("EnemyTracker/TextureRect4"), NodePath("EnemyTracker/TextureRect5")]
enemy_counts = [NodePath("EnemyTracker/TextureRect/Label"), NodePath("EnemyTracker/TextureRect2/Label2"), NodePath("EnemyTracker/TextureRect3/Label3"), NodePath("EnemyTracker/TextureRect4/Label4"), NodePath("EnemyTracker/TextureRect5/Label5")] enemy_counts = [NodePath("EnemyTracker/TextureRect/Label"), NodePath("EnemyTracker/TextureRect2/Label2"), NodePath("EnemyTracker/TextureRect3/Label3"), NodePath("EnemyTracker/TextureRect4/Label4"), NodePath("EnemyTracker/TextureRect5/Label5")]
weapon_energy_bar = NodePath("PrimaryEnergyBar")
offhand_energy_bar = NodePath("OffhandEnergyBar")
pickup_notif_scene = ExtResource("17_oyeww") pickup_notif_scene = ExtResource("17_oyeww")
wave_start_label = NodePath("RichTextLabel") wave_start_label = NodePath("RichTextLabel")
place_icon = NodePath("PlaceIcon") place_icon = NodePath("PlaceIcon")
@ -409,7 +390,6 @@ place_text = NodePath("PlaceIcon/RichTextLabel")
swap_text = NodePath("SwapIcon/RichTextLabel") swap_text = NodePath("SwapIcon/RichTextLabel")
enemy_card_scene = ExtResource("18_dfkac") enemy_card_scene = ExtResource("18_dfkac")
new_energy_bar = NodePath("EnergyBar") new_energy_bar = NodePath("EnergyBar")
new_energy_bar2 = NodePath("EnergyBar2")
[node name="FirstPersonCam" type="TextureRect" parent="HUD"] [node name="FirstPersonCam" type="TextureRect" parent="HUD"]
anchors_preset = 15 anchors_preset = 15
@ -436,20 +416,16 @@ texture = ExtResource("18_okmpi")
[node name="RichTextLabel" type="RichTextLabel" parent="HUD/PlaceIcon"] [node name="RichTextLabel" type="RichTextLabel" parent="HUD/PlaceIcon"]
layout_mode = 1 layout_mode = 1
anchors_preset = 8 anchors_preset = 15
anchor_left = 0.5 anchor_right = 1.0
anchor_top = 0.5 anchor_bottom = 1.0
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -30.0
offset_top = -19.0
offset_right = 30.0
offset_bottom = 41.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
bbcode_enabled = true bbcode_enabled = true
text = "#Equip In Gauntlet#" text = "#Equip Primary Weapon#"
scroll_active = false scroll_active = false
horizontal_alignment = 1
vertical_alignment = 1
[node name="SwapIcon" type="TextureRect" parent="HUD"] [node name="SwapIcon" type="TextureRect" parent="HUD"]
anchors_preset = 3 anchors_preset = 3
@ -463,24 +439,20 @@ offset_right = -6.0
offset_bottom = -1.0 offset_bottom = -1.0
grow_horizontal = 0 grow_horizontal = 0
grow_vertical = 0 grow_vertical = 0
texture = ExtResource("24_gr6xt") texture = ExtResource("18_okmpi")
[node name="RichTextLabel" type="RichTextLabel" parent="HUD/SwapIcon"] [node name="RichTextLabel" type="RichTextLabel" parent="HUD/SwapIcon"]
layout_mode = 1 layout_mode = 1
anchors_preset = 8 anchors_preset = 15
anchor_left = 0.5 anchor_right = 1.0
anchor_top = 0.5 anchor_bottom = 1.0
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -30.0
offset_top = -29.0
offset_right = 30.0
offset_bottom = 31.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
bbcode_enabled = true bbcode_enabled = true
text = "#Secondary Fire#" text = "#Equip Secondary Weapon#"
scroll_active = false scroll_active = false
horizontal_alignment = 1
vertical_alignment = 1
[node name="Minimap" type="TextureRect" parent="HUD"] [node name="Minimap" type="TextureRect" parent="HUD"]
anchors_preset = 1 anchors_preset = 1
@ -494,6 +466,35 @@ grow_horizontal = 0
mouse_filter = 2 mouse_filter = 2
texture = SubResource("ViewportTexture_574jy") texture = SubResource("ViewportTexture_574jy")
[node name="MinimapBorder" type="TextureRect" parent="HUD/Minimap"]
texture_filter = 1
layout_mode = 1
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -259.0
offset_top = -3.0
offset_right = 3.0
offset_bottom = 333.0
grow_horizontal = 0
mouse_filter = 2
texture = ExtResource("16_x1xjr")
[node name="CurrencyCount" type="Label" parent="HUD/Minimap"]
layout_mode = 1
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -61.0
offset_top = 260.0
offset_bottom = 318.0
grow_horizontal = 0
theme_override_colors/font_color = Color(0.988235, 0.909804, 0.65098, 1)
theme_override_font_sizes/font_size = 37
text = "20"
horizontal_alignment = 1
vertical_alignment = 1
[node name="FPSCounter" type="Label" parent="HUD"] [node name="FPSCounter" type="Label" parent="HUD"]
anchors_preset = 1 anchors_preset = 1
anchor_left = 1.0 anchor_left = 1.0
@ -518,31 +519,17 @@ grow_vertical = 1
scale = Vector2(3, 3) scale = Vector2(3, 3)
mouse_filter = 2 mouse_filter = 2
[node name="LivesCount" type="Label" parent="HUD"] [node name="LivesCount" type="Label" parent="HUD/LivesBar"]
offset_left = -5.0 layout_mode = 0
offset_top = 15.0 offset_right = 79.0
offset_right = 100.0 offset_bottom = 70.0
offset_bottom = 72.0 scale = Vector2(0.33, 0.33)
theme_override_colors/font_color = Color(0.65098, 0.227451, 0.243137, 1) theme_override_colors/font_color = Color(0.65098, 0.227451, 0.243137, 1)
theme_override_font_sizes/font_size = 37 theme_override_font_sizes/font_size = 37
text = "120 text = "120"
"
horizontal_alignment = 1 horizontal_alignment = 1
vertical_alignment = 1 vertical_alignment = 1
[node name="MinimapBorder" type="TextureRect" parent="HUD"]
texture_filter = 1
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -262.0
offset_top = 37.0
offset_right = -37.0
offset_bottom = 336.0
grow_horizontal = 0
mouse_filter = 2
texture = ExtResource("16_x1xjr")
[node name="EnemyTracker" type="TextureRect" parent="HUD"] [node name="EnemyTracker" type="TextureRect" parent="HUD"]
texture_filter = 1 texture_filter = 1
anchors_preset = 5 anchors_preset = 5
@ -665,22 +652,23 @@ text = "999"
horizontal_alignment = 1 horizontal_alignment = 1
vertical_alignment = 1 vertical_alignment = 1
[node name="CurrencyCount" type="Label" parent="HUD"] [node name="WaveCount" type="Label" parent="HUD/EnemyTracker"]
anchors_preset = 1 layout_mode = 1
anchor_left = 1.0 anchors_preset = 5
anchor_right = 1.0 anchor_left = 0.5
offset_left = -101.0 anchor_right = 0.5
offset_top = 300.0 offset_left = -30.0
offset_right = -40.0 offset_top = 59.0
offset_bottom = 54.0 offset_right = 30.0
grow_horizontal = 0 offset_bottom = 87.0
theme_override_colors/font_color = Color(0.988235, 0.909804, 0.65098, 1) grow_horizontal = 2
theme_override_font_sizes/font_size = 37 theme_override_colors/font_color = Color(0, 0, 0, 1)
text = "20" theme_override_font_sizes/font_size = 18
text = "1"
horizontal_alignment = 1 horizontal_alignment = 1
vertical_alignment = 1 vertical_alignment = 1
[node name="RichTextLabel2" type="RichTextLabel" parent="HUD"] [node name="InteractLabel" type="RichTextLabel" parent="HUD"]
anchors_preset = 8 anchors_preset = 8
anchor_left = 0.5 anchor_left = 0.5
anchor_top = 0.5 anchor_top = 0.5
@ -700,71 +688,6 @@ bbcode_enabled = true
text = "[center]Press Button To do thing" text = "[center]Press Button To do thing"
scroll_active = false scroll_active = false
[node name="WaveCount" type="Label" parent="HUD"]
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -30.0
offset_top = 81.0
offset_right = 30.0
offset_bottom = 109.0
grow_horizontal = 2
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 18
text = "1"
horizontal_alignment = 1
vertical_alignment = 1
[node name="Crosshair" type="ColorRect" parent="HUD"]
material = SubResource("ShaderMaterial_lg5jo")
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
[node name="PrimaryEnergyBar" type="TextureProgressBar" parent="HUD"]
visible = false
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -500.0
offset_top = -40.0
grow_horizontal = 0
grow_vertical = 0
step = 0.01
value = 100.0
fill_mode = 1
nine_patch_stretch = true
texture_under = ExtResource("21_apps2")
texture_progress = ExtResource("21_apps2")
tint_under = Color(0, 1, 1, 0.168627)
tint_progress = Color(0, 1, 1, 1)
[node name="OffhandEnergyBar" type="TextureProgressBar" parent="HUD"]
visible = false
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -379.0
offset_top = -50.0
offset_bottom = -40.0
grow_horizontal = 0
grow_vertical = 0
step = 0.01
value = 100.0
fill_mode = 1
nine_patch_stretch = true
texture_under = ExtResource("21_apps2")
texture_progress = ExtResource("21_apps2")
tint_under = Color(0, 1, 1, 0.168627)
tint_progress = Color(0, 1, 1, 1)
[node name="VBoxContainer" type="VBoxContainer" parent="HUD"] [node name="VBoxContainer" type="VBoxContainer" parent="HUD"]
anchors_preset = 4 anchors_preset = 4
anchor_top = 0.5 anchor_top = 0.5
@ -811,12 +734,44 @@ grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
[node name="EnergyBar" parent="HUD" instance=ExtResource("27_14ugt")] [node name="EnergyBar" parent="HUD" instance=ExtResource("27_14ugt")]
visible = false
mouse_filter = 2 mouse_filter = 2
[node name="EnergyBar2" parent="HUD" instance=ExtResource("27_14ugt")] [node name="TextureRect" type="TextureRect" parent="HUD"]
offset_left = -72.0 modulate = Color(0.54324, 0.193653, 0.15885, 0.9)
offset_right = -72.0 anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -20.0
offset_top = -20.0
offset_right = 20.0
offset_bottom = 20.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2 mouse_filter = 2
texture = ExtResource("25_l7gpx")
expand_mode = 3
stretch_mode = 5
[node name="TextureRect2" type="TextureRect" parent="HUD"]
visible = false
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -20.0
offset_top = -20.0
offset_right = 20.0
offset_bottom = 20.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
texture = ExtResource("26_dfkac")
expand_mode = 3
stretch_mode = 5
[node name="WeaponSwapTimer" type="Timer" parent="."] [node name="WeaponSwapTimer" type="Timer" parent="."]
wait_time = 0.4 wait_time = 0.4

@ -12,12 +12,9 @@ var last_lives_count: int = 120
@export var minimap_viewport: SubViewport @export var minimap_viewport: SubViewport
@export var fps_label: Label @export var fps_label: Label
@export var hover_text: RichTextLabel @export var hover_text: RichTextLabel
var minimap_anchor: Node3D
var enemy_names: Array[String] var enemy_names: Array[String]
@export var enemy_sprites: Array[TextureRect] @export var enemy_sprites: Array[TextureRect]
@export var enemy_counts: Array[Label] @export var enemy_counts: Array[Label]
@export var weapon_energy_bar: TextureProgressBar
@export var offhand_energy_bar: TextureProgressBar
@export var pickup_notif_scene: PackedScene @export var pickup_notif_scene: PackedScene
@export var wave_start_label: RichTextLabel @export var wave_start_label: RichTextLabel
@export var place_icon: TextureRect @export var place_icon: TextureRect
@ -26,8 +23,8 @@ var enemy_names: Array[String]
@export var swap_text: RichTextLabel @export var swap_text: RichTextLabel
@export var enemy_card_scene: PackedScene @export var enemy_card_scene: PackedScene
@export var new_energy_bar: EnergyBar @export var new_energy_bar: EnergyBar
@export var new_energy_bar2: EnergyBar
var map_anchor: Node3D
var audio_guard: bool = false var audio_guard: bool = false
var cards: Array[EnemyCardUI] = [] var cards: Array[EnemyCardUI] = []
@ -65,20 +62,14 @@ func show_wave_generation_anim(wave: Wave) -> void:
func set_energy_visible(value: bool) -> void: func set_energy_visible(value: bool) -> void:
pass new_energy_bar.visible = value
#weapon_energy_bar.set_visible(value)
func set_offhand_energy_visible(value: bool) -> void:
pass
#offhand_energy_bar.set_visible(value)
func _process(_delta: float) -> void: func _process(_delta: float) -> void:
fps_label.text = "FPS: " + str(Engine.get_frames_per_second()) fps_label.text = "FPS: " + str(Engine.get_frames_per_second())
wave_start_label.text = parse_action_tag("[center]Press #Ready# to start wave") wave_start_label.text = parse_action_tag("[center]Press #Ready# to start wave")
place_text.text = parse_action_tag("[center]#Equip In Gauntlet#") place_text.text = parse_action_tag("[center]#Equip Primary Weapon#")
swap_text.text = parse_action_tag("[center]#Secondary Fire#") swap_text.text = parse_action_tag("[center]#Equip Secondary Weapon#")
func grow_wave_start_label() -> void: func grow_wave_start_label() -> void:
@ -102,12 +93,16 @@ func tween_label(x: float) -> void:
func set_hover_text(text: String) -> void: func set_hover_text(text: String) -> void:
$TextureRect2.visible = true
$TextureRect.visible = false
hover_text.text = parse_action_tag(text) hover_text.text = parse_action_tag(text)
hover_text.set_visible(true) hover_text.visible = true
func unset_hover_text() -> void: func unset_hover_text() -> void:
hover_text.set_visible(false) hover_text.visible = false
$TextureRect2.visible = false
$TextureRect.visible = true
func set_wave_count(value: int) -> void: func set_wave_count(value: int) -> void:
@ -134,8 +129,12 @@ func set_upcoming_wave(value: Dictionary) -> void:
var frame_count: int = 0 var frame_count: int = 0
enemy_names = [] enemy_names = []
var wave: Dictionary = {} var wave: Dictionary = {}
for index: int in value: for key: String in value:
wave[Data.enemies[index]] = value[index] var new_enemy: Enemy
for enemy: Enemy in player.game_manager.level.enemy_pool:
if enemy.title == key:
new_enemy = enemy
wave[new_enemy] = value[key]
for x: int in enemy_sprites.size(): for x: int in enemy_sprites.size():
enemy_sprites[x].set_visible(false) enemy_sprites[x].set_visible(false)
enemy_counts[x].set_visible(false) enemy_counts[x].set_visible(false)
@ -157,7 +156,7 @@ func set_crosshair_visible(value: bool) -> void:
#TODO: the fuck is audio_guard for? #TODO: the fuck is audio_guard for?
func set_weapon_energy(value: int, energy_type: Data.EnergyType) -> void: func set_weapon_energy(value: int, energy_type: Data.EnergyType) -> void:
weapon_energy_bar.value = value #weapon_energy_bar.value = value
if player.editing_mode: if player.editing_mode:
audio_guard = true audio_guard = true
if value == 0 and !audio_guard: if value == 0 and !audio_guard:
@ -170,12 +169,8 @@ func set_weapon_energy(value: int, energy_type: Data.EnergyType) -> void:
audio_guard = false audio_guard = false
func set_offhand_energy(value: int) -> void: func maximise_minimap() -> void:
offhand_energy_bar.value = value minimap_cam.anchor = map_anchor
func maximise_minimap(anchor: Node3D) -> void:
minimap_cam.anchor = anchor
minimap.set_anchors_and_offsets_preset(Control.PRESET_FULL_RECT) minimap.set_anchors_and_offsets_preset(Control.PRESET_FULL_RECT)
minimap.offset_bottom = -40 minimap.offset_bottom = -40
minimap.offset_top = 40 minimap.offset_top = 40
@ -187,8 +182,8 @@ func maximise_minimap(anchor: Node3D) -> void:
currency_count.set_visible(false) currency_count.set_visible(false)
func minimize_minimap(anchor: Node3D) -> void: func minimize_minimap() -> void:
minimap_cam.anchor = anchor minimap_cam.anchor = player
minimap.set_anchors_and_offsets_preset(Control.PRESET_TOP_RIGHT) minimap.set_anchors_and_offsets_preset(Control.PRESET_TOP_RIGHT)
minimap.offset_right = -40 minimap.offset_right = -40
minimap.offset_top = 40 minimap.offset_top = 40
@ -208,11 +203,21 @@ func pickup(card: Card) -> void:
func parse_action_tag(text: String) -> String: func parse_action_tag(text: String) -> String:
var string_array: PackedStringArray = text.split("#") var string_array: PackedStringArray = text.split("#")
var output: Array[String] = []
if string_array.size() > 1: if string_array.size() > 1:
var event: InputEvent = InputMap.action_get_events(string_array[1])[0] for i: int in InputMap.action_get_events(string_array[1]).size():
if event is InputEventKey: var event: InputEvent = InputMap.action_get_events(string_array[1])[i]
string_array[1] = "[img=top,50]%s[/img]" % KeyIconMap.keys[str(event.keycode)] if InputMap.action_get_events(string_array[1]).size() > 1:
if event is InputEventMouseButton: var last: bool = true if i == InputMap.action_get_events(string_array[1]).size() - 1 else false
string_array[1] = "[img=top,50]%s[/img]" % KeyIconMap.mouse_buttons[str(event.button_index)] var first: bool = true if i == 0 else false
if last:
output.append(" or ")
elif !first:
output.append(", ")
if event is InputEventKey:
output.append("[img=top,50]%s[/img]" % KeyIconMap.keys[str(event.physical_keycode)])
if event is InputEventMouseButton:
output.append("[img=top,50]%s[/img]" % KeyIconMap.mouse_buttons[str(event.button_index)])
string_array[1] = "".join(output)
text = "".join(string_array) text = "".join(string_array)
return text return text

@ -172,9 +172,9 @@ func _process(_delta: float) -> void:
change_crouch = true change_crouch = true
if crouching: if crouching:
crouch() crouch()
if Input.is_action_just_pressed("Crouch") and is_in_climb_zone: if Input.is_action_just_pressed("Hold Climbing") and is_in_climb_zone:
hold_climb = true hold_climb = true
if Input.is_action_just_released("Crouch") and is_in_climb_zone: if Input.is_action_just_released("Hold Climbing") and is_in_climb_zone:
hold_climb = false hold_climb = false
look_vector.x = Input.get_joy_axis(0, JOY_AXIS_RIGHT_X) look_vector.x = Input.get_joy_axis(0, JOY_AXIS_RIGHT_X)
look_vector.y = Input.get_joy_axis(0, JOY_AXIS_RIGHT_Y) look_vector.y = Input.get_joy_axis(0, JOY_AXIS_RIGHT_Y)

@ -1,14 +1,16 @@
[gd_resource type="Resource" script_class="Enemy" load_steps=5 format=3 uid="uid://dsgkwh3opyqtx"] [gd_resource type="Resource" script_class="Enemy" load_steps=6 format=3 uid="uid://dsgkwh3opyqtx"]
[ext_resource type="Texture2D" uid="uid://chhmkmlfrobhu" path="res://Assets/Textures/bubble.png" id="1_57rr1"] [ext_resource type="Texture2D" uid="uid://chhmkmlfrobhu" path="res://Assets/Textures/bubble.png" id="1_57rr1"]
[ext_resource type="Texture2D" uid="uid://ta47gpiwloxm" path="res://Assets/Textures/dead_bubble.png" id="1_ioqxi"] [ext_resource type="Texture2D" uid="uid://ta47gpiwloxm" path="res://Assets/Textures/dead_bubble.png" id="1_ioqxi"]
[ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="1_wjbfx"] [ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="1_wjbfx"]
[ext_resource type="PackedScene" uid="uid://bjo2q6vca5qlv" path="res://Worlds/GreenPlanet/Enemies/air_enemy.tscn" id="3_86skx"]
[ext_resource type="Texture2D" uid="uid://d0vafwv4lhjji" path="res://Assets/TextureAtlases/bubble.tres" id="3_homny"] [ext_resource type="Texture2D" uid="uid://d0vafwv4lhjji" path="res://Assets/TextureAtlases/bubble.tres" id="3_homny"]
[resource] [resource]
script = ExtResource("1_wjbfx") script = ExtResource("1_wjbfx")
title = "bubble" title = "bubble"
target_type = 2 target_type = 2
scene = ExtResource("3_86skx")
icon = ExtResource("1_57rr1") icon = ExtResource("1_57rr1")
death_sprite = ExtResource("1_ioqxi") death_sprite = ExtResource("1_ioqxi")
sprite = ExtResource("3_homny") sprite = ExtResource("3_homny")

@ -1,29 +0,0 @@
[gd_resource type="Resource" script_class="Enemy" load_steps=5 format=3 uid="uid://bffhb5krs5elm"]
[ext_resource type="Texture2D" uid="uid://b1lwaxw62yp3p" path="res://Assets/Textures/dead_spike.png" id="1_1js8q"]
[ext_resource type="Texture2D" uid="uid://duywsy7jmh4u" path="res://Assets/Textures/spike.png" id="1_22o7e"]
[ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="1_q5r05"]
[ext_resource type="Texture2D" uid="uid://sybn6bjbj5fh" path="res://Assets/TextureAtlases/spike.tres" id="3_tbb38"]
[resource]
script = ExtResource("1_q5r05")
title = "spike"
target_type = 2
icon = ExtResource("1_22o7e")
death_sprite = ExtResource("1_1js8q")
sprite = ExtResource("3_tbb38")
spawn_power = 6
health = 120
penalty = 7
movement_speed = 1.0
spawn_cooldown = 1.0
common_group = 3
common_cost = 2
uncommon_group = 6
uncommon_cost = 3
rare_group = 10
rare_cost = 4
epic_group = 16
epic_cost = 5
legendary_group = 25
legendary_cost = 6

@ -1,19 +1,21 @@
[gd_resource type="Resource" script_class="Enemy" load_steps=5 format=3 uid="uid://boik1gnpl4v0a"] [gd_resource type="Resource" script_class="Enemy" load_steps=6 format=3 uid="uid://boik1gnpl4v0a"]
[ext_resource type="Texture2D" uid="uid://cde0voyrwnqkl" path="res://Assets/Textures/icon_eye_dog_boss.png" id="1_2o720"] [ext_resource type="Texture2D" uid="uid://cde0voyrwnqkl" path="res://Assets/Textures/icon_eye_dog_boss.png" id="1_2o720"]
[ext_resource type="Texture2D" uid="uid://bp3njt3h0qfbg" path="res://Assets/Textures/dead_eye_dog_boss.png" id="1_5xm32"] [ext_resource type="Texture2D" uid="uid://bp3njt3h0qfbg" path="res://Assets/Textures/dead_eye_dog_boss.png" id="1_5xm32"]
[ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="1_euaab"] [ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="1_euaab"]
[ext_resource type="Texture2D" uid="uid://ff3cys53p37j" path="res://Assets/TextureAtlases/dog_fast_boss.tres" id="2_1m62w"] [ext_resource type="Texture2D" uid="uid://ff3cys53p37j" path="res://Assets/TextureAtlases/dog_fast_boss.tres" id="2_1m62w"]
[ext_resource type="PackedScene" uid="uid://b0nady5xm88bo" path="res://Worlds/GreenPlanet/Enemies/land_enemy.tscn" id="3_g83md"]
[resource] [resource]
script = ExtResource("1_euaab") script = ExtResource("1_euaab")
title = "boss dog" title = "boss dog"
target_type = 1 target_type = 1
scene = ExtResource("3_g83md")
icon = ExtResource("1_2o720") icon = ExtResource("1_2o720")
death_sprite = ExtResource("1_5xm32") death_sprite = ExtResource("1_5xm32")
sprite = ExtResource("2_1m62w") sprite = ExtResource("2_1m62w")
spawn_power = 100 spawn_power = 100
health = 8000 health = 7000
penalty = 40 penalty = 40
movement_speed = 0.8 movement_speed = 0.8
spawn_cooldown = 1.0 spawn_cooldown = 1.0

@ -1,14 +1,16 @@
[gd_resource type="Resource" script_class="Enemy" load_steps=5 format=3 uid="uid://cvehqh4tt28g7"] [gd_resource type="Resource" script_class="Enemy" load_steps=6 format=3 uid="uid://cvehqh4tt28g7"]
[ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="1_k5sd1"] [ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="1_k5sd1"]
[ext_resource type="Texture2D" uid="uid://cv5p03aw78vwd" path="res://Assets/Textures/icon_eye_dog_fast.png" id="1_xgen5"] [ext_resource type="Texture2D" uid="uid://cv5p03aw78vwd" path="res://Assets/Textures/icon_eye_dog_fast.png" id="1_xgen5"]
[ext_resource type="Texture2D" uid="uid://dgdofekr7ow73" path="res://Assets/Textures/dead_eye_dog_fast.png" id="1_yj87d"] [ext_resource type="Texture2D" uid="uid://dgdofekr7ow73" path="res://Assets/Textures/dead_eye_dog_fast.png" id="1_yj87d"]
[ext_resource type="Texture2D" uid="uid://dd212gh03wloa" path="res://Assets/TextureAtlases/dog_fast.tres" id="2_mkbm6"] [ext_resource type="Texture2D" uid="uid://dd212gh03wloa" path="res://Assets/TextureAtlases/dog_fast.tres" id="2_mkbm6"]
[ext_resource type="PackedScene" uid="uid://b0nady5xm88bo" path="res://Worlds/GreenPlanet/Enemies/land_enemy.tscn" id="3_e3fq0"]
[resource] [resource]
script = ExtResource("1_k5sd1") script = ExtResource("1_k5sd1")
title = "fast dog" title = "fast dog"
target_type = 1 target_type = 1
scene = ExtResource("3_e3fq0")
icon = ExtResource("1_xgen5") icon = ExtResource("1_xgen5")
death_sprite = ExtResource("1_yj87d") death_sprite = ExtResource("1_yj87d")
sprite = ExtResource("2_mkbm6") sprite = ExtResource("2_mkbm6")

@ -1,14 +1,16 @@
[gd_resource type="Resource" script_class="Enemy" load_steps=5 format=3 uid="uid://dxi17xvdlhkvc"] [gd_resource type="Resource" script_class="Enemy" load_steps=6 format=3 uid="uid://dxi17xvdlhkvc"]
[ext_resource type="Texture2D" uid="uid://08n5jvq5tptf" path="res://Assets/Textures/icon_eye_dog_heavy.png" id="1_lck53"] [ext_resource type="Texture2D" uid="uid://08n5jvq5tptf" path="res://Assets/Textures/icon_eye_dog_heavy.png" id="1_lck53"]
[ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="1_q48il"] [ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="1_q48il"]
[ext_resource type="Texture2D" uid="uid://e7lahg40lq8a" path="res://Assets/Textures/dead_eye_dog_heavy.png" id="1_qveaa"] [ext_resource type="Texture2D" uid="uid://e7lahg40lq8a" path="res://Assets/Textures/dead_eye_dog_heavy.png" id="1_qveaa"]
[ext_resource type="Texture2D" uid="uid://c0543ucoalwmi" path="res://Assets/TextureAtlases/dog_fast_heavy.tres" id="2_7nc4x"] [ext_resource type="Texture2D" uid="uid://c0543ucoalwmi" path="res://Assets/TextureAtlases/dog_fast_heavy.tres" id="2_7nc4x"]
[ext_resource type="PackedScene" uid="uid://b0nady5xm88bo" path="res://Worlds/GreenPlanet/Enemies/land_enemy.tscn" id="3_t3gih"]
[resource] [resource]
script = ExtResource("1_q48il") script = ExtResource("1_q48il")
title = "heavy dog" title = "heavy dog"
target_type = 1 target_type = 1
scene = ExtResource("3_t3gih")
icon = ExtResource("1_lck53") icon = ExtResource("1_lck53")
death_sprite = ExtResource("1_qveaa") death_sprite = ExtResource("1_qveaa")
sprite = ExtResource("2_7nc4x") sprite = ExtResource("2_7nc4x")

@ -1,8 +1,9 @@
[gd_resource type="Resource" script_class="Enemy" load_steps=6 format=3 uid="uid://btudmfd7wfwec"] [gd_resource type="Resource" script_class="Enemy" load_steps=7 format=3 uid="uid://btudmfd7wfwec"]
[ext_resource type="Texture2D" uid="uid://bl16mvx4xaxeb" path="res://Assets/Textures/dead_leapfrog.png" id="1_aa1x4"] [ext_resource type="Texture2D" uid="uid://bl16mvx4xaxeb" path="res://Assets/Textures/dead_leapfrog.png" id="1_aa1x4"]
[ext_resource type="Texture2D" uid="uid://3ywtwfpuuknr" path="res://Assets/Textures/leapfrog.png" id="2_pj3v3"] [ext_resource type="Texture2D" uid="uid://3ywtwfpuuknr" path="res://Assets/Textures/leapfrog.png" id="2_pj3v3"]
[ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="3_i5ry5"] [ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="3_i5ry5"]
[ext_resource type="PackedScene" uid="uid://cmneu5o0m02l8" path="res://Worlds/GreenPlanet/Enemies/leaping_enemy.tscn" id="3_pj3v3"]
[ext_resource type="Texture2D" uid="uid://cb66pspr16scy" path="res://Assets/Textures/leapfrog_2.png" id="4_i5ry5"] [ext_resource type="Texture2D" uid="uid://cb66pspr16scy" path="res://Assets/Textures/leapfrog_2.png" id="4_i5ry5"]
[sub_resource type="AtlasTexture" id="AtlasTexture_n6kdu"] [sub_resource type="AtlasTexture" id="AtlasTexture_n6kdu"]
@ -15,6 +16,7 @@ resource_local_to_scene = true
script = ExtResource("3_i5ry5") script = ExtResource("3_i5ry5")
title = "Leapdog" title = "Leapdog"
target_type = 1 target_type = 1
scene = ExtResource("3_pj3v3")
icon = ExtResource("2_pj3v3") icon = ExtResource("2_pj3v3")
death_sprite = ExtResource("1_aa1x4") death_sprite = ExtResource("1_aa1x4")
sprite = SubResource("AtlasTexture_n6kdu") sprite = SubResource("AtlasTexture_n6kdu")

@ -1,91 +0,0 @@
[gd_resource type="Resource" script_class="PlayerKeymap" load_steps=18 format=3 uid="uid://24x6dxeyp6q"]
[ext_resource type="Script" uid="uid://vkthiwr3vq4g" path="res://Scripts/Resources/player_keymap.gd" id="1_mq1d3"]
[sub_resource type="InputEventKey" id="InputEventKey_x2tr7"]
device = -1
keycode = 65
unicode = 97
[sub_resource type="InputEventMouseButton" id="InputEventMouseButton_5s7xv"]
button_index = 1
[sub_resource type="InputEventMouseButton" id="InputEventMouseButton_l3f8p"]
button_index = 2
[sub_resource type="InputEventKey" id="InputEventKey_km24n"]
device = -1
keycode = 69
unicode = 101
[sub_resource type="InputEventKey" id="InputEventKey_k7imb"]
device = -1
keycode = 32
unicode = 32
[sub_resource type="InputEventKey" id="InputEventKey_bkkdp"]
device = -1
keycode = 83
unicode = 115
[sub_resource type="InputEventKey" id="InputEventKey_sflgv"]
device = -1
keycode = 90
unicode = 122
[sub_resource type="InputEventKey" id="InputEventKey_gpfw7"]
device = -1
keycode = 81
unicode = 113
[sub_resource type="InputEventKey" id="InputEventKey_h2ivp"]
device = -1
keycode = 68
unicode = 100
[sub_resource type="InputEventKey" id="InputEventKey_tghoj"]
device = -1
keycode = 4194309
[sub_resource type="InputEventKey" id="InputEventKey_wow3c"]
device = -1
keycode = 4194305
[sub_resource type="InputEventKey" id="InputEventKey_wge4x"]
device = -1
keycode = 70
unicode = 102
[sub_resource type="InputEventMouseButton" id="InputEventMouseButton_fgwoe"]
button_index = 5
[sub_resource type="InputEventMouseButton" id="InputEventMouseButton_3ljja"]
button_index = 4
[sub_resource type="InputEventKey" id="InputEventKey_08u8b"]
device = -1
keycode = 4194325
[sub_resource type="InputEventKey" id="InputEventKey_jtv7p"]
device = -1
keycode = 4194306
[resource]
script = ExtResource("1_mq1d3")
title = "AZERTY"
move_forward = SubResource("InputEventKey_sflgv")
move_backward = SubResource("InputEventKey_bkkdp")
move_left = SubResource("InputEventKey_gpfw7")
move_right = SubResource("InputEventKey_h2ivp")
jump = SubResource("InputEventKey_k7imb")
sprint = SubResource("InputEventKey_08u8b")
interact = SubResource("InputEventKey_km24n")
open_text_chat = SubResource("InputEventKey_tghoj")
ready = SubResource("InputEventKey_wge4x")
pause = SubResource("InputEventKey_wow3c")
equip_card_in_gauntlet = SubResource("InputEventKey_x2tr7")
view_map = SubResource("InputEventKey_jtv7p")
fire1 = SubResource("InputEventMouseButton_5s7xv")
fire2 = SubResource("InputEventMouseButton_l3f8p")
select_next_card = SubResource("InputEventMouseButton_fgwoe")
select_prev_card = SubResource("InputEventMouseButton_3ljja")

@ -1,91 +0,0 @@
[gd_resource type="Resource" script_class="PlayerKeymap" load_steps=18 format=3 uid="uid://bimicdfsvbsfe"]
[ext_resource type="Script" uid="uid://vkthiwr3vq4g" path="res://Scripts/Resources/player_keymap.gd" id="1_ea4lr"]
[sub_resource type="InputEventKey" id="InputEventKey_vtcll"]
device = -1
keycode = 81
unicode = 113
[sub_resource type="InputEventMouseButton" id="InputEventMouseButton_jdiqn"]
button_index = 1
[sub_resource type="InputEventMouseButton" id="InputEventMouseButton_x1yto"]
button_index = 2
[sub_resource type="InputEventKey" id="InputEventKey_43xjm"]
device = -1
keycode = 70
unicode = 102
[sub_resource type="InputEventKey" id="InputEventKey_yuctl"]
device = -1
keycode = 32
unicode = 32
[sub_resource type="InputEventKey" id="InputEventKey_73pxv"]
device = -1
keycode = 82
unicode = 114
[sub_resource type="InputEventKey" id="InputEventKey_nvtcc"]
device = -1
keycode = 87
unicode = 119
[sub_resource type="InputEventKey" id="InputEventKey_h2yjp"]
device = -1
keycode = 65
unicode = 97
[sub_resource type="InputEventKey" id="InputEventKey_xvv7x"]
device = -1
keycode = 83
unicode = 115
[sub_resource type="InputEventKey" id="InputEventKey_ksd1d"]
device = -1
keycode = 4194309
[sub_resource type="InputEventKey" id="InputEventKey_7ynrb"]
device = -1
keycode = 4194305
[sub_resource type="InputEventKey" id="InputEventKey_0pbgp"]
device = -1
keycode = 84
unicode = 116
[sub_resource type="InputEventMouseButton" id="InputEventMouseButton_flrjb"]
button_index = 5
[sub_resource type="InputEventMouseButton" id="InputEventMouseButton_ah2mb"]
button_index = 4
[sub_resource type="InputEventKey" id="InputEventKey_opngu"]
device = -1
keycode = 4194325
[sub_resource type="InputEventKey" id="InputEventKey_f1w6s"]
device = -1
keycode = 4194306
[resource]
script = ExtResource("1_ea4lr")
title = "COLEMAK"
move_forward = SubResource("InputEventKey_nvtcc")
move_backward = SubResource("InputEventKey_73pxv")
move_left = SubResource("InputEventKey_h2yjp")
move_right = SubResource("InputEventKey_xvv7x")
jump = SubResource("InputEventKey_yuctl")
sprint = SubResource("InputEventKey_opngu")
interact = SubResource("InputEventKey_43xjm")
open_text_chat = SubResource("InputEventKey_ksd1d")
ready = SubResource("InputEventKey_0pbgp")
pause = SubResource("InputEventKey_7ynrb")
equip_card_in_gauntlet = SubResource("InputEventKey_vtcll")
view_map = SubResource("InputEventKey_f1w6s")
fire1 = SubResource("InputEventMouseButton_jdiqn")
fire2 = SubResource("InputEventMouseButton_x1yto")
select_next_card = SubResource("InputEventMouseButton_flrjb")
select_prev_card = SubResource("InputEventMouseButton_ah2mb")

@ -1,83 +0,0 @@
[gd_resource type="Resource" script_class="PlayerKeymap" load_steps=18 format=3 uid="uid://ciy3467h2g8fi"]
[ext_resource type="Script" uid="uid://vkthiwr3vq4g" path="res://Scripts/Resources/player_keymap.gd" id="1_tfpk7"]
[sub_resource type="InputEventJoypadButton" id="InputEventJoypadButton_wcd5e"]
button_index = 9
pressed = true
[sub_resource type="InputEventJoypadMotion" id="InputEventJoypadMotion_u2vjr"]
axis = 5
axis_value = 1.0
[sub_resource type="InputEventJoypadMotion" id="InputEventJoypadMotion_t6w8w"]
axis = 4
axis_value = 1.0
[sub_resource type="InputEventJoypadButton" id="InputEventJoypadButton_cmg03"]
button_index = 2
pressed = true
[sub_resource type="InputEventJoypadButton" id="InputEventJoypadButton_u1s05"]
[sub_resource type="InputEventJoypadMotion" id="InputEventJoypadMotion_rkpws"]
axis = 1
axis_value = 1.0
[sub_resource type="InputEventJoypadMotion" id="InputEventJoypadMotion_hfod6"]
axis = 1
axis_value = -1.0
[sub_resource type="InputEventJoypadMotion" id="InputEventJoypadMotion_8v3ji"]
axis_value = -1.0
[sub_resource type="InputEventJoypadMotion" id="InputEventJoypadMotion_mdo5n"]
axis_value = 1.0
[sub_resource type="InputEventJoypadButton" id="InputEventJoypadButton_g0awx"]
button_index = 11
pressed = true
[sub_resource type="InputEventJoypadButton" id="InputEventJoypadButton_rdp3w"]
button_index = 6
pressed = true
[sub_resource type="InputEventJoypadButton" id="InputEventJoypadButton_pt0da"]
button_index = 1
pressed = true
[sub_resource type="InputEventJoypadButton" id="InputEventJoypadButton_1ppnc"]
button_index = 14
pressed = true
[sub_resource type="InputEventJoypadButton" id="InputEventJoypadButton_ntg7n"]
button_index = 13
pressed = true
[sub_resource type="InputEventJoypadButton" id="InputEventJoypadButton_0ju3o"]
button_index = 7
pressed = true
[sub_resource type="InputEventJoypadButton" id="InputEventJoypadButton_171bh"]
button_index = 4
pressed = true
[resource]
script = ExtResource("1_tfpk7")
title = "Controller"
move_forward = SubResource("InputEventJoypadMotion_hfod6")
move_backward = SubResource("InputEventJoypadMotion_rkpws")
move_left = SubResource("InputEventJoypadMotion_8v3ji")
move_right = SubResource("InputEventJoypadMotion_mdo5n")
jump = SubResource("InputEventJoypadButton_u1s05")
sprint = SubResource("InputEventJoypadButton_0ju3o")
interact = SubResource("InputEventJoypadButton_cmg03")
open_text_chat = SubResource("InputEventJoypadButton_g0awx")
ready = SubResource("InputEventJoypadButton_pt0da")
pause = SubResource("InputEventJoypadButton_rdp3w")
equip_card_in_gauntlet = SubResource("InputEventJoypadButton_wcd5e")
view_map = SubResource("InputEventJoypadButton_171bh")
fire1 = SubResource("InputEventJoypadMotion_u2vjr")
fire2 = SubResource("InputEventJoypadMotion_t6w8w")
select_next_card = SubResource("InputEventJoypadButton_1ppnc")
select_prev_card = SubResource("InputEventJoypadButton_ntg7n")

@ -1,91 +0,0 @@
[gd_resource type="Resource" script_class="PlayerKeymap" load_steps=18 format=3 uid="uid://qgpkrp08tx5l"]
[ext_resource type="Script" uid="uid://vkthiwr3vq4g" path="res://Scripts/Resources/player_keymap.gd" id="1_e3tjt"]
[sub_resource type="InputEventKey" id="InputEventKey_62tdh"]
device = -1
keycode = 39
unicode = 39
[sub_resource type="InputEventMouseButton" id="InputEventMouseButton_gd1dk"]
button_index = 1
[sub_resource type="InputEventMouseButton" id="InputEventMouseButton_eqrpb"]
button_index = 2
[sub_resource type="InputEventKey" id="InputEventKey_x2isa"]
device = -1
keycode = 46
unicode = 46
[sub_resource type="InputEventKey" id="InputEventKey_sjxn8"]
device = -1
keycode = 32
unicode = 32
[sub_resource type="InputEventKey" id="InputEventKey_kjw4x"]
device = -1
keycode = 79
unicode = 111
[sub_resource type="InputEventKey" id="InputEventKey_61m8q"]
device = -1
keycode = 44
unicode = 44
[sub_resource type="InputEventKey" id="InputEventKey_tdkec"]
device = -1
keycode = 65
unicode = 97
[sub_resource type="InputEventKey" id="InputEventKey_flmuc"]
device = -1
keycode = 69
unicode = 101
[sub_resource type="InputEventKey" id="InputEventKey_8xqt1"]
device = -1
keycode = 4194309
[sub_resource type="InputEventKey" id="InputEventKey_itl5r"]
device = -1
keycode = 4194305
[sub_resource type="InputEventKey" id="InputEventKey_drnpm"]
device = -1
keycode = 85
unicode = 117
[sub_resource type="InputEventMouseButton" id="InputEventMouseButton_tu87m"]
button_index = 5
[sub_resource type="InputEventMouseButton" id="InputEventMouseButton_3ufg1"]
button_index = 4
[sub_resource type="InputEventKey" id="InputEventKey_3m66q"]
device = -1
keycode = 4194325
[sub_resource type="InputEventKey" id="InputEventKey_docp6"]
device = -1
keycode = 4194306
[resource]
script = ExtResource("1_e3tjt")
title = "DVORAK"
move_forward = SubResource("InputEventKey_61m8q")
move_backward = SubResource("InputEventKey_kjw4x")
move_left = SubResource("InputEventKey_tdkec")
move_right = SubResource("InputEventKey_flmuc")
jump = SubResource("InputEventKey_sjxn8")
sprint = SubResource("InputEventKey_3m66q")
interact = SubResource("InputEventKey_x2isa")
open_text_chat = SubResource("InputEventKey_8xqt1")
ready = SubResource("InputEventKey_drnpm")
pause = SubResource("InputEventKey_itl5r")
equip_card_in_gauntlet = SubResource("InputEventKey_62tdh")
view_map = SubResource("InputEventKey_docp6")
fire1 = SubResource("InputEventMouseButton_gd1dk")
fire2 = SubResource("InputEventMouseButton_eqrpb")
select_next_card = SubResource("InputEventMouseButton_tu87m")
select_prev_card = SubResource("InputEventMouseButton_3ufg1")

@ -1,91 +0,0 @@
[gd_resource type="Resource" script_class="PlayerKeymap" load_steps=18 format=3 uid="uid://dml3iwhpttdat"]
[ext_resource type="Script" uid="uid://vkthiwr3vq4g" path="res://Scripts/Resources/player_keymap.gd" id="1_6xs82"]
[sub_resource type="InputEventKey" id="InputEventKey_g7iw8"]
device = -1
keycode = 81
unicode = 113
[sub_resource type="InputEventMouseButton" id="InputEventMouseButton_32lj4"]
button_index = 1
[sub_resource type="InputEventMouseButton" id="InputEventMouseButton_d3xef"]
button_index = 2
[sub_resource type="InputEventKey" id="InputEventKey_brup3"]
device = -1
keycode = 69
unicode = 101
[sub_resource type="InputEventKey" id="InputEventKey_p6g50"]
device = -1
keycode = 32
unicode = 32
[sub_resource type="InputEventKey" id="InputEventKey_cavx6"]
device = -1
keycode = 83
unicode = 115
[sub_resource type="InputEventKey" id="InputEventKey_e7m41"]
device = -1
keycode = 87
unicode = 119
[sub_resource type="InputEventKey" id="InputEventKey_5ut3l"]
device = -1
keycode = 65
unicode = 97
[sub_resource type="InputEventKey" id="InputEventKey_3uioy"]
device = -1
keycode = 68
unicode = 100
[sub_resource type="InputEventKey" id="InputEventKey_6mykw"]
device = -1
keycode = 4194309
[sub_resource type="InputEventKey" id="InputEventKey_ujdbv"]
device = -1
keycode = 4194305
[sub_resource type="InputEventKey" id="InputEventKey_kiqcj"]
device = -1
keycode = 70
unicode = 102
[sub_resource type="InputEventMouseButton" id="InputEventMouseButton_e8eut"]
button_index = 5
[sub_resource type="InputEventMouseButton" id="InputEventMouseButton_ntdkp"]
button_index = 4
[sub_resource type="InputEventKey" id="InputEventKey_tmf7l"]
device = -1
keycode = 4194325
[sub_resource type="InputEventKey" id="InputEventKey_a3okn"]
device = -1
keycode = 4194306
[resource]
script = ExtResource("1_6xs82")
title = "QWERTY"
move_forward = SubResource("InputEventKey_e7m41")
move_backward = SubResource("InputEventKey_cavx6")
move_left = SubResource("InputEventKey_5ut3l")
move_right = SubResource("InputEventKey_3uioy")
jump = SubResource("InputEventKey_p6g50")
sprint = SubResource("InputEventKey_tmf7l")
interact = SubResource("InputEventKey_brup3")
open_text_chat = SubResource("InputEventKey_6mykw")
ready = SubResource("InputEventKey_kiqcj")
pause = SubResource("InputEventKey_ujdbv")
equip_card_in_gauntlet = SubResource("InputEventKey_g7iw8")
view_map = SubResource("InputEventKey_a3okn")
fire1 = SubResource("InputEventMouseButton_32lj4")
fire2 = SubResource("InputEventMouseButton_d3xef")
select_next_card = SubResource("InputEventMouseButton_e8eut")
select_prev_card = SubResource("InputEventMouseButton_ntdkp")

@ -1,91 +0,0 @@
[gd_resource type="Resource" script_class="PlayerKeymap" load_steps=18 format=3 uid="uid://g02ll7a7urwl"]
[ext_resource type="Script" uid="uid://vkthiwr3vq4g" path="res://Scripts/Resources/player_keymap.gd" id="1_pf0gk"]
[sub_resource type="InputEventKey" id="InputEventKey_ikcft"]
device = -1
keycode = 81
unicode = 113
[sub_resource type="InputEventMouseButton" id="InputEventMouseButton_x77eo"]
button_index = 1
[sub_resource type="InputEventMouseButton" id="InputEventMouseButton_uiqw0"]
button_index = 2
[sub_resource type="InputEventKey" id="InputEventKey_bg51j"]
device = -1
keycode = 82
unicode = 114
[sub_resource type="InputEventKey" id="InputEventKey_2hgt5"]
device = -1
keycode = 32
unicode = 32
[sub_resource type="InputEventKey" id="InputEventKey_lc0ss"]
device = -1
keycode = 83
unicode = 115
[sub_resource type="InputEventKey" id="InputEventKey_lei27"]
device = -1
keycode = 68
unicode = 100
[sub_resource type="InputEventKey" id="InputEventKey_7juwk"]
device = -1
keycode = 65
unicode = 97
[sub_resource type="InputEventKey" id="InputEventKey_qfke7"]
device = -1
keycode = 72
unicode = 104
[sub_resource type="InputEventKey" id="InputEventKey_tbuvp"]
device = -1
keycode = 4194309
[sub_resource type="InputEventKey" id="InputEventKey_tm5f1"]
device = -1
keycode = 4194305
[sub_resource type="InputEventKey" id="InputEventKey_krad3"]
device = -1
keycode = 84
unicode = 116
[sub_resource type="InputEventMouseButton" id="InputEventMouseButton_xu2iv"]
button_index = 5
[sub_resource type="InputEventMouseButton" id="InputEventMouseButton_crqmx"]
button_index = 4
[sub_resource type="InputEventKey" id="InputEventKey_bnnig"]
device = -1
keycode = 4194325
[sub_resource type="InputEventKey" id="InputEventKey_tajfr"]
device = -1
keycode = 4194306
[resource]
script = ExtResource("1_pf0gk")
title = "WORKMAN"
move_forward = SubResource("InputEventKey_lei27")
move_backward = SubResource("InputEventKey_lc0ss")
move_left = SubResource("InputEventKey_7juwk")
move_right = SubResource("InputEventKey_qfke7")
jump = SubResource("InputEventKey_2hgt5")
sprint = SubResource("InputEventKey_bnnig")
interact = SubResource("InputEventKey_bg51j")
open_text_chat = SubResource("InputEventKey_tbuvp")
ready = SubResource("InputEventKey_krad3")
pause = SubResource("InputEventKey_tm5f1")
equip_card_in_gauntlet = SubResource("InputEventKey_ikcft")
view_map = SubResource("InputEventKey_tajfr")
fire1 = SubResource("InputEventMouseButton_x77eo")
fire2 = SubResource("InputEventMouseButton_uiqw0")
select_next_card = SubResource("InputEventMouseButton_xu2iv")
select_prev_card = SubResource("InputEventMouseButton_crqmx")

@ -1,8 +1,6 @@
class_name CardPrinter extends StaticBody3D class_name CardPrinter extends StaticBody3D
@export var item_card_scene: PackedScene
@export var button_collider: CollisionShape3D @export var button_collider: CollisionShape3D
@export var button_box: Node3D
#TODO: use faction enum #TODO: use faction enum
var base_faction: int = 1 var base_faction: int = 1
@ -24,7 +22,7 @@ func generate_rarity() -> int:
for rarity: String in Data.Rarity: for rarity: String in Data.Rarity:
weight_total += Data.rarity_weights[rarity] weight_total += Data.rarity_weights[rarity]
var generated_rarity: int = Game.randi_in_range(4 * cards_generated, 0, weight_total) var generated_rarity: int = NoiseRandom.randi_in_range(4 * cards_generated, 0, weight_total)
cards_generated += 1 cards_generated += 1
var decided_rarity: int = 0 var decided_rarity: int = 0
@ -38,6 +36,7 @@ func generate_rarity() -> int:
func randomize_cards(faction: Card.Faction) -> void: func randomize_cards(faction: Card.Faction) -> void:
#TODO: no magic numbers, asshole! 3 = cards to spawn #TODO: no magic numbers, asshole! 3 = cards to spawn
var pos_x: float = 0.0
for x: int in 3: for x: int in 3:
var decided_rarity: int = generate_rarity() var decided_rarity: int = generate_rarity()
var card_choices: Array[Card] = get_faction_cards(faction) var card_choices: Array[Card] = get_faction_cards(faction)
@ -48,18 +47,21 @@ func randomize_cards(faction: Card.Faction) -> void:
if card.rarity == decided_rarity: if card.rarity == decided_rarity:
card_array.append(card) card_array.append(card)
cards_chosen = true cards_chosen = true
decided_rarity -= 1
if decided_rarity < 0: if decided_rarity < 0:
card_array.append(Data.cards[0]) card_array.append(Data.cards[0])
cards_chosen = true cards_chosen = true
decided_rarity -= 1
var card: Card var card: Card
if card_array.size() > 0: if card_array.size() > 0:
card = card_array[Game.randi_in_range(132 * cards_generated, 0, card_array.size() - 1)] card = card_array[NoiseRandom.randi_in_range(132 * cards_generated, 0, card_array.size() - 1)]
cards_generated += 1 cards_generated += 1
card_array.erase(card) card_array.erase(card)
var item: CardItem = item_card_scene.instantiate() as CardItem var item: CardItem = reply_player.hero_class.card_item.instantiate() as CardItem
item.set_card(card) item.set_card(card)
item.position = Vector3(x, 1, 2) item.position = Vector3(pos_x, 2, 0)
pos_x *= -1
if pos_x >= 0:
pos_x += 1.25
item.pressed.connect(card_picked_up) item.pressed.connect(card_picked_up)
spawned_cards.append(item) spawned_cards.append(item)
add_child(item) add_child(item)
@ -72,13 +74,11 @@ func card_picked_up(card_item: CardItem) -> void:
spawned_card.queue_free() spawned_card.queue_free()
spawned_cards = [] spawned_cards = []
button_collider.disabled = false button_collider.disabled = false
button_box.position = Vector3(0,0,0)
$StaticBody3D/AudioStreamPlayer3D.play() $StaticBody3D/AudioStreamPlayer3D.play()
func _on_static_body_3d_button_interacted(_value: int, reply: Hero) -> void: func _on_static_body_3d_button_interacted(_value: int, reply: Hero) -> void:
reply_player = reply reply_player = reply
button_collider.disabled = true button_collider.disabled = true
button_box.position = Vector3(0,0,-0.2)
$StaticBody3D/AudioStreamPlayer3D.play() $StaticBody3D/AudioStreamPlayer3D.play()
randomize_cards(reply.hero_class.faction) randomize_cards(reply.hero_class.faction)

@ -1,37 +1,27 @@
[gd_scene load_steps=9 format=3 uid="uid://1b2ikdanl66b"] [gd_scene load_steps=8 format=3 uid="uid://1b2ikdanl66b"]
[ext_resource type="Script" uid="uid://bivtfdl3p1brv" path="res://Scenes/CardPrinter/card_printer.gd" id="1_qft15"] [ext_resource type="Script" uid="uid://bivtfdl3p1brv" path="res://Scenes/CardPrinter/card_printer.gd" id="1_qft15"]
[ext_resource type="PackedScene" uid="uid://dq8v5e11rvyi6" path="res://plan.tscn" id="2_8jpsw"]
[ext_resource type="Script" uid="uid://dkfswql8ui0bt" path="res://Scripts/interact_button.gd" id="4_eavi1"] [ext_resource type="Script" uid="uid://dkfswql8ui0bt" path="res://Scripts/interact_button.gd" id="4_eavi1"]
[ext_resource type="PackedScene" uid="uid://b6i5w3mowcfcs" path="res://drafting_table.glb" id="4_kpujb"]
[ext_resource type="AudioStream" uid="uid://dknygn5eyuhxt" path="res://Audio/shot1.wav" id="5_m033a"] [ext_resource type="AudioStream" uid="uid://dknygn5eyuhxt" path="res://Audio/shot1.wav" id="5_m033a"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_s02au"]
albedo_color = Color(0.203922, 0.592157, 0.592157, 1)
[sub_resource type="BoxShape3D" id="BoxShape3D_0ebt5"] [sub_resource type="BoxShape3D" id="BoxShape3D_0ebt5"]
size = Vector3(2, 2.1, 1) size = Vector3(2.17, 1.55307, 1.12)
[sub_resource type="BoxShape3D" id="BoxShape3D_ikdwj"] [sub_resource type="BoxShape3D" id="BoxShape3D_ikdwj"]
size = Vector3(1.29447, 0.342125, 0.277604) size = Vector3(2.20033, 0.260753, 1.27008)
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_73g2w"] [sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_73g2w"]
random_pitch = 1.1 random_pitch = 1.1
streams_count = 1 streams_count = 1
stream_0/stream = ExtResource("5_m033a") stream_0/stream = ExtResource("5_m033a")
[node name="CardPrinter" type="StaticBody3D" node_paths=PackedStringArray("button_collider", "button_box")] [node name="CardPrinter" type="StaticBody3D" node_paths=PackedStringArray("button_collider")]
script = ExtResource("1_qft15") script = ExtResource("1_qft15")
item_card_scene = ExtResource("2_8jpsw")
button_collider = NodePath("StaticBody3D/CollisionShape3D2") button_collider = NodePath("StaticBody3D/CollisionShape3D2")
button_box = NodePath("StaticBody3D/CollisionShape3D2/CSGBox3D")
[node name="CSGBox3D" type="CSGBox3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.05, 0)
size = Vector3(2, 2.1, 1)
material = SubResource("StandardMaterial3D_s02au")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."] [node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.05, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.776539, 0.0332634)
shape = SubResource("BoxShape3D_0ebt5") shape = SubResource("BoxShape3D_0ebt5")
[node name="StaticBody3D" type="StaticBody3D" parent="."] [node name="StaticBody3D" type="StaticBody3D" parent="."]
@ -40,17 +30,18 @@ collision_layer = 16
collision_mask = 0 collision_mask = 0
script = ExtResource("4_eavi1") script = ExtResource("4_eavi1")
press_cost = 15 press_cost = 15
hover_text = "[center]#Interact# to spend $15 on random card" hover_text = "[center]#Interact# draft a card for $15"
[node name="CollisionShape3D2" type="CollisionShape3D" parent="StaticBody3D"] [node name="CollisionShape3D2" type="CollisionShape3D" parent="StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 0.866025, -0.5, 0, 0.5, 0.866025, -6.55949e-05, 0.349496, -0.579584)
shape = SubResource("BoxShape3D_ikdwj") shape = SubResource("BoxShape3D_ikdwj")
[node name="CSGBox3D" type="CSGBox3D" parent="StaticBody3D/CollisionShape3D2"]
size = Vector3(1.29447, 0.342125, 0.277604)
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="StaticBody3D"] [node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.010989, -0.086501) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.578748, -0.587001)
stream = SubResource("AudioStreamRandomizer_73g2w") stream = SubResource("AudioStreamRandomizer_73g2w")
bus = &"SFX" bus = &"SFX"
[node name="drafting_table" parent="." instance=ExtResource("4_kpujb")]
transform = Transform3D(0.06, 0, 0, 0, 0.06, 0, 0, 0, 0.06, 0, 0.385809, 0)
[connection signal="button_interacted" from="StaticBody3D" to="." method="_on_static_body_3d_button_interacted"] [connection signal="button_interacted" from="StaticBody3D" to="." method="_on_static_body_3d_button_interacted"]

@ -1,3 +1,7 @@
class_name CharacterPodium extends Node3D class_name CharacterPodium extends Node3D
@export var text: String = "" @export var text: String = ""
func show_content() -> void:
$Base/Content.visible = true

Some files were not shown because too many files have changed in this diff Show More