diff --git a/src/Autoloads/SoundControler.gd b/src/Autoloads/SoundController.gd similarity index 85% rename from src/Autoloads/SoundControler.gd rename to src/Autoloads/SoundController.gd index 13871c4..b984f00 100644 --- a/src/Autoloads/SoundControler.gd +++ b/src/Autoloads/SoundController.gd @@ -4,10 +4,10 @@ const EFFECT_LAYERS:int = 20 var _effect: Array = [] var _music: AudioStreamPlayer -#Playback Options +# Playback Options var _loop: bool = true -#Settings that should be put into an Options script +# Settings that should be put into an Options script var _music_volume:int = -12 var _effects_volume:int = -12 @@ -18,7 +18,7 @@ func _ready() -> void: _music.volume_db= _music_volume _music.connect("finished",self,"sig_music_finished") add_child(_music) - + for i in range(0,EFFECT_LAYERS): _effect.append(AudioStreamPlayer.new()) _effect[i].volume_db= _effects_volume @@ -26,44 +26,50 @@ func _ready() -> void: _effect[i].connect("finished", self, "sig_effect_finished") add_child(_effect[i]) + func pub_play_music(path:String,should_loop:bool=true)-> void: var stream = load(path) - #AudioServer.set_bus_mute(1, true) + # AudioServer.set_bus_mute(1, true) _music.stop() _music.stream = stream _music.play() _loop=should_loop + func pub_play_effect(path:String,channel:int=0)-> void: var stream = load(path) - #AudioServer.set_bus_mute(1, true) + # AudioServer.set_bus_mute(1, true) _effect[channel].stop() _effect[channel].stream = stream _effect[channel].play() + func pub_stop_music()-> void: _music.stop() + func pub_stop_effect(channel:int)-> void: _effect[channel].stop() + func pub_stop_effects()-> void: for i in range(0,EFFECT_LAYERS): _effect[i].stop() + func pub_stop_all() -> void: pub_stop_music() pub_stop_effects() + func sig_music_finished() -> void: - #AudioServer.set_bus_mute(1, false) + # AudioServer.set_bus_mute(1, false) if _loop : _music.stop() _music.play() pass + func sig_effect_finished() -> void: - #AudioServer.set_bus_mute(1, false) + # AudioServer.set_bus_mute(1, false) pass - - diff --git a/src/Autoloads/Steering.gd b/src/Autoloads/Steering.gd index 46c633b..54dc06f 100644 --- a/src/Autoloads/Steering.gd +++ b/src/Autoloads/Steering.gd @@ -4,11 +4,11 @@ const DEFAULT_MASS = 2.0 const DEFAULT_SLOW_RADIUS = 200.0 const DEFAULT_MAX_SPEED = 300.0 -func arrive_to(velocity, - position_current, - position_target, - mass=DEFAULT_MASS, - slow_radius=DEFAULT_SLOW_RADIUS, +func arrive_to(velocity, + position_current, + position_target, + mass=DEFAULT_MASS, + slow_radius=DEFAULT_SLOW_RADIUS, max_speed=DEFAULT_MAX_SPEED): """ Calculates and returns a new velocity with the arrive steering behavior arrived based on diff --git a/src/Boss/Boss_template.gd b/src/Boss/Boss_template.gd index 30b1aaf..e27b9f7 100644 --- a/src/Boss/Boss_template.gd +++ b/src/Boss/Boss_template.gd @@ -27,9 +27,10 @@ var movementState = moveState.MOVE var damage_per_second := 0.0 var totaldamage := 0.0 + func _debug_update(): debug_label.text = str(player_stats.health) + "/" + str(player_stats.max_health) + " HP\n" - + func _physics_process(delta): totaldamage += damage_per_second * delta @@ -47,13 +48,13 @@ func _physics_process(delta): movement_move(delta) moveState.HIT: movement_hit() - + move() # IMPORTANT: If you are using move_and_slide don't multiply by delta # Godots physics system does that internally -# In move_and_collide(...) you have to multiply by delta. +# In move_and_collide(...) you have to multiply by delta. func move(): move_and_slide(velocity) @@ -68,7 +69,7 @@ func movement_move(delta): input_vector.x = Input.get_action_strength("right") - Input.get_action_strength("left") input_vector.y = Input.get_action_strength("down") - Input.get_action_strength("up") input_vector = input_vector.normalized() - + if input_vector == Vector2.ZERO: #animation_state.travel("idle") velocity = Vector2.ZERO diff --git a/src/Boss/Minion.gd b/src/Boss/Minion.gd index feaf482..fa1a1b2 100644 --- a/src/Boss/Minion.gd +++ b/src/Boss/Minion.gd @@ -14,19 +14,23 @@ var totaldamage := 0.0 var rollvector = Vector2.ZERO + func _debug_update(): debug_label.text = str(player_stats.health) + "/" + str(player_stats.max_health) + " HP\n" + func _ready(): grid = get_tree().current_scene.get_node("Grid") + # IMPORTANT: If you are using move_and_slide don't multiply by delta # Godots physics system does that internally -# In move_and_collide(...) you have to multiply by delta. +# In move_and_collide(...) you have to multiply by delta. func move(): move_and_slide(velocity) _animate(velocity) + func _physics_process(delta): totaldamage += damage_per_second * delta player_stats.speed += 10 * delta @@ -37,7 +41,7 @@ func _physics_process(delta): totaldamage += 1 player_stats.health += 1 _debug_update() - + run(Vector2.ZERO, delta) makeMove(delta) move() @@ -54,18 +58,20 @@ func _on_Hurtbox_area_entered(area): func _on_Hurtbox_area_exited(area): damage_per_second -= area.damage - + + # API Interface for ai_hero func run(direction, delta): direction = direction.normalized() rollvector = direction velocity = velocity.move_toward(player_stats.speed * rollvector, ACCELERATION * delta) - + if direction == Vector2.ZERO: pass else: pass + func _animate(vec): match get_nearest_diretion(vec): "up": @@ -80,8 +86,6 @@ func _animate(vec): "left": $Sprite.flip_h=true $Sprite.play("right") - - func get_nearest_diretion(vec): diff --git a/src/Debug/BossStateDisplay.gd b/src/Debug/BossStateDisplay.gd index 41d8ed8..9c6bbbd 100644 --- a/src/Debug/BossStateDisplay.gd +++ b/src/Debug/BossStateDisplay.gd @@ -1,5 +1,6 @@ extends Panel + func _on_SlimeBoss_state_changed(new_state_name): $VBoxContainer/State.text = new_state_name diff --git a/src/Maps/Grid.gd b/src/Maps/Grid.gd index efc849f..de1c42e 100644 --- a/src/Maps/Grid.gd +++ b/src/Maps/Grid.gd @@ -16,14 +16,15 @@ var time_passed := 0.0 var offset export(float, 0, 42.0) var refresh_rate = 0.4 + func _point_coors(point : Vector2): return 14*point.y+point.x + func _ready(): var walls = get_tree().current_scene.get_node("FloorTileMap") offset = walls.global_position - for x in range(14): object_grid.push_back([]) prio_grid.push_back([]) @@ -31,7 +32,6 @@ func _ready(): object_grid[x].push_back([Kind.FIELD]) prio_grid[x].push_back([Kind.TERMINAL_SYMBOL]) - for tile in walls.get_used_cells(): if(is_in_coord(tile)): object_grid[tile.x][tile.y][0] = Kind.WALL @@ -44,62 +44,63 @@ func _ready(): walkableCells.push_back(Vector2(x,y)) var Index = _point_coors(Vector2(x,y)) aStar_node.add_point(Index, Vector3(x,y,0.0)) - - #add points straight + + # add points straight for point in walkableCells: var point_index = _point_coors(point) - + var points_relative_str = PoolVector2Array([ - Vector2(point.x + 1, point.y), - Vector2(point.x - 1, point.y), - Vector2(point.x , point.y + 1), + Vector2(point.x + 1, point.y), + Vector2(point.x - 1, point.y), + Vector2(point.x , point.y + 1), Vector2(point.x , point.y - 1) ]) for point_rel in points_relative_str: var point_relative_index = _point_coors(point_rel) - + if point_rel == point or not is_in_coord(point_rel): continue if not aStar_node.has_point(point_relative_index): continue aStar_node.connect_points(point_index, point_relative_index, true) - - #diagonal + + # diagonal for point in walkableCells: var point_index = _point_coors(point) - + var points_relative_dia = PoolVector2Array([ Vector2(point.x + 1, point.y + 1), Vector2(point.x, point.y + 1), Vector2(point.x + 1, point.y), Vector2(point.x - 1, point.y + 1), Vector2(point.x, point.y + 1), Vector2(point.x - 1, point.y), Vector2(point.x + 1, point.y - 1), Vector2(point.x, point.y - 1), Vector2(point.x + 1, point.y), Vector2(point.x - 1, point.y - 1), Vector2(point.x, point.y - 1), Vector2(point.x - 1, point.y) ]) - + for i in range(points_relative_dia.size()/3): var p_targ = points_relative_dia[i*3] var p_ch1 = points_relative_dia[i*3+1] var p_ch2 = points_relative_dia[i*3+2] - + var p_targ_c = _point_coors(p_targ) var p_ch1_c = _point_coors(p_targ) var p_ch2_c = _point_coors(p_targ) - + if p_targ == point or not is_in_coord(p_targ) and not aStar_node.has_point(p_targ_c): continue if p_ch1 == point or not is_in_coord(p_ch1) and not aStar_node.has_point(p_ch1_c): continue if p_ch2 == point or not is_in_coord(p_ch2) and not aStar_node.has_point(p_ch2_c): continue - + aStar_node.connect_points(point_index, p_targ_c, true) - - + + func recalculate_path(): _point_path = [] var start_index = _point_coors(path_start_position) var end_index = _point_coors(path_end_position) _point_path = aStar_node.get_point_path(start_index, end_index) + func _reset_grids(): for x in range(14): for y in range(7): @@ -112,7 +113,7 @@ func _reset_grids(): func countTargets(table): for i in range(table.size()): table[i]=0 - + for x in range(14): for y in range(7): for i in prio_grid[x][y]: @@ -128,6 +129,7 @@ func _pixel_to_grid_coords(pixel : Vector2) -> Vector2: new_coords.y = floor((pixel.y-offset.y) / 32.0) return new_coords + func get_nearest(position, kind): var list = [] for x in range(14): @@ -147,23 +149,24 @@ func get_nearest(position, kind): mini = i return list[mini] + func get_fields_around(point): var points_relative_str = PoolVector2Array([ Vector2(point.x + 1, point.y + 1), - Vector2(point.x - 1, point.y + 1), + Vector2(point.x - 1, point.y + 1), Vector2(point.x + 1, point.y - 1), Vector2(point.x - 1, point.y - 1) ]) var point_list = [] for point_rel in points_relative_str: - var point_relative_index = _point_coors(point_rel) + var point_relative_index = _point_coors(point_rel) if point_rel == point or not is_in_coord(point_rel): continue if not aStar_node.has_point(point_relative_index): continue point_list.push_back(point_rel) return point_list - + func _update_grid(): _reset_grids() @@ -175,7 +178,7 @@ func _update_grid(): if(node_kind.general != Kind.FIELD): #and node_kind.general != Kind.WALL): object_grid[grid_corrds.x][grid_corrds.y].push_back(node_kind.general) prio_grid[grid_corrds.x][grid_corrds.y].push_back(node_kind.kind) - + for y in range(7): for x in range(14): var index = _point_coors(Vector2(x,y)) @@ -202,6 +205,7 @@ func _update_grid(): scale = 0 aStar_node.set_point_weight_scale(index, scale) + func _physics_process(delta): if(time_passed > refresh_rate): time_passed -= refresh_rate @@ -221,9 +225,8 @@ func _set_path_start_position(value : Vector2): return if not is_in_coord(value): return - - path_start_position = value + path_start_position = value func _set_path_end_position(value : Vector2): @@ -231,5 +234,5 @@ func _set_path_end_position(value : Vector2): return if not is_in_coord(value): return - + path_end_position = value diff --git a/src/Menus/Beginnings/Beginnings.gd b/src/Menus/Beginnings/Beginnings.gd index 8f768a9..5f184b8 100644 --- a/src/Menus/Beginnings/Beginnings.gd +++ b/src/Menus/Beginnings/Beginnings.gd @@ -26,20 +26,22 @@ export(String, FILE, "*.tscn,*.scn") var scene_to_load = "" func _ready(): next() + func _physics_process(delta): if Input.is_action_just_pressed("dialogue_advance"): next() + func next(): finished_indicator.modulate = Color(1, 1, 1, 0) cur_line += 1 - + if cur_line >= text.size(): get_tree().change_scene(scene_to_load) return - + var line = text[cur_line] - + label.text = line $Tween.interpolate_property(label, "percent_visible", 0, 1, 0.05 * len(line)) diff --git a/src/Menus/ControlIcons/Xbox 360 Controller Black Updated.png b/src/Menus/ControlIcons/Xbox 360 Controller Black Updated.png deleted file mode 100644 index 527af0f..0000000 Binary files a/src/Menus/ControlIcons/Xbox 360 Controller Black Updated.png and /dev/null differ diff --git a/src/Menus/ControlIcons/Xbox 360 Controller Black Updated.png.import b/src/Menus/ControlIcons/Xbox 360 Controller Black Updated.png.import deleted file mode 100644 index 351e44a..0000000 --- a/src/Menus/ControlIcons/Xbox 360 Controller Black Updated.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="StreamTexture" -path="res://.import/Xbox 360 Controller Black Updated.png-0754ef5441fb7e2eb74845b4b0197cb7.stex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://Menus/ControlIcons/Xbox 360 Controller Black Updated.png" -dest_files=[ "res://.import/Xbox 360 Controller Black Updated.png-0754ef5441fb7e2eb74845b4b0197cb7.stex" ] - -[params] - -compress/mode=0 -compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 -compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 -process/fix_alpha_border=true -process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 diff --git a/src/Menus/ControlIcons/Xbox 360 Controller Updated.png b/src/Menus/ControlIcons/Xbox 360 Controller Updated.png deleted file mode 100644 index e52a089..0000000 Binary files a/src/Menus/ControlIcons/Xbox 360 Controller Updated.png and /dev/null differ diff --git a/src/Menus/ControlIcons/Xbox 360 Controller Updated.png.import b/src/Menus/ControlIcons/Xbox 360 Controller Updated.png.import deleted file mode 100644 index 532f75f..0000000 --- a/src/Menus/ControlIcons/Xbox 360 Controller Updated.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="StreamTexture" -path="res://.import/Xbox 360 Controller Updated.png-a803c74089c07cfc25b62a4b31dba239.stex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://Menus/ControlIcons/Xbox 360 Controller Updated.png" -dest_files=[ "res://.import/Xbox 360 Controller Updated.png-a803c74089c07cfc25b62a4b31dba239.stex" ] - -[params] - -compress/mode=0 -compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 -compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 -process/fix_alpha_border=true -process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 diff --git a/src/Menus/Credits/Credits.gd b/src/Menus/Credits/Credits.gd index e95665b..e06ed4b 100644 --- a/src/Menus/Credits/Credits.gd +++ b/src/Menus/Credits/Credits.gd @@ -9,10 +9,11 @@ func _process(delta): animation_player.playback_speed = 8.0 else: animation_player.playback_speed = 1.0 - - + + func _ready(): - SoundControler.pub_play_music("res://Menus/Credits/Chad_Crouch_-_Algorithms.ogg",false) + SoundControler.pub_play_music("res://Menus/Credits/Chad_Crouch_-_Algorithms.ogg", false) + func _on_AnimationPlayer_animation_finished(anim_name): SoundControler.pub_stop_music() diff --git a/src/Menus/DialogueBox/DialogueBox.gd b/src/Menus/DialogueBox/DialogueBox.gd index 0542b47..684ad98 100644 --- a/src/Menus/DialogueBox/DialogueBox.gd +++ b/src/Menus/DialogueBox/DialogueBox.gd @@ -14,6 +14,7 @@ onready var animation_player = $AnimationPlayer var first_action = true + func _physics_process(delta): if Input.is_action_just_pressed("skip"): if(first_action): @@ -22,6 +23,7 @@ func _physics_process(delta): first_action != first_action next() + func set_dialogue_identifier(val): dialogue_identifier = val _dialogue = dialogues.get_dialogue(val) diff --git a/src/Menus/DialogueBox/Dialogues.gd b/src/Menus/DialogueBox/Dialogues.gd index 19ee490..94b9ab2 100644 --- a/src/Menus/DialogueBox/Dialogues.gd +++ b/src/Menus/DialogueBox/Dialogues.gd @@ -16,5 +16,6 @@ func _ready(): "Boss: We'll see about that!" ]) + func get_dialogue(id): return _dialogues[id] diff --git a/src/Menus/DragNDrop/DragNDropUI.gd b/src/Menus/DragNDrop/DragNDropUI.gd index a40f426..9298008 100644 --- a/src/Menus/DragNDrop/DragNDropUI.gd +++ b/src/Menus/DragNDrop/DragNDropUI.gd @@ -15,11 +15,13 @@ enum cards { EMPTY } + func _ready(): update_cards() export var ObjectParent:NodePath + func update_cards(): var index = 0 while index < 5 and usedCards[index] != cards.EMPTY: @@ -45,11 +47,10 @@ func update_cards(): newchild.append(load("res://Objects/Slime/SlimeCard.tscn").instance()) for i in range(index): $CardsDisplay.add_child(newchild[i]) - + for i in range(index): newchild[i].set_begin(cardPositions[i]) - for i in range(index): newchild[i].margin_bottom = newchild[i].margin_top+32 newchild[i].margin_right = newchild[i].margin_left+32 diff --git a/src/Menus/DragNDrop/DragSink.gd b/src/Menus/DragNDrop/DragSink.gd index 366fd5c..5ef2d76 100644 --- a/src/Menus/DragNDrop/DragSink.gd +++ b/src/Menus/DragNDrop/DragSink.gd @@ -4,8 +4,9 @@ const Grid = preload("res://Maps/Grid.gd") onready var grid = get_tree().current_scene.get_node("Grid") onready var ysort = get_tree().current_scene.get_node("YSort") -#DropZone -#stuff can be dropped here + +# DropZone +# Stuff can be dropped here func can_drop_data(_pos, data): return typeof(data) == typeof(PackedScene) @@ -14,7 +15,7 @@ func get_nearest_grid_pos(position, scale = 1): return Vector2(round(position.x / 32.0) * scale, round(position.y / 32.0) * scale) -#what is to be done when data is dropped +# What is to be done when data is dropped func drop_data(_pos, data:PackedScene): var new_pos = get_nearest_grid_pos(_pos) if grid.object_grid[new_pos.x - 1][new_pos.y - 1].back() == Grid.Kind.FIELD: diff --git a/src/Menus/DragNDrop/DragSource.gd b/src/Menus/DragNDrop/DragSource.gd index d3d7898..0870be6 100644 --- a/src/Menus/DragNDrop/DragSource.gd +++ b/src/Menus/DragNDrop/DragSource.gd @@ -2,12 +2,13 @@ extends TextureRect # CardDeck var canNotPlace = false export var Item:PackedScene -export var PreviewIcon:Texture +export var PreviewIcon:Texture export var DeleteOnGrab:bool = false var card_level = 0 -#if a drag is initiated here + +# if a drag is initiated here func get_drag_data(_pos): if (canNotPlace): return null @@ -18,7 +19,7 @@ func get_drag_data(_pos): TR.set_position(_pos * -1, false) ctrl.add_child(TR) set_drag_preview(ctrl) - + if DeleteOnGrab: self.queue_free() return Item diff --git a/src/Menus/LoseScreen/LoseScreen.gd b/src/Menus/LoseScreen/LoseScreen.gd index f5947eb..b9c30dc 100644 --- a/src/Menus/LoseScreen/LoseScreen.gd +++ b/src/Menus/LoseScreen/LoseScreen.gd @@ -3,10 +3,12 @@ extends Node2D export(String, FILE, "*.tscn,*.scn") var restart_scene = "" export(String, FILE, "*.tscn,*.scn") var title_screen = "" + func _on_Restart_pressed(): get_tree().change_scene(restart_scene) SoundControler.pub_stop_effects() + func _on_TitleScreen_pressed(): get_tree().change_scene(title_screen) SoundControler.pub_stop_effects() diff --git a/src/Menus/SelectUpgradeUI/SelectUpgradeUI.gd b/src/Menus/SelectUpgradeUI/SelectUpgradeUI.gd index d09debc..898c4da 100644 --- a/src/Menus/SelectUpgradeUI/SelectUpgradeUI.gd +++ b/src/Menus/SelectUpgradeUI/SelectUpgradeUI.gd @@ -1,17 +1,17 @@ extends Control const DrNDrPre = preload("res://Menus/DragNDrop/DragNDropUI.gd") -var DrNDr +var DrNDr var cardPositions = [Vector2(100,150),Vector2(200,150),Vector2(300,150)] var randcards = [0,0,0] var showCards = true var shownCards = [] var allowChoosCards = false + func _ready(): DrNDr = get_tree().current_scene.get_node("CanvasLayer").get_node("DragNDropUI") - - + func starting(): shownCards = [] @@ -64,16 +64,17 @@ func starting(): shownCards[0].set_begin (cardPositions[0]) shownCards[1].set_begin (cardPositions[1]) shownCards[2].set_begin (cardPositions[2]) - + for i in range(3): - shownCards[i].canNotPlace = true + shownCards[i].canNotPlace = true shownCards[i].margin_bottom = shownCards[i].margin_top+32 shownCards[i].margin_right = shownCards[i].margin_left+32 var i = 0 allowChoosCards = true else: pass - + + func _input(event): if((event is InputEventMouseButton) && allowChoosCards): for card in range(3): @@ -98,5 +99,3 @@ func _input(event): func _on_Button_pressed(): Engine.time_scale=1 self.hide() - pass # Replace with function body. - diff --git a/src/Menus/Startup/Startup.gd b/src/Menus/Startup/Startup.gd index f3421ce..23c1931 100644 --- a/src/Menus/Startup/Startup.gd +++ b/src/Menus/Startup/Startup.gd @@ -2,15 +2,19 @@ extends AnimatedSprite onready var timer = $Timer + func _ready(): timer.connect("timeout", self, "_timeout") + func start(): timer.set_wait_time(0.25) timer.start() + func _timeout(): play("begin") + func _animation_finished(): play("loop") diff --git a/src/Menus/TitleScreen/TitleScreen.gd b/src/Menus/TitleScreen/TitleScreen.gd index b5bd0c5..a42fef2 100644 --- a/src/Menus/TitleScreen/TitleScreen.gd +++ b/src/Menus/TitleScreen/TitleScreen.gd @@ -11,16 +11,18 @@ onready var startup= $Startup var finished_once := false + func _ready(): startup.start() animation_player.play("__INIT__") SoundControler.pub_play_music("res://Menus/Sounds/menu_theme.ogg", false) + func _process(_delta): if not finished_once and Input.is_action_just_pressed("skip"): startup.animation = "loop" startup.frame = 0 - + if startup.animation == "loop": if not finished_once: emit_signal("startup_finished") @@ -29,5 +31,6 @@ func _process(_delta): animation_player.play("show_buttons") finished_once = true + func _exit_tree(): SoundControler.pub_stop_music() diff --git a/src/Menus/TitleScreen/TitleScreenButton.gd b/src/Menus/TitleScreen/TitleScreenButton.gd index 5f8a9c0..aaefc2f 100644 --- a/src/Menus/TitleScreen/TitleScreenButton.gd +++ b/src/Menus/TitleScreen/TitleScreenButton.gd @@ -5,12 +5,13 @@ export(String, FILE, "*.tscn,*.scn") var scene_to_load = "" export(bool) var quit = false var ignore_once = false + func _pressed(): SoundControler.pub_play_effect("res://Menus/Sounds/menu_option_select.ogg",0) if quit: get_tree().quit() return - + get_tree().change_scene(scene_to_load) @@ -18,7 +19,6 @@ func _on_TitleScreenButton_mouse_entered(): grab_focus() - func _on_TitleScreenButton_focus_entered(): if not ignore_once: SoundControler.pub_play_effect("res://Menus/Sounds/menu_focus_change.ogg",0) diff --git a/src/Menus/WinScreen/WinScreen.gd b/src/Menus/WinScreen/WinScreen.gd index fa95813..b9c30dc 100644 --- a/src/Menus/WinScreen/WinScreen.gd +++ b/src/Menus/WinScreen/WinScreen.gd @@ -8,6 +8,7 @@ func _on_Restart_pressed(): get_tree().change_scene(restart_scene) SoundControler.pub_stop_effects() + func _on_TitleScreen_pressed(): get_tree().change_scene(title_screen) SoundControler.pub_stop_effects() diff --git a/src/Objects/Banana/Banana.gd b/src/Objects/Banana/Banana.gd index f2143ac..f488afc 100644 --- a/src/Objects/Banana/Banana.gd +++ b/src/Objects/Banana/Banana.gd @@ -1,9 +1,10 @@ extends AnimatedSprite + func _ready(): play("place") func _on_Hurtbox_area_entered(area): - SoundControler.pub_play_effect("res://Objects/Banana/Banane3.wav",3) + SoundControler.pub_play_effect("res://Objects/Banana/Banane3.wav", 3) queue_free() diff --git a/src/Objects/Barrel/Barrel.gd b/src/Objects/Barrel/Barrel.gd index 35a8e29..8c617d5 100644 --- a/src/Objects/Barrel/Barrel.gd +++ b/src/Objects/Barrel/Barrel.gd @@ -1,15 +1,17 @@ extends StaticBody2D -export(int,1,10) var health = 1 +export(int, 1, 10) var health = 1 var GreenDrop = 0.4 var BlueDrop = 0.5 var RedDrop = 0.8 var Heart = 0.2 + func offset_vec(): var offset = 16 return Vector2((randf()-0.5)*offset, (randf()-0.5)*offset) + func _on_Hurtbox_area_entered(area): health -= area.damage if(health>0): @@ -20,8 +22,8 @@ func _on_Hurtbox_area_entered(area): var BlueRubies = load("res://Objects/Rubies/Blue.tscn") var RedRubies = load("res://Objects/Rubies/Red.tscn") var Hearts = load("res://Objects/Heart/Heart.tscn") - - #index of ysort + + # index of ysort var world = get_tree().current_scene.get_node("YSort") if(randf()=spawnRate): @@ -30,6 +32,7 @@ func _on_Hurtbox_area_entered(area): func _sound_finished(): SoundControler.pub_play_effect("res://Objects/Torch/Torch.wav",4) + func _ready(): SoundControler.pub_play_effect("res://Objects/Torch/Torch.wav",4) SoundControler._effect[4].volume_db = -20 diff --git a/src/Objects/Traps/Bear/Bear.gd b/src/Objects/Traps/Bear/Bear.gd index 8d32f0c..73188d3 100644 --- a/src/Objects/Traps/Bear/Bear.gd +++ b/src/Objects/Traps/Bear/Bear.gd @@ -1,5 +1,6 @@ extends Node2D + func _on_Hurtbox_area_entered(area): $AnimatedSprite.play("clap") SoundControler.pub_play_effect("res://Objects/Traps/Bear/Barenfalle.wav",3) diff --git a/src/Objects/Traps/Flame/Flame.gd b/src/Objects/Traps/Flame/Flame.gd index 86cf017..b47f512 100644 --- a/src/Objects/Traps/Flame/Flame.gd +++ b/src/Objects/Traps/Flame/Flame.gd @@ -9,6 +9,7 @@ func on_timer_timeout(): SoundControler.pub_stop_effect(4) queue_free() + func _ready(): $Sprite.play("burn") add_child(timer) @@ -18,16 +19,12 @@ func _ready(): SoundControler.pub_play_effect("res://Objects/Traps/Flame/Fire.wav",5) SoundControler._effect[5].volume_db = -20 SoundControler._effect[5].connect("finished",self,"_sound_finished") - - func _on_Hitbox_body_entered(body): if(body.get_name() == "Player"): body.velocity*=-3 - - + + func _sound_finished(): SoundControler.pub_play_effect("res://Objects/Traps/Flame/Fire.wav",5) - - diff --git a/src/Objects/Traps/Spike/Spike.gd b/src/Objects/Traps/Spike/Spike.gd index f1ef4c7..8a2d556 100644 --- a/src/Objects/Traps/Spike/Spike.gd +++ b/src/Objects/Traps/Spike/Spike.gd @@ -4,20 +4,23 @@ export(float, 0.1, 3.0) var time_to_recharge = 3.0 var time = Timer.new() + func _ready(): add_child(time) $Sprite.play("out") SoundControler.pub_play_effect("res://Objects/Traps/Spike/Spike6.wav",9) $"Hitbox/CollisionShape2D".disabled = true + func on_timer_timeout(): $Sprite.play("out") SoundControler.pub_play_effect("res://Objects/Traps/Spike/Spike6.wav",9) time.stop() + func _on_Sprite_animation_finished(): if $Sprite.get_animation() == "default": - $"Hitbox/CollisionShape2D".disabled = false + $"Hitbox/CollisionShape2D".disabled = false if $Sprite.get_animation() == "out": $Sprite.play("default") elif $Sprite.get_animation() == "in": @@ -33,5 +36,3 @@ func _on_Hitbox_area_entered(area): if($Sprite.get_animation()=="default"): SoundControler.pub_play_effect("res://Objects/Traps/Spike/Spike6.wav",9) $Sprite.play("in") - - diff --git a/src/Overlap/AI/AI_Hero.gd b/src/Overlap/AI/AI_Hero.gd index 36670e4..2a52e47 100644 --- a/src/Overlap/AI/AI_Hero.gd +++ b/src/Overlap/AI/AI_Hero.gd @@ -51,34 +51,34 @@ func calcTotalPrio(): sum += prios[i] i += 1 return sum - + #calculates the relative porio func calcRelPrio(index, sum) -> float: if(sum==0): return 0.0 return float(prios[index])/float(sum) - + #calucaltes the prio table of all enemies[0,1) func calcPrioTable(): var table = [0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0] numbers = grid.countTargets(numbers) var lower = 0.0 var sum = calcTotalPrio() - + var i = 0; while i != Grid.Kind.TERMINAL_SYMBOL: if(numbers[i]!=0): lower += calcRelPrio(i, sum) table[i] = lower i += 1 - + return table #updates heart and bonfire prio func adjustPrio(currentHealth, maxHealth): var prioVal = 20.0 - (float(currentHealth)/float(maxHealth))*20.0 var bonfire = prioVal + 1 - var hearts = prioVal + var hearts = prioVal if(hearts < 0): hearts = 0 prios[Grid.Kind.BONFIRE]=bonfire @@ -104,7 +104,7 @@ func getMoveDescription(myPosition : Vector2, targetPositions : Vector2): var from = grid._point_path[0] var p1 = pow(to[0]-from[0],2) var p2 = pow(to[1]-from[1],2) - + var norm = sqrt(p1+p2) var move = STEP if(norm > 1.0 && p1 != p2): @@ -116,7 +116,7 @@ func getMoveDescription(myPosition : Vector2, targetPositions : Vector2): func movement_calulcaotr(): var currentPosition = grid._pixel_to_grid_coords(global_position) var enemyKind - + numbers = grid.countTargets(numbers) if(actionKind == grid.Kind.TERMINAL_SYMBOL || numbers[actionKind]==0 || actionFieldUsed==false): enemyKind = calcEnemyKind() @@ -126,13 +126,13 @@ func movement_calulcaotr(): return else: enemyKind = actionKind - + var targetField = grid.get_nearest(currentPosition, enemyKind) if(targetField==[-1,-1]): - return - + return + return getMoveDescription(currentPosition, Vector2(targetField[0], targetField[1])) - + func is_hittable(): var length = areaRefList.size() @@ -145,11 +145,11 @@ func hit_or_miss(target, current, delta): func movement_decider_ai(target, kindOfStep, delta): var currentPosition = grid._pixel_to_grid_coords(global_position) - + hitDelta -= hitTreshhold var currentPixel = global_position var hitPixelTarget = is_hittable() - + if hitPixelTarget!=null && randf()<1: hit_or_miss(hitPixelTarget, currentPixel, delta*4) else: @@ -159,15 +159,15 @@ func movement_decider_ai(target, kindOfStep, delta): ai_movement_state = STEP elif(kindOfStep==ROLL): roll(Vector2(target[0]-currentPosition[0], target[1]-currentPosition[1]), delta*4) - - targetFieldCur = target + + targetFieldCur = target targetFieldUsed = true - + ExecutionState = EXECUTING -func movement_execution(delta): +func movement_execution(delta): if(targetFieldUsed): var cur = grid._pixel_to_grid_coords(global_position) var distance = sqrt(pow(cur[0]-targetFieldCur[0],2)+ pow(cur[1]-targetFieldCur[1],2)) @@ -184,16 +184,16 @@ func movement_execution(delta): elif(ai_movement_state==ROLL): run(Vector2(targetFieldCur[0]-currentPosition[0], targetFieldCur[1]-currentPosition[1]), delta*4) else: - ExecutionState = AI_MOVE - -func reset_exeution_state(delta): + ExecutionState = AI_MOVE + +func reset_exeution_state(delta): threadDelta = threadDelta + delta if(threadDelta>threadTime): ExecutionState = AI_MOVE - actionFieldUsed = false + actionFieldUsed = false + - func makeMove(delta): lock.lock() if ExecutionState == AI_MOVE: @@ -202,8 +202,8 @@ func makeMove(delta): if(MoveAdvice==null): return var target = MoveAdvice[1] - movement_decider_ai(target, MoveAdvice[0], delta) - + movement_decider_ai(target, MoveAdvice[0], delta) + if ExecutionState == EXECUTING: movement_execution(delta) reset_exeution_state(delta) @@ -221,4 +221,4 @@ func roll(direction, delta): func run(direction, delta): pass -#todo +#todo diff --git a/src/Overlap/AI/AI_Minion.gd b/src/Overlap/AI/AI_Minion.gd index 329274c..029df43 100644 --- a/src/Overlap/AI/AI_Minion.gd +++ b/src/Overlap/AI/AI_Minion.gd @@ -49,27 +49,27 @@ func calcTotalPrio(): sum += prios[i] i += 1 return sum - + #calculates the relative porio func calcRelPrio(index, sum) -> float: if(sum==0): return 0.0 return float(prios[index])/float(sum) - + #calucaltes the prio table of all enemies[0,1) func calcPrioTable(): var table = [0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0] numbers = grid.countTargets(numbers) var lower = 0.0 var sum = calcTotalPrio() - + var i = 0; while i != Grid.Kind.TERMINAL_SYMBOL: if(numbers[i]!=0): lower += calcRelPrio(i, sum) table[i] = lower i += 1 - + return table #return the enemie which will be attacked @@ -88,7 +88,7 @@ func getMoveDescription(myPosition : Vector2, targetPositions : Vector2): grid.recalculate_path() if(grid._point_path.size()<=1): return [NOTHING, [0,0]] - + var move = STEP return [move, grid._point_path[1]] @@ -97,7 +97,7 @@ func getMoveDescription(myPosition : Vector2, targetPositions : Vector2): func movement_calulcaotr(): var currentPosition = grid._pixel_to_grid_coords(global_position) var enemyKind - + numbers = grid.countTargets(numbers) if(actionKind == grid.Kind.TERMINAL_SYMBOL || numbers[actionKind]==0 || actionFieldUsed==false): enemyKind = calcEnemyKind() @@ -107,28 +107,28 @@ func movement_calulcaotr(): return else: enemyKind = actionKind - + var targetField = grid.get_nearest(currentPosition, enemyKind) if(targetField==[-1,-1]): - return - + return + return getMoveDescription(currentPosition, Vector2(targetField[0], targetField[1])) func movement_decider_ai(target, kindOfStep, delta): var currentPosition = grid._pixel_to_grid_coords(global_position) - + run(Vector2(target[0]-currentPosition[0], target[1]-currentPosition[1]), delta*4) targetFieldCur = target ai_movement_state = STEP - - targetFieldCur = target + + targetFieldCur = target targetFieldUsed = true - + ExecutionState = EXECUTING -func movement_execution(delta): +func movement_execution(delta): if(targetFieldUsed): var cur = grid._pixel_to_grid_coords(global_position) var distance = sqrt(pow(cur[0]-targetFieldCur[0],2)+ pow(cur[1]-targetFieldCur[1],2)) @@ -142,16 +142,16 @@ func movement_execution(delta): var currentPosition = grid._pixel_to_grid_coords(global_position) if(ai_movement_state==STEP): run(Vector2(targetFieldCur[0]-currentPosition[0], targetFieldCur[1]-currentPosition[1]), delta*4) - - -func reset_exeution_state(delta): + + +func reset_exeution_state(delta): threadDelta = threadDelta + delta if(threadDelta>threadTime): ExecutionState = AI_MOVE - actionFieldUsed = false + actionFieldUsed = false + - func makeMove(delta): lock.lock() if ExecutionState == AI_MOVE: @@ -160,8 +160,8 @@ func makeMove(delta): if(MoveAdvice==null): return var target = MoveAdvice[1] - movement_decider_ai(target, MoveAdvice[0], delta) - + movement_decider_ai(target, MoveAdvice[0], delta) + if ExecutionState == EXECUTING: movement_execution(delta) reset_exeution_state(delta) @@ -172,4 +172,4 @@ func makeMove(delta): func run(direction, delta): pass -#todo +#todo diff --git a/src/Overlap/HurtHit_Box/Hurtbox.gd b/src/Overlap/HurtHit_Box/Hurtbox.gd index c749c8c..8d03f87 100644 --- a/src/Overlap/HurtHit_Box/Hurtbox.gd +++ b/src/Overlap/HurtHit_Box/Hurtbox.gd @@ -2,4 +2,4 @@ extends Area2D export(int, 0, 20) var currency_value:=0 export(int, 0, 2) var health_value:=0 -export(int, 0, 300) var slowdown_value:=0 +export(int, 0, 300) var slowdown_value:=0 diff --git a/src/Overlap/Mechanics/Mechanics.gd b/src/Overlap/Mechanics/Mechanics.gd deleted file mode 100644 index 61510e1..0000000 --- a/src/Overlap/Mechanics/Mechanics.gd +++ /dev/null @@ -1 +0,0 @@ -extends Node diff --git a/src/Overlap/Mechanics/Mechanics.tscn b/src/Overlap/Mechanics/Mechanics.tscn deleted file mode 100644 index 76eead0..0000000 --- a/src/Overlap/Mechanics/Mechanics.tscn +++ /dev/null @@ -1,6 +0,0 @@ -[gd_scene load_steps=2 format=2] - -[ext_resource path="res://Overlap/Mechanics/Mechanics.gd" type="Script" id=1] - -[node name="Core" type="Node"] -script = ExtResource( 1 ) diff --git a/src/Overlap/StateMachine/SequenceState.gd b/src/Overlap/StateMachine/SequenceState.gd index 8992761..c444869 100644 --- a/src/Overlap/StateMachine/SequenceState.gd +++ b/src/Overlap/StateMachine/SequenceState.gd @@ -37,8 +37,5 @@ func go_to_next_state_in_sequence(): emit_signal('finished') return state_active = get_child(new_state_index) - + state_active.enter() - - - diff --git a/src/Overlap/StateMachine/StateMachine.gd b/src/Overlap/StateMachine/StateMachine.gd index 8c5f9a7..190860a 100644 --- a/src/Overlap/StateMachine/StateMachine.gd +++ b/src/Overlap/StateMachine/StateMachine.gd @@ -45,14 +45,14 @@ func change_state(state_name): if not _active: return current_state.exit() - + if state_name == "previous": states_stack.pop_front() else: states_stack[0] = states_map[state_name] - + current_state = states_stack[0] emit_signal("state_changed", current_state) - + if state_name != "previous": current_state.enter() diff --git a/src/Overlap/Stats/Stats.gd b/src/Overlap/Stats/Stats.gd index 3501e89..6aa119d 100644 --- a/src/Overlap/Stats/Stats.gd +++ b/src/Overlap/Stats/Stats.gd @@ -16,9 +16,9 @@ func set_health(value): health = value if health < 1: emit_signal("no_health") - + emit_signal("health_changed", health) - + func set_speed(value): if value > max_speed: speed = max_speed @@ -26,5 +26,3 @@ func set_speed(value): speed = 0.0 else: speed = value - - diff --git a/src/Player/Player.gd b/src/Player/Player.gd index 578345a..49a74f0 100644 --- a/src/Player/Player.gd +++ b/src/Player/Player.gd @@ -89,7 +89,7 @@ func _physics_process(delta): # IMPORTANT: If you are using move_and_slide don't multiply by delta # Godots physics system does that internally -# In move_and_collide(...) you have to multiply by delta. +# In move_and_collide(...) you have to multiply by delta. func move(): move_and_slide(velocity) @@ -114,7 +114,7 @@ func run(direction, delta): rollvector = direction movementState = moveState.MOVE velocity = velocity.move_toward(player_stats.speed * rollvector, ACCELERATION * delta) - + if direction == Vector2.ZERO: animation_state.change_state("idle") else: @@ -122,7 +122,7 @@ func run(direction, delta): func movement_move(delta): - + var input_vector = Vector2.ZERO # This is a clever way to handle directional input # Input.get_action_strength(...) returns a value between 0 and 1 depending @@ -132,13 +132,13 @@ func movement_move(delta): input_vector.x = Input.get_action_strength("right") - Input.get_action_strength("left") input_vector.y = Input.get_action_strength("down") - Input.get_action_strength("up") input_vector = input_vector.normalized() - + if input_vector == Vector2.ZERO: animation_state.change_state("idle") velocity = Vector2.ZERO else: rollvector = input_vector - animation_state.change_state("run") + animation_state.change_state("run") velocity = velocity.move_toward(player_stats.speed * input_vector, ACCELERATION * delta) if Input.is_action_just_pressed("roll"): movementState = moveState.ROLL @@ -172,7 +172,7 @@ func roll_finished(): func _on_Hurtbox_area_entered(area): if("damage" in area): player_stats.health -= area.damage - + if area.damage > 0: damage_per_second += area.damage SoundControler.pub_play_effect("res://Player/Sounds/Hurt.wav",1) @@ -197,7 +197,7 @@ func _on_Stats_no_health(): queue_free() get_tree().get_root().get_node("World").hero_has_died() #get_tree().change_scene("res://Menus/TitleScreen/TitleScreen.tscn") - + func _on_Hitbox_area_entered(area): currency += area.currency_value diff --git a/src/Player/States/Roll.gd b/src/Player/States/Roll.gd index 2873e4c..384972c 100644 --- a/src/Player/States/Roll.gd +++ b/src/Player/States/Roll.gd @@ -30,7 +30,7 @@ func _play_random_sound(): if delay_passed and is_playing_sound==false: var sound = SoundLibary[rand_range(0,SoundLibary.size())] SoundControler.pub_play_effect(sound,CHANNEL) - + is_playing_sound = true delay_passed=false #timer.start(Delay) diff --git a/src/Player/States/Run.gd b/src/Player/States/Run.gd index 814ac1d..61b1289 100644 --- a/src/Player/States/Run.gd +++ b/src/Player/States/Run.gd @@ -30,7 +30,7 @@ func _play_random_sound(): if delay_passed and is_playing_sound==false: var sound = SoundLibary[rand_range(0,SoundLibary.size())] SoundControler.pub_play_effect(sound,CHANNEL) - + is_playing_sound = true delay_passed=false #timer.start(Delay) diff --git a/src/World.gd b/src/World.gd index 79addb1..9d11cd2 100644 --- a/src/World.gd +++ b/src/World.gd @@ -22,14 +22,14 @@ func determine_spawnpoint(): while(point.distance_to($YSort/SlimeBoss.position) < MinDistanceToBoss): point = Vector2(rand_range(SpawnBoxRange.position.x,SpawnBoxRange.position.x+SpawnBoxRange.size.x),rand_range(SpawnBoxRange.position.y,SpawnBoxRange.position.y+SpawnBoxRange.size.y)) return point - + func hero_has_died(): round_counter += 1 if (round_counter >= WinRounds and not passed_final_Round): passed_final_Round = true $CanvasLayer/Win.show() - + Engine.time_scale = 0 var point = determine_spawnpoint() spawn_new_hero(point.x, point.y) diff --git a/src/project.godot b/src/project.godot index 112e95b..444cc00 100644 --- a/src/project.godot +++ b/src/project.godot @@ -62,7 +62,7 @@ config/icon="res://icon.png" [autoload] -SoundControler="*res://Autoloads/SoundControler.gd" +SoundControler="*res://Autoloads/SoundController.gd" Steering="*res://Autoloads/Steering.gd" Globals="*res://Autoloads/Globals.gd"