fixed weapon slashes, removed some unused ones, cleaned up vfx filestructure, made new scene for overworld bad end and finalized animaiton + environment, more item fixes and some texture downsizes, took scripts off overworld duplicate and moved to EX folder
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
using Godot;
|
||||
using Godot;
|
||||
|
||||
namespace Zennysoft.Game.Ma;
|
||||
public abstract partial class FloorNode : Node
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,29 +37,29 @@ public partial class Map : Node3D, IMap
|
||||
|
||||
public void OnResolved()
|
||||
{
|
||||
AnimationPlayer.AnimationFinished += AnimationPlayer_AnimationFinished;
|
||||
this.Provide();
|
||||
AnimationPlayer.AnimationFinished += AnimationPlayer_AnimationFinished;
|
||||
this.Provide();
|
||||
}
|
||||
|
||||
private async void AnimationPlayer_AnimationFinished(StringName animName)
|
||||
{
|
||||
if (animName == "fade_out")
|
||||
{
|
||||
await LoadNewFloor();
|
||||
FloorLoaded?.Invoke();
|
||||
}
|
||||
if (animName == "fade_out")
|
||||
{
|
||||
await LoadNewFloor();
|
||||
FloorLoaded?.Invoke();
|
||||
}
|
||||
}
|
||||
|
||||
private async Task LoadNewFloor()
|
||||
{
|
||||
SpawnPointCreated?.Invoke((Vector3.Forward, new Vector3(-999, -999, -999)));
|
||||
var newFloor = await LoadNewFloor(_sceneName);
|
||||
ClearFloor();
|
||||
AddChild(newFloor);
|
||||
InitializeFloor(newFloor);
|
||||
var floor = MapOrder.GetChildren().OfType<FloorNode>().ElementAt(CurrentFloorNumber.Value);
|
||||
if (CurrentFloor is DungeonFloor dungeonFloor && floor is DungeonFloorNode dungeonFloorNode)
|
||||
dungeonFloor.SpawnEnemies(dungeonFloorNode);
|
||||
SpawnPointCreated?.Invoke((Vector3.Forward, new Vector3(-999, -999, -999)));
|
||||
var newFloor = await LoadNewFloor(_sceneName);
|
||||
ClearFloor();
|
||||
AddChild(newFloor);
|
||||
InitializeFloor(newFloor);
|
||||
var floor = MapOrder.GetChildren().OfType<FloorNode>().ElementAt(CurrentFloorNumber.Value);
|
||||
if (CurrentFloor is DungeonFloor dungeonFloor && floor is DungeonFloorNode dungeonFloorNode)
|
||||
dungeonFloor.SpawnEnemies(dungeonFloorNode);
|
||||
}
|
||||
|
||||
public void FadeIn() => AnimationPlayer.Play("fade_in");
|
||||
@@ -67,66 +67,66 @@ public partial class Map : Node3D, IMap
|
||||
|
||||
public void InitializeMapData()
|
||||
{
|
||||
CurrentFloorNumber.OnNext(-1);
|
||||
CurrentFloorNumber.OnNext(-1);
|
||||
}
|
||||
|
||||
public IDungeonRoom GetPlayersCurrentRoom()
|
||||
{
|
||||
var rooms = CurrentFloor.Rooms;
|
||||
var playersRoom = rooms.SingleOrDefault(x => x.IsPlayerInRoom);
|
||||
return playersRoom;
|
||||
var rooms = CurrentFloor.Rooms;
|
||||
var playersRoom = rooms.SingleOrDefault(x => x.IsPlayerInRoom);
|
||||
return playersRoom;
|
||||
}
|
||||
|
||||
public (Vector3 Rotation, Vector3 Position) GetPlayerSpawnPosition()
|
||||
{
|
||||
var spawnPoint = CurrentFloor.GetPlayerSpawnPoint();
|
||||
return (spawnPoint.Rotation, spawnPoint.Position);
|
||||
var spawnPoint = CurrentFloor.GetPlayerSpawnPoint();
|
||||
return (spawnPoint.Rotation, spawnPoint.Position);
|
||||
}
|
||||
|
||||
public void ClearFloor()
|
||||
{
|
||||
CurrentFloor?.CallDeferred(MethodName.QueueFree, []);
|
||||
CurrentFloor?.CallDeferred(MethodName.QueueFree, []);
|
||||
}
|
||||
|
||||
public async Task LoadFloor()
|
||||
{
|
||||
var floor = MapOrder.GetChildren().OfType<FloorNode>().ElementAt(CurrentFloorNumber.Value + 1);
|
||||
var sceneToLoad = LayoutToScenePathConverter.Convert(floor);
|
||||
await LoadFloor(sceneToLoad);
|
||||
var floor = MapOrder.GetChildren().OfType<FloorNode>().ElementAt(CurrentFloorNumber.Value + 1);
|
||||
var sceneToLoad = LayoutToScenePathConverter.Convert(floor);
|
||||
await LoadFloor(sceneToLoad);
|
||||
}
|
||||
|
||||
public async Task LoadFloor(string sceneName)
|
||||
{
|
||||
CallDeferred(MethodName.FadeOut);
|
||||
_sceneName = sceneName;
|
||||
var dimmableAudio = GetTree().GetNodesInGroup("DimmableAudio").OfType<IDimmableAudioStreamPlayer>();
|
||||
foreach (var node in dimmableAudio)
|
||||
node.FadeOut();
|
||||
CallDeferred(MethodName.FadeOut);
|
||||
_sceneName = sceneName;
|
||||
var dimmableAudio = GetTree().GetNodesInGroup("DimmableAudio").OfType<IDimmableAudioStreamPlayer>();
|
||||
foreach (var node in dimmableAudio)
|
||||
node.FadeOut();
|
||||
}
|
||||
|
||||
private void InitializeFloor(Node newFloor)
|
||||
{
|
||||
CurrentFloor = (IDungeonFloor)newFloor;
|
||||
SetupDungeonFloor();
|
||||
CurrentFloor.FloorIsLoaded = true;
|
||||
CurrentFloorNumber.OnNext(CurrentFloorNumber.Value + 1);
|
||||
CurrentFloor = (IDungeonFloor)newFloor;
|
||||
SetupDungeonFloor();
|
||||
CurrentFloor.FloorIsLoaded = true;
|
||||
CurrentFloorNumber.OnNext(CurrentFloorNumber.Value + 1);
|
||||
}
|
||||
|
||||
private async Task<Node> LoadNewFloor(string sceneName)
|
||||
{
|
||||
var sceneLoader = new SceneLoader();
|
||||
AddChild(sceneLoader);
|
||||
sceneLoader.LoadSceneRequest(sceneName);
|
||||
await ToSignal(sceneLoader, SceneLoader.SignalName.SceneLoaded);
|
||||
var result = sceneLoader.LoadedScene;
|
||||
sceneLoader.QueueFree();
|
||||
return result;
|
||||
var sceneLoader = new SceneLoader();
|
||||
AddChild(sceneLoader);
|
||||
sceneLoader.LoadSceneRequest(sceneName);
|
||||
await ToSignal(sceneLoader, SceneLoader.SignalName.SceneLoaded);
|
||||
var result = sceneLoader.LoadedScene;
|
||||
sceneLoader.QueueFree();
|
||||
return result;
|
||||
}
|
||||
|
||||
private void SetupDungeonFloor()
|
||||
{
|
||||
CurrentFloor.InitializeDungeon();
|
||||
var transform = GetPlayerSpawnPosition();
|
||||
SpawnPointCreated?.Invoke(transform);
|
||||
CurrentFloor.InitializeDungeon();
|
||||
var transform = GetPlayerSpawnPosition();
|
||||
SpawnPointCreated?.Invoke(transform);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@ height = 2.24425
|
||||
radius = 1.941
|
||||
|
||||
[node name="SteleE" type="Node3D"]
|
||||
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, 0, 0)
|
||||
transform = Transform3D(0.43, 0, 0, 0, 0.43, 0, 0, 0, 0.43, 0, 0.0391899, 0)
|
||||
script = ExtResource("1_kuew0")
|
||||
|
||||
[node name="Steles_" type="Node3D" parent="."]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using Godot;
|
||||
using Godot;
|
||||
|
||||
namespace Zennysoft.Game.Ma;
|
||||
|
||||
@@ -6,4 +6,4 @@ public partial class SpecialFloorNode : FloorNode
|
||||
{
|
||||
[Export]
|
||||
public SpecialFloorType FloorName { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,18 +11,18 @@ public partial class UnlockableDoor : Node3D, IDoor
|
||||
|
||||
public void OnReady()
|
||||
{
|
||||
UnlockArea.AreaEntered += UnlockArea_AreaEntered;
|
||||
UnlockArea.AreaEntered += UnlockArea_AreaEntered;
|
||||
}
|
||||
|
||||
private void UnlockArea_AreaEntered(Area3D area)
|
||||
{
|
||||
var children = GetChildren();
|
||||
foreach (var child in children)
|
||||
child.QueueFree();
|
||||
var children = GetChildren();
|
||||
foreach (var child in children)
|
||||
child.QueueFree();
|
||||
}
|
||||
|
||||
public void OnExitTree()
|
||||
{
|
||||
UnlockArea.AreaEntered -= UnlockArea_AreaEntered;
|
||||
UnlockArea.AreaEntered -= UnlockArea_AreaEntered;
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 3.9 MiB After Width: | Height: | Size: 55 KiB |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
Reference in New Issue
Block a user