Commit c3f5ce2246f9e3c86c5fb619316da487d0fc625b
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 {}) | ... | ... |