2026-04-30 07:06:38 -04:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
2026-05-10 11:47:55 -04:00
|
|
|
|
using SLSUtilities.General;
|
2026-04-30 07:06:38 -04:00
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Cielonos.MainGame
|
|
|
|
|
|
{
|
|
|
|
|
|
[Serializable]
|
|
|
|
|
|
public class RunState
|
|
|
|
|
|
{
|
2026-05-10 11:47:55 -04:00
|
|
|
|
// ----------------------------------------------------------------
|
|
|
|
|
|
// 随机数
|
|
|
|
|
|
// ----------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>本局的随机数管理器,所有子系统从此派生 RNG。</summary>
|
|
|
|
|
|
[NonSerialized]
|
|
|
|
|
|
public Randomizer randomizer;
|
|
|
|
|
|
|
|
|
|
|
|
// ----------------------------------------------------------------
|
|
|
|
|
|
// 地图与位置
|
|
|
|
|
|
// ----------------------------------------------------------------
|
|
|
|
|
|
|
2026-04-30 07:06:38 -04:00
|
|
|
|
public RunMapData mapData; // 本局生成的地图
|
|
|
|
|
|
public Vector2Int currentPosition; // 当前所在节点的网格坐标
|
|
|
|
|
|
public HashSet<Vector2Int> visitedNodes; // 已访问节点坐标集合
|
2026-05-10 11:47:55 -04:00
|
|
|
|
public HashSet<Vector2Int> exhaustedNodes; // 已用完的单次使用节点(MedicalStation、MechanicalTable)
|
|
|
|
|
|
public HashSet<Vector2Int> completedNodes; // 已完成的节点(战斗已清空、事件已完成等),防止重复结算
|
|
|
|
|
|
|
|
|
|
|
|
// ----------------------------------------------------------------
|
|
|
|
|
|
// 迷雾探测
|
|
|
|
|
|
// ----------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 探测半径(BFS 步数)。默认 1,表示只显示已访问节点周围1格的邻居。
|
|
|
|
|
|
/// 可通过装备/道具增加,扩大可视范围。
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int scoutRange = 1;
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 被永久揭示的节点坐标集合。
|
|
|
|
|
|
/// 用于道具效果(如"揭示某个特定节点")。
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public HashSet<Vector2Int> permanentlyRevealedNodes;
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 被永久揭示的节点类型集合。
|
|
|
|
|
|
/// 用于道具效果(如"揭示地图上所有商店"、"揭示地图上所有医疗站")。
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public HashSet<MapNodeType> permanentlyRevealedTypes;
|
|
|
|
|
|
|
|
|
|
|
|
// ----------------------------------------------------------------
|
|
|
|
|
|
// 统计数据
|
|
|
|
|
|
// ----------------------------------------------------------------
|
|
|
|
|
|
|
2026-04-30 07:06:38 -04:00
|
|
|
|
public float elapsedTime; // 本局已用时间
|
|
|
|
|
|
public int roomsCleared; // 已清理房间数
|
|
|
|
|
|
public int enemiesDefeated; // 已击杀敌人数
|
2026-05-10 11:47:55 -04:00
|
|
|
|
public int hurtCount; // 实际扣除生命值的受伤次数(受击但被盾完全抵挡不计)
|
2026-04-30 07:06:38 -04:00
|
|
|
|
public bool isCompleted; // 是否通关
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|