Esempio n. 1
0
    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();
    }
Esempio n. 2
0
    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);
    }