コード例 #1
0
    public override void Execute()
    {
        var channelId = ChannelInfo.ID;
        var product   = Flagship;
        var payer     = MyCompany;

        if (Marketing.IsActiveInChannel(product, channelId))
        {
            Debug.Log("Is active already");
            return;
        }

        if (Marketing.IsNeedsMoreMarketersForCampaign(product))
        {
            NotificationUtils.AddSimplePopup(Q, "Hire more marketers!");
            return;
        }

        var task = TeamTaskChannelActivity.FromChannel(ChannelInfo); // new TeamTaskChannelActivity(channelId, Marketing.GetChannelCost(product, channelId));
        var cost = Teams.GetTaskCost(product, task, Q);

        /*if (Companies.IsEnoughResources(payer, cost))
         * {*/
        if (Teams.AddTeamTask(product, CurrentIntDate, Q, 0, task))
        {
            Animate(Visuals.Negative($"-{Format.Money(cost)}"));
        }
        //}
    }
コード例 #2
0
    void ManageChannels(GameEntity product)
    {
        if (Marketing.IsNeedsMoreMarketersForCampaign(product))
        {
            TryHireWorker(product, WorkerRole.Marketer);

            if (Marketing.IsNeedsMoreMarketersForCampaign(product))
            {
                return;
            }
        }


        // TODO COPIED FROM MarketingChannelController.cs

        //var channels = Markets.GetAffordableMarketingChannels(product, gameContext);
        var channels = Markets.GetMaintainableMarketingChannels(product, gameContext)
                       .Where(c => !Marketing.IsActiveInChannel(product, c.ID))
                       .OrderByDescending(c => c.Batch)
                       .Take(8);

        if (!channels.Any())
        {
            return;
        }

        var channel = channels.First();

        var task = TeamTaskChannelActivity.FromChannel(channel); // new TeamTaskChannelActivity(channelId, Marketing.GetChannelCost(product, channelId));

        Teams.AddTeamTask(product, ScheduleUtils.GetCurrentDate(gameContext), gameContext, 0, task);
    }
コード例 #3
0
    public override void Execute()
    {
        ScheduleUtils.ResumeGame(Q);

        var features = Markets.GetAffordableMarketingChannels(Flagship, Q);

        var channel = features.First();

        var task = new TeamTaskChannelActivity(channel.ID, (long)channel.costPerAd);

        Teams.AddTeamTask(Flagship, CurrentIntDate, Q, 0, task);
    }
コード例 #4
0
    public override void Execute()
    {
        ScheduleUtils.ResumeGame(Q);

        var features = Products.GetUpgradeableRetentionFeatures(Flagship);

        var task = new TeamTaskFeatureUpgrade(features.First());

        Teams.AddTeamTask(Flagship, CurrentIntDate, Q, 0, task);

        //Cooldowns.AddTask(Q, new CompanyTaskUpgradeFeature(Flagship.company.Id, new NewProductFeature()))
    }
コード例 #5
0
    public override void OnItemSelected(int ind)
    {
        base.OnItemSelected(ind);

        var teamId = Items[ind].GetComponent <TeamView>().teamId;

        bool overloaded = Flagship.team.Teams[teamId].Tasks.Count >= 4;

        if (overloaded)
        {
            NotificationUtils.AddSimplePopup(Q, "This team is overloaded", "Choose another team");
            return;
        }

        var relay = FindObjectOfType <FlagshipRelayInCompanyView>();

        var task = relay.TeamTask;

        Teams.AddTeamTask(Flagship, CurrentIntDate, Q, teamId, task);

        relay.ChooseMainScreen();

        if (task.IsFeatureUpgrade)
        {
            SoundManager.Play(Sound.ProgrammingTask);
        }

        if (task.IsHighloadTask)
        {
            SoundManager.Play(Sound.ServerTask);
        }

        if (task.IsMarketingTask)
        {
            SoundManager.Play(Sound.MarketingTask);
        }

        if (task.IsSupportTask)
        {
            SoundManager.Play(Sound.SupportTask);
        }

        Refresh();
    }
コード例 #6
0
    public void AddPendingTask(TeamTask teamTask)
    {
        TeamTask = teamTask;

        //ScheduleUtils.PauseGame(Q);

        if (Teams.AddTeamTask(Flagship, CurrentIntDate, Q, 0, teamTask))
        {
            if (teamTask.IsFeatureUpgrade)
            {
                SoundManager.Play(Sound.ProgrammingTask);
            }

            if (teamTask.IsMarketingTask)
            {
                //SoundManager.Play(Sound.MarketingTask);
            }

            if (teamTask.IsHighloadTask)
            {
                SoundManager.Play(Sound.ServerTask);
            }
        }
    }