Commit 43a6d57ea720a3a2c2577aa64b4fa30fd39cf77c
1 parent
2e1c7d7f
拾荒活动
Showing
3 changed files
with
72 additions
and
1 deletions
Show diff stats
src/adv/Adv.lua
@@ -178,7 +178,7 @@ end | @@ -178,7 +178,7 @@ end | ||
178 | function Adv:clear() | 178 | function Adv:clear() |
179 | self.chapterId = nil | 179 | self.chapterId = nil |
180 | self.level = nil | 180 | self.level = nil |
181 | - self.actid = 0 | 181 | + self.actid = nil |
182 | self.score = {} | 182 | self.score = {} |
183 | self.round = 0 | 183 | self.round = 0 |
184 | self.lastEnemyId = 1 | 184 | self.lastEnemyId = 1 |
@@ -769,6 +769,10 @@ function Adv:isEndless() | @@ -769,6 +769,10 @@ function Adv:isEndless() | ||
769 | return AdvCommon.isEndless(self.chapterId) | 769 | return AdvCommon.isEndless(self.chapterId) |
770 | end | 770 | end |
771 | 771 | ||
772 | +function Adv:isActivity() | ||
773 | + return self.actid ~= nil | ||
774 | +end | ||
775 | + | ||
772 | function Adv:getCurFloorData() | 776 | function Adv:getCurFloorData() |
773 | local chapter = self.chapterId % 100 | 777 | local chapter = self.chapterId % 100 |
774 | return (csvdb["adv_chapter_floorCsv"][self.chapterId] or {})[self.level] | 778 | return (csvdb["adv_chapter_floorCsv"][self.chapterId] or {})[self.level] |
src/models/Activity.lua
@@ -1030,6 +1030,55 @@ activityFunc[Activity.ActivityType.NewSign] = { | @@ -1030,6 +1030,55 @@ activityFunc[Activity.ActivityType.NewSign] = { | ||
1030 | end, | 1030 | end, |
1031 | } | 1031 | } |
1032 | 1032 | ||
1033 | +local function closeActAdvHang(role, chapterId) | ||
1034 | + local advHang = role:getProperty("advHang") | ||
1035 | + local info = advHang[chapterId] | ||
1036 | + if not info then return end | ||
1037 | + | ||
1038 | + local index = info.index or 1 | ||
1039 | + local chapterData = csvdb["adv_chapter_campsiteCsv"][chapterId] | ||
1040 | + if not chapterData then return end | ||
1041 | + local campSiteData = chapterData[info.campId or 2] | ||
1042 | + if not campSiteData then return 1 end | ||
1043 | + if campSiteData.idleReward_1 == "" and campSiteData.idleReward_2 == "" then return 2 end --没有奖励 没有挂机 | ||
1044 | + | ||
1045 | + local adv_idle_time = globalCsv.adv_idle_time[index] | ||
1046 | + local adv_idle_energy = globalCsv.adv_idle_energy[index] | ||
1047 | + local adv_idle_reward_coef = globalCsv.adv_idle_reward[index] | ||
1048 | + if not adv_idle_time or not adv_idle_energy or not adv_idle_reward_coef then | ||
1049 | + return 2 | ||
1050 | + end | ||
1051 | + adv_idle_time = adv_idle_time * 60 | ||
1052 | + | ||
1053 | + local reward, isFull, change, heroFaithMap | ||
1054 | + local heroCnt = 0 | ||
1055 | + if skynet.timex() >= info.time then | ||
1056 | + -- 增加英雄信赖 | ||
1057 | + local exp = info.duration / 60 | ||
1058 | + heroFaithMap = {} | ||
1059 | + for _, heroId in pairs(info.format.heros) do | ||
1060 | + local curFaith = role:addHeroFaith(heroId, exp) | ||
1061 | + heroFaithMap[heroId] = curFaith | ||
1062 | + heroCnt = heroCnt + 1 | ||
1063 | + end | ||
1064 | + | ||
1065 | + local totalReward = campSiteData.idleReward_1 .. " " .. campSiteData.idleReward_2 | ||
1066 | + | ||
1067 | + local idleReward = totalReward:toNumMap() | ||
1068 | + for itemId, count in pairs(idleReward) do | ||
1069 | + idleReward[itemId] = count * adv_idle_reward_coef | ||
1070 | + end | ||
1071 | + reward, change = role:award(idleReward, {log = {desc = "advHang", int1 = chapterId}}) | ||
1072 | + end | ||
1073 | + | ||
1074 | + role:changeUpdates({{type = "advHang", field = chapterId, value = nil}}) | ||
1075 | + | ||
1076 | + role:mylog("adv_action", {desc = "endHang", int1 = chapterId, short1 = 2}) | ||
1077 | + | ||
1078 | + role:checkTaskEnter("AdvHang", {}) | ||
1079 | + role:checkTaskEnter("AdvHangHeroCnt", {count = heroCnt}) | ||
1080 | +end | ||
1081 | + | ||
1033 | activityFunc[Activity.ActivityType.AdvLevel] = { | 1082 | activityFunc[Activity.ActivityType.AdvLevel] = { |
1034 | -- ["check"] = function(self, actType, notify) -- 检查 | 1083 | -- ["check"] = function(self, actType, notify) -- 检查 |
1035 | -- end, | 1084 | -- end, |
@@ -1042,7 +1091,16 @@ activityFunc[Activity.ActivityType.AdvLevel] = { | @@ -1042,7 +1091,16 @@ activityFunc[Activity.ActivityType.AdvLevel] = { | ||
1042 | local advPass = self.owner:getProperty("advPass") | 1091 | local advPass = self.owner:getProperty("advPass") |
1043 | advPass[chapterId] = nil | 1092 | advPass[chapterId] = nil |
1044 | self.owner:updateProperty({field="advPass", value=advPass}) | 1093 | self.owner:updateProperty({field="advPass", value=advPass}) |
1094 | + | ||
1095 | + -- 关闭活动代理拾荒 | ||
1096 | + closeActAdvHang(chapterId) | ||
1097 | + end | ||
1098 | + -- 强制关闭活动拾荒关卡 | ||
1099 | + local adv = self:getAdvData() | ||
1100 | + if adv:isRunning() and adv:isActivity() then | ||
1101 | + adv:forceOver() | ||
1045 | end | 1102 | end |
1103 | + | ||
1046 | end, | 1104 | end, |
1047 | } | 1105 | } |
1048 | 1106 |
src/models/RolePlugin.lua
@@ -2049,6 +2049,15 @@ function RolePlugin.bind(Role) | @@ -2049,6 +2049,15 @@ function RolePlugin.bind(Role) | ||
2049 | return {list = list, rank = rank} | 2049 | return {list = list, rank = rank} |
2050 | end | 2050 | end |
2051 | 2051 | ||
2052 | + function Role:addHeroFaith(heroId, exp) | ||
2053 | + local hero = self.heros[heroId] | ||
2054 | + if not hero then | ||
2055 | + return | ||
2056 | + end | ||
2057 | + | ||
2058 | + hero:addHeroFaith(exp) | ||
2059 | + return hero:getProperty("faith") | ||
2060 | + end | ||
2052 | 2061 | ||
2053 | end | 2062 | end |
2054 | 2063 |