Example #1
0
    void ProcessTeamTasks(int date)
    {
        var products = Companies.GetProductCompanies(gameContext);

        foreach (var p in products)
        {
            List <SlotInfo> removableTasks = new List <SlotInfo>();

            int teamId = 0;
            foreach (var team in p.team.Teams)
            {
                int slotId = 0;

                foreach (var task in team.Tasks)
                {
                    if (task.IsPending && Teams.CanExecuteTeamTask(p, task, gameContext))
                    {
                        task.IsPending = false;

                        Teams.InitializeTeamTaskIfNotPending(p, date, gameContext, task);
                    }

                    Teams.ProcessTeamTaskIfNotPending(p, date, task, ref removableTasks, slotId, teamId);

                    slotId++;
                }

                teamId++;
            }

            // remove expired tasks
            removableTasks.Reverse();
            foreach (var s in removableTasks)
            {
                Teams.RemoveTeamTask(p, gameContext, s.TeamId, s.SlotId);
            }
        }
    }