From d12d69f08335db202b80e1e7724b0226f154b6b0 Mon Sep 17 00:00:00 2001 From: Conrad Date: Tue, 21 Apr 2020 03:14:00 +0200 Subject: [PATCH] Minor Cleanup - Renamed SoundController - Cleaned up spacings - File endings --- .../{SoundControler.gd => SoundController.gd} | 24 +++++--- src/Autoloads/Steering.gd | 10 ++-- src/Boss/Boss_template.gd | 9 +-- src/Boss/Minion.gd | 16 +++-- src/Debug/BossStateDisplay.gd | 1 + src/Maps/Grid.gd | 55 +++++++++--------- src/Menus/Beginnings/Beginnings.gd | 8 ++- .../Xbox 360 Controller Black Updated.png | Bin 6616 -> 0 bytes ...ox 360 Controller Black Updated.png.import | 34 ----------- .../Xbox 360 Controller Updated.png | Bin 8742 -> 0 bytes .../Xbox 360 Controller Updated.png.import | 34 ----------- src/Menus/Credits/Credits.gd | 7 ++- src/Menus/DialogueBox/DialogueBox.gd | 2 + src/Menus/DialogueBox/Dialogues.gd | 1 + src/Menus/DragNDrop/DragNDropUI.gd | 5 +- src/Menus/DragNDrop/DragSink.gd | 7 ++- src/Menus/DragNDrop/DragSource.gd | 7 ++- src/Menus/LoseScreen/LoseScreen.gd | 2 + src/Menus/SelectUpgradeUI/SelectUpgradeUI.gd | 15 +++-- src/Menus/Startup/Startup.gd | 4 ++ src/Menus/TitleScreen/TitleScreen.gd | 5 +- src/Menus/TitleScreen/TitleScreenButton.gd | 4 +- src/Menus/WinScreen/WinScreen.gd | 1 + src/Objects/Banana/Banana.gd | 3 +- src/Objects/Barrel/Barrel.gd | 9 +-- src/Objects/Barriere/Barriere.gd | 2 +- src/Objects/Bonfire/Bonfire.gd | 9 ++- src/Objects/Heart/Heart.gd | 5 +- src/Objects/Rubies/Rubies.gd | 3 - src/Objects/Slime/Slime.gd | 2 +- src/Objects/Torch/Torch.gd | 3 + src/Objects/Traps/Bear/Bear.gd | 1 + src/Objects/Traps/Flame/Flame.gd | 9 +-- src/Objects/Traps/Spike/Spike.gd | 7 ++- src/Overlap/AI/AI_Hero.gd | 50 ++++++++-------- src/Overlap/AI/AI_Minion.gd | 44 +++++++------- src/Overlap/HurtHit_Box/Hurtbox.gd | 2 +- src/Overlap/Mechanics/Mechanics.gd | 1 - src/Overlap/Mechanics/Mechanics.tscn | 6 -- src/Overlap/StateMachine/SequenceState.gd | 5 +- src/Overlap/StateMachine/StateMachine.gd | 6 +- src/Overlap/Stats/Stats.gd | 6 +- src/Player/Player.gd | 14 ++--- src/Player/States/Roll.gd | 2 +- src/Player/States/Run.gd | 2 +- src/World.gd | 4 +- src/project.godot | 2 +- 47 files changed, 203 insertions(+), 245 deletions(-) rename src/Autoloads/{SoundControler.gd => SoundController.gd} (85%) delete mode 100644 src/Menus/ControlIcons/Xbox 360 Controller Black Updated.png delete mode 100644 src/Menus/ControlIcons/Xbox 360 Controller Black Updated.png.import delete mode 100644 src/Menus/ControlIcons/Xbox 360 Controller Updated.png delete mode 100644 src/Menus/ControlIcons/Xbox 360 Controller Updated.png.import delete mode 100644 src/Overlap/Mechanics/Mechanics.gd delete mode 100644 src/Overlap/Mechanics/Mechanics.tscn 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 527af0f300f3ec275f01f9495b832d968ee04a55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6616 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: @@ -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"