Commit 7c3dbe6d49e6108eaa2991cc50cb8ac8971111b8
1 parent
639bbdff
feat: 一番赏 扭蛋机信息-增加roleProgress字段,标识抽取进度。
Showing
1 changed file
with
30 additions
and
16 deletions
Show diff stats
src/models/Capsule.lua
| @@ -621,24 +621,25 @@ function Capsule:checkIncentive(roleId, name, now) | @@ -621,24 +621,25 @@ function Capsule:checkIncentive(roleId, name, now) | ||
| 621 | end | 621 | end |
| 622 | 622 | ||
| 623 | local count = math.floor(amount / incentive["amount"]["np"]) | 623 | local count = math.floor(amount / incentive["amount"]["np"]) |
| 624 | - local tmpCount = count * incentive["amount"]["np"] | ||
| 625 | - notify["amount"] = {name = name, roleId= roleId, good_id = "amount", typ = RewardType.INCENTIVE, award = incentive["amount"]["award"], amount = count, quality = 2, create_time= now} | ||
| 626 | - | ||
| 627 | - --填充v.calculated 字段,标识已经用于每x抽的计算中。 | ||
| 628 | - for _, v in pairs(roleRecord) do | ||
| 629 | - if tmpCount <= 0 then break end | ||
| 630 | - | ||
| 631 | - v.calculated = v.calculated or 0 | ||
| 632 | - if v.calculated ~= v.amount then | ||
| 633 | - if tmpCount <= v.amount then | ||
| 634 | - v.calculated = tmpCount | ||
| 635 | - tmpCount = 0 | ||
| 636 | - else | ||
| 637 | - v.calculated = v.amount | ||
| 638 | - tmpCount = tmpCount - v.amount | 624 | + if count > 0 then |
| 625 | + local tmpCount = count * incentive["amount"]["np"] | ||
| 626 | + notify["amount"] = {name = name, roleId= roleId, good_id = "amount", typ = RewardType.INCENTIVE, award = incentive["amount"]["award"], amount = count, quality = 2, create_time= now} | ||
| 627 | + | ||
| 628 | + --填充v.calculated 字段,标识已经用于每x抽的计算中。 | ||
| 629 | + for _, v in pairs(roleRecord) do | ||
| 630 | + if tmpCount <= 0 then break end | ||
| 631 | + | ||
| 632 | + v.calculated = v.calculated or 0 | ||
| 633 | + if v.calculated ~= v.amount then | ||
| 634 | + if tmpCount <= v.amount then | ||
| 635 | + v.calculated = tmpCount | ||
| 636 | + tmpCount = 0 | ||
| 637 | + else | ||
| 638 | + v.calculated = v.amount | ||
| 639 | + tmpCount = tmpCount - v.amount | ||
| 640 | + end | ||
| 639 | end | 641 | end |
| 640 | end | 642 | end |
| 641 | - | ||
| 642 | end | 643 | end |
| 643 | end | 644 | end |
| 644 | 645 | ||
| @@ -917,6 +918,18 @@ function Capsule:clearSpecialNty(roleId, good_ids) | @@ -917,6 +918,18 @@ function Capsule:clearSpecialNty(roleId, good_ids) | ||
| 917 | self:setProperty("specialsRecord", specialsRecord) | 918 | self:setProperty("specialsRecord", specialsRecord) |
| 918 | end | 919 | end |
| 919 | 920 | ||
| 921 | +function Capsule:getRoleProgress(roleId) | ||
| 922 | + local recordByRole = self:getProperty("recordByRole") or {} | ||
| 923 | + local roleRecord = recordByRole[roleId] or {} | ||
| 924 | + local amount = 0 | ||
| 925 | + for _, v in pairs(roleRecord) do | ||
| 926 | + v.calculated = v.calculated or 0 | ||
| 927 | + if v.calculated ~= v.amount then | ||
| 928 | + amount = amount + (v.amount - v.calculated) | ||
| 929 | + end | ||
| 930 | + end | ||
| 931 | + return amount | ||
| 932 | +end | ||
| 920 | 933 | ||
| 921 | function Capsule:data(roleId) | 934 | function Capsule:data(roleId) |
| 922 | return { | 935 | return { |
| @@ -933,6 +946,7 @@ function Capsule:data(roleId) | @@ -933,6 +946,7 @@ function Capsule:data(roleId) | ||
| 933 | specials = self:getProperty("specials"), | 946 | specials = self:getProperty("specials"), |
| 934 | incentive = self:getProperty("incentive"), | 947 | incentive = self:getProperty("incentive"), |
| 935 | specialsRecord= self:getProperty("specialsRecord"), | 948 | specialsRecord= self:getProperty("specialsRecord"), |
| 949 | + roleProgress = self:getRoleProgress(roleId), | ||
| 936 | } | 950 | } |
| 937 | end | 951 | end |
| 938 | 952 |