コード例 #1
0
    public override void Start(ControlledDivision Host)
    {
        Debug.Log($"start split {Host.Soldiers.Count}");
        List <Soldier> soldiers = new List <Soldier>();

        var soldiersSplitIntoTypes = Host.SplitSoldiersIntoTypes();

        foreach (var soldierTypeWanted in SoldiersToSplit)
        {
            var soldiersOfType = soldiersSplitIntoTypes[soldierTypeWanted.Key];
            var soldiersTaken  = soldiersOfType.Take(soldierTypeWanted.Value);
            soldiers.AddRange(soldiersTaken);
            soldiersTaken.ToList().ForEach(x => Host.Soldiers.Remove(x));
        }

        var child = Host.Controller.CreateChild(soldiers);

        IsFinishedSpliting = true;
        base.Start(Host);
        Debug.Log($"end split {Host.Soldiers.Count} + {child.AttachedDivision.Soldiers.Count}");
    }