From 5a21a715f58091aaa9ceaa768860a6b5cfc196fe Mon Sep 17 00:00:00 2001 From: Jonas Mucke Date: Sun, 19 Apr 2020 21:20:18 +0200 Subject: [PATCH] ai_vasics_movement --- src/Overlap/AI/AI_Hero.gd | 52 ++++++++++++++++++++++++++++++++++----- src/World.tscn | 7 +++++- 2 files changed, 52 insertions(+), 7 deletions(-) diff --git a/src/Overlap/AI/AI_Hero.gd b/src/Overlap/AI/AI_Hero.gd index 9df173c..0f53e77 100644 --- a/src/Overlap/AI/AI_Hero.gd +++ b/src/Overlap/AI/AI_Hero.gd @@ -40,7 +40,7 @@ var targetFieldUsed = false var actionField = [0,0] var actionFieldUsed = false -var threadTime = 0.8 +var threadTime = 0.4 var threadDelta = 0.0 #calculates the sum of all present prios func calcTotalPrio(): @@ -120,7 +120,7 @@ func g_fn(currCost, target): return currCost + getCost(target) # Returns the list of adjacent nodes -func adjacent(currentPosition, can_roll = false): +func adjacent(currentPosition, can_roll = true): var adj := [] #adj.append([STEP, Vector2(0,0)]) var p = currentPosition @@ -169,9 +169,8 @@ func adjacent(currentPosition, can_roll = false): adj.append([STEP, Vector2(next[0],next[1]),1.0]) - return adj - - for next in pot_adj_roll: + for i in range(pot_adj_roll.size()): + var next = pot_adj_roll[i] if(next[0]<0): continue if(next[0]>13): @@ -183,7 +182,48 @@ func adjacent(currentPosition, can_roll = false): if(grid.used_grid[next[0]][next[1]]): continue if(grid.object_grid[next[0]][next[1]][0]!=Grid.Kind.WALL): - adj.append([ROLL, Vector2(next[0],next[1]),2.0]) + continue + if(grid.object_grid[next[0]][next[1]][0]!=Grid.Kind.WALL): + if(i==0): + if(grid.object_grid[next[0]+0][next[1]+1][0]!=Grid.Kind.WALL && + grid.object_grid[next[0]+1][next[1]+0][0]!=Grid.Kind.WALL && + grid.object_grid[next[0]+1][next[1]+1][0]!=Grid.Kind.WALL && + grid.object_grid[next[0]+1][next[1]+2][0]!=Grid.Kind.WALL && + grid.object_grid[next[0]+2][next[1]+1][0]!=Grid.Kind.WALL): + adj.append([ROLL, Vector2(next[0],next[1]),2.1]) + if(i==1): + if(grid.object_grid[next[0]+0][next[1]+1][0]!=Grid.Kind.WALL): + adj.append([ROLL, Vector2(next[0],next[1]),2.0]) + if(i==2): + if(grid.object_grid[next[0]-0][next[1]+1][0]!=Grid.Kind.WALL && + grid.object_grid[next[0]-1][next[1]+0][0]!=Grid.Kind.WALL && + grid.object_grid[next[0]-1][next[1]+1][0]!=Grid.Kind.WALL && + grid.object_grid[next[0]-1][next[1]+2][0]!=Grid.Kind.WALL && + grid.object_grid[next[0]-2][next[1]+1][0]!=Grid.Kind.WALL): + adj.append([ROLL, Vector2(next[0],next[1]),2.1]) + if(i==3): + if(grid.object_grid[next[0]+1][next[1]+0][0]!=Grid.Kind.WALL): + adj.append([ROLL, Vector2(next[0],next[1]),2.0]) + if(i==4): + if(grid.object_grid[next[0]-1][next[1]+0][0]!=Grid.Kind.WALL): + adj.append([ROLL, Vector2(next[0],next[1]),2.0]) + if(i==5): + if(grid.object_grid[next[0]+0][next[1]-1][0]!=Grid.Kind.WALL && + grid.object_grid[next[0]+1][next[1]-0][0]!=Grid.Kind.WALL && + grid.object_grid[next[0]+1][next[1]-1][0]!=Grid.Kind.WALL && + grid.object_grid[next[0]+1][next[1]-2][0]!=Grid.Kind.WALL && + grid.object_grid[next[0]+2][next[1]-1][0]!=Grid.Kind.WALL): + adj.append([ROLL, Vector2(next[0],next[1]),2.1]) + if(i==6): + if(grid.object_grid[next[0]+0][next[1]-1][0]!=Grid.Kind.WALL): + adj.append([ROLL, Vector2(next[0],next[1]),2.0]) + if(i==7): + if(grid.object_grid[next[0]-0][next[1]-1][0]!=Grid.Kind.WALL && + grid.object_grid[next[0]-1][next[1]-0][0]!=Grid.Kind.WALL && + grid.object_grid[next[0]-1][next[1]-1][0]!=Grid.Kind.WALL && + grid.object_grid[next[0]-1][next[1]-2][0]!=Grid.Kind.WALL && + grid.object_grid[next[0]-2][next[1]-1][0]!=Grid.Kind.WALL): + adj.append([ROLL, Vector2(next[0],next[1]),2.1]) return adj diff --git a/src/World.tscn b/src/World.tscn index 8c44a70..5d20af8 100644 --- a/src/World.tscn +++ b/src/World.tscn @@ -1,9 +1,10 @@ -[gd_scene load_steps=8 format=2] +[gd_scene load_steps=9 format=2] [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://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/bannane.png" type="Texture" id=5] [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] @@ -47,6 +48,10 @@ position = Vector2( 264, -16 ) [node name="Body" parent="YSort/Bonfire" index="3"] disabled = true +[node name="bannane" type="Sprite" parent="YSort"] +position = Vector2( 104, -24 ) +texture = ExtResource( 5 ) + [node name="Grid" parent="." instance=ExtResource( 18 )] [editable path="YSort/Bonfire"]