mirror of
https://github.com/creyD/ludum_dare_46.git
synced 2026-06-16 15:10:20 +02:00
fixed no target bug
This commit is contained in:
@@ -56,7 +56,7 @@ func _ready():
|
|||||||
_update_grid()
|
_update_grid()
|
||||||
|
|
||||||
|
|
||||||
func _reset_history():
|
func reset_history():
|
||||||
for x in range(14):
|
for x in range(14):
|
||||||
for y in range(7):
|
for y in range(7):
|
||||||
used_grid[x][y] = false
|
used_grid[x][y] = false
|
||||||
|
|||||||
@@ -24,9 +24,10 @@ enum{
|
|||||||
}
|
}
|
||||||
|
|
||||||
var ExecutionState = AI_MOVE
|
var ExecutionState = AI_MOVE
|
||||||
|
var movmentState = NOTHING
|
||||||
|
|
||||||
var numbers = [0,0,0,0,0,0,0,0,0,0]
|
var numbers = [0,0,0,0,0,0,0,0,0,0]
|
||||||
var prios = [7,0,6,5,4,3,2,0,0,4]
|
var prios = [7,0,6,5,4,3,2,1,1,4]
|
||||||
|
|
||||||
var totalPrioTurn = 0
|
var totalPrioTurn = 0
|
||||||
var executesTurn = false
|
var executesTurn = false
|
||||||
@@ -68,7 +69,7 @@ func calcPrioTable():
|
|||||||
|
|
||||||
#updates heart and bonfire prio
|
#updates heart and bonfire prio
|
||||||
func adjustPrio(currentHealth, maxHealth):
|
func adjustPrio(currentHealth, maxHealth):
|
||||||
var prioVal = 10 - (currentHealth/maxHealth)*10
|
var prioVal = 1000 - (float(currentHealth)/float(maxHealth))*1000
|
||||||
var bonfire = prioVal
|
var bonfire = prioVal
|
||||||
var hearts = prioVal - 1
|
var hearts = prioVal - 1
|
||||||
if(hearts < 0):
|
if(hearts < 0):
|
||||||
@@ -81,7 +82,7 @@ func calcEnemyKind():
|
|||||||
var table = calcPrioTable()
|
var table = calcPrioTable()
|
||||||
var number = randf()
|
var number = randf()
|
||||||
var i = 0
|
var i = 0
|
||||||
while table[i] <= number:
|
while i!=Grid.Kind.TERMINAL_SYMBOL and table[i] <= number:
|
||||||
i += 1
|
i += 1
|
||||||
return i
|
return i
|
||||||
|
|
||||||
@@ -95,7 +96,7 @@ func getCost(field):
|
|||||||
for i in grid.prio_grid[field.x][field.y]:
|
for i in grid.prio_grid[field.x][field.y]:
|
||||||
match i:
|
match i:
|
||||||
Grid.Kind.DAMAGE:
|
Grid.Kind.DAMAGE:
|
||||||
cost += prios[Grid.kind.BONFIRE] * 6
|
cost += prios[Grid.Kind.BONFIRE] * 6
|
||||||
Grid.Kind.SLOW:
|
Grid.Kind.SLOW:
|
||||||
cost += 2
|
cost += 2
|
||||||
return cost
|
return cost
|
||||||
@@ -193,25 +194,41 @@ func AStar(source, target):
|
|||||||
|
|
||||||
return [NOTHING, [0,0]]
|
return [NOTHING, [0,0]]
|
||||||
|
|
||||||
|
|
||||||
func makeMove(delta):
|
func makeMove(delta):
|
||||||
pass
|
|
||||||
if ExecutionState == AI_MOVE:
|
if ExecutionState == AI_MOVE:
|
||||||
var currentPosition = grid._pixel_to_grid_coords(global_position)
|
var currentPosition = grid._pixel_to_grid_coords(global_position)
|
||||||
var enemyKind = calcEnemyKind()
|
var enemyKind = calcEnemyKind()
|
||||||
var targetField = grid.get_nearest(currentPosition, enemyKind)
|
if(enemyKind==Grid.Kind.TERMINAL_SYMBOL):
|
||||||
var MoveAdvice = getMoveDescription(currentPosition, targetField)
|
return
|
||||||
print(MoveAdvice)
|
var target = grid.get_nearest(currentPosition, enemyKind)
|
||||||
|
var MoveAdvice = getMoveDescription(currentPosition, target)
|
||||||
|
target = MoveAdvice[1]
|
||||||
|
if(MoveAdvice[0]==STEP):
|
||||||
|
run(Vector2(target[0]-currentPosition[0], target[1]-currentPosition[1]), delta*10)
|
||||||
|
targetField = target
|
||||||
|
targetFieldUsed = true
|
||||||
|
movmentState = STEP
|
||||||
|
elif(MoveAdvice[0]==ROLL):
|
||||||
|
roll(Vector2(target[0]-currentPosition[0], target[1]-currentPosition[1]), delta*10)
|
||||||
|
targetFieldUsed = true
|
||||||
|
targetField = target
|
||||||
ExecutionState = EXECUTING
|
ExecutionState = EXECUTING
|
||||||
pass
|
grid.reset_history()
|
||||||
elif ExecutionState == EXECUTING:
|
elif ExecutionState == EXECUTING:
|
||||||
if(targetFieldUsed):
|
if(targetFieldUsed):
|
||||||
pass
|
|
||||||
var cur = grid._pixel_to_grid_coords(global_position)
|
var cur = grid._pixel_to_grid_coords(global_position)
|
||||||
var distance = sqrt(pow(cur[0]-targetField[0],2)+ pow(cur[1]-targetField[1],2))
|
var distance = sqrt(pow(cur[0]-targetField[0],2)+ pow(cur[1]-targetField[1],2))
|
||||||
if(distance<0.5):
|
if(distance<0.01):
|
||||||
targetFieldUsed = false
|
targetFieldUsed = false
|
||||||
ExecutionState = AI_MOVE
|
ExecutionState = AI_MOVE
|
||||||
|
else:
|
||||||
|
var currentPosition = grid._pixel_to_grid_coords(global_position)
|
||||||
|
if(movmentState==STEP):
|
||||||
|
run(Vector2(targetField[0]-currentPosition[0], targetField[1]-currentPosition[1]), delta*10)
|
||||||
|
elif(movmentState==ROLL):
|
||||||
|
roll(Vector2(targetField[0]-currentPosition[0], targetField[1]-currentPosition[1]), delta*10)
|
||||||
|
else:
|
||||||
|
ExecutionState = AI_MOVE
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ func _physics_process(delta):
|
|||||||
while(totaldamage < -1):
|
while(totaldamage < -1):
|
||||||
totaldamage+=1
|
totaldamage+=1
|
||||||
player_stats.health+=1
|
player_stats.health+=1
|
||||||
|
adjustPrio(player_stats.health, player_stats.max_health)
|
||||||
_debug_update()
|
_debug_update()
|
||||||
if debug == true:
|
if debug == true:
|
||||||
match movementState:
|
match movementState:
|
||||||
@@ -169,7 +170,7 @@ func _on_Hurtbox_area_exited(area):
|
|||||||
|
|
||||||
func _on_Stats_no_health():
|
func _on_Stats_no_health():
|
||||||
queue_free()
|
queue_free()
|
||||||
get_tree().change_scene("res://Menus/TitleScreen/TitleScreen.tscn")
|
#get_tree().change_scene("res://Menus/TitleScreen/TitleScreen.tscn")
|
||||||
|
|
||||||
|
|
||||||
func _on_Hitbox_area_entered(area):
|
func _on_Hitbox_area_entered(area):
|
||||||
|
|||||||
@@ -619,10 +619,7 @@ font_data = ExtResource( 6 )
|
|||||||
|
|
||||||
[node name="Player" type="KinematicBody2D"]
|
[node name="Player" type="KinematicBody2D"]
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
debug = null
|
|
||||||
ROLL_SPEED = null
|
|
||||||
FRICTION = 270
|
FRICTION = 270
|
||||||
ACCELERATION = null
|
|
||||||
|
|
||||||
[node name="Kind" parent="." instance=ExtResource( 7 )]
|
[node name="Kind" parent="." instance=ExtResource( 7 )]
|
||||||
kind = 1
|
kind = 1
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
[gd_scene load_steps=8 format=2]
|
[gd_scene load_steps=7 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://Player/Player.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://Player/Player.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://World.gd" type="Script" id=2]
|
[ext_resource path="res://World.gd" type="Script" id=2]
|
||||||
[ext_resource path="res://Maps/Tilesets/Room/tileset_room.tres" type="TileSet" id=3]
|
[ext_resource path="res://Maps/Tilesets/Room/tileset_room.tres" type="TileSet" id=3]
|
||||||
[ext_resource path="res://testSprites/dark.png" type="Texture" id=4]
|
[ext_resource path="res://testSprites/dark.png" type="Texture" id=4]
|
||||||
[ext_resource path="res://Objects/Bonfire/Bonfire.tscn" type="PackedScene" id=7]
|
|
||||||
[ext_resource path="res://Boss/Boss_template.tscn" type="PackedScene" id=17]
|
|
||||||
[ext_resource path="res://Maps/Grid.tscn" type="PackedScene" id=18]
|
[ext_resource path="res://Maps/Grid.tscn" type="PackedScene" id=18]
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeStateMachinePlayback" id=1]
|
||||||
|
|
||||||
[node name="World" type="Node2D"]
|
[node name="World" type="Node2D"]
|
||||||
script = ExtResource( 2 )
|
script = ExtResource( 2 )
|
||||||
|
|
||||||
@@ -34,12 +34,11 @@ position = Vector2( 152, 120 )
|
|||||||
[node name="Player" parent="YSort" instance=ExtResource( 1 )]
|
[node name="Player" parent="YSort" instance=ExtResource( 1 )]
|
||||||
position = Vector2( 176, 112 )
|
position = Vector2( 176, 112 )
|
||||||
scale = Vector2( 2, 2 )
|
scale = Vector2( 2, 2 )
|
||||||
FRICTION = null
|
FRICTION = 200
|
||||||
|
|
||||||
[node name="Bonfire" parent="YSort" instance=ExtResource( 7 )]
|
[node name="AnimationTree" parent="YSort/Player" index="4"]
|
||||||
position = Vector2( 296, -16 )
|
parameters/playback = SubResource( 1 )
|
||||||
|
|
||||||
[node name="Boss_template2" parent="YSort" instance=ExtResource( 17 )]
|
|
||||||
position = Vector2( -40, 16 )
|
|
||||||
|
|
||||||
[node name="Grid" parent="." instance=ExtResource( 18 )]
|
[node name="Grid" parent="." instance=ExtResource( 18 )]
|
||||||
|
|
||||||
|
[editable path="YSort/Player"]
|
||||||
|
|||||||
Reference in New Issue
Block a user