From 7ea66f9b836abbd72a0989214240c924fae2129b Mon Sep 17 00:00:00 2001
From: Alan Alexander Cerna <87852561+Kroppec@users.noreply.github.com>
Date: Tue, 16 Nov 2021 18:34:53 +0200
Subject: [PATCH 1/3] [Minimal] Implementation of bots
---
project.godot | 40 +++++-----
.../ts_bot_handlers/ts_bot_handlergd.gd | 74 +++++++++++++++++++
.../ts_bot/TS_bot_sprite_agressive.svg | 1 +
.../ts_bot/TS_bot_sprite_friendly.svg | 1 +
.../ts_bot/TS_bot_sprite_passive.svg | 1 +
.../ts_bot/TS_bot_sprite_weapon_off.svg | 1 +
.../ts_bot/TS_bot_sprite_weapon_on.svg | 1 +
source/entities/grass/grass_node.tscn | 10 +--
source/entities/ts_bot/ts_bot.tscn | 59 +++++++++++++++
source/scenes/GUI/network_setup.tscn | 38 +++++-----
10 files changed, 184 insertions(+), 42 deletions(-)
create mode 100644 source/assets/scripts/ts_bot_handlers/ts_bot_handlergd.gd
create mode 100644 source/assets/sprites/character/ts_bot/TS_bot_sprite_agressive.svg
create mode 100644 source/assets/sprites/character/ts_bot/TS_bot_sprite_friendly.svg
create mode 100644 source/assets/sprites/character/ts_bot/TS_bot_sprite_passive.svg
create mode 100644 source/assets/sprites/character/ts_bot/TS_bot_sprite_weapon_off.svg
create mode 100644 source/assets/sprites/character/ts_bot/TS_bot_sprite_weapon_on.svg
create mode 100644 source/entities/ts_bot/ts_bot.tscn
diff --git a/project.godot b/project.godot
index d7b7d0b..4d4c3db 100644
--- a/project.godot
+++ b/project.godot
@@ -38,42 +38,42 @@ fps=false
input_right={
"deadzone": 0.5,
-"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":68,"unicode":0,"echo":false,"script":null)
-, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"unicode":0,"echo":false,"script":null)
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":68,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
+, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
]
}
input_left={
"deadzone": 0.5,
-"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":65,"unicode":0,"echo":false,"script":null)
-, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"unicode":0,"echo":false,"script":null)
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":65,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
+, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
]
}
input_up={
"deadzone": 0.49,
-"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":87,"unicode":0,"echo":false,"script":null)
-, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"unicode":0,"echo":false,"script":null)
-, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"unicode":0,"echo":false,"script":null)
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":87,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
+, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
+, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
]
}
input_down={
"deadzone": 0.5,
-"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":83,"unicode":0,"echo":false,"script":null)
-, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"unicode":0,"echo":false,"script":null)
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":83,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
+, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
]
}
input_debug={
"deadzone": 0.5,
-"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":96,"unicode":0,"echo":false,"script":null)
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":96,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
]
}
input_enter={
"deadzone": 0.5,
-"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777221,"unicode":0,"echo":false,"script":null)
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777221,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
]
}
input_shift={
"deadzone": 0.5,
-"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777237,"unicode":0,"echo":false,"script":null)
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777237,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
]
}
input_shoot={
@@ -83,42 +83,42 @@ input_shoot={
}
esc={
"deadzone": 0.5,
-"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777217,"unicode":0,"echo":false,"script":null)
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777217,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
]
}
rotation_increase={
"deadzone": 0.5,
-"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":69,"unicode":0,"echo":false,"script":null)
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":69,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
]
}
rotation_decrease={
"deadzone": 0.5,
-"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":81,"unicode":0,"echo":false,"script":null)
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":81,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
]
}
line={
"deadzone": 0.5,
-"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777351,"unicode":0,"echo":false,"script":null)
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777351,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
]
}
sine={
"deadzone": 0.5,
-"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777352,"unicode":0,"echo":false,"script":null)
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777352,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
]
}
hyper={
"deadzone": 0.5,
-"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777353,"unicode":0,"echo":false,"script":null)
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777353,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
]
}
parab={
"deadzone": 0.5,
-"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777354,"unicode":0,"echo":false,"script":null)
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777354,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
]
}
fullscreen_toggle={
"deadzone": 0.5,
-"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777254,"unicode":0,"echo":false,"script":null)
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777254,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
]
}
diff --git a/source/assets/scripts/ts_bot_handlers/ts_bot_handlergd.gd b/source/assets/scripts/ts_bot_handlers/ts_bot_handlergd.gd
new file mode 100644
index 0000000..d0f4976
--- /dev/null
+++ b/source/assets/scripts/ts_bot_handlers/ts_bot_handlergd.gd
@@ -0,0 +1,74 @@
+extends KinematicBody2D
+
+const GRAVITY = 5
+
+var liftSpeed = 0
+var accelerationSpeed = 2
+var deccelerationSpeed = 20
+var maxSpeed = 250
+
+var worldSpace2d = null
+var coreRay = {}
+
+var desiredLocation = Vector2(0,0)
+var movementVector = Vector2(0,0)
+var weightVector = Vector2(0,0)
+var interacting = false
+var interactionRays = []
+var degreeTracker
+
+var startVector = Vector2(0,5)
+var startPosition = Vector2(0,5)
+var maxRay = 65
+var interactionRay = null
+
+var degreeStep = 60
+
+export(int, "Passive", "Friendly", "Agressive") var Mode
+
+func _ready():
+ desiredLocation = position
+ startVector += global_position
+ pass
+
+func _physics_process(delta):
+ get_interaction()
+ if interactionRays[0]["interacted"]:
+ if liftSpeed > 0: liftSpeed = move_toward(liftSpeed, 0, deccelerationSpeed)
+ elif abs(position.y - desiredLocation.y) > 10 and not interacting: liftSpeed -= accelerationSpeed
+ else: liftSpeed += GRAVITY
+ liftSpeed = clamp(liftSpeed, -maxSpeed, maxSpeed)
+ move_and_slide(Vector2(0,liftSpeed))
+ if Mode == 0:
+ $ts_bot_sprite.play("passive_idle")
+ $TsBotSpriteWeaponOn.hide()
+ $TsBotSpriteWeaponOff.show()
+ elif Mode == 1:
+ $ts_bot_sprite.play("friendly_idle")
+ $TsBotSpriteWeaponOn.hide()
+ $TsBotSpriteWeaponOff.show()
+ elif Mode == 2:
+ $ts_bot_sprite.play("agressive_idle")
+ $TsBotSpriteWeaponOn.show()
+ $TsBotSpriteWeaponOff.hide()
+ rotate_weapon(90)
+
+func get_interaction():
+ degreeTracker = 0
+ interactionRays = []
+ worldSpace2d = get_world_2d().direct_space_state
+ interacting = false
+ while degreeTracker < 360 + degreeStep:
+ interactionRay = worldSpace2d.intersect_ray(startVector, Vector2(0,maxRay).rotated(deg2rad(degreeTracker)) + global_position, [self])
+ var interacted = false
+ if "position" in interactionRay:
+ interacted = true
+ interacting = true
+ interactionRays.append({"start": startVector, "end": Vector2(0,maxRay).rotated(deg2rad(degreeTracker)) + global_position, "degrees": degreeTracker,"ray": interactionRay, "interacted": interacted})
+ degreeTracker += degreeStep
+
+func rotate_weapon(degrees):
+ degrees = deg2rad(degrees)
+ $TsBotSpriteWeaponOff.position = Vector2(startPosition.rotated(degrees).x,startPosition.y - startPosition.rotated(degrees).y)
+ print($TsBotSpriteWeaponOff.position)
+ $TsBotSpriteWeaponOff.rotation = degrees
diff --git a/source/assets/sprites/character/ts_bot/TS_bot_sprite_agressive.svg b/source/assets/sprites/character/ts_bot/TS_bot_sprite_agressive.svg
new file mode 100644
index 0000000..f2e700e
--- /dev/null
+++ b/source/assets/sprites/character/ts_bot/TS_bot_sprite_agressive.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/source/assets/sprites/character/ts_bot/TS_bot_sprite_friendly.svg b/source/assets/sprites/character/ts_bot/TS_bot_sprite_friendly.svg
new file mode 100644
index 0000000..61521f2
--- /dev/null
+++ b/source/assets/sprites/character/ts_bot/TS_bot_sprite_friendly.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/source/assets/sprites/character/ts_bot/TS_bot_sprite_passive.svg b/source/assets/sprites/character/ts_bot/TS_bot_sprite_passive.svg
new file mode 100644
index 0000000..be522a9
--- /dev/null
+++ b/source/assets/sprites/character/ts_bot/TS_bot_sprite_passive.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/source/assets/sprites/character/ts_bot/TS_bot_sprite_weapon_off.svg b/source/assets/sprites/character/ts_bot/TS_bot_sprite_weapon_off.svg
new file mode 100644
index 0000000..13ce2cd
--- /dev/null
+++ b/source/assets/sprites/character/ts_bot/TS_bot_sprite_weapon_off.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/source/assets/sprites/character/ts_bot/TS_bot_sprite_weapon_on.svg b/source/assets/sprites/character/ts_bot/TS_bot_sprite_weapon_on.svg
new file mode 100644
index 0000000..0f411e8
--- /dev/null
+++ b/source/assets/sprites/character/ts_bot/TS_bot_sprite_weapon_on.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/source/entities/grass/grass_node.tscn b/source/entities/grass/grass_node.tscn
index 3f34182..1b31f4f 100644
--- a/source/entities/grass/grass_node.tscn
+++ b/source/entities/grass/grass_node.tscn
@@ -49,9 +49,9 @@ animations = [ {
"name": "idle",
"speed": 12.0
}, {
-"frames": [ ExtResource( 38 ), ExtResource( 35 ), ExtResource( 41 ), ExtResource( 37 ), ExtResource( 19 ), ExtResource( 18 ), ExtResource( 40 ) ],
+"frames": [ ExtResource( 17 ), ExtResource( 34 ), ExtResource( 28 ), ExtResource( 26 ), ExtResource( 24 ), ExtResource( 27 ), ExtResource( 36 ) ],
"loop": false,
-"name": "transition_up",
+"name": "transition_down",
"speed": 24.0
}, {
"frames": [ ExtResource( 30 ), ExtResource( 42 ), ExtResource( 16 ), ExtResource( 29 ), ExtResource( 25 ), ExtResource( 31 ), ExtResource( 21 ), ExtResource( 32 ), ExtResource( 39 ), ExtResource( 20 ), ExtResource( 22 ), ExtResource( 23 ), ExtResource( 33 ) ],
@@ -59,9 +59,9 @@ animations = [ {
"name": "idle_down",
"speed": 12.0
}, {
-"frames": [ ExtResource( 17 ), ExtResource( 34 ), ExtResource( 28 ), ExtResource( 26 ), ExtResource( 24 ), ExtResource( 27 ), ExtResource( 36 ) ],
+"frames": [ ExtResource( 38 ), ExtResource( 35 ), ExtResource( 41 ), ExtResource( 37 ), ExtResource( 19 ), ExtResource( 18 ), ExtResource( 40 ) ],
"loop": false,
-"name": "transition_down",
+"name": "transition_up",
"speed": 24.0
} ]
@@ -76,7 +76,7 @@ position = Vector2( -3.36365, 0 )
scale = Vector2( 0.75, 0.75 )
frames = SubResource( 1 )
animation = "idle"
-frame = 7
+frame = 8
playing = true
[node name="trinity_site_level_layout-level_design_z-index_0_grass_type-2" type="Sprite" parent="."]
diff --git a/source/entities/ts_bot/ts_bot.tscn b/source/entities/ts_bot/ts_bot.tscn
new file mode 100644
index 0000000..868ba91
--- /dev/null
+++ b/source/entities/ts_bot/ts_bot.tscn
@@ -0,0 +1,59 @@
+[gd_scene load_steps=10 format=2]
+
+[ext_resource path="res://source/assets/sprites/character/ts_bot/TS_bot_sprite_agressive.svg" type="Texture" id=1]
+[ext_resource path="res://source/assets/scripts/ts_bot_handlers/ts_bot_handlergd.gd" type="Script" id=2]
+[ext_resource path="res://source/assets/sprites/character/ts_bot/TS_bot_sprite_passive.svg" type="Texture" id=3]
+[ext_resource path="res://source/assets/sprites/character/ts_bot/TS_bot_sprite_friendly.svg" type="Texture" id=4]
+[ext_resource path="res://source/assets/sprites/character/ts_bot/TS_bot_sprite_weapon_on.svg" type="Texture" id=5]
+[ext_resource path="res://source/assets/sprites/character/ts_bot/TS_bot_sprite_weapon_off.svg" type="Texture" id=6]
+
+[sub_resource type="CircleShape2D" id=1]
+radius = 30.0
+
+[sub_resource type="CapsuleShape2D" id=2]
+radius = 22.0
+height = 46.0
+
+[sub_resource type="SpriteFrames" id=3]
+animations = [ {
+"frames": [ ExtResource( 1 ) ],
+"loop": true,
+"name": "agressive_idle",
+"speed": 5.0
+}, {
+"frames": [ ExtResource( 4 ) ],
+"loop": true,
+"name": "friendly_idle",
+"speed": 5.0
+}, {
+"frames": [ ExtResource( 3 ) ],
+"loop": true,
+"name": "passive_idle",
+"speed": 5.0
+} ]
+
+[node name="ts_bot" type="KinematicBody2D"]
+script = ExtResource( 2 )
+
+[node name="main_bot_collider" type="CollisionShape2D" parent="."]
+position = Vector2( 0, -8 )
+shape = SubResource( 1 )
+
+[node name="outer_bot_collider" type="CollisionShape2D" parent="."]
+position = Vector2( 0, -8 )
+shape = SubResource( 2 )
+
+[node name="ts_bot_sprite" type="AnimatedSprite" parent="."]
+position = Vector2( 0, 5 )
+scale = Vector2( 0.6, 0.6 )
+frames = SubResource( 3 )
+animation = "passive_idle"
+
+[node name="TsBotSpriteWeaponOn" type="Sprite" parent="."]
+scale = Vector2( 0.6, 0.6 )
+texture = ExtResource( 5 )
+
+[node name="TsBotSpriteWeaponOff" type="Sprite" parent="."]
+position = Vector2( 0, 5 )
+scale = Vector2( 0.6, 0.6 )
+texture = ExtResource( 6 )
diff --git a/source/scenes/GUI/network_setup.tscn b/source/scenes/GUI/network_setup.tscn
index e7cc22c..798e726 100644
--- a/source/scenes/GUI/network_setup.tscn
+++ b/source/scenes/GUI/network_setup.tscn
@@ -1,4 +1,4 @@
-[gd_scene load_steps=22 format=2]
+[gd_scene load_steps=23 format=2]
[ext_resource path="res://source/assets/scripts/server_handlers/network_processors/network_setup.gd" type="Script" id=1]
[ext_resource path="res://source/fonts/oxygen/Oxygen-Regular.ttf" type="DynamicFontData" id=2]
@@ -14,6 +14,7 @@
[ext_resource path="res://source/assets/sprites/GUI/background_lobby.svg" type="Texture" id=12]
[ext_resource path="res://source/scenes/OVERLAY/elements/wall.tscn" type="PackedScene" id=13]
[ext_resource path="res://source/assets/sprites/GUI/in_game/buttons/server_title.svg" type="Texture" id=14]
+[ext_resource path="res://source/entities/ts_bot/ts_bot.tscn" type="PackedScene" id=15]
[sub_resource type="DynamicFont" id=1]
size = 36
@@ -21,16 +22,16 @@ use_mipmaps = true
use_filter = true
font_data = ExtResource( 2 )
+[sub_resource type="DynamicFont" id=4]
+size = 36
+use_mipmaps = true
+use_filter = true
+font_data = ExtResource( 2 )
+
[sub_resource type="StyleBoxEmpty" id=2]
[sub_resource type="StyleBoxEmpty" id=3]
-[sub_resource type="DynamicFont" id=4]
-size = 36
-use_mipmaps = true
-use_filter = true
-font_data = ExtResource( 2 )
-
[sub_resource type="DynamicFont" id=5]
size = 36
use_mipmaps = true
@@ -94,8 +95,8 @@ margin_left = -150.0
margin_top = -36.0
margin_right = 150.0
margin_bottom = 36.0
-custom_fonts/font = ExtResource( 8 )
custom_colors/font_color = Color( 0, 0, 0, 1 )
+custom_fonts/font = ExtResource( 8 )
text = "CREATE SERVER"
align = 1
valign = 1
@@ -118,8 +119,8 @@ anchor_bottom = 0.5
margin_left = -233.0
margin_top = -36.0
margin_bottom = 36.0
-custom_fonts/font = ExtResource( 8 )
custom_colors/font_color = Color( 0, 0, 0, 1 )
+custom_fonts/font = ExtResource( 8 )
text = "JOIN SERVER"
align = 1
valign = 1
@@ -154,8 +155,8 @@ margin_left = -150.0
margin_top = -36.0
margin_right = 150.0
margin_bottom = 36.0
-custom_fonts/font = ExtResource( 8 )
custom_colors/font_color = Color( 0, 0, 0, 1 )
+custom_fonts/font = ExtResource( 8 )
text = "RETURN"
align = 1
valign = 1
@@ -186,8 +187,8 @@ margin_left = -225.0
margin_top = -25.0
margin_right = -225.0
margin_bottom = -25.0
-custom_fonts/font = SubResource( 1 )
custom_colors/font_color = Color( 0, 0, 0, 1 )
+custom_fonts/font = SubResource( 1 )
text = "Enter your username"
align = 1
valign = 1
@@ -218,10 +219,10 @@ margin_left = -175.0
margin_top = -28.0
margin_right = 175.0
margin_bottom = 28.0
+custom_colors/selection_color = Color( 0.8, 0.8, 0.8, 1 )
+custom_fonts/font = SubResource( 4 )
custom_styles/focus = SubResource( 2 )
custom_styles/normal = SubResource( 3 )
-custom_fonts/font = SubResource( 4 )
-custom_colors/selection_color = Color( 0.8, 0.8, 0.8, 1 )
align = 1
placeholder_text = "username"
__meta__ = {
@@ -242,8 +243,8 @@ margin_bottom = 97.0
[node name="Label" type="Label" parent="multiplayer_configure/popup_screen/panel/confirm"]
anchor_right = 1.0
anchor_bottom = 1.0
-custom_fonts/font = SubResource( 5 )
custom_colors/font_color = Color( 0, 0, 0, 1 )
+custom_fonts/font = SubResource( 5 )
text = "CONFIRM"
align = 1
valign = 1
@@ -304,8 +305,8 @@ margin_left = -74.5
margin_top = -32.0
margin_right = 74.5
margin_bottom = 32.0
-custom_fonts/font = ExtResource( 10 )
custom_colors/font_color = Color( 0, 0, 0, 1 )
+custom_fonts/font = ExtResource( 10 )
text = "START"
align = 1
valign = 1
@@ -324,8 +325,8 @@ margin_left = 621.0
margin_top = 464.0
margin_right = 1259.0
margin_bottom = 576.0
-custom_fonts/font = SubResource( 6 )
custom_colors/font_color = Color( 0.439216, 0.666667, 1, 0.27451 )
+custom_fonts/font = SubResource( 6 )
align = 1
valign = 1
__meta__ = {
@@ -343,8 +344,8 @@ margin_left = 823.5
margin_top = 580.0
margin_right = 1056.5
margin_bottom = 609.0
-custom_fonts/font = SubResource( 7 )
custom_colors/font_color = Color( 0.439216, 0.666667, 1, 0.27451 )
+custom_fonts/font = SubResource( 7 )
text = "WAITING FOR PLAYERS"
align = 1
valign = 1
@@ -371,6 +372,9 @@ position = Vector2( 1152, 860 )
[node name="4" type="Position2D" parent="spawn_locations"]
position = Vector2( 1536, 860 )
+[node name="ts_bot" parent="." instance=ExtResource( 15 )]
+position = Vector2( 825, 257 )
+
[connection signal="pressed" from="multiplayer_configure/controls/create_server" to="." method="_on_create_server_pressed"]
[connection signal="pressed" from="multiplayer_configure/controls/join_server" to="." method="_on_join_server_pressed"]
[connection signal="pressed" from="multiplayer_configure/controls/return" to="." method="_on_return_pressed"]
From bf4cc0c9cd5dbe09dafcdbd305d420bd8634647b Mon Sep 17 00:00:00 2001
From: Alan Alexander Cerna <87852561+Kroppec@users.noreply.github.com>
Date: Wed, 17 Nov 2021 21:12:06 +0200
Subject: [PATCH 2/3] [Medium] Partial implementation of TS-BOTs
---
.../ts_bot_handlers/ts_bot_handlergd.gd | 24 +++--
.../ts_bot/TS_bot_sprite_weapon_off.svg | 40 +++++++-
.../ts_bot/TS_bot_sprite_weapon_on.svg | 40 +++++++-
source/entities/player/player_node.tscn | 95 +++++++++----------
.../shooting/Line_Trajectory/Line_Bullet.tscn | 8 +-
source/entities/ts_bot/ts_bot.tscn | 21 ++--
.../trinity_site_level_playground.tscn | 18 +++-
source/scenes/GUI/main_menu.tscn | 6 +-
source/scenes/GUI/network_setup.tscn | 6 +-
source/scenes/GUI/singleplayer_setup.tscn | 16 ++--
10 files changed, 181 insertions(+), 93 deletions(-)
diff --git a/source/assets/scripts/ts_bot_handlers/ts_bot_handlergd.gd b/source/assets/scripts/ts_bot_handlers/ts_bot_handlergd.gd
index d0f4976..227b56d 100644
--- a/source/assets/scripts/ts_bot_handlers/ts_bot_handlergd.gd
+++ b/source/assets/scripts/ts_bot_handlers/ts_bot_handlergd.gd
@@ -23,6 +23,10 @@ var maxRay = 65
var interactionRay = null
var degreeStep = 60
+var fireRate = 12
+var time = 0
+var rotationAmount = 0
+var rand_generate = RandomNumberGenerator.new()
export(int, "Passive", "Friendly", "Agressive") var Mode
@@ -32,6 +36,8 @@ func _ready():
pass
func _physics_process(delta):
+ time += delta#
+ rand_generate.randomize()
get_interaction()
if interactionRays[0]["interacted"]:
if liftSpeed > 0: liftSpeed = move_toward(liftSpeed, 0, deccelerationSpeed)
@@ -42,7 +48,7 @@ func _physics_process(delta):
if Mode == 0:
$ts_bot_sprite.play("passive_idle")
$TsBotSpriteWeaponOn.hide()
- $TsBotSpriteWeaponOff.show()
+ $TsBotSpriteWeaponOff.hide()
elif Mode == 1:
$ts_bot_sprite.play("friendly_idle")
$TsBotSpriteWeaponOn.hide()
@@ -51,9 +57,14 @@ func _physics_process(delta):
$ts_bot_sprite.play("agressive_idle")
$TsBotSpriteWeaponOn.show()
$TsBotSpriteWeaponOff.hide()
- rotate_weapon(90)
+ if time > 60 / fireRate and Mode >= 1:
+ rotationAmount = rand_generate.randi_range(1,36)
+ $TsBotSpriteWeaponOff.rotation = 360/rotationAmount
+ $TsBotSpriteWeaponOn.rotation = 360/rotationAmount
+ time = 0
func get_interaction():
+ print(interacting)
degreeTracker = 0
interactionRays = []
worldSpace2d = get_world_2d().direct_space_state
@@ -61,14 +72,9 @@ func get_interaction():
while degreeTracker < 360 + degreeStep:
interactionRay = worldSpace2d.intersect_ray(startVector, Vector2(0,maxRay).rotated(deg2rad(degreeTracker)) + global_position, [self])
var interacted = false
- if "position" in interactionRay:
+ if "position" in interactionRay:
interacted = true
+ Mode += 1
interacting = true
interactionRays.append({"start": startVector, "end": Vector2(0,maxRay).rotated(deg2rad(degreeTracker)) + global_position, "degrees": degreeTracker,"ray": interactionRay, "interacted": interacted})
degreeTracker += degreeStep
-
-func rotate_weapon(degrees):
- degrees = deg2rad(degrees)
- $TsBotSpriteWeaponOff.position = Vector2(startPosition.rotated(degrees).x,startPosition.y - startPosition.rotated(degrees).y)
- print($TsBotSpriteWeaponOff.position)
- $TsBotSpriteWeaponOff.rotation = degrees
diff --git a/source/assets/sprites/character/ts_bot/TS_bot_sprite_weapon_off.svg b/source/assets/sprites/character/ts_bot/TS_bot_sprite_weapon_off.svg
index 13ce2cd..362016a 100644
--- a/source/assets/sprites/character/ts_bot/TS_bot_sprite_weapon_off.svg
+++ b/source/assets/sprites/character/ts_bot/TS_bot_sprite_weapon_off.svg
@@ -1 +1,39 @@
-
\ No newline at end of file
+
diff --git a/source/assets/sprites/character/ts_bot/TS_bot_sprite_weapon_on.svg b/source/assets/sprites/character/ts_bot/TS_bot_sprite_weapon_on.svg
index 0f411e8..6c582df 100644
--- a/source/assets/sprites/character/ts_bot/TS_bot_sprite_weapon_on.svg
+++ b/source/assets/sprites/character/ts_bot/TS_bot_sprite_weapon_on.svg
@@ -1 +1,39 @@
-
\ No newline at end of file
+
diff --git a/source/entities/player/player_node.tscn b/source/entities/player/player_node.tscn
index 2cfb03f..3a1a9be 100644
--- a/source/entities/player/player_node.tscn
+++ b/source/entities/player/player_node.tscn
@@ -174,54 +174,34 @@
[sub_resource type="SpriteFrames" id=2]
animations = [ {
-"frames": [ ExtResource( 48 ), ExtResource( 4 ), ExtResource( 3 ), ExtResource( 46 ), ExtResource( 47 ), ExtResource( 32 ), ExtResource( 13 ), ExtResource( 40 ), ExtResource( 6 ), ExtResource( 15 ), ExtResource( 22 ), ExtResource( 14 ), ExtResource( 9 ), ExtResource( 37 ), ExtResource( 23 ), ExtResource( 39 ), ExtResource( 20 ), ExtResource( 18 ), ExtResource( 7 ), ExtResource( 34 ) ],
-"loop": true,
-"name": "boost-speed-left-01",
-"speed": 50.0
-}, {
-"frames": [ ExtResource( 48 ), ExtResource( 4 ), ExtResource( 3 ), ExtResource( 46 ), ExtResource( 47 ), ExtResource( 32 ), ExtResource( 13 ), ExtResource( 40 ), ExtResource( 6 ), ExtResource( 15 ), ExtResource( 22 ), ExtResource( 14 ), ExtResource( 9 ), ExtResource( 37 ), ExtResource( 23 ), ExtResource( 39 ), ExtResource( 20 ), ExtResource( 18 ), ExtResource( 7 ), ExtResource( 34 ) ],
-"loop": true,
-"name": "idle-speed-left-01",
-"speed": 25.0
-}, {
-"frames": [ ExtResource( 99 ), ExtResource( 83 ), ExtResource( 109 ), ExtResource( 111 ), ExtResource( 101 ), ExtResource( 96 ), ExtResource( 79 ), ExtResource( 132 ), ExtResource( 119 ), ExtResource( 80 ), ExtResource( 85 ), ExtResource( 86 ), ExtResource( 87 ), ExtResource( 106 ), ExtResource( 121 ), ExtResource( 129 ), ExtResource( 100 ), ExtResource( 108 ), ExtResource( 110 ), ExtResource( 120 ) ],
-"loop": true,
-"name": "move-speed-right-04",
-"speed": 35.0
-}, {
-"frames": [ ExtResource( 5 ), ExtResource( 42 ), ExtResource( 35 ), ExtResource( 24 ), ExtResource( 8 ), ExtResource( 31 ), ExtResource( 30 ), ExtResource( 38 ), ExtResource( 10 ), ExtResource( 43 ), ExtResource( 41 ), ExtResource( 33 ), ExtResource( 44 ), ExtResource( 19 ), ExtResource( 29 ), ExtResource( 25 ), ExtResource( 36 ), ExtResource( 12 ), ExtResource( 45 ), ExtResource( 21 ) ],
-"loop": true,
-"name": "boost-speed-right-01",
-"speed": 50.0
-}, {
"frames": [ ExtResource( 99 ), ExtResource( 83 ), ExtResource( 109 ), ExtResource( 111 ), ExtResource( 101 ), ExtResource( 96 ), ExtResource( 79 ), ExtResource( 132 ), ExtResource( 119 ), ExtResource( 80 ), ExtResource( 85 ), ExtResource( 86 ), ExtResource( 87 ), ExtResource( 106 ), ExtResource( 121 ), ExtResource( 129 ), ExtResource( 100 ), ExtResource( 108 ), ExtResource( 110 ), ExtResource( 120 ) ],
"loop": true,
"name": "idle-speed-right-04",
"speed": 25.0
}, {
-"frames": [ ExtResource( 5 ), ExtResource( 42 ), ExtResource( 35 ), ExtResource( 24 ), ExtResource( 8 ), ExtResource( 31 ), ExtResource( 30 ), ExtResource( 38 ), ExtResource( 10 ), ExtResource( 43 ), ExtResource( 41 ), ExtResource( 33 ), ExtResource( 44 ), ExtResource( 19 ), ExtResource( 29 ), ExtResource( 25 ), ExtResource( 36 ), ExtResource( 12 ), ExtResource( 45 ), ExtResource( 21 ) ],
-"loop": true,
-"name": "idle-speed-right-02",
-"speed": 25.0
-}, {
"frames": [ ExtResource( 99 ), ExtResource( 83 ), ExtResource( 109 ), ExtResource( 111 ), ExtResource( 101 ), ExtResource( 96 ), ExtResource( 79 ), ExtResource( 132 ), ExtResource( 119 ), ExtResource( 80 ), ExtResource( 85 ), ExtResource( 86 ), ExtResource( 87 ), ExtResource( 106 ), ExtResource( 121 ), ExtResource( 129 ), ExtResource( 100 ), ExtResource( 108 ), ExtResource( 110 ), ExtResource( 120 ) ],
"loop": true,
"name": "boost-speed-right-04",
"speed": 50.0
}, {
-"frames": [ ExtResource( 70 ), ExtResource( 49 ), ExtResource( 74 ), ExtResource( 75 ), ExtResource( 28 ), ExtResource( 52 ), ExtResource( 53 ), ExtResource( 55 ), ExtResource( 150 ), ExtResource( 156 ), ExtResource( 138 ), ExtResource( 161 ), ExtResource( 145 ), ExtResource( 148 ), ExtResource( 147 ), ExtResource( 133 ), ExtResource( 164 ), ExtResource( 134 ), ExtResource( 152 ), ExtResource( 160 ) ],
+"frames": [ ExtResource( 99 ), ExtResource( 83 ), ExtResource( 109 ), ExtResource( 111 ), ExtResource( 101 ), ExtResource( 96 ), ExtResource( 79 ), ExtResource( 132 ), ExtResource( 119 ), ExtResource( 80 ), ExtResource( 85 ), ExtResource( 86 ), ExtResource( 87 ), ExtResource( 106 ), ExtResource( 121 ), ExtResource( 129 ), ExtResource( 100 ), ExtResource( 108 ), ExtResource( 110 ), ExtResource( 120 ) ],
"loop": true,
-"name": "move-speed-left-03",
+"name": "move-speed-right-04",
"speed": 35.0
}, {
-"frames": [ ExtResource( 114 ), ExtResource( 128 ), ExtResource( 93 ), ExtResource( 107 ), ExtResource( 117 ), ExtResource( 102 ), ExtResource( 81 ), ExtResource( 118 ), ExtResource( 76 ), ExtResource( 115 ), ExtResource( 127 ), ExtResource( 123 ), ExtResource( 113 ), ExtResource( 77 ), ExtResource( 78 ), ExtResource( 124 ), ExtResource( 94 ), ExtResource( 112 ), ExtResource( 131 ), ExtResource( 95 ) ],
+"frames": [ ExtResource( 48 ), ExtResource( 4 ), ExtResource( 3 ), ExtResource( 46 ), ExtResource( 47 ), ExtResource( 32 ), ExtResource( 13 ), ExtResource( 40 ), ExtResource( 6 ), ExtResource( 15 ), ExtResource( 22 ), ExtResource( 14 ), ExtResource( 9 ), ExtResource( 37 ), ExtResource( 23 ), ExtResource( 39 ), ExtResource( 20 ), ExtResource( 18 ), ExtResource( 7 ), ExtResource( 34 ) ],
"loop": true,
-"name": "move-speed-right-03",
-"speed": 35.0
+"name": "idle-speed-left-01",
+"speed": 25.0
}, {
"frames": [ ExtResource( 5 ), ExtResource( 42 ), ExtResource( 35 ), ExtResource( 24 ), ExtResource( 8 ), ExtResource( 31 ), ExtResource( 30 ), ExtResource( 38 ), ExtResource( 10 ), ExtResource( 43 ), ExtResource( 41 ), ExtResource( 33 ), ExtResource( 44 ), ExtResource( 19 ), ExtResource( 29 ), ExtResource( 25 ), ExtResource( 36 ), ExtResource( 12 ), ExtResource( 45 ), ExtResource( 21 ) ],
"loop": true,
-"name": "move-speed-right-01",
+"name": "idle-speed-right-02",
+"speed": 25.0
+}, {
+"frames": [ ExtResource( 70 ), ExtResource( 49 ), ExtResource( 74 ), ExtResource( 75 ), ExtResource( 28 ), ExtResource( 52 ), ExtResource( 53 ), ExtResource( 55 ), ExtResource( 150 ), ExtResource( 156 ), ExtResource( 138 ), ExtResource( 161 ), ExtResource( 145 ), ExtResource( 148 ), ExtResource( 147 ), ExtResource( 133 ), ExtResource( 164 ), ExtResource( 134 ), ExtResource( 152 ), ExtResource( 160 ) ],
+"loop": true,
+"name": "move-speed-left-03",
"speed": 35.0
}, {
"frames": [ ExtResource( 167 ), ExtResource( 157 ), ExtResource( 158 ), ExtResource( 126 ), ExtResource( 90 ), ExtResource( 89 ), ExtResource( 97 ), ExtResource( 88 ), ExtResource( 98 ), ExtResource( 91 ), ExtResource( 125 ), ExtResource( 105 ), ExtResource( 82 ), ExtResource( 84 ), ExtResource( 92 ), ExtResource( 103 ), ExtResource( 122 ), ExtResource( 130 ), ExtResource( 104 ), ExtResource( 116 ) ],
@@ -229,9 +209,9 @@ animations = [ {
"name": "boost-speed-right-02",
"speed": 50.0
}, {
-"frames": [ ExtResource( 73 ), ExtResource( 57 ), ExtResource( 65 ), ExtResource( 64 ), ExtResource( 54 ), ExtResource( 71 ), ExtResource( 58 ), ExtResource( 66 ), ExtResource( 62 ), ExtResource( 59 ), ExtResource( 56 ), ExtResource( 60 ), ExtResource( 63 ), ExtResource( 50 ), ExtResource( 61 ), ExtResource( 67 ), ExtResource( 72 ), ExtResource( 51 ), ExtResource( 68 ), ExtResource( 69 ) ],
+"frames": [ ExtResource( 5 ), ExtResource( 42 ), ExtResource( 35 ), ExtResource( 24 ), ExtResource( 8 ), ExtResource( 31 ), ExtResource( 30 ), ExtResource( 38 ), ExtResource( 10 ), ExtResource( 43 ), ExtResource( 41 ), ExtResource( 33 ), ExtResource( 44 ), ExtResource( 19 ), ExtResource( 29 ), ExtResource( 25 ), ExtResource( 36 ), ExtResource( 12 ), ExtResource( 45 ), ExtResource( 21 ) ],
"loop": true,
-"name": "move-speed-left-02",
+"name": "move-speed-right-01",
"speed": 35.0
}, {
"frames": [ ExtResource( 162 ), ExtResource( 135 ), ExtResource( 146 ), ExtResource( 141 ), ExtResource( 143 ), ExtResource( 163 ), ExtResource( 149 ), ExtResource( 136 ), ExtResource( 154 ), ExtResource( 137 ), ExtResource( 165 ), ExtResource( 142 ), ExtResource( 139 ), ExtResource( 159 ), ExtResource( 140 ), ExtResource( 155 ), ExtResource( 144 ), ExtResource( 151 ), ExtResource( 153 ), ExtResource( 166 ) ],
@@ -239,19 +219,14 @@ animations = [ {
"name": "move-speed-left-04",
"speed": 35.0
}, {
-"frames": [ ExtResource( 70 ), ExtResource( 49 ), ExtResource( 74 ), ExtResource( 75 ), ExtResource( 28 ), ExtResource( 52 ), ExtResource( 53 ), ExtResource( 55 ), ExtResource( 150 ), ExtResource( 156 ), ExtResource( 138 ), ExtResource( 161 ), ExtResource( 145 ), ExtResource( 148 ), ExtResource( 147 ), ExtResource( 133 ), ExtResource( 164 ), ExtResource( 134 ), ExtResource( 152 ), ExtResource( 160 ) ],
-"loop": true,
-"name": "boost-speed-left-03",
-"speed": 50.0
-}, {
"frames": [ ExtResource( 162 ), ExtResource( 135 ), ExtResource( 146 ), ExtResource( 141 ), ExtResource( 143 ), ExtResource( 163 ), ExtResource( 149 ), ExtResource( 136 ), ExtResource( 154 ), ExtResource( 137 ), ExtResource( 165 ), ExtResource( 142 ), ExtResource( 139 ), ExtResource( 159 ), ExtResource( 140 ), ExtResource( 155 ), ExtResource( 144 ), ExtResource( 151 ), ExtResource( 153 ), ExtResource( 166 ) ],
"loop": true,
"name": "idle-speed-left-04",
"speed": 25.0
}, {
-"frames": [ ExtResource( 162 ), ExtResource( 135 ), ExtResource( 146 ), ExtResource( 141 ), ExtResource( 143 ), ExtResource( 163 ), ExtResource( 149 ), ExtResource( 136 ), ExtResource( 154 ), ExtResource( 137 ), ExtResource( 165 ), ExtResource( 142 ), ExtResource( 139 ), ExtResource( 159 ), ExtResource( 140 ), ExtResource( 155 ), ExtResource( 144 ), ExtResource( 151 ), ExtResource( 153 ), ExtResource( 166 ) ],
+"frames": [ ExtResource( 5 ), ExtResource( 42 ), ExtResource( 35 ), ExtResource( 24 ), ExtResource( 8 ), ExtResource( 31 ), ExtResource( 30 ), ExtResource( 38 ), ExtResource( 10 ), ExtResource( 43 ), ExtResource( 41 ), ExtResource( 33 ), ExtResource( 44 ), ExtResource( 19 ), ExtResource( 29 ), ExtResource( 25 ), ExtResource( 36 ), ExtResource( 12 ), ExtResource( 45 ), ExtResource( 21 ) ],
"loop": true,
-"name": "boost-speed-left-04",
+"name": "boost-speed-right-01",
"speed": 50.0
}, {
"frames": [ ExtResource( 114 ), ExtResource( 128 ), ExtResource( 93 ), ExtResource( 107 ), ExtResource( 117 ), ExtResource( 102 ), ExtResource( 81 ), ExtResource( 118 ), ExtResource( 76 ), ExtResource( 115 ), ExtResource( 127 ), ExtResource( 123 ), ExtResource( 113 ), ExtResource( 77 ), ExtResource( 78 ), ExtResource( 124 ), ExtResource( 94 ), ExtResource( 112 ), ExtResource( 131 ), ExtResource( 95 ) ],
@@ -259,6 +234,11 @@ animations = [ {
"name": "boost-speed-right-03",
"speed": 50.0
}, {
+"frames": [ ExtResource( 70 ), ExtResource( 49 ), ExtResource( 74 ), ExtResource( 75 ), ExtResource( 28 ), ExtResource( 52 ), ExtResource( 53 ), ExtResource( 55 ), ExtResource( 150 ), ExtResource( 156 ), ExtResource( 138 ), ExtResource( 161 ), ExtResource( 145 ), ExtResource( 148 ), ExtResource( 147 ), ExtResource( 133 ), ExtResource( 164 ), ExtResource( 134 ), ExtResource( 152 ), ExtResource( 160 ) ],
+"loop": true,
+"name": "boost-speed-left-03",
+"speed": 50.0
+}, {
"frames": [ ExtResource( 167 ), ExtResource( 157 ), ExtResource( 158 ), ExtResource( 126 ), ExtResource( 90 ), ExtResource( 89 ), ExtResource( 97 ), ExtResource( 88 ), ExtResource( 98 ), ExtResource( 91 ), ExtResource( 125 ), ExtResource( 105 ), ExtResource( 82 ), ExtResource( 84 ), ExtResource( 92 ), ExtResource( 103 ), ExtResource( 122 ), ExtResource( 130 ), ExtResource( 104 ), ExtResource( 116 ) ],
"loop": true,
"name": "move-speed-right-02",
@@ -268,6 +248,26 @@ animations = [ {
"loop": true,
"name": "move-speed-left-01",
"speed": 35.0
+}, {
+"frames": [ ExtResource( 48 ), ExtResource( 4 ), ExtResource( 3 ), ExtResource( 46 ), ExtResource( 47 ), ExtResource( 32 ), ExtResource( 13 ), ExtResource( 40 ), ExtResource( 6 ), ExtResource( 15 ), ExtResource( 22 ), ExtResource( 14 ), ExtResource( 9 ), ExtResource( 37 ), ExtResource( 23 ), ExtResource( 39 ), ExtResource( 20 ), ExtResource( 18 ), ExtResource( 7 ), ExtResource( 34 ) ],
+"loop": true,
+"name": "boost-speed-left-01",
+"speed": 50.0
+}, {
+"frames": [ ExtResource( 114 ), ExtResource( 128 ), ExtResource( 93 ), ExtResource( 107 ), ExtResource( 117 ), ExtResource( 102 ), ExtResource( 81 ), ExtResource( 118 ), ExtResource( 76 ), ExtResource( 115 ), ExtResource( 127 ), ExtResource( 123 ), ExtResource( 113 ), ExtResource( 77 ), ExtResource( 78 ), ExtResource( 124 ), ExtResource( 94 ), ExtResource( 112 ), ExtResource( 131 ), ExtResource( 95 ) ],
+"loop": true,
+"name": "move-speed-right-03",
+"speed": 35.0
+}, {
+"frames": [ ExtResource( 73 ), ExtResource( 57 ), ExtResource( 65 ), ExtResource( 64 ), ExtResource( 54 ), ExtResource( 71 ), ExtResource( 58 ), ExtResource( 66 ), ExtResource( 62 ), ExtResource( 59 ), ExtResource( 56 ), ExtResource( 60 ), ExtResource( 63 ), ExtResource( 50 ), ExtResource( 61 ), ExtResource( 67 ), ExtResource( 72 ), ExtResource( 51 ), ExtResource( 68 ), ExtResource( 69 ) ],
+"loop": true,
+"name": "move-speed-left-02",
+"speed": 35.0
+}, {
+"frames": [ ExtResource( 162 ), ExtResource( 135 ), ExtResource( 146 ), ExtResource( 141 ), ExtResource( 143 ), ExtResource( 163 ), ExtResource( 149 ), ExtResource( 136 ), ExtResource( 154 ), ExtResource( 137 ), ExtResource( 165 ), ExtResource( 142 ), ExtResource( 139 ), ExtResource( 159 ), ExtResource( 140 ), ExtResource( 155 ), ExtResource( 144 ), ExtResource( 151 ), ExtResource( 153 ), ExtResource( 166 ) ],
+"loop": true,
+"name": "boost-speed-left-04",
+"speed": 50.0
} ]
[sub_resource type="RectangleShape2D" id=3]
@@ -303,11 +303,6 @@ animations = [ {
"name": "02",
"speed": 5.0
}, {
-"frames": [ ExtResource( 27 ) ],
-"loop": true,
-"name": "01",
-"speed": 5.0
-}, {
"frames": [ ExtResource( 170 ) ],
"loop": true,
"name": "03",
@@ -317,12 +312,14 @@ animations = [ {
"loop": true,
"name": "04",
"speed": 5.0
+}, {
+"frames": [ ExtResource( 27 ) ],
+"loop": true,
+"name": "01",
+"speed": 5.0
} ]
-[node name="player" type="KinematicBody2D" groups=[
-"Net",
-"Player",
-]]
+[node name="player" type="KinematicBody2D" groups=["Net", "Player"]]
script = ExtResource( 11 )
[node name="player_collider" type="CollisionShape2D" parent="."]
diff --git a/source/entities/shooting/Line_Trajectory/Line_Bullet.tscn b/source/entities/shooting/Line_Trajectory/Line_Bullet.tscn
index 9675fcd..76383e2 100644
--- a/source/entities/shooting/Line_Trajectory/Line_Bullet.tscn
+++ b/source/entities/shooting/Line_Trajectory/Line_Bullet.tscn
@@ -7,15 +7,11 @@
radius = 9.85811
height = 35.0082
-[node name="player_character_bullet" type="Sprite" groups=[
-"Net",
-]]
+[node name="player_character_bullet" type="Sprite" groups=["Net"]]
texture = ExtResource( 1 )
script = ExtResource( 2 )
-[node name="hitbox" type="Area2D" parent="." groups=[
-"Player_damager",
-]]
+[node name="hitbox" type="Area2D" parent="." groups=["Player_damager"]]
[node name="CollisionShape2D" type="CollisionShape2D" parent="hitbox"]
position = Vector2( 10.8253, -0.381073 )
diff --git a/source/entities/ts_bot/ts_bot.tscn b/source/entities/ts_bot/ts_bot.tscn
index 868ba91..be4b0e5 100644
--- a/source/entities/ts_bot/ts_bot.tscn
+++ b/source/entities/ts_bot/ts_bot.tscn
@@ -21,15 +21,15 @@ animations = [ {
"name": "agressive_idle",
"speed": 5.0
}, {
-"frames": [ ExtResource( 4 ) ],
-"loop": true,
-"name": "friendly_idle",
-"speed": 5.0
-}, {
"frames": [ ExtResource( 3 ) ],
"loop": true,
"name": "passive_idle",
"speed": 5.0
+}, {
+"frames": [ ExtResource( 4 ) ],
+"loop": true,
+"name": "friendly_idle",
+"speed": 5.0
} ]
[node name="ts_bot" type="KinematicBody2D"]
@@ -49,11 +49,12 @@ scale = Vector2( 0.6, 0.6 )
frames = SubResource( 3 )
animation = "passive_idle"
-[node name="TsBotSpriteWeaponOn" type="Sprite" parent="."]
-scale = Vector2( 0.6, 0.6 )
-texture = ExtResource( 5 )
-
[node name="TsBotSpriteWeaponOff" type="Sprite" parent="."]
-position = Vector2( 0, 5 )
+position = Vector2( 0, -8 )
scale = Vector2( 0.6, 0.6 )
texture = ExtResource( 6 )
+
+[node name="TsBotSpriteWeaponOn" type="Sprite" parent="."]
+position = Vector2( 0, -8 )
+scale = Vector2( 0.6, 0.6 )
+texture = ExtResource( 5 )
diff --git a/source/levels/trinity_site/trinity_site_level_playground.tscn b/source/levels/trinity_site/trinity_site_level_playground.tscn
index 7c94635..0e6b765 100644
--- a/source/levels/trinity_site/trinity_site_level_playground.tscn
+++ b/source/levels/trinity_site/trinity_site_level_playground.tscn
@@ -1,8 +1,9 @@
-[gd_scene load_steps=12 format=2]
+[gd_scene load_steps=13 format=2]
[ext_resource path="res://source/assets/scripts/server_handlers/trinity_site_level_playground.gd" type="Script" id=1]
[ext_resource path="res://source/assets/scripts/ui_element_handlers/UI.gd" type="Script" id=2]
[ext_resource path="res://source/levels/trinity_site/images/trinity_site_level_layout_level_design_z_index_0.svg" type="Texture" id=3]
+[ext_resource path="res://source/entities/ts_bot/ts_bot.tscn" type="PackedScene" id=4]
[ext_resource path="res://source/levels/trinity_site/images/trinity_site_level_layout_level_design_z_index_4.svg" type="Texture" id=7]
[ext_resource path="res://source/levels/trinity_site/images/trinity_site_level_layout_level_design_z_index_3.svg" type="Texture" id=8]
[ext_resource path="res://source/entities/grass/grass_node.tscn" type="PackedScene" id=9]
@@ -217,3 +218,18 @@ text = "Hyperbola"
__meta__ = {
"_edit_use_anchors_": false
}
+
+[node name="ts_bot" parent="." instance=ExtResource( 4 )]
+position = Vector2( 237, 584 )
+
+[node name="ts_bot2" parent="." instance=ExtResource( 4 )]
+position = Vector2( 521, 422 )
+
+[node name="ts_bot3" parent="." instance=ExtResource( 4 )]
+position = Vector2( 1356, 360 )
+
+[node name="ts_bot4" parent="." instance=ExtResource( 4 )]
+position = Vector2( 1518, 550 )
+
+[node name="ts_bot5" parent="." instance=ExtResource( 4 )]
+position = Vector2( 581, 720 )
diff --git a/source/scenes/GUI/main_menu.tscn b/source/scenes/GUI/main_menu.tscn
index 308c53f..c298a45 100644
--- a/source/scenes/GUI/main_menu.tscn
+++ b/source/scenes/GUI/main_menu.tscn
@@ -54,8 +54,8 @@ margin_left = -150.0
margin_top = -36.0
margin_right = 150.0
margin_bottom = 36.0
-custom_fonts/font = ExtResource( 5 )
custom_colors/font_color = Color( 0, 0, 0, 1 )
+custom_fonts/font = ExtResource( 5 )
text = "PLAY"
align = 1
valign = 1
@@ -79,8 +79,8 @@ margin_left = -98.8223
margin_top = -36.0
margin_right = 134.178
margin_bottom = 36.0
-custom_fonts/font = ExtResource( 5 )
custom_colors/font_color = Color( 0, 0, 0, 1 )
+custom_fonts/font = ExtResource( 5 )
text = "LAN Party"
align = 1
valign = 1
@@ -111,8 +111,8 @@ margin_left = -150.0
margin_top = -36.0
margin_right = 150.0
margin_bottom = 36.0
-custom_fonts/font = ExtResource( 5 )
custom_colors/font_color = Color( 0, 0, 0, 1 )
+custom_fonts/font = ExtResource( 5 )
text = "EXIT"
align = 1
valign = 1
diff --git a/source/scenes/GUI/network_setup.tscn b/source/scenes/GUI/network_setup.tscn
index 798e726..db3131b 100644
--- a/source/scenes/GUI/network_setup.tscn
+++ b/source/scenes/GUI/network_setup.tscn
@@ -1,4 +1,4 @@
-[gd_scene load_steps=23 format=2]
+[gd_scene load_steps=22 format=2]
[ext_resource path="res://source/assets/scripts/server_handlers/network_processors/network_setup.gd" type="Script" id=1]
[ext_resource path="res://source/fonts/oxygen/Oxygen-Regular.ttf" type="DynamicFontData" id=2]
@@ -14,7 +14,6 @@
[ext_resource path="res://source/assets/sprites/GUI/background_lobby.svg" type="Texture" id=12]
[ext_resource path="res://source/scenes/OVERLAY/elements/wall.tscn" type="PackedScene" id=13]
[ext_resource path="res://source/assets/sprites/GUI/in_game/buttons/server_title.svg" type="Texture" id=14]
-[ext_resource path="res://source/entities/ts_bot/ts_bot.tscn" type="PackedScene" id=15]
[sub_resource type="DynamicFont" id=1]
size = 36
@@ -372,9 +371,6 @@ position = Vector2( 1152, 860 )
[node name="4" type="Position2D" parent="spawn_locations"]
position = Vector2( 1536, 860 )
-[node name="ts_bot" parent="." instance=ExtResource( 15 )]
-position = Vector2( 825, 257 )
-
[connection signal="pressed" from="multiplayer_configure/controls/create_server" to="." method="_on_create_server_pressed"]
[connection signal="pressed" from="multiplayer_configure/controls/join_server" to="." method="_on_join_server_pressed"]
[connection signal="pressed" from="multiplayer_configure/controls/return" to="." method="_on_return_pressed"]
diff --git a/source/scenes/GUI/singleplayer_setup.tscn b/source/scenes/GUI/singleplayer_setup.tscn
index 7cfcf24..b06b1f2 100644
--- a/source/scenes/GUI/singleplayer_setup.tscn
+++ b/source/scenes/GUI/singleplayer_setup.tscn
@@ -12,16 +12,16 @@ use_mipmaps = true
use_filter = true
font_data = ExtResource( 2 )
-[sub_resource type="StyleBoxEmpty" id=2]
-
-[sub_resource type="StyleBoxEmpty" id=3]
-
[sub_resource type="DynamicFont" id=4]
size = 36
use_mipmaps = true
use_filter = true
font_data = ExtResource( 2 )
+[sub_resource type="StyleBoxEmpty" id=2]
+
+[sub_resource type="StyleBoxEmpty" id=3]
+
[sub_resource type="DynamicFont" id=5]
size = 36
use_mipmaps = true
@@ -61,8 +61,8 @@ margin_left = -225.0
margin_top = -25.0
margin_right = -225.0
margin_bottom = -25.0
-custom_fonts/font = SubResource( 1 )
custom_colors/font_color = Color( 0, 0, 0, 1 )
+custom_fonts/font = SubResource( 1 )
text = "Enter your username"
align = 1
valign = 1
@@ -93,10 +93,10 @@ margin_left = -175.0
margin_top = -28.0
margin_right = 175.0
margin_bottom = 28.0
+custom_colors/selection_color = Color( 0.8, 0.8, 0.8, 1 )
+custom_fonts/font = SubResource( 4 )
custom_styles/focus = SubResource( 2 )
custom_styles/normal = SubResource( 3 )
-custom_fonts/font = SubResource( 4 )
-custom_colors/selection_color = Color( 0.8, 0.8, 0.8, 1 )
align = 1
placeholder_text = "username"
__meta__ = {
@@ -117,8 +117,8 @@ margin_bottom = 97.0
[node name="Label" type="Label" parent="popup_screen/panel/confirm"]
anchor_right = 1.0
anchor_bottom = 1.0
-custom_fonts/font = SubResource( 5 )
custom_colors/font_color = Color( 0, 0, 0, 1 )
+custom_fonts/font = SubResource( 5 )
text = "CONFIRM"
align = 1
valign = 1
From a040a8e43341341b4b0b92bba1ae6e53cda133e2 Mon Sep 17 00:00:00 2001
From: Alan Alexander Cerna <87852561+Kroppec@users.noreply.github.com>
Date: Wed, 17 Nov 2021 21:44:06 +0200
Subject: [PATCH 3/3] [Minimal] Finishing touches to the basic
---
.../ts_bot_handlers/ts_bot_handlergd.gd | 25 ++++++++++++-------
source/entities/grass/grass_node.tscn | 12 ++++-----
source/entities/ts_bot/ts_bot.tscn | 10 ++++----
3 files changed, 27 insertions(+), 20 deletions(-)
diff --git a/source/assets/scripts/ts_bot_handlers/ts_bot_handlergd.gd b/source/assets/scripts/ts_bot_handlers/ts_bot_handlergd.gd
index 227b56d..9169c42 100644
--- a/source/assets/scripts/ts_bot_handlers/ts_bot_handlergd.gd
+++ b/source/assets/scripts/ts_bot_handlers/ts_bot_handlergd.gd
@@ -13,7 +13,6 @@ var coreRay = {}
var desiredLocation = Vector2(0,0)
var movementVector = Vector2(0,0)
var weightVector = Vector2(0,0)
-var interacting = false
var interactionRays = []
var degreeTracker
@@ -28,6 +27,8 @@ var time = 0
var rotationAmount = 0
var rand_generate = RandomNumberGenerator.new()
+var timer = 15
+
export(int, "Passive", "Friendly", "Agressive") var Mode
func _ready():
@@ -36,13 +37,19 @@ func _ready():
pass
func _physics_process(delta):
- time += delta#
+ time += delta
+ timer += delta
rand_generate.randomize()
get_interaction()
if interactionRays[0]["interacted"]:
if liftSpeed > 0: liftSpeed = move_toward(liftSpeed, 0, deccelerationSpeed)
- elif abs(position.y - desiredLocation.y) > 10 and not interacting: liftSpeed -= accelerationSpeed
- else: liftSpeed += GRAVITY
+ elif position.y - desiredLocation.y > 1:
+ liftSpeed -= accelerationSpeed
+ elif position.y - desiredLocation.y < -1:
+ liftSpeed += GRAVITY
+ for ray in interactionRays:
+ if ray["interacted"]:
+ liftSpeed += -ray["end"].normalized().y * maxSpeed
liftSpeed = clamp(liftSpeed, -maxSpeed, maxSpeed)
move_and_slide(Vector2(0,liftSpeed))
if Mode == 0:
@@ -54,6 +61,7 @@ func _physics_process(delta):
$TsBotSpriteWeaponOn.hide()
$TsBotSpriteWeaponOff.show()
elif Mode == 2:
+ if fireRate < 20: fireRate = 5*fireRate
$ts_bot_sprite.play("agressive_idle")
$TsBotSpriteWeaponOn.show()
$TsBotSpriteWeaponOff.hide()
@@ -64,17 +72,16 @@ func _physics_process(delta):
time = 0
func get_interaction():
- print(interacting)
degreeTracker = 0
interactionRays = []
worldSpace2d = get_world_2d().direct_space_state
- interacting = false
while degreeTracker < 360 + degreeStep:
interactionRay = worldSpace2d.intersect_ray(startVector, Vector2(0,maxRay).rotated(deg2rad(degreeTracker)) + global_position, [self])
var interacted = false
- if "position" in interactionRay:
+ if "position" in interactionRay and interactionRay["collider"].is_in_group("Player"):
interacted = true
- Mode += 1
- interacting = true
+ if timer > 15:
+ Mode += 1
+ timer = 0
interactionRays.append({"start": startVector, "end": Vector2(0,maxRay).rotated(deg2rad(degreeTracker)) + global_position, "degrees": degreeTracker,"ray": interactionRay, "interacted": interacted})
degreeTracker += degreeStep
diff --git a/source/entities/grass/grass_node.tscn b/source/entities/grass/grass_node.tscn
index 1b31f4f..fb162e9 100644
--- a/source/entities/grass/grass_node.tscn
+++ b/source/entities/grass/grass_node.tscn
@@ -49,11 +49,6 @@ animations = [ {
"name": "idle",
"speed": 12.0
}, {
-"frames": [ ExtResource( 17 ), ExtResource( 34 ), ExtResource( 28 ), ExtResource( 26 ), ExtResource( 24 ), ExtResource( 27 ), ExtResource( 36 ) ],
-"loop": false,
-"name": "transition_down",
-"speed": 24.0
-}, {
"frames": [ ExtResource( 30 ), ExtResource( 42 ), ExtResource( 16 ), ExtResource( 29 ), ExtResource( 25 ), ExtResource( 31 ), ExtResource( 21 ), ExtResource( 32 ), ExtResource( 39 ), ExtResource( 20 ), ExtResource( 22 ), ExtResource( 23 ), ExtResource( 33 ) ],
"loop": true,
"name": "idle_down",
@@ -63,6 +58,11 @@ animations = [ {
"loop": false,
"name": "transition_up",
"speed": 24.0
+}, {
+"frames": [ ExtResource( 17 ), ExtResource( 34 ), ExtResource( 28 ), ExtResource( 26 ), ExtResource( 24 ), ExtResource( 27 ), ExtResource( 36 ) ],
+"loop": false,
+"name": "transition_down",
+"speed": 24.0
} ]
[sub_resource type="RectangleShape2D" id=2]
@@ -76,7 +76,7 @@ position = Vector2( -3.36365, 0 )
scale = Vector2( 0.75, 0.75 )
frames = SubResource( 1 )
animation = "idle"
-frame = 8
+frame = 12
playing = true
[node name="trinity_site_level_layout-level_design_z-index_0_grass_type-2" type="Sprite" parent="."]
diff --git a/source/entities/ts_bot/ts_bot.tscn b/source/entities/ts_bot/ts_bot.tscn
index be4b0e5..9218435 100644
--- a/source/entities/ts_bot/ts_bot.tscn
+++ b/source/entities/ts_bot/ts_bot.tscn
@@ -21,15 +21,15 @@ animations = [ {
"name": "agressive_idle",
"speed": 5.0
}, {
-"frames": [ ExtResource( 3 ) ],
-"loop": true,
-"name": "passive_idle",
-"speed": 5.0
-}, {
"frames": [ ExtResource( 4 ) ],
"loop": true,
"name": "friendly_idle",
"speed": 5.0
+}, {
+"frames": [ ExtResource( 3 ) ],
+"loop": true,
+"name": "passive_idle",
+"speed": 5.0
} ]
[node name="ts_bot" type="KinematicBody2D"]