Ejemplo n.º 1
0
        // float
        public static Bonus <long> GetBrandChange(GameEntity product, GameContext gameContext)
        {
            var conceptStatus = Products.GetConceptStatus(product, gameContext);

            var isOutOfMarket = conceptStatus == ConceptStatus.Outdated;
            var isInnovator   = conceptStatus == ConceptStatus.Leader;

            var percent   = 10;
            var baseDecay = product.branding.BrandPower * percent / 100;


            var isMarketingAggressively = Economy.GetMarketingFinancing(product) == Products.GetMaxFinancing;
            var isReleased = product.isRelease;

            var partnershipBonuses = GetPartnershipBonuses(product, gameContext);

            var isMonopolist = Markets.GetCompetitorsAmount(product, gameContext) == 1;

            var BrandingChangeBonus = new Bonus <long>("Brand power change")
                                      .AppendAndHideIfZero(percent + "% Decay", -(int)baseDecay)

                                      .AppendAndHideIfZero("Released", isReleased ? 1 : 0)
                                      .AppendAndHideIfZero("MONOPOLY", isMonopolist ? 10 : 0)

                                      .AppendAndHideIfZero("Outdated app", isOutOfMarket ? -4 : 0)

                                      .AppendAndHideIfZero("Capturing market", isMarketingAggressively ? 6 : 0)

                                      .Append("Partnerships", (int)partnershipBonuses)

            ;

            return(BrandingChangeBonus);
        }
Ejemplo n.º 2
0
        public static GameEntity AutoGenerateProductCompany(NicheType nicheType, GameContext gameContext)
        {
            var playersOnMarket = Markets.GetCompetitorsAmount(nicheType, gameContext);

            var c = GenerateProductCompany(gameContext, Enums.GetFormattedNicheName(nicheType) + " " + playersOnMarket, nicheType);

            AutoFillShareholders(gameContext, c, true);
            //SetFounderAmbitionDueToMarketSize(c, gameContext);

            return(c);
        }
Ejemplo n.º 3
0
        // float
        public static Bonus <long> GetBrandChange(GameEntity product, GameContext gameContext)
        {
            var conceptStatus = Products.GetConceptStatus(product, gameContext);

            var isOutOfMarket = conceptStatus == ConceptStatus.Outdated;
            var isInnovator   = conceptStatus == ConceptStatus.Leader;

            // base 10

            var percent = 25;

            if (Products.IsUpgradeEnabled(product, ProductUpgrade.QA3))
            {
                percent -= 15;
            }
            else if (Products.IsUpgradeEnabled(product, ProductUpgrade.QA2))
            {
                percent -= 10;
            }
            else if (Products.IsUpgradeEnabled(product, ProductUpgrade.QA))
            {
                percent -= 5;
            }

            if (Products.IsUpgradeEnabled(product, ProductUpgrade.Support3))
            {
                percent -= 3;
            }
            else if (Products.IsUpgradeEnabled(product, ProductUpgrade.Support2))
            {
                percent -= 2;
            }
            else if (Products.IsUpgradeEnabled(product, ProductUpgrade.Support))
            {
                percent -= 1;
            }



            var baseDecay = product.branding.BrandPower * percent / 100;

            var isReleased = product.isRelease;

            var partnershipBonuses = GetPartnershipBonuses(product, gameContext);

            var isMonopolist = Markets.GetCompetitorsAmount(product, gameContext) == 1;

            var BrandingChangeBonus = new Bonus <long>("Brand power change")
                                      .AppendAndHideIfZero(percent + "% Decay", -(int)baseDecay)

                                      .AppendAndHideIfZero("Released", isReleased ? 1 : 0)
                                      .AppendAndHideIfZero("Branding Campaign", Products.IsUpgradeEnabled(product, ProductUpgrade.BrandCampaign) ? 1 : 0)
                                      .AppendAndHideIfZero("Branding Campaign (II)", Products.IsUpgradeEnabled(product, ProductUpgrade.BrandCampaign2) ? 1 : 0)
                                      .AppendAndHideIfZero("Branding Campaign (III)", Products.IsUpgradeEnabled(product, ProductUpgrade.BrandCampaign3) ? 2 : 0)

                                      .AppendAndHideIfZero("MONOPOLY", isMonopolist ? 10 : 0)

                                      .AppendAndHideIfZero("Outdated app", isOutOfMarket ? -7 : 0)

                                      .Append("Partnerships", (int)partnershipBonuses)

            ;

            return(BrandingChangeBonus);
        }