public MarketProfile(AudienceSize AudienceSize, Monetisation MonetisationType, Margin Margin, AppComplexity AppComplexity, NicheSpeed NicheSpeed)
 {
     this.AudienceSize     = AudienceSize;
     this.MonetisationType = MonetisationType;
     this.Margin           = Margin;
     this.AppComplexity    = AppComplexity;
     this.NicheSpeed       = NicheSpeed;
 }
Example #2
0
        public static string GetFormattedMonetisationType(Monetisation monetisation)
        {
            switch (monetisation)
            {
            case Monetisation.IrregularPaid: return("Irregular paid");

            default: return(monetisation.ToString());
            }
        }
        public static float GetProductPrice(MarketProfile profile, float adCost, int nicheId)
        {
            Monetisation monetisationType = profile.MonetisationType;
            Margin       margin           = profile.Margin;

            var baseCost = adCost * (100 + (int)margin);

            return(baseCost / 100f);
        }
        public static float GetAdCost(MarketProfile profile, int nicheId)
        {
            Monetisation monetisationType = profile.MonetisationType;

            var baseValue = (int)monetisationType;

            //var repaymentTime = GetSelfPaymentTime(monetisationType);
            //baseValue *= repaymentTime;

            return(Randomise(baseValue * 1000, nicheId) / 12f / 1000f);
        }
        public static float GetSelfPaymentTime(Monetisation monetisationType)
        {
            switch (monetisationType)
            {
            case Monetisation.Adverts: return(10);

            case Monetisation.Service: return(8);

            case Monetisation.Enterprise: return(5);

            case Monetisation.Paid: return(3);
            }

            return(1);
        }
Example #6
0
        public static int GetChurnRateBasedOnMonetisationType(Monetisation monetisation)
        {
            return(1);

            switch (monetisation)
            {
            case Monetisation.Adverts:
                return(70);

            case Monetisation.Service:
                return(40);

            case Monetisation.Enterprise:
            case Monetisation.IrregularPaid:
            case Monetisation.Paid:
            default:
                return(20);
            }
        }
        public static GameEntity SetMarkets(
            NicheType nicheType,
            int startDate,
            int duration,
            GameContext gameContext,
            AudienceSize AudienceSize, Monetisation MonetisationType, Margin Margin, NicheSpeed Iteration, AppComplexity ProductComplexity
            )
        {
            var profile = new MarketProfile
            {
                AudienceSize     = AudienceSize,
                NicheSpeed       = Iteration,
                Margin           = Margin,
                MonetisationType = MonetisationType,
                AppComplexity    = ProductComplexity
            };

            return(SetMarkets(nicheType, startDate, duration, gameContext, profile));
        }
Example #8
0
 GameEntity SetMarkets(NicheType nicheType,
                       int startDate,
                       int duration,
                       AudienceSize AudienceSize, Monetisation MonetisationType, Margin Margin, NicheSpeed Iteration, AppComplexity ProductComplexity
                       )
 {
     return(SetMarkets(
                nicheType,
                startDate,
                duration,
                new MarketProfile
     {
         AudienceSize = AudienceSize,
         NicheSpeed = Iteration,
         Margin = Margin,
         MonetisationType = MonetisationType,
         AppComplexity = ProductComplexity
     }
                ));
 }
Example #9
0
        public static float GetBaseMonetisationValue(Monetisation monetisation)
        {
            switch (monetisation)
            {
            case Monetisation.Adverts:
                return(0.3f);

            case Monetisation.Enterprise:
                return(0.7f);

            case Monetisation.Paid:
                return(0.7f);

            case Monetisation.Service:
                return(0.3f);

            default:
                return(0.15f);
            }
        }
Example #10
0
        public static float GetImprovementMonetisationValue(Monetisation monetisation)
        {
            switch (monetisation)
            {
            case Monetisation.Adverts:
                return(1f);

            case Monetisation.Enterprise:
                return(1f);

            case Monetisation.Paid:
                return(4f);

            case Monetisation.Service:
                return(5f);

            default:
                return(1f);
            }
        }
Example #11
0
 // monetisation
 public MarketProfile SetMonetisation(Monetisation monetisation)
 {
     MonetisationType = monetisation;
     return(this);
 }