Esempio n. 1
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);
    }
    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)}"));
        }
        //}
    }
Esempio n. 3
0
    public override void Execute()
    {
        var channel = MarketingChannelView.channel;

        var company = Flagship;


        var relay = FindObjectOfType <FlagshipRelayInCompanyView>();

        var channelId = channel.ID;

        var task = new TeamTaskChannelActivity(channelId, Marketing.GetChannelCost(company, channelId));

        relay.AddPendingTask(task);

        var channelList = FindObjectOfType <MarketingChannelsListView>();

        if (channelList != null)
        {
            // view render to recalculate features count
            channelList.ViewRender();

            if (channelList.count == 0)
            {
                CloseModal("Marketing");
            }

            MarketingChannelView.ViewRender();
        }
    }
Esempio n. 4
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);
    }