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; }
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); }
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)); }
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 } )); }
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); } }
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); } }
// monetisation public MarketProfile SetMonetisation(Monetisation monetisation) { MonetisationType = monetisation; return(this); }