public static void InitializeTeamTaskIfNotPending(GameEntity product, int date, GameContext gameContext, TeamTask task)
{
if (task.IsPending)
return;
task.StartDate = date;
if (task.IsMarketingTask)
{
var channelId = (task as TeamTaskChannelActivity).ChannelId;
var channel = Markets.GetMarketingChannel(gameContext, channelId);
if (!Marketing.IsActiveInChannel(product, channelId))
{
var cost = Marketing.GetChannelCost(product, channelId);
var payer = Companies.GetPayer(product, gameContext);
if (Companies.Pay(payer, cost, "Marketing " + channel))
{
Marketing.EnableChannelActivity(product, channel);
var gain = Marketing.GetChannelClientGain(product, channelId);
Marketing.AddClients(product, gain);
var duration = Marketing.GetCampaignDuration(product, gain);
task.EndDate = date + duration;
}
}
}
}