//Creates an empty round for tension building public RoundDefinition GenerateEmptyRound(int numberOfAvailableSlots, int duration) { RoundDefinition result = new RoundDefinition(); result.duration = duration; result.isFinalRound = false; result.orderedSlotDefinitions = new List <RoundDefinition.SlotDefinition>(); for (int i = 0; i < numberOfAvailableSlots; i++) { result.orderedSlotDefinitions.Add(null); } return(result); }
//Always fill all slots in the final round public RoundDefinition GenerateFinalRound(int numberOfAvailableSlots) { RoundDefinition result = new RoundDefinition(); result.duration = roundDuration; result.isFinalRound = true; result.orderedSlotDefinitions = new List <RoundDefinition.SlotDefinition>(); for (int i = 0; i < numberOfAvailableSlots; i++) { RoundDefinition.SlotDefinition slotDefinition = slotDefinitionGenerator.GenerateSlotDefinition(targetTypeCollection, weightSum); result.orderedSlotDefinitions.Add(slotDefinition); } return(result); }
public RoundDefinition GenerateRound(int roundNumber, int numberOfAvailableSlots) { RoundDefinition result = new RoundDefinition(); result.duration = roundDuration; result.isFinalRound = false; result.orderedSlotDefinitions = new List <RoundDefinition.SlotDefinition>(numberOfAvailableSlots); int numberOfSlotsToUse = Random.Range(1, numberOfAvailableSlots + 1); int[] indices = new int[numberOfAvailableSlots]; for (int i = 0; i < numberOfAvailableSlots; i++) { indices[i] = i; } SelectIndicesToUse(ref indices, numberOfSlotsToUse, numberOfAvailableSlots); for (int k = 0; k < numberOfAvailableSlots; k++) { bool useSlot = false; for (int l = 0; l < numberOfAvailableSlots; l++) { if (indices[l] == k) { useSlot = l < numberOfSlotsToUse; break; } } if (useSlot) { RoundDefinition.SlotDefinition slotDefinition = slotDefinitionGenerator.GenerateSlotDefinition(targetTypeCollection, weightSum); result.orderedSlotDefinitions.Add(slotDefinition); } else { result.orderedSlotDefinitions.Add(null); } } return(result); }
public void ExecuteRound(RoundDefinition roundDefinition) { LoadTargets(roundDefinition.orderedSlotDefinitions); ShowTargets(); timer.StartTimer(roundDefinition.duration - TargetMoveBehaviour.maxMoveTime, HideTargets); }