// does a copy public SlotArray(ISlotArray slots) { var p = new string[slots.Length]; for (int i = 0; i < p.Length; ++i) { p[i] = slots[i]; } this.slots = p; }
public IngamePhase(ISlotArray slots) { var s = new SlotArray(slots); // <-- makes a copy Slots = s; session = GameLogic.SessionFactory.New(); int players = 0; for (int i = 0; i < s.Length; ++i) { if (s[i] != null) { ++players; session.TryAddPlayer(i); // should never fail here. } } turnCache = new TurnCache[players * 2]; session.TurnBegun += Session_TurnBegun; session.WinnerDeclared += Session_WinnerDeclared; }
public FinishedPhase(int winner, ISlotArray slots) { WinnerSlot = winner; this.slots = new SlotArray(slots); }