// 销毁房间内所有对象 public virtual void Clear() { if (Map != null) { foreach (var u in AllUnits) { smm.Del(u.UID); u.Room = null; } Map.Clear(); } if (BuffRunner != null) { BuffRunner.Clear(); } if (TBRunner != null) { TBRunner.Clear(); } UsrsID = null; Players = null; frameSeqNo = 0; rand = null; idSeq = 0; }
public const int MaxFrameNum = 9000; // 最多 15 分钟一局 public virtual void MoveOneStep() { if (frameSeqNo >= MaxFrameNum) { BattleEnd(null); return; } frameSeqNo++; // 目标已死亡就从地图移除 foreach (var u in AllUnits) { if (u.Hp <= 0) { RemoveUnit(u.UID); foreach (var acc in u.Accessories.ToArray()) { RemoveUnit(acc.UID); } } } smm.OnTimeElapsed(FrameInterval); Map.DoOneStep(FrameInterval); // 宝箱和 buff if (TBRunner != null) { TBRunner.OnTimeElapsed(FrameInterval); } if (BuffRunner != null) { BuffRunner.OnTimeElapsed(FrameInterval); } }