mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-01 09:55:35 +00:00
Door link
This commit is contained in:
parent
700be1e207
commit
d4b9a928db
6 changed files with 21 additions and 34 deletions
|
|
@ -1,5 +1,6 @@
|
|||
[gd_resource type="Resource" script_class="EnemyResource" load_steps=3 format=3 uid="uid://cfdvg162u65sr"]
|
||||
[gd_resource type="Resource" script_class="EnemyResource" load_steps=4 format=3 uid="uid://cfdvg162u65sr"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cq65aed620ijo" path="res://Scripts/Resources/Loot/LootDrop.cs" id="1_f3huq"]
|
||||
[ext_resource type="Resource" uid="uid://cdfmedtgp2rcn" path="res://Resources/Weapons/EnemyWeapon.tres" id="7_filx8"]
|
||||
[ext_resource type="Script" uid="uid://cd5o0ceb50jki" path="res://Scripts/Resources/EnemyResource.cs" id="8_x8scf"]
|
||||
|
||||
|
|
@ -11,7 +12,7 @@ PrefabPath = &"uid://dky13otbks8cm"
|
|||
MaxHealth = 16.0
|
||||
MovementSpeed = 38.0
|
||||
Weapon = ExtResource("7_filx8")
|
||||
LootDrops = []
|
||||
LootDrops = Array[ExtResource("1_f3huq")]([])
|
||||
MotivationReward = 4.0
|
||||
PlayerDetectionRange = 90.0
|
||||
ViewRange = 120.0
|
||||
|
|
|
|||
|
|
@ -38,7 +38,6 @@ DungeonLength = 12
|
|||
|
||||
[node name="CameraController" type="Camera2D" parent="."]
|
||||
process_mode = 1
|
||||
zoom = Vector2(0.2, 0.2)
|
||||
script = ExtResource("8_y651a")
|
||||
pixel_snap = false
|
||||
enable_smoothing = false
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ position = Vector2(159, 23)
|
|||
script = ExtResource("5_2djm0")
|
||||
|
||||
[node name="South" type="Marker2D" parent="Doors"]
|
||||
position = Vector2(159.196, 149.348)
|
||||
position = Vector2(159, 161)
|
||||
script = ExtResource("5_2djm0")
|
||||
Direction = 1
|
||||
|
||||
|
|
|
|||
|
|
@ -92,10 +92,18 @@ public partial class RogueliteRoom : Node2D
|
|||
|
||||
_doors.Add(door);
|
||||
|
||||
if (connection.FromDoor is null) connection.FromDoor = door;
|
||||
else if (connection.ToDoor is null) connection.ToDoor = door;
|
||||
else
|
||||
GD.Print("Door connection was full");
|
||||
if (connection.FromDoor is null && connection.ToDoor != door)
|
||||
{
|
||||
connection.FromDoor = door;
|
||||
}
|
||||
else if (connection.ToDoor is null && connection.FromDoor != door)
|
||||
{
|
||||
connection.ToDoor = door;
|
||||
}
|
||||
else
|
||||
{
|
||||
GD.Print($"Door {door} connection was full: {connection.From} {connection.FromDoor} to {connection.To} {connection.ToDoor}");
|
||||
}
|
||||
|
||||
_connections.Add(connection);
|
||||
|
||||
|
|
@ -155,8 +163,8 @@ public partial class RogueliteRoom : Node2D
|
|||
{
|
||||
foreach (var connection in _connections)
|
||||
{
|
||||
connection.FromDoor?.Activate(ActivationType.Open);
|
||||
connection.ToDoor?.Activate(ActivationType.Open);
|
||||
connection.FromDoor?.Open();
|
||||
connection.ToDoor?.Open();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -164,8 +172,8 @@ public partial class RogueliteRoom : Node2D
|
|||
{
|
||||
foreach (var connection in _connections)
|
||||
{
|
||||
connection.FromDoor?.Activate(ActivationType.Close);
|
||||
connection.ToDoor?.Activate(ActivationType.Close);
|
||||
connection.FromDoor?.Close();
|
||||
connection.ToDoor?.Close();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -186,28 +186,6 @@ public partial class RogueliteRoomManager : Node2D
|
|||
//CallDeferred(MethodName.OpenStartDoorsDeferred, spawnedBeginRoom);
|
||||
}
|
||||
|
||||
private Vector2I? FindValidBossRoomLocation(Vector2I from, int maxSteps = 10)
|
||||
{
|
||||
var directions = new List<Vector2I> { Vector2I.Right, Vector2I.Left, Vector2I.Up, Vector2I.Down };
|
||||
|
||||
for (int step = 0; step < maxSteps; step++)
|
||||
{
|
||||
directions = directions.OrderBy(_ => GD.Randi()).ToList();
|
||||
|
||||
foreach (var dir in directions)
|
||||
{
|
||||
var pos = from + dir;
|
||||
var bossRoom = Rooms.FirstOrDefault(r => r.Type == RoomType.Boss);
|
||||
if (bossRoom != null && CanPlaceRoom(pos, bossRoom.Size))
|
||||
return pos;
|
||||
|
||||
from += dir;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private Vector2I GetNextPosition(Vector2I current, Vector2I target)
|
||||
{
|
||||
var possibleDirs = new List<Vector2I>();
|
||||
|
|
|
|||
1
Scripts/Controllers/RoomConnection.cs.uid
Normal file
1
Scripts/Controllers/RoomConnection.cs.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://cll1kon3rc5j6
|
||||
Loading…
Add table
Add a link
Reference in a new issue