mirror of
https://github.com/creyD/ludum_dare_46.git
synced 2026-06-11 21:22:22 +02:00
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
extends Panel
|
||||
|
||||
|
||||
func _on_SlimeBoss_state_changed(new_state_name):
|
||||
$VBoxContainer/State.text = new_state_name
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -16,5 +16,6 @@ func _ready():
|
||||
"Boss: We'll see about that!"
|
||||
])
|
||||
|
||||
|
||||
func get_dialogue(id):
|
||||
return _dialogues[id]
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
extends Node2D
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
func _on_Hurtbox_area_entered(area):
|
||||
SoundControler.pub_play_effect("res://Objects/Rubies/emerald3.wav",8)
|
||||
queue_free()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
|
||||
@@ -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")
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
extends Node
|
||||
@@ -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 )
|
||||
@@ -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()
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user