///// <summary> ///// 售票口基础产出公式:Y=base*0.05*1.07^((lv*1.6)-1) ///// </summary> ///// <returns></returns> //public static System.Numerics.BigInteger GetEntryBaseTollPrice(int level) //{ // if (level<1) // { // //Logger.LogWarp.LogError("等级为0"); // level = 1; // } // int baseprice = Config.ticketConfig.getInstace().getCell(1).pricebase; // int number = (int)(level * 1.6f) - 1; // //1.07^((lv*1.6)-1) // var numerator = System.Numerics.BigInteger.Parse("107"); // numerator = System.Numerics.BigInteger.Pow(numerator, number); // var denominator = System.Numerics.BigInteger.Parse("100"); // denominator = System.Numerics.BigInteger.Pow(denominator, number); // //base * 0.05 * numerator/(denominator*100) // var price = numerator * baseprice*5 / (denominator*100); // return price; //} /// <summary> /// 售票口门票价格 /// </summary> /// <returns></returns> public static System.Numerics.BigInteger GetEntryPrice(int level, int sceneID, bool noBuffAffect) { //Y=pricebase*等级段加成*(0.1*lv+0.9)*场景加成*BUFF加成+MIN(5*lv,500) if (sceneID == -1) { sceneID = GlobalDataManager.GetInstance().playerData.playerZoo.currSceneID; } var allData = Config.ticketConfig.getInstace().AllData; Config.ticketCell ticketCell = null; foreach (var item in allData) { if (item.Value.scene == sceneID) { ticketCell = item.Value; break; } } //pricebase var pricebase = System.Numerics.BigInteger.Parse(ticketCell.pricebase); //等级段加成 var lvAddition = GetLevelAddition(ticketCell, level); //(0.1*lv+0.9) float idx_1 = 0.1f * level + 0.9f; //场景加成 int doublenum = Config.sceneConfig.getInstace().getCell(sceneID).doublenum; //BUFF加成 float buffAll = PlayerDataModule.PlayerRatioCoinInComeAll(sceneID, noBuffAffect); //MIN(5*lv,500) int idx_2 = level; var price = pricebase * doublenum * lvAddition * GetInteger(idx_1 * buffAll * 100) / 100 + idx_2; //LogWarp.LogErrorFormat("测试:pricebase={0},等级段加成={1},产出基数={2},场景加成={3},BUFF加成={4},MIN(5*lv,500)={5}", // pricebase, lvAddition, idx_1, doublenum, buffAll, idx_2); return(price); }
/// <summary> /// 动物栏门票: /// </summary> /// <param name="level">动物栏等级</param> /// <returns></returns> public static System.Numerics.BigInteger GetLittleZooPrice(int littleZooID, int level, bool isNeedMulBuff = false) { /* Y=pricebase*等级段加成*动物栏产出基数*场景加成*BUFF加成+MIN(5*lv,500) */ var buildupCell = Config.buildupConfig.getInstace().getCell(littleZooID); int sceneID = buildupCell.scene; //基础值 System.Numerics.BigInteger pricebase = System.Numerics.BigInteger.Parse(buildupCell.pricebase); //等级段加成 var lvAddition = GetLevelAddition(buildupCell, level); //动物栏产出基数 var baseTollPrice = GetLittleZooBaseTollPrice(littleZooID, level); //场景加成 int doublenum = Config.sceneConfig.getInstace().getCell(sceneID).doublenum; //buff加成 float buffAll = PlayerDataModule.PlayerRatioCoinInComeAll(sceneID, isNeedMulBuff); //MIN(5*lv,500) int idx_2 = level; var price = pricebase * lvAddition * doublenum * GetInteger(baseTollPrice * buffAll * 100) / 100 + idx_2; //LogWarp.LogErrorFormat("测试:pricebase={0},等级段加成={1},动物栏产出基数={2},场景加成={3},BUFF加成={4}", // pricebase, lvAddition, baseTollPrice, doublenum, buffAll); return(price); }