Minor Cleanup

- Renamed SoundController
- Cleaned up spacings
- File endings
This commit is contained in:
2020-04-21 03:14:00 +02:00
parent 5cfe44bafe
commit d12d69f083
47 changed files with 203 additions and 245 deletions

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,5 +1,6 @@
extends Panel
func _on_SlimeBoss_state_changed(new_state_name):
$VBoxContainer/State.text = new_state_name

View File

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

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

View File

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

View File

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

View File

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

View File

@@ -16,5 +16,6 @@ func _ready():
"Boss: We'll see about that!"
])
func get_dialogue(id):
return _dialogues[id]

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -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()<GreenDrop):
var green = GreenRubies.instance()
@@ -39,4 +41,3 @@ func _on_Hurtbox_area_entered(area):
var heart = Hearts.instance()
world.add_child(heart)
heart.global_position = global_position+offset_vec()

View File

@@ -1,10 +1,10 @@
extends StaticBody2D
# This is the decay script for the barrier
# TODO: please adjust it for actual gameplay
export (float, 0.5, 10.0) var decay_time = 1.5
func on_timer_timeout():
queue_free()

View File

@@ -1,12 +1,15 @@
extends StaticBody2D
func _sound_finished():
SoundControler.pub_play_effect("res://Objects/Bonfire/Bonfire.wav",3)
SoundControler.pub_play_effect("res://Objects/Bonfire/Bonfire.wav", 3)
func _ready():
SoundControler.pub_play_effect("res://Objects/Bonfire/Bonfire.wav",3)
SoundControler.pub_play_effect("res://Objects/Bonfire/Bonfire.wav", 3)
SoundControler._effect[3].volume_db = -20
SoundControler._effect[3].connect("finished",self,"_sound_finished")
SoundControler._effect[3].connect("finished", self, "_sound_finished")
func _on_Hurtbox_area_entered(area):
queue_free()

View File

@@ -1,11 +1,12 @@
extends Node2D
var CHANNEL = 2
#one sound will be chosen at random
export var SoundLibary :PoolStringArray=[]
# One walk sound will be chosen at random
func _on_Hurtbox_area_entered(area):
var sound = SoundLibary[rand_range(0,SoundLibary.size())]
SoundControler.pub_play_effect(sound,CHANNEL)
queue_free()

View File

@@ -1,9 +1,6 @@
extends Node2D
func _on_Hurtbox_area_entered(area):
SoundControler.pub_play_effect("res://Objects/Rubies/emerald3.wav",8)
queue_free()

View File

@@ -2,4 +2,4 @@ extends Node2D
func _on_Hurtbox_area_entered(area):
SoundControler.pub_play_effect("res://Objects/Slime/Schleim.wav",3)
SoundControler.pub_play_effect("res://Objects/Slime/Schleim.wav",3)

View File

@@ -6,10 +6,12 @@ var Minion = load("res://Boss/Minion.tscn")
var elapsedTime = 0.0
func offset_vec():
var offset = 16
return Vector2((randf()-0.5)*offset, (randf()-0.5)*offset)
func _physics_process(delta):
elapsedTime += delta
if(elapsedTime>=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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1 +0,0 @@
extends Node

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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