mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-18 22:53:46 +00:00
Test scene for new actor
This commit is contained in:
parent
17f4e11651
commit
0e15d2acba
10 changed files with 142 additions and 21 deletions
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_resource type="Resource" script_class="DebugMapSelectData" load_steps=24 format=3 uid="uid://d1lc8lhq1b05p"]
|
[gd_resource type="Resource" script_class="DebugMapSelectData" load_steps=27 format=3 uid="uid://d1lc8lhq1b05p"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://Scripts/Resources/DebugMenu/DebugMapSelectData.cs" id="1_6kwth"]
|
[ext_resource type="Script" path="res://Scripts/Resources/DebugMenu/DebugMapSelectData.cs" id="1_6kwth"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Resources/MapStartDataResource.cs" id="1_ov731"]
|
[ext_resource type="Script" path="res://Scripts/Resources/MapStartDataResource.cs" id="1_ov731"]
|
||||||
|
|
@ -7,6 +7,7 @@
|
||||||
[ext_resource type="Resource" uid="uid://ct1fa2huvy34n" path="res://Resources/Items/Ammo1.tres" id="4_38yta"]
|
[ext_resource type="Resource" uid="uid://ct1fa2huvy34n" path="res://Resources/Items/Ammo1.tres" id="4_38yta"]
|
||||||
[ext_resource type="Resource" uid="uid://cj5aa7btaw6q0" path="res://Resources/Items/Blue_Keycard.tres" id="5_em757"]
|
[ext_resource type="Resource" uid="uid://cj5aa7btaw6q0" path="res://Resources/Items/Blue_Keycard.tres" id="5_em757"]
|
||||||
[ext_resource type="Resource" uid="uid://clr1gln7nxa1o" path="res://Resources/Items/Power_Pickup.tres" id="6_sdmg8"]
|
[ext_resource type="Resource" uid="uid://clr1gln7nxa1o" path="res://Resources/Items/Power_Pickup.tres" id="6_sdmg8"]
|
||||||
|
[ext_resource type="Resource" uid="uid://cs3ihltcn2166" path="res://Resources/Items/IcicleGun.tres" id="7_b3oo5"]
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_qnbi6"]
|
[sub_resource type="Resource" id="Resource_qnbi6"]
|
||||||
script = ExtResource("2_tnajf")
|
script = ExtResource("2_tnajf")
|
||||||
|
|
@ -104,6 +105,18 @@ Enabled = true
|
||||||
Path = "res://Scenes/Maps/SimpleScene.tscn"
|
Path = "res://Scenes/Maps/SimpleScene.tscn"
|
||||||
_name = "Default Scene"
|
_name = "Default Scene"
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_ujm2a"]
|
||||||
|
script = ExtResource("1_ov731")
|
||||||
|
EggIndex = 0
|
||||||
|
StartingEquipment = [ExtResource("7_b3oo5")]
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_6ijnv"]
|
||||||
|
script = ExtResource("2_tnajf")
|
||||||
|
Enabled = true
|
||||||
|
Path = "res://Scenes/Maps/NewActorTest.tscn"
|
||||||
|
_name = "New Actor Test"
|
||||||
|
StartData = SubResource("Resource_ujm2a")
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
script = ExtResource("1_6kwth")
|
script = ExtResource("1_6kwth")
|
||||||
Maps = Array[Object]([SubResource("Resource_qnbi6"), SubResource("Resource_0k62o"), SubResource("Resource_edoov"), SubResource("Resource_47bot"), SubResource("Resource_mgdm6"), SubResource("Resource_v2as6"), SubResource("Resource_pein5"), SubResource("Resource_6wrc7"), SubResource("Resource_x3w7w"), SubResource("Resource_ajht5"), SubResource("Resource_7vmdn")])
|
Maps = Array[Object]([SubResource("Resource_qnbi6"), SubResource("Resource_0k62o"), SubResource("Resource_edoov"), SubResource("Resource_47bot"), SubResource("Resource_mgdm6"), SubResource("Resource_v2as6"), SubResource("Resource_pein5"), SubResource("Resource_6wrc7"), SubResource("Resource_x3w7w"), SubResource("Resource_ajht5"), SubResource("Resource_7vmdn"), SubResource("Resource_6ijnv")])
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=37 format=3 uid="uid://bqjcwxene73l2"]
|
[gd_scene load_steps=39 format=3 uid="uid://bqjcwxene73l2"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://Scripts/Components/Actors/Actor.cs" id="1_k5cyk"]
|
[ext_resource type="Script" path="res://Scripts/Components/Actors/Actor.cs" id="1_k5cyk"]
|
||||||
[ext_resource type="Texture2D" uid="uid://hukxr2e63gky" path="res://Sprites/Actors/Robot3.png" id="2_wt8wl"]
|
[ext_resource type="Texture2D" uid="uid://hukxr2e63gky" path="res://Sprites/Actors/Robot3.png" id="2_wt8wl"]
|
||||||
|
|
@ -9,6 +9,8 @@
|
||||||
[ext_resource type="Script" path="res://Scripts/Components/Actors/EnemyNavigationMovement.cs" id="7_fvl12"]
|
[ext_resource type="Script" path="res://Scripts/Components/Actors/EnemyNavigationMovement.cs" id="7_fvl12"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Components/ProximityPlayerDetection.cs" id="8_62r5q"]
|
[ext_resource type="Script" path="res://Scripts/Components/ProximityPlayerDetection.cs" id="8_62r5q"]
|
||||||
[ext_resource type="Script" path="res://Scripts/Components/Actors/ActorResourceProvider.cs" id="9_2ocwk"]
|
[ext_resource type="Script" path="res://Scripts/Components/Actors/ActorResourceProvider.cs" id="9_2ocwk"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cj63k0dmk7tl1" path="res://Scenes/Weapons/enemy_weapon_base.tscn" id="10_ehu1c"]
|
||||||
|
[ext_resource type="Resource" uid="uid://cdfmedtgp2rcn" path="res://Resources/Weapons/EnemyWeapon.tres" id="11_fvpvx"]
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id="AtlasTexture_spe0p"]
|
[sub_resource type="AtlasTexture" id="AtlasTexture_spe0p"]
|
||||||
atlas = ExtResource("2_wt8wl")
|
atlas = ExtResource("2_wt8wl")
|
||||||
|
|
@ -255,15 +257,16 @@ _animatedSprite = NodePath("../AnimatedSprite2D")
|
||||||
script = ExtResource("6_jlcsg")
|
script = ExtResource("6_jlcsg")
|
||||||
Ai = 0
|
Ai = 0
|
||||||
|
|
||||||
[node name="NavigationMovementProvider" type="Node2D" parent="." node_paths=PackedStringArray("_playerDetection")]
|
[node name="NavigationMovementProvider" type="Node2D" parent="." node_paths=PackedStringArray("EquippedWeapon", "_playerDetection")]
|
||||||
script = ExtResource("7_fvl12")
|
script = ExtResource("7_fvl12")
|
||||||
_navigationEnabled = true
|
_navigationEnabled = true
|
||||||
CollisionMask = 81
|
CollisionMask = 81
|
||||||
|
EquippedWeapon = NodePath("../EnemyWeapon")
|
||||||
_playerDetection = NodePath("../PlayerDetection")
|
_playerDetection = NodePath("../PlayerDetection")
|
||||||
|
|
||||||
[node name="PlayerDetection" type="Area2D" parent="."]
|
[node name="PlayerDetection" type="Area2D" parent="."]
|
||||||
visible = false
|
visible = false
|
||||||
collision_layer = 16
|
collision_layer = 0
|
||||||
collision_mask = 2
|
collision_mask = 2
|
||||||
script = ExtResource("8_62r5q")
|
script = ExtResource("8_62r5q")
|
||||||
|
|
||||||
|
|
@ -282,6 +285,9 @@ debug_path_custom_color = Color(1, 0, 0, 1)
|
||||||
script = ExtResource("9_2ocwk")
|
script = ExtResource("9_2ocwk")
|
||||||
ResourceName = "Health"
|
ResourceName = "Health"
|
||||||
|
|
||||||
|
[node name="EnemyWeapon" parent="." instance=ExtResource("10_ehu1c")]
|
||||||
|
WeaponData = ExtResource("11_fvpvx")
|
||||||
|
|
||||||
[connection signal="area_entered" from="PlayerDetection" to="PlayerDetection" method="_on_area_entered"]
|
[connection signal="area_entered" from="PlayerDetection" to="PlayerDetection" method="_on_area_entered"]
|
||||||
[connection signal="area_exited" from="PlayerDetection" to="PlayerDetection" method="_on_area_exited"]
|
[connection signal="area_exited" from="PlayerDetection" to="PlayerDetection" method="_on_area_exited"]
|
||||||
[connection signal="velocity_computed" from="NavigationAgent2D" to="NavigationMovementProvider" method="_on_navigation_agent_2d_velocity_computed"]
|
[connection signal="velocity_computed" from="NavigationAgent2D" to="NavigationMovementProvider" method="_on_navigation_agent_2d_velocity_computed"]
|
||||||
|
|
|
||||||
78
Scenes/Maps/NewActorTest.tscn
Normal file
78
Scenes/Maps/NewActorTest.tscn
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -1,7 +1,14 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://cj63k0dmk7tl1"]
|
[gd_scene load_steps=3 format=3 uid="uid://cj63k0dmk7tl1"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://crry0rgk7a8sm" path="res://Scenes/Weapons/BaseWeapon.tscn" id="1_60orr"]
|
[ext_resource type="Script" path="res://Scripts/Weapon.cs" id="1_1das2"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cuixq5ex0j40h" path="res://Scenes/enemyBullet.tscn" id="2_dyoou"]
|
[ext_resource type="PackedScene" uid="uid://cuixq5ex0j40h" path="res://Scenes/enemyBullet.tscn" id="2_dyoou"]
|
||||||
|
|
||||||
[node name="EnemyWeapon" instance=ExtResource("1_60orr")]
|
[node name="EnemyWeapon" type="Sprite2D" node_paths=PackedStringArray("Muzzle")]
|
||||||
|
script = ExtResource("1_1das2")
|
||||||
BulletScene = ExtResource("2_dyoou")
|
BulletScene = ExtResource("2_dyoou")
|
||||||
|
Muzzle = NodePath("Muzzle")
|
||||||
|
|
||||||
|
[node name="Muzzle" type="Marker2D" parent="."]
|
||||||
|
|
||||||
|
[node name="ShootTimer" type="Timer" parent="."]
|
||||||
|
one_shot = true
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,6 @@ collision_layer = 128
|
||||||
collision_mask = 71
|
collision_mask = 71
|
||||||
script = ExtResource("1_s0j1e")
|
script = ExtResource("1_s0j1e")
|
||||||
Speed = 200.0
|
Speed = 200.0
|
||||||
Owner = 2
|
|
||||||
metadata/_edit_group_ = true
|
metadata/_edit_group_ = true
|
||||||
|
|
||||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||||
|
|
|
||||||
|
|
@ -142,7 +142,7 @@ ActivationType = 0
|
||||||
Targets = Array[NodePath]([NodePath("../Rumia")])
|
Targets = Array[NodePath]([NodePath("../Rumia")])
|
||||||
WaitForCompletion = true
|
WaitForCompletion = true
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_oorlt"]
|
[sub_resource type="Resource" id="Resource_c0pje"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
script = ExtResource("49_0si7g")
|
script = ExtResource("49_0si7g")
|
||||||
Target = NodePath(".")
|
Target = NodePath(".")
|
||||||
|
|
@ -678,7 +678,7 @@ Events = Array[Object]([SubResource("Resource_068l7"), SubResource("Resource_l3n
|
||||||
|
|
||||||
[node name="BossBattleStartScript" parent="." instance=ExtResource("43_kf3qc")]
|
[node name="BossBattleStartScript" parent="." instance=ExtResource("43_kf3qc")]
|
||||||
position = Vector2(-1487, -396)
|
position = Vector2(-1487, -396)
|
||||||
Events = Array[Object]([SubResource("Resource_4f4id"), SubResource("Resource_s2o7m"), SubResource("Resource_b1dht"), SubResource("Resource_xrgpy"), SubResource("Resource_oorlt")])
|
Events = Array[Object]([SubResource("Resource_4f4id"), SubResource("Resource_s2o7m"), SubResource("Resource_b1dht"), SubResource("Resource_xrgpy"), SubResource("Resource_c0pje")])
|
||||||
|
|
||||||
[node name="Enemy8" parent="." instance=ExtResource("47_u1ve6")]
|
[node name="Enemy8" parent="." instance=ExtResource("47_u1ve6")]
|
||||||
position = Vector2(-1117, 184)
|
position = Vector2(-1117, 184)
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,6 @@ public partial class AnimationHandler : ActorModule
|
||||||
|
|
||||||
public override void Update(double delta)
|
public override void Update(double delta)
|
||||||
{
|
{
|
||||||
|
|
||||||
var direction = _parent.FacingDirection; //GetSnappedDirection();
|
var direction = _parent.FacingDirection; //GetSnappedDirection();
|
||||||
|
|
||||||
if (_parent.Velocity.Length() > 0)
|
if (_parent.Velocity.Length() > 0)
|
||||||
|
|
@ -47,7 +46,7 @@ public partial class AnimationHandler : ActorModule
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private string DirectionToString(Vector2 direction)
|
protected virtual string DirectionToString(Vector2 direction)
|
||||||
{
|
{
|
||||||
var angle = Mathf.RadToDeg(direction.Angle());
|
var angle = Mathf.RadToDeg(direction.Angle());
|
||||||
angle = Mathf.PosMod(angle, 360);
|
angle = Mathf.PosMod(angle, 360);
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,8 @@ public partial class EnemyNavigationMovement : MovementHandler
|
||||||
|
|
||||||
[Export(PropertyHint.Layers2DPhysics)]
|
[Export(PropertyHint.Layers2DPhysics)]
|
||||||
public uint CollisionMask { get; set; }
|
public uint CollisionMask { get; set; }
|
||||||
|
|
||||||
|
[Export] public Weapon EquippedWeapon;
|
||||||
|
|
||||||
public bool NavigationEnabled
|
public bool NavigationEnabled
|
||||||
{
|
{
|
||||||
|
|
@ -71,7 +73,7 @@ public partial class EnemyNavigationMovement : MovementHandler
|
||||||
|
|
||||||
private void AlarmManagerOnAlarmEnabled(Vector2 location)
|
private void AlarmManagerOnAlarmEnabled(Vector2 location)
|
||||||
{
|
{
|
||||||
if (NavigationEnabled && location.DistanceTo(this.GlobalPosition) <= AlarmReactRange)
|
if (NavigationEnabled && location.DistanceTo(_parent.GlobalPosition) <= AlarmReactRange)
|
||||||
{
|
{
|
||||||
GD.Print($"Enemy {Name} alerted");
|
GD.Print($"Enemy {Name} alerted");
|
||||||
_actorAi.State = EnemyState.Alert;
|
_actorAi.State = EnemyState.Alert;
|
||||||
|
|
@ -83,8 +85,7 @@ public partial class EnemyNavigationMovement : MovementHandler
|
||||||
{
|
{
|
||||||
if (_actorAi.Ai is not AiState.Enabled)
|
if (_actorAi.Ai is not AiState.Enabled)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
||||||
switch (_actorAi.State)
|
switch (_actorAi.State)
|
||||||
{
|
{
|
||||||
case EnemyState.Idle:
|
case EnemyState.Idle:
|
||||||
|
|
@ -115,15 +116,14 @@ public partial class EnemyNavigationMovement : MovementHandler
|
||||||
var nextPathPosition = _navigationAgent.GetNextPathPosition();
|
var nextPathPosition = _navigationAgent.GetNextPathPosition();
|
||||||
|
|
||||||
var newVelocity = currentAgentPosition.DirectionTo(nextPathPosition) * _parent.MovementSpeed;
|
var newVelocity = currentAgentPosition.DirectionTo(nextPathPosition) * _parent.MovementSpeed;
|
||||||
|
|
||||||
|
|
||||||
// Navigation is over, can do other things like shooting
|
// Navigation is over, can do other things like shooting
|
||||||
if (_navigationAgent.IsNavigationFinished())
|
if (_navigationAgent.IsNavigationFinished())
|
||||||
{
|
{
|
||||||
// Shoot player
|
// Shoot player
|
||||||
if (IsPlayerInSight)
|
if (IsPlayerInSight)
|
||||||
{
|
{
|
||||||
//Shoot();
|
Shoot();
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: If player totally left the max range it should stop shooting and go back to idle
|
// TODO: If player totally left the max range it should stop shooting and go back to idle
|
||||||
|
|
@ -146,7 +146,7 @@ public partial class EnemyNavigationMovement : MovementHandler
|
||||||
{
|
{
|
||||||
if (IsPlayerInSight)
|
if (IsPlayerInSight)
|
||||||
{
|
{
|
||||||
//Shoot();
|
Shoot();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -154,6 +154,19 @@ public partial class EnemyNavigationMovement : MovementHandler
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void Shoot()
|
||||||
|
{
|
||||||
|
if (EquippedWeapon == null || !_lastPlayerPosition.HasValue) return;
|
||||||
|
|
||||||
|
var direction = (_lastPlayerPosition.Value - _parent.GlobalPosition).Normalized();
|
||||||
|
|
||||||
|
// Shoot at the player's last known position
|
||||||
|
EquippedWeapon.ShootDirection = direction;
|
||||||
|
FacingDirection = direction;
|
||||||
|
|
||||||
|
EquippedWeapon.Shoot();
|
||||||
|
}
|
||||||
|
|
||||||
public void _on_navigation_agent_2d_velocity_computed(Vector2 safeVelocity)
|
public void _on_navigation_agent_2d_velocity_computed(Vector2 safeVelocity)
|
||||||
{
|
{
|
||||||
_parent.Velocity = safeVelocity;
|
_parent.Velocity = safeVelocity;
|
||||||
|
|
|
||||||
8
Scripts/Components/FSM/State.cs
Normal file
8
Scripts/Components/FSM/State.cs
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
using Godot;
|
||||||
|
|
||||||
|
namespace Cirno.Scripts.Components.FSM;
|
||||||
|
|
||||||
|
public partial class State : Node2D
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -16,6 +16,4 @@ public partial class CameraTargetEvent : CameraTargetPlayerEvent
|
||||||
GameManager.Instance.CameraTargetObject(parent.GetNode<Node2D>(Target), Offset);
|
GameManager.Instance.CameraTargetObject(parent.GetNode<Node2D>(Target), Offset);
|
||||||
_isComplete = true;
|
_isComplete = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue