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);
        }