diff --git a/DungeonShooting_Godot/src/framework/map/AffiliationArea.cs b/DungeonShooting_Godot/src/framework/map/AffiliationArea.cs
index e056bbf..1972ec2 100644
--- a/DungeonShooting_Godot/src/framework/map/AffiliationArea.cs
+++ b/DungeonShooting_Godot/src/framework/map/AffiliationArea.cs
@@ -256,9 +256,9 @@
if (IsFirstEnterFlag)
{
EventManager.EmitEvent(EventEnum.OnPlayerFirstEnterRoom, RoomInfo);
- IsFirstEnterFlag = false;
}
EventManager.EmitEvent(EventEnum.OnPlayerEnterRoom, RoomInfo);
+ IsFirstEnterFlag = false;
}
diff --git a/DungeonShooting_Godot/src/framework/map/fog/AisleFogArea.cs b/DungeonShooting_Godot/src/framework/map/fog/AisleFogArea.cs
index f52c690..09473fd 100644
--- a/DungeonShooting_Godot/src/framework/map/fog/AisleFogArea.cs
+++ b/DungeonShooting_Godot/src/framework/map/fog/AisleFogArea.cs
@@ -82,7 +82,8 @@
private void InsertItem()
{
//GD.Print("玩家进入过道");
- RoomDoorInfo.ClearFog();
+ //RoomDoorInfo.ClearFog();
+ FogMaskHandler.RefreshAisleFog(RoomDoorInfo);
}
// private void LeavePlayer()
diff --git a/DungeonShooting_Godot/src/framework/map/fog/FogMaskBase.cs b/DungeonShooting_Godot/src/framework/map/fog/FogMaskBase.cs
index fe1124f..abfe0f0 100644
--- a/DungeonShooting_Godot/src/framework/map/fog/FogMaskBase.cs
+++ b/DungeonShooting_Godot/src/framework/map/fog/FogMaskBase.cs
@@ -10,12 +10,12 @@
///
/// 是否探索过迷雾
///
- public bool IsExplored { get; private set; }
+ public bool IsExplored { get; set; }
///
/// 迷雾透明度值, 这个值在调用 TransitionAlpha() 时改变, 用于透明度判断
///
- public float TargetAlpha { get; protected set; }
+ public float TargetAlpha { get; set; }
private long _cid = -1;
@@ -23,27 +23,49 @@
/// 使颜色的 alpha 通道过渡到指定的值
///
/// 透明度值
- /// 过渡时间
- public void TransitionAlpha(float targetAlpha, float time)
+ public void TransitionAlpha(float targetAlpha)
{
TargetAlpha = targetAlpha;
- if (targetAlpha > 0)
- {
- IsExplored = true;
- }
if (_cid >= 0)
{
World.Current.StopCoroutine(_cid);
}
- _cid = World.Current.StartCoroutine(RunTransitionAlpha(targetAlpha, time, false));
+ _cid = World.Current.StartCoroutine(RunTransitionAlpha(targetAlpha, GameConfig.FogTransitionTime, false));
+ }
+
+ ///
+ /// 使颜色的 alpha 通道过渡到指定的值
+ ///
+ /// 初始透明度
+ /// 透明度值
+ public void TransitionAlpha(float tartAlpha, float targetAlpha)
+ {
+ Color = new Color(1, 1, 1, tartAlpha);
+ TransitionAlpha(targetAlpha);
+ }
+
+ ///
+ /// 使颜色的 alpha 通道过渡到 GameConfig.DarkFogAlpha
+ ///
+ public void TransitionToDark()
+ {
+ TransitionAlpha(GameConfig.DarkFogAlpha);
+ }
+
+ ///
+ /// 使颜色的 alpha 通道过渡到 1
+ ///
+ public void TransitionToLight()
+ {
+ TransitionAlpha(1);
}
///
/// 使颜色的 alpha 通道过渡到 0, 然后隐藏该 Fog
///
/// 过渡时间
- public void TransitionToHide(float time)
+ public void TransitionToHide(float time = GameConfig.FogTransitionTime)
{
TargetAlpha = 0;
if (Visible)
diff --git a/DungeonShooting_Godot/src/framework/map/fog/FogMaskHandler.cs b/DungeonShooting_Godot/src/framework/map/fog/FogMaskHandler.cs
new file mode 100644
index 0000000..3f2ccf3
--- /dev/null
+++ b/DungeonShooting_Godot/src/framework/map/fog/FogMaskHandler.cs
@@ -0,0 +1,232 @@
+
+using System;
+using Godot;
+
+public static class FogMaskHandler
+{
+ private static RoomInfo _prevRoomInfo;
+ private static RoomInfo _tempRoomInfo;
+ private static RoomDoorInfo _tempDoorInfo;
+
+ public static void RefreshRoomFog(RoomInfo roomInfo)
+ {
+ _tempRoomInfo = roomInfo;
+ }
+
+ public static void RefreshAisleFog(RoomDoorInfo doorInfo)
+ {
+ if (_prevRoomInfo != null)
+ {
+ if (doorInfo.RoomInfo == _prevRoomInfo)
+ {
+ _tempDoorInfo = doorInfo;
+ }
+ else if (doorInfo.ConnectDoor.RoomInfo == _prevRoomInfo)
+ {
+ _tempDoorInfo = doorInfo.ConnectDoor;
+ }
+ return;
+ }
+ _tempDoorInfo = doorInfo;
+ }
+
+ public static void Update()
+ {
+ if (_tempRoomInfo != null)
+ {
+ //刷新房间会附带刷新过道
+ _RefreshRoomFog(_tempRoomInfo);
+ }
+ else if (_tempDoorInfo != null)
+ {
+ //刷新过道
+ _RefreshAisleFog(_tempDoorInfo);
+ }
+
+ _tempRoomInfo = null;
+ _tempDoorInfo = null;
+ }
+
+ private static void _RefreshRoomFog(RoomInfo roomInfo)
+ {
+ if (_prevRoomInfo != roomInfo)
+ {
+ GD.Print($"切换房间: {_prevRoomInfo?.Id} => {roomInfo.Id}");
+ if (_prevRoomInfo != null)
+ {
+ //房间变暗
+ _prevRoomInfo.RoomFogMask.TransitionAlpha(GameConfig.DarkFogAlpha);
+ //刷新预览区域
+ foreach (var roomInfoDoor in _prevRoomInfo.Doors)
+ {
+ //不是连接到当前房间的, 过道通通变暗
+ if (roomInfoDoor.ConnectDoor.RoomInfo != roomInfo)
+ {
+ var prevAisleFog = roomInfoDoor.AisleFogMask;
+ if (!prevAisleFog.IsExplored)
+ {
+ roomInfoDoor.PreviewAisleFogMask.TransitionToDark();
+ }
+ else
+ {
+ prevAisleFog.TransitionToDark();
+ if (roomInfoDoor.ConnectDoor.PreviewRoomFogMask.Visible)
+ {
+ if (roomInfoDoor.ConnectDoor.RoomInfo.RoomFogMask.IsExplored)
+ {
+ roomInfoDoor.ConnectDoor.PreviewRoomFogMask.TransitionToHide();
+ }
+ else
+ {
+ roomInfoDoor.ConnectDoor.PreviewRoomFogMask.TransitionToDark();
+ }
+ }
+ }
+ }
+ }
+ }
+
+ _prevRoomInfo = roomInfo;
+ }
+ GD.Print("RefreshRoomFog: " + roomInfo.Id);
+ var fogMask = roomInfo.RoomFogMask;
+
+ if (!fogMask.IsExplored) //未探索该区域
+ {
+ fogMask.IsExplored = true;
+ fogMask.TransitionAlpha(0, 1);
+
+ //刷新预览区域
+ foreach (var roomInfoDoor in roomInfo.Doors)
+ {
+ if (roomInfoDoor.AisleFogMask.IsExplored) //探索过, 执行过道刷新逻辑
+ {
+ _RefreshAisleFog(roomInfoDoor);
+ }
+ else //未探索
+ {
+ //显示预览过道
+ roomInfoDoor.PreviewRoomFogMask.SetActive(false);
+ roomInfoDoor.PreviewAisleFogMask.SetActive(true);
+ roomInfoDoor.PreviewAisleFogMask.TransitionAlpha(1);
+ }
+ }
+ }
+ else //已经探索过
+ {
+ //变亮
+ fogMask.TransitionAlpha(GameConfig.DarkFogAlpha, 1);
+
+ foreach (var roomInfoDoor in roomInfo.Doors)
+ {
+ if (roomInfoDoor.AisleFogMask.IsExplored) //探索过, 执行过道刷新逻辑
+ {
+ _RefreshAisleFog(roomInfoDoor);
+ }
+ else //未探索
+ {
+ //显示预览过道
+ roomInfoDoor.PreviewRoomFogMask.SetActive(false);
+ roomInfoDoor.PreviewAisleFogMask.SetActive(true);
+ roomInfoDoor.PreviewAisleFogMask.TransitionAlpha(1);
+ }
+ }
+ }
+ }
+
+ private static void _RefreshAisleFog(RoomDoorInfo doorInfo)
+ {
+ GD.Print("RefreshAisleFog: " + doorInfo.RoomInfo.Id + doorInfo.Direction);
+ var fogMask = doorInfo.AisleFogMask;
+
+ var connectDoor = doorInfo.ConnectDoor;
+ if (!fogMask.IsExplored) //未探索该区域
+ {
+ fogMask.IsExplored = true;
+ doorInfo.PreviewAisleFogMask.IsExplored = true;
+ doorInfo.PreviewRoomFogMask.IsExplored = true;
+ doorInfo.ConnectDoor.PreviewAisleFogMask.IsExplored = true;
+ doorInfo.ConnectDoor.PreviewRoomFogMask.IsExplored = true;
+ fogMask.TransitionAlpha(1);
+
+ //隐藏预览
+ if (doorInfo.PreviewAisleFogMask.Visible)
+ {
+ doorInfo.PreviewAisleFogMask.TransitionToHide();
+ }
+
+ //显示下一个房间预览
+ if (!connectDoor.RoomInfo.RoomFogMask.IsExplored)
+ {
+ connectDoor.PreviewRoomFogMask.SetActive(true);
+ connectDoor.PreviewRoomFogMask.TransitionAlpha(0, 1);
+ }
+ }
+ else //已经探索过
+ {
+ if (doorInfo.Door.IsClose) //房间已经关门
+ {
+ //过道迷雾变暗
+ fogMask.TransitionToDark();
+ //隐藏房间预览
+ if (doorInfo.PreviewRoomFogMask.Visible)
+ {
+ doorInfo.PreviewRoomFogMask.TransitionToHide();
+ }
+ //显示过道预览
+ if (!doorInfo.PreviewAisleFogMask.Visible)
+ {
+ doorInfo.PreviewAisleFogMask.SetActive(true);
+ doorInfo.PreviewAisleFogMask.TransitionAlpha(0, 1 - doorInfo.AisleFogMask.TargetAlpha);
+ }
+ }
+ else
+ {
+ //过道迷雾变亮
+ fogMask.TransitionToLight();
+
+ //隐藏房间预览
+ if (doorInfo.PreviewRoomFogMask.Visible)
+ {
+ doorInfo.PreviewRoomFogMask.TransitionToHide();
+ }
+ //隐藏过道预览
+ if (doorInfo.PreviewAisleFogMask.Visible)
+ {
+ doorInfo.PreviewAisleFogMask.TransitionToHide();
+ }
+ //连接的房间显示房间预览
+ if (!connectDoor.PreviewRoomFogMask.Visible)
+ {
+ connectDoor.PreviewRoomFogMask.SetActive(true);
+ }
+
+ var tempA = 1 - connectDoor.RoomInfo.RoomFogMask.TargetAlpha;
+ if (Math.Abs(connectDoor.PreviewRoomFogMask.TargetAlpha - tempA) > 0.001f)
+ {
+ if (connectDoor.RoomInfo.RoomFogMask.IsExplored)
+ {
+ connectDoor.PreviewRoomFogMask.TransitionAlpha(0, tempA);
+ }
+ else
+ {
+ connectDoor.PreviewRoomFogMask.TransitionAlpha(tempA);
+ }
+ }
+
+ //连接的房间隐藏过道预览
+ if (connectDoor.PreviewAisleFogMask.Visible)
+ {
+ connectDoor.PreviewAisleFogMask.TransitionToHide();
+ }
+ }
+ }
+ }
+
+ public static void ClearRecordRoom()
+ {
+ _prevRoomInfo = null;
+ _tempDoorInfo = null;
+ _tempRoomInfo = null;
+ }
+}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/src/framework/map/room/RoomDoorInfo.cs b/DungeonShooting_Godot/src/framework/map/room/RoomDoorInfo.cs
index 73398a6..9e73a1d 100644
--- a/DungeonShooting_Godot/src/framework/map/room/RoomDoorInfo.cs
+++ b/DungeonShooting_Godot/src/framework/map/room/RoomDoorInfo.cs
@@ -80,11 +80,6 @@
public PreviewFogMask PreviewAisleFogMask;
///
- /// 当前门连接的过道是否探索过
- ///
- public bool IsExplored { get; private set; } = false;
-
- ///
/// 世界坐标下的原点坐标, 单位: 像素
///
public Vector2I GetWorldOriginPosition()
@@ -262,85 +257,4 @@
PreviewAisleFogMask.Destroy();
}
}
-
- ///
- /// 清除过道迷雾
- ///
- public void ClearFog()
- {
- IsExplored = true;
- ConnectDoor.IsExplored = true;
- if (AisleFogMask != null && Math.Abs(AisleFogMask.Color.A - 1f) > 0.001f)
- {
- AisleFogMask.TransitionAlpha(1, GameConfig.FogTransitionTime);
- RefreshPreviewFog(1);
- }
- }
-
- ///
- /// 将过道迷雾变暗
- ///
- public void DarkFog()
- {
- IsExplored = true;
- ConnectDoor.IsExplored = true;
- if (AisleFogMask != null && Math.Abs(AisleFogMask.Color.A - GameConfig.DarkFogAlpha) > 0.001f)
- {
- AisleFogMask.TransitionAlpha(GameConfig.DarkFogAlpha, GameConfig.FogTransitionTime);
- RefreshPreviewFog(GameConfig.DarkFogAlpha);
- }
- }
-
- ///
- /// 刷新房间中的预览迷雾
- ///
- /// 过道迷雾透明度
- public void RefreshPreviewFog(float aisleFogAlpha)
- {
- var room1Alpha = RoomInfo.RoomFogMask.TargetAlpha;
- var room2Alpha = ConnectDoor.RoomInfo.RoomFogMask.TargetAlpha;
- //GD.Print($"aisleFogAlpha: {aisleFogAlpha}, room1Alpha: {room1Alpha}, room2Alpha{room2Alpha}");
-
- if ((aisleFogAlpha < 1 && room1Alpha < 1) || Math.Abs(aisleFogAlpha - room1Alpha) < 0.001f) //隐藏预览
- {
- PreviewRoomFogMask.TransitionToHide(GameConfig.FogTransitionTime);
- PreviewAisleFogMask.TransitionToHide(GameConfig.FogTransitionTime);
- }
- else if (aisleFogAlpha >= 1) //预览房间
- {
- PreviewAisleFogMask.TransitionToHide(GameConfig.FogTransitionTime);
- PreviewRoomFogMask.SetActive(true);
-
- //播放过渡动画
- var targetAlpha = 1 - room1Alpha;
- PreviewRoomFogMask.Color = new Color(1, 1, 1, 0);
- PreviewRoomFogMask.TransitionAlpha(targetAlpha, GameConfig.FogTransitionTime);
- }
- else if (room1Alpha >= 1) //预览过道
- {
- PreviewRoomFogMask.TransitionToHide(GameConfig.FogTransitionTime);
- PreviewAisleFogMask.SetActive(true);
- }
-
- if ((aisleFogAlpha < 1 && room2Alpha < 1) || Math.Abs(aisleFogAlpha - room2Alpha) < 0.001f) //隐藏预览
- {
- ConnectDoor.PreviewAisleFogMask.TransitionToHide(GameConfig.FogTransitionTime);
- ConnectDoor.PreviewRoomFogMask.TransitionToHide(GameConfig.FogTransitionTime);
- }
- else if (aisleFogAlpha >= 1) //预览房间
- {
- ConnectDoor.PreviewAisleFogMask.TransitionToHide(GameConfig.FogTransitionTime);
- ConnectDoor.PreviewRoomFogMask.SetActive(true);
-
- //播放过渡动画, 这里有问题
- var targetAlpha = 1 - room2Alpha;
- ConnectDoor.PreviewRoomFogMask.Color = new Color(1, 1, 1, 0);
- ConnectDoor.PreviewRoomFogMask.TransitionAlpha(targetAlpha, GameConfig.FogTransitionTime);
- }
- else if (room2Alpha >= 1) //预览过道
- {
- ConnectDoor.PreviewRoomFogMask.TransitionToHide(GameConfig.FogTransitionTime);
- ConnectDoor.PreviewAisleFogMask.SetActive(true);
- }
- }
}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/src/framework/map/room/RoomInfo.cs b/DungeonShooting_Godot/src/framework/map/room/RoomInfo.cs
index 9f1a66d..93f52da 100644
--- a/DungeonShooting_Godot/src/framework/map/room/RoomInfo.cs
+++ b/DungeonShooting_Godot/src/framework/map/room/RoomInfo.cs
@@ -396,9 +396,10 @@
//过道迷雾
doorInfo.AisleFogArea.Monitoring = true;
- if (doorInfo.IsExplored)
+ if (doorInfo.AisleFogMask.IsExplored)
{
- doorInfo.ClearFog();
+ //doorInfo.ClearFog();
+ FogMaskHandler.RefreshAisleFog(doorInfo);
}
}
}
@@ -420,106 +421,10 @@
//过道迷雾
doorInfo.AisleFogArea.Monitoring = false;
- if (doorInfo.IsExplored)
+ if (doorInfo.AisleFogMask.IsExplored)
{
- doorInfo.DarkFog();
- }
- }
- }
-
- ///
- /// 清除迷雾
- ///
- public void ClearFog()
- {
- if (RoomFogMask != null && Math.Abs(RoomFogMask.Color.A - 1) > 0.001f)
- {
- RoomFogMask.TransitionAlpha(1, GameConfig.FogTransitionTime);
- RefreshPreviewFog(1);
- }
- }
-
- ///
- /// 将迷雾变暗, nextRoom: 下一个房间
- ///
- public void DarkFog(RoomInfo nextRoom = null)
- {
- if (RoomFogMask != null && Math.Abs(RoomFogMask.Color.A - GameConfig.DarkFogAlpha) > 0.001f)
- {
- RoomFogMask.TransitionAlpha(GameConfig.DarkFogAlpha, GameConfig.FogTransitionTime);
- RefreshPreviewFog(GameConfig.DarkFogAlpha, nextRoom);
- }
- }
-
- ///
- /// 刷新房间中的预览迷雾
- ///
- /// 当前房间的迷雾透明度
- public void RefreshPreviewFog(float roomFogAlpha)
- {
- RefreshPreviewFog(roomFogAlpha, null);
- }
-
- private void RefreshPreviewFog(float roomFogAlpha, RoomInfo nextRoom)
- {
- var isToDark = Math.Abs(roomFogAlpha - GameConfig.DarkFogAlpha) < 0.001f && nextRoom != null;
- //预览迷雾
- foreach (var roomDoorInfo in Doors)
- {
- if (isToDark && roomDoorInfo.ConnectDoor.RoomInfo != nextRoom && roomDoorInfo.AisleFogMask.IsExplored)
- {
- //roomDoorInfo.AisleFogMask.Color = Colors.Red;
- if (roomDoorInfo.PreviewAisleFogMask.TargetAlpha > GameConfig.DarkFogAlpha)
- {
- roomDoorInfo.PreviewAisleFogMask.TransitionAlpha(GameConfig.DarkFogAlpha, GameConfig.FogTransitionTime);
- }
- if (roomDoorInfo.PreviewRoomFogMask.TargetAlpha > GameConfig.DarkFogAlpha)
- {
- roomDoorInfo.PreviewRoomFogMask.TransitionAlpha(GameConfig.DarkFogAlpha, GameConfig.FogTransitionTime);
- }
- var connectDoor = roomDoorInfo.ConnectDoor;
- if (connectDoor.PreviewAisleFogMask != null && connectDoor.PreviewAisleFogMask.TargetAlpha > GameConfig.DarkFogAlpha)
- {
- connectDoor.PreviewAisleFogMask.TransitionAlpha(GameConfig.DarkFogAlpha, GameConfig.FogTransitionTime);
- }
- if (connectDoor.PreviewRoomFogMask != null && connectDoor.PreviewRoomFogMask.TargetAlpha > GameConfig.DarkFogAlpha)
- {
- connectDoor.PreviewRoomFogMask.TransitionAlpha(GameConfig.DarkFogAlpha, GameConfig.FogTransitionTime);
- }
- }
- else
- {
- var aisleAlpha = roomDoorInfo.AisleFogMask.TargetAlpha;
- if (aisleAlpha < 1 && roomDoorInfo.AisleFogMask.IsExplored)
- {
- roomDoorInfo.AisleFogMask.TransitionAlpha(1, GameConfig.FogTransitionTime);
- aisleAlpha = 1;
- }
- if ((roomFogAlpha < 1 && aisleAlpha < 1) || Math.Abs(roomFogAlpha - aisleAlpha) < 0.001f) //隐藏预览
- {
- roomDoorInfo.PreviewRoomFogMask.TransitionToHide(GameConfig.FogTransitionTime);
- roomDoorInfo.PreviewAisleFogMask.TransitionToHide(GameConfig.FogTransitionTime);
- }
- else if (aisleAlpha >= 1) //预览房间
- {
- roomDoorInfo.PreviewAisleFogMask.TransitionToHide(GameConfig.FogTransitionTime);
- roomDoorInfo.PreviewRoomFogMask.SetActive(true);
-
- //播放过渡动画
- var targetAlpha = 1 - roomFogAlpha;
- roomDoorInfo.PreviewRoomFogMask.Color = new Color(1, 1, 1, 0);
- roomDoorInfo.PreviewRoomFogMask.TransitionAlpha(targetAlpha, GameConfig.FogTransitionTime);
- }
- else if (roomFogAlpha >= 1) //预览过道
- {
- roomDoorInfo.PreviewRoomFogMask.TransitionToHide(GameConfig.FogTransitionTime);
- roomDoorInfo.PreviewAisleFogMask.SetActive(true);
-
- //播放过渡动画
- var targetAlpha = 1 - aisleAlpha;
- roomDoorInfo.PreviewAisleFogMask.Color = new Color(1, 1, 1, 0.2f);
- roomDoorInfo.PreviewAisleFogMask.TransitionAlpha(targetAlpha, GameConfig.FogTransitionTime);
- }
+ //doorInfo.DarkFog();
+ FogMaskHandler.RefreshAisleFog(doorInfo);
}
}
}
diff --git a/DungeonShooting_Godot/src/game/room/DungeonManager.cs b/DungeonShooting_Godot/src/game/room/DungeonManager.cs
index 0cc3ee0..a31c84a 100644
--- a/DungeonShooting_Godot/src/game/room/DungeonManager.cs
+++ b/DungeonShooting_Godot/src/game/room/DungeonManager.cs
@@ -172,6 +172,9 @@
UiManager.Open_PauseMenu();
}
+ //更新迷雾
+ FogMaskHandler.Update();
+
_checkEnemyTimer += (float)delta;
if (_checkEnemyTimer >= 1)
{
@@ -297,6 +300,7 @@
World = null;
GameApplication.Instance.DestroyWorld();
yield return 0;
+ FogMaskHandler.ClearRecordRoom();
QueueRedraw();
//鼠标还原
GameApplication.Instance.Cursor.SetGuiMode(true);
@@ -432,16 +436,7 @@
{
var roomFog = new FogMask();
roomFog.Name = "FogMask" + roomFog.IsDestroyed;
- float alpha;
- if (roomInfo.RoomType == DungeonRoomType.Inlet) //起始房间没有迷雾
- {
- alpha = 1;
- }
- else
- {
- alpha = 0;
- }
- roomFog.InitFog(roomInfo.Position, roomInfo.Size, alpha);
+ roomFog.InitFog(roomInfo.Position, roomInfo.Size);
World.FogMaskRoot.AddChild(roomFog);
roomInfo.RoomFogMask = roomFog;
@@ -545,9 +540,6 @@
previewAisleFog.SetActive(false);
World.FogMaskRoot.AddChild(previewAisleFog);
}
-
- //刷新预览迷雾
- roomInfo.RefreshPreviewFog(alpha);
}
///
@@ -583,19 +575,10 @@
var roomInfo = (RoomInfo)o;
if (_affiliationAreaFlag != roomInfo.AffiliationArea)
{
- if (_affiliationAreaFlag != null)
- {
- if (!_affiliationAreaFlag.IsDestroyed)
- {
- //上一个房间变暗
- _affiliationAreaFlag.RoomInfo.DarkFog(roomInfo);
- }
- }
-
if (!roomInfo.AffiliationArea.IsDestroyed)
{
- //当前房间变亮
- roomInfo.ClearFog();
+ //刷新迷雾
+ FogMaskHandler.RefreshRoomFog(roomInfo);
}
_affiliationAreaFlag = roomInfo.AffiliationArea;