void OnUpdate(List <TieredUnit> selected) { for (int i = 0; i < getHighestSlotCount(); i++) { ScriptableUnitConfig unit = null; if (i < selected.Count) { unit = TieredUnit.Unlocks(selected[i].Tiers, PlayerLevel.Instance).GetHighestUnlocked().Config; } Slots[i].SetUnit(unit); } UpdateTF(); }
public static UnitSpawnGroupConfig MakeSquadGroup() { List <ScriptableUnitConfig> unit_configs = new List <ScriptableUnitConfig>(); UnitSpawnGroupConfig conf = new UnitSpawnGroupConfig(); conf.ForceGroup = true; conf.SpawnerGroup = 1; conf.SpawnableUnits = new List <WeightedUnit>(); if (Instance.selected_units.IsNullOrEmpty()) { Debug.LogWarning("NO UNITS SELECTED"); Instance.unitunlocks.Select(unlock => unlock.Item).ToList().ForEach(unlock => unit_configs.Add(unlock.Tiers.GetRandom().Config)); } else { foreach (var _selected in Instance.selected_units) { unit_configs.Add(TieredUnit.Unlocks(_selected.Tiers, PlayerLevel.Instance).GetHighestUnlocked().Config); } } List <ScriptableUnitConfig> selected = unit_configs.GetRandomRemove(Instance.GetMaxSquadsize()); foreach (ScriptableUnitConfig unit_config in selected) { WeightedUnit unit = new WeightedUnit(); unit.ForceUnit = true; unit.TurnTimeOnSpawn = Constants.PLAYER_SQUAD_START_INITIATIVE; unit.UnitConfig = unit_config; conf.SpawnableUnits.Add(unit); } return(conf); }