Commit c3f5ce2246f9e3c86c5fb619316da487d0fc625b

Authored by zhangqijia
1 parent 52837c5a

fix: 赞誉度增幅中的餐厅齿轮增幅修改

Showing 2 changed files with 52 additions and 18 deletions   Show diff stats
src/models/Diner.lua
... ... @@ -232,7 +232,7 @@ function Diner:calSellReward(sell, delta, dishData, isExpedite)
232 232 upValue[-1] = (upValue[-1] or 0) + collectAdd
233 233  
234 234 -- 电波塔加成
235   - local goldCount = (self.owner:getBnousDiner(4,addReward[ItemId.Gold])) * delta
  235 + local goldCount = (self.owner:getBnousDiner(4,addReward[ItemId.Gold]/delta, true) + self.owner:getBnousByZero(4)) * delta
236 236  
237 237 for id, count in pairs(addReward) do
238 238 addReward[id] = math.floor(count * (1 + (upValue[id] or 0) / 100))
... ...
src/models/RolePlugin.lua
... ... @@ -2873,15 +2873,32 @@ function RolePlugin.bind(Role)
2873 2873 return self.towerBnousActive
2874 2874 end
2875 2875  
  2876 + function Role:bonusMerged(bonus1, bonus2)
  2877 + bonus1 = bonus1 or {}
  2878 + bonus2 = bonus2 or {}
  2879 +
  2880 + local bonus = {}
  2881 + bonus[0] = (bonus1[0] or 0) + (bonus2[0] or 0)
  2882 + bonus[1] = (bonus1[1] or 0) + (bonus2[1] or 0)
  2883 + return bonus
  2884 + end
  2885 +
  2886 + --计算公式是 (原价+固有提升数)*(1+赞誉度增幅中的百分比+电波塔中的百分比)
  2887 + --详细做法是 原价 + (原价+固有提升数) * (赞誉度增幅中的百分比+电波塔中的百分比) + 固有提升数
2876 2888 function Role:getDeltaValue(result, value)
2877 2889 if not result then return 0 end
2878 2890 local delta = 0
2879   - if result[1] and value then
2880   - delta = math.floor(value * result[1] / 100)
2881   - end
2882 2891 if result[0] then
2883 2892 delta = delta + result[0]
2884 2893 end
  2894 +
  2895 + if result[1] and value then
  2896 + if delta == 0 then
  2897 + delta = delta * result[1] / 100
  2898 + else
  2899 + delta = (delta + value )* result[1] / 100
  2900 + end
  2901 + end
2885 2902 return delta
2886 2903 end
2887 2904  
... ... @@ -2894,32 +2911,49 @@ function RolePlugin.bind(Role)
2894 2911 local towerBnous = self:getTowerBnousActive()
2895 2912 local levelBnous = self:getLevelBnous()
2896 2913  
2897   - local towerValue = self:getDeltaValue(towerBnous[SystemBnousType.CrusadeTask], value)
2898   - local levelValue = self:getDeltaValue(levelBnous[SystemBnousType.CrusadeTask], value)
2899   - return levelValue + towerValue
  2914 + local bonus = self:bonusMerged(towerBnous[SystemBnousType.CrusadeTask], levelBnous[SystemBnousType.CrusadeTask])
  2915 + return self:getDeltaValue(bonus, value)
2900 2916 end
2901 2917  
2902   - function Role:getBnousDiner(type, value)
  2918 + function Role:getBnousDiner(type, value, flag)
2903 2919 local towerBnous = self:getTowerBnousActive()
2904 2920 local levelBnous = self:getLevelBnous()
2905 2921 type = type or 1
2906   - local result, levelReault
  2922 + local bonus
2907 2923 if type == 1 then
2908   - result = towerBnous[SystemBnousType.DinerGet]
2909   - levelReault = levelBnous[SystemBnousType.DinerGet]
  2924 + bonus = self:bonusMerged(towerBnous[SystemBnousType.DinerGet], levelBnous[SystemBnousType.DinerGet])
2910 2925 elseif type == 2 then
2911   - result = towerBnous[SystemBnousType.DinerLimit]
2912   - levelReault = levelBnous[SystemBnousType.DinerLimit]
  2926 + bonus = self:bonusMerged(towerBnous[SystemBnousType.DinerLimit], levelBnous[SystemBnousType.DinerLimit])
2913 2927 elseif type == 3 then
2914   - result = towerBnous[SystemBnousType.DinerSell]
2915   - levelReault = levelBnous[SystemBnousType.DinerSell]
  2928 + bonus = self:bonusMerged(towerBnous[SystemBnousType.DinerSell], levelBnous[SystemBnousType.DinerSell])
2916 2929 elseif type == 4 then
2917   - result = towerBnous[SystemBnousType.DinerPrice]
2918   - levelReault = levelBnous[SystemBnousType.DinerPrice]
  2930 + bonus = self:bonusMerged(towerBnous[SystemBnousType.DinerPrice], levelBnous[SystemBnousType.DinerPrice])
  2931 + end
  2932 + dump(bonus)
  2933 + if not flag then
  2934 + return self:getDeltaValue(bonus, value) + (bonus[0] or 0)
  2935 + else
  2936 + return self:getDeltaValue(bonus, value)
2919 2937 end
2920   - return self:getDeltaValue(result, value) + self:getDeltaValue(levelReault, value)
2921 2938 end
2922 2939  
  2940 + function Role:getBnousByZero(type)
  2941 + local towerBnous = self:getTowerBnousActive()
  2942 + local levelBnous = self:getLevelBnous()
  2943 + type = type or 1
  2944 + local bonus
  2945 + if type == 1 then
  2946 + bonus = self:bonusMerged(towerBnous[SystemBnousType.DinerGet], levelBnous[SystemBnousType.DinerGet])
  2947 + elseif type == 2 then
  2948 + bonus = self:bonusMerged(towerBnous[SystemBnousType.DinerLimit], levelBnous[SystemBnousType.DinerLimit])
  2949 + elseif type == 3 then
  2950 + bonus = self:bonusMerged(towerBnous[SystemBnousType.DinerSell], levelBnous[SystemBnousType.DinerSell])
  2951 + elseif type == 4 then
  2952 + bonus = self:bonusMerged(towerBnous[SystemBnousType.DinerPrice], levelBnous[SystemBnousType.DinerPrice])
  2953 + end
  2954 + return (bonus[0] or 0)
  2955 + end
  2956 +
2923 2957 local function appendAdvBnous(dstBnous, srcBnous)
2924 2958 if not dstBnous and not srcBnous then return {} end
2925 2959 local result = clone(dstBnous or {})
... ...