diff --git a/lua/app/common/bi_report.lua b/lua/app/common/bi_report.lua index 10a43412..984c4a77 100644 --- a/lua/app/common/bi_report.lua +++ b/lua/app/common/bi_report.lua @@ -66,14 +66,17 @@ BIReport.ITEM_GET_TYPE = { TASK_DAILY_REWARD = "TaskDailyReward", BOUNTY_UNLOCK_LEVEL = "BountyUnlockLevel", BOUNTY_REWARD = "BountyReward", - BOUNTY = "Bounty" + BOUNTY = "Bounty", + IDLE_DROP = "IdleDrop", + IDLE_QUICK_DROP = "IdleQuickDrop", } BIReport.ADS_CLICK_TYPE = { BATTLE_SKILL_REFRESH = "BattleSkillRefresh", AD_ENERGY = "AdEnergy", TASK_DAILY_REFRESH = "TaskDailyRefresh", - TASK_DAILY_TASK = "TaskDailyTask" + TASK_DAILY_TASK = "TaskDailyTask", + IDLE_QUICK_DROP = "IdleQuickDrop", } BIReport.FIGHT_OPT_TYPE = { diff --git a/lua/app/common/data_manager.lua b/lua/app/common/data_manager.lua index 0db92cc0..76486734 100644 --- a/lua/app/common/data_manager.lua +++ b/lua/app/common/data_manager.lua @@ -13,11 +13,12 @@ function DataManager:init() self:initManager("BattleData", "app/userdata/battle/battle_data") self:initManager("FormationData", "app/userdata/formation/formation_data") self:initManager("TutorialData", "app/userdata/tutorial/tutorial_data") + self:initManager("MailData", "app/userdata/mail/mail_data") self:initManager("ActivityData", "app/userdata/activity/activity_data") self:initManager("GodPigData", "app/userdata/activity/god_pig/god_pig_data") self:initManager("BountyData", "app/userdata/bounty/bounty_data") self:initManager("DailyTaskData", "app/userdata/task/daily_task_data") - -- self:initManager("IdleData", "app/userdata/idle/idle_data") + self:initManager("IdleData", "app/userdata/idle/idle_data") -- self:initManager("SevenDayData", "app/userdata/activity/seven_day/seven_day_data") end @@ -82,10 +83,11 @@ function DataManager:clear() self.BagData:clear() self.FormationData:clear() self.ActivityData:clear() + self.MailData:clear() self.GodPigData:clear() self.BountyData:clear() self.DailyTaskData:clear() - -- self.IdleData:clear() + self.IdleData:clear() -- self.SevenDayData:clear() ModuleManager.TaskManager:clear() @@ -110,12 +112,13 @@ function DataManager:initWithServerData(data) self.BagData:init(data.bag) self.FormationData:init(data.fight_info) self.TutorialData:init(data.guide) + self.MailData:init(data.mail_info) self.ActivityData:init() self.GodPigData:init() self.BountyData:init(data.bounty) -- 任务要在BountyData之后初始化,依赖BountyData的数据 self.DailyTaskData:init(data.task_daily) - -- self.IdleData:clear(data.IdleData) + self.IdleData:init(data.idle) -- self.SevenDayData:init(data.SevenDayData) self:scheduleGlobal() diff --git a/lua/app/common/local_data.lua b/lua/app/common/local_data.lua index 66b245f3..616238b6 100644 --- a/lua/app/common/local_data.lua +++ b/lua/app/common/local_data.lua @@ -26,6 +26,7 @@ local LOCAL_DATA_KEY = { DISTINCT_ID = "DISTINCT_ID", LAST_LOGIN_TIME = "LAST_LOGIN_TIME", GATE = "GATE", + BOUNTY_POP_TIME = "BOUNTY_POP_TIME", } LocalData.KEYS = LOCAL_DATA_KEY @@ -336,4 +337,12 @@ function LocalData:setLastLoginTime() end +function LocalData:setBountyPopTime(time) + self:setInt(LOCAL_DATA_KEY.BOUNTY_POP_TIME, time) +end + +function LocalData:getBountyPopTime() + return self:getInt(LOCAL_DATA_KEY.BOUNTY_POP_TIME, 0) +end + return LocalData \ No newline at end of file diff --git a/lua/app/common/module_manager.lua b/lua/app/common/module_manager.lua index f5af965e..85515eec 100644 --- a/lua/app/common/module_manager.lua +++ b/lua/app/common/module_manager.lua @@ -37,6 +37,8 @@ local MODULE_PATHS = { BountyManager = "app/module/bounty/bounty_manager", -- 商店 ShopManager = "app/module/shop/shop_manager", + -- 邮件 + MailManager = "app/module/mail/mail_manager", } -- 这里的key对应func_open里的id @@ -46,6 +48,7 @@ ModuleManager.MODULE_KEY = { STORE_BOX_OPEN = "store_box_open", STORE_BOX_3_OPEN = "store_box_3_open", BOUNTY_OPEN = "bounty_open", + IDLE_DROP = "idle_drop", } local _moduleMgrs = {} diff --git a/lua/app/config/bounty_level.lua b/lua/app/config/bounty_level.lua index 2e850f78..f717a09d 100644 --- a/lua/app/config/bounty_level.lua +++ b/lua/app/config/bounty_level.lua @@ -7,8 +7,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -27,8 +27,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -67,8 +67,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -87,8 +87,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -127,8 +127,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -147,8 +147,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -185,18 +185,18 @@ local bounty_level = { ["reward"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=5, - ["id_for_nothing"]="Uw==", + ["id"]=8, + ["id_for_nothing"]="Xg==", ["num"]=10, ["num_for_nothing"]="Vwg=" }, ["reward_pro"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=44001, - ["id_for_nothing"]="UgxcA2Q=", - ["num"]=3, - ["num_for_nothing"]="VQ==" + ["id"]=9, + ["id_for_nothing"]="Xw==", + ["num"]=10, + ["num_for_nothing"]="Vwg=" }, ["reward_type"]=1 }, @@ -208,8 +208,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -228,8 +228,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -268,8 +268,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -288,8 +288,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -328,8 +328,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -348,8 +348,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -386,18 +386,18 @@ local bounty_level = { ["reward"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=5, - ["id_for_nothing"]="Uw==", + ["id"]=8, + ["id_for_nothing"]="Xg==", ["num"]=10, ["num_for_nothing"]="Vwg=" }, ["reward_pro"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=44001, - ["id_for_nothing"]="UgxcA2Q=", - ["num"]=3, - ["num_for_nothing"]="VQ==" + ["id"]=9, + ["id_for_nothing"]="Xw==", + ["num"]=10, + ["num_for_nothing"]="Vwg=" }, ["reward_type"]=1 }, @@ -409,8 +409,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -429,8 +429,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -469,8 +469,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -489,8 +489,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -529,8 +529,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -549,8 +549,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -587,18 +587,18 @@ local bounty_level = { ["reward"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=5, - ["id_for_nothing"]="Uw==", + ["id"]=8, + ["id_for_nothing"]="Xg==", ["num"]=10, ["num_for_nothing"]="Vwg=" }, ["reward_pro"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=44001, - ["id_for_nothing"]="UgxcA2Q=", - ["num"]=3, - ["num_for_nothing"]="VQ==" + ["id"]=9, + ["id_for_nothing"]="Xw==", + ["num"]=10, + ["num_for_nothing"]="Vwg=" }, ["reward_type"]=1 }, @@ -610,8 +610,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -630,8 +630,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -670,8 +670,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -690,8 +690,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -730,8 +730,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -750,8 +750,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -788,18 +788,18 @@ local bounty_level = { ["reward"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=5, - ["id_for_nothing"]="Uw==", + ["id"]=11, + ["id_for_nothing"]="Vwk=", ["num"]=10, ["num_for_nothing"]="Vwg=" }, ["reward_pro"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=44001, - ["id_for_nothing"]="UgxcA2Q=", - ["num"]=3, - ["num_for_nothing"]="VQ==" + ["id"]=18, + ["id_for_nothing"]="VwA=", + ["num"]=10, + ["num_for_nothing"]="Vwg=" }, ["reward_type"]=1 }, @@ -811,8 +811,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -831,8 +831,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -871,8 +871,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -891,8 +891,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -931,8 +931,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -951,8 +951,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -989,18 +989,18 @@ local bounty_level = { ["reward"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=5, - ["id_for_nothing"]="Uw==", + ["id"]=8, + ["id_for_nothing"]="Xg==", ["num"]=10, ["num_for_nothing"]="Vwg=" }, ["reward_pro"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=44001, - ["id_for_nothing"]="UgxcA2Q=", - ["num"]=3, - ["num_for_nothing"]="VQ==" + ["id"]=9, + ["id_for_nothing"]="Xw==", + ["num"]=10, + ["num_for_nothing"]="Vwg=" }, ["reward_type"]=1 }, @@ -1012,8 +1012,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -1032,8 +1032,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -1072,8 +1072,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -1092,8 +1092,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -1132,8 +1132,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -1152,8 +1152,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -1190,18 +1190,18 @@ local bounty_level = { ["reward"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=5, - ["id_for_nothing"]="Uw==", + ["id"]=11, + ["id_for_nothing"]="Vwk=", ["num"]=10, ["num_for_nothing"]="Vwg=" }, ["reward_pro"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=44001, - ["id_for_nothing"]="UgxcA2Q=", - ["num"]=3, - ["num_for_nothing"]="VQ==" + ["id"]=18, + ["id_for_nothing"]="VwA=", + ["num"]=10, + ["num_for_nothing"]="Vwg=" }, ["reward_type"]=1 }, @@ -1213,8 +1213,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -1233,8 +1233,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -1273,8 +1273,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -1293,8 +1293,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -1333,8 +1333,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -1353,8 +1353,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -1391,18 +1391,18 @@ local bounty_level = { ["reward"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=5, - ["id_for_nothing"]="Uw==", + ["id"]=11, + ["id_for_nothing"]="Vwk=", ["num"]=10, ["num_for_nothing"]="Vwg=" }, ["reward_pro"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=44001, - ["id_for_nothing"]="UgxcA2Q=", - ["num"]=3, - ["num_for_nothing"]="VQ==" + ["id"]=12, + ["id_for_nothing"]="Vwo=", + ["num"]=10, + ["num_for_nothing"]="Vwg=" }, ["reward_type"]=1 }, @@ -1414,8 +1414,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -1434,8 +1434,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -1474,8 +1474,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -1494,8 +1494,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -1534,8 +1534,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -1554,8 +1554,8 @@ local bounty_level = { ["type_for_nothing"]="Vw==", ["id"]=1, ["id_for_nothing"]="Vw==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["num"]=100, + ["num_for_nothing"]="Vwhc" }, ["reward_pro"]={ ["type"]=1, @@ -1592,18 +1592,18 @@ local bounty_level = { ["reward"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=5, - ["id_for_nothing"]="Uw==", - ["num"]=10, - ["num_for_nothing"]="Vwg=" + ["id"]=10, + ["id_for_nothing"]="Vwg=", + ["num"]=1, + ["num_for_nothing"]="Vw==" }, ["reward_pro"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=44001, - ["id_for_nothing"]="UgxcA2Q=", - ["num"]=3, - ["num_for_nothing"]="VQ==" + ["id"]=6, + ["id_for_nothing"]="UA==", + ["num"]=10, + ["num_for_nothing"]="Vwg=" }, ["reward_type"]=1 }, @@ -1613,8 +1613,8 @@ local bounty_level = { ["reward"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=6, - ["id_for_nothing"]="UA==", + ["id"]=10, + ["id_for_nothing"]="Vwg=", ["num"]=1, ["num_for_nothing"]="Vw==" } @@ -1633,10 +1633,10 @@ local bounty_level = { ["reward_pro"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=2, - ["id_for_nothing"]="VA==", - ["num"]=1, - ["num_for_nothing"]="Vw==" + ["id"]=44001, + ["id_for_nothing"]="UgxcA2Q=", + ["num"]=3, + ["num_for_nothing"]="VQ==" } }, [202]={ @@ -1805,16 +1805,16 @@ local bounty_level = { ["reward"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=5, - ["id_for_nothing"]="Uw==", + ["id"]=8, + ["id_for_nothing"]="Xg==", ["num"]=10, ["num_for_nothing"]="Vwg=" }, ["reward_pro"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=6, - ["id_for_nothing"]="UA==", + ["id"]=9, + ["id_for_nothing"]="Xw==", ["num"]=10, ["num_for_nothing"]="Vwg=" }, @@ -2006,16 +2006,16 @@ local bounty_level = { ["reward"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=5, - ["id_for_nothing"]="Uw==", + ["id"]=8, + ["id_for_nothing"]="Xg==", ["num"]=10, ["num_for_nothing"]="Vwg=" }, ["reward_pro"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=6, - ["id_for_nothing"]="UA==", + ["id"]=9, + ["id_for_nothing"]="Xw==", ["num"]=10, ["num_for_nothing"]="Vwg=" }, @@ -2207,16 +2207,16 @@ local bounty_level = { ["reward"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=5, - ["id_for_nothing"]="Uw==", + ["id"]=8, + ["id_for_nothing"]="Xg==", ["num"]=10, ["num_for_nothing"]="Vwg=" }, ["reward_pro"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=6, - ["id_for_nothing"]="UA==", + ["id"]=9, + ["id_for_nothing"]="Xw==", ["num"]=10, ["num_for_nothing"]="Vwg=" }, @@ -2408,16 +2408,16 @@ local bounty_level = { ["reward"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=5, - ["id_for_nothing"]="Uw==", + ["id"]=11, + ["id_for_nothing"]="Vwk=", ["num"]=10, ["num_for_nothing"]="Vwg=" }, ["reward_pro"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=6, - ["id_for_nothing"]="UA==", + ["id"]=18, + ["id_for_nothing"]="VwA=", ["num"]=10, ["num_for_nothing"]="Vwg=" }, @@ -2609,16 +2609,16 @@ local bounty_level = { ["reward"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=5, - ["id_for_nothing"]="Uw==", + ["id"]=8, + ["id_for_nothing"]="Xg==", ["num"]=10, ["num_for_nothing"]="Vwg=" }, ["reward_pro"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=6, - ["id_for_nothing"]="UA==", + ["id"]=9, + ["id_for_nothing"]="Xw==", ["num"]=10, ["num_for_nothing"]="Vwg=" }, @@ -2810,16 +2810,16 @@ local bounty_level = { ["reward"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=5, - ["id_for_nothing"]="Uw==", + ["id"]=11, + ["id_for_nothing"]="Vwk=", ["num"]=10, ["num_for_nothing"]="Vwg=" }, ["reward_pro"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=6, - ["id_for_nothing"]="UA==", + ["id"]=18, + ["id_for_nothing"]="VwA=", ["num"]=10, ["num_for_nothing"]="Vwg=" }, @@ -3011,16 +3011,16 @@ local bounty_level = { ["reward"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=5, - ["id_for_nothing"]="Uw==", + ["id"]=11, + ["id_for_nothing"]="Vwk=", ["num"]=10, ["num_for_nothing"]="Vwg=" }, ["reward_pro"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=6, - ["id_for_nothing"]="UA==", + ["id"]=12, + ["id_for_nothing"]="Vwo=", ["num"]=10, ["num_for_nothing"]="Vwg=" }, @@ -3212,16 +3212,16 @@ local bounty_level = { ["reward"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=5, - ["id_for_nothing"]="Uw==", - ["num"]=10, - ["num_for_nothing"]="Vwg=" + ["id"]=10, + ["id_for_nothing"]="Vwg=", + ["num"]=1, + ["num_for_nothing"]="Vw==" }, ["reward_pro"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=6, - ["id_for_nothing"]="UA==", + ["id"]=44001, + ["id_for_nothing"]="UgxcA2Q=", ["num"]=10, ["num_for_nothing"]="Vwg=" }, @@ -3233,8 +3233,8 @@ local bounty_level = { ["reward"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=6, - ["id_for_nothing"]="UA==", + ["id"]=10, + ["id_for_nothing"]="Vwg=", ["num"]=1, ["num_for_nothing"]="Vw==" } diff --git a/lua/app/config/buff.lua b/lua/app/config/buff.lua index d34024ef..44b8c0f6 100644 --- a/lua/app/config/buff.lua +++ b/lua/app/config/buff.lua @@ -236,7 +236,6 @@ local buff = { [33]={ ["name"]="stun", ["buff_type"]=8, - ["stack"]=2, ["decr"]=2, ["icon"]="stun", ["control_priority"]=2, @@ -265,7 +264,6 @@ local buff = { [36]={ ["name"]="normal_attack_dec", ["buff_type"]=1, - ["stack"]=2, ["decr"]=2, ["icon"]="normal_attack_dec", ["fx_continued"]={ @@ -416,6 +414,7 @@ local buff = { [60]={ ["name"]="skill_hurt_add", ["buff_type"]=1, + ["stack"]=2, ["decr"]=1 }, [61]={ @@ -489,6 +488,42 @@ local buff = { ["name"]="death_summon", ["buff_type"]=1, ["decr"]=3 + }, + [73]={ + ["name"]="shield_rebound_400", + ["buff_type"]=2, + ["decr"]=3, + ["icon"]="shield", + ["fx_continued"]={ + 11 + }, + ["fx_disappear"]={ + 14 + } + }, + [74]={ + ["name"]="shield_ice", + ["buff_type"]=2, + ["decr"]=3, + ["icon"]="shield_ice", + ["fx_continued"]={ + 11 + }, + ["fx_disappear"]={ + 14 + } + }, + [75]={ + ["name"]="shield_ice_rebound_400", + ["buff_type"]=2, + ["decr"]=3, + ["icon"]="shield_ice", + ["fx_continued"]={ + 11 + }, + ["fx_disappear"]={ + 14 + } } } local keys = { @@ -564,12 +599,15 @@ local keys = { ["dmg_dec_all_add"]=buff[69], ["be_sucked"]=buff[70], ["be_dmg_to_heal"]=buff[71], - ["death_summon"]=buff[72] + ["death_summon"]=buff[72], + ["shield_rebound_400"]=buff[73], + ["shield_ice"]=buff[74], + ["shield_ice_rebound_400"]=buff[75] } } local config = { data=buff, keys=keys, -count=72 +count=75 } return config \ No newline at end of file diff --git a/lua/app/config/chapter.lua b/lua/app/config/chapter.lua index 6710e77c..908c6726 100644 --- a/lua/app/config/chapter.lua +++ b/lua/app/config/chapter.lua @@ -14,9 +14,9 @@ local chapter = { }, ["involved_skill"]={ { - 3200101, - 2200101, - 4200101 + 3200100, + 2200100, + 4200100 } }, ["not_involved_skill"]={ @@ -40,24 +40,6 @@ local chapter = { 401, 501 }, - ["mystery_box"]={ - { - 1, - 5 - } - }, - ["mystery_box_reward"]={ - { - { - ["type"]=1, - ["type_for_nothing"]="Vw==", - ["id"]=2, - ["id_for_nothing"]="VA==", - ["num"]=10, - ["num_for_nothing"]="Vwg=" - } - } - }, ["wave_reward"]={ { ["type"]=1, @@ -106,41 +88,17 @@ local chapter = { ["idle_exp"]=11, ["idle_gold"]=16, ["idle_drop"]={ + { + ["type"]=1, + ["id"]=4, + ["num"]=3, + ["weight"]=100 + }, { ["type"]=1, ["id"]=5, ["num"]=1, ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=6, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=7, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=8, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=9, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=10, - ["num"]=1, - ["weight"]=100 } } }, @@ -179,26 +137,9 @@ local chapter = { 1501 }, ["mystery_box"]={ - { - 1, - 5 - }, - { - 6, - 10 - } + 1 }, ["mystery_box_reward"]={ - { - { - ["type"]=1, - ["type_for_nothing"]="Vw==", - ["id"]=2, - ["id_for_nothing"]="VA==", - ["num"]=10, - ["num_for_nothing"]="Vwg=" - } - }, { { ["type"]=1, @@ -301,41 +242,17 @@ local chapter = { ["idle_exp"]=12, ["idle_gold"]=17, ["idle_drop"]={ + { + ["type"]=1, + ["id"]=4, + ["num"]=3, + ["weight"]=100 + }, { ["type"]=1, ["id"]=5, ["num"]=1, ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=6, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=7, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=8, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=9, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=10, - ["num"]=1, - ["weight"]=100 } } }, @@ -369,22 +286,16 @@ local chapter = { 3001 }, ["mystery_box"]={ - { - 1, - 5 - }, - { - 6, - 10 - } + 1, + 3 }, ["mystery_box_reward"]={ { { ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=2, - ["id_for_nothing"]="VA==", + ["id"]=4, + ["id_for_nothing"]="Ug==", ["num"]=10, ["num_for_nothing"]="Vwg=" } @@ -507,41 +418,17 @@ local chapter = { ["idle_exp"]=13, ["idle_gold"]=18, ["idle_drop"]={ + { + ["type"]=1, + ["id"]=4, + ["num"]=3, + ["weight"]=100 + }, { ["type"]=1, ["id"]=5, ["num"]=1, ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=6, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=7, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=8, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=9, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=10, - ["num"]=1, - ["weight"]=100 } } }, @@ -580,38 +467,6 @@ local chapter = { 4901, 5001 }, - ["mystery_box"]={ - { - 1, - 5 - }, - { - 6, - 10 - } - }, - ["mystery_box_reward"]={ - { - { - ["type"]=1, - ["type_for_nothing"]="Vw==", - ["id"]=2, - ["id_for_nothing"]="VA==", - ["num"]=10, - ["num_for_nothing"]="Vwg=" - } - }, - { - { - ["type"]=1, - ["type_for_nothing"]="Vw==", - ["id"]=2, - ["id_for_nothing"]="VA==", - ["num"]=10, - ["num_for_nothing"]="Vwg=" - } - } - }, ["wave_reward"]={ { ["type"]=1, @@ -746,41 +601,17 @@ local chapter = { ["idle_exp"]=14, ["idle_gold"]=19, ["idle_drop"]={ + { + ["type"]=1, + ["id"]=4, + ["num"]=3, + ["weight"]=100 + }, { ["type"]=1, ["id"]=5, ["num"]=1, ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=6, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=7, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=8, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=9, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=10, - ["num"]=1, - ["weight"]=100 } } }, @@ -819,38 +650,6 @@ local chapter = { 6901, 7001 }, - ["mystery_box"]={ - { - 1, - 5 - }, - { - 6, - 10 - } - }, - ["mystery_box_reward"]={ - { - { - ["type"]=1, - ["type_for_nothing"]="Vw==", - ["id"]=2, - ["id_for_nothing"]="VA==", - ["num"]=10, - ["num_for_nothing"]="Vwg=" - } - }, - { - { - ["type"]=1, - ["type_for_nothing"]="Vw==", - ["id"]=2, - ["id_for_nothing"]="VA==", - ["num"]=10, - ["num_for_nothing"]="Vwg=" - } - } - }, ["wave_reward"]={ { ["type"]=1, @@ -985,41 +784,17 @@ local chapter = { ["idle_exp"]=15, ["idle_gold"]=20, ["idle_drop"]={ + { + ["type"]=1, + ["id"]=4, + ["num"]=3, + ["weight"]=100 + }, { ["type"]=1, ["id"]=5, ["num"]=1, ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=6, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=7, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=8, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=9, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=10, - ["num"]=1, - ["weight"]=100 } } }, @@ -1058,38 +833,6 @@ local chapter = { 8901, 9001 }, - ["mystery_box"]={ - { - 1, - 5 - }, - { - 6, - 10 - } - }, - ["mystery_box_reward"]={ - { - { - ["type"]=1, - ["type_for_nothing"]="Vw==", - ["id"]=2, - ["id_for_nothing"]="VA==", - ["num"]=10, - ["num_for_nothing"]="Vwg=" - } - }, - { - { - ["type"]=1, - ["type_for_nothing"]="Vw==", - ["id"]=2, - ["id_for_nothing"]="VA==", - ["num"]=10, - ["num_for_nothing"]="Vwg=" - } - } - }, ["wave_reward"]={ { ["type"]=1, @@ -1224,41 +967,17 @@ local chapter = { ["idle_exp"]=16, ["idle_gold"]=21, ["idle_drop"]={ + { + ["type"]=1, + ["id"]=4, + ["num"]=3, + ["weight"]=100 + }, { ["type"]=1, ["id"]=5, ["num"]=1, ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=6, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=7, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=8, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=9, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=10, - ["num"]=1, - ["weight"]=100 } } }, @@ -1297,38 +1016,6 @@ local chapter = { 10901, 11001 }, - ["mystery_box"]={ - { - 1, - 5 - }, - { - 6, - 10 - } - }, - ["mystery_box_reward"]={ - { - { - ["type"]=1, - ["type_for_nothing"]="Vw==", - ["id"]=2, - ["id_for_nothing"]="VA==", - ["num"]=10, - ["num_for_nothing"]="Vwg=" - } - }, - { - { - ["type"]=1, - ["type_for_nothing"]="Vw==", - ["id"]=2, - ["id_for_nothing"]="VA==", - ["num"]=10, - ["num_for_nothing"]="Vwg=" - } - } - }, ["wave_reward"]={ { ["type"]=1, @@ -1479,41 +1166,17 @@ local chapter = { ["idle_exp"]=17, ["idle_gold"]=22, ["idle_drop"]={ + { + ["type"]=1, + ["id"]=4, + ["num"]=3, + ["weight"]=100 + }, { ["type"]=1, ["id"]=5, ["num"]=1, ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=6, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=7, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=8, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=9, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=10, - ["num"]=1, - ["weight"]=100 } } }, @@ -1552,38 +1215,6 @@ local chapter = { 12901, 13001 }, - ["mystery_box"]={ - { - 1, - 5 - }, - { - 6, - 10 - } - }, - ["mystery_box_reward"]={ - { - { - ["type"]=1, - ["type_for_nothing"]="Vw==", - ["id"]=2, - ["id_for_nothing"]="VA==", - ["num"]=10, - ["num_for_nothing"]="Vwg=" - } - }, - { - { - ["type"]=1, - ["type_for_nothing"]="Vw==", - ["id"]=2, - ["id_for_nothing"]="VA==", - ["num"]=10, - ["num_for_nothing"]="Vwg=" - } - } - }, ["wave_reward"]={ { ["type"]=1, @@ -1734,41 +1365,17 @@ local chapter = { ["idle_exp"]=18, ["idle_gold"]=23, ["idle_drop"]={ + { + ["type"]=1, + ["id"]=4, + ["num"]=3, + ["weight"]=100 + }, { ["type"]=1, ["id"]=5, ["num"]=1, ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=6, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=7, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=8, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=9, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=10, - ["num"]=1, - ["weight"]=100 } } }, @@ -1807,38 +1414,6 @@ local chapter = { 14901, 15001 }, - ["mystery_box"]={ - { - 1, - 5 - }, - { - 6, - 10 - } - }, - ["mystery_box_reward"]={ - { - { - ["type"]=1, - ["type_for_nothing"]="Vw==", - ["id"]=2, - ["id_for_nothing"]="VA==", - ["num"]=10, - ["num_for_nothing"]="Vwg=" - } - }, - { - { - ["type"]=1, - ["type_for_nothing"]="Vw==", - ["id"]=2, - ["id_for_nothing"]="VA==", - ["num"]=10, - ["num_for_nothing"]="Vwg=" - } - } - }, ["wave_reward"]={ { ["type"]=1, @@ -1989,41 +1564,17 @@ local chapter = { ["idle_exp"]=19, ["idle_gold"]=24, ["idle_drop"]={ + { + ["type"]=1, + ["id"]=4, + ["num"]=3, + ["weight"]=100 + }, { ["type"]=1, ["id"]=5, ["num"]=1, ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=6, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=7, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=8, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=9, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=10, - ["num"]=1, - ["weight"]=100 } } }, @@ -2061,38 +1612,6 @@ local chapter = { 16901, 17001 }, - ["mystery_box"]={ - { - 1, - 5 - }, - { - 6, - 10 - } - }, - ["mystery_box_reward"]={ - { - { - ["type"]=1, - ["type_for_nothing"]="Vw==", - ["id"]=2, - ["id_for_nothing"]="VA==", - ["num"]=10, - ["num_for_nothing"]="Vwg=" - } - }, - { - { - ["type"]=1, - ["type_for_nothing"]="Vw==", - ["id"]=2, - ["id_for_nothing"]="VA==", - ["num"]=10, - ["num_for_nothing"]="Vwg=" - } - } - }, ["wave_reward"]={ { ["type"]=1, @@ -2243,41 +1762,17 @@ local chapter = { ["idle_exp"]=20, ["idle_gold"]=25, ["idle_drop"]={ + { + ["type"]=1, + ["id"]=4, + ["num"]=3, + ["weight"]=100 + }, { ["type"]=1, ["id"]=5, ["num"]=1, ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=6, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=7, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=8, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=9, - ["num"]=1, - ["weight"]=100 - }, - { - ["type"]=1, - ["id"]=10, - ["num"]=1, - ["weight"]=100 } } } diff --git a/lua/app/config/chapter_board.lua b/lua/app/config/chapter_board.lua index 9c657bc0..a53bee14 100644 --- a/lua/app/config/chapter_board.lua +++ b/lua/app/config/chapter_board.lua @@ -198,21 +198,6 @@ local chapter_board = { 0 } }, - ["control_element"]={ - 3, - 3, - 2, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3 - }, ["control_element"]={ 3, 3, @@ -292,7 +277,7 @@ local chapter_board = { 0 }, { - 2, + 14, 0 }, { @@ -308,7 +293,7 @@ local chapter_board = { 0 }, { - 2, + 14, 0 }, { @@ -427,6 +412,204 @@ local chapter_board = { 1, 0 } + }, + ["mystery_box_board"]={ + { + 1, + 0 + }, + { + 2, + 0 + }, + { + 0, + 1 + }, + { + 0, + 2 + }, + { + 0, + 1 + }, + { + 2, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 0, + 3 + }, + { + 0, + 1 + }, + { + 0, + 3 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 14, + 0 + }, + { + 2, + 0 + }, + { + 2, + 0 + }, + { + 2, + 0 + }, + { + 14, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 2, + 0 + }, + { + 2, + 0 + }, + { + 2, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 2, + 0 + }, + { + 15, + 0 + }, + { + 2, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + } } }, [3]={ @@ -552,7 +735,7 @@ local chapter_board = { 0 }, { - 2, + 14, 0 }, { @@ -560,7 +743,7 @@ local chapter_board = { 0 }, { - 2, + 14, 0 }, { @@ -716,7 +899,7 @@ local chapter_board = { 0 }, { - 2, + 14, 0 }, { @@ -740,7 +923,7 @@ local chapter_board = { 0 }, { - 2, + 14, 0 }, { @@ -764,7 +947,7 @@ local chapter_board = { 0 }, { - 3, + 2, 0 }, { @@ -827,6 +1010,204 @@ local chapter_board = { 1, 0 } + }, + ["mystery_box_board"]={ + { + 1, + 0 + }, + { + 2, + 0 + }, + { + 0, + 1 + }, + { + 0, + 2 + }, + { + 0, + 1 + }, + { + 2, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 2, + 0 + }, + { + 0, + 2 + }, + { + 0, + 1 + }, + { + 0, + 4 + }, + { + 2, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 2, + 0 + }, + { + 3, + 0 + }, + { + 0, + 2 + }, + { + 3, + 0 + }, + { + 2, + 0 + }, + { + 1, + 0 + }, + { + 14, + 0 + }, + { + 3, + 0 + }, + { + 2, + 0 + }, + { + 3, + 0 + }, + { + 2, + 0 + }, + { + 3, + 0 + }, + { + 14, + 0 + }, + { + 1, + 0 + }, + { + 2, + 0 + }, + { + 3, + 0 + }, + { + 2, + 0 + }, + { + 3, + 0 + }, + { + 2, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 3, + 0 + }, + { + 3, + 0 + }, + { + 3, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 15, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + } } }, [5]={ @@ -888,7 +1269,7 @@ local chapter_board = { 0 }, { - 2, + 14, 0 }, { @@ -912,7 +1293,7 @@ local chapter_board = { 0 }, { - 2, + 14, 0 }, { @@ -928,7 +1309,7 @@ local chapter_board = { 0 }, { - 2, + 14, 0 }, { @@ -1139,6 +1520,188 @@ local chapter_board = { 3, 0 }, + { + 2, + 0 + }, + { + 14, + 0 + }, + { + 3, + 0 + }, + { + 3, + 0 + }, + { + 3, + 0 + }, + { + 3, + 0 + }, + { + 3, + 0 + }, + { + 14, + 0 + }, + { + 1, + 0 + }, + { + 3, + 0 + }, + { + 3, + 0 + }, + { + 3, + 0 + }, + { + 3, + 0 + }, + { + 3, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 3, + 0 + }, + { + 14, + 0 + }, + { + 3, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + } + }, + ["mystery_box_board"]={ + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 0, + 1 + }, + { + 0, + 2 + }, + { + 0, + 1 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 0, + 2 + }, + { + 0, + 3 + }, + { + 0, + 2 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 2, + 0 + }, + { + 0, + 1 + }, + { + 2, + 0 + }, + { + 0, + 1 + }, + { + 2, + 0 + }, + { + 1, + 0 + }, + { + 2, + 0 + }, + { + 3, + 0 + }, { 3, 0 @@ -1156,7 +1719,11 @@ local chapter_board = { 0 }, { - 3, + 2, + 0 + }, + { + 14, 0 }, { @@ -1171,6 +1738,18 @@ local chapter_board = { 3, 0 }, + { + 3, + 0 + }, + { + 3, + 0 + }, + { + 14, + 0 + }, { 1, 0 @@ -1184,7 +1763,7 @@ local chapter_board = { 0 }, { - 3, + 15, 0 }, { @@ -1212,7 +1791,7 @@ local chapter_board = { 0 }, { - 3, + 14, 0 }, { @@ -6826,9 +7405,1004 @@ local chapter_board = { 0 } } + }, + [35]={ + ["board"]={ + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 0, + 3 + }, + { + 0, + 4 + }, + { + 0, + 1 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 4, + 4 + }, + { + 0, + 3 + }, + { + 0, + 1 + }, + { + 0, + 4 + }, + { + 4, + 3 + }, + { + 1, + 0 + }, + { + 7, + 0 + }, + { + 3, + 0 + }, + { + 4, + 1 + }, + { + 4, + 3 + }, + { + 4, + 4 + }, + { + 3, + 0 + }, + { + 7, + 0 + }, + { + 0, + 0 + }, + { + 3, + 0 + }, + { + 3, + 0 + }, + { + 7, + 0 + }, + { + 3, + 0 + }, + { + 3, + 0 + }, + { + 0, + 0 + }, + { + 14, + 0 + }, + { + 3, + 0 + }, + { + 7, + 0 + }, + { + 3, + 0 + }, + { + 7, + 0 + }, + { + 3, + 0 + }, + { + 14, + 0 + }, + { + 1, + 0 + }, + { + 0, + 0 + }, + { + 3, + 0 + }, + { + 3, + 0 + }, + { + 3, + 0 + }, + { + 0, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 0, + 0 + }, + { + 7, + 0 + }, + { + 0, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + } + }, + ["mystery_box_board"]={ + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 0, + 3 + }, + { + 0, + 4 + }, + { + 0, + 1 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 4, + 4 + }, + { + 0, + 3 + }, + { + 0, + 1 + }, + { + 0, + 4 + }, + { + 4, + 3 + }, + { + 1, + 0 + }, + { + 7, + 0 + }, + { + 3, + 0 + }, + { + 4, + 1 + }, + { + 4, + 3 + }, + { + 4, + 4 + }, + { + 3, + 0 + }, + { + 7, + 0 + }, + { + 0, + 0 + }, + { + 3, + 0 + }, + { + 3, + 0 + }, + { + 7, + 0 + }, + { + 3, + 0 + }, + { + 3, + 0 + }, + { + 0, + 0 + }, + { + 14, + 0 + }, + { + 3, + 0 + }, + { + 7, + 0 + }, + { + 3, + 0 + }, + { + 7, + 0 + }, + { + 3, + 0 + }, + { + 14, + 0 + }, + { + 1, + 0 + }, + { + 0, + 0 + }, + { + 3, + 0 + }, + { + 3, + 0 + }, + { + 3, + 0 + }, + { + 0, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 0, + 0 + }, + { + 15, + 0 + }, + { + 0, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + } + } + }, + [36]={ + ["board"]={ + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 4, + 4 + }, + { + 0, + 2 + }, + { + 4, + 2 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 9, + 0 + }, + { + 4, + 4 + }, + { + 0, + 3 + }, + { + 4, + 4 + }, + { + 9, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 2, + 0 + }, + { + 4, + 2 + }, + { + 0, + 3 + }, + { + 4, + 4 + }, + { + 2, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 2, + 0 + }, + { + 4, + 2 + }, + { + 4, + 3 + }, + { + 4, + 2 + }, + { + 2, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 2, + 0 + }, + { + 0, + 0 + }, + { + 0, + 0 + }, + { + 0, + 0 + }, + { + 2, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 2, + 0 + }, + { + 0, + 0 + }, + { + 0, + 0 + }, + { + 0, + 0 + }, + { + 2, + 0 + }, + { + 1, + 0 + }, + { + 14, + 0 + }, + { + 10, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 11, + 0 + }, + { + 14, + 0 + } + } + }, + [37]={ + ["board"]={ + { + 1, + 0 + }, + { + 0, + 1 + }, + { + 0, + 1 + }, + { + 0, + 1 + }, + { + 0, + 2 + }, + { + 0, + 2 + }, + { + 0, + 2 + }, + { + 1, + 0 + }, + { + 2, + 0 + }, + { + 2, + 0 + }, + { + 2, + 0 + }, + { + 2, + 0 + }, + { + 2, + 0 + }, + { + 2, + 0 + }, + { + 1, + 0 + }, + { + 0, + 0 + }, + { + 0, + 0 + }, + { + 0, + 0 + }, + { + 0, + 0 + }, + { + 0, + 0 + }, + { + 14, + 0 + }, + { + 9, + 0 + }, + { + 3, + 0 + }, + { + 3, + 0 + }, + { + 3, + 0 + }, + { + 10, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 3, + 0 + }, + { + 14, + 0 + }, + { + 0, + 0 + }, + { + 0, + 0 + }, + { + 0, + 0 + }, + { + 0, + 0 + }, + { + 1, + 0 + }, + { + 11, + 0 + }, + { + 3, + 0 + }, + { + 3, + 0 + }, + { + 3, + 0 + }, + { + 3, + 0 + }, + { + 14, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 0 + }, + { + 0, + 0 + }, + { + 0 + }, + { + 0, + 0 + }, + { + 1, + 0 + } + }, + ["mystery_box_board"]={ + { + 1, + 0 + }, + { + 0, + 1 + }, + { + 0, + 1 + }, + { + 0, + 1 + }, + { + 0, + 2 + }, + { + 0, + 2 + }, + { + 0, + 2 + }, + { + 1, + 0 + }, + { + 2, + 0 + }, + { + 2, + 0 + }, + { + 2, + 0 + }, + { + 2, + 0 + }, + { + 2, + 0 + }, + { + 2, + 0 + }, + { + 1, + 0 + }, + { + 0, + 0 + }, + { + 0, + 0 + }, + { + 0, + 0 + }, + { + 0, + 0 + }, + { + 0, + 0 + }, + { + 14, + 0 + }, + { + 9, + 0 + }, + { + 3, + 0 + }, + { + 3, + 0 + }, + { + 3, + 0 + }, + { + 10, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 3, + 0 + }, + { + 14, + 0 + }, + { + 0, + 0 + }, + { + 0, + 0 + }, + { + 0, + 0 + }, + { + 0, + 0 + }, + { + 1, + 0 + }, + { + 11, + 0 + }, + { + 3, + 0 + }, + { + 3, + 0 + }, + { + 3, + 0 + }, + { + 3, + 0 + }, + { + 15, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 1, + 0 + }, + { + 0 + }, + { + 0, + 0 + }, + { + 0 + }, + { + 0, + 0 + }, + { + 1, + 0 + } + } + }, + [38]={ + } } local config = { -data=chapter_board,count=34 +data=chapter_board,count=38 } return config \ No newline at end of file diff --git a/lua/app/config/const.lua b/lua/app/config/const.lua index 1c0a5008..740e76a3 100644 --- a/lua/app/config/const.lua +++ b/lua/app/config/const.lua @@ -98,6 +98,9 @@ local const = { ["num_for_nothing"]="Vwg=" } }, + ["bounty_senior_rise"]={ + ["value"]=10 + }, ["idle_maxtime"]={ ["value"]=57600 }, @@ -166,6 +169,6 @@ local const = { } } local config = { -data=const,count=34 +data=const,count=35 } return config \ No newline at end of file diff --git a/lua/app/config/func_open.lua b/lua/app/config/func_open.lua index 82f2a069..74adf7f7 100644 --- a/lua/app/config/func_open.lua +++ b/lua/app/config/func_open.lua @@ -4,10 +4,10 @@ local func_open = { ["pop_ups"]=1 }, ["bounty_open"]={ - ["stage"]=2 + ["stage"]=3 }, ["task"]={ - ["stage"]=2 + ["stage"]=3 }, ["act_level_gift"]={ ["level"]=5 diff --git a/lua/app/config/grid_type.lua b/lua/app/config/grid_type.lua index bd81981c..5a4535ee 100644 --- a/lua/app/config/grid_type.lua +++ b/lua/app/config/grid_type.lua @@ -169,6 +169,7 @@ local grid_type = { 3 }, ["break_count"]=1, + ["break_fly_to_character"]=1, ["cant_link"]=1, ["element_invalid"]=1, ["effect"]=3, @@ -182,6 +183,7 @@ local grid_type = { 3 }, ["break_count"]=3, + ["break_fly_to_character"]=1, ["cant_link"]=1, ["element_invalid"]=1, ["effect"]=4, diff --git a/lua/app/config/hero.lua b/lua/app/config/hero.lua index cc63f12a..aaa5658b 100644 --- a/lua/app/config/hero.lua +++ b/lua/app/config/hero.lua @@ -9,10 +9,14 @@ local hero = { 1200113 }, ["base_skill"]=1200120, - ["rouge_skill"]=1200101, - ["rouge_skill_1"]=1200102, - ["rouge_skill_2"]=1200103, - ["rouge_skill_3"]=1200104, + ["rouge_skill"]=1200100, + ["rouge_skill_1"]=1200101, + ["rouge_skill_2"]=1200102, + ["rouge_skill_3"]=1200103, + ["rouge_skill_4"]=1200104, + ["rouge_skill_5"]=1200105, + ["rouge_skill_6"]=1200106, + ["rouge_skill_7"]=1200107, ["begin_lv"]=1, ["hp"]={ 2000000, @@ -63,10 +67,14 @@ local hero = { 1300113 }, ["base_skill"]=1300120, - ["rouge_skill"]=1200101, - ["rouge_skill_1"]=1200102, - ["rouge_skill_2"]=1200103, - ["rouge_skill_3"]=1200104, + ["rouge_skill"]=1300100, + ["rouge_skill_1"]=1300101, + ["rouge_skill_2"]=1300102, + ["rouge_skill_3"]=1300103, + ["rouge_skill_4"]=1300104, + ["rouge_skill_5"]=1300105, + ["rouge_skill_6"]=1300106, + ["rouge_skill_7"]=1300107, ["begin_lv"]=3, ["hp"]={ 2000000, @@ -105,7 +113,7 @@ local hero = { ["model_id"]="p0014", ["icon"]="5", ["item_id"]=13001, - ["unlock_chapter"]=1 + ["unlock_chapter"]=3 }, [13002]={ ["position"]=1, @@ -117,10 +125,14 @@ local hero = { 1300213 }, ["base_skill"]=1300220, - ["rouge_skill"]=1200101, - ["rouge_skill_1"]=1200102, - ["rouge_skill_2"]=1200103, - ["rouge_skill_3"]=1200104, + ["rouge_skill"]=1300200, + ["rouge_skill_1"]=1300201, + ["rouge_skill_2"]=1300202, + ["rouge_skill_3"]=1300203, + ["rouge_skill_4"]=1300204, + ["rouge_skill_5"]=1300205, + ["rouge_skill_6"]=1300206, + ["rouge_skill_7"]=1300207, ["begin_lv"]=3, ["hp"]={ 2000000, @@ -159,22 +171,26 @@ local hero = { ["model_id"]="p0009", ["icon"]="5", ["item_id"]=13002, - ["unlock_chapter"]=1 + ["unlock_chapter"]=3 }, - [24001]={ + [14001]={ ["position"]=1, ["qlt"]=4, ["hurt_skill"]={ - 2400110, - 2400111, - 2400112, - 2400113 + 1400110, + 1400111, + 1400112, + 1400113 }, - ["base_skill"]=2400120, - ["rouge_skill"]=1200101, - ["rouge_skill_1"]=1200102, - ["rouge_skill_2"]=1200103, - ["rouge_skill_3"]=1200104, + ["base_skill"]=1400120, + ["rouge_skill"]=1400100, + ["rouge_skill_1"]=1400101, + ["rouge_skill_2"]=1400102, + ["rouge_skill_3"]=1400103, + ["rouge_skill_4"]=1400104, + ["rouge_skill_5"]=1400105, + ["rouge_skill_6"]=1400106, + ["rouge_skill_7"]=1400107, ["begin_lv"]=5, ["hp"]={ 2000000, @@ -212,8 +228,8 @@ local hero = { }, ["model_id"]="p0011", ["icon"]="5", - ["item_id"]=24001, - ["unlock_chapter"]=1 + ["item_id"]=14001, + ["unlock_chapter"]=3 }, [22001]={ ["position"]=2, @@ -225,10 +241,14 @@ local hero = { 2200113 }, ["base_skill"]=2200120, - ["rouge_skill"]=2200101, - ["rouge_skill_1"]=2200102, - ["rouge_skill_2"]=2200103, - ["rouge_skill_3"]=2200104, + ["rouge_skill"]=2200100, + ["rouge_skill_1"]=2200101, + ["rouge_skill_2"]=2200102, + ["rouge_skill_3"]=2200103, + ["rouge_skill_4"]=2200104, + ["rouge_skill_5"]=2200105, + ["rouge_skill_6"]=2200106, + ["rouge_skill_7"]=2200107, ["begin_lv"]=1, ["hp"]={ 2000000, @@ -279,10 +299,14 @@ local hero = { 2300113 }, ["base_skill"]=2300120, - ["rouge_skill"]=2200101, - ["rouge_skill_1"]=2200102, - ["rouge_skill_2"]=2200103, - ["rouge_skill_3"]=2200104, + ["rouge_skill"]=2300100, + ["rouge_skill_1"]=2300101, + ["rouge_skill_2"]=2300102, + ["rouge_skill_3"]=2300103, + ["rouge_skill_4"]=2300104, + ["rouge_skill_5"]=2300105, + ["rouge_skill_6"]=2300106, + ["rouge_skill_7"]=2300107, ["begin_lv"]=3, ["hp"]={ 2000000, @@ -321,7 +345,65 @@ local hero = { ["model_id"]="p0010", ["icon"]="5", ["item_id"]=23001, - ["unlock_chapter"]=1 + ["unlock_chapter"]=3 + }, + [23002]={ + ["position"]=2, + ["qlt"]=3, + ["hurt_skill"]={ + 2300210, + 2300211, + 2300212, + 2300213 + }, + ["base_skill"]=2300220, + ["rouge_skill"]=2300200, + ["rouge_skill_1"]=2300201, + ["rouge_skill_2"]=2300202, + ["rouge_skill_3"]=2300203, + ["rouge_skill_4"]=2300204, + ["rouge_skill_5"]=2300205, + ["rouge_skill_6"]=2300206, + ["rouge_skill_7"]=2300207, + ["begin_lv"]=3, + ["hp"]={ + 2000000, + 2400000, + 2800000, + 3220000, + 3660000, + 4120000, + 4620000, + 5160000, + 5760000, + 6420000, + 7140000, + 7940000, + 8840000, + 9840000, + 10980000 + }, + ["atk"]={ + 1000000, + 1200000, + 1400000, + 1610000, + 1830000, + 2060000, + 2310000, + 2580000, + 2880000, + 3210000, + 3570000, + 3970000, + 4420000, + 4920000, + 5490000 + }, + ["model_id"]="p0010", + ["icon"]="5", + ["item_id"]=23002, + ["unlock_chapter"]=3 }, [24001]={ ["position"]=2, @@ -333,10 +415,14 @@ local hero = { 2400113 }, ["base_skill"]=2400120, - ["rouge_skill"]=2400101, - ["rouge_skill_1"]=2400102, - ["rouge_skill_2"]=2400103, - ["rouge_skill_3"]=2400104, + ["rouge_skill"]=2400100, + ["rouge_skill_1"]=2400101, + ["rouge_skill_2"]=2400102, + ["rouge_skill_3"]=2400103, + ["rouge_skill_4"]=2400104, + ["rouge_skill_5"]=2400105, + ["rouge_skill_6"]=2400106, + ["rouge_skill_7"]=2400107, ["begin_lv"]=5, ["hp"]={ 2000000, @@ -375,7 +461,7 @@ local hero = { ["model_id"]="p0007", ["icon"]="7", ["item_id"]=24001, - ["unlock_chapter"]=1 + ["unlock_chapter"]=3 }, [32001]={ ["position"]=3, @@ -387,10 +473,14 @@ local hero = { 3200113 }, ["base_skill"]=3200120, - ["rouge_skill"]=3200101, - ["rouge_skill_1"]=3200102, - ["rouge_skill_2"]=3200103, - ["rouge_skill_3"]=3200104, + ["rouge_skill"]=3200100, + ["rouge_skill_1"]=3200101, + ["rouge_skill_2"]=3200102, + ["rouge_skill_3"]=3200103, + ["rouge_skill_4"]=3200104, + ["rouge_skill_5"]=3200105, + ["rouge_skill_6"]=3200106, + ["rouge_skill_7"]=3200107, ["begin_lv"]=1, ["hp"]={ 2000000, @@ -441,10 +531,14 @@ local hero = { 3300113 }, ["base_skill"]=3300120, - ["rouge_skill"]=3300101, - ["rouge_skill_1"]=3300102, - ["rouge_skill_2"]=3300103, - ["rouge_skill_3"]=3300104, + ["rouge_skill"]=3300100, + ["rouge_skill_1"]=3300101, + ["rouge_skill_2"]=3300102, + ["rouge_skill_3"]=3300103, + ["rouge_skill_4"]=3300104, + ["rouge_skill_5"]=3300105, + ["rouge_skill_6"]=3300106, + ["rouge_skill_7"]=3300107, ["begin_lv"]=3, ["hp"]={ 2000000, @@ -483,7 +577,123 @@ local hero = { ["model_id"]="p0006", ["icon"]="6", ["item_id"]=33001, - ["unlock_chapter"]=1 + ["unlock_chapter"]=3 + }, + [33002]={ + ["position"]=3, + ["qlt"]=3, + ["hurt_skill"]={ + 3300210, + 3300211, + 3300212, + 3300213 + }, + ["base_skill"]=3300220, + ["rouge_skill"]=3300200, + ["rouge_skill_1"]=3300201, + ["rouge_skill_2"]=3300202, + ["rouge_skill_3"]=3300203, + ["rouge_skill_4"]=3300204, + ["rouge_skill_5"]=3300205, + ["rouge_skill_6"]=3300206, + ["rouge_skill_7"]=3300207, + ["begin_lv"]=3, + ["hp"]={ + 2000000, + 2400000, + 2800000, + 3220000, + 3660000, + 4120000, + 4620000, + 5160000, + 5760000, + 6420000, + 7140000, + 7940000, + 8840000, + 9840000, + 10980000 + }, + ["atk"]={ + 1000000, + 1200000, + 1400000, + 1610000, + 1830000, + 2060000, + 2310000, + 2580000, + 2880000, + 3210000, + 3570000, + 3970000, + 4420000, + 4920000, + 5490000 + }, + ["model_id"]="p0006", + ["icon"]="6", + ["item_id"]=33002, + ["unlock_chapter"]=3 + }, + [34001]={ + ["position"]=3, + ["qlt"]=4, + ["hurt_skill"]={ + 3400110, + 3400111, + 3400112, + 3400113 + }, + ["base_skill"]=3400120, + ["rouge_skill"]=3400100, + ["rouge_skill_1"]=3400101, + ["rouge_skill_2"]=3400102, + ["rouge_skill_3"]=3400103, + ["rouge_skill_4"]=3400104, + ["rouge_skill_5"]=3400105, + ["rouge_skill_6"]=3400106, + ["rouge_skill_7"]=3400107, + ["begin_lv"]=5, + ["hp"]={ + 2000000, + 2400000, + 2800000, + 3220000, + 3660000, + 4120000, + 4620000, + 5160000, + 5760000, + 6420000, + 7140000, + 7940000, + 8840000, + 9840000, + 10980000 + }, + ["atk"]={ + 1000000, + 1200000, + 1400000, + 1610000, + 1830000, + 2060000, + 2310000, + 2580000, + 2880000, + 3210000, + 3570000, + 3970000, + 4420000, + 4920000, + 5490000 + }, + ["model_id"]="p0006", + ["icon"]="6", + ["item_id"]=34001, + ["unlock_chapter"]=3 }, [42001]={ ["position"]=4, @@ -495,10 +705,14 @@ local hero = { 4200113 }, ["base_skill"]=4200120, - ["rouge_skill"]=4200101, - ["rouge_skill_1"]=4200102, - ["rouge_skill_2"]=4200103, - ["rouge_skill_3"]=4200104, + ["rouge_skill"]=4200100, + ["rouge_skill_1"]=4200101, + ["rouge_skill_2"]=4200102, + ["rouge_skill_3"]=4200103, + ["rouge_skill_4"]=4200104, + ["rouge_skill_5"]=4200105, + ["rouge_skill_6"]=4200106, + ["rouge_skill_7"]=4200107, ["begin_lv"]=1, ["hp"]={ 2000000, @@ -539,6 +753,122 @@ local hero = { ["item_id"]=42001, ["unlock_chapter"]=1 }, + [43001]={ + ["position"]=4, + ["qlt"]=3, + ["hurt_skill"]={ + 4300110, + 4300111, + 4300112, + 4300113 + }, + ["base_skill"]=4300120, + ["rouge_skill"]=4300100, + ["rouge_skill_1"]=4300101, + ["rouge_skill_2"]=4300102, + ["rouge_skill_3"]=4300103, + ["rouge_skill_4"]=4300104, + ["rouge_skill_5"]=4300105, + ["rouge_skill_6"]=4300106, + ["rouge_skill_7"]=4300107, + ["begin_lv"]=3, + ["hp"]={ + 2000000, + 2400000, + 2800000, + 3220000, + 3660000, + 4120000, + 4620000, + 5160000, + 5760000, + 6420000, + 7140000, + 7940000, + 8840000, + 9840000, + 10980000 + }, + ["atk"]={ + 1000000, + 1200000, + 1400000, + 1610000, + 1830000, + 2060000, + 2310000, + 2580000, + 2880000, + 3210000, + 3570000, + 3970000, + 4420000, + 4920000, + 5490000 + }, + ["model_id"]="p0003", + ["icon"]="3", + ["item_id"]=43001, + ["unlock_chapter"]=3 + }, + [43002]={ + ["position"]=4, + ["qlt"]=3, + ["hurt_skill"]={ + 4300210, + 4300211, + 4300212, + 4300213 + }, + ["base_skill"]=4300220, + ["rouge_skill"]=4300300, + ["rouge_skill_1"]=4300301, + ["rouge_skill_2"]=4300302, + ["rouge_skill_3"]=4300303, + ["rouge_skill_4"]=4300304, + ["rouge_skill_5"]=4300305, + ["rouge_skill_6"]=4300306, + ["rouge_skill_7"]=4300307, + ["begin_lv"]=3, + ["hp"]={ + 2000000, + 2400000, + 2800000, + 3220000, + 3660000, + 4120000, + 4620000, + 5160000, + 5760000, + 6420000, + 7140000, + 7940000, + 8840000, + 9840000, + 10980000 + }, + ["atk"]={ + 1000000, + 1200000, + 1400000, + 1610000, + 1830000, + 2060000, + 2310000, + 2580000, + 2880000, + 3210000, + 3570000, + 3970000, + 4420000, + 4920000, + 5490000 + }, + ["model_id"]="p0003", + ["icon"]="3", + ["item_id"]=43002, + ["unlock_chapter"]=3 + }, [44001]={ ["position"]=4, ["qlt"]=4, @@ -549,10 +879,14 @@ local hero = { 4400113 }, ["base_skill"]=4400120, - ["rouge_skill"]=4400101, - ["rouge_skill_1"]=4400102, - ["rouge_skill_2"]=4400103, - ["rouge_skill_3"]=4400104, + ["rouge_skill"]=4400100, + ["rouge_skill_1"]=4400101, + ["rouge_skill_2"]=4400102, + ["rouge_skill_3"]=4400103, + ["rouge_skill_4"]=4400104, + ["rouge_skill_5"]=4400105, + ["rouge_skill_6"]=4400106, + ["rouge_skill_7"]=4400107, ["begin_lv"]=5, ["hp"]={ 2000000, @@ -591,7 +925,7 @@ local hero = { ["model_id"]="p0008", ["icon"]="8", ["item_id"]=44001, - ["unlock_chapter"]=1 + ["unlock_chapter"]=3 }, [52001]={ ["position"]=5, @@ -603,10 +937,14 @@ local hero = { 5200113 }, ["base_skill"]=5200120, - ["rouge_skill"]=5200101, - ["rouge_skill_1"]=5200102, - ["rouge_skill_2"]=5200103, - ["rouge_skill_3"]=5200104, + ["rouge_skill"]=5200100, + ["rouge_skill_1"]=5200101, + ["rouge_skill_2"]=5200102, + ["rouge_skill_3"]=5200103, + ["rouge_skill_4"]=5200104, + ["rouge_skill_5"]=5200105, + ["rouge_skill_6"]=5200106, + ["rouge_skill_7"]=5200107, ["begin_lv"]=1, ["hp"]={ 2000000, @@ -646,9 +984,183 @@ local hero = { ["icon"]="4", ["item_id"]=52001, ["unlock_chapter"]=1 + }, + [53001]={ + ["position"]=5, + ["qlt"]=3, + ["hurt_skill"]={ + 5300110, + 5300111, + 5300112, + 5300113 + }, + ["base_skill"]=5300120, + ["rouge_skill"]=5300100, + ["rouge_skill_1"]=5300101, + ["rouge_skill_2"]=5300102, + ["rouge_skill_3"]=5300103, + ["rouge_skill_4"]=5300104, + ["rouge_skill_5"]=5300105, + ["rouge_skill_6"]=5300106, + ["rouge_skill_7"]=5300107, + ["begin_lv"]=3, + ["hp"]={ + 2000000, + 2400000, + 2800000, + 3220000, + 3660000, + 4120000, + 4620000, + 5160000, + 5760000, + 6420000, + 7140000, + 7940000, + 8840000, + 9840000, + 10980000 + }, + ["atk"]={ + 1000000, + 1200000, + 1400000, + 1610000, + 1830000, + 2060000, + 2310000, + 2580000, + 2880000, + 3210000, + 3570000, + 3970000, + 4420000, + 4920000, + 5490000 + }, + ["model_id"]="p0004", + ["icon"]="4", + ["item_id"]=53001, + ["unlock_chapter"]=3 + }, + [53002]={ + ["position"]=5, + ["qlt"]=3, + ["hurt_skill"]={ + 5300210, + 5300211, + 5300212, + 5300213 + }, + ["base_skill"]=5300220, + ["rouge_skill"]=5300200, + ["rouge_skill_1"]=5300201, + ["rouge_skill_2"]=5300202, + ["rouge_skill_3"]=5300203, + ["rouge_skill_4"]=5300204, + ["rouge_skill_5"]=5300205, + ["rouge_skill_6"]=5300206, + ["rouge_skill_7"]=5300207, + ["begin_lv"]=3, + ["hp"]={ + 2000000, + 2400000, + 2800000, + 3220000, + 3660000, + 4120000, + 4620000, + 5160000, + 5760000, + 6420000, + 7140000, + 7940000, + 8840000, + 9840000, + 10980000 + }, + ["atk"]={ + 1000000, + 1200000, + 1400000, + 1610000, + 1830000, + 2060000, + 2310000, + 2580000, + 2880000, + 3210000, + 3570000, + 3970000, + 4420000, + 4920000, + 5490000 + }, + ["model_id"]="p0004", + ["icon"]="4", + ["item_id"]=53002, + ["unlock_chapter"]=3 + }, + [54001]={ + ["position"]=5, + ["qlt"]=4, + ["hurt_skill"]={ + 5400110, + 5400111, + 5400112, + 5400113 + }, + ["base_skill"]=5400120, + ["rouge_skill"]=5400100, + ["rouge_skill_1"]=5400101, + ["rouge_skill_2"]=5400102, + ["rouge_skill_3"]=5400103, + ["rouge_skill_4"]=5400104, + ["rouge_skill_5"]=5400105, + ["rouge_skill_6"]=5400106, + ["rouge_skill_7"]=5400107, + ["begin_lv"]=5, + ["hp"]={ + 2000000, + 2400000, + 2800000, + 3220000, + 3660000, + 4120000, + 4620000, + 5160000, + 5760000, + 6420000, + 7140000, + 7940000, + 8840000, + 9840000, + 10980000 + }, + ["atk"]={ + 1000000, + 1200000, + 1400000, + 1610000, + 1830000, + 2060000, + 2310000, + 2580000, + 2880000, + 3210000, + 3570000, + 3970000, + 4420000, + 4920000, + 5490000 + }, + ["model_id"]="p0004", + ["icon"]="4", + ["item_id"]=54001, + ["unlock_chapter"]=3 } } local config = { -data=hero,count=12 +data=hero,count=20 } return config \ No newline at end of file diff --git a/lua/app/config/hero_level.lua b/lua/app/config/hero_level.lua index 0a064b19..5275b2dd 100644 --- a/lua/app/config/hero_level.lua +++ b/lua/app/config/hero_level.lua @@ -22,7 +22,7 @@ local hero_level = { 3, 0 }, - ["unlock_skill"]=1 + ["unlock_skill"]=2 }, [4]={ ["cost_2"]={ @@ -48,7 +48,7 @@ local hero_level = { 3, 0 }, - ["unlock_skill"]=2 + ["unlock_skill"]=3 }, [6]={ ["cost_2"]={ @@ -63,7 +63,7 @@ local hero_level = { 5, 10000 }, - ["unlock_skill"]=2 + ["unlock_skill"]=3 }, [7]={ ["cost_2"]={ @@ -78,7 +78,7 @@ local hero_level = { 10, 20000 }, - ["unlock_skill"]=2 + ["unlock_skill"]=4 }, [8]={ ["cost_2"]={ @@ -93,7 +93,7 @@ local hero_level = { 20, 30000 }, - ["unlock_skill"]=3 + ["unlock_skill"]=4 }, [9]={ ["cost_2"]={ @@ -108,7 +108,7 @@ local hero_level = { 25, 40000 }, - ["unlock_skill"]=3 + ["unlock_skill"]=5 }, [10]={ ["cost_2"]={ @@ -123,7 +123,7 @@ local hero_level = { 50, 60000 }, - ["unlock_skill"]=3 + ["unlock_skill"]=5 }, [11]={ ["cost_2"]={ @@ -138,7 +138,7 @@ local hero_level = { 100, 80000 }, - ["unlock_skill"]=3 + ["unlock_skill"]=5 }, [12]={ ["cost_2"]={ @@ -153,7 +153,7 @@ local hero_level = { 150, 100000 }, - ["unlock_skill"]=3 + ["unlock_skill"]=6 }, [13]={ ["cost_2"]={ @@ -168,7 +168,7 @@ local hero_level = { 200, 150000 }, - ["unlock_skill"]=3 + ["unlock_skill"]=6 }, [14]={ ["cost_2"]={ @@ -183,7 +183,7 @@ local hero_level = { 300, 200000 }, - ["unlock_skill"]=3 + ["unlock_skill"]=6 }, [15]={ ["cost_2"]={ @@ -198,7 +198,7 @@ local hero_level = { 400, 300000 }, - ["unlock_skill"]=3 + ["unlock_skill"]=7 } } local config = { diff --git a/lua/app/config/item.lua b/lua/app/config/item.lua index 38849f40..013e3660 100644 --- a/lua/app/config/item.lua +++ b/lua/app/config/item.lua @@ -74,11 +74,47 @@ local item = { ["num"]=1, ["weight"]=100 }, + { + ["type"]=1, + ["id"]=23002, + ["num"]=1, + ["weight"]=100 + }, { ["type"]=1, ["id"]=33001, ["num"]=1, ["weight"]=100 + }, + { + ["type"]=1, + ["id"]=33002, + ["num"]=1, + ["weight"]=100 + }, + { + ["type"]=1, + ["id"]=43001, + ["num"]=1, + ["weight"]=100 + }, + { + ["type"]=1, + ["id"]=43002, + ["num"]=1, + ["weight"]=100 + }, + { + ["type"]=1, + ["id"]=53001, + ["num"]=1, + ["weight"]=100 + }, + { + ["type"]=1, + ["id"]=53002, + ["num"]=1, + ["weight"]=100 } } }, @@ -89,7 +125,7 @@ local item = { ["hero_drop"]={ { ["type"]=1, - ["id"]=24001, + ["id"]=14001, ["num"]=1, ["weight"]=100 }, @@ -99,11 +135,23 @@ local item = { ["num"]=1, ["weight"]=100 }, + { + ["type"]=1, + ["id"]=34001, + ["num"]=1, + ["weight"]=100 + }, { ["type"]=1, ["id"]=44001, ["num"]=1, ["weight"]=100 + }, + { + ["type"]=1, + ["id"]=54001, + ["num"]=1, + ["weight"]=100 } } }, @@ -115,22 +163,94 @@ local item = { [8]={ ["type"]=4, ["qlt"]=1, - ["icon"]="8" + ["icon"]="8", + ["reward"]={ + { + ["type"]=1, + ["type_for_nothing"]="Vw==", + ["id"]=5, + ["id_for_nothing"]="Uw==", + ["num"]=2, + ["num_for_nothing"]="VA==" + }, + { + ["type"]=1, + ["type_for_nothing"]="Vw==", + ["id"]=4, + ["id_for_nothing"]="Ug==", + ["num"]=10, + ["num_for_nothing"]="Vwg=" + } + } }, [9]={ ["type"]=4, ["qlt"]=1, - ["icon"]="9" + ["icon"]="9", + ["reward"]={ + { + ["type"]=1, + ["type_for_nothing"]="Vw==", + ["id"]=5, + ["id_for_nothing"]="Uw==", + ["num"]=7, + ["num_for_nothing"]="UQ==" + }, + { + ["type"]=1, + ["type_for_nothing"]="Vw==", + ["id"]=4, + ["id_for_nothing"]="Ug==", + ["num"]=27, + ["num_for_nothing"]="VA8=" + } + } }, [10]={ ["type"]=4, ["qlt"]=1, - ["icon"]="10" + ["icon"]="10", + ["reward"]={ + { + ["type"]=1, + ["type_for_nothing"]="Vw==", + ["id"]=5, + ["id_for_nothing"]="Uw==", + ["num"]=15, + ["num_for_nothing"]="Vw0=" + }, + { + ["type"]=1, + ["type_for_nothing"]="Vw==", + ["id"]=4, + ["id_for_nothing"]="Ug==", + ["num"]=84, + ["num_for_nothing"]="Xgw=" + } + } }, [11]={ ["type"]=4, ["qlt"]=1, - ["icon"]="11" + ["icon"]="11", + ["reward"]={ + { + ["type"]=1, + ["type_for_nothing"]="Vw==", + ["id"]=6, + ["id_for_nothing"]="UA==", + ["num"]=1, + ["num_for_nothing"]="Vw==" + }, + { + ["type"]=1, + ["type_for_nothing"]="Vw==", + ["id"]=5, + ["id_for_nothing"]="Uw==", + ["num"]=7, + ["num_for_nothing"]="UQ==" + } + } }, [12]={ ["type"]=1, @@ -152,6 +272,80 @@ local item = { ["qlt"]=5, ["icon"]="15" }, + [16]={ + ["type"]=4, + ["qlt"]=1, + ["icon"]="16", + ["reward"]={ + { + ["type"]=1, + ["type_for_nothing"]="Vw==", + ["id"]=4, + ["id_for_nothing"]="Ug==", + ["num"]=10, + ["num_for_nothing"]="Vwg=" + }, + { + ["type"]=1, + ["type_for_nothing"]="Vw==", + ["id"]=5, + ["id_for_nothing"]="Uw==", + ["num"]=1, + ["num_for_nothing"]="Vw==" + } + } + }, + [17]={ + ["type"]=4, + ["qlt"]=1, + ["icon"]="17", + ["reward"]={ + { + ["type"]=1, + ["type_for_nothing"]="Vw==", + ["id"]=4, + ["id_for_nothing"]="Ug==", + ["num"]=10, + ["num_for_nothing"]="Vwg=" + }, + { + ["type"]=1, + ["type_for_nothing"]="Vw==", + ["id"]=5, + ["id_for_nothing"]="Uw==", + ["num"]=1, + ["num_for_nothing"]="Vw==" + } + } + }, + [18]={ + ["type"]=4, + ["qlt"]=1, + ["icon"]="11", + ["reward"]={ + { + ["type"]=1, + ["type_for_nothing"]="Vw==", + ["id"]=6, + ["id_for_nothing"]="UA==", + ["num"]=2, + ["num_for_nothing"]="VA==" + }, + { + ["type"]=1, + ["type_for_nothing"]="Vw==", + ["id"]=5, + ["id_for_nothing"]="Uw==", + ["num"]=18, + ["num_for_nothing"]="VwA=" + } + } + }, + [19]={ + ["type"]=2, + ["qlt"]=1, + ["icon"]="19" + }, [12001]={ ["type"]=5, ["parameter"]=12001, @@ -170,11 +364,11 @@ local item = { ["qlt"]=3, ["icon"]="13002" }, - [24001]={ + [14001]={ ["type"]=5, - ["parameter"]=24001, + ["parameter"]=14001, ["qlt"]=4, - ["icon"]="24001" + ["icon"]="14001" }, [22001]={ ["type"]=5, @@ -188,6 +382,12 @@ local item = { ["qlt"]=3, ["icon"]="23001" }, + [23002]={ + ["type"]=5, + ["parameter"]=23002, + ["qlt"]=3, + ["icon"]="23002" + }, [24001]={ ["type"]=5, ["parameter"]=24001, @@ -206,12 +406,36 @@ local item = { ["qlt"]=3, ["icon"]="33001" }, + [33002]={ + ["type"]=5, + ["parameter"]=33002, + ["qlt"]=3, + ["icon"]="33002" + }, + [34001]={ + ["type"]=5, + ["parameter"]=34001, + ["qlt"]=4, + ["icon"]="34001" + }, [42001]={ ["type"]=5, ["parameter"]=42001, ["qlt"]=2, ["icon"]="42001" }, + [43001]={ + ["type"]=5, + ["parameter"]=43001, + ["qlt"]=3, + ["icon"]="43001" + }, + [43002]={ + ["type"]=5, + ["parameter"]=43002, + ["qlt"]=3, + ["icon"]="43002" + }, [44001]={ ["type"]=5, ["parameter"]=44001, @@ -223,9 +447,27 @@ local item = { ["parameter"]=52001, ["qlt"]=2, ["icon"]="52001" + }, + [53001]={ + ["type"]=5, + ["parameter"]=53001, + ["qlt"]=3, + ["icon"]="53001" + }, + [53002]={ + ["type"]=5, + ["parameter"]=53002, + ["qlt"]=3, + ["icon"]="53002" + }, + [54001]={ + ["type"]=5, + ["parameter"]=54001, + ["qlt"]=4, + ["icon"]="54001" } } local config = { -data=item,count=27 +data=item,count=39 } return config \ No newline at end of file diff --git a/lua/app/config/localization/localization_global_const.lua b/lua/app/config/localization/localization_global_const.lua index f680e433..dec66e32 100644 --- a/lua/app/config/localization/localization_global_const.lua +++ b/lua/app/config/localization/localization_global_const.lua @@ -75,6 +75,43 @@ local LocalizationGlobalConst = ACT_SEVENDAY_DESC = "ACT_SEVENDAY_DESC", BTN_CLAIM = "BTN_CLAIM", BTN_DONE = "BTN_DONE", + BOUNTY_BUY_LEVEL_TITLE = "BOUNTY_BUY_LEVEL_TITLE", + BOUNTY_BUY_LEVEL_COUNTENT = "BOUNTY_BUY_LEVEL_COUNTENT", + BOUNTY_PURCHASE_NAME = "BOUNTY_PURCHASE_NAME", + BOUNTY_DESC_1 = "BOUNTY_DESC_1", + BOUNTY_DESC_2 = "BOUNTY_DESC_2", + REWARD_BOX_DESC = "REWARD_BOX_DESC", + BOUNTY_DESC_3 = "BOUNTY_DESC_3", + STR_MAX = "STR_MAX", + ALREADY_ACTIVE = "ALREADY_ACTIVE", + ACTIVE_BOUNTY = "ACTIVE_BOUNTY", + BOUNTY_FREE_NAME = "BOUNTY_FREE_NAME", + CONFIRM_IGNORE = "CONFIRM_IGNORE", + MAIL_NAME = "MAIL_NAME", + COLLET_REWARDS = "COLLET_REWARDS", + TASK_NAME = "TASK_NAME", + TASK_DAILY = "TASK_DAILY", + TASK_CHALLENGE = "TASK_CHALLENGE", + TASK_HELP_1 = "TASK_HELP_1", + STR_REFRESH = "STR_REFRESH", + STR_UNLOCK = "STR_UNLOCK", + TASK_DESC_1 = "TASK_DESC_1", + STR_COMPLETED = "STR_COMPLETED", + HERO_CARD_TIPS_DESC = "HERO_CARD_TIPS_DESC", + HERO_CARD_DESC_QLT_2 = "HERO_CARD_DESC_QLT_2", + HERO_CARD_DESC_QLT_3 = "HERO_CARD_DESC_QLT_3", + HERO_CARD_DESC_QLT_4 = "HERO_CARD_DESC_QLT_4", + HERO_CARD_DESC_QLT_5 = "HERO_CARD_DESC_QLT_5", + HERO_CARD_DESC_QLT_6 = "HERO_CARD_DESC_QLT_6", + IDLE_DROP_REWARD = "IDLE_DROP_REWARD", + IDLE_DROP_DESC_1 = "IDLE_DROP_DESC_1", + PER_HOUR = "PER_HOUR", + IDLE_DROP_DESC_2 = "IDLE_DROP_DESC_2", + IDLE_QUICK = "IDLE_QUICK", + IDLE_DROP_DESC_3 = "IDLE_DROP_DESC_3", + STR_FREE = "STR_FREE", + TODAY_REMAIN_TIMES = "TODAY_REMAIN_TIMES", + BUY_ENERGY = "BUY_ENERGY", } return LocalizationGlobalConst \ No newline at end of file diff --git a/lua/app/config/mail.lua b/lua/app/config/mail.lua new file mode 100644 index 00000000..d23b0bbb --- /dev/null +++ b/lua/app/config/mail.lua @@ -0,0 +1,109 @@ +local mail = { + [1]={ + ["type"]=1, + ["time_type"]=1, + ["time_send"]={ + 0, + 0, + 0 + }, + ["time"]=24, + ["reward"]={ + { + ["type"]=1, + ["type_for_nothing"]="Vw==", + ["id"]=2, + ["id_for_nothing"]="VA==", + ["num"]=10, + ["num_for_nothing"]="Vwg=" + } + } + }, + [2]={ + ["type"]=2, + ["time_type"]=1, + ["time_send"]={ + 0, + 0, + 0 + }, + ["time"]=24, + ["reward"]={ + { + ["type"]=1, + ["type_for_nothing"]="Vw==", + ["id"]=2, + ["id_for_nothing"]="VA==", + ["num"]=10, + ["num_for_nothing"]="Vwg=" + } + } + }, + [3]={ + ["type"]=3, + ["time_type"]=2, + ["time_send"]={ + 5, + 12, + 0, + 0 + }, + ["time"]=24, + ["reward"]={ + { + ["type"]=1, + ["type_for_nothing"]="Vw==", + ["id"]=2, + ["id_for_nothing"]="VA==", + ["num"]=30, + ["num_for_nothing"]="VQg=" + } + } + }, + [4]={ + ["type"]=3, + ["time_type"]=2, + ["time_send"]={ + 6, + 12, + 0, + 0 + }, + ["time"]=24, + ["reward"]={ + { + ["type"]=1, + ["type_for_nothing"]="Vw==", + ["id"]=2, + ["id_for_nothing"]="VA==", + ["num"]=50, + ["num_for_nothing"]="Uwg=" + } + } + }, + [5]={ + ["type"]=3, + ["time_type"]=2, + ["time_send"]={ + 7, + 12, + 0, + 0 + }, + ["time"]=24, + ["reward"]={ + { + ["type"]=1, + ["type_for_nothing"]="Vw==", + ["id"]=2, + ["id_for_nothing"]="VA==", + ["num"]=70, + ["num_for_nothing"]="UQg=" + } + } + } +} +local config = { +data=mail,count=5 +} +return config \ No newline at end of file diff --git a/lua/app/config/mail.lua.meta b/lua/app/config/mail.lua.meta new file mode 100644 index 00000000..80fb8974 --- /dev/null +++ b/lua/app/config/mail.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 11665dfdb08a75846bfb0d3a63277542 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/config/recharge.lua b/lua/app/config/recharge.lua index ff8a911b..174915e4 100644 --- a/lua/app/config/recharge.lua +++ b/lua/app/config/recharge.lua @@ -76,7 +76,7 @@ local recharge = { ["price"]=9.99, ["price_cn"]=68, ["same_price"]=10, - ["price_str"]="9.99", + ["price_str"]="$9.99", ["score"]=10 }, [11]={ @@ -84,7 +84,7 @@ local recharge = { ["price"]=11.99, ["price_cn"]=78, ["same_price"]=12, - ["price_str"]="11.99", + ["price_str"]="$11.99", ["score"]=12 }, [12]={ @@ -148,7 +148,7 @@ local recharge = { ["price"]=199.99, ["price_cn"]=1298, ["same_price"]=200, - ["price_str"]="199.99", + ["price_str"]="$199.99", ["score"]=200 } } diff --git a/lua/app/config/skill.lua b/lua/app/config/skill.lua index 8970da65..693587bd 100644 --- a/lua/app/config/skill.lua +++ b/lua/app/config/skill.lua @@ -32,7 +32,7 @@ local skill = { ["effect"]={ { ["type"]="dmg_addition_all_add", - ["num"]=600, + ["num"]=3000, ["ratio"]=10000, ["round"]=0 } @@ -190,7 +190,7 @@ local skill = { ["effect"]={ { ["type"]="hurt_red", - ["num"]=10000, + ["num"]=20000, ["ratio"]=10000, ["round"]=0 } @@ -205,6 +205,74 @@ local skill = { ["fx_target"]=2, ["fx_target_delay"]=900 }, + [1200121]={ + ["position"]=1, + ["effect_type"]=2, + ["trigger"]=3, + ["effect"]={ + { + ["type"]="normal_attack_add", + ["num"]=2, + ["ratio"]=10000, + ["round"]=2 + } + }, + ["obj"]=1, + ["skill_position"]=1 + }, + [1200122]={ + ["position"]=1, + ["effect_type"]=2, + ["trigger"]=3, + ["effect"]={ + { + ["type"]="normal_attack_add", + ["num"]=2, + ["ratio"]=10000, + ["round"]=2 + }, + { + ["type"]="normal_attack_add", + ["num"]=2, + ["ratio"]=10000, + ["round"]=2 + } + }, + ["obj"]=1, + ["skill_position"]=1 + }, + [1200123]={ + ["position"]=1, + ["buff_condition"]={ + { + { + ["type"]="state", + ["attr"]="normal_attack_dec", + ["op"]=">", + ["v"]=0, + ["side"]=2 + } + } + }, + ["condition_rel"]={ + { + 1, + 1 + } + }, + ["effect_type"]=2, + ["trigger"]=7, + ["effect"]={ + { + ["type"]="dmg_addition_blue_add", + ["num"]=5000, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1, + ["skill_position"]=2 + }, [1300110]={ ["position"]=1, ["effect_type"]=1, @@ -297,18 +365,7 @@ local skill = { ["energy"]=10, ["link"]=1, ["position"]=1, - ["method"]=2, - ["skill_type"]=4, - ["boardrange"]={ - { - ["type"]=3, - ["range"]=2 - }, - { - ["type"]=4, - ["range"]=2 - } - }, + ["method"]=1, ["battle_icon"]="5", ["effect_type"]=1, ["trigger"]=1, @@ -318,18 +375,189 @@ local skill = { ["num"]=10000, ["ratio"]=10000, ["round"]=0 + }, + { + ["type"]="hurt_red", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + }, + { + ["type"]="hurt_red", + ["num"]=30000, + ["ratio"]=10000, + ["round"]=0 } }, ["obj"]=2, + ["effect_block"]={ + 1, + 2, + 3 + }, + ["block_time"]={ + 360, + 1360, + 2500 + }, ["skill_position"]=1, ["shake_time"]=200, ["shake_type"]=5, ["sound_hit"]=1200120, - ["name_act"]="attack04", + ["name_act"]="skill01", ["fx_self"]=300020, ["fx_target"]=2, ["fx_target_delay"]=900 }, + [1300121]={ + ["position"]=1, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="burn", + ["num"]=5000, + ["ratio"]=10000, + ["round"]=2 + } + }, + ["obj"]=2 + }, + [1300122]={ + ["position"]=1, + ["buff_condition"]={ + { + { + ["type"]="state", + ["attr"]="bleed", + ["op"]=">", + ["v"]=0, + ["side"]=2 + } + } + }, + ["condition_rel"]={ + { + 1, + 1 + } + }, + ["effect_type"]=2, + ["trigger"]=7, + ["effect"]={ + { + ["type"]="dmg_addition_red_add", + ["num"]=5000, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1 + }, + [1300123]={ + ["energy"]=10, + ["link"]=1, + ["position"]=1, + ["method"]=1, + ["battle_icon"]="5", + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_red", + ["num"]=20000, + ["ratio"]=10000, + ["round"]=0 + }, + { + ["type"]="hurt_red", + ["num"]=20000, + ["ratio"]=10000, + ["round"]=0 + }, + { + ["type"]="hurt_red", + ["num"]=40000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["effect_block"]={ + 1, + 2, + 3 + }, + ["block_time"]={ + 360, + 1360, + 2500 + }, + ["skill_position"]=1, + ["shake_time"]=200, + ["shake_type"]=5, + ["sound_hit"]=1200120, + ["name_act"]="skill01", + ["fx_self"]=300020, + ["fx_target"]=2, + ["fx_target_delay"]=900 + }, + [1300124]={ + ["position"]=1, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="burn", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=2 + } + }, + ["obj"]=2 + }, + [1300125]={ + ["position"]=1, + ["effect_type"]=2, + ["trigger"]=9, + ["effect"]={ + { + ["type"]="normal_attack_add", + ["num"]=2, + ["ratio"]=10000, + ["round"]=2 + } + }, + ["obj"]=1 + }, + [1300126]={ + ["position"]=1, + ["effect_type"]=2, + ["trigger"]=3, + ["effect"]={ + { + ["type"]="dmg_addition_all_add", + ["num"]=3000, + ["ratio"]=10000, + ["round"]=2 + } + }, + ["obj"]=1 + }, + [1300127]={ + ["position"]=1, + ["effect_type"]=2, + ["trigger"]=3, + ["effect"]={ + { + ["type"]="dmg_addition_all_add", + ["num"]=3000, + ["ratio"]=10000, + ["round"]=3 + } + }, + ["obj"]=1 + }, [1300210]={ ["position"]=1, ["effect_type"]=1, @@ -426,11 +654,11 @@ local skill = { ["skill_type"]=4, ["boardrange"]={ { - ["type"]=3, + ["type"]=1, ["range"]=2 }, { - ["type"]=4, + ["type"]=2, ["range"]=2 } }, @@ -440,22 +668,178 @@ local skill = { ["effect"]={ { ["type"]="hurt_red", - ["num"]=10000, + ["num"]=5000, ["ratio"]=10000, ["round"]=0 + }, + { + ["type"]="hurt_red", + ["num"]=5000, + ["ratio"]=10000, + ["round"]=0 + }, + { + ["type"]="hurt_red", + ["num"]=5000, + ["ratio"]=10000, + ["round"]=0 + }, + { + ["type"]="hurt_red", + ["num"]=5000, + ["ratio"]=10000, + ["round"]=0 + }, + { + ["type"]="hurt_red", + ["num"]=20000, + ["ratio"]=10000, + ["round"]=0 + }, + { + ["type"]="burn", + ["num"]=5000, + ["ratio"]=5000, + ["round"]=2 } }, ["obj"]=2, + ["effect_block"]={ + 1, + 2, + 3, + 4, + 6 + }, + ["block_time"]={ + 760, + 1010, + 1260, + 1510, + 1810 + }, ["skill_position"]=1, ["shake_time"]=200, ["shake_type"]=5, - ["sound_hit"]=1200120, - ["name_act"]="attack04", + ["sound_hit"]=1200114, + ["name_act"]="skill01", ["fx_self"]=300020, ["fx_target"]=2, - ["fx_target_delay"]=900 + ["fx_target_delay"]=333 }, - [2400110]={ + [1300221]={ + ["position"]=1, + ["buff_condition"]={ + { + { + ["type"]="state", + ["attr"]="imprison", + ["op"]=">", + ["v"]=0, + ["side"]=2 + } + } + }, + ["condition_rel"]={ + { + 1, + 1 + } + }, + ["effect_type"]=2, + ["trigger"]=7, + ["effect"]={ + { + ["type"]="dmg_addition_red_add", + ["num"]=2000, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1 + }, + [1300222]={ + ["energy"]=10, + ["link"]=1, + ["position"]=1, + ["method"]=2, + ["skill_type"]=4, + ["boardrange"]={ + { + ["type"]=1, + ["range"]=2 + }, + { + ["type"]=2, + ["range"]=2 + } + }, + ["battle_icon"]="5", + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_red", + ["num"]=5000, + ["ratio"]=10000, + ["round"]=0 + }, + { + ["type"]="hurt_red", + ["num"]=5000, + ["ratio"]=10000, + ["round"]=0 + }, + { + ["type"]="hurt_red", + ["num"]=5000, + ["ratio"]=10000, + ["round"]=0 + }, + { + ["type"]="hurt_red", + ["num"]=5000, + ["ratio"]=10000, + ["round"]=0 + }, + { + ["type"]="hurt_red", + ["num"]=20000, + ["ratio"]=10000, + ["round"]=0 + }, + { + ["type"]="burn", + ["num"]=5000, + ["ratio"]=10000, + ["round"]=2 + } + }, + ["obj"]=2, + ["effect_block"]={ + 1, + 2, + 3, + 4, + 6 + }, + ["block_time"]={ + 760, + 1010, + 1260, + 1510, + 1810 + }, + ["skill_position"]=1, + ["shake_time"]=200, + ["shake_type"]=5, + ["sound_hit"]=1200114, + ["name_act"]="skill01", + ["fx_self"]=300020, + ["fx_target"]=2, + ["fx_target_delay"]=333 + }, + [1400110]={ ["position"]=1, ["effect_type"]=1, ["trigger"]=1, @@ -477,7 +861,7 @@ local skill = { ["fx_target"]=2, ["fx_target_delay"]=300 }, - [2400111]={ + [1400111]={ ["position"]=1, ["effect_type"]=1, ["trigger"]=1, @@ -499,7 +883,7 @@ local skill = { ["fx_target"]=2, ["fx_target_delay"]=333 }, - [2400112]={ + [1400112]={ ["position"]=1, ["effect_type"]=1, ["trigger"]=1, @@ -521,7 +905,7 @@ local skill = { ["fx_target"]=2, ["fx_target_delay"]=300 }, - [2400113]={ + [1400113]={ ["position"]=1, ["effect_type"]=1, ["trigger"]=1, @@ -543,20 +927,28 @@ local skill = { ["fx_target"]=2, ["fx_target_delay"]=333 }, - [2400120]={ + [1400120]={ ["energy"]=10, ["link"]=1, ["position"]=1, ["method"]=2, - ["skill_type"]=4, + ["skill_type"]=2, ["boardrange"]={ + { + ["type"]=1, + ["range"]=1 + }, + { + ["type"]=2, + ["range"]=1 + }, { ["type"]=3, - ["range"]=2 + ["range"]=1 }, { ["type"]=4, - ["range"]=2 + ["range"]=1 } }, ["battle_icon"]="5", @@ -565,21 +957,130 @@ local skill = { ["effect"]={ { ["type"]="hurt_red", - ["num"]=10000, + ["num"]=20000, + ["ratio"]=10000, + ["round"]=0 + }, + { + ["type"]="hurt_red", + ["num"]=40000, ["ratio"]=10000, ["round"]=0 } }, ["obj"]=2, + ["effect_block"]={ + 1, + 2 + }, + ["block_time"]={ + 250, + 1400 + }, ["skill_position"]=1, ["shake_time"]=200, ["shake_type"]=5, ["sound_hit"]=1200120, - ["name_act"]="attack04", + ["name_act"]="skill01", ["fx_self"]=300020, ["fx_target"]=2, ["fx_target_delay"]=900 }, + [1400121]={ + ["position"]=1, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="burn", + ["num"]=5000, + ["ratio"]=10000, + ["round"]=2 + } + }, + ["obj"]=2 + }, + [1400122]={ + ["position"]=1, + ["buff_condition"]={ + { + { + ["type"]="state", + ["attr"]="stun", + ["op"]=">", + ["v"]=0, + ["side"]=2 + } + } + }, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="stun", + ["num"]=0, + ["ratio"]=10000, + ["round"]=2 + } + }, + ["obj"]=2 + }, + [1400123]={ + ["position"]=1, + ["buff_condition"]={ + { + { + ["type"]="state", + ["attr"]="bleed", + ["op"]=">", + ["v"]=0, + ["side"]=2 + } + } + }, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="hurt_red", + ["num"]=30000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2 + }, + [1400124]={ + ["position"]=1, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="stun", + ["num"]=0, + ["ratio"]=5000, + ["round"]=2 + } + }, + ["obj"]=2 + }, + [1400125]={ + ["position"]=1, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="burn", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=3 + } + }, + ["obj"]=2 + }, + [1400126]={ + ["position"]=1 + }, [2200110]={ ["position"]=2, ["effect_type"]=1, @@ -673,7 +1174,10 @@ local skill = { ["link"]=1, ["position"]=2, ["method"]=2, - ["skill_type"]=0, + ["skill_type"]=4, + ["boardrange"]={ + + }, ["battle_icon"]="2", ["effect_type"]=1, ["trigger"]=1, @@ -700,6 +1204,53 @@ local skill = { 400 } }, + [2200121]={ + ["position"]=2, + ["buff_condition"]={ + { + { + ["type"]="state", + ["attr"]="burn", + ["op"]=">", + ["v"]=0, + ["side"]=2 + } + } + }, + ["condition_rel"]={ + { + 1, + 1 + } + }, + ["effect_type"]=2, + ["trigger"]=7, + ["effect"]={ + { + ["type"]="dmg_addition_yellow_add", + ["num"]=2000, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1, + ["skill_position"]=2 + }, + [2200122]={ + ["position"]=2, + ["effect_type"]=2, + ["trigger"]=3, + ["effect"]={ + { + ["type"]="dmg_addition_yellow_add", + ["num"]=2000, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1, + ["skill_position"]=2 + }, [2300110]={ ["position"]=2, ["effect_type"]=1, @@ -800,12 +1351,42 @@ local skill = { ["effect"]={ { ["type"]="hurt_yellow", - ["num"]=40000, + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + }, + { + ["type"]="hurt_yellow", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + }, + { + ["type"]="hurt_yellow", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + }, + { + ["type"]="hurt_yellow", + ["num"]=20000, ["ratio"]=10000, ["round"]=0 } }, ["obj"]=2, + ["effect_block"]={ + 1, + 2, + 3, + 4 + }, + ["block_time"]={ + 760, + 1010, + 1260, + 1510 + }, ["skill_position"]=2, ["shake_time"]=200, ["shake_type"]=5, @@ -820,6 +1401,363 @@ local skill = { 400 } }, + [2300121]={ + ["position"]=2, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="bleed", + ["num"]=3500, + ["ratio"]=10000, + ["round"]=2 + } + }, + ["obj"]=2 + }, + [2300122]={ + ["energy"]=10, + ["link"]=1, + ["position"]=2, + ["method"]=1, + ["skill_type"]=0, + ["battle_icon"]="2", + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_yellow", + ["num"]=15000, + ["ratio"]=10000, + ["round"]=0 + }, + { + ["type"]="hurt_yellow", + ["num"]=15000, + ["ratio"]=10000, + ["round"]=0 + }, + { + ["type"]="hurt_yellow", + ["num"]=15000, + ["ratio"]=10000, + ["round"]=0 + }, + { + ["type"]="hurt_yellow", + ["num"]=35000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["effect_block"]={ + 1, + 2, + 3, + 4 + }, + ["block_time"]={ + 760, + 1010, + 1260, + 1510 + }, + ["skill_position"]=2, + ["shake_time"]=200, + ["shake_type"]=5, + ["sound_hit"]=2200120, + ["name_act"]="skill01", + ["fx_self"]=300008, + ["fx_target"]=4, + ["fx_target_delay"]=1100, + ["bullet_time"]={ + 1100, + 3000, + 400 + } + }, + [2300123]={ + ["position"]=2, + ["buff_condition"]={ + { + { + ["type"]="state", + ["attr"]="lethargy", + ["op"]=">", + ["v"]=0, + ["side"]=2 + } + } + }, + ["condition_rel"]={ + { + 1, + 1 + } + }, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="stun", + ["num"]=0, + ["ratio"]=5000, + ["round"]=1 + } + }, + ["obj"]=2 + }, + [2300124]={ + ["position"]=2, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="bleed", + ["num"]=3500, + ["ratio"]=10000, + ["round"]=3 + } + }, + ["obj"]=2 + }, + [2300125]={ + ["position"]=2, + ["effect_type"]=2, + ["trigger"]=8, + ["effect"]={ + { + ["type"]="atkp_yellow_add", + ["num"]=1000, + ["ratio"]=10000, + ["round"]=999 + } + }, + ["obj"]=1 + }, + [2300126]={ + ["position"]=2, + ["buff_condition"]={ + { + { + ["type"]="state", + ["attr"]="lethargy", + ["op"]=">", + ["v"]=0, + ["side"]=2 + } + } + }, + ["condition_rel"]={ + { + 1, + 1 + } + }, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="stun", + ["num"]=0, + ["ratio"]=5000, + ["round"]=2 + } + }, + ["obj"]=2 + }, + [2300210]={ + ["position"]=2, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_yellow", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=1, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=2200111, + ["name_act"]="attack01", + ["fx_self"]=300004, + ["fx_target"]=4, + ["fx_target_delay"]=366 + }, + [2300211]={ + ["position"]=2, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_yellow", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=1, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=2200112, + ["name_act"]="attack02", + ["fx_self"]=300005, + ["fx_target"]=4, + ["fx_target_delay"]=400 + }, + [2300212]={ + ["position"]=2, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_yellow", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=1, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=2200113, + ["name_act"]="attack03", + ["fx_self"]=300006, + ["fx_target"]=4, + ["fx_target_delay"]=333 + }, + [2300213]={ + ["position"]=2, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_yellow", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=1, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=2200114, + ["name_act"]="attack04", + ["fx_self"]=300007, + ["fx_target"]=4, + ["fx_target_delay"]=433 + }, + [2300220]={ + ["energy"]=10, + ["link"]=1, + ["position"]=2, + ["method"]=2, + ["skill_type"]=4, + ["boardrange"]={ + + }, + ["battle_icon"]="2", + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_yellow", + ["num"]=33400, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["eliminate_effect"]={ + { + ["type"]="dmg_addition_all_add", + ["num"]=5000, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["eliminate_obj"]=1, + ["skill_position"]=1, + ["shake_time"]=200, + ["shake_type"]=5, + ["sound_hit"]=2200120, + ["name_act"]="skill01", + ["fx_self"]=300008, + ["fx_target"]=4, + ["fx_target_delay"]=1100, + ["bullet_time"]={ + 1100, + 3000, + 400 + } + }, + [2300221]={ + ["position"]=2, + ["effect_type"]=2, + ["trigger"]=3, + ["effect"]={ + { + ["type"]="crit_add", + ["num"]=2000, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1 + }, + [2300222]={ + ["position"]=2, + ["effect_type"]=2, + ["trigger"]=3, + ["effect"]={ + { + ["type"]="crit_add", + ["num"]=3000, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1 + }, + [2300223]={ + ["position"]=2, + ["buff_condition"]={ + { + { + ["type"]="attr", + ["attr"]="hpp", + ["op"]="<", + ["v"]=5000, + ["side"]=2 + } + } + }, + ["condition_rel"]={ + { + 1, + 1 + } + }, + ["effect_type"]=2, + ["trigger"]=3, + ["effect"]={ + { + ["type"]="crit_time_add", + ["num"]=5000, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1 + }, [2400110]={ ["position"]=2, ["effect_type"]=1, @@ -921,15 +1859,158 @@ local skill = { } }, ["obj"]=2, - ["eliminate_effect"]={ + ["skill_position"]=2, + ["shake_time"]=200, + ["shake_type"]=6, + ["sound_hit"]=2300120, + ["name_act"]="skill01", + ["fx_self"]=300034, + ["bullet_time"]={ + 2033, + 3000, + 400 + } + }, + [2400121]={ + ["position"]=2, + ["buff_condition"]={ { - ["type"]="dmg_addition_all_add", - ["num"]=5000, - ["ratio"]=10000, - ["round"]=1 + { + ["type"]="state", + ["attr"]="frozen", + ["op"]=">", + ["v"]=0, + ["side"]=2 + } } }, - ["eliminate_obj"]=1, + ["condition_rel"]={ + { + 1, + 1 + } + }, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="hurt_yellow", + ["num"]=30000, + ["ratio"]=10000, + ["round"]=0 + }, + { + ["type"]="stun", + ["num"]=0, + ["ratio"]=3000, + ["round"]=2 + } + }, + ["obj"]=2 + }, + [2400122]={ + ["position"]=2, + ["buff_condition"]={ + { + { + ["type"]="state", + ["attr"]="frozen", + ["op"]=">", + ["v"]=0, + ["side"]=2 + } + } + }, + ["condition_rel"]={ + { + 1, + 1 + } + }, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="hurt_yellow", + ["num"]=30000, + ["ratio"]=10000, + ["round"]=0 + }, + { + ["type"]="stun", + ["num"]=0, + ["ratio"]=5000, + ["round"]=2 + } + }, + ["obj"]=2 + }, + [2400123]={ + ["energy"]=10, + ["link"]=1, + ["position"]=2, + ["method"]=2, + ["skill_type"]=4, + ["boardrange"]={ + + }, + ["battle_icon"]="7", + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_yellow", + ["num"]=63400, + ["ratio"]=10000, + ["round"]=0 + }, + { + ["type"]="imprison", + ["num"]=0, + ["ratio"]=5000, + ["round"]=2 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=200, + ["shake_type"]=6, + ["sound_hit"]=2300120, + ["name_act"]="skill01", + ["fx_self"]=300034, + ["bullet_time"]={ + 2033, + 3000, + 400 + } + }, + [2400124]={ + ["energy"]=10, + ["link"]=1, + ["position"]=2, + ["method"]=2, + ["skill_type"]=4, + ["boardrange"]={ + + }, + ["battle_icon"]="7", + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_yellow", + ["num"]=63400, + ["ratio"]=10000, + ["round"]=0 + }, + { + ["type"]="imprison", + ["num"]=0, + ["ratio"]=7000, + ["round"]=2 + } + }, + ["obj"]=2, ["skill_position"]=2, ["shake_time"]=200, ["shake_type"]=6, @@ -1035,7 +2116,10 @@ local skill = { ["link"]=1, ["position"]=3, ["method"]=1, - ["skill_type"]=0, + ["skill_type"]=4, + ["boardrange"]={ + + }, ["battle_icon"]="1", ["effect_type"]=1, ["trigger"]=1, @@ -1062,6 +2146,79 @@ local skill = { 400 } }, + [3200121]={ + ["position"]=3, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="heal", + ["num"]=6000, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1 + }, + [3200122]={ + ["position"]=3, + ["buff_condition"]={ + { + { + ["type"]="state", + ["attr"]="poison", + ["op"]=">", + ["v"]=0, + ["side"]=2 + } + } + }, + ["condition_rel"]={ + { + 1, + 1 + } + }, + ["effect_type"]=2, + ["trigger"]=7, + ["effect"]={ + { + ["type"]="dmg_addition_green_add", + ["num"]=2000, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1 + }, + [3200123]={ + ["position"]=3, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="stun", + ["num"]=0, + ["ratio"]=3000, + ["round"]=1 + } + }, + ["obj"]=2 + }, + [3200124]={ + ["position"]=3, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="stun", + ["num"]=0, + ["ratio"]=5000, + ["round"]=1 + } + }, + ["obj"]=2 + }, [3300110]={ ["position"]=3, ["effect_type"]=1, @@ -1147,7 +2304,10 @@ local skill = { ["link"]=1, ["position"]=3, ["method"]=1, - ["skill_type"]=0, + ["skill_type"]=4, + ["boardrange"]={ + + }, ["battle_icon"]="6", ["effect_type"]=1, ["trigger"]=1, @@ -1165,6 +2325,497 @@ local skill = { ["name_act"]="skill01", ["fx_self"]=300025 }, + [3300121]={ + ["position"]=3, + ["effect_type"]=2, + ["trigger"]=5, + ["effect"]={ + { + ["type"]="heal", + ["num"]=500, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1 + }, + [3300122]={ + ["position"]=3, + ["effect_type"]=2, + ["trigger"]=3, + ["effect"]={ + { + ["type"]="cured_add", + ["num"]=1000, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1 + }, + [3300123]={ + ["position"]=3, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="skill_hurt_add", + ["num"]=1500, + ["ratio"]=10000, + ["round"]=2 + } + }, + ["obj"]=1 + }, + [3300124]={ + ["position"]=3, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="skill_hurt_add", + ["num"]=1500, + ["ratio"]=10000, + ["round"]=3 + } + }, + ["obj"]=1 + }, + [3300210]={ + ["position"]=3, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_green", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=3300111, + ["name_act"]="attack01", + ["fx_target"]=300021 + }, + [3300211]={ + ["position"]=3, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_green", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=3300112, + ["name_act"]="attack02", + ["fx_target"]=300022 + }, + [3300212]={ + ["position"]=3, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_green", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=3300113, + ["name_act"]="attack03", + ["fx_target"]=300023 + }, + [3300213]={ + ["position"]=3, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_green", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=3300114, + ["name_act"]="attack04", + ["fx_target"]=300024 + }, + [3300220]={ + ["energy"]=10, + ["link"]=1, + ["position"]=3, + ["method"]=2, + ["battle_icon"]="6", + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_green", + ["num"]=33400, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["eliminate_effect"]={ + { + ["type"]="dmg_addition_all_add", + ["num"]=5000, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["eliminate_obj"]=1, + ["skill_position"]=1, + ["shake_time"]=200, + ["shake_type"]=5, + ["sound_hit"]=2200120, + ["name_act"]="skill01", + ["fx_self"]=300008, + ["fx_target"]=4, + ["fx_target_delay"]=1100, + ["bullet_time"]={ + 1100, + 3000, + 400 + } + }, + [3300221]={ + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="vulnerable", + ["num"]=2500, + ["ratio"]=5000, + ["round"]=2 + } + }, + ["obj"]=2 + }, + [3300222]={ + ["energy"]=10, + ["link"]=1, + ["position"]=3, + ["method"]=2, + ["battle_icon"]="6", + ["buff_condition"]={ + { + { + ["type"]="state", + ["attr"]="poison", + ["op"]=">", + ["v"]=0, + ["side"]=2 + } + } + }, + ["condition_rel"]={ + { + 1, + 1 + } + }, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_green", + ["num"]=33400, + ["ratio"]=10000, + ["round"]=0 + }, + { + ["type"]="poison", + ["num"]=5000, + ["ratio"]=5000, + ["round"]=2 + } + }, + ["obj"]=2, + ["eliminate_effect"]={ + { + ["type"]="dmg_addition_all_add", + ["num"]=5000, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["eliminate_obj"]=1, + ["skill_position"]=1, + ["shake_time"]=200, + ["shake_type"]=5, + ["sound_hit"]=2200120, + ["name_act"]="skill01", + ["fx_self"]=300008, + ["fx_target"]=4, + ["fx_target_delay"]=1100, + ["bullet_time"]={ + 1100, + 3000, + 400 + } + }, + [3300223]={ + ["energy"]=10, + ["link"]=1, + ["position"]=3, + ["method"]=2, + ["battle_icon"]="6", + ["buff_condition"]={ + { + { + ["type"]="state", + ["attr"]="poison", + ["op"]=">", + ["v"]=0, + ["side"]=2 + } + } + }, + ["condition_rel"]={ + { + 1, + 1 + } + }, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_green", + ["num"]=33400, + ["ratio"]=10000, + ["round"]=0 + }, + { + ["type"]="poison", + ["num"]=5000, + ["ratio"]=10000, + ["round"]=2 + } + }, + ["obj"]=2, + ["eliminate_effect"]={ + { + ["type"]="dmg_addition_all_add", + ["num"]=5000, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["eliminate_obj"]=1, + ["skill_position"]=1, + ["shake_time"]=200, + ["shake_type"]=5, + ["sound_hit"]=2200120, + ["name_act"]="skill01", + ["fx_self"]=300008, + ["fx_target"]=4, + ["fx_target_delay"]=1100, + ["bullet_time"]={ + 1100, + 3000, + 400 + } + }, + [3400110]={ + ["position"]=3, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_green", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=3300111, + ["name_act"]="attack01", + ["fx_target"]=300021 + }, + [3400111]={ + ["position"]=3, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_green", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=3300112, + ["name_act"]="attack02", + ["fx_target"]=300022 + }, + [3400112]={ + ["position"]=3, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_green", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=3300113, + ["name_act"]="attack03", + ["fx_target"]=300023 + }, + [3400113]={ + ["position"]=3, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_green", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=3300114, + ["name_act"]="attack04", + ["fx_target"]=300024 + }, + [3400120]={ + ["energy"]=10, + ["link"]=1, + ["position"]=3, + ["method"]=2, + ["battle_icon"]="6", + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_green", + ["num"]=43750, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["eliminate_effect"]={ + { + ["type"]="dmg_addition_all_add", + ["num"]=5000, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["eliminate_obj"]=1, + ["skill_position"]=1, + ["shake_time"]=200, + ["shake_type"]=5, + ["sound_hit"]=2200120, + ["name_act"]="skill01", + ["fx_self"]=300008, + ["fx_target"]=4, + ["fx_target_delay"]=1100, + ["bullet_time"]={ + 1100, + 3000, + 400 + } + }, + [3400121]={ + ["position"]=3, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="vulnerable", + ["num"]=2500, + ["ratio"]=10000, + ["round"]=2 + } + }, + ["obj"]=2 + }, + [3400122]={ + ["position"]=3, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="vulnerable", + ["num"]=3500, + ["ratio"]=10000, + ["round"]=2 + } + }, + ["obj"]=2 + }, + [3400123]={ + ["position"]=3, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="bleed", + ["num"]=3500, + ["ratio"]=5000, + ["round"]=2 + } + }, + ["obj"]=2 + }, + [3400124]={ + ["position"]=3, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="bleed", + ["num"]=7000, + ["ratio"]=5000, + ["round"]=2 + } + }, + ["obj"]=2 + }, [4200110]={ ["position"]=4, ["effect_type"]=1, @@ -1260,8 +2911,492 @@ local skill = { ["battle_icon"]="3", ["effect_type"]=1, ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_blue", + ["num"]=20000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, ["skill_position"]=2, - ["sound_hit"]=4200120 + ["shake_time"]=200, + ["shake_type"]=6, + ["sound_hit"]=4200120, + ["name_act"]="skill01", + ["fx_target"]=300011 + }, + [4200121]={ + ["position"]=4, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="normal_attack_dec", + ["num"]=1, + ["ratio"]=5000, + ["round"]=2 + } + }, + ["obj"]=2 + }, + [4200122]={ + ["position"]=4, + ["buff_condition"]={ + { + { + ["type"]="state", + ["attr"]="normal_attack_dec", + ["op"]=">", + ["v"]=0, + ["side"]=2 + } + } + }, + ["condition_rel"]={ + { + 1, + 1 + } + }, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="frozen", + ["num"]=0, + ["ratio"]=2000, + ["round"]=1 + } + }, + ["obj"]=2 + }, + [4200123]={ + ["position"]=4, + ["buff_condition"]={ + { + { + ["type"]="state", + ["attr"]="normal_attack_dec", + ["op"]=">", + ["v"]=0, + ["side"]=2 + } + } + }, + ["condition_rel"]={ + { + 1, + 1 + } + }, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="frozen", + ["num"]=0, + ["ratio"]=4000, + ["round"]=1 + } + }, + ["obj"]=2 + }, + [4300110]={ + ["position"]=4, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_blue", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=4200111, + ["name_act"]="attack01", + ["fx_target"]=300009 + }, + [4300111]={ + ["position"]=4, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_blue", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=4200112, + ["name_act"]="attack02", + ["fx_target"]=300010 + }, + [4300112]={ + ["position"]=4, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_blue", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=4200113, + ["name_act"]="attack03", + ["fx_target"]=300011 + }, + [4300113]={ + ["position"]=4, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_blue", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=4200114, + ["name_act"]="attack04", + ["fx_target"]=300012 + }, + [4300120]={ + ["energy"]=10, + ["link"]=1, + ["position"]=4, + ["method"]=2, + ["skill_type"]=4, + ["boardrange"]={ + + }, + ["battle_icon"]="8", + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_blue", + ["num"]=40000, + ["ratio"]=10000, + ["round"]=0 + }, + { + ["type"]="normal_attack_dec", + ["num"]=1, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=200, + ["shake_type"]=6, + ["sound_hit"]=4200120, + ["name_act"]="skill01", + ["fx_target"]=300011 + }, + [4300121]={ + ["position"]=4, + ["buff_condition"]={ + { + { + ["type"]="state", + ["attr"]="burn", + ["op"]=">", + ["v"]=0, + ["side"]=2 + } + } + }, + ["condition_rel"]={ + { + 1, + 1 + } + }, + ["effect_type"]=2, + ["trigger"]=7, + ["effect"]={ + { + ["type"]="dmg_addition_blue_add", + ["num"]=5000, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1, + ["skill_position"]=2 + }, + [4300122]={ + ["position"]=4, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="frozen", + ["num"]=0, + ["ratio"]=5000, + ["round"]=1 + } + }, + ["obj"]=2, + ["skill_position"]=2 + }, + [4300123]={ + ["position"]=4, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="shield_ice", + ["num"]=1000, + ["ratio"]=10000, + ["round"]=2 + } + }, + ["obj"]=1, + ["skill_position"]=2 + }, + [4300124]={ + ["position"]=4, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="shield_ice_rebound_400", + ["num"]=10000, + ["ratio"]=5000, + ["round"]=2 + } + }, + ["obj"]=1, + ["skill_position"]=2 + }, + [4300210]={ + ["position"]=4, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_blue", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=4200111, + ["name_act"]="attack01", + ["fx_target"]=300009 + }, + [4300211]={ + ["position"]=4, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_blue", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=4200112, + ["name_act"]="attack02", + ["fx_target"]=300010 + }, + [4300212]={ + ["position"]=4, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_blue", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=4200113, + ["name_act"]="attack03", + ["fx_target"]=300011 + }, + [4300213]={ + ["position"]=4, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_blue", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=4200114, + ["name_act"]="attack04", + ["fx_target"]=300012 + }, + [4300220]={ + ["energy"]=10, + ["link"]=1, + ["position"]=4, + ["method"]=2, + ["skill_type"]=4, + ["boardrange"]={ + + }, + ["battle_icon"]="8", + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_blue", + ["num"]=40000, + ["ratio"]=10000, + ["round"]=0 + }, + { + ["type"]="corrupt", + ["num"]=5000, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=200, + ["shake_type"]=6, + ["sound_hit"]=4200120, + ["name_act"]="skill01", + ["fx_target"]=300011 + }, + [4300221]={ + ["position"]=4, + ["buff_condition"]={ + { + { + ["type"]="state", + ["attr"]="vulnerable", + ["op"]=">", + ["v"]=0, + ["side"]=2 + } + } + }, + ["condition_rel"]={ + { + 1, + 1 + } + }, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="normal_attack_dec", + ["num"]=1, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=2 + }, + [4300222]={ + ["position"]=4, + ["buff_condition"]={ + { + { + ["type"]="state", + ["attr"]="vulnerable", + ["op"]=">", + ["v"]=0, + ["side"]=2 + } + } + }, + ["condition_rel"]={ + { + 1, + 1 + } + }, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="normal_attack_dec", + ["num"]=2, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=2 + }, + [4300223]={ + ["position"]=4, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="weaken", + ["num"]=2500, + ["ratio"]=10000, + ["round"]=2 + } + }, + ["obj"]=2 + }, + [4300224]={ + ["position"]=4, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="weaken", + ["num"]=2500, + ["ratio"]=10000, + ["round"]=4 + } + }, + ["obj"]=2 }, [4400110]={ ["position"]=4, @@ -1348,7 +3483,13 @@ local skill = { ["link"]=1, ["position"]=4, ["method"]=1, - ["skill_type"]=0, + ["skill_type"]=1, + ["boardrange"]={ + { + ["type"]=0, + ["range"]=3 + } + }, ["battle_icon"]="8", ["effect_type"]=1, ["trigger"]=1, @@ -1361,7 +3502,7 @@ local skill = { }, { ["type"]="normal_attack_dec", - ["num"]=2, + ["num"]=1, ["ratio"]=10000, ["round"]=1 } @@ -1382,6 +3523,65 @@ local skill = { 400 } }, + [4400121]={ + ["position"]=4, + ["buff_condition"]={ + { + { + ["type"]="state", + ["attr"]="burn", + ["op"]=">", + ["v"]=0, + ["side"]=2 + } + } + }, + ["condition_rel"]={ + { + 1, + 1 + } + }, + ["effect_type"]=2, + ["trigger"]=7, + ["effect"]={ + { + ["type"]="dmg_addition_blue_add", + ["num"]=5000, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1 + }, + [4400122]={ + ["position"]=4, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="frozen", + ["num"]=0, + ["ratio"]=5000, + ["round"]=2 + } + }, + ["obj"]=2 + }, + [4400123]={ + ["position"]=4, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="frozen", + ["num"]=0, + ["ratio"]=7000, + ["round"]=2 + } + }, + ["obj"]=2 + }, [5200110]={ ["position"]=5, ["effect_type"]=1, @@ -1508,6 +3708,580 @@ local skill = { ["name_act"]="skill01", ["fx_self"]=300016 }, + [5200122]={ + ["energy"]=10, + ["link"]=1, + ["position"]=5, + ["method"]=1, + ["skill_type"]=0, + ["battle_icon"]="4", + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="shield_rebound_400", + ["num"]=1000, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1, + ["skill_position"]=2, + ["sound_hit"]=5200120, + ["name_act"]="skill01", + ["fx_self"]=300016 + }, + [5300110]={ + ["position"]=5, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_purple", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=5200111, + ["name_act"]="attack01", + ["fx_target"]=300013 + }, + [5300111]={ + ["position"]=5, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_purple", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=5200112, + ["name_act"]="attack02", + ["fx_target"]=300013 + }, + [5300112]={ + ["position"]=5, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_purple", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=5200113, + ["name_act"]="attack03", + ["fx_target"]=300014 + }, + [5300113]={ + ["position"]=5, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_purple", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=5200114, + ["name_act"]="attack04", + ["fx_target"]=300015 + }, + [5300120]={ + ["energy"]=10, + ["link"]=1, + ["position"]=5, + ["method"]=1, + ["skill_type"]=0, + ["battle_icon"]="8", + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_purple", + ["num"]=50000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=200, + ["shake_type"]=6, + ["sound_hit"]=4200120, + ["name_act"]="skill01", + ["fx_target"]=300011 + }, + [5300121]={ + ["position"]=5, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="poison", + ["num"]=5000, + ["ratio"]=10000, + ["round"]=2 + } + }, + ["obj"]=2 + }, + [5300122]={ + ["position"]=5, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="lethargy", + ["num"]=0, + ["ratio"]=10000, + ["round"]=2 + } + }, + ["obj"]=2 + }, + [5300123]={ + ["position"]=5, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="poison", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=2 + } + }, + ["obj"]=2 + }, + [5300124]={ + ["position"]=5, + ["skill_type"]=11, + ["skill_type_parameter"]={ + 0, + 2 + }, + ["effect_type"]=2, + ["trigger"]=3, + ["obj"]=1 + }, + [5300125]={ + ["position"]=5, + ["skill_type"]=11, + ["skill_type_parameter"]={ + 0, + 4 + }, + ["effect_type"]=2, + ["trigger"]=3, + ["obj"]=1 + }, + [5300126]={ + ["position"]=5, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="undead", + ["num"]=0, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1 + }, + [5300210]={ + ["position"]=5, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_purple", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=5200111, + ["name_act"]="attack01", + ["fx_target"]=300013 + }, + [5300211]={ + ["position"]=5, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_purple", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=5200112, + ["name_act"]="attack02", + ["fx_target"]=300013 + }, + [5300212]={ + ["position"]=5, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_purple", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=5200113, + ["name_act"]="attack03", + ["fx_target"]=300014 + }, + [5300213]={ + ["position"]=5, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_purple", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=5200114, + ["name_act"]="attack04", + ["fx_target"]=300015 + }, + [5300220]={ + ["energy"]=10, + ["link"]=1, + ["position"]=5, + ["method"]=1, + ["skill_type"]=0, + ["battle_icon"]="8", + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_purple", + ["num"]=50000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=200, + ["shake_type"]=6, + ["sound_hit"]=4200120, + ["name_act"]="skill01", + ["fx_target"]=300011 + }, + [5300221]={ + ["position"]=5, + ["buff_condition"]={ + { + { + ["type"]="state", + ["attr"]="normal_attack_dec", + ["op"]=">", + ["v"]=0, + ["side"]=2 + } + } + }, + ["condition_rel"]={ + { + 1, + 1 + } + }, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="frozen", + ["num"]=0, + ["ratio"]=5000, + ["round"]=1 + } + }, + ["obj"]=2 + }, + [5300222]={ + ["position"]=5, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="counterattack", + ["num"]=1500, + ["ratio"]=5000, + ["round"]=2 + } + }, + ["obj"]=1 + }, + [5300223]={ + ["position"]=5, + ["buff_condition"]={ + { + { + ["type"]="state", + ["attr"]="normal_attack_dec", + ["op"]=">", + ["v"]=0, + ["side"]=2 + } + } + }, + ["condition_rel"]={ + { + 1, + 1 + } + }, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="frozen", + ["num"]=0, + ["ratio"]=7000, + ["round"]=1 + } + }, + ["obj"]=2 + }, + [5300224]={ + ["position"]=5, + ["effect_type"]=2, + ["trigger"]=6, + ["effect"]={ + { + ["type"]="counterattack", + ["num"]=1500, + ["ratio"]=10000, + ["round"]=2 + } + }, + ["obj"]=1 + }, + [5400110]={ + ["position"]=5, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_purple", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=5200111, + ["name_act"]="attack01", + ["fx_target"]=300013 + }, + [5400111]={ + ["position"]=5, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_purple", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=5200112, + ["name_act"]="attack02", + ["fx_target"]=300013 + }, + [5400112]={ + ["position"]=5, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_purple", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=5200113, + ["name_act"]="attack03", + ["fx_target"]=300014 + }, + [5400113]={ + ["position"]=5, + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_purple", + ["num"]=10000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=100, + ["shake_type"]=1, + ["sound_hit"]=5200114, + ["name_act"]="attack04", + ["fx_target"]=300015 + }, + [5400120]={ + ["energy"]=10, + ["link"]=1, + ["position"]=5, + ["method"]=1, + ["skill_type"]=0, + ["battle_icon"]="8", + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_purple", + ["num"]=60000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=200, + ["shake_type"]=6, + ["sound_hit"]=4200120, + ["name_act"]="skill01", + ["fx_target"]=300011 + }, + [5400121]={ + ["skill_type"]=11, + ["skill_type_parameter"]={ + 0, + 2 + }, + ["effect_type"]=2, + ["trigger"]=3, + ["obj"]=1 + }, + [5400122]={ + ["skill_type"]=12, + ["skill_type_parameter"]={ + 5, + 3 + }, + ["effect_type"]=2, + ["trigger"]=3, + ["obj"]=1 + }, + [5400123]={ + ["energy"]=8, + ["link"]=1, + ["position"]=5, + ["method"]=1, + ["skill_type"]=0, + ["battle_icon"]="8", + ["effect_type"]=1, + ["trigger"]=1, + ["effect"]={ + { + ["type"]="hurt_purple", + ["num"]=60000, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["skill_position"]=2, + ["shake_time"]=200, + ["shake_type"]=6, + ["sound_hit"]=4200120, + ["name_act"]="skill01", + ["fx_target"]=300011 + }, + [5400124]={ + ["effect_type"]=2, + ["trigger"]=9, + ["effect"]={ + { + ["type"]="skill_hurt_add", + ["num"]=5000, + ["ratio"]=10000, + ["round"]=999 + } + }, + ["obj"]=1 + }, + [5400125]={ + ["skill_type"]=11, + ["skill_type_parameter"]={ + 5, + 2 + }, + ["effect_type"]=2, + ["trigger"]=9, + ["obj"]=1 + }, [10001]={ ["effect_type"]=1, ["trigger"]=1, @@ -3154,6 +5928,6 @@ local skill = { } } local config = { -data=skill,count=159 +data=skill,count=277 } return config \ No newline at end of file diff --git a/lua/app/config/skill_rogue.lua b/lua/app/config/skill_rogue.lua index e36e4b31..b3b3a181 100644 --- a/lua/app/config/skill_rogue.lua +++ b/lua/app/config/skill_rogue.lua @@ -653,7 +653,7 @@ local skill_rogue = { }, ["icon"]="29" }, - [1200101]={ + [1200100]={ ["limit_times"]=1, ["weight"]=30000, ["qlt"]=4, @@ -661,9 +661,9 @@ local skill_rogue = { ["skill_position"]=1, ["icon"]="59" }, - [1200102]={ + [1200101]={ ["limit_times"]=1, - ["weight"]=2000, + ["weight"]=3000, ["qlt"]=3, ["type"]=2, ["skill_position"]=1, @@ -679,7 +679,7 @@ local skill_rogue = { }, ["icon"]="43" }, - [1200103]={ + [1200102]={ ["limit_times"]=1, ["weight"]=3000, ["qlt"]=3, @@ -696,16 +696,61 @@ local skill_rogue = { ["obj"]=1, ["icon"]="44" }, - [1200104]={ + [1200103]={ ["limit_times"]=1, - ["weight"]=1000, - ["qlt"]=4, - ["type"]=13, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=12, ["skill_position"]=1, ["effect"]={ { - ["type"]="block", - ["num"]=200, + ["type"]="add_skill", + ["num"]=1200123, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["icon"]="44" + }, + [1200104]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=2, + ["skill_position"]=1, + ["boardrange"]={ + { + ["type"]=1, + ["range"]=1 + }, + { + ["type"]=2, + ["range"]=1 + }, + { + ["type"]=3, + ["range"]=1 + }, + { + ["type"]=4, + ["range"]=1 + } + }, + ["icon"]="43" + }, + [1200105]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=14, + ["parameter"]={ + 5 + }, + ["skill_position"]=1, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=1200121, ["ratio"]=10000, ["round"]=1 } @@ -713,7 +758,431 @@ local skill_rogue = { ["obj"]=1, ["icon"]="45" }, - [2200101]={ + [1200106]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=9, + ["skill_position"]=1, + ["effect"]={ + { + ["type"]="atkp_red_add", + ["num"]=1000, + ["ratio"]=10000, + ["round"]=999 + } + }, + ["obj"]=3, + ["icon"]="45" + }, + [1200107]={ + ["unlock"]=1200105, + ["cover_unlock"]=1200105, + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=14, + ["parameter"]={ + 3 + }, + ["skill_position"]=1, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=1200122, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1, + ["icon"]="45" + }, + [1300100]={ + ["limit_times"]=1, + ["weight"]=30000, + ["qlt"]=4, + ["type"]=6, + ["skill_position"]=1, + ["icon"]="59" + }, + [1300101]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=1, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=1300121, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=3, + ["icon"]="43" + }, + [1300102]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=12, + ["skill_position"]=1, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=1300122, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=3, + ["icon"]="44" + }, + [1300103]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=1, + ["parameter"]={ + 1300123 + }, + ["skill_position"]=1, + ["icon"]="44" + }, + [1300104]={ + ["unlock"]=1300101, + ["cover_unlock"]=1300101, + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=12, + ["skill_position"]=1, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=1300124, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=3, + ["icon"]="43" + }, + [1300105]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=14, + ["parameter"]={ + 4 + }, + ["skill_position"]=1, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=1300126, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=8, + ["icon"]="45" + }, + [1300106]={ + ["unlock"]=1300105, + ["cover_unlock"]=1300105, + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=14, + ["parameter"]={ + 4 + }, + ["skill_position"]=1, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=1300127, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=8, + ["icon"]="45" + }, + [1300107]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=1, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=1300125, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=3, + ["icon"]="45" + }, + [1300200]={ + ["limit_times"]=1, + ["weight"]=30000, + ["qlt"]=4, + ["type"]=6, + ["skill_position"]=1 + }, + [1300201]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=2, + ["skill_position"]=1, + ["boardrange"]={ + { + ["type"]=3, + ["range"]=2 + }, + { + ["type"]=4, + ["range"]=2 + } + }, + ["icon"]="36" + }, + [1300202]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=12, + ["skill_position"]=1, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=1300221, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=3, + ["icon"]="44" + }, + [1300203]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=1, + ["parameter"]={ + 1300222 + }, + ["skill_position"]=1, + ["icon"]="36" + }, + [1300204]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=2, + ["skill_position"]=1, + ["boardrange"]={ + { + ["type"]=1, + ["range"]=1 + }, + { + ["type"]=2, + ["range"]=1 + } + }, + ["icon"]="36" + }, + [1300205]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=7, + ["parameter"]={ + 6, + 5000 + }, + ["skill_position"]=1, + ["icon"]="36" + }, + [1300206]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=9, + ["skill_position"]=1, + ["effect"]={ + { + ["type"]="atkp_red_add", + ["num"]=1500, + ["ratio"]=10000, + ["round"]=999 + } + }, + ["obj"]=3, + ["icon"]="45" + }, + [1300207]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=1, + ["effect"]={ + { + ["type"]="skill_fire_times", + ["num"]=1300220, + ["ratio"]=10000, + ["round"]=1 + }, + { + ["type"]="skill_fire_times", + ["num"]=1300222, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=3, + ["icon"]="36" + }, + [1400100]={ + ["limit_times"]=1, + ["weight"]=30000, + ["qlt"]=4, + ["type"]=6, + ["skill_position"]=1 + }, + [1400101]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=1, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=1400121, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=3, + ["icon"]="36" + }, + [1400102]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=12, + ["skill_position"]=1, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=1400122, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=3, + ["icon"]="45" + }, + [1400103]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=12, + ["skill_position"]=1, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=1400123, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=3, + ["icon"]="36" + }, + [1400104]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=1, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=1400124, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=3, + ["icon"]="45" + }, + [1400105]={ + ["unlock"]=1400101, + ["cover_unlock"]=1400101, + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=1, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=1400125, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=3, + ["icon"]="36" + }, + [1400106]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=9, + ["skill_position"]=1, + ["effect"]={ + { + ["type"]="atkp_red_add", + ["num"]=1500, + ["ratio"]=10000, + ["round"]=999 + } + }, + ["obj"]=3, + ["icon"]="45" + }, + [1400107]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=15, + ["parameter"]={ + 4 + }, + ["skill_position"]=1, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=1400126, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=3, + ["icon"]="36" + }, + [2200100]={ ["limit_times"]=1, ["weight"]=30000, ["qlt"]=4, @@ -721,7 +1190,7 @@ local skill_rogue = { ["skill_position"]=2, ["icon"]="56" }, - [2200102]={ + [2200101]={ ["limit_times"]=1, ["weight"]=3000, ["qlt"]=3, @@ -733,12 +1202,12 @@ local skill_rogue = { ["skill_position"]=2, ["icon"]="65" }, - [2200103]={ + [2200102]={ ["limit_times"]=1, - ["weight"]=2000, + ["weight"]=3000, ["qlt"]=3, ["type"]=2, - ["skill_position"]=1, + ["skill_position"]=2, ["boardrange"]={ { ["type"]=1, @@ -759,9 +1228,43 @@ local skill_rogue = { }, ["icon"]="34" }, + [2200103]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=12, + ["skill_position"]=2, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=2200121, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=4, + ["icon"]="44" + }, [2200104]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=9, + ["skill_position"]=2, + ["effect"]={ + { + ["type"]="atkp_yellow_add", + ["num"]=1000, + ["ratio"]=10000, + ["round"]=999 + } + }, + ["obj"]=4, + ["icon"]="45" + }, + [2200105]={ + ["limit_times"]=1, + ["weight"]=3000, ["qlt"]=4, ["type"]=12, ["skill_position"]=2, @@ -771,72 +1274,15 @@ local skill_rogue = { ["num"]=2200120, ["ratio"]=10000, ["round"]=1 - }, - { - ["type"]="skill_fire_times", - ["num"]=2200121, - ["ratio"]=10000, - ["round"]=1 } }, ["obj"]=4, ["icon"]="36" }, - [2400101]={ - ["limit_times"]=1, - ["weight"]=30000, - ["qlt"]=4, - ["type"]=6, - ["skill_position"]=2, - ["icon"]="61" - }, - [2400102]={ - ["limit_times"]=1, - ["weight"]=2000, - ["qlt"]=3, - ["type"]=2, - ["skill_position"]=2, - ["boardrange"]={ - { - ["type"]=1, - ["range"]=1 - }, - { - ["type"]=2, - ["range"]=1 - }, - { - ["type"]=3, - ["range"]=1 - }, - { - ["type"]=4, - ["range"]=1 - } - }, - ["icon"]="49" - }, - [2400103]={ + [2200106]={ ["limit_times"]=1, ["weight"]=3000, ["qlt"]=3, - ["type"]=3, - ["skill_position"]=2, - ["effect"]={ - { - ["type"]="atkp", - ["num"]=2000, - ["ratio"]=10000, - ["round"]=1 - } - }, - ["obj"]=1, - ["icon"]="50" - }, - [2400104]={ - ["limit_times"]=1, - ["weight"]=1000, - ["qlt"]=4, ["type"]=2, ["skill_position"]=2, ["boardrange"]={ @@ -857,183 +1303,164 @@ local skill_rogue = { ["range"]=1 } }, + ["icon"]="45" + }, + [2200107]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=2, + ["type"]=12, + ["skill_position"]=2, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=2200122, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=4, + ["icon"]="36" + }, + [2300100]={ + ["limit_times"]=1, + ["weight"]=30000, + ["qlt"]=4, + ["type"]=6, + ["skill_position"]=2, + ["icon"]="56" + }, + [2300101]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=12, + ["skill_position"]=2, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=2400121, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=4, ["icon"]="51" }, - [3200101]={ + [2300102]={ ["limit_times"]=1, - ["weight"]=30000, + ["weight"]=3000, ["qlt"]=4, - ["type"]=6, - ["skill_position"]=3, - ["icon"]="55" + ["type"]=1, + ["parameter"]={ + 2300122 + }, + ["skill_position"]=2, + ["icon"]="51" }, - [3200102]={ + [2300103]={ ["limit_times"]=1, - ["weight"]=2000, - ["qlt"]=3, + ["weight"]=3000, + ["qlt"]=4, ["type"]=12, - ["skill_position"]=3, + ["skill_position"]=2, ["effect"]={ { ["type"]="add_skill", - ["num"]=10, + ["num"]=2300123, ["ratio"]=10000, ["round"]=1 } }, - ["obj"]=5, - ["icon"]="63" + ["obj"]=4, + ["icon"]="45" }, - [3200103]={ + [2300104]={ + ["unlock"]=2300101, + ["cover_unlock"]=2300101, ["limit_times"]=1, ["weight"]=3000, ["qlt"]=3, - ["type"]=7, - ["parameter"]={ - 1, - 30000 - }, - ["skill_position"]=3, - ["icon"]="64" - }, - [3200104]={ - ["limit_times"]=1, - ["weight"]=1000, - ["qlt"]=4, ["type"]=12, - ["skill_position"]=3, + ["skill_position"]=2, ["effect"]={ { ["type"]="add_skill", - ["num"]=9, + ["num"]=2300124, ["ratio"]=10000, ["round"]=1 } }, - ["obj"]=5, - ["icon"]="33" + ["obj"]=4, + ["icon"]="49" }, - [3300101]={ + [2300105]={ ["limit_times"]=1, - ["weight"]=30000, + ["weight"]=3000, ["qlt"]=4, - ["type"]=6, - ["skill_position"]=3, - ["icon"]="60" - }, - [3300102]={ - ["limit_times"]=1, - ["weight"]=2000, - ["qlt"]=3, - ["type"]=7, - ["parameter"]={ - 1, - 500 + ["type"]=9, + ["skill_position"]=2, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=2300125, + ["ratio"]=10000, + ["round"]=1 + } }, - ["skill_position"]=3, - ["icon"]="67" + ["obj"]=4, + ["icon"]="51" }, - [3300103]={ + [2300106]={ + ["unlock"]=2300103, + ["cover_unlock"]=2300103, + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=2, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=2300126, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=4, + ["icon"]="51" + }, + [2300107]={ ["limit_times"]=1, ["weight"]=3000, ["qlt"]=3, - ["type"]=3, - ["skill_position"]=3, + ["type"]=9, + ["skill_position"]=2, ["effect"]={ { - ["type"]="atkp", + ["type"]="atkp_yellow_add", ["num"]=1500, ["ratio"]=10000, - ["round"]=1 + ["round"]=999 } }, - ["obj"]=1, - ["icon"]="47" + ["obj"]=4, + ["icon"]="45" }, - [3300104]={ - ["limit_times"]=1, - ["weight"]=1000, - ["qlt"]=4, - ["type"]=12, - ["skill_position"]=3, - ["effect"]={ - { - ["type"]="add_skill", - ["num"]=14, - ["ratio"]=10000, - ["round"]=1 - } - }, - ["obj"]=1, - ["icon"]="48" - }, - [4200101]={ + [2300200]={ ["limit_times"]=1, ["weight"]=30000, ["qlt"]=4, ["type"]=6, - ["skill_position"]=4, - ["icon"]="57" + ["skill_position"]=2, + ["icon"]="56" }, - [4200102]={ - ["limit_times"]=1, - ["weight"]=1000, - ["qlt"]=3, - ["type"]=2, - ["skill_position"]=4, - ["boardrange"]={ - { - ["type"]=0, - ["range"]=2 - } - }, - ["icon"]="39" - }, - [4200103]={ + [2300201]={ ["limit_times"]=1, ["weight"]=3000, ["qlt"]=3, - ["type"]=3, - ["skill_position"]=4, - ["effect"]={ - { - ["type"]="atkp", - ["num"]=1000, - ["ratio"]=10000, - ["round"]=1 - } - }, - ["obj"]=1, - ["icon"]="38" - }, - [4200104]={ - ["limit_times"]=1, - ["weight"]=1000, - ["qlt"]=4, ["type"]=2, - ["skill_position"]=4, - ["boardrange"]={ - { - ["type"]=0, - ["range"]=2 - } - }, - ["icon"]="39" - }, - [4400101]={ - ["limit_times"]=1, - ["weight"]=30000, - ["qlt"]=4, - ["type"]=6, - ["skill_position"]=4, - ["icon"]="62" - }, - [4400102]={ - ["limit_times"]=1, - ["weight"]=2000, - ["qlt"]=3, - ["type"]=2, - ["skill_position"]=1, + ["skill_position"]=2, ["boardrange"]={ { ["type"]=1, @@ -1052,33 +1479,1264 @@ local skill_rogue = { ["range"]=1 } }, - ["icon"]="52" + ["icon"]="51" }, - [4400103]={ + [2300202]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=9, + ["skill_position"]=2, + ["effect"]={ + { + ["type"]="atkp_yellow_add", + ["num"]=1000, + ["ratio"]=10000, + ["round"]=999 + } + }, + ["obj"]=4, + ["icon"]="45" + }, + [2300203]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=2, + ["type"]=3, + ["skill_position"]=2, + ["effect"]={ + { + ["type"]="atkp", + ["num"]=1500, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1, + ["icon"]="45" + }, + [2300204]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=2, + ["skill_position"]=2, + ["boardrange"]={ + { + ["type"]=5, + ["range"]=1 + }, + { + ["type"]=6, + ["range"]=1 + }, + { + ["type"]=7, + ["range"]=1 + }, + { + ["type"]=8, + ["range"]=1 + } + }, + ["icon"]="49" + }, + [2300205]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=14, + ["parameter"]={ + 4 + }, + ["skill_position"]=2, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=2300221, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=4, + ["icon"]="51" + }, + [2300206]={ + ["unlock"]=2300205, + ["cover_unlock"]=2300205, + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=14, + ["parameter"]={ + 4 + }, + ["skill_position"]=2, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=2300222, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=4, + ["icon"]="51" + }, + [2300207]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=2, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=2300223, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=4, + ["icon"]="45" + }, + [2400100]={ + ["limit_times"]=1, + ["weight"]=30000, + ["qlt"]=4, + ["type"]=6, + ["skill_position"]=2, + ["icon"]="61" + }, + [2400101]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=2, + ["skill_position"]=2, + ["boardrange"]={ + { + ["type"]=5, + ["range"]=1 + }, + { + ["type"]=6, + ["range"]=1 + }, + { + ["type"]=7, + ["range"]=1 + }, + { + ["type"]=8, + ["range"]=1 + } + }, + ["icon"]="49" + }, + [2400102]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=12, + ["skill_position"]=2, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=2400121, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=4, + ["icon"]="50" + }, + [2400103]={ + ["unlock"]=2400102, + ["cover_unlock"]=2400102, + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=2, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=2400122, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=4, + ["icon"]="51" + }, + [2400104]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=9, + ["skill_position"]=2, + ["effect"]={ + { + ["type"]="atkp_yellow_add", + ["num"]=1000, + ["ratio"]=10000, + ["round"]=999 + } + }, + ["obj"]=4, + ["icon"]="45" + }, + [2400105]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=1, + ["parameter"]={ + 2400123 + }, + ["skill_position"]=2, + ["icon"]="49" + }, + [2400106]={ + ["unlock"]=2400105, + ["cover_unlock"]=2400105, + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=1, + ["parameter"]={ + 2400124 + }, + ["skill_position"]=2, + ["icon"]="50" + }, + [2400107]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=2, + ["effect"]={ + { + ["type"]="hurt_yellow", + ["num"]=33400, + ["ratio"]=10000, + ["round"]=0 + } + }, + ["obj"]=2, + ["icon"]="51" + }, + [3200100]={ + ["limit_times"]=1, + ["weight"]=30000, + ["qlt"]=4, + ["type"]=6, + ["skill_position"]=3, + ["icon"]="55" + }, + [3200101]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=3, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=10, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=5, + ["icon"]="63" + }, + [3200102]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=12, + ["skill_position"]=3, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=2200121, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=5, + ["icon"]="64" + }, + [3200103]={ ["limit_times"]=1, ["weight"]=3000, ["qlt"]=3, ["type"]=7, ["parameter"]={ 1, - 40000 + 30000 }, - ["skill_position"]=4, - ["icon"]="53" + ["skill_position"]=3, + ["obj"]=5, + ["icon"]="33" }, - [4400104]={ + [3200104]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=2, + ["skill_position"]=3, + ["boardrange"]={ + { + ["type"]=5, + ["range"]=1 + }, + { + ["type"]=6, + ["range"]=1 + }, + { + ["type"]=7, + ["range"]=1 + }, + { + ["type"]=8, + ["range"]=1 + } + }, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=9, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=5, + ["icon"]="55" + }, + [3200105]={ + ["limit_times"]=1, + ["weight"]=3000, ["qlt"]=4, + ["type"]=12, + ["skill_position"]=3, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=3200123, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=5, + ["icon"]="63" + }, + [3200106]={ + ["unlock"]=3200105, + ["cover_unlock"]=3200105, + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=12, + ["skill_position"]=3, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=3200124, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=5, + ["icon"]="64" + }, + [3200107]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=12, + ["skill_position"]=3, + ["effect"]={ + { + ["type"]="block", + ["num"]=1000, + ["ratio"]=10000, + ["round"]=2 + } + }, + ["obj"]=8, + ["icon"]="33" + }, + [3300100]={ + ["limit_times"]=1, + ["weight"]=30000, + ["qlt"]=4, + ["type"]=6, + ["skill_position"]=3, + ["icon"]="60" + }, + [3300101]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=7, + ["parameter"]={ + 1, + 500 + }, + ["skill_position"]=3, + ["icon"]="67" + }, + [3300102]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=2, + ["type"]=3, + ["skill_position"]=3, + ["effect"]={ + { + ["type"]="atkp", + ["num"]=1500, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1, + ["icon"]="47" + }, + [3300103]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=2, + ["skill_position"]=3, + ["boardrange"]={ + { + ["type"]=1, + ["range"]=1 + }, + { + ["type"]=2, + ["range"]=1 + }, + { + ["type"]=3, + ["range"]=1 + }, + { + ["type"]=4, + ["range"]=1 + } + }, + ["icon"]="67" + }, + [3300104]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=3, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=3300123, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=8, + ["icon"]="47" + }, + [3300105]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=3, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=3300121, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1, + ["icon"]="48" + }, + [3300106]={ + ["unlock"]=3300104, + ["cover_unlock"]=3300104, + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=2, + ["type"]=12, + ["skill_position"]=3, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=3300124, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=8, + ["icon"]="47" + }, + [3300107]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=14, + ["parameter"]={ + 5 + }, + ["skill_position"]=3, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=3300122, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=8, + ["icon"]="48" + }, + [3300200]={ + ["limit_times"]=1, + ["weight"]=30000, + ["qlt"]=4, + ["type"]=6, + ["skill_position"]=3, + ["icon"]="38" + }, + [3300201]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=12, + ["skill_position"]=3, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=3300221, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1, + ["icon"]="38" + }, + [3300202]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=3, + ["skill_position"]=3, + ["effect"]={ + { + ["type"]="atkp", + ["num"]=1500, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1, + ["icon"]="38" + }, + [3300203]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=7, + ["parameter"]={ + 1, + 30000 + }, + ["skill_position"]=3, + ["icon"]="38" + }, + [3300204]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=1, + ["parameter"]={ + 3300222 + }, + ["skill_position"]=3, + ["icon"]="38" + }, + [3300205]={ + ["unlock"]=3300204, + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=7, + ["parameter"]={ + 2, + 5000 + }, + ["skill_position"]=3, + ["icon"]="38" + }, + [3300206]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=9, + ["skill_position"]=4, + ["effect"]={ + { + ["type"]="atkp_green_add", + ["num"]=1500, + ["ratio"]=10000, + ["round"]=999 + } + }, + ["obj"]=5, + ["icon"]="38" + }, + [3300207]={ + ["unlock"]=3300204, + ["cover_unlock"]=3300204, + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=1, + ["parameter"]={ + 3300223 + }, + ["skill_position"]=3, + ["icon"]="38" + }, + [3400100]={ + ["weight"]=30000, + ["qlt"]=4, + ["type"]=6, + ["icon"]="67" + }, + [3400101]={ + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=3400121, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=5, + ["icon"]="67" + }, + [3400102]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=2, + ["skill_position"]=3, + ["boardrange"]={ + { + ["type"]=1, + ["range"]=1 + }, + { + ["type"]=2, + ["range"]=1 + }, + { + ["type"]=3, + ["range"]=1 + }, + { + ["type"]=4, + ["range"]=1 + } + }, + ["icon"]="67" + }, + [3400103]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=9, + ["skill_position"]=4, + ["effect"]={ + { + ["type"]="atkp_green_add", + ["num"]=1500, + ["ratio"]=10000, + ["round"]=999 + } + }, + ["obj"]=5, + ["icon"]="67" + }, + [3400104]={ + ["unlock"]=3400101, + ["cover_unlock"]=3400101, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=12, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=3400122, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=5, + ["icon"]="67" + }, + [3400105]={ + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=3400123, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=5, + ["icon"]="67" + }, + [3400106]={ + ["unlock"]=3400106, + ["cover_unlock"]=3400106, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=12, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=3400124, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=5, + ["icon"]="67" + }, + [3400107]={ + ["weight"]=3000, + ["qlt"]=4, + ["type"]=14, + ["parameter"]={ + 4 + }, + ["effect"]={ + { + ["type"]="skill_fire_times", + ["num"]=3400120, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=5, + ["icon"]="67" + }, + [4200100]={ + ["limit_times"]=1, + ["weight"]=30000, + ["qlt"]=4, + ["type"]=6, + ["skill_position"]=4, + ["icon"]="57" + }, + [4200101]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=2, + ["skill_position"]=4, + ["boardrange"]={ + { + ["type"]=0, + ["range"]=2 + } + }, + ["icon"]="39" + }, + [4200102]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=3, + ["skill_position"]=4, + ["effect"]={ + { + ["type"]="atkp", + ["num"]=1000, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1, + ["icon"]="38" + }, + [4200103]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=12, + ["skill_position"]=4, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=4200121, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=6, + ["icon"]="45" + }, + [4200104]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=2, + ["skill_position"]=4, + ["boardrange"]={ + { + ["type"]=0, + ["range"]=2 + } + }, + ["icon"]="39" + }, + [4200105]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=4, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=4200122, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=6, + ["icon"]="38" + }, + [4200106]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=9, + ["skill_position"]=4, + ["effect"]={ + { + ["type"]="atkp_blue_add", + ["num"]=1000, + ["ratio"]=10000, + ["round"]=999 + } + }, + ["obj"]=6, + ["icon"]="45" + }, + [4200107]={ + ["unlock"]=4200105, + ["cover_unlock"]=4200105, + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=4, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=4200123, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=6, + ["icon"]="39" + }, + [4300100]={ + ["limit_times"]=1, + ["weight"]=30000, + ["qlt"]=4, + ["type"]=6, + ["icon"]="57" + }, + [4300101]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=2, + ["skill_position"]=4, + ["boardrange"]={ + { + ["type"]=1, + ["range"]=1 + }, + { + ["type"]=2, + ["range"]=1 + }, + { + ["type"]=3, + ["range"]=1 + }, + { + ["type"]=4, + ["range"]=1 + } + }, + ["icon"]="39" + }, + [4300102]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=12, + ["skill_position"]=4, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=4300121, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=6, + ["icon"]="38" + }, + [4300103]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, ["type"]=8, ["parameter"]={ 2, 1 }, ["skill_position"]=4, - ["icon"]="54" + ["icon"]="45" }, - [5200101]={ + [4300104]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=7, + ["parameter"]={ + 1, + 30000 + }, + ["skill_position"]=4, + ["icon"]="39" + }, + [4300105]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=4, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=4300122, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=6, + ["icon"]="38" + }, + [4300106]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=4, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=4300123, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=6, + ["icon"]="45" + }, + [4300107]={ + ["unlock"]=4300106, + ["cover_unlock"]=4300106, + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=4, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=4300124, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=6, + ["icon"]="39" + }, + [4300300]={ + ["limit_times"]=1, + ["weight"]=30000, + ["qlt"]=4, + ["icon"]="57" + }, + [4300301]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=8, + ["parameter"]={ + 2, + 1 + }, + ["icon"]="39" + }, + [4300302]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=4300221, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=6, + ["icon"]="38" + }, + [4300303]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=3, + ["skill_position"]=4, + ["effect"]={ + { + ["type"]="atkp", + ["num"]=1500, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1, + ["icon"]="45" + }, + [4300304]={ + ["unlock"]=4300302, + ["cover_unlock"]=4300302, + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=4300222, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=6, + ["icon"]="39" + }, + [4300305]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=4300223, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=6, + ["icon"]="38" + }, + [4300306]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=3, + ["skill_position"]=4, + ["boardrange"]={ + { + ["type"]=1, + ["range"]=1 + }, + { + ["type"]=2, + ["range"]=1 + }, + { + ["type"]=3, + ["range"]=1 + }, + { + ["type"]=4, + ["range"]=1 + } + }, + ["icon"]="45" + }, + [4300307]={ + ["unlock"]=4300305, + ["cover_unlock"]=4300305, + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=4300224, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=6, + ["icon"]="39" + }, + [4400100]={ + ["limit_times"]=1, + ["weight"]=30000, + ["qlt"]=4, + ["type"]=6, + ["skill_position"]=4, + ["icon"]="62" + }, + [4400101]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=8, + ["parameter"]={ + 2, + 1 + }, + ["skill_position"]=4, + ["icon"]="39" + }, + [4400102]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=12, + ["skill_position"]=4, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=4400121, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=6, + ["icon"]="39" + }, + [4400103]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=2, + ["skill_position"]=4, + ["boardrange"]={ + { + ["type"]=0, + ["range"]=3 + } + }, + ["icon"]="39" + }, + [4400104]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=7, + ["parameter"]={ + 2, + 1 + }, + ["skill_position"]=4, + ["icon"]="39" + }, + [4400105]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=4, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=4400122, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=6, + ["icon"]="39" + }, + [4400106]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=9, + ["skill_position"]=4, + ["effect"]={ + { + ["type"]="atkp_blue_add", + ["num"]=1500, + ["ratio"]=10000, + ["round"]=999 + } + }, + ["obj"]=6, + ["icon"]="39" + }, + [4400107]={ + ["unlock"]=4400105, + ["cover_unlock"]=4400105, + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=4, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=4400123, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=6, + ["icon"]="39" + }, + [5200100]={ ["limit_times"]=1, ["weight"]=30000, ["qlt"]=4, @@ -1086,7 +2744,7 @@ local skill_rogue = { ["skill_position"]=5, ["icon"]="58" }, - [5200102]={ + [5200101]={ ["limit_times"]=1, ["weight"]=3000, ["qlt"]=3, @@ -1098,9 +2756,26 @@ local skill_rogue = { ["skill_position"]=5, ["icon"]="41" }, + [5200102]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=3, + ["skill_position"]=5, + ["effect"]={ + { + ["type"]="atkp", + ["num"]=1000, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1, + ["icon"]="44" + }, [5200103]={ ["limit_times"]=1, - ["weight"]=2000, + ["weight"]=3000, ["qlt"]=3, ["type"]=8, ["parameter"]={ @@ -1112,7 +2787,33 @@ local skill_rogue = { }, [5200104]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=2, + ["skill_position"]=5, + ["boardrange"]={ + { + ["type"]=1, + ["range"]=1 + }, + { + ["type"]=2, + ["range"]=1 + }, + { + ["type"]=3, + ["range"]=1 + }, + { + ["type"]=4, + ["range"]=1 + } + }, + ["icon"]="67" + }, + [5200105]={ + ["limit_times"]=1, + ["weight"]=3000, ["qlt"]=4, ["type"]=1, ["parameter"]={ @@ -1120,9 +2821,409 @@ local skill_rogue = { }, ["skill_position"]=5, ["icon"]="66" + }, + [5200106]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=9, + ["skill_position"]=5, + ["effect"]={ + { + ["type"]="atkp_purple_add", + ["num"]=1500, + ["ratio"]=10000, + ["round"]=999 + } + }, + ["obj"]=7, + ["icon"]="58" + }, + [5200107]={ + ["unlock"]=5200105, + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=1, + ["parameter"]={ + 5200122 + }, + ["skill_position"]=5, + ["icon"]="66" + }, + [5300100]={ + ["limit_times"]=1, + ["weight"]=30000, + ["qlt"]=4, + ["type"]=6, + ["skill_position"]=5, + ["icon"]="58" + }, + [5300101]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=12, + ["skill_position"]=5, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=5300121, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=7, + ["icon"]="41" + }, + [5300102]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=3, + ["skill_position"]=5, + ["effect"]={ + { + ["type"]="atkp", + ["num"]=1500, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=1, + ["icon"]="44" + }, + [5300103]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=5, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=5300122, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=7, + ["icon"]="42" + }, + [5300104]={ + ["unlock"]=5300101, + ["cover_unlock"]=5300101, + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=12, + ["skill_position"]=5, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=5300123, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=7, + ["icon"]="67" + }, + [5300105]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=5, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=5300124, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=7, + ["icon"]="66" + }, + [5300106]={ + ["unlock"]=5300105, + ["cover_unlock"]=5300105, + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=5, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=5300125, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=7, + ["icon"]="58" + }, + [5300107]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=5, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=5300126, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=7, + ["icon"]="66" + }, + [5300200]={ + ["limit_times"]=1, + ["weight"]=30000, + ["qlt"]=4, + ["type"]=6, + ["skill_position"]=5, + ["icon"]="58" + }, + [5300201]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=2, + ["skill_position"]=5, + ["boardrange"]={ + { + ["type"]=1, + ["range"]=1 + }, + { + ["type"]=2, + ["range"]=1 + }, + { + ["type"]=3, + ["range"]=1 + }, + { + ["type"]=4, + ["range"]=1 + } + }, + ["icon"]="41" + }, + [5300202]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=5, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=5300221, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=7, + ["icon"]="44" + }, + [5300203]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=7, + ["parameter"]={ + 1, + 30000 + }, + ["skill_position"]=5, + ["icon"]="42" + }, + [5300204]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=9, + ["skill_position"]=5, + ["effect"]={ + { + ["type"]="atkp_purple_add", + ["num"]=1500, + ["ratio"]=10000, + ["round"]=999 + } + }, + ["obj"]=7, + ["icon"]="67" + }, + [5300205]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=5, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=5300222, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=7, + ["icon"]="66" + }, + [5300206]={ + ["unlock"]=5300202, + ["cover_unlock"]=5300202, + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=12, + ["skill_position"]=5, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=5300223, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=7, + ["icon"]="58" + }, + [5300207]={ + ["unlock"]=5300205, + ["cover_unlock"]=5300205, + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=5, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=5300224, + ["ratio"]=10000, + ["round"]=1 + } + }, + ["obj"]=7, + ["icon"]="66" + }, + [5400100]={ + ["limit_times"]=1, + ["weight"]=30000, + ["qlt"]=4, + ["type"]=6, + ["skill_position"]=5 + }, + [5400101]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=7, + ["parameter"]={ + 1, + 30000 + }, + ["skill_position"]=5 + }, + [5400102]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=5, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=5400121, + ["ratio"]=10000, + ["round"]=1 + } + } + }, + [5400103]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=12, + ["skill_position"]=5, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=5400122, + ["ratio"]=10000, + ["round"]=1 + } + } + }, + [5400104]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, + ["type"]=9, + ["skill_position"]=5, + ["effect"]={ + { + ["type"]="atkp_purple_add", + ["num"]=1500, + ["ratio"]=10000, + ["round"]=999 + } + }, + ["obj"]=7, + ["icon"]="67" + }, + [5400105]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=1, + ["parameter"]={ + 5400123 + }, + ["skill_position"]=5 + }, + [5400106]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=5, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=5400124, + ["ratio"]=10000, + ["round"]=1 + } + } + }, + [5400107]={ + ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, + ["type"]=12, + ["skill_position"]=5, + ["effect"]={ + { + ["type"]="add_skill", + ["num"]=5400125, + ["ratio"]=10000, + ["round"]=1 + } + } } } local config = { -data=skill_rogue,count=76 +data=skill_rogue,count=204 } return config \ No newline at end of file diff --git a/lua/app/config/strings/cn/global.lua b/lua/app/config/strings/cn/global.lua index 5c3b2b28..07e92ae9 100644 --- a/lua/app/config/strings/cn/global.lua +++ b/lua/app/config/strings/cn/global.lua @@ -75,6 +75,43 @@ local localization_global = ["ACT_SEVENDAY_DESC"] = "每日将开启新的任务。", ["BTN_CLAIM"] = "领取", ["BTN_DONE"] = "已领取", + ["BOUNTY_BUY_LEVEL_TITLE"] = "确认解锁等级", + ["BOUNTY_BUY_LEVEL_COUNTENT"] = "立即解锁当前等级\n等级奖励将立即解锁,你收集到的积分数量仍然相同", + ["BOUNTY_PURCHASE_NAME"] = "黄金通行证", + ["BOUNTY_DESC_1"] = "解锁奖励和奖励任务", + ["BOUNTY_DESC_2"] = "获得高级通行证,+10级,立即获得更多奖励!", + ["REWARD_BOX_DESC"] = "奖励宝箱", + ["BOUNTY_DESC_3"] = "当你完成通行证的所有内容,每1000个积分可以获取一个奖励宝箱", + ["STR_MAX"] = "MAX", + ["ALREADY_ACTIVE"] = "已激活", + ["ACTIVE_BOUNTY"] = "激活黄金通行证", + ["BOUNTY_FREE_NAME"] = "免费通行证", + ["CONFIRM_IGNORE"] = "今日不再提示", + ["MAIL_NAME"] = "邮箱", + ["COLLET_REWARDS"] = "收集奖励", + ["TASK_NAME"] = "任务", + ["TASK_DAILY"] = "日常", + ["TASK_CHALLENGE"] = "挑战", + ["TASK_HELP_1"] = "每日刷新,刷新后任务将重置,可以观看广告刷新任务", + ["STR_REFRESH"] = "刷新", + ["STR_UNLOCK"] = "解锁", + ["TASK_DESC_1"] = "通行证专属任务", + ["STR_COMPLETED"] = "已完成", + ["HERO_CARD_TIPS_DESC"] = "可能获得以下英雄卡牌:", + ["HERO_CARD_DESC_QLT_2"] = "优秀英雄", + ["HERO_CARD_DESC_QLT_3"] = "稀有英雄", + ["HERO_CARD_DESC_QLT_4"] = "史诗英雄", + ["HERO_CARD_DESC_QLT_5"] = "传说英雄", + ["HERO_CARD_DESC_QLT_6"] = "神话英雄", + ["IDLE_DROP_REWARD"] = "挂机奖励", + ["IDLE_DROP_DESC_1"] = "章节越高,收益越大", + ["PER_HOUR"] = "{0}/小时", + ["IDLE_DROP_DESC_2"] = "最长挂机{0}小时", + ["IDLE_QUICK"] = "快速挂机", + ["IDLE_DROP_DESC_3"] = "立刻获得{0}小时挂机奖励", + ["STR_FREE"] = "免费", + ["TODAY_REMAIN_TIMES"] = "今日剩余{0}次", + ["BUY_ENERGY"] = "购买体力", } return localization_global \ No newline at end of file diff --git a/lua/app/config/strings/cn/hero.lua b/lua/app/config/strings/cn/hero.lua index 3da48377..e3a1412a 100644 --- a/lua/app/config/strings/cn/hero.lua +++ b/lua/app/config/strings/cn/hero.lua @@ -3,40 +3,64 @@ local hero = { ["name"]="舞娘" }, [13001]={ - ["name"]="独臂哥" + ["name"]="克劳德" }, [13002]={ ["name"]="火旺" }, - [24001]={ - ["name"]="铁锤赵" + [14001]={ + ["name"]="亚历山大" }, [22001]={ - ["name"]="黑刀妹" + ["name"]="刀妹" }, [23001]={ ["name"]="野蛮人" }, + [23002]={ + ["name"]="二丫" + }, [24001]={ - ["name"]="魔童剑士" + ["name"]="巨剑魔童" }, [32001]={ - ["name"]="洋葱骑士" + ["name"]="洋葱头" }, [33001]={ ["name"]="小鹿" }, + [33002]={ + ["name"]="森林狼" + }, + [34001]={ + ["name"]="木兰" + }, [42001]={ - ["name"]="法师" + ["name"]="蓝法" + }, + [43001]={ + ["name"]="冰女" + }, + [43002]={ + ["name"]="鸦姐" }, [44001]={ - ["name"]="蓝SSR冰刃" + ["name"]="寒冰妖姬" }, [52001]={ - ["name"]="忍者" + ["name"]="忍者伦" + }, + [53001]={ + ["name"]="魔女琪琪" + }, + [53002]={ + ["name"]="灵魂猎手" + }, + [54001]={ + ["name"]="蝴蝶" } } local config = { -data=hero,count=12 +data=hero,count=20 } return config \ No newline at end of file diff --git a/lua/app/config/strings/cn/item.lua b/lua/app/config/strings/cn/item.lua index f4e51c62..52bfd102 100644 --- a/lua/app/config/strings/cn/item.lua +++ b/lua/app/config/strings/cn/item.lua @@ -28,16 +28,20 @@ local item = { ["desc"]="累计积分可提升通行证等级。" }, [8]={ - ["name"]="木箱(优秀,稀有)" + ["name"]="木箱(优秀,稀有)", + ["desc"]="木箱(优秀,稀有)" }, [9]={ - ["name"]="木箱2(优秀,稀有)" + ["name"]="木箱2(优秀,稀有)", + ["desc"]="木箱2(优秀,稀有)" }, [10]={ - ["name"]="金箱(优秀,稀有)" + ["name"]="金箱(优秀,稀有)", + ["desc"]="金箱(优秀,稀有)" }, [11]={ - ["name"]="铂金箱(稀有,史诗)" + ["name"]="铂金箱(稀有,史诗)", + ["desc"]="铂金箱(稀有,史诗)" }, [12]={ ["name"]="经验", @@ -55,56 +59,100 @@ local item = { ["name"]="珍贵钥匙", ["desc"]="用于商城开启珍贵宝箱。" }, - [12001]={ - ["name"]="红R舞女碎片", - ["desc"]="凑齐可解锁或升级。" + [16]={ + ["name"]="所有任务宝箱", + ["desc"]="完成5个日常任务获得" + }, + [17]={ + ["name"]="广告累计宝箱", + ["desc"]="你可以在游戏种任何地点看广告,获得奖励" + }, + [18]={ + ["name"]="铂金箱(稀有,史诗)", + ["desc"]="铂金箱(稀有,史诗)" + }, + [19]={ + ["name"]="随机碎片", + ["desc"]="挂机可获得随机碎片,领取后数量和品质将根据关卡提升。" }, [13001]={ - ["name"]="红SR-克劳德碎片", + ["name"]="红SR-克劳德", ["desc"]="凑齐可解锁或升级。" }, [13002]={ - ["name"]="红SR-武僧碎片", + ["name"]="红SR-武僧", ["desc"]="凑齐可解锁或升级。" }, - [24001]={ - ["name"]="红SSR-铁锤小孩碎片", + [14001]={ + ["name"]="红SSR-铁锤小孩", ["desc"]="凑齐可解锁或升级。" }, [22001]={ - ["name"]="黄R黑妹碎片", + ["name"]="黄R黑妹", ["desc"]="凑齐可解锁或升级。" }, [23001]={ - ["name"]="黄SR野蛮人碎片", + ["name"]="黄SR野蛮人", + ["desc"]="凑齐可解锁或升级。" + }, + [23002]={ + ["name"]="黄SR二丫", ["desc"]="凑齐可解锁或升级。" }, [24001]={ - ["name"]="黄ssr巨剑碎片", + ["name"]="黄ssr巨剑", ["desc"]="凑齐可解锁或升级。" }, [32001]={ - ["name"]="绿R洋葱碎片", + ["name"]="绿R洋葱", ["desc"]="凑齐可解锁或升级。" }, [33001]={ - ["name"]="绿SR小鹿碎片", + ["name"]="绿SR小鹿", + ["desc"]="凑齐可解锁或升级。" + }, + [33002]={ + ["name"]="绿SR森林狼", + ["desc"]="凑齐可解锁或升级。" + }, + [34001]={ + ["name"]="绿SSR花木兰", ["desc"]="凑齐可解锁或升级。" }, [42001]={ - ["name"]="蓝R莉莉丝碎片", + ["name"]="蓝R莉莉丝", + ["desc"]="凑齐可解锁或升级。" + }, + [43001]={ + ["name"]="蓝SR冰女", + ["desc"]="凑齐可解锁或升级。" + }, + [43002]={ + ["name"]="蓝SR鸦姐", ["desc"]="凑齐可解锁或升级。" }, [44001]={ - ["name"]="蓝SSR冰刃碎片", + ["name"]="蓝SSR冰刃", ["desc"]="凑齐可解锁或升级。" }, [52001]={ - ["name"]="紫R忍者碎片", + ["name"]="紫R忍者", + ["desc"]="凑齐可解锁或升级。" + }, + [53001]={ + ["name"]="紫SR女巫", + ["desc"]="凑齐可解锁或升级。" + }, + [53002]={ + ["name"]="紫SR德古拉", + ["desc"]="凑齐可解锁或升级。" + }, + [54001]={ + ["name"]="紫SSR蝴蝶", ["desc"]="凑齐可解锁或升级。" } } local config = { -data=item,count=27 +data=item,count=38 } return config \ No newline at end of file diff --git a/lua/app/config/strings/cn/mail.lua b/lua/app/config/strings/cn/mail.lua new file mode 100644 index 00000000..f76e0a67 --- /dev/null +++ b/lua/app/config/strings/cn/mail.lua @@ -0,0 +1,24 @@ +local mail = { + [1]={ + ["name"]="路边老爷爷的馈赠" + }, + [2]={ + ["name"]="国王的日常补给" + }, + [3]={ + ["name"]="哼哼哈嘿", + ["desc"]="乐观的人总在不经意间获得意外之喜" + }, + [4]={ + ["name"]="仁者无敌", + ["desc"]="心地善良的人,会善有善报的" + }, + [5]={ + ["name"]="风生水起", + ["desc"]="精力充沛,运势良好,财运连连" + } +} +local config = { +data=mail,count=5 +} +return config \ No newline at end of file diff --git a/lua/app/config/strings/cn/mail.lua.meta b/lua/app/config/strings/cn/mail.lua.meta new file mode 100644 index 00000000..30d52525 --- /dev/null +++ b/lua/app/config/strings/cn/mail.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: bbf38508076c6a04d9f1bf15181bd3b6 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/config/strings/cn/skill.lua b/lua/app/config/strings/cn/skill.lua index 62e572c5..5e2d05f1 100644 --- a/lua/app/config/strings/cn/skill.lua +++ b/lua/app/config/strings/cn/skill.lua @@ -1,30 +1,66 @@ local skill = { - [3200120]={ - ["desc"]="长枪突刺:造成1次大量伤害" + [1200120]={ + ["desc"]="舞步消散:沿横向消除5格,并造成一次技能伤害。" + }, + [1300120]={ + ["desc"]="巨剑旋风:额外造成多次技能伤害。" + }, + [1300220]={ + ["desc"]="炎拳:沿纵向消除5格,并造成一次技能伤害,50%概率附加灼烧效果,2回合。" + }, + [1400120]={ + ["desc"]="钢铁重击:将周围4个元素变色,并造成多次大量技能伤害。" }, [2200120]={ - ["desc"]="拔刀斩:造成1次大量伤害" + ["desc"]="拔刀斩:额外造成一次技能伤害。" }, - [4200120]={ - ["desc"]="元素链接:随机额外消除3个元素" + [2300120]={ + ["desc"]="骨旋风:额外造成多次技能伤害。" }, - [5200120]={ - ["desc"]="魔法罩:生成一个魔法罩持续1回合,可承受最大生命值10%伤害" - }, - [1200120]={ - ["desc"]="舞步消散:将左右2格元素进行消除" - }, - [3300120]={ - ["desc"]="快速治愈:立即恢复艾芙琳150%攻击力的生命值" + [2300220]={ + ["desc"]="幻影剑袭:使用后本次技能伤害提升,并额外造成多次大量技能伤害。" }, [2400120]={ - ["desc"]="巨剑连斩:攻击伤害增加50%,结束时使用巨剑造成大量伤害。" + ["desc"]="巨剑轰击:额外造成一次巨量技能伤害。" + }, + [3200120]={ + ["desc"]="长枪突刺:额外造成一次技能伤害。" + }, + [3300120]={ + ["desc"]="急速治疗:使用后本次恢复生命。" + }, + [3300220]={ + ["desc"]="森林狼:使用后本次伤害提升,并造成多次技能伤害。" + }, + [3400120]={ + ["desc"]="流星追月:使用后本次伤害提升,并一次巨量技能伤害。" + }, + [4200120]={ + ["desc"]="元素链接:随机消除3个元素,并造成一次技能伤害。" + }, + [4300120]={ + ["desc"]="冰女:额外造成一次技能伤害,附加冰霜效果,1回合。" + }, + [4300220]={ + ["desc"]="鸦姐:额外造成一次技能伤害,附加腐败效果,1回合。" }, [4400120]={ - ["desc"]="霜冻剑舞:造成1次大量伤害并给敌人1回合冰霜效果(普攻次数-2)" + ["desc"]="冰霜剑舞:随机消除3个元素,并造成一次技能伤害,附加冰霜效果,1回合。" + }, + [5200120]={ + ["desc"]="护盾术:为团队附加一个护盾,1回合。" + }, + [5300120]={ + ["desc"]="魔女琪琪:额外造成一次大量技能伤害。" + }, + [5300220]={ + ["desc"]="灵魂猎手:额外造成一次大量技能伤害。" + }, + [5400120]={ + ["desc"]="蝴蝶:额外造成一次大量技能伤害。" } } local config = { -data=skill,count=8 +data=skill,count=20 } return config \ No newline at end of file diff --git a/lua/app/config/strings/cn/skill_rogue.lua b/lua/app/config/strings/cn/skill_rogue.lua index 21b71250..3ad8b63b 100644 --- a/lua/app/config/strings/cn/skill_rogue.lua +++ b/lua/app/config/strings/cn/skill_rogue.lua @@ -131,104 +131,488 @@ local skill_rogue = { [44]={ ["desc"]="将场上随机5个非紫色元素变为紫色" }, + [1200100]={ + ["desc"]="解锁舞步消散:沿横向消除5格,并造成一次技能伤害。" + }, [1200101]={ - ["desc"]="舞步消散:将左右2格元素进行消除" + ["desc"]="舞步消散纵向可额外消除2格。" }, [1200102]={ - ["desc"]="舞步消散上下可多消1格" + ["desc"]="舞步消散使用时本次普攻伤害提升10%。" }, [1200103]={ - ["desc"]="舞步消散使用时本次普攻伤害提升10%" + ["desc"]="舞步消散对冰霜敌人的伤害增加50%。" }, [1200104]={ - ["desc"]="每有1个元素连接舞步消散则本回合格挡增加2%" + ["desc"]="舞步消散横向和纵向可额外消除2格。" + }, + [1200105]={ + ["desc"]="舞步消散链接超过5个元素附加亢奋效果,2回合。" + }, + [1200106]={ + ["desc"]="舞娘攻击提升15%。" + }, + [1200107]={ + ["desc"]="舞步消散附加亢奋效果的要求降低到链接超过3个元素。" + }, + [1300100]={ + ["desc"]="解锁巨剑旋风:额外造成多次技能伤害。" + }, + [1300101]={ + ["desc"]="巨剑旋风可附加灼烧效果,2回合。" + }, + [1300102]={ + ["desc"]="巨剑旋风对流血敌人的伤害增加50%。" + }, + [1300103]={ + ["desc"]="巨剑旋风技能伤害提升。" + }, + [1300104]={ + ["desc"]="巨剑旋风附加的灼烧伤效果,伤害提升。" + }, + [1300105]={ + ["desc"]="巨剑旋风链接超过4个元素,伤害提升30%,2回合。" + }, + [1300106]={ + ["desc"]="巨剑旋风附加的伤害提升效果,回合数+1。" + }, + [1300107]={ + ["desc"]="巨剑旋风击杀敌人则附加亢奋效果,2回合。" + }, + [1300200]={ + ["desc"]="解锁炎拳:沿纵向消除5格,并造成一次技能伤害,50%概率附加灼烧效果,2回合。" + }, + [1300201]={ + ["desc"]="炎拳沿横向可额外消除4格。" + }, + [1300202]={ + ["desc"]="炎拳对禁锢敌人的伤害增加50%。" + }, + [1300203]={ + ["desc"]="炎拳的灼烧概率提高到100%。" + }, + [1300204]={ + ["desc"]="炎拳纵向可额外消除2格。" + }, + [1300205]={ + ["desc"]="炎拳附加的灼烧效果,伤害提升。" + }, + [1300206]={ + ["desc"]="火旺攻击提升15%。" + }, + [1300207]={ + ["desc"]="炎拳攻击将释放2次。" + }, + [1400100]={ + ["desc"]="解锁钢铁重击:将周围4个元素变色,并造成多次大量技能伤害。" + }, + [1400101]={ + ["desc"]="钢铁重击可附加灼烧效果,2回合。" + }, + [1400102]={ + ["desc"]="钢铁重击对眩晕敌人再施附加眩晕效果,2回合。" + }, + [1400103]={ + ["desc"]="钢铁重击对流血敌人额外造成1次伤害。" + }, + [1400104]={ + ["desc"]="钢铁重击50%概率附加眩晕,2回合。" + }, + [1400105]={ + ["desc"]="钢铁重击附加的灼烧效果,伤害提升,回合数+1。" + }, + [1400106]={ + ["desc"]="亚历山大攻击提升15%。" + }, + [1400107]={ + ["desc"]="钢铁重击每连接超过4个元素则额外发射1个火球造成伤害。" + }, + [2200100]={ + ["desc"]="解锁拔刀斩:额外造成一次技能伤害。" }, [2200101]={ - ["desc"]="拔刀斩:卡拉可造成1次大量伤害" + ["desc"]="拔刀斩技能伤害提升。" }, [2200102]={ - ["desc"]="拔刀斩伤害提升" + ["desc"]="拔刀斩沿+方向可额外消除4格。" }, [2200103]={ - ["desc"]="拔刀斩释放时上下左右各消除1格" + ["desc"]="拔刀斩对灼烧敌人的伤害增加50%。" }, [2200104]={ - ["desc"]="拔刀斩终结技可放2次" + ["desc"]="刀妹攻击提升15%。" + }, + [2200105]={ + ["desc"]="拔刀斩攻击将释放2次。" + }, + [2200106]={ + ["desc"]="拔刀斩沿X方向可额外消除4格。" + }, + [2200107]={ + ["desc"]="拔刀斩链接超过5个元素,则技能伤害提高。" + }, + [2300100]={ + ["desc"]="解锁骨旋风:额外造成多次技能伤害。" + }, + [2300101]={ + ["desc"]="旋风骨可附加流血效果,2回合。" + }, + [2300102]={ + ["desc"]="旋风骨技能伤害提升。" + }, + [2300103]={ + ["desc"]="旋风骨对昏睡敌人有50%概率附加眩晕效果,1回合。" + }, + [2300104]={ + ["desc"]="旋风骨附加的流血效果,回合数+1。" + }, + [2300105]={ + ["desc"]="每有1名敌人因流血死亡,则野蛮人伤害提升10%。" + }, + [2300106]={ + ["desc"]="旋风骨附加的眩晕效果,回合数+1。" + }, + [2300107]={ + ["desc"]="野蛮人攻击提升15%。" + }, + [2300200]={ + ["desc"]="解锁幻影剑袭:使用后本次技能伤害提升,并额外造成多次大量技能伤害。" + }, + [2300201]={ + ["desc"]="幻影剑袭沿+方向可额外消除4格。" + }, + [2300202]={ + ["desc"]="二丫攻击提升15%。" + }, + [2300203]={ + ["desc"]="幻影剑袭使用时本次普攻伤害提升10%。" + }, + [2300204]={ + ["desc"]="幻影剑袭沿X方向可额外消除4格。" + }, + [2300205]={ + ["desc"]="幻影剑袭链接超过4个元素,本回合暴击提升20%。" + }, + [2300206]={ + ["desc"]="幻影剑袭链接超过4个元素,本回合暴击提升30%。" + }, + [2300207]={ + ["desc"]="幻影剑袭使用时本回合对生命值50%以下的敌人暴击伤害提升50%。" + }, + [2400100]={ + ["desc"]="解锁巨剑轰击:额外造成一次巨量技能伤害。" }, [2400101]={ - ["desc"]="巨剑连斩:每一次攻击的伤害将增加50%" + ["desc"]="巨剑轰击沿X方向可额外消除4格。" }, [2400102]={ - ["desc"]="巨剑连斩被连接消除其上下左右4个元素" + ["desc"]="巨剑轰击对冻结敌人伤害大服增加,并有50%概率附加眩晕效果,1回合。" }, [2400103]={ - ["desc"]="巨剑连斩使用时本次普攻伤害提升20%" + ["desc"]="巨剑轰击附加眩晕效果的概率提高到70%。" }, [2400104]={ - ["desc"]="巨剑连斩被连接消除其斜方向的4个元素" + ["desc"]="巨剑魔童攻击提升15%。" + }, + [2400105]={ + ["desc"]="巨剑轰击技能伤害大服增加,并有50%概率附加禁锢效果,1回合。" + }, + [2400106]={ + ["desc"]="巨剑轰击附加禁锢效果的概率提高到70%。" + }, + [2400107]={ + ["desc"]="巨剑轰击将造成双倍伤害。" + }, + [3200100]={ + ["desc"]="解锁长枪突刺:额外造成一次技能伤害。" }, [3200101]={ - ["desc"]="长枪突刺:阿斯克可造成1次大量伤害" + ["desc"]="长枪突刺可恢复一定量生命。" }, [3200102]={ - ["desc"]="长枪突刺可恢复生命" + ["desc"]="长枪突刺对中毒敌人的伤害增加50%。" }, [3200103]={ - ["desc"]="长枪突刺伤害提升" + ["desc"]="长枪突刺伤害提升。" }, [3200104]={ - ["desc"]="长枪突刺有30%概率眩晕对手1回合" + ["desc"]="长枪突刺沿X方向可额外消除4格。" + }, + [3200105]={ + ["desc"]="长枪突刺有30%概率附加眩晕效果,1回合。" + }, + [3200106]={ + ["desc"]="长枪突刺眩晕几率提高20%" + }, + [3200107]={ + ["desc"]="长枪突刺后为团队增加20%格挡,2回合" + }, + [3300100]={ + ["desc"]="解锁急速治疗:使用后本次恢复生命。" }, [3300101]={ - ["desc"]="快速治愈:艾芙琳可恢复150%攻击力的生命值" + ["desc"]="急速治疗回血效果提升。" }, [3300102]={ - ["desc"]="快速治愈的恢复量提升" + ["desc"]="急速治疗使用时本次普攻伤害提升15%。" }, [3300103]={ - ["desc"]="快速治愈使用时本次普攻伤害提升15%" + ["desc"]="急速治疗沿+方向可额外消除4格。" }, [3300104]={ - ["desc"]="连接快速治愈的每一击都将恢复生命值" + ["desc"]="急速治疗额外为团队提供技能伤害提升效果,2回合。" + }, + [3300105]={ + ["desc"]="急速治疗使用时本次普攻每一击都将恢复生命。" + }, + [3300106]={ + ["desc"]="急速治疗附加的技能伤害提升效果,回合数+1。" + }, + [3300107]={ + ["desc"]="急速治疗链接超过5个元素,回血效果提升。" + }, + [3300200]={ + ["desc"]="解锁森林狼技能:使用后本次伤害提升,并造成多次技能伤害。" + }, + [3300201]={ + ["desc"]="森林狼技能有50%概率附加易伤效果,2回合。" + }, + [3300202]={ + ["desc"]="森林狼技能使用时本次普攻伤害提升15%。" + }, + [3300203]={ + ["desc"]="森林狼技能伤害提升。" + }, + [3300204]={ + ["desc"]="森林狼技能对中毒敌人有50%概率附加中毒效果,2回合。" + }, + [3300205]={ + ["desc"]="森林狼技能附加的中毒效果,伤害提升。" + }, + [3300206]={ + ["desc"]="森林狼技能攻击提升15%。" + }, + [3300207]={ + ["desc"]="森林狼技能对中毒敌人有100%概率附加中毒效果,2回合。" + }, + [3400100]={ + ["desc"]="解锁流星追月:使用后本次伤害提升,并一次巨量技能伤害。" + }, + [3400101]={ + ["desc"]="流星追月可附加易伤效果,2回合。" + }, + [3400102]={ + ["desc"]="流星追月沿+方向可额外消除4格。" + }, + [3400103]={ + ["desc"]="木兰攻击提升15%。" + }, + [3400104]={ + ["desc"]="流星追月附加的易伤效果,效果提升。" + }, + [3400105]={ + ["desc"]="流星追月可附加流血效果,2回合。" + }, + [3400106]={ + ["desc"]="流星追月附加的流血效果,伤害提升。" + }, + [3400107]={ + ["desc"]="流星追月链接超过4个元素,流星追月攻击将释放2次。" + }, + [4200100]={ + ["desc"]="解锁元素链接:随机消除3个元素,并造成一次技能伤害。" }, [4200101]={ - ["desc"]="元素链接:随机额外消除3个元素" + ["desc"]="元素链接随机消除元素+2。" }, [4200102]={ - ["desc"]="元素链接随机消除元素增加2个" + ["desc"]="元素链接使用时本次普攻伤害提升10%。" }, [4200103]={ - ["desc"]="元素链接使用时本次普攻伤害提升10%" + ["desc"]="元素链接有50%概率附加冰霜效果,2回合。" }, [4200104]={ - ["desc"]="元素链接随机消除元素增加2个" + ["desc"]="元素链接随机消除元素+2。" + }, + [4200105]={ + ["desc"]="元素链接对冰霜敌人有20%概率附加冻结效果,1回合。" + }, + [4200106]={ + ["desc"]="蓝法攻击提升15%。" + }, + [4200107]={ + ["desc"]="元素链接附加冻结效果概率提升到40%。" + }, + [4300100]={ + ["desc"]="解锁冰女技能:额外造成一次技能伤害,附加冰霜效果,1回合。" + }, + [4300101]={ + ["desc"]="冰女技能沿+方向可额外消除4格。" + }, + [4300102]={ + ["desc"]="冰女技能对灼烧敌人的伤害增加50%。" + }, + [4300103]={ + ["desc"]="冰女技能附加的冰霜效果,回合数+1。" + }, + [4300104]={ + ["desc"]="冰女技能伤害提升。" + }, + [4300105]={ + ["desc"]="冰女技能对冰霜敌人有50%概率附加冻结效果,1回合。" + }, + [4300106]={ + ["desc"]="冰女技能后为团队附加冰盾效果,2回合。" + }, + [4300107]={ + ["desc"]="冰女技能附加的冰盾,可反伤400%。" + }, + [4300300]={ + ["desc"]="解锁鸦姐技能:额外造成一次技能伤害,附加腐败效果,1回合。" + }, + [4300301]={ + ["desc"]="鸦姐技能附加的腐败效果,回合数+1." + }, + [4300302]={ + ["desc"]="鸦姐技能对易伤敌人附加冰霜效果,1回合。" + }, + [4300303]={ + ["desc"]="鸦姐技能使用时本次普攻伤害提升15%。" + }, + [4300304]={ + ["desc"]="鸦姐技能附加的冰霜效果,回合数+1。" + }, + [4300305]={ + ["desc"]="鸦姐技能附加削弱效果,2回合。" + }, + [4300306]={ + ["desc"]="鸦姐技能沿+方向可额外消除4格。" + }, + [4300307]={ + ["desc"]="鸦姐技能附加的削弱效果,回合数+2。" + }, + [4400100]={ + ["desc"]="解锁冰霜剑舞:随机消除3个元素,并造成一次技能伤害,附加冰霜效果,1回合。" }, [4400101]={ - ["desc"]="霜冻剑舞:造成1次伤害并施加1回合冰霜效果" + ["desc"]="冰霜剑舞附加的冰霜效果,回合数+1" }, [4400102]={ - ["desc"]="霜冻剑舞被使用时可消除掉其上下左右4个元素" + ["desc"]="冰霜剑舞对灼烧敌人伤害增加50%。" }, [4400103]={ - ["desc"]="霜冻剑舞伤害提升" + ["desc"]="冰霜剑舞随机消除元素+3" }, [4400104]={ - ["desc"]="霜冻剑舞造成的冰霜效果将持续2回合" + ["desc"]="冰霜剑舞附加的冰霜效果,效果提升。" + }, + [4400105]={ + ["desc"]="霜冻剑舞有50%概率附加冻结效果,2回合。" + }, + [4400106]={ + ["desc"]="寒冰妖姬攻击提升15%。" + }, + [4400107]={ + ["desc"]="霜冻剑舞附加冻结效果概率提升到70%。" + }, + [5200100]={ + ["desc"]="解锁护盾术:为团队附加一个护盾,1回合。" }, [5200101]={ - ["desc"]="魔法罩:艾伦可生成一个魔法罩持续1回合" + ["desc"]="护盾术附加的护盾,承受伤害增加。" }, [5200102]={ - ["desc"]="增加魔法罩承受伤害增加。" + ["desc"]="护盾术使用时本次普攻伤害提升10%。" }, [5200103]={ - ["desc"]="生成的魔法罩如果没有破可以额外持续1回合" + ["desc"]="护盾术附加的护盾,回合数+1。" }, [5200104]={ - ["desc"]="魔法罩存在时可反伤对方造成200%伤害" + ["desc"]="护盾术沿+方向可额外消除4格。" + }, + [5200105]={ + ["desc"]="护盾术附加的护盾,可反伤200%。" + }, + [5200106]={ + ["desc"]="忍者伦攻击提升15%。" + }, + [5200107]={ + ["desc"]="护盾术附加的护盾,反伤效果翻倍。" + }, + [5300100]={ + ["desc"]="解锁魔女琪琪技能:额外造成一次大量技能伤害。" + }, + [5300101]={ + ["desc"]="魔女琪琪技能可附加中毒效果,2回合。" + }, + [5300102]={ + ["desc"]="魔女琪琪技能使用时本次普攻伤害提升15%。" + }, + [5300103]={ + ["desc"]="魔女琪琪技能可附加昏睡效果,2回合。" + }, + [5300104]={ + ["desc"]="魔女琪琪技能附加的中毒效果,伤害提升。" + }, + [5300105]={ + ["desc"]="魔女琪琪技能使用后随机增加一种技能的能量2点。" + }, + [5300106]={ + ["desc"]="魔女琪琪技能使用后随机增加一种技能的能量2点。" + }, + [5300107]={ + ["desc"]="魔女琪琪技能有15%概率为团队附加不死效果,1回合。" + }, + [5300200]={ + ["desc"]="解锁灵魂猎手技能:额外造成一次大量技能伤害。" + }, + [5300201]={ + ["desc"]="灵魂猎手技能沿+方向可额外消除4格。" + }, + [5300202]={ + ["desc"]="灵魂猎手技能对冰霜敌人有50%概率附加冻结效果,1回合。" + }, + [5300203]={ + ["desc"]="灵魂猎手技能伤害提升。" + }, + [5300204]={ + ["desc"]="灵魂猎手攻击提升15%。" + }, + [5300205]={ + ["desc"]="灵魂猎手技能有50%概率为团队附加反击效果,2回合。" + }, + [5300206]={ + ["desc"]="灵魂猎手技能附加冻结效果,概率提升到70%,回合数+1。" + }, + [5300207]={ + ["desc"]="灵魂猎手技能附加反击效果,概率提升到100%。" + }, + [5400100]={ + ["desc"]="解锁蝴蝶技能:额外造成一次大量技能伤害。" + }, + [5400101]={ + ["desc"]="蝴蝶技能伤害提升。" + }, + [5400102]={ + ["desc"]="蝴蝶技能使用后随机增加一种技能的能量2点。" + }, + [5400103]={ + ["desc"]="蝴蝶技能使用后将场上随机3个元素变为紫色元素。" + }, + [5400104]={ + ["desc"]="蝴蝶攻击提升15%。" + }, + [5400105]={ + ["desc"]="蝴蝶技能激活所需能量-2。" + }, + [5400106]={ + ["desc"]="蝴蝶技能每击杀1个敌人,技能伤害提升50%。" + }, + [5400107]={ + ["desc"]="蝴蝶技能击杀敌人后将增加蝴蝶技能能量2点。" } } local config = { -data=skill_rogue,count=76 +data=skill_rogue,count=204 } return config \ No newline at end of file diff --git a/lua/app/config/strings/de/hero.lua b/lua/app/config/strings/de/hero.lua index b1d055b8..fe5b3598 100644 --- a/lua/app/config/strings/de/hero.lua +++ b/lua/app/config/strings/de/hero.lua @@ -8,7 +8,7 @@ local hero = { [13002]={ }, - [24001]={ + [14001]={ }, [22001]={ @@ -16,6 +16,9 @@ local hero = { }, [23001]={ + }, + [23002]={ + }, [24001]={ @@ -25,18 +28,39 @@ local hero = { }, [33001]={ + }, + [33002]={ + + }, + [34001]={ + }, [42001]={ + }, + [43001]={ + + }, + [43002]={ + }, [44001]={ }, [52001]={ + }, + [53001]={ + + }, + [53002]={ + + }, + [54001]={ + } } local config = { -data=hero,count=12 +data=hero,count=20 } return config \ No newline at end of file diff --git a/lua/app/config/strings/de/item.lua b/lua/app/config/strings/de/item.lua index 098a8159..0da0015f 100644 --- a/lua/app/config/strings/de/item.lua +++ b/lua/app/config/strings/de/item.lua @@ -47,7 +47,16 @@ local item = { [15]={ }, - [12001]={ + [16]={ + + }, + [17]={ + + }, + [18]={ + + }, + [19]={ }, [13001]={ @@ -56,7 +65,7 @@ local item = { [13002]={ }, - [24001]={ + [14001]={ }, [22001]={ @@ -64,6 +73,9 @@ local item = { }, [23001]={ + }, + [23002]={ + }, [24001]={ @@ -73,18 +85,39 @@ local item = { }, [33001]={ + }, + [33002]={ + + }, + [34001]={ + }, [42001]={ + }, + [43001]={ + + }, + [43002]={ + }, [44001]={ }, [52001]={ + }, + [53001]={ + + }, + [53002]={ + + }, + [54001]={ + } } local config = { -data=item,count=27 +data=item,count=38 } return config \ No newline at end of file diff --git a/lua/app/config/strings/de/mail.lua b/lua/app/config/strings/de/mail.lua new file mode 100644 index 00000000..a4d974e0 --- /dev/null +++ b/lua/app/config/strings/de/mail.lua @@ -0,0 +1,21 @@ +local mail = { + [1]={ + + }, + [2]={ + + }, + [3]={ + + }, + [4]={ + + }, + [5]={ + + } +} +local config = { +data=mail,count=5 +} +return config \ No newline at end of file diff --git a/lua/app/config/strings/de/mail.lua.meta b/lua/app/config/strings/de/mail.lua.meta new file mode 100644 index 00000000..e9a05b82 --- /dev/null +++ b/lua/app/config/strings/de/mail.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 3a1954dd8e9d1c54c981ef71c96077be +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/config/strings/de/skill.lua b/lua/app/config/strings/de/skill.lua index 53596185..9b09cecb 100644 --- a/lua/app/config/strings/de/skill.lua +++ b/lua/app/config/strings/de/skill.lua @@ -1,30 +1,66 @@ local skill = { - [3200120]={ + [1200120]={ + + }, + [1300120]={ + + }, + [1300220]={ + + }, + [1400120]={ }, [2200120]={ }, - [4200120]={ + [2300120]={ }, - [5200120]={ - - }, - [1200120]={ - - }, - [3300120]={ + [2300220]={ }, [2400120]={ + }, + [3200120]={ + + }, + [3300120]={ + + }, + [3300220]={ + + }, + [3400120]={ + + }, + [4200120]={ + + }, + [4300120]={ + + }, + [4300220]={ + }, [4400120]={ + }, + [5200120]={ + + }, + [5300120]={ + + }, + [5300220]={ + + }, + [5400120]={ + } } local config = { -data=skill,count=8 +data=skill,count=20 } return config \ No newline at end of file diff --git a/lua/app/config/strings/de/skill_rogue.lua b/lua/app/config/strings/de/skill_rogue.lua index 08e41a32..34291565 100644 --- a/lua/app/config/strings/de/skill_rogue.lua +++ b/lua/app/config/strings/de/skill_rogue.lua @@ -130,6 +130,9 @@ local skill_rogue = { }, [44]={ + }, + [1200100]={ + }, [1200101]={ @@ -142,6 +145,90 @@ local skill_rogue = { }, [1200104]={ + }, + [1200105]={ + + }, + [1200106]={ + + }, + [1200107]={ + + }, + [1300100]={ + + }, + [1300101]={ + + }, + [1300102]={ + + }, + [1300103]={ + + }, + [1300104]={ + + }, + [1300105]={ + + }, + [1300106]={ + + }, + [1300107]={ + + }, + [1300200]={ + + }, + [1300201]={ + + }, + [1300202]={ + + }, + [1300203]={ + + }, + [1300204]={ + + }, + [1300205]={ + + }, + [1300206]={ + + }, + [1300207]={ + + }, + [1400100]={ + + }, + [1400101]={ + + }, + [1400102]={ + + }, + [1400103]={ + + }, + [1400104]={ + + }, + [1400105]={ + + }, + [1400106]={ + + }, + [1400107]={ + + }, + [2200100]={ + }, [2200101]={ @@ -154,6 +241,66 @@ local skill_rogue = { }, [2200104]={ + }, + [2200105]={ + + }, + [2200106]={ + + }, + [2200107]={ + + }, + [2300100]={ + + }, + [2300101]={ + + }, + [2300102]={ + + }, + [2300103]={ + + }, + [2300104]={ + + }, + [2300105]={ + + }, + [2300106]={ + + }, + [2300107]={ + + }, + [2300200]={ + + }, + [2300201]={ + + }, + [2300202]={ + + }, + [2300203]={ + + }, + [2300204]={ + + }, + [2300205]={ + + }, + [2300206]={ + + }, + [2300207]={ + + }, + [2400100]={ + }, [2400101]={ @@ -166,6 +313,18 @@ local skill_rogue = { }, [2400104]={ + }, + [2400105]={ + + }, + [2400106]={ + + }, + [2400107]={ + + }, + [3200100]={ + }, [3200101]={ @@ -178,6 +337,18 @@ local skill_rogue = { }, [3200104]={ + }, + [3200105]={ + + }, + [3200106]={ + + }, + [3200107]={ + + }, + [3300100]={ + }, [3300101]={ @@ -190,6 +361,66 @@ local skill_rogue = { }, [3300104]={ + }, + [3300105]={ + + }, + [3300106]={ + + }, + [3300107]={ + + }, + [3300200]={ + + }, + [3300201]={ + + }, + [3300202]={ + + }, + [3300203]={ + + }, + [3300204]={ + + }, + [3300205]={ + + }, + [3300206]={ + + }, + [3300207]={ + + }, + [3400100]={ + + }, + [3400101]={ + + }, + [3400102]={ + + }, + [3400103]={ + + }, + [3400104]={ + + }, + [3400105]={ + + }, + [3400106]={ + + }, + [3400107]={ + + }, + [4200100]={ + }, [4200101]={ @@ -202,6 +433,66 @@ local skill_rogue = { }, [4200104]={ + }, + [4200105]={ + + }, + [4200106]={ + + }, + [4200107]={ + + }, + [4300100]={ + + }, + [4300101]={ + + }, + [4300102]={ + + }, + [4300103]={ + + }, + [4300104]={ + + }, + [4300105]={ + + }, + [4300106]={ + + }, + [4300107]={ + + }, + [4300300]={ + + }, + [4300301]={ + + }, + [4300302]={ + + }, + [4300303]={ + + }, + [4300304]={ + + }, + [4300305]={ + + }, + [4300306]={ + + }, + [4300307]={ + + }, + [4400100]={ + }, [4400101]={ @@ -214,6 +505,18 @@ local skill_rogue = { }, [4400104]={ + }, + [4400105]={ + + }, + [4400106]={ + + }, + [4400107]={ + + }, + [5200100]={ + }, [5200101]={ @@ -226,9 +529,90 @@ local skill_rogue = { }, [5200104]={ + }, + [5200105]={ + + }, + [5200106]={ + + }, + [5200107]={ + + }, + [5300100]={ + + }, + [5300101]={ + + }, + [5300102]={ + + }, + [5300103]={ + + }, + [5300104]={ + + }, + [5300105]={ + + }, + [5300106]={ + + }, + [5300107]={ + + }, + [5300200]={ + + }, + [5300201]={ + + }, + [5300202]={ + + }, + [5300203]={ + + }, + [5300204]={ + + }, + [5300205]={ + + }, + [5300206]={ + + }, + [5300207]={ + + }, + [5400100]={ + + }, + [5400101]={ + + }, + [5400102]={ + + }, + [5400103]={ + + }, + [5400104]={ + + }, + [5400105]={ + + }, + [5400106]={ + + }, + [5400107]={ + } } local config = { -data=skill_rogue,count=76 +data=skill_rogue,count=204 } return config \ No newline at end of file diff --git a/lua/app/config/strings/en/hero.lua b/lua/app/config/strings/en/hero.lua index b1d055b8..fe5b3598 100644 --- a/lua/app/config/strings/en/hero.lua +++ b/lua/app/config/strings/en/hero.lua @@ -8,7 +8,7 @@ local hero = { [13002]={ }, - [24001]={ + [14001]={ }, [22001]={ @@ -16,6 +16,9 @@ local hero = { }, [23001]={ + }, + [23002]={ + }, [24001]={ @@ -25,18 +28,39 @@ local hero = { }, [33001]={ + }, + [33002]={ + + }, + [34001]={ + }, [42001]={ + }, + [43001]={ + + }, + [43002]={ + }, [44001]={ }, [52001]={ + }, + [53001]={ + + }, + [53002]={ + + }, + [54001]={ + } } local config = { -data=hero,count=12 +data=hero,count=20 } return config \ No newline at end of file diff --git a/lua/app/config/strings/en/item.lua b/lua/app/config/strings/en/item.lua index 88a14326..83435487 100644 --- a/lua/app/config/strings/en/item.lua +++ b/lua/app/config/strings/en/item.lua @@ -50,27 +50,39 @@ local item = { [15]={ }, - [12001]={ + [16]={ + + }, + [17]={ + + }, + [18]={ + + }, + [19]={ + + }, + [13001]={ ["name"]="Roxy Shard", ["desc"]="Roxy Shard, collect it to unlock or upgrade Roxy" }, - [13001]={ + [13002]={ ["name"]="Carla Shard", ["desc"]="Carla Shard, collect it to unlock or upgrade Carla" }, - [13002]={ + [14001]={ ["name"]="Great Sword Robert Shard", ["desc"]="Great Sword Robert Shard, collect it to unlock or upgrade Great Sword Robert" }, - [24001]={ + [22001]={ ["name"]="Aske Shard", ["desc"]="Aske Shard, collect it to unlock or upgrade Aske" }, - [22001]={ + [23001]={ ["name"]="Evelyn Shard", ["desc"]="Evelyn Shard, collect it to unlock or upgrade Evelyn" }, - [23001]={ + [23002]={ ["name"]="Lilith Shard", ["desc"]="Lilith Shard, collect it to unlock or upgrade Lilith" }, @@ -84,18 +96,39 @@ local item = { }, [33001]={ + }, + [33002]={ + + }, + [34001]={ + }, [42001]={ + }, + [43001]={ + + }, + [43002]={ + }, [44001]={ }, [52001]={ + }, + [53001]={ + + }, + [53002]={ + + }, + [54001]={ + } } local config = { -data=item,count=27 +data=item,count=38 } return config \ No newline at end of file diff --git a/lua/app/config/strings/en/mail.lua b/lua/app/config/strings/en/mail.lua new file mode 100644 index 00000000..01f03ccf --- /dev/null +++ b/lua/app/config/strings/en/mail.lua @@ -0,0 +1,24 @@ +local mail = { + [1]={ + ["name"]="Bestowal of the Elder" + }, + [2]={ + ["name"]="Daily Allowance of the King" + }, + [3]={ + ["name"]="Hey! See what's inside!", + ["desc"]="An optimistic person is always surprised by the unexpected" + }, + [4]={ + ["name"]="To my beloved...", + ["desc"]="A good heart will be rewarded with good deeds" + }, + [5]={ + ["name"]="Thrive!", + ["desc"]="Good energy, good luck and good fortune" + } +} +local config = { +data=mail,count=5 +} +return config \ No newline at end of file diff --git a/lua/app/config/strings/en/mail.lua.meta b/lua/app/config/strings/en/mail.lua.meta new file mode 100644 index 00000000..07abc06c --- /dev/null +++ b/lua/app/config/strings/en/mail.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 90d8b11fdee6134419f8e702ab468cf5 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/config/strings/en/skill.lua b/lua/app/config/strings/en/skill.lua index 94d3c3d9..9b09cecb 100644 --- a/lua/app/config/strings/en/skill.lua +++ b/lua/app/config/strings/en/skill.lua @@ -1,30 +1,66 @@ local skill = { - [3200120]={ - ["desc"]="Lance Thrust: Dealing tons of damage" + [1200120]={ + + }, + [1300120]={ + + }, + [1300220]={ + + }, + [1400120]={ + }, [2200120]={ - ["desc"]="Unsheathe: Dealing tons of damage" + }, - [4200120]={ - ["desc"]="Elemental Link: Clear random 3 extra elements" + [2300120]={ + }, - [5200120]={ - ["desc"]="Magic Shield: Generates a Magic Shield that absorbs damage up to 10% of your Max HP. The shield lasts for 1 round" - }, - [1200120]={ - ["desc"]="Disperse in Dance: Clears elements on 2 tiles on the left and right side" - }, - [3300120]={ - ["desc"]="Quick Regen: Immediately restores HP by an amount equal to 150% of Evelyn's Attack" + [2300220]={ + }, [2400120]={ - ["desc"]="Great Sword Combos: Increases the damage of each attack by 50%, ends with a huge sword that deals tons of damage" + + }, + [3200120]={ + + }, + [3300120]={ + + }, + [3300220]={ + + }, + [3400120]={ + + }, + [4200120]={ + + }, + [4300120]={ + + }, + [4300220]={ + }, [4400120]={ - ["desc"]="Frosty Blade Dance: Deals massive damage for one time and the applies Frost status on the enemy for 1 round (normal attack hits -2)" + + }, + [5200120]={ + + }, + [5300120]={ + + }, + [5300220]={ + + }, + [5400120]={ + } } local config = { -data=skill,count=8 +data=skill,count=20 } return config \ No newline at end of file diff --git a/lua/app/config/strings/en/skill_rogue.lua b/lua/app/config/strings/en/skill_rogue.lua index 8ecb8c32..f166128e 100644 --- a/lua/app/config/strings/en/skill_rogue.lua +++ b/lua/app/config/strings/en/skill_rogue.lua @@ -130,105 +130,489 @@ local skill_rogue = { }, [44]={ ["desc"]="Turns 5 random Non-Purple elements into Purple" + }, + [1200100]={ + }, [1200101]={ - ["desc"]="Disperse in Dance: Clears elements on 2 tiles on the left and right" + }, [1200102]={ - ["desc"]="Disperse in Dance clears elements on 1 extra tile on the top and bottom" + }, [1200103]={ - ["desc"]="Increases the damage of normal attacks by 10% by using Disperse in Dance" + }, [1200104]={ - ["desc"]="Increases Block Chance by 2% in the current round for every 1 element connected to Disperse in Dance" + + }, + [1200105]={ + + }, + [1200106]={ + + }, + [1200107]={ + + }, + [1300100]={ + + }, + [1300101]={ + + }, + [1300102]={ + + }, + [1300103]={ + + }, + [1300104]={ + + }, + [1300105]={ + + }, + [1300106]={ + + }, + [1300107]={ + + }, + [1300200]={ + + }, + [1300201]={ + + }, + [1300202]={ + + }, + [1300203]={ + + }, + [1300204]={ + + }, + [1300205]={ + + }, + [1300206]={ + + }, + [1300207]={ + + }, + [1400100]={ + + }, + [1400101]={ + + }, + [1400102]={ + + }, + [1400103]={ + + }, + [1400104]={ + + }, + [1400105]={ + + }, + [1400106]={ + + }, + [1400107]={ + + }, + [2200100]={ + }, [2200101]={ - ["desc"]="Unsheathe: Carla deals massive damage for 1 time" + }, [2200102]={ - ["desc"]="Increases the damage of Unsheathe" + }, [2200103]={ - ["desc"]="When performing Unsheathe, clears 1 tile on the top, bottom, left and right side respectively." + }, [2200104]={ - ["desc"]="Unsheathe Ultimate Skill can be unleashed for twice" + + }, + [2200105]={ + + }, + [2200106]={ + + }, + [2200107]={ + + }, + [2300100]={ + + }, + [2300101]={ + + }, + [2300102]={ + + }, + [2300103]={ + + }, + [2300104]={ + + }, + [2300105]={ + + }, + [2300106]={ + + }, + [2300107]={ + + }, + [2300200]={ + + }, + [2300201]={ + + }, + [2300202]={ + + }, + [2300203]={ + + }, + [2300204]={ + + }, + [2300205]={ + + }, + [2300206]={ + + }, + [2300207]={ + + }, + [2400100]={ + }, [2400101]={ - ["desc"]="Great Sword Combos: Increases the damage of each attack by 50%" + }, [2400102]={ - ["desc"]="Great Sword Combos clears 4 elements on the top, bottom, left and right side when connected" + }, [2400103]={ - ["desc"]="Increases the damage of normal attacks by 20% by using Great Sword Combos" + }, [2400104]={ - ["desc"]="Great Sword Combos clears 4 elements on the diagonal directions when connected" + + }, + [2400105]={ + + }, + [2400106]={ + + }, + [2400107]={ + + }, + [3200100]={ + }, [3200101]={ - ["desc"]="Lance Thrust: Aske deals massive damage for 1 time" + }, [3200102]={ - ["desc"]="Lance Thrust restores HP" + }, [3200103]={ - ["desc"]="Increases the damage of Lance Thrust" + }, [3200104]={ - ["desc"]="Lance Thrust has a 30% chance to stun the enemy for 1 round" + + }, + [3200105]={ + + }, + [3200106]={ + + }, + [3200107]={ + + }, + [3300100]={ + }, [3300101]={ - ["desc"]="Quick Regen: Evelyn can restore HP equal to 150% of her Attack" + }, [3300102]={ - ["desc"]="Increases the amount of HP restored by Quick Regen" + }, [3300103]={ - ["desc"]="Increases the damage of normal attacks by 15% by using Quick Regen" + }, [3300104]={ - ["desc"]="Each attack of elements connected by the same link of Quick Regen restores HP" + + }, + [3300105]={ + + }, + [3300106]={ + + }, + [3300107]={ + + }, + [3300200]={ + + }, + [3300201]={ + + }, + [3300202]={ + + }, + [3300203]={ + + }, + [3300204]={ + + }, + [3300205]={ + + }, + [3300206]={ + + }, + [3300207]={ + + }, + [3400100]={ + + }, + [3400101]={ + + }, + [3400102]={ + + }, + [3400103]={ + + }, + [3400104]={ + + }, + [3400105]={ + + }, + [3400106]={ + + }, + [3400107]={ + + }, + [4200100]={ + }, [4200101]={ - ["desc"]="Elemental Link: Clears random 3 extra elements" + }, [4200102]={ - ["desc"]="Increases the number of random elements cleared by Elemental Link by 2" + }, [4200103]={ - ["desc"]="Increases the damage of normal attacks by 10% by using Elemental Link " + }, [4200104]={ - ["desc"]="Increases the number of random elements cleared by Elemental Link by 2" + + }, + [4200105]={ + + }, + [4200106]={ + + }, + [4200107]={ + + }, + [4300100]={ + + }, + [4300101]={ + + }, + [4300102]={ + + }, + [4300103]={ + + }, + [4300104]={ + + }, + [4300105]={ + + }, + [4300106]={ + + }, + [4300107]={ + + }, + [4300300]={ + + }, + [4300301]={ + + }, + [4300302]={ + + }, + [4300303]={ + + }, + [4300304]={ + + }, + [4300305]={ + + }, + [4300306]={ + + }, + [4300307]={ + + }, + [4400100]={ + }, [4400101]={ - ["desc"]="Frosty Blade Dance: Deal the damage for 1 hit and applies Frost status for 1 round" + }, [4400102]={ - ["desc"]="When performing Frosty Blade Dance, clears 4 elements on the top, bottom, left and right side" + }, [4400103]={ - ["desc"]="Increases the damage of Frosty Blade Dance" + }, [4400104]={ - ["desc"]="Frost status caused by Frosty Blade Dance lasts for 2 rounds" + + }, + [4400105]={ + + }, + [4400106]={ + + }, + [4400107]={ + + }, + [5200100]={ + }, [5200101]={ - ["desc"]="Magic Shield: Allen generates a Magic Shield that lasts for 1 round" + }, [5200102]={ - ["desc"]="Increases the damage taken by the Magic Shield" + }, [5200103]={ - ["desc"]="Magic Shield lasts for 1 more round if it isn’t destroyed" + }, [5200104]={ - ["desc"]="Magic Shield reflects and deals 200% damage back to the enemy when activated" + + }, + [5200105]={ + + }, + [5200106]={ + + }, + [5200107]={ + + }, + [5300100]={ + + }, + [5300101]={ + + }, + [5300102]={ + + }, + [5300103]={ + + }, + [5300104]={ + + }, + [5300105]={ + + }, + [5300106]={ + + }, + [5300107]={ + + }, + [5300200]={ + + }, + [5300201]={ + + }, + [5300202]={ + + }, + [5300203]={ + + }, + [5300204]={ + + }, + [5300205]={ + + }, + [5300206]={ + + }, + [5300207]={ + + }, + [5400100]={ + + }, + [5400101]={ + + }, + [5400102]={ + + }, + [5400103]={ + + }, + [5400104]={ + + }, + [5400105]={ + + }, + [5400106]={ + + }, + [5400107]={ + } } local config = { -data=skill_rogue,count=76 +data=skill_rogue,count=204 } return config \ No newline at end of file diff --git a/lua/app/config/strings/fr/hero.lua b/lua/app/config/strings/fr/hero.lua index b1d055b8..fe5b3598 100644 --- a/lua/app/config/strings/fr/hero.lua +++ b/lua/app/config/strings/fr/hero.lua @@ -8,7 +8,7 @@ local hero = { [13002]={ }, - [24001]={ + [14001]={ }, [22001]={ @@ -16,6 +16,9 @@ local hero = { }, [23001]={ + }, + [23002]={ + }, [24001]={ @@ -25,18 +28,39 @@ local hero = { }, [33001]={ + }, + [33002]={ + + }, + [34001]={ + }, [42001]={ + }, + [43001]={ + + }, + [43002]={ + }, [44001]={ }, [52001]={ + }, + [53001]={ + + }, + [53002]={ + + }, + [54001]={ + } } local config = { -data=hero,count=12 +data=hero,count=20 } return config \ No newline at end of file diff --git a/lua/app/config/strings/fr/item.lua b/lua/app/config/strings/fr/item.lua index 4e0e7b10..5909956c 100644 --- a/lua/app/config/strings/fr/item.lua +++ b/lua/app/config/strings/fr/item.lua @@ -47,7 +47,16 @@ local item = { [15]={ }, - [12001]={ + [16]={ + + }, + [17]={ + + }, + [18]={ + + }, + [19]={ }, [13001]={ @@ -56,7 +65,7 @@ local item = { [13002]={ }, - [24001]={ + [14001]={ }, [22001]={ @@ -64,6 +73,9 @@ local item = { }, [23001]={ + }, + [23002]={ + }, [24001]={ @@ -73,18 +85,39 @@ local item = { }, [33001]={ + }, + [33002]={ + + }, + [34001]={ + }, [42001]={ + }, + [43001]={ + + }, + [43002]={ + }, [44001]={ }, [52001]={ + }, + [53001]={ + + }, + [53002]={ + + }, + [54001]={ + } } local config = { -data=item,count=27 +data=item,count=38 } return config \ No newline at end of file diff --git a/lua/app/config/strings/fr/mail.lua b/lua/app/config/strings/fr/mail.lua new file mode 100644 index 00000000..543ac975 --- /dev/null +++ b/lua/app/config/strings/fr/mail.lua @@ -0,0 +1,24 @@ +local mail = { + [1]={ + ["name"]="Cadeau d'un grand-père au bord de la route" + }, + [2]={ + ["name"]="Approvisionnement quotidien du roi" + }, + [3]={ + ["name"]="Hoho hahé", + ["desc"]="Une personne optimiste est toujours surprise par l'inattendu" + }, + [4]={ + ["name"]="Le bienveillant invincible", + ["desc"]="Une personne au bon cœur sera récompensée par de bonnes actions" + }, + [5]={ + ["name"]="En plein forme", + ["desc"]="Bonne énergie, bonne chance et bonne fortune" + } +} +local config = { +data=mail,count=5 +} +return config \ No newline at end of file diff --git a/lua/app/config/strings/fr/mail.lua.meta b/lua/app/config/strings/fr/mail.lua.meta new file mode 100644 index 00000000..60f7b257 --- /dev/null +++ b/lua/app/config/strings/fr/mail.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: eb850ef427dabc54794afaf8bcedf737 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/config/strings/fr/skill.lua b/lua/app/config/strings/fr/skill.lua index 53596185..9b09cecb 100644 --- a/lua/app/config/strings/fr/skill.lua +++ b/lua/app/config/strings/fr/skill.lua @@ -1,30 +1,66 @@ local skill = { - [3200120]={ + [1200120]={ + + }, + [1300120]={ + + }, + [1300220]={ + + }, + [1400120]={ }, [2200120]={ }, - [4200120]={ + [2300120]={ }, - [5200120]={ - - }, - [1200120]={ - - }, - [3300120]={ + [2300220]={ }, [2400120]={ + }, + [3200120]={ + + }, + [3300120]={ + + }, + [3300220]={ + + }, + [3400120]={ + + }, + [4200120]={ + + }, + [4300120]={ + + }, + [4300220]={ + }, [4400120]={ + }, + [5200120]={ + + }, + [5300120]={ + + }, + [5300220]={ + + }, + [5400120]={ + } } local config = { -data=skill,count=8 +data=skill,count=20 } return config \ No newline at end of file diff --git a/lua/app/config/strings/fr/skill_rogue.lua b/lua/app/config/strings/fr/skill_rogue.lua index 08e41a32..34291565 100644 --- a/lua/app/config/strings/fr/skill_rogue.lua +++ b/lua/app/config/strings/fr/skill_rogue.lua @@ -130,6 +130,9 @@ local skill_rogue = { }, [44]={ + }, + [1200100]={ + }, [1200101]={ @@ -142,6 +145,90 @@ local skill_rogue = { }, [1200104]={ + }, + [1200105]={ + + }, + [1200106]={ + + }, + [1200107]={ + + }, + [1300100]={ + + }, + [1300101]={ + + }, + [1300102]={ + + }, + [1300103]={ + + }, + [1300104]={ + + }, + [1300105]={ + + }, + [1300106]={ + + }, + [1300107]={ + + }, + [1300200]={ + + }, + [1300201]={ + + }, + [1300202]={ + + }, + [1300203]={ + + }, + [1300204]={ + + }, + [1300205]={ + + }, + [1300206]={ + + }, + [1300207]={ + + }, + [1400100]={ + + }, + [1400101]={ + + }, + [1400102]={ + + }, + [1400103]={ + + }, + [1400104]={ + + }, + [1400105]={ + + }, + [1400106]={ + + }, + [1400107]={ + + }, + [2200100]={ + }, [2200101]={ @@ -154,6 +241,66 @@ local skill_rogue = { }, [2200104]={ + }, + [2200105]={ + + }, + [2200106]={ + + }, + [2200107]={ + + }, + [2300100]={ + + }, + [2300101]={ + + }, + [2300102]={ + + }, + [2300103]={ + + }, + [2300104]={ + + }, + [2300105]={ + + }, + [2300106]={ + + }, + [2300107]={ + + }, + [2300200]={ + + }, + [2300201]={ + + }, + [2300202]={ + + }, + [2300203]={ + + }, + [2300204]={ + + }, + [2300205]={ + + }, + [2300206]={ + + }, + [2300207]={ + + }, + [2400100]={ + }, [2400101]={ @@ -166,6 +313,18 @@ local skill_rogue = { }, [2400104]={ + }, + [2400105]={ + + }, + [2400106]={ + + }, + [2400107]={ + + }, + [3200100]={ + }, [3200101]={ @@ -178,6 +337,18 @@ local skill_rogue = { }, [3200104]={ + }, + [3200105]={ + + }, + [3200106]={ + + }, + [3200107]={ + + }, + [3300100]={ + }, [3300101]={ @@ -190,6 +361,66 @@ local skill_rogue = { }, [3300104]={ + }, + [3300105]={ + + }, + [3300106]={ + + }, + [3300107]={ + + }, + [3300200]={ + + }, + [3300201]={ + + }, + [3300202]={ + + }, + [3300203]={ + + }, + [3300204]={ + + }, + [3300205]={ + + }, + [3300206]={ + + }, + [3300207]={ + + }, + [3400100]={ + + }, + [3400101]={ + + }, + [3400102]={ + + }, + [3400103]={ + + }, + [3400104]={ + + }, + [3400105]={ + + }, + [3400106]={ + + }, + [3400107]={ + + }, + [4200100]={ + }, [4200101]={ @@ -202,6 +433,66 @@ local skill_rogue = { }, [4200104]={ + }, + [4200105]={ + + }, + [4200106]={ + + }, + [4200107]={ + + }, + [4300100]={ + + }, + [4300101]={ + + }, + [4300102]={ + + }, + [4300103]={ + + }, + [4300104]={ + + }, + [4300105]={ + + }, + [4300106]={ + + }, + [4300107]={ + + }, + [4300300]={ + + }, + [4300301]={ + + }, + [4300302]={ + + }, + [4300303]={ + + }, + [4300304]={ + + }, + [4300305]={ + + }, + [4300306]={ + + }, + [4300307]={ + + }, + [4400100]={ + }, [4400101]={ @@ -214,6 +505,18 @@ local skill_rogue = { }, [4400104]={ + }, + [4400105]={ + + }, + [4400106]={ + + }, + [4400107]={ + + }, + [5200100]={ + }, [5200101]={ @@ -226,9 +529,90 @@ local skill_rogue = { }, [5200104]={ + }, + [5200105]={ + + }, + [5200106]={ + + }, + [5200107]={ + + }, + [5300100]={ + + }, + [5300101]={ + + }, + [5300102]={ + + }, + [5300103]={ + + }, + [5300104]={ + + }, + [5300105]={ + + }, + [5300106]={ + + }, + [5300107]={ + + }, + [5300200]={ + + }, + [5300201]={ + + }, + [5300202]={ + + }, + [5300203]={ + + }, + [5300204]={ + + }, + [5300205]={ + + }, + [5300206]={ + + }, + [5300207]={ + + }, + [5400100]={ + + }, + [5400101]={ + + }, + [5400102]={ + + }, + [5400103]={ + + }, + [5400104]={ + + }, + [5400105]={ + + }, + [5400106]={ + + }, + [5400107]={ + } } local config = { -data=skill_rogue,count=76 +data=skill_rogue,count=204 } return config \ No newline at end of file diff --git a/lua/app/config/strings/id/hero.lua b/lua/app/config/strings/id/hero.lua index b1d055b8..fe5b3598 100644 --- a/lua/app/config/strings/id/hero.lua +++ b/lua/app/config/strings/id/hero.lua @@ -8,7 +8,7 @@ local hero = { [13002]={ }, - [24001]={ + [14001]={ }, [22001]={ @@ -16,6 +16,9 @@ local hero = { }, [23001]={ + }, + [23002]={ + }, [24001]={ @@ -25,18 +28,39 @@ local hero = { }, [33001]={ + }, + [33002]={ + + }, + [34001]={ + }, [42001]={ + }, + [43001]={ + + }, + [43002]={ + }, [44001]={ }, [52001]={ + }, + [53001]={ + + }, + [53002]={ + + }, + [54001]={ + } } local config = { -data=hero,count=12 +data=hero,count=20 } return config \ No newline at end of file diff --git a/lua/app/config/strings/id/item.lua b/lua/app/config/strings/id/item.lua index cded8ca5..9aa765a4 100644 --- a/lua/app/config/strings/id/item.lua +++ b/lua/app/config/strings/id/item.lua @@ -47,7 +47,16 @@ local item = { [15]={ }, - [12001]={ + [16]={ + + }, + [17]={ + + }, + [18]={ + + }, + [19]={ }, [13001]={ @@ -56,7 +65,7 @@ local item = { [13002]={ }, - [24001]={ + [14001]={ }, [22001]={ @@ -64,6 +73,9 @@ local item = { }, [23001]={ + }, + [23002]={ + }, [24001]={ @@ -73,18 +85,39 @@ local item = { }, [33001]={ + }, + [33002]={ + + }, + [34001]={ + }, [42001]={ + }, + [43001]={ + + }, + [43002]={ + }, [44001]={ }, [52001]={ + }, + [53001]={ + + }, + [53002]={ + + }, + [54001]={ + } } local config = { -data=item,count=27 +data=item,count=38 } return config \ No newline at end of file diff --git a/lua/app/config/strings/id/skill.lua b/lua/app/config/strings/id/skill.lua index 53596185..9b09cecb 100644 --- a/lua/app/config/strings/id/skill.lua +++ b/lua/app/config/strings/id/skill.lua @@ -1,30 +1,66 @@ local skill = { - [3200120]={ + [1200120]={ + + }, + [1300120]={ + + }, + [1300220]={ + + }, + [1400120]={ }, [2200120]={ }, - [4200120]={ + [2300120]={ }, - [5200120]={ - - }, - [1200120]={ - - }, - [3300120]={ + [2300220]={ }, [2400120]={ + }, + [3200120]={ + + }, + [3300120]={ + + }, + [3300220]={ + + }, + [3400120]={ + + }, + [4200120]={ + + }, + [4300120]={ + + }, + [4300220]={ + }, [4400120]={ + }, + [5200120]={ + + }, + [5300120]={ + + }, + [5300220]={ + + }, + [5400120]={ + } } local config = { -data=skill,count=8 +data=skill,count=20 } return config \ No newline at end of file diff --git a/lua/app/config/strings/id/skill_rogue.lua b/lua/app/config/strings/id/skill_rogue.lua index 08e41a32..34291565 100644 --- a/lua/app/config/strings/id/skill_rogue.lua +++ b/lua/app/config/strings/id/skill_rogue.lua @@ -130,6 +130,9 @@ local skill_rogue = { }, [44]={ + }, + [1200100]={ + }, [1200101]={ @@ -142,6 +145,90 @@ local skill_rogue = { }, [1200104]={ + }, + [1200105]={ + + }, + [1200106]={ + + }, + [1200107]={ + + }, + [1300100]={ + + }, + [1300101]={ + + }, + [1300102]={ + + }, + [1300103]={ + + }, + [1300104]={ + + }, + [1300105]={ + + }, + [1300106]={ + + }, + [1300107]={ + + }, + [1300200]={ + + }, + [1300201]={ + + }, + [1300202]={ + + }, + [1300203]={ + + }, + [1300204]={ + + }, + [1300205]={ + + }, + [1300206]={ + + }, + [1300207]={ + + }, + [1400100]={ + + }, + [1400101]={ + + }, + [1400102]={ + + }, + [1400103]={ + + }, + [1400104]={ + + }, + [1400105]={ + + }, + [1400106]={ + + }, + [1400107]={ + + }, + [2200100]={ + }, [2200101]={ @@ -154,6 +241,66 @@ local skill_rogue = { }, [2200104]={ + }, + [2200105]={ + + }, + [2200106]={ + + }, + [2200107]={ + + }, + [2300100]={ + + }, + [2300101]={ + + }, + [2300102]={ + + }, + [2300103]={ + + }, + [2300104]={ + + }, + [2300105]={ + + }, + [2300106]={ + + }, + [2300107]={ + + }, + [2300200]={ + + }, + [2300201]={ + + }, + [2300202]={ + + }, + [2300203]={ + + }, + [2300204]={ + + }, + [2300205]={ + + }, + [2300206]={ + + }, + [2300207]={ + + }, + [2400100]={ + }, [2400101]={ @@ -166,6 +313,18 @@ local skill_rogue = { }, [2400104]={ + }, + [2400105]={ + + }, + [2400106]={ + + }, + [2400107]={ + + }, + [3200100]={ + }, [3200101]={ @@ -178,6 +337,18 @@ local skill_rogue = { }, [3200104]={ + }, + [3200105]={ + + }, + [3200106]={ + + }, + [3200107]={ + + }, + [3300100]={ + }, [3300101]={ @@ -190,6 +361,66 @@ local skill_rogue = { }, [3300104]={ + }, + [3300105]={ + + }, + [3300106]={ + + }, + [3300107]={ + + }, + [3300200]={ + + }, + [3300201]={ + + }, + [3300202]={ + + }, + [3300203]={ + + }, + [3300204]={ + + }, + [3300205]={ + + }, + [3300206]={ + + }, + [3300207]={ + + }, + [3400100]={ + + }, + [3400101]={ + + }, + [3400102]={ + + }, + [3400103]={ + + }, + [3400104]={ + + }, + [3400105]={ + + }, + [3400106]={ + + }, + [3400107]={ + + }, + [4200100]={ + }, [4200101]={ @@ -202,6 +433,66 @@ local skill_rogue = { }, [4200104]={ + }, + [4200105]={ + + }, + [4200106]={ + + }, + [4200107]={ + + }, + [4300100]={ + + }, + [4300101]={ + + }, + [4300102]={ + + }, + [4300103]={ + + }, + [4300104]={ + + }, + [4300105]={ + + }, + [4300106]={ + + }, + [4300107]={ + + }, + [4300300]={ + + }, + [4300301]={ + + }, + [4300302]={ + + }, + [4300303]={ + + }, + [4300304]={ + + }, + [4300305]={ + + }, + [4300306]={ + + }, + [4300307]={ + + }, + [4400100]={ + }, [4400101]={ @@ -214,6 +505,18 @@ local skill_rogue = { }, [4400104]={ + }, + [4400105]={ + + }, + [4400106]={ + + }, + [4400107]={ + + }, + [5200100]={ + }, [5200101]={ @@ -226,9 +529,90 @@ local skill_rogue = { }, [5200104]={ + }, + [5200105]={ + + }, + [5200106]={ + + }, + [5200107]={ + + }, + [5300100]={ + + }, + [5300101]={ + + }, + [5300102]={ + + }, + [5300103]={ + + }, + [5300104]={ + + }, + [5300105]={ + + }, + [5300106]={ + + }, + [5300107]={ + + }, + [5300200]={ + + }, + [5300201]={ + + }, + [5300202]={ + + }, + [5300203]={ + + }, + [5300204]={ + + }, + [5300205]={ + + }, + [5300206]={ + + }, + [5300207]={ + + }, + [5400100]={ + + }, + [5400101]={ + + }, + [5400102]={ + + }, + [5400103]={ + + }, + [5400104]={ + + }, + [5400105]={ + + }, + [5400106]={ + + }, + [5400107]={ + } } local config = { -data=skill_rogue,count=76 +data=skill_rogue,count=204 } return config \ No newline at end of file diff --git a/lua/app/config/strings/ja/hero.lua b/lua/app/config/strings/ja/hero.lua index b1d055b8..fe5b3598 100644 --- a/lua/app/config/strings/ja/hero.lua +++ b/lua/app/config/strings/ja/hero.lua @@ -8,7 +8,7 @@ local hero = { [13002]={ }, - [24001]={ + [14001]={ }, [22001]={ @@ -16,6 +16,9 @@ local hero = { }, [23001]={ + }, + [23002]={ + }, [24001]={ @@ -25,18 +28,39 @@ local hero = { }, [33001]={ + }, + [33002]={ + + }, + [34001]={ + }, [42001]={ + }, + [43001]={ + + }, + [43002]={ + }, [44001]={ }, [52001]={ + }, + [53001]={ + + }, + [53002]={ + + }, + [54001]={ + } } local config = { -data=hero,count=12 +data=hero,count=20 } return config \ No newline at end of file diff --git a/lua/app/config/strings/ja/item.lua b/lua/app/config/strings/ja/item.lua index 1883ff56..e51b8be7 100644 --- a/lua/app/config/strings/ja/item.lua +++ b/lua/app/config/strings/ja/item.lua @@ -47,7 +47,16 @@ local item = { [15]={ }, - [12001]={ + [16]={ + + }, + [17]={ + + }, + [18]={ + + }, + [19]={ }, [13001]={ @@ -56,7 +65,7 @@ local item = { [13002]={ }, - [24001]={ + [14001]={ }, [22001]={ @@ -64,6 +73,9 @@ local item = { }, [23001]={ + }, + [23002]={ + }, [24001]={ @@ -73,18 +85,39 @@ local item = { }, [33001]={ + }, + [33002]={ + + }, + [34001]={ + }, [42001]={ + }, + [43001]={ + + }, + [43002]={ + }, [44001]={ }, [52001]={ + }, + [53001]={ + + }, + [53002]={ + + }, + [54001]={ + } } local config = { -data=item,count=27 +data=item,count=38 } return config \ No newline at end of file diff --git a/lua/app/config/strings/ja/mail.lua b/lua/app/config/strings/ja/mail.lua new file mode 100644 index 00000000..a4d974e0 --- /dev/null +++ b/lua/app/config/strings/ja/mail.lua @@ -0,0 +1,21 @@ +local mail = { + [1]={ + + }, + [2]={ + + }, + [3]={ + + }, + [4]={ + + }, + [5]={ + + } +} +local config = { +data=mail,count=5 +} +return config \ No newline at end of file diff --git a/lua/app/config/strings/ja/mail.lua.meta b/lua/app/config/strings/ja/mail.lua.meta new file mode 100644 index 00000000..11fe2c81 --- /dev/null +++ b/lua/app/config/strings/ja/mail.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 2cea8977c8008a84685fa9c216ea4e6d +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/config/strings/ja/skill.lua b/lua/app/config/strings/ja/skill.lua index 53596185..9b09cecb 100644 --- a/lua/app/config/strings/ja/skill.lua +++ b/lua/app/config/strings/ja/skill.lua @@ -1,30 +1,66 @@ local skill = { - [3200120]={ + [1200120]={ + + }, + [1300120]={ + + }, + [1300220]={ + + }, + [1400120]={ }, [2200120]={ }, - [4200120]={ + [2300120]={ }, - [5200120]={ - - }, - [1200120]={ - - }, - [3300120]={ + [2300220]={ }, [2400120]={ + }, + [3200120]={ + + }, + [3300120]={ + + }, + [3300220]={ + + }, + [3400120]={ + + }, + [4200120]={ + + }, + [4300120]={ + + }, + [4300220]={ + }, [4400120]={ + }, + [5200120]={ + + }, + [5300120]={ + + }, + [5300220]={ + + }, + [5400120]={ + } } local config = { -data=skill,count=8 +data=skill,count=20 } return config \ No newline at end of file diff --git a/lua/app/config/strings/ja/skill_rogue.lua b/lua/app/config/strings/ja/skill_rogue.lua index 08e41a32..34291565 100644 --- a/lua/app/config/strings/ja/skill_rogue.lua +++ b/lua/app/config/strings/ja/skill_rogue.lua @@ -130,6 +130,9 @@ local skill_rogue = { }, [44]={ + }, + [1200100]={ + }, [1200101]={ @@ -142,6 +145,90 @@ local skill_rogue = { }, [1200104]={ + }, + [1200105]={ + + }, + [1200106]={ + + }, + [1200107]={ + + }, + [1300100]={ + + }, + [1300101]={ + + }, + [1300102]={ + + }, + [1300103]={ + + }, + [1300104]={ + + }, + [1300105]={ + + }, + [1300106]={ + + }, + [1300107]={ + + }, + [1300200]={ + + }, + [1300201]={ + + }, + [1300202]={ + + }, + [1300203]={ + + }, + [1300204]={ + + }, + [1300205]={ + + }, + [1300206]={ + + }, + [1300207]={ + + }, + [1400100]={ + + }, + [1400101]={ + + }, + [1400102]={ + + }, + [1400103]={ + + }, + [1400104]={ + + }, + [1400105]={ + + }, + [1400106]={ + + }, + [1400107]={ + + }, + [2200100]={ + }, [2200101]={ @@ -154,6 +241,66 @@ local skill_rogue = { }, [2200104]={ + }, + [2200105]={ + + }, + [2200106]={ + + }, + [2200107]={ + + }, + [2300100]={ + + }, + [2300101]={ + + }, + [2300102]={ + + }, + [2300103]={ + + }, + [2300104]={ + + }, + [2300105]={ + + }, + [2300106]={ + + }, + [2300107]={ + + }, + [2300200]={ + + }, + [2300201]={ + + }, + [2300202]={ + + }, + [2300203]={ + + }, + [2300204]={ + + }, + [2300205]={ + + }, + [2300206]={ + + }, + [2300207]={ + + }, + [2400100]={ + }, [2400101]={ @@ -166,6 +313,18 @@ local skill_rogue = { }, [2400104]={ + }, + [2400105]={ + + }, + [2400106]={ + + }, + [2400107]={ + + }, + [3200100]={ + }, [3200101]={ @@ -178,6 +337,18 @@ local skill_rogue = { }, [3200104]={ + }, + [3200105]={ + + }, + [3200106]={ + + }, + [3200107]={ + + }, + [3300100]={ + }, [3300101]={ @@ -190,6 +361,66 @@ local skill_rogue = { }, [3300104]={ + }, + [3300105]={ + + }, + [3300106]={ + + }, + [3300107]={ + + }, + [3300200]={ + + }, + [3300201]={ + + }, + [3300202]={ + + }, + [3300203]={ + + }, + [3300204]={ + + }, + [3300205]={ + + }, + [3300206]={ + + }, + [3300207]={ + + }, + [3400100]={ + + }, + [3400101]={ + + }, + [3400102]={ + + }, + [3400103]={ + + }, + [3400104]={ + + }, + [3400105]={ + + }, + [3400106]={ + + }, + [3400107]={ + + }, + [4200100]={ + }, [4200101]={ @@ -202,6 +433,66 @@ local skill_rogue = { }, [4200104]={ + }, + [4200105]={ + + }, + [4200106]={ + + }, + [4200107]={ + + }, + [4300100]={ + + }, + [4300101]={ + + }, + [4300102]={ + + }, + [4300103]={ + + }, + [4300104]={ + + }, + [4300105]={ + + }, + [4300106]={ + + }, + [4300107]={ + + }, + [4300300]={ + + }, + [4300301]={ + + }, + [4300302]={ + + }, + [4300303]={ + + }, + [4300304]={ + + }, + [4300305]={ + + }, + [4300306]={ + + }, + [4300307]={ + + }, + [4400100]={ + }, [4400101]={ @@ -214,6 +505,18 @@ local skill_rogue = { }, [4400104]={ + }, + [4400105]={ + + }, + [4400106]={ + + }, + [4400107]={ + + }, + [5200100]={ + }, [5200101]={ @@ -226,9 +529,90 @@ local skill_rogue = { }, [5200104]={ + }, + [5200105]={ + + }, + [5200106]={ + + }, + [5200107]={ + + }, + [5300100]={ + + }, + [5300101]={ + + }, + [5300102]={ + + }, + [5300103]={ + + }, + [5300104]={ + + }, + [5300105]={ + + }, + [5300106]={ + + }, + [5300107]={ + + }, + [5300200]={ + + }, + [5300201]={ + + }, + [5300202]={ + + }, + [5300203]={ + + }, + [5300204]={ + + }, + [5300205]={ + + }, + [5300206]={ + + }, + [5300207]={ + + }, + [5400100]={ + + }, + [5400101]={ + + }, + [5400102]={ + + }, + [5400103]={ + + }, + [5400104]={ + + }, + [5400105]={ + + }, + [5400106]={ + + }, + [5400107]={ + } } local config = { -data=skill_rogue,count=76 +data=skill_rogue,count=204 } return config \ No newline at end of file diff --git a/lua/app/config/strings/ko/hero.lua b/lua/app/config/strings/ko/hero.lua index b1d055b8..fe5b3598 100644 --- a/lua/app/config/strings/ko/hero.lua +++ b/lua/app/config/strings/ko/hero.lua @@ -8,7 +8,7 @@ local hero = { [13002]={ }, - [24001]={ + [14001]={ }, [22001]={ @@ -16,6 +16,9 @@ local hero = { }, [23001]={ + }, + [23002]={ + }, [24001]={ @@ -25,18 +28,39 @@ local hero = { }, [33001]={ + }, + [33002]={ + + }, + [34001]={ + }, [42001]={ + }, + [43001]={ + + }, + [43002]={ + }, [44001]={ }, [52001]={ + }, + [53001]={ + + }, + [53002]={ + + }, + [54001]={ + } } local config = { -data=hero,count=12 +data=hero,count=20 } return config \ No newline at end of file diff --git a/lua/app/config/strings/ko/item.lua b/lua/app/config/strings/ko/item.lua index b0e0af00..1022a815 100644 --- a/lua/app/config/strings/ko/item.lua +++ b/lua/app/config/strings/ko/item.lua @@ -47,7 +47,16 @@ local item = { [15]={ }, - [12001]={ + [16]={ + + }, + [17]={ + + }, + [18]={ + + }, + [19]={ }, [13001]={ @@ -56,7 +65,7 @@ local item = { [13002]={ }, - [24001]={ + [14001]={ }, [22001]={ @@ -64,6 +73,9 @@ local item = { }, [23001]={ + }, + [23002]={ + }, [24001]={ @@ -73,18 +85,39 @@ local item = { }, [33001]={ + }, + [33002]={ + + }, + [34001]={ + }, [42001]={ + }, + [43001]={ + + }, + [43002]={ + }, [44001]={ }, [52001]={ + }, + [53001]={ + + }, + [53002]={ + + }, + [54001]={ + } } local config = { -data=item,count=27 +data=item,count=38 } return config \ No newline at end of file diff --git a/lua/app/config/strings/ko/mail.lua b/lua/app/config/strings/ko/mail.lua new file mode 100644 index 00000000..748c9c2d --- /dev/null +++ b/lua/app/config/strings/ko/mail.lua @@ -0,0 +1,24 @@ +local mail = { + [1]={ + ["name"]="길 가던 할아버지가 던져 준 선물" + }, + [2]={ + ["name"]="왕의 일상 보급품" + }, + [3]={ + ["name"]="으랏차차!", + ["desc"]="낙관적 인 사람은 항상 예상치 못한 것에 놀란다." + }, + [4]={ + ["name"]="자비로운 자는 무적입니다.", + ["desc"]="마음이 착한 사람은 선행으로 보상을받을 것입니다." + }, + [5]={ + ["name"]="막힘없이 뻗어나가요!", + ["desc"]="좋은 에너지, 행운과 행운" + } +} +local config = { +data=mail,count=5 +} +return config \ No newline at end of file diff --git a/lua/app/config/strings/ko/mail.lua.meta b/lua/app/config/strings/ko/mail.lua.meta new file mode 100644 index 00000000..654cb103 --- /dev/null +++ b/lua/app/config/strings/ko/mail.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: fe3092af5b4df5c48a321faee19026de +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/config/strings/ko/skill.lua b/lua/app/config/strings/ko/skill.lua index 53596185..9b09cecb 100644 --- a/lua/app/config/strings/ko/skill.lua +++ b/lua/app/config/strings/ko/skill.lua @@ -1,30 +1,66 @@ local skill = { - [3200120]={ + [1200120]={ + + }, + [1300120]={ + + }, + [1300220]={ + + }, + [1400120]={ }, [2200120]={ }, - [4200120]={ + [2300120]={ }, - [5200120]={ - - }, - [1200120]={ - - }, - [3300120]={ + [2300220]={ }, [2400120]={ + }, + [3200120]={ + + }, + [3300120]={ + + }, + [3300220]={ + + }, + [3400120]={ + + }, + [4200120]={ + + }, + [4300120]={ + + }, + [4300220]={ + }, [4400120]={ + }, + [5200120]={ + + }, + [5300120]={ + + }, + [5300220]={ + + }, + [5400120]={ + } } local config = { -data=skill,count=8 +data=skill,count=20 } return config \ No newline at end of file diff --git a/lua/app/config/strings/ko/skill_rogue.lua b/lua/app/config/strings/ko/skill_rogue.lua index 08e41a32..34291565 100644 --- a/lua/app/config/strings/ko/skill_rogue.lua +++ b/lua/app/config/strings/ko/skill_rogue.lua @@ -130,6 +130,9 @@ local skill_rogue = { }, [44]={ + }, + [1200100]={ + }, [1200101]={ @@ -142,6 +145,90 @@ local skill_rogue = { }, [1200104]={ + }, + [1200105]={ + + }, + [1200106]={ + + }, + [1200107]={ + + }, + [1300100]={ + + }, + [1300101]={ + + }, + [1300102]={ + + }, + [1300103]={ + + }, + [1300104]={ + + }, + [1300105]={ + + }, + [1300106]={ + + }, + [1300107]={ + + }, + [1300200]={ + + }, + [1300201]={ + + }, + [1300202]={ + + }, + [1300203]={ + + }, + [1300204]={ + + }, + [1300205]={ + + }, + [1300206]={ + + }, + [1300207]={ + + }, + [1400100]={ + + }, + [1400101]={ + + }, + [1400102]={ + + }, + [1400103]={ + + }, + [1400104]={ + + }, + [1400105]={ + + }, + [1400106]={ + + }, + [1400107]={ + + }, + [2200100]={ + }, [2200101]={ @@ -154,6 +241,66 @@ local skill_rogue = { }, [2200104]={ + }, + [2200105]={ + + }, + [2200106]={ + + }, + [2200107]={ + + }, + [2300100]={ + + }, + [2300101]={ + + }, + [2300102]={ + + }, + [2300103]={ + + }, + [2300104]={ + + }, + [2300105]={ + + }, + [2300106]={ + + }, + [2300107]={ + + }, + [2300200]={ + + }, + [2300201]={ + + }, + [2300202]={ + + }, + [2300203]={ + + }, + [2300204]={ + + }, + [2300205]={ + + }, + [2300206]={ + + }, + [2300207]={ + + }, + [2400100]={ + }, [2400101]={ @@ -166,6 +313,18 @@ local skill_rogue = { }, [2400104]={ + }, + [2400105]={ + + }, + [2400106]={ + + }, + [2400107]={ + + }, + [3200100]={ + }, [3200101]={ @@ -178,6 +337,18 @@ local skill_rogue = { }, [3200104]={ + }, + [3200105]={ + + }, + [3200106]={ + + }, + [3200107]={ + + }, + [3300100]={ + }, [3300101]={ @@ -190,6 +361,66 @@ local skill_rogue = { }, [3300104]={ + }, + [3300105]={ + + }, + [3300106]={ + + }, + [3300107]={ + + }, + [3300200]={ + + }, + [3300201]={ + + }, + [3300202]={ + + }, + [3300203]={ + + }, + [3300204]={ + + }, + [3300205]={ + + }, + [3300206]={ + + }, + [3300207]={ + + }, + [3400100]={ + + }, + [3400101]={ + + }, + [3400102]={ + + }, + [3400103]={ + + }, + [3400104]={ + + }, + [3400105]={ + + }, + [3400106]={ + + }, + [3400107]={ + + }, + [4200100]={ + }, [4200101]={ @@ -202,6 +433,66 @@ local skill_rogue = { }, [4200104]={ + }, + [4200105]={ + + }, + [4200106]={ + + }, + [4200107]={ + + }, + [4300100]={ + + }, + [4300101]={ + + }, + [4300102]={ + + }, + [4300103]={ + + }, + [4300104]={ + + }, + [4300105]={ + + }, + [4300106]={ + + }, + [4300107]={ + + }, + [4300300]={ + + }, + [4300301]={ + + }, + [4300302]={ + + }, + [4300303]={ + + }, + [4300304]={ + + }, + [4300305]={ + + }, + [4300306]={ + + }, + [4300307]={ + + }, + [4400100]={ + }, [4400101]={ @@ -214,6 +505,18 @@ local skill_rogue = { }, [4400104]={ + }, + [4400105]={ + + }, + [4400106]={ + + }, + [4400107]={ + + }, + [5200100]={ + }, [5200101]={ @@ -226,9 +529,90 @@ local skill_rogue = { }, [5200104]={ + }, + [5200105]={ + + }, + [5200106]={ + + }, + [5200107]={ + + }, + [5300100]={ + + }, + [5300101]={ + + }, + [5300102]={ + + }, + [5300103]={ + + }, + [5300104]={ + + }, + [5300105]={ + + }, + [5300106]={ + + }, + [5300107]={ + + }, + [5300200]={ + + }, + [5300201]={ + + }, + [5300202]={ + + }, + [5300203]={ + + }, + [5300204]={ + + }, + [5300205]={ + + }, + [5300206]={ + + }, + [5300207]={ + + }, + [5400100]={ + + }, + [5400101]={ + + }, + [5400102]={ + + }, + [5400103]={ + + }, + [5400104]={ + + }, + [5400105]={ + + }, + [5400106]={ + + }, + [5400107]={ + } } local config = { -data=skill_rogue,count=76 +data=skill_rogue,count=204 } return config \ No newline at end of file diff --git a/lua/app/config/strings/pt/hero.lua b/lua/app/config/strings/pt/hero.lua index b1d055b8..fe5b3598 100644 --- a/lua/app/config/strings/pt/hero.lua +++ b/lua/app/config/strings/pt/hero.lua @@ -8,7 +8,7 @@ local hero = { [13002]={ }, - [24001]={ + [14001]={ }, [22001]={ @@ -16,6 +16,9 @@ local hero = { }, [23001]={ + }, + [23002]={ + }, [24001]={ @@ -25,18 +28,39 @@ local hero = { }, [33001]={ + }, + [33002]={ + + }, + [34001]={ + }, [42001]={ + }, + [43001]={ + + }, + [43002]={ + }, [44001]={ }, [52001]={ + }, + [53001]={ + + }, + [53002]={ + + }, + [54001]={ + } } local config = { -data=hero,count=12 +data=hero,count=20 } return config \ No newline at end of file diff --git a/lua/app/config/strings/pt/item.lua b/lua/app/config/strings/pt/item.lua index 3643c09d..9a0889ed 100644 --- a/lua/app/config/strings/pt/item.lua +++ b/lua/app/config/strings/pt/item.lua @@ -46,7 +46,16 @@ local item = { [15]={ }, - [12001]={ + [16]={ + + }, + [17]={ + + }, + [18]={ + + }, + [19]={ }, [13001]={ @@ -55,7 +64,7 @@ local item = { [13002]={ }, - [24001]={ + [14001]={ }, [22001]={ @@ -63,6 +72,9 @@ local item = { }, [23001]={ + }, + [23002]={ + }, [24001]={ @@ -72,18 +84,39 @@ local item = { }, [33001]={ + }, + [33002]={ + + }, + [34001]={ + }, [42001]={ + }, + [43001]={ + + }, + [43002]={ + }, [44001]={ }, [52001]={ + }, + [53001]={ + + }, + [53002]={ + + }, + [54001]={ + } } local config = { -data=item,count=27 +data=item,count=38 } return config \ No newline at end of file diff --git a/lua/app/config/strings/pt/skill.lua b/lua/app/config/strings/pt/skill.lua index 53596185..9b09cecb 100644 --- a/lua/app/config/strings/pt/skill.lua +++ b/lua/app/config/strings/pt/skill.lua @@ -1,30 +1,66 @@ local skill = { - [3200120]={ + [1200120]={ + + }, + [1300120]={ + + }, + [1300220]={ + + }, + [1400120]={ }, [2200120]={ }, - [4200120]={ + [2300120]={ }, - [5200120]={ - - }, - [1200120]={ - - }, - [3300120]={ + [2300220]={ }, [2400120]={ + }, + [3200120]={ + + }, + [3300120]={ + + }, + [3300220]={ + + }, + [3400120]={ + + }, + [4200120]={ + + }, + [4300120]={ + + }, + [4300220]={ + }, [4400120]={ + }, + [5200120]={ + + }, + [5300120]={ + + }, + [5300220]={ + + }, + [5400120]={ + } } local config = { -data=skill,count=8 +data=skill,count=20 } return config \ No newline at end of file diff --git a/lua/app/config/strings/pt/skill_rogue.lua b/lua/app/config/strings/pt/skill_rogue.lua index 08e41a32..34291565 100644 --- a/lua/app/config/strings/pt/skill_rogue.lua +++ b/lua/app/config/strings/pt/skill_rogue.lua @@ -130,6 +130,9 @@ local skill_rogue = { }, [44]={ + }, + [1200100]={ + }, [1200101]={ @@ -142,6 +145,90 @@ local skill_rogue = { }, [1200104]={ + }, + [1200105]={ + + }, + [1200106]={ + + }, + [1200107]={ + + }, + [1300100]={ + + }, + [1300101]={ + + }, + [1300102]={ + + }, + [1300103]={ + + }, + [1300104]={ + + }, + [1300105]={ + + }, + [1300106]={ + + }, + [1300107]={ + + }, + [1300200]={ + + }, + [1300201]={ + + }, + [1300202]={ + + }, + [1300203]={ + + }, + [1300204]={ + + }, + [1300205]={ + + }, + [1300206]={ + + }, + [1300207]={ + + }, + [1400100]={ + + }, + [1400101]={ + + }, + [1400102]={ + + }, + [1400103]={ + + }, + [1400104]={ + + }, + [1400105]={ + + }, + [1400106]={ + + }, + [1400107]={ + + }, + [2200100]={ + }, [2200101]={ @@ -154,6 +241,66 @@ local skill_rogue = { }, [2200104]={ + }, + [2200105]={ + + }, + [2200106]={ + + }, + [2200107]={ + + }, + [2300100]={ + + }, + [2300101]={ + + }, + [2300102]={ + + }, + [2300103]={ + + }, + [2300104]={ + + }, + [2300105]={ + + }, + [2300106]={ + + }, + [2300107]={ + + }, + [2300200]={ + + }, + [2300201]={ + + }, + [2300202]={ + + }, + [2300203]={ + + }, + [2300204]={ + + }, + [2300205]={ + + }, + [2300206]={ + + }, + [2300207]={ + + }, + [2400100]={ + }, [2400101]={ @@ -166,6 +313,18 @@ local skill_rogue = { }, [2400104]={ + }, + [2400105]={ + + }, + [2400106]={ + + }, + [2400107]={ + + }, + [3200100]={ + }, [3200101]={ @@ -178,6 +337,18 @@ local skill_rogue = { }, [3200104]={ + }, + [3200105]={ + + }, + [3200106]={ + + }, + [3200107]={ + + }, + [3300100]={ + }, [3300101]={ @@ -190,6 +361,66 @@ local skill_rogue = { }, [3300104]={ + }, + [3300105]={ + + }, + [3300106]={ + + }, + [3300107]={ + + }, + [3300200]={ + + }, + [3300201]={ + + }, + [3300202]={ + + }, + [3300203]={ + + }, + [3300204]={ + + }, + [3300205]={ + + }, + [3300206]={ + + }, + [3300207]={ + + }, + [3400100]={ + + }, + [3400101]={ + + }, + [3400102]={ + + }, + [3400103]={ + + }, + [3400104]={ + + }, + [3400105]={ + + }, + [3400106]={ + + }, + [3400107]={ + + }, + [4200100]={ + }, [4200101]={ @@ -202,6 +433,66 @@ local skill_rogue = { }, [4200104]={ + }, + [4200105]={ + + }, + [4200106]={ + + }, + [4200107]={ + + }, + [4300100]={ + + }, + [4300101]={ + + }, + [4300102]={ + + }, + [4300103]={ + + }, + [4300104]={ + + }, + [4300105]={ + + }, + [4300106]={ + + }, + [4300107]={ + + }, + [4300300]={ + + }, + [4300301]={ + + }, + [4300302]={ + + }, + [4300303]={ + + }, + [4300304]={ + + }, + [4300305]={ + + }, + [4300306]={ + + }, + [4300307]={ + + }, + [4400100]={ + }, [4400101]={ @@ -214,6 +505,18 @@ local skill_rogue = { }, [4400104]={ + }, + [4400105]={ + + }, + [4400106]={ + + }, + [4400107]={ + + }, + [5200100]={ + }, [5200101]={ @@ -226,9 +529,90 @@ local skill_rogue = { }, [5200104]={ + }, + [5200105]={ + + }, + [5200106]={ + + }, + [5200107]={ + + }, + [5300100]={ + + }, + [5300101]={ + + }, + [5300102]={ + + }, + [5300103]={ + + }, + [5300104]={ + + }, + [5300105]={ + + }, + [5300106]={ + + }, + [5300107]={ + + }, + [5300200]={ + + }, + [5300201]={ + + }, + [5300202]={ + + }, + [5300203]={ + + }, + [5300204]={ + + }, + [5300205]={ + + }, + [5300206]={ + + }, + [5300207]={ + + }, + [5400100]={ + + }, + [5400101]={ + + }, + [5400102]={ + + }, + [5400103]={ + + }, + [5400104]={ + + }, + [5400105]={ + + }, + [5400106]={ + + }, + [5400107]={ + } } local config = { -data=skill_rogue,count=76 +data=skill_rogue,count=204 } return config \ No newline at end of file diff --git a/lua/app/config/strings/ru/hero.lua b/lua/app/config/strings/ru/hero.lua index b1d055b8..fe5b3598 100644 --- a/lua/app/config/strings/ru/hero.lua +++ b/lua/app/config/strings/ru/hero.lua @@ -8,7 +8,7 @@ local hero = { [13002]={ }, - [24001]={ + [14001]={ }, [22001]={ @@ -16,6 +16,9 @@ local hero = { }, [23001]={ + }, + [23002]={ + }, [24001]={ @@ -25,18 +28,39 @@ local hero = { }, [33001]={ + }, + [33002]={ + + }, + [34001]={ + }, [42001]={ + }, + [43001]={ + + }, + [43002]={ + }, [44001]={ }, [52001]={ + }, + [53001]={ + + }, + [53002]={ + + }, + [54001]={ + } } local config = { -data=hero,count=12 +data=hero,count=20 } return config \ No newline at end of file diff --git a/lua/app/config/strings/ru/item.lua b/lua/app/config/strings/ru/item.lua index 70910fe6..ae420cc4 100644 --- a/lua/app/config/strings/ru/item.lua +++ b/lua/app/config/strings/ru/item.lua @@ -44,7 +44,16 @@ local item = { [15]={ }, - [12001]={ + [16]={ + + }, + [17]={ + + }, + [18]={ + + }, + [19]={ }, [13001]={ @@ -53,7 +62,7 @@ local item = { [13002]={ }, - [24001]={ + [14001]={ }, [22001]={ @@ -61,6 +70,9 @@ local item = { }, [23001]={ + }, + [23002]={ + }, [24001]={ @@ -70,18 +82,39 @@ local item = { }, [33001]={ + }, + [33002]={ + + }, + [34001]={ + }, [42001]={ + }, + [43001]={ + + }, + [43002]={ + }, [44001]={ }, [52001]={ + }, + [53001]={ + + }, + [53002]={ + + }, + [54001]={ + } } local config = { -data=item,count=27 +data=item,count=38 } return config \ No newline at end of file diff --git a/lua/app/config/strings/ru/skill.lua b/lua/app/config/strings/ru/skill.lua index 53596185..9b09cecb 100644 --- a/lua/app/config/strings/ru/skill.lua +++ b/lua/app/config/strings/ru/skill.lua @@ -1,30 +1,66 @@ local skill = { - [3200120]={ + [1200120]={ + + }, + [1300120]={ + + }, + [1300220]={ + + }, + [1400120]={ }, [2200120]={ }, - [4200120]={ + [2300120]={ }, - [5200120]={ - - }, - [1200120]={ - - }, - [3300120]={ + [2300220]={ }, [2400120]={ + }, + [3200120]={ + + }, + [3300120]={ + + }, + [3300220]={ + + }, + [3400120]={ + + }, + [4200120]={ + + }, + [4300120]={ + + }, + [4300220]={ + }, [4400120]={ + }, + [5200120]={ + + }, + [5300120]={ + + }, + [5300220]={ + + }, + [5400120]={ + } } local config = { -data=skill,count=8 +data=skill,count=20 } return config \ No newline at end of file diff --git a/lua/app/config/strings/ru/skill_rogue.lua b/lua/app/config/strings/ru/skill_rogue.lua index 08e41a32..34291565 100644 --- a/lua/app/config/strings/ru/skill_rogue.lua +++ b/lua/app/config/strings/ru/skill_rogue.lua @@ -130,6 +130,9 @@ local skill_rogue = { }, [44]={ + }, + [1200100]={ + }, [1200101]={ @@ -142,6 +145,90 @@ local skill_rogue = { }, [1200104]={ + }, + [1200105]={ + + }, + [1200106]={ + + }, + [1200107]={ + + }, + [1300100]={ + + }, + [1300101]={ + + }, + [1300102]={ + + }, + [1300103]={ + + }, + [1300104]={ + + }, + [1300105]={ + + }, + [1300106]={ + + }, + [1300107]={ + + }, + [1300200]={ + + }, + [1300201]={ + + }, + [1300202]={ + + }, + [1300203]={ + + }, + [1300204]={ + + }, + [1300205]={ + + }, + [1300206]={ + + }, + [1300207]={ + + }, + [1400100]={ + + }, + [1400101]={ + + }, + [1400102]={ + + }, + [1400103]={ + + }, + [1400104]={ + + }, + [1400105]={ + + }, + [1400106]={ + + }, + [1400107]={ + + }, + [2200100]={ + }, [2200101]={ @@ -154,6 +241,66 @@ local skill_rogue = { }, [2200104]={ + }, + [2200105]={ + + }, + [2200106]={ + + }, + [2200107]={ + + }, + [2300100]={ + + }, + [2300101]={ + + }, + [2300102]={ + + }, + [2300103]={ + + }, + [2300104]={ + + }, + [2300105]={ + + }, + [2300106]={ + + }, + [2300107]={ + + }, + [2300200]={ + + }, + [2300201]={ + + }, + [2300202]={ + + }, + [2300203]={ + + }, + [2300204]={ + + }, + [2300205]={ + + }, + [2300206]={ + + }, + [2300207]={ + + }, + [2400100]={ + }, [2400101]={ @@ -166,6 +313,18 @@ local skill_rogue = { }, [2400104]={ + }, + [2400105]={ + + }, + [2400106]={ + + }, + [2400107]={ + + }, + [3200100]={ + }, [3200101]={ @@ -178,6 +337,18 @@ local skill_rogue = { }, [3200104]={ + }, + [3200105]={ + + }, + [3200106]={ + + }, + [3200107]={ + + }, + [3300100]={ + }, [3300101]={ @@ -190,6 +361,66 @@ local skill_rogue = { }, [3300104]={ + }, + [3300105]={ + + }, + [3300106]={ + + }, + [3300107]={ + + }, + [3300200]={ + + }, + [3300201]={ + + }, + [3300202]={ + + }, + [3300203]={ + + }, + [3300204]={ + + }, + [3300205]={ + + }, + [3300206]={ + + }, + [3300207]={ + + }, + [3400100]={ + + }, + [3400101]={ + + }, + [3400102]={ + + }, + [3400103]={ + + }, + [3400104]={ + + }, + [3400105]={ + + }, + [3400106]={ + + }, + [3400107]={ + + }, + [4200100]={ + }, [4200101]={ @@ -202,6 +433,66 @@ local skill_rogue = { }, [4200104]={ + }, + [4200105]={ + + }, + [4200106]={ + + }, + [4200107]={ + + }, + [4300100]={ + + }, + [4300101]={ + + }, + [4300102]={ + + }, + [4300103]={ + + }, + [4300104]={ + + }, + [4300105]={ + + }, + [4300106]={ + + }, + [4300107]={ + + }, + [4300300]={ + + }, + [4300301]={ + + }, + [4300302]={ + + }, + [4300303]={ + + }, + [4300304]={ + + }, + [4300305]={ + + }, + [4300306]={ + + }, + [4300307]={ + + }, + [4400100]={ + }, [4400101]={ @@ -214,6 +505,18 @@ local skill_rogue = { }, [4400104]={ + }, + [4400105]={ + + }, + [4400106]={ + + }, + [4400107]={ + + }, + [5200100]={ + }, [5200101]={ @@ -226,9 +529,90 @@ local skill_rogue = { }, [5200104]={ + }, + [5200105]={ + + }, + [5200106]={ + + }, + [5200107]={ + + }, + [5300100]={ + + }, + [5300101]={ + + }, + [5300102]={ + + }, + [5300103]={ + + }, + [5300104]={ + + }, + [5300105]={ + + }, + [5300106]={ + + }, + [5300107]={ + + }, + [5300200]={ + + }, + [5300201]={ + + }, + [5300202]={ + + }, + [5300203]={ + + }, + [5300204]={ + + }, + [5300205]={ + + }, + [5300206]={ + + }, + [5300207]={ + + }, + [5400100]={ + + }, + [5400101]={ + + }, + [5400102]={ + + }, + [5400103]={ + + }, + [5400104]={ + + }, + [5400105]={ + + }, + [5400106]={ + + }, + [5400107]={ + } } local config = { -data=skill_rogue,count=76 +data=skill_rogue,count=204 } return config \ No newline at end of file diff --git a/lua/app/config/strings/th/hero.lua b/lua/app/config/strings/th/hero.lua index b1d055b8..fe5b3598 100644 --- a/lua/app/config/strings/th/hero.lua +++ b/lua/app/config/strings/th/hero.lua @@ -8,7 +8,7 @@ local hero = { [13002]={ }, - [24001]={ + [14001]={ }, [22001]={ @@ -16,6 +16,9 @@ local hero = { }, [23001]={ + }, + [23002]={ + }, [24001]={ @@ -25,18 +28,39 @@ local hero = { }, [33001]={ + }, + [33002]={ + + }, + [34001]={ + }, [42001]={ + }, + [43001]={ + + }, + [43002]={ + }, [44001]={ }, [52001]={ + }, + [53001]={ + + }, + [53002]={ + + }, + [54001]={ + } } local config = { -data=hero,count=12 +data=hero,count=20 } return config \ No newline at end of file diff --git a/lua/app/config/strings/th/item.lua b/lua/app/config/strings/th/item.lua index 70910fe6..ae420cc4 100644 --- a/lua/app/config/strings/th/item.lua +++ b/lua/app/config/strings/th/item.lua @@ -44,7 +44,16 @@ local item = { [15]={ }, - [12001]={ + [16]={ + + }, + [17]={ + + }, + [18]={ + + }, + [19]={ }, [13001]={ @@ -53,7 +62,7 @@ local item = { [13002]={ }, - [24001]={ + [14001]={ }, [22001]={ @@ -61,6 +70,9 @@ local item = { }, [23001]={ + }, + [23002]={ + }, [24001]={ @@ -70,18 +82,39 @@ local item = { }, [33001]={ + }, + [33002]={ + + }, + [34001]={ + }, [42001]={ + }, + [43001]={ + + }, + [43002]={ + }, [44001]={ }, [52001]={ + }, + [53001]={ + + }, + [53002]={ + + }, + [54001]={ + } } local config = { -data=item,count=27 +data=item,count=38 } return config \ No newline at end of file diff --git a/lua/app/config/strings/th/skill.lua b/lua/app/config/strings/th/skill.lua index 53596185..9b09cecb 100644 --- a/lua/app/config/strings/th/skill.lua +++ b/lua/app/config/strings/th/skill.lua @@ -1,30 +1,66 @@ local skill = { - [3200120]={ + [1200120]={ + + }, + [1300120]={ + + }, + [1300220]={ + + }, + [1400120]={ }, [2200120]={ }, - [4200120]={ + [2300120]={ }, - [5200120]={ - - }, - [1200120]={ - - }, - [3300120]={ + [2300220]={ }, [2400120]={ + }, + [3200120]={ + + }, + [3300120]={ + + }, + [3300220]={ + + }, + [3400120]={ + + }, + [4200120]={ + + }, + [4300120]={ + + }, + [4300220]={ + }, [4400120]={ + }, + [5200120]={ + + }, + [5300120]={ + + }, + [5300220]={ + + }, + [5400120]={ + } } local config = { -data=skill,count=8 +data=skill,count=20 } return config \ No newline at end of file diff --git a/lua/app/config/strings/th/skill_rogue.lua b/lua/app/config/strings/th/skill_rogue.lua index 08e41a32..34291565 100644 --- a/lua/app/config/strings/th/skill_rogue.lua +++ b/lua/app/config/strings/th/skill_rogue.lua @@ -130,6 +130,9 @@ local skill_rogue = { }, [44]={ + }, + [1200100]={ + }, [1200101]={ @@ -142,6 +145,90 @@ local skill_rogue = { }, [1200104]={ + }, + [1200105]={ + + }, + [1200106]={ + + }, + [1200107]={ + + }, + [1300100]={ + + }, + [1300101]={ + + }, + [1300102]={ + + }, + [1300103]={ + + }, + [1300104]={ + + }, + [1300105]={ + + }, + [1300106]={ + + }, + [1300107]={ + + }, + [1300200]={ + + }, + [1300201]={ + + }, + [1300202]={ + + }, + [1300203]={ + + }, + [1300204]={ + + }, + [1300205]={ + + }, + [1300206]={ + + }, + [1300207]={ + + }, + [1400100]={ + + }, + [1400101]={ + + }, + [1400102]={ + + }, + [1400103]={ + + }, + [1400104]={ + + }, + [1400105]={ + + }, + [1400106]={ + + }, + [1400107]={ + + }, + [2200100]={ + }, [2200101]={ @@ -154,6 +241,66 @@ local skill_rogue = { }, [2200104]={ + }, + [2200105]={ + + }, + [2200106]={ + + }, + [2200107]={ + + }, + [2300100]={ + + }, + [2300101]={ + + }, + [2300102]={ + + }, + [2300103]={ + + }, + [2300104]={ + + }, + [2300105]={ + + }, + [2300106]={ + + }, + [2300107]={ + + }, + [2300200]={ + + }, + [2300201]={ + + }, + [2300202]={ + + }, + [2300203]={ + + }, + [2300204]={ + + }, + [2300205]={ + + }, + [2300206]={ + + }, + [2300207]={ + + }, + [2400100]={ + }, [2400101]={ @@ -166,6 +313,18 @@ local skill_rogue = { }, [2400104]={ + }, + [2400105]={ + + }, + [2400106]={ + + }, + [2400107]={ + + }, + [3200100]={ + }, [3200101]={ @@ -178,6 +337,18 @@ local skill_rogue = { }, [3200104]={ + }, + [3200105]={ + + }, + [3200106]={ + + }, + [3200107]={ + + }, + [3300100]={ + }, [3300101]={ @@ -190,6 +361,66 @@ local skill_rogue = { }, [3300104]={ + }, + [3300105]={ + + }, + [3300106]={ + + }, + [3300107]={ + + }, + [3300200]={ + + }, + [3300201]={ + + }, + [3300202]={ + + }, + [3300203]={ + + }, + [3300204]={ + + }, + [3300205]={ + + }, + [3300206]={ + + }, + [3300207]={ + + }, + [3400100]={ + + }, + [3400101]={ + + }, + [3400102]={ + + }, + [3400103]={ + + }, + [3400104]={ + + }, + [3400105]={ + + }, + [3400106]={ + + }, + [3400107]={ + + }, + [4200100]={ + }, [4200101]={ @@ -202,6 +433,66 @@ local skill_rogue = { }, [4200104]={ + }, + [4200105]={ + + }, + [4200106]={ + + }, + [4200107]={ + + }, + [4300100]={ + + }, + [4300101]={ + + }, + [4300102]={ + + }, + [4300103]={ + + }, + [4300104]={ + + }, + [4300105]={ + + }, + [4300106]={ + + }, + [4300107]={ + + }, + [4300300]={ + + }, + [4300301]={ + + }, + [4300302]={ + + }, + [4300303]={ + + }, + [4300304]={ + + }, + [4300305]={ + + }, + [4300306]={ + + }, + [4300307]={ + + }, + [4400100]={ + }, [4400101]={ @@ -214,6 +505,18 @@ local skill_rogue = { }, [4400104]={ + }, + [4400105]={ + + }, + [4400106]={ + + }, + [4400107]={ + + }, + [5200100]={ + }, [5200101]={ @@ -226,9 +529,90 @@ local skill_rogue = { }, [5200104]={ + }, + [5200105]={ + + }, + [5200106]={ + + }, + [5200107]={ + + }, + [5300100]={ + + }, + [5300101]={ + + }, + [5300102]={ + + }, + [5300103]={ + + }, + [5300104]={ + + }, + [5300105]={ + + }, + [5300106]={ + + }, + [5300107]={ + + }, + [5300200]={ + + }, + [5300201]={ + + }, + [5300202]={ + + }, + [5300203]={ + + }, + [5300204]={ + + }, + [5300205]={ + + }, + [5300206]={ + + }, + [5300207]={ + + }, + [5400100]={ + + }, + [5400101]={ + + }, + [5400102]={ + + }, + [5400103]={ + + }, + [5400104]={ + + }, + [5400105]={ + + }, + [5400106]={ + + }, + [5400107]={ + } } local config = { -data=skill_rogue,count=76 +data=skill_rogue,count=204 } return config \ No newline at end of file diff --git a/lua/app/config/strings/vi/hero.lua b/lua/app/config/strings/vi/hero.lua index b1d055b8..fe5b3598 100644 --- a/lua/app/config/strings/vi/hero.lua +++ b/lua/app/config/strings/vi/hero.lua @@ -8,7 +8,7 @@ local hero = { [13002]={ }, - [24001]={ + [14001]={ }, [22001]={ @@ -16,6 +16,9 @@ local hero = { }, [23001]={ + }, + [23002]={ + }, [24001]={ @@ -25,18 +28,39 @@ local hero = { }, [33001]={ + }, + [33002]={ + + }, + [34001]={ + }, [42001]={ + }, + [43001]={ + + }, + [43002]={ + }, [44001]={ }, [52001]={ + }, + [53001]={ + + }, + [53002]={ + + }, + [54001]={ + } } local config = { -data=hero,count=12 +data=hero,count=20 } return config \ No newline at end of file diff --git a/lua/app/config/strings/vi/item.lua b/lua/app/config/strings/vi/item.lua index 41b4c5fb..dfcb01d6 100644 --- a/lua/app/config/strings/vi/item.lua +++ b/lua/app/config/strings/vi/item.lua @@ -47,7 +47,16 @@ local item = { [15]={ }, - [12001]={ + [16]={ + + }, + [17]={ + + }, + [18]={ + + }, + [19]={ }, [13001]={ @@ -56,7 +65,7 @@ local item = { [13002]={ }, - [24001]={ + [14001]={ }, [22001]={ @@ -64,6 +73,9 @@ local item = { }, [23001]={ + }, + [23002]={ + }, [24001]={ @@ -73,18 +85,39 @@ local item = { }, [33001]={ + }, + [33002]={ + + }, + [34001]={ + }, [42001]={ + }, + [43001]={ + + }, + [43002]={ + }, [44001]={ }, [52001]={ + }, + [53001]={ + + }, + [53002]={ + + }, + [54001]={ + } } local config = { -data=item,count=27 +data=item,count=38 } return config \ No newline at end of file diff --git a/lua/app/config/strings/vi/skill.lua b/lua/app/config/strings/vi/skill.lua index 53596185..9b09cecb 100644 --- a/lua/app/config/strings/vi/skill.lua +++ b/lua/app/config/strings/vi/skill.lua @@ -1,30 +1,66 @@ local skill = { - [3200120]={ + [1200120]={ + + }, + [1300120]={ + + }, + [1300220]={ + + }, + [1400120]={ }, [2200120]={ }, - [4200120]={ + [2300120]={ }, - [5200120]={ - - }, - [1200120]={ - - }, - [3300120]={ + [2300220]={ }, [2400120]={ + }, + [3200120]={ + + }, + [3300120]={ + + }, + [3300220]={ + + }, + [3400120]={ + + }, + [4200120]={ + + }, + [4300120]={ + + }, + [4300220]={ + }, [4400120]={ + }, + [5200120]={ + + }, + [5300120]={ + + }, + [5300220]={ + + }, + [5400120]={ + } } local config = { -data=skill,count=8 +data=skill,count=20 } return config \ No newline at end of file diff --git a/lua/app/config/strings/vi/skill_rogue.lua b/lua/app/config/strings/vi/skill_rogue.lua index 08e41a32..34291565 100644 --- a/lua/app/config/strings/vi/skill_rogue.lua +++ b/lua/app/config/strings/vi/skill_rogue.lua @@ -130,6 +130,9 @@ local skill_rogue = { }, [44]={ + }, + [1200100]={ + }, [1200101]={ @@ -142,6 +145,90 @@ local skill_rogue = { }, [1200104]={ + }, + [1200105]={ + + }, + [1200106]={ + + }, + [1200107]={ + + }, + [1300100]={ + + }, + [1300101]={ + + }, + [1300102]={ + + }, + [1300103]={ + + }, + [1300104]={ + + }, + [1300105]={ + + }, + [1300106]={ + + }, + [1300107]={ + + }, + [1300200]={ + + }, + [1300201]={ + + }, + [1300202]={ + + }, + [1300203]={ + + }, + [1300204]={ + + }, + [1300205]={ + + }, + [1300206]={ + + }, + [1300207]={ + + }, + [1400100]={ + + }, + [1400101]={ + + }, + [1400102]={ + + }, + [1400103]={ + + }, + [1400104]={ + + }, + [1400105]={ + + }, + [1400106]={ + + }, + [1400107]={ + + }, + [2200100]={ + }, [2200101]={ @@ -154,6 +241,66 @@ local skill_rogue = { }, [2200104]={ + }, + [2200105]={ + + }, + [2200106]={ + + }, + [2200107]={ + + }, + [2300100]={ + + }, + [2300101]={ + + }, + [2300102]={ + + }, + [2300103]={ + + }, + [2300104]={ + + }, + [2300105]={ + + }, + [2300106]={ + + }, + [2300107]={ + + }, + [2300200]={ + + }, + [2300201]={ + + }, + [2300202]={ + + }, + [2300203]={ + + }, + [2300204]={ + + }, + [2300205]={ + + }, + [2300206]={ + + }, + [2300207]={ + + }, + [2400100]={ + }, [2400101]={ @@ -166,6 +313,18 @@ local skill_rogue = { }, [2400104]={ + }, + [2400105]={ + + }, + [2400106]={ + + }, + [2400107]={ + + }, + [3200100]={ + }, [3200101]={ @@ -178,6 +337,18 @@ local skill_rogue = { }, [3200104]={ + }, + [3200105]={ + + }, + [3200106]={ + + }, + [3200107]={ + + }, + [3300100]={ + }, [3300101]={ @@ -190,6 +361,66 @@ local skill_rogue = { }, [3300104]={ + }, + [3300105]={ + + }, + [3300106]={ + + }, + [3300107]={ + + }, + [3300200]={ + + }, + [3300201]={ + + }, + [3300202]={ + + }, + [3300203]={ + + }, + [3300204]={ + + }, + [3300205]={ + + }, + [3300206]={ + + }, + [3300207]={ + + }, + [3400100]={ + + }, + [3400101]={ + + }, + [3400102]={ + + }, + [3400103]={ + + }, + [3400104]={ + + }, + [3400105]={ + + }, + [3400106]={ + + }, + [3400107]={ + + }, + [4200100]={ + }, [4200101]={ @@ -202,6 +433,66 @@ local skill_rogue = { }, [4200104]={ + }, + [4200105]={ + + }, + [4200106]={ + + }, + [4200107]={ + + }, + [4300100]={ + + }, + [4300101]={ + + }, + [4300102]={ + + }, + [4300103]={ + + }, + [4300104]={ + + }, + [4300105]={ + + }, + [4300106]={ + + }, + [4300107]={ + + }, + [4300300]={ + + }, + [4300301]={ + + }, + [4300302]={ + + }, + [4300303]={ + + }, + [4300304]={ + + }, + [4300305]={ + + }, + [4300306]={ + + }, + [4300307]={ + + }, + [4400100]={ + }, [4400101]={ @@ -214,6 +505,18 @@ local skill_rogue = { }, [4400104]={ + }, + [4400105]={ + + }, + [4400106]={ + + }, + [4400107]={ + + }, + [5200100]={ + }, [5200101]={ @@ -226,9 +529,90 @@ local skill_rogue = { }, [5200104]={ + }, + [5200105]={ + + }, + [5200106]={ + + }, + [5200107]={ + + }, + [5300100]={ + + }, + [5300101]={ + + }, + [5300102]={ + + }, + [5300103]={ + + }, + [5300104]={ + + }, + [5300105]={ + + }, + [5300106]={ + + }, + [5300107]={ + + }, + [5300200]={ + + }, + [5300201]={ + + }, + [5300202]={ + + }, + [5300203]={ + + }, + [5300204]={ + + }, + [5300205]={ + + }, + [5300206]={ + + }, + [5300207]={ + + }, + [5400100]={ + + }, + [5400101]={ + + }, + [5400102]={ + + }, + [5400103]={ + + }, + [5400104]={ + + }, + [5400105]={ + + }, + [5400106]={ + + }, + [5400107]={ + } } local config = { -data=skill_rogue,count=76 +data=skill_rogue,count=204 } return config \ No newline at end of file diff --git a/lua/app/config/strings/zh/hero.lua b/lua/app/config/strings/zh/hero.lua index b1d055b8..fe5b3598 100644 --- a/lua/app/config/strings/zh/hero.lua +++ b/lua/app/config/strings/zh/hero.lua @@ -8,7 +8,7 @@ local hero = { [13002]={ }, - [24001]={ + [14001]={ }, [22001]={ @@ -16,6 +16,9 @@ local hero = { }, [23001]={ + }, + [23002]={ + }, [24001]={ @@ -25,18 +28,39 @@ local hero = { }, [33001]={ + }, + [33002]={ + + }, + [34001]={ + }, [42001]={ + }, + [43001]={ + + }, + [43002]={ + }, [44001]={ }, [52001]={ + }, + [53001]={ + + }, + [53002]={ + + }, + [54001]={ + } } local config = { -data=hero,count=12 +data=hero,count=20 } return config \ No newline at end of file diff --git a/lua/app/config/strings/zh/item.lua b/lua/app/config/strings/zh/item.lua index 26ee25da..9e79df98 100644 --- a/lua/app/config/strings/zh/item.lua +++ b/lua/app/config/strings/zh/item.lua @@ -50,52 +50,85 @@ local item = { [15]={ }, - [12001]={ - ["name"]="红R舞女碎片", - ["desc"]="洛克西英雄碎片,湊齊可解鎖或升級。" + [16]={ + + }, + [17]={ + + }, + [18]={ + + }, + [19]={ + }, [13001]={ - ["name"]="红SR-克劳德碎片", - ["desc"]="卡拉英雄碎片,湊齊可解鎖或升級。" + ["name"]="红SR-克劳德", + ["desc"]="洛克西英雄碎片,湊齊可解鎖或升級。" }, [13002]={ - ["name"]="红SR-武僧碎片", + ["name"]="红SR-武僧", + ["desc"]="卡拉英雄碎片,湊齊可解鎖或升級。" + }, + [14001]={ + ["name"]="红SSR-铁锤小孩", ["desc"]="巨劍羅伯特英雄碎片,湊齊可解鎖或升級。" }, - [24001]={ - ["name"]="红SSR-铁锤小孩碎片", + [22001]={ + ["name"]="黄R黑妹", ["desc"]="阿斯克英雄碎片,湊齊可解鎖或升級。" }, - [22001]={ - ["name"]="黄R黑妹碎片", + [23001]={ + ["name"]="黄SR野蛮人", ["desc"]="艾芙琳英雄碎片,湊齊可解鎖或升級。" }, - [23001]={ - ["name"]="黄SR野蛮人碎片", + [23002]={ + ["name"]="黄SR二丫", ["desc"]="莉莉絲英雄碎片,湊齊可解鎖或升級。" }, [24001]={ - ["name"]="黄ssr巨剑碎片", + ["name"]="黄ssr巨剑", ["desc"]="白髮凱瑟琳英雄碎片,湊齊可解鎖或升級。" }, [32001]={ - ["name"]="绿R洋葱碎片", + ["name"]="绿R洋葱", ["desc"]="艾倫英雄碎片,湊齊可解鎖或升級。" }, [33001]={ - ["name"]="绿SR小鹿碎片" + ["name"]="绿SR小鹿" + }, + [33002]={ + ["name"]="绿SR森林狼" + }, + [34001]={ + ["name"]="绿SSR花木兰" }, [42001]={ - ["name"]="蓝R莉莉丝碎片" + ["name"]="蓝R莉莉丝" + }, + [43001]={ + ["name"]="蓝SR冰女" + }, + [43002]={ + ["name"]="蓝SR鸦姐" }, [44001]={ - ["name"]="蓝SSR冰刃碎片" + ["name"]="蓝SSR冰刃" }, [52001]={ - ["name"]="紫R忍者碎片" + ["name"]="紫R忍者" + }, + [53001]={ + ["name"]="紫SR女巫" + }, + [53002]={ + ["name"]="紫SR德古拉" + }, + [54001]={ + ["name"]="紫SSR蝴蝶" } } local config = { -data=item,count=27 +data=item,count=38 } return config \ No newline at end of file diff --git a/lua/app/config/strings/zh/mail.lua b/lua/app/config/strings/zh/mail.lua new file mode 100644 index 00000000..1619da6f --- /dev/null +++ b/lua/app/config/strings/zh/mail.lua @@ -0,0 +1,24 @@ +local mail = { + [1]={ + ["name"]="路邊老爺爺的饋贈" + }, + [2]={ + ["name"]="國王的日常補給" + }, + [3]={ + ["name"]="哼哼哈嘿", + ["desc"]="樂觀的人總在不經意間獲得意外之喜" + }, + [4]={ + ["name"]="仁者無敵", + ["desc"]="心地善良的人,會善有善報的" + }, + [5]={ + ["name"]="風生水起", + ["desc"]="精力充沛,運勢良好,財運連連" + } +} +local config = { +data=mail,count=5 +} +return config \ No newline at end of file diff --git a/lua/app/config/strings/zh/mail.lua.meta b/lua/app/config/strings/zh/mail.lua.meta new file mode 100644 index 00000000..6b95e3cb --- /dev/null +++ b/lua/app/config/strings/zh/mail.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 82da7c0e4ab2825488868c862fa80ec1 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/config/strings/zh/skill.lua b/lua/app/config/strings/zh/skill.lua index 79d709a9..9b09cecb 100644 --- a/lua/app/config/strings/zh/skill.lua +++ b/lua/app/config/strings/zh/skill.lua @@ -1,30 +1,66 @@ local skill = { - [3200120]={ - ["desc"]="長槍突刺:造成1次大量傷害" + [1200120]={ + + }, + [1300120]={ + + }, + [1300220]={ + + }, + [1400120]={ + }, [2200120]={ - ["desc"]="拔刀斬:造成1次大量傷害" + }, - [4200120]={ - ["desc"]="元素鏈接:隨機額外消除3個元素" + [2300120]={ + }, - [5200120]={ - ["desc"]="魔法罩:生成一個魔法罩持續1回合,可承受最大生命值10%傷害" - }, - [1200120]={ - ["desc"]="舞步消散:將左右2格元素進行消除" - }, - [3300120]={ - ["desc"]="快速治癒:立即恢復艾芙琳150%攻擊力的生命值" + [2300220]={ + }, [2400120]={ - ["desc"]="巨劍連斬:攻擊傷害增加50%,結束時使用巨劍造成大量傷害。" + + }, + [3200120]={ + + }, + [3300120]={ + + }, + [3300220]={ + + }, + [3400120]={ + + }, + [4200120]={ + + }, + [4300120]={ + + }, + [4300220]={ + }, [4400120]={ - ["desc"]="霜凍劍舞:造成1次大量傷害並給敵人1回合冰霜效果(普攻次數-2)" + + }, + [5200120]={ + + }, + [5300120]={ + + }, + [5300220]={ + + }, + [5400120]={ + } } local config = { -data=skill,count=8 +data=skill,count=20 } return config \ No newline at end of file diff --git a/lua/app/config/strings/zh/skill_rogue.lua b/lua/app/config/strings/zh/skill_rogue.lua index 1bc9ae96..f22ce8bd 100644 --- a/lua/app/config/strings/zh/skill_rogue.lua +++ b/lua/app/config/strings/zh/skill_rogue.lua @@ -130,105 +130,489 @@ local skill_rogue = { }, [44]={ ["desc"]="將場上隨機5個非紫色元素變為紫色" + }, + [1200100]={ + }, [1200101]={ - ["desc"]="舞步消散:將左右2格元素進行消除" + }, [1200102]={ - ["desc"]="舞步消散上下可多消1格" + }, [1200103]={ - ["desc"]="舞步消散使用時本次普攻傷害提升10%" + }, [1200104]={ - ["desc"]="每有1個元素連接舞步消散則本回合格擋增加2%" + + }, + [1200105]={ + + }, + [1200106]={ + + }, + [1200107]={ + + }, + [1300100]={ + + }, + [1300101]={ + + }, + [1300102]={ + + }, + [1300103]={ + + }, + [1300104]={ + + }, + [1300105]={ + + }, + [1300106]={ + + }, + [1300107]={ + + }, + [1300200]={ + + }, + [1300201]={ + + }, + [1300202]={ + + }, + [1300203]={ + + }, + [1300204]={ + + }, + [1300205]={ + + }, + [1300206]={ + + }, + [1300207]={ + + }, + [1400100]={ + + }, + [1400101]={ + + }, + [1400102]={ + + }, + [1400103]={ + + }, + [1400104]={ + + }, + [1400105]={ + + }, + [1400106]={ + + }, + [1400107]={ + + }, + [2200100]={ + }, [2200101]={ - ["desc"]="拔刀斬:卡拉可造成1次大量傷害" + }, [2200102]={ - ["desc"]="拔刀斬傷害提升" + }, [2200103]={ - ["desc"]="拔刀斬釋放時上下左右各消除1格" + }, [2200104]={ - ["desc"]="拔刀斬終結技可放2次" + + }, + [2200105]={ + + }, + [2200106]={ + + }, + [2200107]={ + + }, + [2300100]={ + + }, + [2300101]={ + + }, + [2300102]={ + + }, + [2300103]={ + + }, + [2300104]={ + + }, + [2300105]={ + + }, + [2300106]={ + + }, + [2300107]={ + + }, + [2300200]={ + + }, + [2300201]={ + + }, + [2300202]={ + + }, + [2300203]={ + + }, + [2300204]={ + + }, + [2300205]={ + + }, + [2300206]={ + + }, + [2300207]={ + + }, + [2400100]={ + }, [2400101]={ - ["desc"]="巨劍連斬:每一次攻擊的傷害將增加50%" + }, [2400102]={ - ["desc"]="巨劍連斬被連接消除其上下左右4個元素" + }, [2400103]={ - ["desc"]="巨劍連斬使用時本次普攻傷害提升20%" + }, [2400104]={ - ["desc"]="巨劍連斬被連接消除其斜方向的4個元素" + + }, + [2400105]={ + + }, + [2400106]={ + + }, + [2400107]={ + + }, + [3200100]={ + }, [3200101]={ - ["desc"]="長槍突刺:阿斯克可造成1次大量傷害" + }, [3200102]={ - ["desc"]="長槍突刺可恢復生命" + }, [3200103]={ - ["desc"]="長槍突刺傷害提升" + }, [3200104]={ - ["desc"]="長槍突刺有30%概率眩暈對手1回合" + + }, + [3200105]={ + + }, + [3200106]={ + + }, + [3200107]={ + + }, + [3300100]={ + }, [3300101]={ - ["desc"]="快速治癒:艾芙琳可恢復150%攻擊力的生命值" + }, [3300102]={ - ["desc"]="快速治癒的恢復量提升" + }, [3300103]={ - ["desc"]="快速治癒使用時本次普攻傷害提升15%" + }, [3300104]={ - ["desc"]="連接快速治癒的每一擊都將恢復生命值" + + }, + [3300105]={ + + }, + [3300106]={ + + }, + [3300107]={ + + }, + [3300200]={ + + }, + [3300201]={ + + }, + [3300202]={ + + }, + [3300203]={ + + }, + [3300204]={ + + }, + [3300205]={ + + }, + [3300206]={ + + }, + [3300207]={ + + }, + [3400100]={ + + }, + [3400101]={ + + }, + [3400102]={ + + }, + [3400103]={ + + }, + [3400104]={ + + }, + [3400105]={ + + }, + [3400106]={ + + }, + [3400107]={ + + }, + [4200100]={ + }, [4200101]={ - ["desc"]="元素鏈接:隨機額外消除3個元素" + }, [4200102]={ - ["desc"]="元素鏈接隨機消除元素增加2個" + }, [4200103]={ - ["desc"]="元素鏈接使用時本次普攻傷害提升10%" + }, [4200104]={ - ["desc"]="元素鏈接隨機消除元素增加2個" + + }, + [4200105]={ + + }, + [4200106]={ + + }, + [4200107]={ + + }, + [4300100]={ + + }, + [4300101]={ + + }, + [4300102]={ + + }, + [4300103]={ + + }, + [4300104]={ + + }, + [4300105]={ + + }, + [4300106]={ + + }, + [4300107]={ + + }, + [4300300]={ + + }, + [4300301]={ + + }, + [4300302]={ + + }, + [4300303]={ + + }, + [4300304]={ + + }, + [4300305]={ + + }, + [4300306]={ + + }, + [4300307]={ + + }, + [4400100]={ + }, [4400101]={ - ["desc"]="霜凍劍舞:造成1次傷害並施加1回合冰霜效果" + }, [4400102]={ - ["desc"]="霜凍劍舞被使用時可消除掉其上下左右4個元素" + }, [4400103]={ - ["desc"]="霜凍劍舞傷害提升" + }, [4400104]={ - ["desc"]="霜凍劍舞造成的冰霜效果將持續2回合" + + }, + [4400105]={ + + }, + [4400106]={ + + }, + [4400107]={ + + }, + [5200100]={ + }, [5200101]={ - ["desc"]="魔法罩:艾倫可生成一個魔法罩持續1回合" + }, [5200102]={ - ["desc"]="增加魔法罩承受傷害增加。" + }, [5200103]={ - ["desc"]="生成的魔法罩如果沒有破可以額外持續1回合" + }, [5200104]={ - ["desc"]="魔法罩存在時可反傷對方造成200%傷害" + + }, + [5200105]={ + + }, + [5200106]={ + + }, + [5200107]={ + + }, + [5300100]={ + + }, + [5300101]={ + + }, + [5300102]={ + + }, + [5300103]={ + + }, + [5300104]={ + + }, + [5300105]={ + + }, + [5300106]={ + + }, + [5300107]={ + + }, + [5300200]={ + + }, + [5300201]={ + + }, + [5300202]={ + + }, + [5300203]={ + + }, + [5300204]={ + + }, + [5300205]={ + + }, + [5300206]={ + + }, + [5300207]={ + + }, + [5400100]={ + + }, + [5400101]={ + + }, + [5400102]={ + + }, + [5400103]={ + + }, + [5400104]={ + + }, + [5400105]={ + + }, + [5400106]={ + + }, + [5400107]={ + } } local config = { -data=skill_rogue,count=76 +data=skill_rogue,count=204 } return config \ No newline at end of file diff --git a/lua/app/config/struct.lua b/lua/app/config/struct.lua index 524ca5be..fa049262 100644 --- a/lua/app/config/struct.lua +++ b/lua/app/config/struct.lua @@ -28,9 +28,16 @@ local struct = { ["parameter1"]="type:string", ["parameter2"]="minnum:int", ["parameter3"]="maxnum:int" + }, + ["condition"]={ + ["parameter1"]="type:string", + ["parameter2"]="attr:string", + ["parameter3"]="op:string", + ["parameter4"]="v:int", + ["parameter5"]="side:int" } } local config = { -data=struct,count=6 +data=struct,count=7 } return config \ No newline at end of file diff --git a/lua/app/config/task.lua b/lua/app/config/task.lua index d08c8c9d..5c2df6be 100644 --- a/lua/app/config/task.lua +++ b/lua/app/config/task.lua @@ -6,10 +6,10 @@ local task = { { ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=5, - ["id_for_nothing"]="Uw==", - ["num"]=10, - ["num_for_nothing"]="Vwg=" + ["id"]=17, + ["id_for_nothing"]="Vw8=", + ["num"]=1, + ["num_for_nothing"]="Vw==" } }, ["icon"]="1" @@ -21,10 +21,10 @@ local task = { { ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=5, - ["id_for_nothing"]="Uw==", - ["num"]=10, - ["num_for_nothing"]="Vwg=" + ["id"]=16, + ["id_for_nothing"]="Vw4=", + ["num"]=1, + ["num_for_nothing"]="Vw==" } }, ["icon"]="20" diff --git a/lua/app/global/global_const.lua b/lua/app/global/global_const.lua index f6b08ff4..604347bd 100644 --- a/lua/app/global/global_const.lua +++ b/lua/app/global/global_const.lua @@ -13,6 +13,7 @@ local CONST_PATHS = { HeroConst = "app/module/hero/hero_const", FormationConst = "app/module/formation/formation_const", ShopConst = "app/module/shop/shop_const", + MailConst = "app/module/mail/mail_const", } if EDITOR_MODE then @@ -182,6 +183,7 @@ GConst.ATLAS_PATH = { BOUNTY = "assets/arts/atlas/ui/bounty.asset", UI_SETTING = "assets/arts/atlas/ui/setting.asset", ICON_TASK = "assets/arts/atlas/icon/task.asset", + SHOP = "assets/arts/atlas/ui/shop.asset", } GConst.TOUCH_EVENT = { diff --git a/lua/app/global/global_func.lua b/lua/app/global/global_func.lua index 6d71a863..e14914f0 100644 --- a/lua/app/global/global_func.lua +++ b/lua/app/global/global_func.lua @@ -1,6 +1,8 @@ local GFunc = {} local EMPTY_TABLE = {} +local TEMP_LIST = {} +local TEMP_MAP = {} local HASH_SEED = 31 local UINT_RANGE = 4294967296 local byte = string.byte @@ -578,7 +580,7 @@ function GFunc.showItemNotEnough(itemId) end end -function GFunc.checkCost(id, num, showToast, giftType) +function GFunc.checkCost(id, num, showToast) if num <= 0 then return true end @@ -1647,6 +1649,32 @@ function GFunc.intToString(int) return GConst.INT_TO_STRING[int] or tostring(int) end +function GFunc.getTempList() + for i = 1, #TEMP_LIST do + table.remove(TEMP_LIST) + end + return TEMP_LIST +end + +function GFunc.recycleTempList() + for i = 1, #TEMP_LIST do + table.remove(TEMP_LIST) + end +end + +function GFunc.getTempMap() + for k, v in pairs(TEMP_MAP) do + TEMP_MAP[k] = nil + end + return TEMP_MAP +end + +function GFunc.recycleTempMap() + for k, v in pairs(TEMP_MAP) do + TEMP_MAP[k] = nil + end +end + --[[ 设置tabLe只速 出现改写会抛出Lua error 用法locaL readOnlyCfg = GFunc.readOnlyTab(cfg) return readOnlyCfg diff --git a/lua/app/module/battle/battle_const.lua b/lua/app/module/battle/battle_const.lua index f2700b28..40610180 100644 --- a/lua/app/module/battle/battle_const.lua +++ b/lua/app/module/battle/battle_const.lua @@ -189,17 +189,36 @@ BattleConst.EFFECT_TYPE = { COUNTERATTACK = 301, -- 反击 } +---- 特殊的伤害类型,其余都是buffname +BattleConst.SPECIAL_DAMAGE_OR_CURE_TYPE = { + ROUND_BEGIN_HEAL = "round_begin_heal", + KILL_MAX_ELEMENT_AND_HEAL = "kill_max_element_and_heal", +} + BattleConst.SKILL_RECORD_DATA_NAME = { HP_LOWER_THAN = 1 } +BattleConst.SKILL_CONDITION_TYPE = { + STATE = "state", -- 状态 + ATTR = "attr", -- 属性 +} + +BattleConst.SKILL_CONDITION_REL_TYPE = { + AND = 1, + OR = 2, +} + BattleConst.PASSIVE_EVENT = { ON_UNIT_PREPARE_OVER = 2, -- 新单位出场时 ON_UNI_ATTACK_START = 3, -- 攻击开始前 HP_LOWER_THAN = 4, -- 血量低于X% USE_NORMAL_SKILL = 5, -- 使用普攻 ACTIVE_SKILL_HIT = 6, -- 主动技能命中 - ON_DEAD = 7, -- 死亡时 + ON_ACTIVE_SKILL_BEFORE = 7, -- 主动技能释放前 + ON_DEAD_BY_BURN = 8, -- 有敌人死于灼烧伤害时触发 + ON_DEAD_BY_SKILL = 9, -- 有敌人死于技能时触发 + ON_DEAD = 10, -- 死亡时 } local BUFF_NAME = { @@ -377,6 +396,7 @@ BattleConst.GRID_EFFECT_TYPE = { DIRECTION_ELIMINATION = 1, CROSS_SPREAD = 2, SELECT_COMMON_SKILL = 3, + REWARD_BOX = 4, } BattleConst.GRID_EFFECT_TRIGGER_TYPE = { @@ -674,6 +694,8 @@ BattleConst.SKILL_TYPE = { RANDOM_KILL_ROW_OR_COLUMN = 8, KILL_MAX_ELEMENT_AND_HEAL = 9, KILL_ROW_AND_COLUMN = 10, + ADD_SKILL_ENERGY = 11, + CHANGE_ELEMENT_TYPE = 12, } BattleConst.ATTACK_OVER_ACTIVE_SKILL_TYPE = { @@ -684,6 +706,8 @@ BattleConst.ATTACK_OVER_ACTIVE_SKILL_TYPE = { [BattleConst.SKILL_TYPE.RANDOM_KILL_ROW_OR_COLUMN] = true, [BattleConst.SKILL_TYPE.KILL_MAX_ELEMENT_AND_HEAL] = true, [BattleConst.SKILL_TYPE.KILL_ROW_AND_COLUMN] = true, + [BattleConst.SKILL_TYPE.ADD_SKILL_ENERGY] = true, + [BattleConst.SKILL_TYPE.CHANGE_ELEMENT_TYPE] = true, } BattleConst.SKILL_METHOD_TYPE = { @@ -711,4 +735,15 @@ BattleConst.LINE_SFX = "assets/prefabs/effects/battle/sfx_piece_line_b01.prefab" BattleConst.CHANGE_ELEMENT_SFX = "assets/prefabs/effects/battle/sfx_skill_b02.prefab" BattleConst.LINK_SMOKE = "assets/prefabs/effects/battle/sfx_piece_smoke_b01.prefab" +BattleConst.BATTLE_TASK_FIELD = { + SKILL_BOX_OPEN = "skill_box", -- 技能宝箱打开次数(神灯) + KILL_BOSS = "kills_boss", -- boss击杀数量 + KILL_NORMAL_MONSTER = "kills_monster", -- 击杀小怪数量 + ELIMINATION_COUNT = "clear_elements", -- 累计消除元素个数 + LINK_COUNT_OVER_6 = "clear_6_combo", -- 6连消个数 + LINK_COUNT_OVER_8 = "clear_8_combo", -- 8连消个数 + COMBO_OVER_10 = "clear_10_hit", -- 10连击以上次数 + BOARD_SKILL_RELEASE_COUNT = "skills_cast", -- 释放技能次数 +} + return BattleConst \ No newline at end of file diff --git a/lua/app/module/battle/battle_manager.lua b/lua/app/module/battle/battle_manager.lua index cc4328c2..f87d74d3 100644 --- a/lua/app/module/battle/battle_manager.lua +++ b/lua/app/module/battle/battle_manager.lua @@ -14,8 +14,8 @@ function BattleManager:showPauseUI() UIManager:showUI("app/ui/battle/battle_pause_ui") end -function BattleManager:showBattleResultUI(rewards, combatReport) - UIManager:showUI("app/ui/battle/battle_result_ui", {rewards = rewards, combatReport = combatReport}) +function BattleManager:showBattleResultUI(rewards, combatReport, mysteryBoxIdx) + UIManager:showUI("app/ui/battle/battle_result_ui", {rewards = rewards, combatReport = combatReport, mysteryBoxIdx = mysteryBoxIdx}) end function BattleManager:playBattle(battleType, params, returnFunc) diff --git a/lua/app/module/battle/component/battle_unit_comp.lua b/lua/app/module/battle/component/battle_unit_comp.lua index 2d02f26d..8297dcb7 100644 --- a/lua/app/module/battle/component/battle_unit_comp.lua +++ b/lua/app/module/battle/component/battle_unit_comp.lua @@ -2,6 +2,7 @@ local BattleConst = require "app/module/battle/battle_const" local BattleHelper = require "app/module/battle/helper/battle_helper" local BattleBuffHandle = require "app/module/battle/helper/battle_buff_handle" local BATTLE_BOARD_SKILL_HANDLE = require "app/module/battle/skill/battle_board_skill_handle" +local BATTLE_SKILL_CONDITION_HANDLE = require "app/module/battle/helper/battle_skill_condition_handle" local BattlePassive = require "app/module/battle/helper/battle_passive" local BattleUnitComp = class("BattleUnitComp", LuaComponent) @@ -82,6 +83,8 @@ function BattleUnitComp:_initBase() self.skillSlowDownScale = 1 -- 子弹时间减慢的倍率 self.currAttackDuration = 0 self.currAttackKeyTime = 0 + self.currAttackBlockIndex = 0 -- 多段伤害索引 + self.validEffectIdx = {} self.switchTime = 0 self.isPlayHurt = 0 self.attackDurationMap = {} @@ -254,6 +257,30 @@ function BattleUnitComp:getAnimationKeyFrameTime(animationName) return time end +function BattleUnitComp:getKeyFrameTime(skill, blockIndex, animationName) + self.validEffectIdx[1] = 1 + self.validEffectIdx[2] = 1 + if not skill then + return 0 + end + + self.currAttackBlockIndex = blockIndex + local time = skill:getEffectBlockTime()[blockIndex] + if not time then + if blockIndex == 1 then + time = self:getAnimationKeyFrameTime(animationName) + else + time = 0 + end + else + local blockList = skill:getEffectBlock() + local beforeIndex = blockIndex - 1 + self.validEffectIdx[1] = blockList[beforeIndex] or 1 + self.validEffectIdx[2] = blockList[blockIndex] or 1 + end + return time +end + function BattleUnitComp:getIsCentralizedAttack() return self.team:getCentralizedAttack() end @@ -335,6 +362,9 @@ function BattleUnitComp:useSkill(index, count, callback) if self.isOutside then self:playSwitchIn() else + if count <= 0 then + self:checkPassiveEvent(PASSIVE_EVENT.ON_ACTIVE_SKILL_BEFORE, self) + end if not self:changeState(UNIT_STATE.SKILL_ATTACK) then self.actionOverCallback = nil self.battleController:setIsPauseHpProgress(false) @@ -460,8 +490,6 @@ function BattleUnitComp:changeState(state) self:enterAssistingAttackState() elseif state == UNIT_STATE.DEAD then self:enterDeadState() - elseif state == UNIT_STATE.BORN then - self:enterBornState() elseif state == UNIT_STATE.ENTER_BATTLEFIELD then self:enterEnterBattlefieldState() elseif state == UNIT_STATE.SWITCH_IN then @@ -490,6 +518,7 @@ function BattleUnitComp:updateSwitchInState(dt) if self.switchTime < 0 then if self.actionOverCallback then if self.currActiveSkill then + self:checkPassiveEvent(PASSIVE_EVENT.ON_ACTIVE_SKILL_BEFORE, self) if not self:changeState(UNIT_STATE.SKILL_ATTACK) then local callback = self.actionOverCallback self.actionOverCallback = nil @@ -667,7 +696,7 @@ function BattleUnitComp:updateRecoverHpWaveState(dt) if healNum < 0 then -- 治疗效果不能为负数 healNum = 0 end - self:takeDamageOrCure(self, healNum, EFFECT_TYPE.HEAL, 0) + self:takeDamageOrCure(self, healNum, EFFECT_TYPE.HEAL, 0, BattleConst.SPECIAL_DAMAGE_OR_CURE_TYPE.ROUND_BEGIN_HEAL) if self.recoverHpCount <= 0 then if self.finishRecoverHpCallback then local callback = self.finishRecoverHpCallback @@ -700,7 +729,7 @@ function BattleUnitComp:enterAssistingAttackState() skill:startUse() local attackName = skill:getSkillAttackName() self.currAttackDuration = self:getAnimationDuration(attackName) - self.currAttackKeyTime = self:getAnimationKeyFrameTime(attackName) + self.currAttackKeyTime = self:getKeyFrameTime(skill, 1, attackName) self:playAnimation(attackName, false, false) self:playSkillFx(skill) self:initPosition() @@ -723,9 +752,14 @@ function BattleUnitComp:updateAssistingAttackState(dt) self:onAttackOver() else if self.currAttackKeyTime > 0 and self.attackTime >= self.currAttackKeyTime then -- 到达关键后使用 - self.currAttackKeyTime = 0 local skill = self.unitEntity:getAssistingSkill() - self:onSkillTakeEffect(skill) + if skill then + local attackName = skill:getSkillAttackName() + self.currAttackKeyTime = self:getKeyFrameTime(skill, self.currAttackBlockIndex + 1, attackName) + else + self.currAttackKeyTime = 0 + end + self:onSkillTakeEffect(skill, self.currAttackKeyTime <= 0, self.validEffectIdx) end end end @@ -768,7 +802,7 @@ function BattleUnitComp:enterSkillAttackState() self:attackAndSpeedUp() end self.currAttackDuration = self:getAnimationDuration(attackName) - self.currAttackKeyTime = self:getAnimationKeyFrameTime(attackName) + self.currAttackKeyTime = self:getKeyFrameTime(skill, 1, attackName) self:playAnimation(attackName, false, false) self:playSkillFx(skill) end @@ -822,6 +856,7 @@ function BattleUnitComp:updateSkillAttack(dt) else self.currActiveSkill:startUse() self:doNextSkillAttack() + self:checkPassiveEvent(PASSIVE_EVENT.ON_ACTIVE_SKILL_BEFORE, self) end else -- 继续普攻 self:doNextNormalAttack() @@ -849,6 +884,11 @@ function BattleUnitComp:updateSkillAttack(dt) else self:onAttackOver() end + + local target = self.battleController:getOtherSideMainUnit(self.side) + if target and target.unitEntity:getIsDead() then + self:checkPassiveEvent(PASSIVE_EVENT.ON_DEAD_BY_SKILL, self) + end return else self.currActiveSkill = currActiveSkill @@ -857,23 +897,34 @@ function BattleUnitComp:updateSkillAttack(dt) end else if self.currAttackKeyTime > 0 and self.attackTime >= self.currAttackKeyTime then -- 到达关键后使用 - self.currAttackKeyTime = 0 if self.normalSkillCount > 0 then - if self.normalSkillCount == 1 and self.currActiveSkill == nil then -- 最后一次攻击 + local skill = self.unitEntity:getNormalSkill() + if skill then + local attackName = skill:getSkillAttackName() + self.currAttackKeyTime = self:getKeyFrameTime(skill, self.currAttackBlockIndex + 1, attackName) + else + self.currAttackKeyTime = 0 + end + local isFinalBlock = self.currAttackKeyTime <= 0 + + if self.normalSkillCount == 1 and self.currActiveSkill == nil and isFinalBlock then -- 最后一次攻击 self.team:setCentralizedAttack(false) end - local skill = self.unitEntity:getNormalSkill() - self:onSkillTakeEffect(skill) - if self.normalSkillCount == 1 and self.currActiveSkill == nil then -- 最后一次攻击 + self:onSkillTakeEffect(skill, self.currAttackKeyTime <= 0, self.validEffectIdx) + if self.normalSkillCount == 1 and self.currActiveSkill == nil and isFinalBlock then -- 最后一次攻击 self.battleController:setIsPauseHpProgress(false) end else + local attackName = self.currActiveSkill:getSkillAttackName() + self.currAttackKeyTime = self:getKeyFrameTime(self.currActiveSkill, self.currAttackBlockIndex + 1, attackName) + local isFinalBlock = self.currAttackKeyTime <= 0 local isHaveNextAttack = self:getIsHaveNextAvailableActiveSkill() - if not isHaveNextAttack then + if not isHaveNextAttack and isFinalBlock then self.team:setCentralizedAttack(false) end - self:onSkillTakeEffect(self.currActiveSkill) - if not isHaveNextAttack then + + self:onSkillTakeEffect(self.currActiveSkill, isFinalBlock, self.validEffectIdx) + if not isHaveNextAttack and isFinalBlock then self.battleController:setIsPauseHpProgress(false) end end @@ -944,7 +995,7 @@ function BattleUnitComp:doNextSkillAttack() end local attackName = self.currActiveSkill:getSkillAttackName() self.currAttackDuration = self:getAnimationDuration(attackName) - self.currAttackKeyTime = self:getAnimationKeyFrameTime(attackName) + self.currAttackKeyTime = self:getKeyFrameTime(self.currActiveSkill, 1, attackName) self:playAnimation(attackName, false, false) self:playSkillFx(self.currActiveSkill) self.battleController:resetTimeSpeed() @@ -957,7 +1008,7 @@ function BattleUnitComp:doNextNormalAttack() skill:startUse() local attackName = skill:getSkillAttackName() self.currAttackDuration = self:getAnimationDuration(attackName) - self.currAttackKeyTime = self:getAnimationKeyFrameTime(attackName) + self.currAttackKeyTime = self:getKeyFrameTime(skill, 1, attackName) self:playAnimation(attackName, false, false) self:playSkillFx(skill) self:attackAndSpeedUp() @@ -973,7 +1024,7 @@ function BattleUnitComp:doNextAttack() attackName = skill:getSkillAttackName() if attackName then self.currAttackDuration = self:getAnimationDuration(attackName) - self.currAttackKeyTime = self:getAnimationKeyFrameTime(attackName) + self.currAttackKeyTime = self:getKeyFrameTime(skill, 1, attackName) self:playAnimation(attackName, false, false) self:playSkillFx(skill) self:attackAndSpeedUp() @@ -993,7 +1044,7 @@ function BattleUnitComp:doNextAttack() attackName = self.currActiveSkill:getSkillAttackName() if attackName then self.currAttackDuration = self:getAnimationDuration(attackName) - self.currAttackKeyTime = self:getAnimationKeyFrameTime(attackName) + self.currAttackKeyTime = self:getKeyFrameTime(self.currActiveSkill, 1, attackName) self:playAnimation(attackName, false, false) self:playSkillFx(self.currActiveSkill) self.battleController:resetTimeSpeed() @@ -1026,7 +1077,7 @@ function BattleUnitComp:enterNormalAttackState() self.isMove = false local attackName = skill:getSkillAttackName() self.currAttackDuration = self:getAnimationDuration(attackName) - self.currAttackKeyTime = self:getAnimationKeyFrameTime(attackName) + self.currAttackKeyTime = self:getKeyFrameTime(skill, 1, attackName) self:playAnimation(attackName, false, false) self:playSkillFx(skill) self:attackAndSpeedUp() @@ -1069,13 +1120,20 @@ function BattleUnitComp:updateNormalAttack(dt) end else if self.currAttackKeyTime > 0 and self.attackTime >= self.currAttackKeyTime then -- 到达关键后使用 - self.currAttackKeyTime = 0 - if self.normalSkillCount == 1 then -- 如果是最后一次攻击,那么敌人受到这次攻击可以开始嗝屁了 + local skill = self.unitEntity:getNormalSkill() + if skill then + local attackName = skill:getSkillAttackName() + self.currAttackKeyTime = self:getKeyFrameTime(skill, self.currAttackBlockIndex + 1, attackName) + else + self.currAttackKeyTime = 0 + end + + local isFinalBlock = self.currAttackKeyTime <= 0 + if self.normalSkillCount == 1 and isFinalBlock then -- 如果是最后一次攻击,那么敌人受到这次攻击可以开始嗝屁了 self.team:setCentralizedAttack(false) end - local skill = self.unitEntity:getNormalSkill() - self:onSkillTakeEffect(skill) - if self.normalSkillCount == 1 then -- 如果是最后一次攻击,那么可以开始跑血条了 + self:onSkillTakeEffect(skill, isFinalBlock, self.validEffectIdx) + if self.normalSkillCount == 1 and isFinalBlock then -- 如果是最后一次攻击,那么可以开始跑血条了 self.battleController:setIsPauseHpProgress(false) end end @@ -1093,6 +1151,10 @@ function BattleUnitComp:addBuff(buffEffect) return self.team:addBuff(buffEffect) end +function BattleUnitComp:getBuffCountByName(buffName) + return self.team:getBuffCountByName(buffName) +end + function BattleUnitComp:updateBuffState(buff, num) self.team:updateBuffState(buff, num) end @@ -1117,11 +1179,17 @@ function BattleUnitComp:popCacheBuffByDecr(buffDecr) self.team:popCacheBuffByDecr(buffDecr) end -function BattleUnitComp:onSkillTakeEffect(skill) - skill:endUse() - if skill:isAttackOverActive() then - BATTLE_BOARD_SKILL_HANDLE.activeAttackOverSkill(self, skill, self.battleController) +function BattleUnitComp:onSkillTakeEffect(skill, isFinalBlock, validEffectIdx) + if isFinalBlock == nil then + isFinalBlock = true end + if isFinalBlock then + skill:endUse() + if skill:isAttackOverActive() then + BATTLE_BOARD_SKILL_HANDLE.activeAttackOverSkill(self, skill, self.battleController) + end + end + local effectList = skill:getEffectList() if effectList == nil then return @@ -1129,6 +1197,9 @@ function BattleUnitComp:onSkillTakeEffect(skill) if #effectList == 0 then return end + if not validEffectIdx then + validEffectIdx = {1, 1} + end local targetType = skill:getTargetType() local target if targetType == 1 then -- 自己 @@ -1147,19 +1218,26 @@ function BattleUnitComp:onSkillTakeEffect(skill) local succ = false for k, effect in ipairs(effectList) do - if self:takeEffect(effect, target) then - succ = true + if k >= validEffectIdx[1] and k <= validEffectIdx[2] then + if self:judgeSkillEffectCondition(skill, k) then + if self:takeEffect(effect, target) then + succ = true + end + end end end if succ then if skill:getIsHurtType() then self.team:addCombo() end - if skill:getIsNormalType() then -- 普攻攻击成功的话 - self:checkPassiveEvent(PASSIVE_EVENT.USE_NORMAL_SKILL, target) - elseif skill:getIsActiveType() then - self:checkPassiveEvent(PASSIVE_EVENT.ACTIVE_SKILL_HIT, target) + if isFinalBlock then + if skill:getIsNormalType() then -- 普攻攻击成功的话 + self:checkPassiveEvent(PASSIVE_EVENT.USE_NORMAL_SKILL, target) + elseif skill:getIsActiveType() then + self:checkPassiveEvent(PASSIVE_EVENT.ACTIVE_SKILL_HIT, target) + end end + local shakeType = skill:getShakeType() if shakeType then local shakeTime = skill:getShakeTime() or 0 @@ -1174,6 +1252,17 @@ function BattleUnitComp:onSkillTakeEffect(skill) end end +function BattleUnitComp:judgeSkillEffectCondition(skill, index) + if not skill then + return true + end + + local buffConditions = skill:getBuffCondition(index) + local conditionRel = skill:getBuffConditionRel(index) + + return BATTLE_SKILL_CONDITION_HANDLE.judgeSkillEffectCondition(buffConditions, conditionRel, self.battleController) +end + function BattleUnitComp:takeEffect(buff, target) local ratio = buff:getRatio() if ratio < DEFAULT_FACTOR then @@ -1269,7 +1358,7 @@ function BattleUnitComp:removeEffect(buff, target) end end -function BattleUnitComp:takeDamageOrCure(atker, num, effectType, effectStatus) +function BattleUnitComp:takeDamageOrCure(atker, num, effectType, effectStatus, damageOrCureType) if self:getIsClear() then return 0 end @@ -1327,16 +1416,16 @@ function BattleUnitComp:takeDamageOrCure(atker, num, effectType, effectStatus) end if effectType == EFFECT_TYPE.DIRECT then if hp > 0 and self.unitEntity:getShieldRebound() then -- 伤害反弹 - atker:takeDamageOrCure(self, num*self.unitEntity:getShieldRebound() // DEFAULT_FACTOR, EFFECT_TYPE.REBOUND, 0) + atker:takeDamageOrCure(self, num*self.unitEntity:getShieldRebound() // DEFAULT_FACTOR, EFFECT_TYPE.REBOUND, 0, BattleConst.BUFF_NAME.SHIELD_REBOUND_200) end if self.unitEntity:getBeSucked() > 0 then -- 吸血 - atker:takeDamageOrCure(self, -num*self.unitEntity:getBeSucked() // DEFAULT_FACTOR, EFFECT_TYPE.HEAL, 0) + atker:takeDamageOrCure(self, -num*self.unitEntity:getBeSucked() // DEFAULT_FACTOR, EFFECT_TYPE.HEAL, 0, BattleConst.ATTR_NAME.BE_SUCKED) end if self.unitEntity:getIsLethargy() then -- 移除昏睡 self:removeBuffByName(BattleConst.BUFF_NAME.LETHARGY) end if self.unitEntity:getThorns() > 0 then -- 反伤 - atker:takeDamageOrCure(self, num*self.unitEntity:getThorns() // DEFAULT_FACTOR, EFFECT_TYPE.REBOUND, 0) + atker:takeDamageOrCure(self, num*self.unitEntity:getThorns() // DEFAULT_FACTOR, EFFECT_TYPE.REBOUND, 0, BattleConst.BUFF_NAME.THORNS) end if self.unitEntity:getCounterAttack() > 0 then -- 触发反击 local counterattack = self.unitEntity:getCounterAttack() @@ -1357,10 +1446,15 @@ function BattleUnitComp:takeDamageOrCure(atker, num, effectType, effectStatus) else if self.unitEntity:getIsDead() then self:changeState(UNIT_STATE.DEAD) + if damageOrCureType == BattleConst.BUFF_NAME.BURN then + local target = self.battleController:getOtherSideMainUnit(self.side) + target:checkPassiveEvent(BattleConst.PASSIVE_EVENT.ON_DEAD_BY_BURN, target) + end elseif damage < 0 and self.currState == UNIT_STATE.IDLE then self:playHurt() end end + if hp > 0 then self.team:checkPassiveEvent(PASSIVE_EVENT.HP_LOWER_THAN, atker, hpPercent) else diff --git a/lua/app/module/battle/controller/battle_controller.lua b/lua/app/module/battle/controller/battle_controller.lua index c631a5bc..6501cf6c 100644 --- a/lua/app/module/battle/controller/battle_controller.lua +++ b/lua/app/module/battle/controller/battle_controller.lua @@ -9,6 +9,7 @@ local BattleController = class("BattleController") local BATTLE_BOARD_SKILL_HANDLE = require "app/module/battle/skill/battle_board_skill_handle" local BATTLE_ROGUE_SKILL_HANDLE = require "app/module/battle/skill/battle_rogue_skill_handle" local BATTLE_GRID_EFFECT_HANDLE = require "app/module/battle/skill/battle_grid_effect_handle" +local BATTLE_INSTRUCTIONS_HELPER = require "app/module/battle/helper/battle_instructions_helper" local BattleBuffHandle = require "app/module/battle/helper/battle_buff_handle" local ELIMINATION_TOUCH_EVENT = GConst.ELIMINATION_TOUCH_EVENT @@ -102,7 +103,6 @@ function BattleController:onLinkChange() local sequence = self.battleData:getGridSequence() local mainElementType - local boomGridIds = {} for index, info in ipairs(sequence) do local entity = self.battleData:getGridEntity(info.posId) @@ -111,10 +111,6 @@ function BattleController:onLinkChange() if not skillId then mainElementType = entity:getElementType() break - else - local skillEntity = self.battleData:getSkillEntityBySkillId(skillId) - mainElementType = entity:getElementType(skillEntity) - break end end end @@ -203,6 +199,7 @@ function BattleController:init(params) self.eliminateCount = 0 self.eliminateTotalCount = 0 self.realTime = 0 + self.taskProgress = {} self.chapterId = self:getChapterId() self.waveIndex = 0 @@ -211,6 +208,8 @@ function BattleController:init(params) self.roundStep = BattleConst.BATTLE_ROUND_STEP.WAIT_BEGIN self.effectTexts = {} self.instructions = {} + self.gotMysteryBoxIndexs = {} + self.showMysteryBoxIndexs = {} self.delayEffectTextList = {} self.delayEffectTextCount = 0 self.time = 0 @@ -417,6 +416,14 @@ function BattleController:enterNextWave() return end + if self.waveIndex ~= 0 then + if self.isBossWave then + self:addTaskProgress(BattleConst.BATTLE_TASK_FIELD.KILL_BOSS, 1) + else + self:addTaskProgress(BattleConst.BATTLE_TASK_FIELD.KILL_NORMAL_MONSTER, 1) + end + end + if self.waveIndex >= self.maxWaveIndex then self.victory = true self:postWaveOver(false) @@ -871,6 +878,7 @@ function BattleController:onLinkOver() local skillEntity if skillId then skillEntity = self.battleData:getSkillEntityBySkillId(skillId) + self:addTaskProgress(BattleConst.BATTLE_TASK_FIELD.BOARD_SKILL_RELEASE_COUNT, 1) end local aniSequence, influenceElementTypeMap, lineCount, elementTypeMap, linkElementType, effectGridMap = self:calculateCurElimination() @@ -931,10 +939,10 @@ function BattleController:calculateCurElimination(onlyCheck) local entity = gridEntities[info.posId] local elementType = entity:getElementType() if not info.noAni and info.isIdle then - elementTypeMap[elementType] = (elementTypeMap[elementType] or 0) + 1 - if boomGridIds[info.posId] and boomGridIds[info.posId][GRID_BREAK_CONDITION.LINE] then - lineCount = lineCount + 1 - if not info.isSkill then + if not info.isSkill then + elementTypeMap[elementType] = (elementTypeMap[elementType] or 0) + 1 + if boomGridIds[info.posId] and boomGridIds[info.posId][GRID_BREAK_CONDITION.LINE] then + lineCount = lineCount + 1 linkElementType = elementType end end @@ -1003,6 +1011,12 @@ function BattleController:dealGridBreak(posId, condition, time, breakedMap, sequ end end end + if entity:getBreakFlyToCharacter() then + aniUnit.breakFlyToCharacter = true + aniUnit.noAni = false + aniUnit.overCallback = aniUnit.callback + aniUnit.callback = nil + end end return isIdle @@ -1122,186 +1136,46 @@ function BattleController:fillBoard(isRoundBeginCheck) end function BattleController:onFillBoardOver(isRoundBeginCheck) - if not isRoundBeginCheck and self.battleData:useCommonSelectSkillCount() then - self:tryShowSelectSkillComp(false, true) - else - if self.onFillBoardOverCallback then - self.onFillBoardOverCallback() + self.battleUI:enableUITouch() + + if not isRoundBeginCheck then -- 检查一些表现 + if self.showMysteryBoxIndexs[1] then -- 检查宝箱 + local index = table.remove(self.showMysteryBoxIndexs, 1) + local boardList, _, mysteryBoxIndexMap = self:getInitBoard() + local rewards = mysteryBoxIndexMap[index] + ModuleManager.TipsManager:showRewardsTips(rewards, nil, nil, function() + self:onFillBoardOver() + end) + return end - if isRoundBeginCheck then - EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.BOARD_FILL_OVER) - self:popBoardCacheSkill(function() - self:enterElimination(true) - end) - else - self:generateSkill(function() - self.battleUI:refreshSkill() - self:enterBattleStep() - end) + if self.battleData:useCommonSelectSkillCount() then -- 检查神灯 + self:tryShowSelectSkillComp(false, true) + return end end - self.battleUI:enableUITouch() + + if self.onFillBoardOverCallback then + self.onFillBoardOverCallback() + end + + if isRoundBeginCheck then + EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.BOARD_FILL_OVER) + self:popBoardCacheSkill(function() + self:generateSkill(function() + self:enterElimination(true) + end) + end) + else + self:generateSkill(function() + self.battleUI:refreshSkill() + self:enterBattleStep() + end) + end end function BattleController:generateInstructions(skillEntity, elementType, lineCount, influenceElementTypeMap, elementTypeMap) - local elementTypeCount = 0 - -- local assistingList = nil - ---- 援助 - for element, count in pairs(elementTypeMap) do - -- if element == elementType then - elementTypeCount = elementTypeCount + count - -- else - -- if assistingList == nil then - -- assistingList = {} - -- end - -- local obj = { - -- count = count, - -- skillMatch = element, - -- } - -- table.insert(assistingList, obj) - -- end - end - - ---- 技能 - if skillEntity then - if elementType == skillEntity:getPosition() then - table.insert(self.instructions, { - name = BattleConst.INSTRUCTION_NAME.PLAY_SKILL, - skillMatch = elementType, - count = elementTypeCount, - }) - else - if skillEntity:getEffect() ~= nil then - table.insert(self.instructions, { - name = BattleConst.INSTRUCTION_NAME.PLAY_SKILL, - skillMatch = skillEntity:getPosition(), - count = 0, - }) - end - if elementTypeCount > 0 then - table.insert(self.instructions, { - name = BattleConst.INSTRUCTION_NAME.GENERAL_ATTACK, - skillMatch = elementType, - count = elementTypeCount, - }) - end - end - else - ---- 普攻 - if elementTypeCount > 0 then - table.insert(self.instructions, { - name = BattleConst.INSTRUCTION_NAME.GENERAL_ATTACK, - skillMatch = elementType, - count = elementTypeCount, - }) - end - end - - -- if assistingList then - -- table.insert(self.instructions, { - -- name = BattleConst.INSTRUCTION_NAME.ASSISTING, - -- assistingList = assistingList, - -- }) - -- end - - ---- 加buff - if skillEntity then - local eliminateEffects = skillEntity:getEliminateEffects(self) - if eliminateEffects then - local effectList - for _, buffEntity in ipairs(eliminateEffects) do - if not effectList then - effectList = {} - end - table.insert(effectList, buffEntity) - end - if effectList then - local unit = { - name = BattleConst.INSTRUCTION_NAME.ADD_CUR_ROUND_ATTR, - effectList = effectList - } - table.insert(self.instructions, unit) - end - end - if skillEntity:getLinkEffects() and elementType then - local effectList - for type, buffEntities in pairs(skillEntity:getLinkEffects()) do - local buffEntity = buffEntities[elementType] - if buffEntity then - if not effectList then - effectList = {} - end - table.insert(effectList, buffEntity) - end - end - if effectList then - local unit = { - name = BattleConst.INSTRUCTION_NAME.ADD_CUR_ROUND_ATTR, - effectList = effectList - } - table.insert(self.instructions, unit) - end - end - - if skillEntity:getInInfluenceEffects() and influenceElementTypeMap then - for influenceElementType , _ in pairs(influenceElementTypeMap) do - local effectList - for type, buffEntities in pairs(skillEntity:getInInfluenceEffects()) do - local buffEntity = buffEntities[influenceElementType] - if buffEntity then - if not effectList then - effectList = {} - end - table.insert(effectList, buffEntity) - end - end - if effectList then - table.insert(self.instructions, { - name = BattleConst.INSTRUCTION_NAME.ADD_CUR_ROUND_ATTR, - effectList = effectList - }) - end - end - end - - if skillEntity:getElementCountEffect() and elementType then - local effectList - for type, buffEntities in pairs(skillEntity:getElementCountEffect()) do - local originBuffEntity = buffEntities.origin - local useBuffEntity = buffEntities.use - if not effectList then - effectList = {} - end - local newNum = originBuffEntity:getEffectNum() * lineCount - useBuffEntity:setEffectNum(newNum) - table.insert(effectList, useBuffEntity) - end - if effectList then - table.insert(self.instructions, { - name = BattleConst.INSTRUCTION_NAME.ADD_CUR_ROUND_ATTR, - effectList = effectList - }) - end - end - - -- - if skillEntity:getSkillAttackBeforeEffects() and elementType then - local effectList - for type, buffEntity in pairs(skillEntity:getSkillAttackBeforeEffects()) do - if not effectList then - effectList = {} - end - table.insert(effectList, buffEntity) - end - if effectList then - table.insert(self.instructions, { - name = BattleConst.INSTRUCTION_NAME.ADD_CUR_ROUND_ATTR, - effectList = effectList - }) - end - end - end + self.instructions = BATTLE_INSTRUCTIONS_HELPER.generateInstructions(skillEntity, elementType, lineCount, influenceElementTypeMap, elementTypeMap, self) end function BattleController:exeInstructions(callback) @@ -1325,7 +1199,7 @@ function BattleController:exeInstructions(callback) end function BattleController:generateBoard(isFirst) - local boardList, _ = self:getInitBoard() + local boardList, _, mysteryBoxIndexMap = self:getInitBoard() if self.curBoardIndex and self.curBoardIndex >= #boardList then return end @@ -1334,8 +1208,13 @@ function BattleController:generateBoard(isFirst) return end + self.curBoardIndex = (self.curBoardIndex or 0) + 1 - local board = boardList[self.curBoardIndex] + local board = boardList[self.curBoardIndex].board + local mysteryBoard = boardList[self.curBoardIndex].mysteryBoard + if mysteryBoard and mysteryBoxIndexMap and mysteryBoxIndexMap[self.curBoardIndex] then + board = mysteryBoard + end self.battleUI:switchBoard(function() self.battleData:refreshBoard(board, self:getBlockIcon()) self.battleUI:initGridCell() @@ -1344,6 +1223,11 @@ function BattleController:generateBoard(isFirst) end, isFirst) end +function BattleController:onGotMysteryBoxIndexs() + self.gotMysteryBoxIndexs[self.curBoardIndex] = true + table.insert(self.showMysteryBoxIndexs, self.curBoardIndex) +end + function BattleController:putBoardCacheSkill(callback) if not self.battleUI then return @@ -1763,7 +1647,8 @@ function BattleController:getRandomSkillList(getCount, onlyCommonSkill) for _, skillId in ipairs(list) do local skillCfg = cfg[skillId] if skillCfg and (not skillCfg.limit_times or self.battleData:getSkillCount(skillId) < skillCfg.limit_times) then - if not map[skillId] then + + if not map[skillId] and (not skillCfg.unlock or self.battleData:getSkillCount(skillCfg.unlock) > 0) then table.insert(newSkillPool, skillId) table.insert(skillWeight, skillCfg.weight) count = count + 1 @@ -2437,6 +2322,17 @@ function BattleController:addBattleExp(exp) self.battleData:addExp(exp) end +function BattleController:addTaskProgress(fieldName, count) + if not count then + return + end + self.taskProgress[fieldName] = (self.taskProgress[fieldName] or 0) + count +end + +function BattleController:getTaskProgress() + return self.taskProgress +end + function BattleController:_tick(dt) self.realTime = self.realTime + dt if self.isPause then @@ -2565,12 +2461,12 @@ local function _addCurRoundAttr(self, instruction, callback) local mainComp = self:getOtherSideMainUnit(BattleConst.SIDE_DEF) for _, effect in ipairs(instruction.effectList) do local target - if effect:getTartgetSide() == BattleConst.SIDE_DEF then + if effect:getTargetSide() == BattleConst.SIDE_DEF then target = defComp - elseif effect:getTartgetSide() == BattleConst.SIDE_ATK then + elseif effect:getTargetSide() == BattleConst.SIDE_ATK then target = mainComp else - local matchType = BattleConst.SIDE_OBJ_TO_MATCH_TYPE[effect:getTartgetSide()] + local matchType = BattleConst.SIDE_OBJ_TO_MATCH_TYPE[effect:getTargetSide()] if matchType then target = self.atkTeam:getUnitComp()[matchType] end @@ -2593,7 +2489,7 @@ local function _generalAttack(self, instruction, callback) end local function _playSkill(self, instruction, callback) - self.atkTeam:useSkill(instruction.skillMatch, instruction.count, #self.instructions == 0, callback) + self.atkTeam:useSkill(instruction.skillMatch, instruction.count, #self.instructions == 0, BattleConst.EFFECT_TYPE.DIRECT, callback) end BattleController._doInstruction = { diff --git a/lua/app/module/battle/controller/battle_controller_stage.lua b/lua/app/module/battle/controller/battle_controller_stage.lua index 8719b80e..f6560b12 100644 --- a/lua/app/module/battle/controller/battle_controller_stage.lua +++ b/lua/app/module/battle/controller/battle_controller_stage.lua @@ -91,18 +91,28 @@ function BattleControllerStage:getInitBoard() if not self.boradList then self.boradList = {} self.fixedRandomGrid = {} + self.mysteryBoxIndexMap = {} + local config = ConfigManager:getConfig("chapter")[self.chapterId] local boardCfg = ConfigManager:getConfig("chapter_board") for _, boardId in ipairs(config.board) do local cfg = boardCfg[boardId] if cfg then - table.insert(self.boradList, GFunc.getTable(cfg.board)) + table.insert(self.boradList, {board = GFunc.getTable(cfg.board), mysteryBoard = GFunc.getTable(cfg.mystery_box_board)}) table.insert(self.fixedRandomGrid, GFunc.getTable(cfg.control_element)) end end + + if config.mystery_box and config.mystery_box_reward then + for i, index in ipairs(config.mystery_box) do + if not DataManager.ChapterData:getChapterMysteryBoxIsGot(self.chapterId, index) then + self.mysteryBoxIndexMap[index] = config.mystery_box_reward[i] + end + end + end end - return self.boradList, self.fixedRandomGrid + return self.boradList, self.fixedRandomGrid, self.mysteryBoxIndexMap end function BattleControllerStage:getSealElementType() @@ -170,7 +180,7 @@ function BattleControllerStage:controllBattleEnd() if not self.victory then self.combatReport.wave = self.combatReport.wave - 1 end - ModuleManager.ChapterManager:endFight(self.chapterId, self.combatReport) + ModuleManager.ChapterManager:endFight(self.chapterId, self.combatReport, self.gotMysteryBoxIndexs, self.taskProgress) end function BattleController:postWaveOver(atkDead, isQuit) diff --git a/lua/app/module/battle/helper/battle_buff_handle.lua b/lua/app/module/battle/helper/battle_buff_handle.lua index d59f4d39..f063ca9c 100644 --- a/lua/app/module/battle/helper/battle_buff_handle.lua +++ b/lua/app/module/battle/helper/battle_buff_handle.lua @@ -18,7 +18,7 @@ local function _doDotWork(unitComp, buffEffect, buff) else damage = -damage end - unitComp:takeDamageOrCure(buffEffect.sender, damage, EFFECT_TYPE.DOT, hurtStatus) + unitComp:takeDamageOrCure(buffEffect.sender, damage, EFFECT_TYPE.DOT, hurtStatus, buff:getName()) end local function _doHotWork(unitComp, buffEffect, buff) @@ -26,7 +26,7 @@ local function _doHotWork(unitComp, buffEffect, buff) if cure < 0 then -- 加血不能是负数 cure = 0 end - unitComp:takeDamageOrCure(buffEffect.sender, cure, EFFECT_TYPE.HOT, hurtStatus) + unitComp:takeDamageOrCure(buffEffect.sender, cure, EFFECT_TYPE.HOT, hurtStatus, buff:getName()) end function BattleBuffHandle.doBuffWork(unitComp, buffEffect) @@ -92,7 +92,7 @@ local function _takeEffectDirectHurt(unitComp, buff, target, buffEffect) else damage = -damage end - target:takeDamageOrCure(unitComp, damage, EFFECT_TYPE.DIRECT, hurtStatus) + target:takeDamageOrCure(unitComp, damage, EFFECT_TYPE.DIRECT, hurtStatus, buff:getName()) return damage end @@ -105,7 +105,7 @@ local function _takeEffectDirectCure(unitComp, buff, target, buffEffect) if cure < 0 then -- 加血不能是负数 cure = 0 end - target:takeDamageOrCure(unitComp, cure, EFFECT_TYPE.HEAL, hurtStatus) + target:takeDamageOrCure(unitComp, cure, EFFECT_TYPE.HEAL, hurtStatus, buff:getName()) return cure end diff --git a/lua/app/module/battle/helper/battle_buff_special.lua b/lua/app/module/battle/helper/battle_buff_special.lua index 43232ce5..64967a97 100644 --- a/lua/app/module/battle/helper/battle_buff_special.lua +++ b/lua/app/module/battle/helper/battle_buff_special.lua @@ -43,7 +43,7 @@ local function _bleedWork(unitComp, buffEffect, buff) else damage = -damage end - unitComp:takeDamageOrCure(buffEffect.sender, damage, EFFECT_TYPE.DOT, hurtStatus) + unitComp:takeDamageOrCure(buffEffect.sender, damage, EFFECT_TYPE.DOT, hurtStatus, buff:getName()) return 1 end diff --git a/lua/app/module/battle/helper/battle_instructions_helper.lua b/lua/app/module/battle/helper/battle_instructions_helper.lua new file mode 100644 index 00000000..23bd12b5 --- /dev/null +++ b/lua/app/module/battle/helper/battle_instructions_helper.lua @@ -0,0 +1,262 @@ +local BattleConst = GConst.BattleConst +local BattleInstructionsHelper = {} + +BattleInstructionsHelper._generateAttackInstructions = function(instructions, skillEntity, elementType, elementTypeCount) + if skillEntity then + if elementType == skillEntity:getPosition() then + table.insert(instructions, { + name = BattleConst.INSTRUCTION_NAME.PLAY_SKILL, + skillMatch = elementType, + count = elementTypeCount, + }) + else + if skillEntity:getEffect() ~= nil then + table.insert(instructions, { + name = BattleConst.INSTRUCTION_NAME.PLAY_SKILL, + skillMatch = skillEntity:getPosition(), + count = 0, + }) + end + if elementTypeCount > 0 then + table.insert(instructions, { + name = BattleConst.INSTRUCTION_NAME.GENERAL_ATTACK, + skillMatch = elementType, + count = elementTypeCount, + }) + end + end + else + ---- 普攻 + if elementTypeCount > 0 then + table.insert(instructions, { + name = BattleConst.INSTRUCTION_NAME.GENERAL_ATTACK, + skillMatch = elementType, + count = elementTypeCount, + }) + end + end + + -- if assistingList then + -- table.insert(self.instructions, { + -- name = BattleConst.INSTRUCTION_NAME.ASSISTING, + -- assistingList = assistingList, + -- }) + -- end +end + +local generateEliminateEffects = function(instructions, skillEntity, battleController) + local eliminateEffects = skillEntity:getEliminateEffects(battleController) + if not eliminateEffects then + return + end + local effectList + for _, buffEntity in ipairs(eliminateEffects) do + if not effectList then + effectList = {} + end + table.insert(effectList, buffEntity) + end + if effectList then + local unit = { + name = BattleConst.INSTRUCTION_NAME.ADD_CUR_ROUND_ATTR, + effectList = effectList + } + table.insert(instructions, unit) + end +end + +local generateLinkEffects = function(instructions, skillEntity, elementType) + if not skillEntity:getLinkEffects() or not elementType then + return + end + + local effectList + for type, buffEntities in pairs(skillEntity:getLinkEffects()) do + local buffEntity = buffEntities[elementType] + if buffEntity then + if not effectList then + effectList = {} + end + table.insert(effectList, buffEntity) + end + end + if effectList then + local unit = { + name = BattleConst.INSTRUCTION_NAME.ADD_CUR_ROUND_ATTR, + effectList = effectList + } + table.insert(instructions, unit) + end +end + +local generateInfluenceEffects = function(instructions, skillEntity, influenceElementTypeMap) + if not skillEntity:getInInfluenceEffects() or not influenceElementTypeMap then + return + end + for influenceElementType , _ in pairs(influenceElementTypeMap) do + local effectList + for type, buffEntities in pairs(skillEntity:getInInfluenceEffects()) do + local buffEntity = buffEntities[influenceElementType] + if buffEntity then + if not effectList then + effectList = {} + end + table.insert(effectList, buffEntity) + end + end + if effectList then + table.insert(instructions, { + name = BattleConst.INSTRUCTION_NAME.ADD_CUR_ROUND_ATTR, + effectList = effectList + }) + end + end +end + +local generateElementCountEffect = function(instructions, skillEntity, elementType, lineCount) + if not skillEntity:getElementCountEffect() or not elementType then + return + end + + local effectList + for rogueSkill, list in pairs(skillEntity:getElementCountEffect()) do + for index, buffEntities in pairs(list) do + local originBuffEntity = buffEntities.origin + local useBuffEntity = buffEntities.use + if not effectList then + effectList = {} + end + local newNum = originBuffEntity:getEffectNum() * lineCount + useBuffEntity:setEffectNum(newNum) + table.insert(effectList, useBuffEntity) + end + end + if effectList then + table.insert(instructions, { + name = BattleConst.INSTRUCTION_NAME.ADD_CUR_ROUND_ATTR, + effectList = effectList + }) + end +end + +local generateSkillAttackBeforeEffects = function(instructions, skillEntity) + if not skillEntity:getSkillAttackBeforeEffects() then + return + end + + local effectList + for rogueSkill, list in pairs(skillEntity:getSkillAttackBeforeEffects()) do + for index, buffEntity in pairs(list) do + if not effectList then + effectList = {} + end + table.insert(effectList, buffEntity) + end + end + if effectList then + table.insert(instructions, { + name = BattleConst.INSTRUCTION_NAME.ADD_CUR_ROUND_ATTR, + effectList = effectList + }) + end +end + +local generateLinkCountMoreEffects = function(instructions, skillEntity, lineCount) + if not skillEntity:getLinkCountMoreEffects() then + return + end + + local effectList + for rogueSkill, list in pairs(skillEntity:getLinkCountMoreEffects()) do + for index, info in pairs(list) do + if info.paramsCount and info.paramsCount <= lineCount then + if not effectList then + effectList = {} + end + table.insert(effectList, info.buffEntity) + end + end + end + if effectList then + table.insert(instructions, { + name = BattleConst.INSTRUCTION_NAME.ADD_CUR_ROUND_ATTR, + effectList = effectList + }) + end +end + +local generateLinkCountPowerEffects = function(instructions, skillEntity, lineCount) + if not skillEntity:getLinkCountPowerEffects() then + return + end + + local effectList + for rogueSkill, list in pairs(skillEntity:getLinkCountPowerEffects()) do + for index, info in pairs(list) do + if info.paramsCount and info.paramsCount <= lineCount then + local power = lineCount // info.paramsCount + if not effectList then + effectList = {} + end + local newNum = info.originBuffEntity:getEffectNum() * power + info.useBuffEntity:setEffectNum(newNum) + table.insert(effectList, info.useBuffEntity) + end + end + end + if effectList then + table.insert(instructions, { + name = BattleConst.INSTRUCTION_NAME.ADD_CUR_ROUND_ATTR, + effectList = effectList + }) + end +end + +BattleInstructionsHelper._generateBuffInstructions = function(instructions, skillEntity, elementType, lineCount, influenceElementTypeMap, battleController) + if skillEntity then + generateEliminateEffects(instructions, skillEntity, battleController) + generateLinkEffects(instructions, skillEntity, elementType) + generateInfluenceEffects(instructions, skillEntity, influenceElementTypeMap) + generateElementCountEffect(instructions, skillEntity, elementType, lineCount) + generateSkillAttackBeforeEffects(instructions, skillEntity) + generateLinkCountMoreEffects(instructions, skillEntity, lineCount) + generateLinkCountPowerEffects(instructions, skillEntity, lineCount) + end +end + +BattleInstructionsHelper.generateInstructions = function(skillEntity, elementType, lineCount, influenceElementTypeMap, elementTypeMap, battleController) + local elementTypeCount = 0 + local instructions = {} + -- local assistingList = nil + ---- 援助 + for element, count in pairs(elementTypeMap) do + -- if element == elementType then + elementTypeCount = elementTypeCount + count + -- else + -- if assistingList == nil then + -- assistingList = {} + -- end + -- local obj = { + -- count = count, + -- skillMatch = element, + -- } + -- table.insert(assistingList, obj) + -- end + end + battleController:addTaskProgress(BattleConst.BATTLE_TASK_FIELD.ELIMINATION_COUNT, elementTypeCount) + if lineCount >= 6 then + battleController:addTaskProgress(BattleConst.BATTLE_TASK_FIELD.LINK_COUNT_OVER_6, 1) + end + if lineCount >= 8 then + battleController:addTaskProgress(BattleConst.BATTLE_TASK_FIELD.LINK_COUNT_OVER_8, 1) + end + + -- 攻击 + BattleInstructionsHelper._generateAttackInstructions(instructions, skillEntity, elementType, elementTypeCount) + ---- 加buff + BattleInstructionsHelper._generateBuffInstructions(instructions, skillEntity, elementType, lineCount, influenceElementTypeMap, battleController) + + return instructions +end + +return BattleInstructionsHelper diff --git a/lua/app/module/battle/helper/battle_instructions_helper.lua.meta b/lua/app/module/battle/helper/battle_instructions_helper.lua.meta new file mode 100644 index 00000000..cd2ad418 --- /dev/null +++ b/lua/app/module/battle/helper/battle_instructions_helper.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 6fd938e7da92c8e4e9a0b7560081b1cd +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/module/battle/helper/battle_passive.lua b/lua/app/module/battle/helper/battle_passive.lua index a023ba49..4d64f3cf 100644 --- a/lua/app/module/battle/helper/battle_passive.lua +++ b/lua/app/module/battle/helper/battle_passive.lua @@ -49,6 +49,18 @@ local function _checkActiveSkillHit(unitComp, skill, targetComp) return 1 end +local function _checkOnActiveSkillBefore(unitComp, skill, targetComp) + return 1 +end + +local function _checkOnDeadByBurn(unitComp, skill, targetComp) + return 1 +end + +local function _checkOnDeadBySkill(unitComp, skill, targetComp) + return 1 +end + local function _checkOnDead(unitComp, skill, targetComp) return 1 end @@ -59,6 +71,9 @@ BattlePassive.checkTrigger = { [PASSIVE_EVENT.HP_LOWER_THAN] = _checkhpLowerThan, [PASSIVE_EVENT.USE_NORMAL_SKILL] = _checkUseNormalSkill, [PASSIVE_EVENT.ACTIVE_SKILL_HIT] = _checkActiveSkillHit, + [PASSIVE_EVENT.ON_ACTIVE_SKILL_BEFORE] = _checkOnActiveSkillBefore, + [PASSIVE_EVENT.ON_DEAD_BY_BURN] = _checkOnDeadByBurn, + [PASSIVE_EVENT.ON_DEAD_BY_SKILL] = _checkOnDeadBySkill, [PASSIVE_EVENT.ON_DEAD] = _checkOnDead, } diff --git a/lua/app/module/battle/helper/battle_skill_condition_handle.lua b/lua/app/module/battle/helper/battle_skill_condition_handle.lua new file mode 100644 index 00000000..09244fff --- /dev/null +++ b/lua/app/module/battle/helper/battle_skill_condition_handle.lua @@ -0,0 +1,84 @@ +local BattleConst = require "app/module/battle/battle_const" + +local BattleSkillConditionHandle = {} + +local SKILL_CONDITION_REL_TYPE = BattleConst.SKILL_CONDITION_REL_TYPE +local SKILL_CONDITION_TYPE = BattleConst.SKILL_CONDITION_TYPE +local DEFAULT_FACTOR = BattleConst.DEFAULT_FACTOR + +local function _judgeTargetState(buffCondition, conditionRel, target, battleController) + local num = target:getBuffCountByName(buffCondition.attr) + if num > 0 then -- 拥有这个buff + return true + end + return false +end + +local function _judgeTargetAttr(buffCondition, conditionRel, target, battleController) + local attrNum = 0 + if buffCondition.attr == "hpp" then + attrNum = target.unitEntity:getHpPercent() * DEFAULT_FACTOR + else + attrNum = target.unitEntity:getAttrValue(buffCondition.attr) + end + return BattleSkillConditionHandle._strOperatorOverloading(buffCondition.op, attrNum, buffCondition.v) +end + +BattleSkillConditionHandle._judgeSkillEffectCondition = { + [SKILL_CONDITION_TYPE.STATE] = _judgeTargetState, + [SKILL_CONDITION_TYPE.ATTR] = _judgeTargetAttr, +} + +BattleSkillConditionHandle._strOperatorOverloading = function(opStr, value1, value2) + if opStr == "<" then + return value1 < value2 + elseif opStr == "<=" then + return value1 <= value2 + elseif opStr == "=" then + return value1 == value2 + elseif opStr == ">" then + return value1 > value2 + elseif opStr == ">=" then + return value1 >= value2 + elseif opStr == "!=" then + return value1 ~= value2 + end + + return false +end + +function BattleSkillConditionHandle.judgeSkillEffectCondition(buffConditions, conditionRel, battleController) + if not buffConditions or not conditionRel then + return true + end + + local passConditionCount = 0 + for _, condition in ipairs(buffConditions) do + local func = BattleSkillConditionHandle._judgeSkillEffectCondition[condition.type] + if func then + local target + if condition.side == BattleConst.SIDE_ATK then + target = battleController.atkTeam:getMainUnit() + else + target = battleController.defTeam:getMainUnit() + end + if func(condition, conditionRel, target, battleController) then + passConditionCount = passConditionCount + 1 + end + end + end + + if conditionRel == SKILL_CONDITION_REL_TYPE.AND then + if passConditionCount >= #buffConditions then + return true + end + elseif conditionRel == SKILL_CONDITION_REL_TYPE.OR then + if passConditionCount > 0 then + return true + end + end + + return false +end + +return BattleSkillConditionHandle \ No newline at end of file diff --git a/lua/app/module/battle/helper/battle_skill_condition_handle.lua.meta b/lua/app/module/battle/helper/battle_skill_condition_handle.lua.meta new file mode 100644 index 00000000..220d8dd0 --- /dev/null +++ b/lua/app/module/battle/helper/battle_skill_condition_handle.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 9858e4faf8623ec4983583f58ea463ba +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/module/battle/skill/battle_board_skill_handle.lua b/lua/app/module/battle/skill/battle_board_skill_handle.lua index b1e88890..787dccf6 100644 --- a/lua/app/module/battle/skill/battle_board_skill_handle.lua +++ b/lua/app/module/battle/skill/battle_board_skill_handle.lua @@ -37,10 +37,22 @@ local function _takeChangeAround(posId, skillEntity, gridEntities, sequenceEntit end end local posIdInfos = ModuleManager.BattleManager:getAroundPosIdsByList(posId, boardrange, cludePosIdsMap) + local mainElementType + for _, info in ipairs(battleController.battleData:getGridSequence()) do + local entity = gridEntities[info.posId] + local skillId = entity:getSkillId() + if not skillId then + mainElementType = entity:getElementType() + break + end + end + if not mainElementType then + return + end for _, info in ipairs(posIdInfos) do local entity = gridEntities[info.posId] if entity then - entity:setElementType(skillEntity:getSkillTypeParameter()[1]) + entity:setElementType(mainElementType) end end end @@ -240,7 +252,7 @@ local function _takeKillMaxElementAndHeal(atkUnitComp, skillEntity, battleContro local list = elementMap[maxElement] local heal = count * effectNum * atkUnitComp.unitEntity:getAtk() // GConst.BattleConst.DEFAULT_FACTOR - atkUnitComp:takeDamageOrCure(atkUnitComp, heal, BattleConst.EFFECT_TYPE.HEAL, 0) + atkUnitComp:takeDamageOrCure(atkUnitComp, heal, BattleConst.EFFECT_TYPE.HEAL, 0, BattleConst.SPECIAL_DAMAGE_OR_CURE_TYPE.KILL_MAX_ELEMENT_AND_HEAL) battleController:killGrids(list) end @@ -312,6 +324,47 @@ local function _takeKillRowAndColumn(atkUnitComp, skillEntity, battleController) battleController:killRowOrColumn(infoList) end +local function _takeAddSkillEnergy(atkUnitComp, skillEntity, battleController) + local params = skillEntity:getEliminateSkillParameter() + if not params[2] or params[2] <= 0 then + return + end + local elementType = params[1] + local addEnergy = params[2] + local elementTypeMap + if elementType == BattleConst.ELEMENT_TYPE.NONE then + local boardSkills + local count = 0 + for eType, entity in pairs(battleController.battleData:getSkillEntities()) do + if not boardSkills then + boardSkills = {} + end + table.insert(boardSkills, eType) + count = count + 1 + end + if count <= 0 then + return + end + elementType = boardSkills[math.random(1, count)] + end + + elementTypeMap = {[elementType] = addEnergy} + battleController.battleData:addSkillEnergy(elementTypeMap) + battleController.battleUI:refreshSkill() +end + +local function _takeChangeElementType(atkUnitComp, skillEntity, battleController) + local params = skillEntity:getEliminateSkillParameter() + if not params[2] or params[2] <= 0 then + return + end + local elementType = params[1] + local changeCount = params[2] + + battleController:changeElementType(changeCount, elementType) +end + + BattleBoardSkillHandle._activeBoardSkill = { [SKILL_TYPE.ELIMINATION] = _takeElimination, [SKILL_TYPE.CHANGE_AROUND] = _takeChangeAround, @@ -326,6 +379,8 @@ BattleBoardSkillHandle._activeAttackOverSkill = { [SKILL_TYPE.RANDOM_KILL_ROW_OR_COLUMN] = _takeRandomKillRowOrColumn, [SKILL_TYPE.KILL_MAX_ELEMENT_AND_HEAL] = _takeKillMaxElementAndHeal, [SKILL_TYPE.KILL_ROW_AND_COLUMN] = _takeKillRowAndColumn, + [SKILL_TYPE.ADD_SKILL_ENERGY] = _takeAddSkillEnergy, + [SKILL_TYPE.CHANGE_ELEMENT_TYPE] = _takeChangeElementType, } function BattleBoardSkillHandle.activeBoardSkill(posId, skillEntity, gridEntities, sequenceEntities, battleController) diff --git a/lua/app/module/battle/skill/battle_grid_effect_handle.lua b/lua/app/module/battle/skill/battle_grid_effect_handle.lua index ee56641e..ee4b1966 100644 --- a/lua/app/module/battle/skill/battle_grid_effect_handle.lua +++ b/lua/app/module/battle/skill/battle_grid_effect_handle.lua @@ -40,13 +40,22 @@ local function _selectCommonSkill(entity, gridEntities, battleController, onlyCh if onlyCheck then return end + battleController:addTaskProgress(BattleConst.BATTLE_TASK_FIELD.SKILL_BOX_OPEN, 1) battleController.battleData:addCommonSelectSkillCount() end +local function _rewardBox(entity, gridEntities, battleController, onlyCheck) + if onlyCheck then + return + end + battleController:onGotMysteryBoxIndexs() +end + BattleGridEffectHandle._gridEffectOn = { [GRID_EFFECT_TYPE.DIRECTION_ELIMINATION] = _directionElinination, [GRID_EFFECT_TYPE.CROSS_SPREAD] = _crossSpread, [GRID_EFFECT_TYPE.SELECT_COMMON_SKILL] = _selectCommonSkill, + [GRID_EFFECT_TYPE.REWARD_BOX] = _rewardBox, } function BattleGridEffectHandle.gridEffectOn(posId, gridEntities, triggerType, battleController, onlyCheck) diff --git a/lua/app/module/battle/skill/battle_rogue_skill_handle.lua b/lua/app/module/battle/skill/battle_rogue_skill_handle.lua index c910328a..99bd4bed 100644 --- a/lua/app/module/battle/skill/battle_rogue_skill_handle.lua +++ b/lua/app/module/battle/skill/battle_rogue_skill_handle.lua @@ -4,7 +4,7 @@ local BattleBuffEntity = require "app/userdata/battle/skill/battle_buff_entity" local BattleRogueSkillHandle = {} -local _changeBaseSkill = function(skillInfo, battleData, battleController) +local _changeBaseSkill = function(skillId, skillInfo, battleData, battleController) local elementType = skillInfo.skill_position if not elementType or not skillInfo.parameter then return @@ -27,7 +27,7 @@ local _changeBaseSkill = function(skillInfo, battleData, battleController) end end -local _addEliminationRange = function(skillInfo, battleData, battleController) +local _addEliminationRange = function(skillId, skillInfo, battleData, battleController) local elementType = skillInfo.skill_position if not elementType or not skillInfo.boardrange then return @@ -39,7 +39,7 @@ local _addEliminationRange = function(skillInfo, battleData, battleController) end end -local _canLinkAnyElement = function(skillInfo, battleData, battleController) +local _canLinkAnyElement = function(skillId, skillInfo, battleData, battleController) local elementType = skillInfo.skill_position if not elementType then return @@ -51,7 +51,7 @@ local _canLinkAnyElement = function(skillInfo, battleData, battleController) end end -local _addLinkAtkp = function(skillInfo, battleData, battleController) +local _addLinkAtkp = function(skillId, skillInfo, battleData, battleController) local elementType = skillInfo.skill_position if not elementType or not skillInfo.effect then return @@ -74,7 +74,7 @@ local _addLinkAtkp = function(skillInfo, battleData, battleController) end end -local _changeElementType = function(skillInfo, battleData, battleController) +local _changeElementType = function(skillId, skillInfo, battleData, battleController) if not skillInfo.boardrange or not skillInfo.parameter then return end @@ -88,7 +88,7 @@ local _changeElementType = function(skillInfo, battleData, battleController) battleController:changeElementType(count, elementType) end -local _addAttr = function(skillInfo, battleData, battleController, value) +local _addAttr = function(skillId, skillInfo, battleData, battleController, value) if not skillInfo.attr then return end @@ -99,7 +99,7 @@ local _addAttr = function(skillInfo, battleData, battleController, value) battleController:addHeroAttr(skillInfo.attr.type, value) end -local _unlockSkill = function(skillInfo, battleData, battleController, value) +local _unlockSkill = function(skillId, skillInfo, battleData, battleController, value) if not skillInfo.skill_position then return end @@ -107,7 +107,7 @@ local _unlockSkill = function(skillInfo, battleData, battleController, value) battleData:unlockSkillEntity(skillInfo.skill_position) end -local _addSkillEffectParams = function(skillInfo, battleData, battleController) +local _addSkillEffectParams = function(skillId, skillInfo, battleData, battleController) local elementType = skillInfo.skill_position if not elementType or not skillInfo.parameter then return @@ -144,7 +144,7 @@ local _addSkillEffectParams = function(skillInfo, battleData, battleController) end end -local _addSkillRound = function(skillInfo, battleData, battleController) +local _addSkillRound = function(skillId, skillInfo, battleData, battleController) local elementType = skillInfo.skill_position if not elementType or not skillInfo.parameter then return @@ -182,7 +182,7 @@ local _addSkillRound = function(skillInfo, battleData, battleController) end end -local _addSkillEffect = function(skillInfo, battleData, battleController) +local _addSkillEffect = function(skillId, skillInfo, battleData, battleController) if not skillInfo.effect then return end @@ -209,7 +209,7 @@ local _addSkillEffect = function(skillInfo, battleData, battleController) end return else - local matchType = BattleConst.SIDE_OBJ_TO_MATCH_TYPE[effect:getTartgetSide()] + local matchType = BattleConst.SIDE_OBJ_TO_MATCH_TYPE[skillInfo.obj] if matchType then target = battleController.atkTeam:getUnitComp()[matchType] end @@ -222,7 +222,7 @@ local _addSkillEffect = function(skillInfo, battleData, battleController) end end -local _addSkillInInfluenceAtkp = function(skillInfo, battleData, battleController) +local _addSkillInInfluenceAtkp = function(skillId, skillInfo, battleData, battleController) local elementType = skillInfo.skill_position if not elementType or not skillInfo.effect then return @@ -243,7 +243,7 @@ local _addSkillInInfluenceAtkp = function(skillInfo, battleData, battleControlle end end -local _addSkillAttackBeforeEffect = function(skillInfo, battleData, battleController) +local _addSkillAttackBeforeEffect = function(skillId, skillInfo, battleData, battleController) local elementType = skillInfo.skill_position if not elementType or not skillInfo.effect then return @@ -260,13 +260,16 @@ local _addSkillAttackBeforeEffect = function(skillInfo, battleData, battleContro local entity = battleData:getSkillEntityByElement(elementType) if entity then + if skillInfo.cover_unlock then + entity:removeSkillAttackBeforeEffect(skillInfo.cover_unlock) + end for k, effect in ipairs(skillInfo.effect) do - entity:addSkillAttackBeforeEffect(k, effect, unitEntity, skillInfo.obj) + entity:addSkillAttackBeforeEffect(skillId, k, effect, unitEntity, skillInfo.obj) end end end -local _addSkillElementCountEffect = function(skillInfo, battleData, battleController) +local _addSkillElementCountEffect = function(skillId, skillInfo, battleData, battleController) local elementType = skillInfo.skill_position if not elementType or not skillInfo.effect then return @@ -283,8 +286,69 @@ local _addSkillElementCountEffect = function(skillInfo, battleData, battleContro local entity = battleData:getSkillEntityByElement(elementType) if entity then - for _, effect in ipairs(skillInfo.effect) do - entity:addElementCountEffect(effect, unitEntity, skillInfo.obj) + if skillInfo.cover_unlock then + entity:removeElementCountEffect(skillInfo.cover_unlock) + end + for k, effect in ipairs(skillInfo.effect) do + entity:addElementCountEffect(skillId, k, effect, unitEntity, skillInfo.obj) + end + end +end + +local _addLinkCountMoreEffect = function(skillId, skillInfo, battleData, battleController) + local elementType = skillInfo.skill_position + if not elementType or not skillInfo.effect or not skillInfo.parameter then + return + end + + if not battleController.battleData or not battleController.battleData.atkTeam then + return + end + + local unitEntity = battleController.battleData.atkTeam:getAllMembers()[elementType] + if not unitEntity then + return + end + + local entity = battleData:getSkillEntityByElement(elementType) + if entity then + if skillInfo.cover_unlock then + entity:removeLinkCountMoreEffects(skillInfo.cover_unlock) + end + for k, effect in ipairs(skillInfo.effect) do + local paramsCount = skillInfo.parameter[k] + if paramsCount then + entity:addLinkCountMoreEffects(skillId, k, effect, unitEntity, skillInfo.obj, paramsCount) + end + end + end +end + +local _addLinkCountPowerEffect = function(skillId, skillInfo, battleData, battleController) + local elementType = skillInfo.skill_position + if not elementType or not skillInfo.effect or not skillInfo.parameter then + return + end + + if not battleController.battleData or not battleController.battleData.atkTeam then + return + end + + local unitEntity = battleController.battleData.atkTeam:getAllMembers()[elementType] + if not unitEntity then + return + end + + local entity = battleData:getSkillEntityByElement(elementType) + if entity then + if skillInfo.cover_unlock then + entity:removeLinkCountPowerEffects(skillInfo.cover_unlock) + end + for k, effect in ipairs(skillInfo.effect) do + local paramsCount = skillInfo.parameter[k] + if paramsCount then + entity:addLinkCountPowerEffects(skillId, k, effect, unitEntity, skillInfo.obj, paramsCount) + end end end end @@ -303,6 +367,8 @@ BattleRogueSkillHandle._effectOn = { [11] = _addSkillInInfluenceAtkp, -- 技能消除的增加伤害 [12] = _addSkillAttackBeforeEffect, -- 技能触发前的技能效果 [13] = _addSkillElementCountEffect, -- 技能链接中每一个元素累加的技能效果 + [14] = _addLinkCountMoreEffect, -- 链接超过x元素获得一次技能效果 + [15] = _addLinkCountPowerEffect, -- 链接超过x元素获得倍数技能效果 } function BattleRogueSkillHandle.takeEffect(skillId, battleData, battleController, value) @@ -313,7 +379,7 @@ function BattleRogueSkillHandle.takeEffect(skillId, battleData, battleController local func = BattleRogueSkillHandle._effectOn[cfg.type] if func then - func(cfg, battleData, battleController, value) + func(skillId, cfg, battleData, battleController, value) end end diff --git a/lua/app/module/battle/team/battle_team.lua b/lua/app/module/battle/team/battle_team.lua index 7b56959e..e476f447 100644 --- a/lua/app/module/battle/team/battle_team.lua +++ b/lua/app/module/battle/team/battle_team.lua @@ -78,7 +78,7 @@ function BattleTeam:useNormalSkill(matchType, count, isFinalAction, effectType, unit:useNormalSkill(count, effectType, callback) end -function BattleTeam:useSkill(matchType, count, isFinalAction, callback) +function BattleTeam:useSkill(matchType, count, isFinalAction, effectType, callback) self.isFinalAction = isFinalAction local unit = nil if matchType == nil then @@ -94,7 +94,7 @@ function BattleTeam:useSkill(matchType, count, isFinalAction, callback) end local lastMainUnit = self.mainUnit self.mainUnit = unit - unit:beforeAttack() + unit:beforeAttack(effectType) unit:resetBeforeAttack() if unit:useSkill(1, count, callback) then if lastMainUnit and lastMainUnit ~= unit then @@ -480,6 +480,10 @@ function BattleTeam:updateBuffState(buff, num) end end +function BattleTeam:getBuffCountByName(buffName) + return self.sameBuffCount[buffName] or 0 +end + function BattleTeam:getLoopFxResCount(res) return self.loopFxMap[res] or 0 end @@ -535,6 +539,9 @@ function BattleTeam:addCombo() end self.comboCount = self.comboCount + 1 self.battleController:showCombo(self.comboCount) + if self.comboCount == 10 then + self.battleController:addTaskProgress(BattleConst.BATTLE_TASK_FIELD.COMBO_OVER_10, 1) + end end function BattleTeam:onActionOver() diff --git a/lua/app/module/bounty/bounty_manager.lua b/lua/app/module/bounty/bounty_manager.lua index 6b89b083..9d63dea2 100644 --- a/lua/app/module/bounty/bounty_manager.lua +++ b/lua/app/module/bounty/bounty_manager.lua @@ -5,6 +5,7 @@ function BountyManager:showBountyMainUI() end function BountyManager:showBountyBuyUI() + DataManager.BountyData:markPopBought() UIManager:showUI("app/ui/bounty/bounty_buy_ui") end @@ -42,8 +43,8 @@ function BountyManager:buyBountyLevel() return end local params ={ - titleTx = "临时文本:确认解锁等级", - content = "临时文本:理解解锁当前等级\n等级奖励将立即解锁,你收集到的积分数量仍然相同", + titleTx = I18N:getGlobalText(I18N.GlobalConst.BOUNTY_BUY_LEVEL_TITLE), + content = I18N:getGlobalText(I18N.GlobalConst.BOUNTY_BUY_LEVEL_COUNTENT), boxType = GConst.MESSAGE_BOX_TYPE.MB_OK_CANCEL, showToday = GConst.MESSAGE_BOX_SHOW_TODAY.BOUNTY_BUY_LEVEL, costId = costId, diff --git a/lua/app/module/chapter/chapter_manager.lua b/lua/app/module/chapter/chapter_manager.lua index 10c04a0e..0ec4c93c 100644 --- a/lua/app/module/chapter/chapter_manager.lua +++ b/lua/app/module/chapter/chapter_manager.lua @@ -32,8 +32,9 @@ function ChapterManager:startFight() if cost then vitCostNum = GFunc.getRewardNum(cost) end - if vitCostNum > DataManager.BagData.ItemData:getVit() then + if vitCostNum > DataManager.BagData.ItemData:getVit() then -- 体力不足 GFunc.showItemNotEnough(GConst.ItemConst.ITEM_ID_VIT) + ModuleManager.CommerceManager:showBuyVitUI() return end local parmas = { @@ -48,13 +49,23 @@ function ChapterManager:startFightFinish(result) end end -function ChapterManager:endFight(id, combatReport) +function ChapterManager:endFight(id, combatReport, gotMysteryBoxIndexs, taskProgress) + local mystery_box_idx = {} + if gotMysteryBoxIndexs then + for index, _ in pairs(gotMysteryBoxIndexs) do + table.insert(mystery_box_idx, index) + end + end local parmas = { - chapter_id = id, win = combatReport.victory, + chapter_id = id, + mystery_box_idx = mystery_box_idx, pass_wave = combatReport.wave, combatReport = combatReport, } + for fieldName, value in pairs(taskProgress) do + parmas[fieldName] = value + end self:sendMessage(ProtoMsgType.FromMsgEnum.ChapterSettlementReq, parmas, {}, self.endFightFinish, BIReport.ITEM_GET_TYPE.CHAPTER_FIGHT_END) end @@ -63,12 +74,22 @@ function ChapterManager:endFightFinish(result) if result.err_code == GConst.ERROR_STR.SUCCESS then local reqData = result.reqData local maxChapter = DataManager.ChapterData:getNewChapterId() + local rewards = {} local newRewards = {} - if result.rewards then - GFunc.mergeRewards2(result.rewards, newRewards) + local mysteryBoxIdx = result.mystery + for i, reward in ipairs(result.rewards) do + if i <= mysteryBoxIdx then + table.insert(newRewards, reward) + else + table.insert(rewards, reward) + end end - ModuleManager.BattleManager:showBattleResultUI(newRewards, reqData.combatReport) - DataManager.ChapterData:fightChapter(reqData.chapter_id, result.max_chapter_id, result.max_wave) + + if rewards then + GFunc.mergeRewards2(rewards, newRewards) + end + ModuleManager.BattleManager:showBattleResultUI(newRewards, reqData.combatReport, mysteryBoxIdx) + DataManager.ChapterData:fightChapter(reqData.chapter_id, result.max_chapter_id, result.max_wave, reqData.mystery_box_idx) -- 处理金猪 DataManager.GodPigData:addGoldPigCount() @@ -78,6 +99,8 @@ function ChapterManager:endFightFinish(result) data.max_chapter = newMaxChapter CS.ThinkingAnalytics.ThinkingAnalyticsAPI.UserSet(data) end + + ModuleManager.TaskManager:addFightTaskProgress(reqData) end end diff --git a/lua/app/module/idle/idle_manager.lua b/lua/app/module/idle/idle_manager.lua index e9971b2a..5d7723b0 100644 --- a/lua/app/module/idle/idle_manager.lua +++ b/lua/app/module/idle/idle_manager.lua @@ -1,6 +1,7 @@ local IdleManager = class("IdleManager", BaseModule) function IdleManager:showIdleDropUI(params) + self:getIdleShowRewrad() UIManager:showUI("app/ui/idle/idle_drop_ui", params) end @@ -8,12 +9,61 @@ function IdleManager:showIdleQuickDropUI(params) UIManager:showUI("app/ui/idle/idle_quick_drop_ui", params) end -function IdleManager:getIdleRewrad() - +function IdleManager:getIdleShowRewrad() + self:sendMessage(ProtoMsgType.FromMsgEnum.IdleInfoReq, {}, {}, self.onGetIdleShowRewrad, BIReport.ITEM_GET_TYPE.NONE) end -function IdleManager:getHangUpQuickRewrad() +function IdleManager:onGetIdleShowRewrad(result) + if result.err_code == GConst.ERROR_STR.SUCCESS then + DataManager.IdleData:onGetIdleShowRewrad(result) + end +end +function IdleManager:getIdleRewrad() + self:sendMessage(ProtoMsgType.FromMsgEnum.IdleRewardReq, {}, {}, self.onGetIdleRewrad, BIReport.ITEM_GET_TYPE.IDLE_DROP) +end + +function IdleManager:onGetIdleRewrad(result) + if result.err_code == GConst.ERROR_STR.SUCCESS then + if result.rewards and next(result.rewards) then + GFunc.showRewardBox(result.rewards) + end + DataManager.IdleData:onGetIdleRewrad(result.claim_at) + end +end + +function IdleManager:getIdleQuickRewrad(isAd) + if isAd then + SDKManager:showFullScreenAds(BIReport.ADS_CLICK_TYPE.IDLE_QUICK_DROP, function () + local args = { + ad = true + } + self:sendMessage(ProtoMsgType.FromMsgEnum.IdleQuickReq, args, {}, self.onGetIdleQuickRewrad, BIReport.ITEM_GET_TYPE.IDLE_QUICK_DROP) + end) + else + local cost = DataManager.IdleData:getQuickIdleCost() + local costId = GFunc.getRewardId(cost) + local costNum = GFunc.getRewardNum(cost) + if not GFunc.checkCost(costId, costNum, true) then + if costId == GConst.ItemConst.ITEM_ID_VIT then + ModuleManager.CommerceManager:showBuyVitUI() + end + return + end + local args = { + ad = false + } + self:sendMessage(ProtoMsgType.FromMsgEnum.IdleQuickReq, args, {}, self.onGetIdleQuickRewrad, BIReport.ITEM_GET_TYPE.IDLE_QUICK_DROP) + end +end + +function IdleManager:onGetIdleQuickRewrad(result) + if result.err_code == GConst.ERROR_STR.SUCCESS then + if result.rewards then + GFunc.showRewardBox(result.rewards) + end + DataManager.IdleData:onGetIdleQuickRewrad(result) + end end return IdleManager \ No newline at end of file diff --git a/lua/app/module/item/item_const.lua b/lua/app/module/item/item_const.lua index 7cdffc80..ee03b321 100644 --- a/lua/app/module/item/item_const.lua +++ b/lua/app/module/item/item_const.lua @@ -4,6 +4,8 @@ ItemConst.ITEM_ID_GOLD = 1 ItemConst.ITEM_ID_GEM = 2 ItemConst.ITEM_ID_VIT = 3 ItemConst.ITEM_ID_BOUNTY_EXP = 7 +ItemConst.ITEM_ID_EXP = 12 +ItemConst.ITEM_ID_RANDOM_FRAGMENT = 19 ItemConst.ITEM_TYPE = { RES = 1, diff --git a/lua/app/module/mail.meta b/lua/app/module/mail.meta new file mode 100644 index 00000000..07eb42c5 --- /dev/null +++ b/lua/app/module/mail.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 085251417eef56a4a8431c13b3392fd6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/lua/app/module/mail/mail_const.lua b/lua/app/module/mail/mail_const.lua new file mode 100644 index 00000000..26c5c0f8 --- /dev/null +++ b/lua/app/module/mail/mail_const.lua @@ -0,0 +1,16 @@ +local MailConst = {} + +MailConst.MAIL_TYPE = { + CUSTOM = 0, -- 自定义邮件,需要读取 + AD = 1, -- 广告邮件,直接看广告领取 + NORMAL = 2, -- 普通邮件,直接领取 + READ = 3, -- 读取邮件 +} + +MailConst.MAIL_STATE = { + NOT_READ = 0, + READED = 1, + RECEIVED = 2 +} + +return MailConst \ No newline at end of file diff --git a/lua/app/module/mail/mail_const.lua.meta b/lua/app/module/mail/mail_const.lua.meta new file mode 100644 index 00000000..7cfe7600 --- /dev/null +++ b/lua/app/module/mail/mail_const.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 40977769f7f9c5f40b5bdac7c190ec35 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/module/mail/mail_manager.lua b/lua/app/module/mail/mail_manager.lua new file mode 100644 index 00000000..c327dacf --- /dev/null +++ b/lua/app/module/mail/mail_manager.lua @@ -0,0 +1,135 @@ +local MailManager = class("MailManager", BaseModule) + +function MailManager:showMailUI() + UIManager:showUI("app/ui/mail/mail_ui") + self:getMailList() +end + +function MailManager:getMailList(force) + if not force and not DataManager.MailData:getNeedGetNewMail() then + return + end + + self:sendMessage(ProtoMsgType.FromMsgEnum.MailListReq, {}, {}, self.getMailListFinish) +end + +function MailManager:getMailListFinish(result) + if result.status == 0 then + DataManager.MailData:init(result) + end +end + +-- 触发服务器时间相关邮件 +function MailManager:getTriggeredTimeMail() + self:sendMessage(ProtoMsgType.FromMsgEnum.MailCycleReq, {}, {}, self.getTriggeredTimeMailFinish) +end + +function MailManager:getTriggeredTimeMailFinish(result) + if result.status == 0 then + end +end + +function MailManager:claimMail(ids) + if not ids then + for mailId, entity in pairs(DataManager.MailData:getMails()) do + if entity:getIsNormalMail() and entity:canClaim() then + if not ids then + ids = {} + end + table.insert(ids, mailId) + end + end + else + for _, id in ipairs(ids) do + local entity = DataManager.MailData:getMails()[id] + if not entity or not entity:canClaim() then + return + end + end + end + if not ids then + return + end + + local reqData = {ids = ids} + self:sendMessage(ProtoMsgType.FromMsgEnum.MailExtractReq, reqData, {}, self.claimMailFinish, BIReport.ITEM_GET_TYPE.MAIL) +end + +function MailManager:claimMailFinish(result) + if result.status == 0 then + GFunc.showRewardBox(result.rewards) + + local needDeleteIds = {} + for _, id in ipairs(result.ids) do + local entity = DataManager.MailData:getMails()[id] + entity:receivedThis() + if entity:getIsAdMail() or entity:getIsNormalMail() then + table.insert(needDeleteIds, id) + end + BIReport:postMailClaim(id) + end + + if needDeleteIds[1] then + DataManager.MailData:deleteMail(needDeleteIds) -- 提前删除邮件,提升体验 + self:deleteMail(needDeleteIds) + end + + DataManager.MailData:refreshRedPoint() + DataManager.MailData:setDirty() + end +end + +function MailManager:deleteMail(ids) + if not ids then + for mailId, entity in pairs(DataManager.MailData:getMails()) do + if entity:canDelete() then + if not ids then + ids = {} + end + table.insert(ids, mailId) + end + end + end + if not ids or not ids[1] then + return + end + local reqData = {ids = ids} + local rspData = {ids = ids} + self:sendMessage(ProtoMsgType.FromMsgEnum.MailDeleteReq, reqData, rspData, self.deleteMailFinish) +end + +function MailManager:deleteMailFinish(result) + if result.status then + DataManager.MailData:deleteMail(result.ids) + end +end + +function MailManager:readMail(id) + local entity = DataManager.MailData:getMails()[id] + if not entity:notRead() then + UIManager:showUI("app/ui/mail/mail_detail_ui", {id = id}) + return + end + + local reqData = {ids = {id}} + local rspData = {ids = {id}} + self:sendMessage(ProtoMsgType.FromMsgEnum.MailReadReq, reqData, rspData, self.readMailFinish) +end + +function MailManager:readMailFinish(result) + if result.status == 0 then + for _, id in ipairs(result.ids) do + DataManager.MailData:setMailRead(id) + BIReport:postMailOpen(id) + end + + UIManager:showUI("app/ui/mail/mail_detail_ui", {id = result.ids[1]}) + end +end + +function MailManager:needUpdateMail() + DataManager.MailData:setNeedGetNewMail(true) + DataManager.MailData:setDirty() +end + +return MailManager \ No newline at end of file diff --git a/lua/app/module/mail/mail_manager.lua.meta b/lua/app/module/mail/mail_manager.lua.meta new file mode 100644 index 00000000..23ac1383 --- /dev/null +++ b/lua/app/module/mail/mail_manager.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 9bb5abd215ec3b44aacf26c4581b1fa7 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/module/task/task_manager.lua b/lua/app/module/task/task_manager.lua index b3d8c9c9..7cf848ae 100644 --- a/lua/app/module/task/task_manager.lua +++ b/lua/app/module/task/task_manager.lua @@ -1,4 +1,5 @@ local TaskManager = class("TaskManager", BaseModule) +local BATTLE_TASK_FIELD = GConst.BattleConst.BATTLE_TASK_FIELD function TaskManager:init() self:addEventListener(EventManager.CUSTOM_EVENT.DAILY_TASK_ADD_PROGRESS, function(id, taskId, from, to) @@ -147,13 +148,8 @@ function TaskManager:dispatchTask(type, count) end ------------------------------------------------------ 处理任务 ------------------------------------------------------ -function TaskManager:xKillMonster(params) - local num = params.num - if not num then - return - end - - self:dispatchTask(GConst.TaskConst.TASK_TYPE.X_KILL_MONSTER, num) +function TaskManager:xKillMonster(count) + self:dispatchTask(GConst.TaskConst.TASK_TYPE.X_KILL_MONSTER, count) end function TaskManager:xWatchAd() @@ -196,6 +192,34 @@ function TaskManager:dailyTaskWatchAdSpecial() self:dispatchTask(GConst.TaskConst.TASK_TYPE.DAILY_TASK_WATCH_AD_SPECIAL, 1) end +function TaskManager:skillBoxGotInBattle(count) + self:dispatchTask(GConst.TaskConst.TASK_TYPE.X_SKILL_BOX_GOT_IN_BATTLE, count) +end + +function TaskManager:xKillBoss(count) + self:dispatchTask(GConst.TaskConst.TASK_TYPE.X_KILL_BOSS, count) +end + +function TaskManager:xEliminate(count) + self:dispatchTask(GConst.TaskConst.TASK_TYPE.X_ELIMINATE, count) +end + +function TaskManager:xEliminateSixOnce(count) + self:dispatchTask(GConst.TaskConst.TASK_TYPE.X_ELIMINATE_SIX_ONCE, count) +end + +function TaskManager:xEliminateEightOnce(count) + self:dispatchTask(GConst.TaskConst.TASK_TYPE.X_ELIMINATE_EIGHT_ONCE, count) +end + +function TaskManager:xComboTen(count) + self:dispatchTask(GConst.TaskConst.TASK_TYPE.X_COMBO_TEN, count) +end + +function TaskManager:xUseSkill(count) + self:dispatchTask(GConst.TaskConst.TASK_TYPE.X_USE_SKILL, count) +end + ---- 没有特殊说明,方法均返回任务增量 TaskManager.TYPE_DEAL_FUNC = { [GConst.TaskConst.TASK_TYPE.X_WATCH_AD] = TaskManager.xWatchAd, @@ -208,8 +232,14 @@ TaskManager.TYPE_DEAL_FUNC = { [GConst.TaskConst.TASK_TYPE.X_HERO_FRAGMENT_GOT] = TaskManager.xHeroFragmentGot, [GConst.TaskConst.TASK_TYPE.COMPLETED_DALY_TASK] = TaskManager.completeDailyTask, [GConst.TaskConst.TASK_TYPE.DAILY_TASK_WATCH_AD_SPECIAL] = TaskManager.dailyTaskWatchAdSpecial, - - -- [GConst.TaskConst.TASK_TYPE.X_KILL_MONSTER] = TaskManager.xKillMonster, + [GConst.TaskConst.TASK_TYPE.X_SKILL_BOX_GOT_IN_BATTLE] = TaskManager.skillBoxGotInBattle, + [GConst.TaskConst.TASK_TYPE.X_KILL_BOSS] = TaskManager.xKillBoss, + [GConst.TaskConst.TASK_TYPE.X_KILL_MONSTER] = TaskManager.xKillMonster, + [GConst.TaskConst.TASK_TYPE.X_ELIMINATE] = TaskManager.xEliminate, + [GConst.TaskConst.TASK_TYPE.X_ELIMINATE_SIX_ONCE] = TaskManager.xEliminateSixOnce, + [GConst.TaskConst.TASK_TYPE.X_ELIMINATE_EIGHT_ONCE] = TaskManager.xEliminateEightOnce, + [GConst.TaskConst.TASK_TYPE.X_COMBO_TEN] = TaskManager.xComboTen, + [GConst.TaskConst.TASK_TYPE.X_USE_SKILL] = TaskManager.xUseSkill, } function TaskManager:taskGoto(taskType) @@ -268,4 +298,24 @@ function TaskManager:dealTaskType(taskType, callback, onlyGet) end end +function TaskManager:addFightTaskProgress(fightTaskProgress) + for fieldName, value in pairs(fightTaskProgress) do + local taskType = TaskManager.fightTaskProgressToTaskType[fieldName] + if taskType then + self:addTaskProgress(taskType, value) + end + end +end + +TaskManager.fightTaskProgressToTaskType = { + [BATTLE_TASK_FIELD.SKILL_BOX_OPEN] = GConst.TaskConst.TASK_TYPE.X_SKILL_BOX_GOT_IN_BATTLE, + [BATTLE_TASK_FIELD.KILL_BOSS] = GConst.TaskConst.TASK_TYPE.X_KILL_BOSS, + [BATTLE_TASK_FIELD.KILL_NORMAL_MONSTER] = GConst.TaskConst.TASK_TYPE.X_KILL_MONSTER, + [BATTLE_TASK_FIELD.ELIMINATION_COUNT] = GConst.TaskConst.TASK_TYPE.X_ELIMINATE, + [BATTLE_TASK_FIELD.LINK_COUNT_OVER_6] = GConst.TaskConst.TASK_TYPE.X_ELIMINATE_SIX_ONCE, + [BATTLE_TASK_FIELD.LINK_COUNT_OVER_8] = GConst.TaskConst.TASK_TYPE.X_ELIMINATE_EIGHT_ONCE, + [BATTLE_TASK_FIELD.COMBO_OVER_10] = GConst.TaskConst.TASK_TYPE.X_COMBO_TEN, + [BATTLE_TASK_FIELD.BOARD_SKILL_RELEASE_COUNT] = GConst.TaskConst.TASK_TYPE.X_USE_SKILL, +} + return TaskManager \ No newline at end of file diff --git a/lua/app/module/tips/tips_manager.lua b/lua/app/module/tips/tips_manager.lua index ca247843..312fb2de 100644 --- a/lua/app/module/tips/tips_manager.lua +++ b/lua/app/module/tips/tips_manager.lua @@ -22,12 +22,21 @@ function TipsManager:showHelpTips(params) UIManager:showUI("app/ui/tips/help_tips", params) end -function TipsManager:showRewardTips(id, type, tarPrefabObj, alignType, params) - if type == GConst.REWARD_TYPE.ITEM then - self:showItemTips(id, tarPrefabObj, alignType) - elseif type == GConst.REWARD_TYPE.LEGACY then - self:showLegacyTips(id) +function TipsManager:showRewardTips(rewardId, rewardType, tarPrefabObj, alignType) + if rewardType == GConst.REWARD_TYPE.ITEM then + local info = ConfigManager:getConfig("item")[rewardId] + if info then + if info.type == GConst.ItemConst.ITEM_TYPE.RANDOM_FRAGMENT then + self:showHeroFragmentTips(rewardId) + return + elseif info.type == GConst.ItemConst.ITEM_TYPE.BOX then + self:showBoxTips(rewardId) + return + end + end end + local desc = self:getRewardDesc(rewardId, rewardType) + self:showDescTips(desc, tarPrefabObj, alignType) end function TipsManager:showRewardsBox(params) @@ -48,10 +57,11 @@ function TipsManager:showItemTips(id, tarPrefabObj, alignType) UIManager:showUI("app/ui/tips/item_tips", params) end -function TipsManager:showRewardsTips(rewards, customTitleStr, tarPrefabObj, alignType) +function TipsManager:showRewardsTips(rewards, customTitleStr, tarPrefabObj, callback, alignType) local params = { rewards = rewards, customTitleStr = customTitleStr, + callback = callback, aniType = UIManager.ANI_TYPE.NONE, } if tarPrefabObj then @@ -77,6 +87,30 @@ function TipsManager:showDescTips(desc, tarPrefabObj, alignType) UIManager:showUI("app/ui/tips/desc_tips", params) end +function TipsManager:showHeroFragmentTips(itemId) + local params = { + itemId = itemId + } + UIManager:showUI("app/ui/tips/hero_fragment_tips", params) +end + +function TipsManager:showBoxTips(itemId) + local params = { + itemId = itemId + } + UIManager:showUI("app/ui/tips/box_tips", params) +end + +function TipsManager:getRewardDesc(rewardId, rewardType) + if rewardType == GConst.REWARD_TYPE.ITEM then + local item18NInfo = I18N:getConfig("item")[rewardId] + if item18NInfo then + return item18NInfo.desc + end + end + return GConst.EMPTY_STRING +end + function TipsManager:getCornerScreenPosition(tarPrefabObj, alignType) local uiCamera = UIManager:getUICameraComponent() local rectTransform = tarPrefabObj:getComponent(GConst.TYPEOF_UNITY_CLASS.RECTTRANSFORM) diff --git a/lua/app/proto/proto_msg_type.lua b/lua/app/proto/proto_msg_type.lua index 7caa38fe..d111ba99 100644 --- a/lua/app/proto/proto_msg_type.lua +++ b/lua/app/proto/proto_msg_type.lua @@ -36,6 +36,8 @@ local ProtoMsgType = { [1666429753] = "MailDeleteRsp", [1690297937] = "SummonReq", [1690299770] = "SummonRsp", + [1746317288] = "IdleInfoReq", + [1746319121] = "IdleInfoRsp", [1901321540] = "PipedReq", [2095612947] = "ChangeNameReq", [2095614780] = "ChangeNameRsp", @@ -134,6 +136,8 @@ local ProtoMsgType = { MailDeleteRsp = 1666429753, SummonReq = 1690297937, SummonRsp = 1690299770, + IdleInfoReq = 1746317288, + IdleInfoRsp = 1746319121, PipedReq = 1901321540, ChangeNameReq = 2095612947, ChangeNameRsp = 2095614780, @@ -232,6 +236,8 @@ local ProtoMsgType = { MailDeleteRsp = "MailDeleteRsp", SummonReq = "SummonReq", SummonRsp = "SummonRsp", + IdleInfoReq = "IdleInfoReq", + IdleInfoRsp = "IdleInfoRsp", PipedReq = "PipedReq", ChangeNameReq = "ChangeNameReq", ChangeNameRsp = "ChangeNameRsp", diff --git a/lua/app/ui/battle/battle_result_ui.lua b/lua/app/ui/battle/battle_result_ui.lua index c8d0a314..2a3be616 100644 --- a/lua/app/ui/battle/battle_result_ui.lua +++ b/lua/app/ui/battle/battle_result_ui.lua @@ -9,6 +9,7 @@ end function BattleResultUI:ctor(params) self.rewards = params.rewards self.combatReport = params.combatReport + self.mysteryBoxIdx = params.mysteryBoxIdx or 0 self.totalDmg = 0 if self.combatReport.atkReport then for _, info in ipairs(self.combatReport.atkReport) do @@ -103,6 +104,7 @@ function BattleResultUI:refreshRewards() end) self.scrollRectComp:addRefreshCallback(function(index, cell) cell:refresh(self.rewards[index]) + cell:showLeftUpIcon(index <= self.mysteryBoxIdx, GConst.ATLAS_PATH.COMMON, "common_chest_1") end) self.scrollRectComp:setFadeArgs(0.05, 0.3) self.scrollRectComp:clearCells() diff --git a/lua/app/ui/battle/battle_ui.lua b/lua/app/ui/battle/battle_ui.lua index 862a9781..d0712443 100644 --- a/lua/app/ui/battle/battle_ui.lua +++ b/lua/app/ui/battle/battle_ui.lua @@ -884,6 +884,7 @@ function BattleUI:eliminationAni(aniSequence, effectGridMap, callback) end local baseObject = entity:getCell():getBaseObject() baseObject:getTransform():SetAsLastSibling() + local anitime = 0 if info.aniPosList then local posList = {} local count = 0 @@ -891,17 +892,8 @@ function BattleUI:eliminationAni(aniSequence, effectGridMap, callback) table.insert(posList, ModuleManager.BattleManager:getPosInfo(posId)) count = count + 1 end - local anitime = count * GConst.BattleConst.GRID_BREAK_EFFECT_INTERVAL + anitime = count * GConst.BattleConst.GRID_BREAK_EFFECT_INTERVAL self.eliminationAniSeq:Insert(time, baseObject:getTransform():DOLocalPath(posList, anitime):SetEase(CS.DG.Tweening.Ease.Linear)) - - if info.overCallback then - self.eliminationAniSeq:InsertCallback(time + anitime, function() - if info.noAni then - baseObject:setAnchoredPositionX(DEFAULT_X) - end - info.overCallback() - end) - end else if info.noAni then baseObject:setAnchoredPositionX(DEFAULT_X) @@ -918,10 +910,25 @@ function BattleUI:eliminationAni(aniSequence, effectGridMap, callback) obj:play() end) end) - self.eliminationAniSeq:Insert(time + 0.2, baseObject:getTransform():DOAnchorPos(self:getElementSkillPos(entity:getElementType()), 0.3)) + local targetPos = self:getElementSkillPos(entity:getElementType()) + if info.breakFlyToCharacter then + targetPos = self.battleController.atkTeam:getMainUnit():getBaseObject():getTransform().position + local sPoint = UIManager:getUICameraComponent():WorldToScreenPoint(targetPos) + targetPos = CS.BF.Utils.RectTransformScreenPointToLocalPointInRectangle(self.boardNode:getTransform(), sPoint.x, sPoint.y, UIManager:getUICameraComponent()) + end + self.eliminationAniSeq:Insert(time + 0.2, baseObject:getTransform():DOAnchorPos(targetPos, 0.3)) self.eliminationAniSeq:Insert(time + 0.2, baseObject:getTransform():DOScale(0.5, 0.3)) + anitime = 0.5 end end + if info.overCallback then + self.eliminationAniSeq:InsertCallback(time + anitime, function() + if info.noAni then + baseObject:setAnchoredPositionX(DEFAULT_X) + end + info.overCallback() + end) + end end end end @@ -1184,10 +1191,10 @@ function BattleUI:fallGrid(listInfo, isRoundBeginCheck, callback) end self.fallAniCount = 0 for posId, info in pairs(listInfo) do - self.fallAniCount = self.fallAniCount + 1 local entity = DataManager.BattleData:getGridEntity(posId) local cell = entity:getCell() if cell then + self.fallAniCount = self.fallAniCount + 1 if cell.fallSeq then cell.fallSeq:Kill() cell.fallSeq = nil diff --git a/lua/app/ui/bounty/bounty_buy_ui.lua b/lua/app/ui/bounty/bounty_buy_ui.lua index 3022d4de..2f7ea196 100644 --- a/lua/app/ui/bounty/bounty_buy_ui.lua +++ b/lua/app/ui/bounty/bounty_buy_ui.lua @@ -1,5 +1,9 @@ local BountyBuyUI = class("BountyBuyUI", BaseUI) +function BountyBuyUI:ctor() + self.endTime = DataManager.BountyData:getEndTime() +end + function BountyBuyUI:isFullScreen() return false end @@ -16,17 +20,89 @@ function BountyBuyUI:onLoadRootComplete() self:closeUI() end) - local buyBtn = uiMap["bounty_buy_ui.bg.buy_btn"] + self:initTitle() + self:initTime() + self:initRewards() + self:initBtns() + + self:scheduleGlobal(function() + self:updateTime() + end, 1) + self:updateTime() +end + +function BountyBuyUI:initTitle() + self.uiMap["bounty_buy_ui.bg.title_tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.BOUNTY_PURCHASE_NAME)) +end + +function BountyBuyUI:initTime() + self.timeTx = self.uiMap["bounty_buy_ui.bg.time_tx"] +end + +function BountyBuyUI:initRewards() + self.uiMap["bounty_buy_ui.bg.desc_tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.REWARD_DESC)) + local preferredWidth = self.uiMap["bounty_buy_ui.bg.desc_tx"]:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_TEXT_MESH_PRO).preferredWidth + self.uiMap["bounty_buy_ui.bg.left_arrow"]:setAnchoredPositionX(-30 - preferredWidth/2) + self.uiMap["bounty_buy_ui.bg.right_arrow"]:setAnchoredPositionX(30 + preferredWidth/2) + + local list = DataManager.BountyData:getAllProRewards() + for i = 1, 10 do + local cell = self.uiMap["bounty_buy_ui.bg.reward_cell_" .. i]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL) + if list[i] then + cell:setVisible(true, 0.7) + cell:refreshByConfig(list[i]) + else + cell:setVisible(false) + end + end +end + +function BountyBuyUI:initBtns() + self.uiMap["bounty_buy_ui.bg.name_1"]:setText(I18N:getGlobalText(I18N.GlobalConst.BOUNTY_PURCHASE_NAME)) + self.uiMap["bounty_buy_ui.bg.name_2"]:setText(I18N:getGlobalText(I18N.GlobalConst.BOUNTY_PURCHASE_NAME)) + self.uiMap["bounty_buy_ui.bg.desc_tx_1"]:setText(I18N:getGlobalText(I18N.GlobalConst.BOUNTY_DESC_1)) + self.uiMap["bounty_buy_ui.bg.desc_tx_2"]:setText(I18N:getGlobalText(I18N.GlobalConst.BOUNTY_DESC_2)) + + local rechargeId = DataManager.BountyData:getRechargeId(false) + self.uiMap["bounty_buy_ui.bg.buy_btn.tx"]:setText(GFunc.getFormatPrice(rechargeId)) + local proRechargeId = DataManager.BountyData:getRechargeId(true) + self.uiMap["bounty_buy_ui.bg.buy_btn_advanced.tx"]:setText(GFunc.getFormatPrice(proRechargeId)) + + local buyBtn = self.uiMap["bounty_buy_ui.bg.buy_btn"] buyBtn:addClickListener(function() self:closeUI() ModuleManager.BountyManager:buyBounty(false) end) - local buyBtnAdvanced = uiMap["bounty_buy_ui.bg.buy_btn_advanced"] + local buyBtnAdvanced = self.uiMap["bounty_buy_ui.bg.buy_btn_advanced"] buyBtnAdvanced:addClickListener(function() - self:closeUI() - ModuleManager.BountyManager:buyBounty(true) + local level = DataManager.BountyData:getLevel() + local maxLevel = DataManager.BountyData:getMaxLevel() + local buyProBountyAddLevels = DataManager.BountyData:getBuyProBountyAddLevelCount() + if level > maxLevel - buyProBountyAddLevels then + local params = { + content = "购买此通行证会超过通行证等级上限,会造成损失,是否购买?", + boxType = GConst.MESSAGE_BOX_TYPE.MB_OK_CANCEL, + okFunc = function() + self:closeUI() + ModuleManager.BountyManager:buyBounty(true) + end + } + GFunc.showMessageBox(params) + else + self:closeUI() + ModuleManager.BountyManager:buyBounty(true) + end end) end +function BountyBuyUI:updateTime() + local remainTime = self.endTime - Time:getServerTime() + if remainTime < 0 then + UIManager:closeUnderUI(self) + return self:closeUI() + end + self.timeTx:setText(GFunc.getTimeStr(remainTime)) +end + return BountyBuyUI \ No newline at end of file diff --git a/lua/app/ui/bounty/bounty_main_ui.lua b/lua/app/ui/bounty/bounty_main_ui.lua index e3e8f5c1..9d4e911c 100644 --- a/lua/app/ui/bounty/bounty_main_ui.lua +++ b/lua/app/ui/bounty/bounty_main_ui.lua @@ -49,6 +49,11 @@ function BountyMainUI:onLoadRootComplete() self:initRewards() self:bindData() + + -- 没有购买通行证的话,每日首次打开战令界面主动弹通行证购买弹窗 + if DataManager.BountyData:getIsPopBought() then + ModuleManager.BountyManager:showBountyBuyUI() + end self:scheduleGlobal(function() self:updateTime() end, 1) @@ -176,15 +181,23 @@ end function BountyMainUI:initRepeatReward() self.adjustRepeatRewardRoot = false self.repeatRewardRoot = self.uiMap["bounty_main_ui.mid_node.scrollrect.viewport.content.repeat"] - self.uiMap["bounty_main_ui.mid_node.scrollrect.viewport.content.repeat.title_tx"]:setText("临时文本:奖励宝箱") - self.uiMap["bounty_main_ui.mid_node.scrollrect.viewport.content.repeat.desc_tx"]:setText("临时文本:当你完成通行证的所有内容,每1000个积分可以获取一个奖励宝箱") + self.uiMap["bounty_main_ui.mid_node.scrollrect.viewport.content.repeat.title_tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.REWARD_BOX_DESC)) + self.uiMap["bounty_main_ui.mid_node.scrollrect.viewport.content.repeat.desc_tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.BOUNTY_DESC_3)) self.repeatBox = self.uiMap["bounty_main_ui.mid_node.scrollrect.viewport.content.repeat.box"] self.repeatBox:addClickListener(function() if DataManager.BountyData:getIfCanClaimRepeatReward() then local level = DataManager.BountyData:getLevel() ModuleManager.BountyManager:claimReward(level, false) else - GFunc.showToast("显示宝箱tips") + local levelInfo = DataManager.BountyData:getRepeatLevelInfo() + if levelInfo then + local reward = levelInfo.reward + if reward then + local rewardId = GFunc.getRewardId(reward) + local rewardType = GFunc.getRewardType(reward) + ModuleManager.TipsManager:showRewardTips(rewardId, rewardType, self.repeatBox) + end + end end end) end @@ -230,7 +243,7 @@ function BountyMainUI:refreshLv() self.levelSliderTx:setText(exp .. "/" .. lvUpExp) self.levelSlider:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_SLIDER).value = exp / lvUpExp if level >= maxLevel then - self.lvTx:setText("临时文本:MAX") + self.lvTx:setText(I18N:getGlobalText(I18N.GlobalConst.STR_MAX)) else self.lvTx:setText(tostring(level)) end @@ -241,10 +254,10 @@ end function BountyMainUI:refreshPayBtn() if DataManager.BountyData:getBought() then self.payBtn:setTouchEnable(false) - self.payBtnTx:setText("临时文本:已激活") + self.payBtnTx:setText(I18N:getGlobalText(I18N.GlobalConst.ALREADY_ACTIVE)) else self.payBtn:setTouchEnable(true) - self.payBtnTx:setText("临时文本:激活黄金通行证") + self.payBtnTx:setText(I18N:getGlobalText(I18N.GlobalConst.ACTIVE_BOUNTY)) end end @@ -254,13 +267,13 @@ function BountyMainUI:refreshPreviewReward(idx) return end self.previewRewardCellComp:refreshByConfig(info.reward_pro) - self.previewRewardNumTx:setText("临时文本:X" .. GFunc.getRewardNum(info.reward_pro)) - self.previewRewardLvTx:setText("临时文本:等级" .. idx) + self.previewRewardNumTx:setText("X" .. GFunc.getRewardNum(info.reward_pro)) + self.previewRewardLvTx:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_DESC_1, idx)) end function BountyMainUI:refreshRewards() - self.rewardsLeftTitleTx:setText("临时文本:免费通行证") - self.rewardsRightTitleTx:setText("临时文本:黄金通行证") + self.rewardsLeftTitleTx:setText(I18N:getGlobalText(I18N.GlobalConst.BOUNTY_FREE_NAME)) + self.rewardsRightTitleTx:setText(I18N:getGlobalText(I18N.GlobalConst.BOUNTY_PURCHASE_NAME)) if not self.adjustRewardsTitleUI then self.adjustRewardsTitleUI = true GFunc.centerImgAndTx(self.rewardsLeftTitleIcon, self.rewardsLeftTitleTx) diff --git a/lua/app/ui/bounty/cell/bounty_reward_cell.lua b/lua/app/ui/bounty/cell/bounty_reward_cell.lua index 73b7638f..858902ec 100644 --- a/lua/app/ui/bounty/cell/bounty_reward_cell.lua +++ b/lua/app/ui/bounty/cell/bounty_reward_cell.lua @@ -15,8 +15,7 @@ function BountyRewardCell:init() if self.clickCallback then self.clickCallback() elseif self.rewardId ~= nil then - local desc = self:getRewardDesc(self.rewardId, self.rewardType) - ModuleManager.TipsManager:showDescTips(desc, self.baseObject) + ModuleManager.TipsManager:showRewardTips(self.rewardId, self.rewardType, self.baseObject) end end) end @@ -84,16 +83,6 @@ function BountyRewardCell:addClickListener(callback) self.clickCallback = callback end -function BountyRewardCell:getRewardDesc(id, rewardType) - if rewardType == GConst.REWARD_TYPE.ITEM then - local item18NInfo = I18N:getConfig("item")[id] - if item18NInfo then - return item18NInfo.desc - end - end - return GConst.EMPTY_STRING -end - function BountyRewardCell:showLight() self.light:setVisible(true) end diff --git a/lua/app/ui/commerce/buy_vit_ui.lua b/lua/app/ui/commerce/buy_vit_ui.lua index 35f48ac1..918898cf 100644 --- a/lua/app/ui/commerce/buy_vit_ui.lua +++ b/lua/app/ui/commerce/buy_vit_ui.lua @@ -14,29 +14,25 @@ end function BuyVitUI:onLoadRootComplete() local uiMap = self.root:genAllChildren() - self.root:addClickListener(function() - self:closeUI() - end) - uiMap["buy_vit_ui.bg.close_btn"]:addClickListener(function() self:closeUI() end) - -- uiMap["buy_vit_ui.bg.title_tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.BUY_VIT_DESC_1)) + uiMap["buy_vit_ui.bg.title_tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.BUY_ENERGY)) local constCfg = ConfigManager:getConfig("const") local diamondReward = constCfg["stamina_diamond_buy"].reward local adReward = constCfg["stamina_ad_buy"].reward - uiMap["buy_vit_ui.bg.cell_1.num_tx"]:setText("x" .. GFunc.getRewardNum(diamondReward)) - uiMap["buy_vit_ui.bg.cell_2.num_tx"]:setText("x" .. GFunc.getRewardNum(adReward)) + uiMap["buy_vit_ui.bg.cell_1.num_tx_1"]:setText("x" .. GFunc.getRewardNum(diamondReward)) + uiMap["buy_vit_ui.bg.cell_2.num_tx_1"]:setText("x" .. GFunc.getRewardNum(adReward)) self.descTx1 = uiMap["buy_vit_ui.bg.cell_1.desc_tx"] self.descTx2 = uiMap["buy_vit_ui.bg.cell_2.desc_tx"] - self.numTx1 = uiMap["buy_vit_ui.bg.cell_1.num_tx_1"] - self.numTx2 = uiMap["buy_vit_ui.bg.cell_2.num_tx_1"] + self.numTx1 = uiMap["buy_vit_ui.bg.cell_1.num_tx_2"] + self.numTx2 = uiMap["buy_vit_ui.bg.cell_2.num_tx_2"] self.checkImg1 = uiMap["buy_vit_ui.bg.cell_1.check_img"] self.checkImg2 = uiMap["buy_vit_ui.bg.cell_2.check_img"] - self.iconImg1 = uiMap["buy_vit_ui.bg.cell_1.icon_img_1"] - self.iconImg2 = uiMap["buy_vit_ui.bg.cell_2.icon_img_1"] + self.iconImg1 = uiMap["buy_vit_ui.bg.cell_1.icon_img"] + self.iconImg2 = uiMap["buy_vit_ui.bg.cell_2.icon_img"] self.buyBtn1 = uiMap["buy_vit_ui.bg.cell_1"] self.buyBtn2 = uiMap["buy_vit_ui.bg.cell_2"] @@ -84,9 +80,6 @@ function BuyVitUI:onRefresh() self.checkImg2:setVisible(false) self.iconImg2:setVisible(true) self.numTx2:setVisible(true) - self.iconImg2:setSprite(GConst.ATLAS_PATH.COMMON, "common_ad", function () - self.iconImg2:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_IMAGE):SetNativeSize() - end) else self.buyBtn2:setTouchEnable(false) self.checkImg2:setVisible(true) @@ -94,13 +87,18 @@ function BuyVitUI:onRefresh() self.numTx2:setVisible(false) end - self.descTx1:setText(I18N:getGlobalText(I18N.GlobalConst.BUY_VIT_DESC_2, maxGemBuy - gemBuyCount)) - self.descTx2:setText(I18N:getGlobalText(I18N.GlobalConst.BUY_VIT_DESC_2, maxAdBuy - adBuyCount)) + self.descTx1:setText(I18N:getGlobalText(I18N.GlobalConst.TODAY_REMAIN_TIMES, maxGemBuy - gemBuyCount)) + self.descTx2:setText(I18N:getGlobalText(I18N.GlobalConst.TODAY_REMAIN_TIMES, maxAdBuy - adBuyCount)) local constCfg = ConfigManager:getConfig("const") local diamondCost = constCfg["stamina_diamond_cost"].reward self.numTx1:setText(tostring(GFunc.getRewardNum(diamondCost))) self.numTx2:setText((maxAdBuy - adBuyCount) .. "/" .. GFunc.getConstIntValue("stamina_ad_times")) + if not self.adjustIconAndNum then + self.adjustIconAndNum = true + GFunc.centerImgAndTx(self.iconImg1, self.numTx1) + GFunc.centerImgAndTx(self.iconImg2, self.numTx2) + end end return BuyVitUI \ No newline at end of file diff --git a/lua/app/ui/common/cell/reward_cell.lua b/lua/app/ui/common/cell/reward_cell.lua index 1e0760e7..0e334896 100644 --- a/lua/app/ui/common/cell/reward_cell.lua +++ b/lua/app/ui/common/cell/reward_cell.lua @@ -8,14 +8,14 @@ function RewardCell:init() self.check = uiMap["reward_cell.check"] self.numTx = uiMap["reward_cell.item_bg.num"] self.fragment = uiMap["reward_cell.item_bg.fragment"] + self.leftUpIcon = uiMap["reward_cell.item_bg.left_up_icon"] self.frameAni = uiMap["reward_cell.frame_ani"] self:hideFrameAnimation() self.baseObject:addClickListener(function() if self.clickCallback then self.clickCallback() elseif self.rewardId ~= nil then - local desc = self:getRewardDesc(self.rewardId, self.rewardType) - ModuleManager.TipsManager:showDescTips(desc, self.baseObject) + ModuleManager.TipsManager:showRewardTips(self.rewardId, self.rewardType, self.baseObject) end end) end @@ -23,7 +23,11 @@ end function RewardCell:refresh(reward) self:showMask(false, false) if reward.type == GConst.REWARD_TYPE.ITEM then - self:_refreshItem(reward.item) + local info = ConfigManager:getConfig("item")[reward.item.id] + if info == nil then + return + end + self:_refreshItem(info, reward.item.count) self.rewardId = reward.item.id self.rewardType = reward.type else @@ -34,7 +38,11 @@ end function RewardCell:refreshByConfig(reward, mask, check) self:showMask(mask, check) if reward.type == GConst.REWARD_TYPE.ITEM then - self:_refreshItem(reward) + local info = ConfigManager:getConfig("item")[reward.id] + if info == nil then + return + end + self:_refreshItem(info, reward.num) self.rewardId = reward.id self.rewardType = reward.type else @@ -42,14 +50,29 @@ function RewardCell:refreshByConfig(reward, mask, check) end end -function RewardCell:_refreshItem(item) - local info = ConfigManager:getConfig("item")[item.id] +function RewardCell:refreshItemById(itemId, count, mask, check) + self:showMask(mask, check) + local info = ConfigManager:getConfig("item")[itemId] if info == nil then return end + self.rewardId = itemId + self.rewardType = GConst.REWARD_TYPE.ITEM + self:_refreshItem(info, count) +end + +function RewardCell:_refreshItem(info, count) self.numTx:setVisible(true) self.frameBg:setSprite(GConst.ATLAS_PATH.ICON_ITEM, GConst.FRAME_QLT[info.qlt]) - self.numTx:setText(item.count or item.num) + if count > 0 then + if count > 100 then + self.numTx:setText(GFunc.num2Str(count)) + else + self.numTx:setText(GFunc.intToString(count)) + end + else + self.numTx:setText(GConst.EMPTY_STRING) + end if info.type == GConst.ItemConst.ITEM_TYPE.HERO_FRAGMENT then local heroInfo = ConfigManager:getConfig("hero")[info.parameter] if heroInfo then @@ -66,14 +89,10 @@ function RewardCell:_refreshItem(item) end end -function RewardCell:showNumTx(str) +function RewardCell:setNumTx(str) self.numTx:setText(str) end -function RewardCell:showNumTx(value) - self.numTx:setText(value) -end - function RewardCell:showMask(show, syncCheck) self.mask:setVisible(show == true) self:showCheck(syncCheck) @@ -106,16 +125,6 @@ function RewardCell:setLocalScale(x, y, z) self.baseObject:setLocalScale(x, y, z) end -function RewardCell:getRewardDesc(id, rewardType) - if rewardType == GConst.REWARD_TYPE.ITEM then - local item18NInfo = I18N:getConfig("item")[id] - if item18NInfo then - return item18NInfo.desc - end - end - return GConst.EMPTY_STRING -end - function RewardCell:showFrameAnimation(rewardType) self.frameAni:setVisible(true) self.frameAni:getComponent(GConst.TYPEOF_UNITY_CLASS.ANIMATOR).enabled = true @@ -131,4 +140,12 @@ function RewardCell:hideFrameAnimation() self.frameAni:setVisible(false) end +function RewardCell:showLeftUpIcon(show, atlas, iconName) + self.leftUpIcon:setVisible(show) + if not show then + return + end + self.leftUpIcon:setSprite(atlas, iconName) +end + return RewardCell \ No newline at end of file diff --git a/lua/app/ui/common/message_box.lua b/lua/app/ui/common/message_box.lua index e1d3dae7..e565acfa 100644 --- a/lua/app/ui/common/message_box.lua +++ b/lua/app/ui/common/message_box.lua @@ -53,14 +53,17 @@ function MessageBox:showMessageBox(params) if costId then local itemInfo = ConfigManager:getConfig("item")[costId] if itemInfo then + uiMap["message_box.title_bg_img.btn.ok_btn.icon"]:setVisible(true) uiMap["message_box.title_bg_img.btn.ok_btn.icon"]:setSprite(GConst.ATLAS_PATH.ICON_ITEM, itemInfo.icon) uiMap["message_box.title_bg_img.btn.ok_btn.text"]:setText(tostring(costNum)) GFunc.centerImgAndTx(uiMap["message_box.title_bg_img.btn.ok_btn.icon"], uiMap["message_box.title_bg_img.btn.ok_btn.text"]) else + uiMap["message_box.title_bg_img.btn.ok_btn.icon"]:setVisible(false) uiMap["message_box.title_bg_img.btn.ok_btn.text"]:setAnchoredPositionX(0) uiMap["message_box.title_bg_img.btn.ok_btn.text"]:setText(okText or I18N:getGlobalText(I18N.GlobalConst.BTN_TEXT_OK)) end else + uiMap["message_box.title_bg_img.btn.ok_btn.icon"]:setVisible(false) uiMap["message_box.title_bg_img.btn.ok_btn.text"]:setAnchoredPositionX(0) uiMap["message_box.title_bg_img.btn.ok_btn.text"]:setText(okText or I18N:getGlobalText(I18N.GlobalConst.BTN_TEXT_OK)) end diff --git a/lua/app/ui/game_setting/select_other_btn_ui.lua b/lua/app/ui/game_setting/select_other_btn_ui.lua index cd68ed82..29e08790 100644 --- a/lua/app/ui/game_setting/select_other_btn_ui.lua +++ b/lua/app/ui/game_setting/select_other_btn_ui.lua @@ -18,14 +18,15 @@ function SelectOtherBtnUI:onLoadRootComplete() end) self.uiMap["select_other_btn_ui.bg.mail_btn"]:addClickListener(function() self:closeUI() + ModuleManager.MailManager:showMailUI() end) - self.uiMap["select_other_btn_ui.bg.mail_btn.text"]:setText("临时文本:邮箱") + self.uiMap["select_other_btn_ui.bg.mail_btn.text"]:setText(I18N:getGlobalText(I18N.GlobalConst.MAIL_NAME)) self.uiMap["select_other_btn_ui.bg.setting_btn"]:addClickListener(function() self:closeUI() ModuleManager.GameSettingManager:showSettingUI() end) - self.uiMap["select_other_btn_ui.bg.setting_btn.text"]:setText("临时文本:设置") + self.uiMap["select_other_btn_ui.bg.setting_btn.text"]:setText(I18N:getGlobalText(I18N.GlobalConst.SETTING_DESC)) end return SelectOtherBtnUI \ No newline at end of file diff --git a/lua/app/ui/idle/component.meta b/lua/app/ui/idle/component.meta new file mode 100644 index 00000000..7d507ca5 --- /dev/null +++ b/lua/app/ui/idle/component.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 270ddde2b19882f4099ce87020f433cf +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/lua/app/ui/idle/component/idle_unit_comp.lua b/lua/app/ui/idle/component/idle_unit_comp.lua new file mode 100644 index 00000000..2b0624e8 --- /dev/null +++ b/lua/app/ui/idle/component/idle_unit_comp.lua @@ -0,0 +1,375 @@ +local IdleUnitComp = class("BattleUnitComp", LuaComponent) + +local UNIT_STATE_INIT = 0 +local UNIT_STATE_IDLE = 1 +local UNIT_STATE_ATTACK = 2 +local UNIT_STATE_DEAD = 3 +local UNIT_STATE_BORN = 4 +local ATTACK_COUNT = 4 -- 写死攻击4次 +local INIT_POS_X = 150 +local UNIT_FRONT_POS_X = 0 +local MOVE_SPEED = 2000 -- 战斗单位攻击时的移动速度 + +function IdleUnitComp:ctor() +end + +function IdleUnitComp:init() + self.isPlayHurt = 0 + self.body = self.baseObject:getChildByName("body") + self.currState = UNIT_STATE_INIT + self.isClear = false +end + +function IdleUnitComp:initSkills(skillIds) + self.normalSkills = {} + local skillCfg = ConfigManager:getConfig("skill") + if skillIds then + for k, v in ipairs(skillIds) do + if skillCfg[v] then + table.insert(self.normalSkills, skillCfg[v]) + end + end + end +end + +function IdleUnitComp:getModelId() + return self.modelId +end + +function IdleUnitComp:setActive(isActive) + self.baseObject:setActive(isActive) +end + +function IdleUnitComp:setTarget(target) + self.target = target +end + +function IdleUnitComp:prepare(side, modelId) + self.side = side + self.modelId = modelId + self:initPosition() +end + +function IdleUnitComp:initPosition() + if self.side == 1 then + self.baseObject:setLocalPosition(-INIT_POS_X, 0, 0) + self.body:setLocalScaleX(1) + self.direction = 1 + else + self.baseObject:setLocalPosition(INIT_POS_X, 0, 0) + self.body:setLocalScaleX(-1) + self.direction = -1 + end +end + +function IdleUnitComp:playAnimation(name, loop, forceRefresh) + if name == GConst.BattleConst.SPINE_ANIMATION_NAME.HIT then + self.isPlayHurt = 1 + else + self.isPlayHurt = 0 + end + self.baseObject:playAnimation(name, loop, forceRefresh) +end + +function IdleUnitComp:playBorn() + self.isPlayHurt = 0 + self.currState = UNIT_STATE_INIT + self.isClear = false + if self.side == 1 then + self:changeState(UNIT_STATE_IDLE) + else + self:changeState(UNIT_STATE_BORN) + end +end + +function IdleUnitComp:updateBorn(dt) + self.waitTime = self.waitTime - dt + if self.waitTime < 0 then + self:changeState(UNIT_STATE_IDLE) + end +end + +function IdleUnitComp:enterBornState() + self.waitTime = self:getAnimationDuration(GConst.BattleConst.SPINE_ANIMATION_NAME.BORN) + self:playAnimation(GConst.BattleConst.SPINE_ANIMATION_NAME.BORN, false, false) +end + +function IdleUnitComp:changeState(state) + if self.currState == state and not self:repeatCurrState() then + return false + end + if self.currState == UNIT_STATE_DEAD then -- 死亡后只能去死亡状态 + if state ~= UNIT_STATE_DEAD then + return false + end + end + -- 离开当前状态 + -- if self.currState == UNIT_STATE_IDLE then + -- elseif self.currState == UNIT_STATE_ATTACK then + -- elseif self.currState == UNIT_STATE_DEAD then + -- end + -- 进入目标状态 + self.currState = state + if state == UNIT_STATE_IDLE then + self:enterIdleState() + elseif state == UNIT_STATE_ATTACK then + self:enterAttackState() + elseif state == UNIT_STATE_DEAD then + self:enterDeadState() + elseif state == UNIT_STATE_BORN then + self:enterBornState() + end + return true +end + +function IdleUnitComp:repeatCurrState() + if self.currState == UNIT_STATE_ATTACK then + return true + end + return false +end + +function IdleUnitComp:playHurt() + self.hurtTime = 0 + if self.currHitDuration == nil then + self.currHitDuration = self:getAnimationDuration(GConst.BattleConst.SPINE_ANIMATION_NAME.HIT) + end + self:playAnimation(GConst.BattleConst.SPINE_ANIMATION_NAME.HIT, false, false) +end + +function IdleUnitComp:updateHurt(dt) + if self.isPlayHurt == 0 then + return + end + if self.isPlayHurt == 1 then + self.hurtTime = self.hurtTime + dt + if self.hurtTime >= self.currHitDuration then + self:playAnimation(GConst.BattleConst.SPINE_ANIMATION_NAME.IDLE, true, false) + self.isPlayHurt = 0 + end + end +end + +function IdleUnitComp:updateIdle(dt) + self:updateHurt(dt) +end + +function IdleUnitComp:enterIdleState() + self:playAnimation(GConst.BattleConst.SPINE_ANIMATION_NAME.IDLE, true, false) +end + +function IdleUnitComp:doAttack(callback) + self.baseObject:getTransform():SetAsLastSibling() + self.actionOverCallback = callback + self.attackCount = ATTACK_COUNT + self:changeState(UNIT_STATE_ATTACK) +end + +function IdleUnitComp:enterAttackState() + self.attackOver = false + self.attackTime = 0 + local skillInfo = self:getNormalSkill(true) + if skillInfo.skill_position == GConst.BattleConst.SKILL_MOVE_TYPE.MOVE then + self.isMove = true + self:playAnimation(GConst.BattleConst.SPINE_ANIMATION_NAME.MOVE, true, false) + self.positionX = self.baseObject:fastGetLocalPosition() + if self.side == 1 then + self.targetX = UNIT_FRONT_POS_X + self.moveDirection = 1 + else + self.targetX = -UNIT_FRONT_POS_X + self.moveDirection = -1 + end + else + self.isMove = false + local attackName = skillInfo.name_act + self.currAttackDuration = self:getAnimationDuration(attackName) + self.currAttackKeyTime = self:getAnimationKeyFrameTime(attackName) + self:playAnimation(attackName, false, false) + end +end + +function IdleUnitComp:updateAttack(dt) + if self.isMove then + local addX = dt*MOVE_SPEED*self.moveDirection + self.positionX = self.positionX + addX + if (self.moveDirection > 0 and self.positionX >= self.targetX) or (self.moveDirection < 0 and self.positionX <= self.targetX) then + self.isMove = false + self.positionX = self.targetX + if self.attackOver then -- 归位后该下一步了 + self:onAttackOver() + else -- 到位置该攻击了 + self:doNextAttack() + end + end + self.baseObject:setLocalPosition(self.positionX, 0, 0) + return + end + self.attackTime = self.attackTime + dt + if self.attackTime >= self.currAttackDuration then + self.attackOver = true + self.attackCount = self.attackCount - 1 + if self.attackCount <= 0 then + local skillInfo = self:getNormalSkill() + if skillInfo.skill_position == GConst.BattleConst.SKILL_MOVE_TYPE.MOVE then + self:moveBackToInitPosition() + else + self:onAttackOver() + end + return + else -- 继续攻击 + self:doNextAttack() + end + else + if self.currAttackKeyTime > 0 and self.attackTime >= self.currAttackKeyTime then + self.currAttackKeyTime = 0 + if self.attackCount == 1 then -- 最后一次攻击的话对方该死了 + self.target:changeState(UNIT_STATE_DEAD) + else + self.target:playHurt() + end + end + end +end + +function IdleUnitComp:moveBackToInitPosition() + self.isMove = true + self:playAnimation(GConst.BattleConst.SPINE_ANIMATION_NAME.MOVE, true, false) + self.positionX = self.baseObject:fastGetLocalPosition() + if self.side == 1 then + self.targetX = -INIT_POS_X + self.moveDirection = -1 + else + self.targetX = INIT_POS_X + self.moveDirection = 1 + end +end + +function IdleUnitComp:doNextAttack() + self.attackTime = 0 + local skillInfo = self:getNormalSkill(true) + local attackName = skillInfo.name_act + self.currAttackDuration = self:getAnimationDuration(attackName) + self.currAttackKeyTime = self:getAnimationKeyFrameTime(attackName) + self:playAnimation(attackName, false, false) +end + +function IdleUnitComp:onAttackOver() + self:changeState(UNIT_STATE_IDLE) + local callback = self.actionOverCallback + self.actionOverCallback = nil + if callback then + callback() + end +end + +function IdleUnitComp:getAnimationDuration(aniName) + if self.attackDurationMap == nil then + self.attackDurationMap = {} + end + local duration = self.attackDurationMap[aniName] + if duration == nil then + duration = self.baseObject:getAnimationDuration(aniName) + self.attackDurationMap[aniName] = duration + end + return duration or 0 +end + +function IdleUnitComp:getAnimationKeyFrameTime(animationName) + if self.attackKeyFrameTimeMap == nil then + self.attackKeyFrameTimeMap = {} + end + local time = self.attackKeyFrameTimeMap[animationName] + if time == nil then + time = self.baseObject:getAnimationKeyFrameTime(animationName) + if time <= 0 then -- 容错处理 + time = 0.3 + end + self.attackKeyFrameTimeMap[animationName] = time + end + return time +end + +function IdleUnitComp:getNormalSkill(reRandom) + if self.normalSkills == nil then + return nil + end + if not reRandom then + return self.normalSkill + end + if self.normalSkillIndex == nil then + self.normalSkillIndex = math.random(1, #self.normalSkills) + else + local temp = self.normalSkills[#self.normalSkills] + self.normalSkills[#self.normalSkills] = self.normalSkills[self.normalSkillIndex] + self.normalSkills[self.normalSkillIndex] = temp + self.normalSkillIndex = math.random(1, #self.normalSkills - 1) + end + self.normalSkill = self.normalSkills[self.normalSkillIndex] + return self.normalSkill +end + +function IdleUnitComp:getBornTime() + return self:getAnimationDuration(GConst.BattleConst.SPINE_ANIMATION_NAME.BORN) +end + +function IdleUnitComp:playDead(callback) + if self.isClear then + if callback then + callback() + end + return + end + self.deadOverCallback = callback + self:changeState(UNIT_STATE_DEAD) +end + +function IdleUnitComp:enterDeadState() + local aniName = GConst.BattleConst.SPINE_ANIMATION_NAME.DEAD + self.deadTime = self:getAnimationDuration(aniName) + 0.1 + self:playAnimation(aniName, false, false) +end + +function IdleUnitComp:updateDead(dt) + self.deadTime = self.deadTime - dt + if self.deadTime <= 0 then + self:clear() + if self.deadOverCallback then + local callback = self.deadOverCallback + self.deadOverCallback = nil + callback() + end + end +end + +function IdleUnitComp:clear() + if self.isClear then + return + end + self.isClear = true +end + +function IdleUnitComp:tick(dt) + if self.isClear then + return + end + if self.currState == UNIT_STATE_DEAD then + self:updateDead(dt) + return + end + if self.currState == UNIT_STATE_IDLE then + self:updateIdle(dt) + return + end + if self.currState == UNIT_STATE_ATTACK then + self:updateAttack(dt) + elseif self.currState == UNIT_STATE_BORN then + self:updateBorn(dt) + end +end + +function IdleUnitComp:destroy() + self.baseObject:destroy() +end + +return IdleUnitComp \ No newline at end of file diff --git a/lua/app/ui/idle/component/idle_unit_comp.lua.meta b/lua/app/ui/idle/component/idle_unit_comp.lua.meta new file mode 100644 index 00000000..9e6db627 --- /dev/null +++ b/lua/app/ui/idle/component/idle_unit_comp.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: c62c86c7aeb0b78439698579a3fa7172 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/ui/idle/idle_drop_ui.lua b/lua/app/ui/idle/idle_drop_ui.lua index 08bc7ff7..855c62d1 100644 --- a/lua/app/ui/idle/idle_drop_ui.lua +++ b/lua/app/ui/idle/idle_drop_ui.lua @@ -1,5 +1,10 @@ local IdleDropUI = class("IdleDropUI", BaseUI) +local IDLE_UNIT_COMPONENT = "app/ui/idle/component/idle_unit_comp" +local FIGHT_STATE_STOP = 0 +local FIGHT_STATE_FIGHT = 1 +local FIGHT_STATE_WAIT = 2 + function IdleDropUI:isFullScreen() return false end @@ -8,140 +13,363 @@ function IdleDropUI:getPrefabPath() return "assets/prefabs/ui/idle/idle_drop_ui.prefab" end +function IdleDropUI:ctor() + self.itemList = {} + self.refreshIntervalTime = GFunc.getConstValue("idle_exp_drop_time") + self.canRefreshReward = false + self.fightState = FIGHT_STATE_STOP + self.fightWaitTime = 0 +end + +function IdleDropUI:onCover() + if self.cdSid then + self:pauseScheduleGlobal(self.cdSid) + end +end + function IdleDropUI:onReshow() - -- self:refreshBtn() + if self.cdSid then + self:resumeScheduleGlobal(self.cdSid) + end +end + +function IdleDropUI:onClose() + if self.fightRoot then + self.fightRoot:removeAllChildren() + end end function IdleDropUI:onLoadRootComplete() - -- self:_display() - self:_addListeners() - - -- self:refreshCD() - -- self:scheduleGlobal(function() - -- self:refreshCD() - -- end, 1) -end - -function IdleDropUI:ctor() - self.list = {} - -- self.list = DataManager.HangUpData:getCacheRewards() - self.coinPerHour = 0 - self.expPerHour = 0 - -- local chapterId = DataManager.StageData:getMaxChapterId() - -- local cfg = ConfigManager:getConfig("chapter")[chapterId] - -- if not cfg then - -- return - -- end - -- local coinPerTime = GFunc.getConstIntValue("gold_drop_time") - -- local expPerTime = GFunc.getConstIntValue("exp_drop_time") - - -- local multpliter = DataManager.MonthlyData:getHangUpMultiplier() - -- self.coinPerHour = math.floor(cfg.idle_gold * (3600 // coinPerTime) * multpliter) - -- self.expPerHour = math.floor(cfg.idle_exp * (3600 // expPerTime) * multpliter) -end - -function IdleDropUI:_display() local uiMap = self.root:genAllChildren() - uiMap["idle_drop_ui.bg.title"]:setText(I18N:getGlobalText(I18N.GlobalConst.HANG_UP_DESC)) - uiMap["idle_drop_ui.bg.desc"]:setText(I18N:getGlobalText(I18N.GlobalConst.HANG_UP_DESC_1)) - uiMap["idle_drop_ui.bg.desc_2"]:setText(I18N:getGlobalText(I18N.GlobalConst.HANG_UP_DESC_3, Time:formatNumTime(GFunc.getConstIntValue("idle_maxtime")))) - uiMap["idle_drop_ui.bg.btn_1.desc"]:setText(I18N:getGlobalText(I18N.GlobalConst.HANG_UP_DESC_5)) - uiMap["idle_drop_ui.bg.btn_2.desc"]:setText(I18N:getGlobalText(I18N.GlobalConst.GET_DESC)) - uiMap["idle_drop_ui.bg.bg_1.desc"]:setText(I18N:getGlobalText(I18N.GlobalConst.HANG_UP_DESC_4, self.coinPerHour)) - uiMap["idle_drop_ui.bg.bg_2.desc"]:setText(I18N:getGlobalText(I18N.GlobalConst.HANG_UP_DESC_4, self.expPerHour)) + self.uiMap = uiMap + uiMap["idle_drop_ui.bg.title_text"]:setText(I18N:getGlobalText(I18N.GlobalConst.IDLE_DROP_REWARD)) + uiMap["idle_drop_ui.bg.desc_tx_1"]:setText(I18N:getGlobalText(I18N.GlobalConst.IDLE_DROP_DESC_1)) + self.timeTx = uiMap["idle_drop_ui.bg.time_tx"] - self:_refreshScrollRect() - self:refreshBtn() - self.canRefreshReward = true -end + local goldPerHour = GFunc.num2Str(DataManager.IdleData:getGoldPerHour()) + local expPerHour = GFunc.num2Str(DataManager.IdleData:getExpPerHour()) + uiMap["idle_drop_ui.bg.bg_1.desc"]:setText(I18N:getGlobalText(I18N.GlobalConst.PER_HOUR, goldPerHour)) + uiMap["idle_drop_ui.bg.bg_2.desc"]:setText(I18N:getGlobalText(I18N.GlobalConst.PER_HOUR, expPerHour)) -function IdleDropUI:_addListeners() - local uiMap = self.root:genAllChildren() - self.root:addClickListener(function() - self:closeUI() - ModuleManager.IdleManager:getIdleRewrad() - end) - uiMap["idle_drop_ui.bg.close_img"]:addClickListener(function() - self:closeUI() - ModuleManager.IdleManager:getIdleRewrad() - end) - - uiMap["idle_drop_ui.bg.btn_1"]:addClickListener(function() + local idleMaxTime = DataManager.IdleData:getIdleMaxTime() + uiMap["idle_drop_ui.bg.desc_tx_2"]:setText(I18N:getGlobalText(I18N.GlobalConst.IDLE_DROP_DESC_2, idleMaxTime // 3600)) + self.quickBtn = uiMap["idle_drop_ui.bg.quick_btn"] + self.quickBtn:addClickListener(function() ModuleManager.IdleManager:showIdleQuickDropUI() end) - - uiMap["idle_drop_ui.bg.btn_2"]:addClickListener(function() + uiMap["idle_drop_ui.bg.quick_btn.text"]:setText(I18N:getGlobalText(I18N.GlobalConst.IDLE_QUICK)) + self.getBtn = uiMap["idle_drop_ui.bg.get_btn"] + self.getBtn:addClickListener(function() + self.lastRefreshTime = Time:getServerTime() ModuleManager.IdleManager:getIdleRewrad() end) + uiMap["idle_drop_ui.bg.get_btn.text"]:setText(I18N:getGlobalText(I18N.GlobalConst.BTN_CLAIM)) + uiMap["idle_drop_ui.bg.close_btn"]:addClickListener(function() + self:closeUI() + end) - -- self:bind(DataManager.HangUpData, "isDirty", function() - -- self.list = DataManager.HangUpData:getCacheRewards() - -- self:_refreshScrollRect() - -- self.canRefreshReward = true - -- end) + self.fightRoot = self.uiMap["idle_drop_ui.bg.fight_root"] + + self:initRewards() + self:initSmallFight() + self:bindData() + self:refreshCD() + self.cdSid = self:scheduleGlobal(function() + self:refreshCD() + end, 1) + self:scheduleGlobal(function(dt) + self:tickFight(dt) + end, 0) +end + +function IdleDropUI:initRewards() + self.scrollRect = self.uiMap["idle_drop_ui.bg.scroll_rect"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE) + self.scrollRect:addInitCallback(function() + return GConst.TYPEOF_LUA_CLASS.REWARD_CELL + end) + self.scrollRect:addRefreshCallback(function(index, cell) + cell:refreshByConfig(self.itemList[index]) + end) + self.scrollRect:clearCells() + self.scrollRect:setTotalCount(0) +end + +function IdleDropUI:initSmallFight() + if self.atkUnit == nil then + local stageFormation = DataManager.FormationData:getStageFormation() + local tmpList = GFunc.getTempList() + for k, v in pairs(stageFormation) do + table.insert(tmpList, v) + end + if #tmpList <= 0 then + GFunc.recycleTempList(tmpList) + return + end + local heroId = tmpList[math.random(1, #tmpList)] + GFunc.recycleTempList(tmpList) + local heroInfo = ConfigManager:getConfig("hero")[heroId] + if heroInfo == nil then + return + end + SpineManager:loadHeroAsync(heroInfo.model_id, self.fightRoot, function(spineObject) + spineObject:setDefaultMix(0) + local atkUnitComp = spineObject:addLuaComponent(IDLE_UNIT_COMPONENT) + atkUnitComp:prepare(1, heroInfo.model_id) + atkUnitComp:initSkills(heroInfo.hurt_skill) + self.atkUnit = atkUnitComp + self:onIdleUnitInitFinish() + end) + end + + if self.defUnit == nil then + local chapterId = DataManager.ChapterData:getMaxChapterId() + if chapterId <= 0 then + chapterId = DataManager.ChapterData:getChapterId() + end + local chapterInfo = ConfigManager:getConfig("chapter")[chapterId] + if chapterInfo == nil then + return + end + local tmpMap = GFunc.getTempMap() + self.monsterList = {} + local monsterCfg = ConfigManager:getConfig("monster") + for k, v in ipairs(chapterInfo.monster) do + local monsterInfo = monsterCfg[v] + if monsterInfo ~= nil then + if monsterInfo.is_boss == nil and tmpMap[monsterInfo.model_id] == nil then + tmpMap[monsterInfo.model_id] = true + table.insert(self.monsterList, v) + end + end + end + GFunc.recycleTempMap(tmpMap) + if #self.monsterList <= 0 then + return + end + if self.idleMonsterIndex == nil then + self.idleMonsterIndex = math.random(1, #self.monsterList) + else + local temp = self.monsterList[#self.monsterList] + self.monsterList[#self.monsterList] = self.monsterList[self.idleMonsterIndex] + self.monsterList[self.idleMonsterIndex] = temp + self.idleMonsterIndex = math.random(1, #self.monsterList - 1) + end + self.idleMonsterId = self.monsterList[self.idleMonsterIndex] + self:getDefUnit(function(defUnitComp) + self.defUnit = defUnitComp + self:onIdleUnitInitFinish() + end) + end +end + +function IdleDropUI:onIdleUnitInitFinish() + if self.atkUnit == nil then + return + end + if self.defUnit == nil then + return + end + self.atkUnit:setTarget(self.defUnit) + self.defUnit:setTarget(self.atkUnit) + self.fightWaitTime = self.defUnit:getBornTime() + 0.2 + self.fightState = FIGHT_STATE_WAIT + self.atkUnit:playBorn() + self.defUnit:playBorn() +end + +function IdleDropUI:bindData() + self:bind(DataManager.IdleData, "dirty", function() + self:onRefresh() + self.canRefreshReward = true + self:refreshCD() + end) +end + +function IdleDropUI:onRefresh() + self:refreshRewards() + self:refreshBtns() +end + +function IdleDropUI:refreshRewards() + for i = 1, #self.itemList do + table.remove(self.itemList) + end + local rewards = DataManager.IdleData:getIdleRewards() + for _, item in pairs(rewards) do + if item.num > 0 then + table.insert(self.itemList, item) + end + end + if #self.itemList > 1 then + -- 道具类型从低到高>道具ID从低到高>品质从高到低 + local cfg = ConfigManager:getConfig("item") + local infoA + local infoB + table.sort(self.itemList, function(a, b) + infoA = cfg[a.id] + infoB = cfg[b.id] + if infoA.type == infoB.type then + if infoA.qlt == infoB.qlt then + return infoA.qlt > infoB.qlt + else + return a.id < b.id + end + else + return infoA.type < infoB.type + end + end) + end + if self.scrollRect:getTotalCount() ~= #self.itemList then -- 打开界面的时候定位到当前可领取的最低等级奖励,如果没有则定位到当前等级 + self.scrollRect:refillCells(#self.itemList) + else + self.scrollRect:updateAllCell() + end +end + +function IdleDropUI:refreshBtns() + if #self.itemList > 0 then + self.getBtn:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_green_2") + self.getBtn:setTouchEnable(true) + else + self.getBtn:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_grey_2") + self.getBtn:setTouchEnable(false) + end + local quickTimes = DataManager.IdleData:getQuickIdleRemainTimes() + if quickTimes > 0 then + self.quickBtn:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_yellow_2") + self.quickBtn:setTouchEnable(true) + self:addQuickBtnRedPoint() + else + self.quickBtn:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_grey_2") + self.quickBtn:setTouchEnable(false) + self:removeQuickBtnRedPoint() + end end function IdleDropUI:refreshCD() - local uiMap = self.root:genAllChildren() - local time = Time:getServerTime() - DataManager.HangUpData:getLastTime() - time = math.min(time, GFunc.getConstIntValue("idle_maxtime")) - uiMap["idle_drop_ui.bg.cd_info"]:setText(Time:formatNumTime(time)) - - local btn = uiMap["idle_drop_ui.bg.btn_2"] - if time > ModuleManager.HangUpManager.HANG_UP_RP_TIME then - btn:addRedPoint(85, 36, 0.5) + local time = Time:getServerTime() - DataManager.IdleData:getLastDropTime() + local idleMaxTime = DataManager.IdleData:getIdleMaxTime() + if time >= idleMaxTime then + if #self.itemList > 0 then + self:addGetBtnRedPoint() + else + self:removeGetBtnRedPoint() + end + self.timeTx:setText(Time:formatNumTime(idleMaxTime)) else - btn:removeRedPoint() + self:removeGetBtnRedPoint() + self.timeTx:setText(Time:formatNumTime(time)) end - - if not self.lastRefreshTime then + if self.lastRefreshTime == nil then self.lastRefreshTime = Time:getServerTime() - elseif Time:getServerTime() - self.lastRefreshTime > GFunc.getConstIntValue("exp_drop_time") then + elseif Time:getServerTime() - self.lastRefreshTime > self.refreshIntervalTime then if not self.canRefreshReward then return end self.canRefreshReward = false self.lastRefreshTime = Time:getServerTime() - ModuleManager.HangUpManager:getHangUpShowRewrad() + ModuleManager.IdleManager:getIdleShowRewrad() end end -function IdleDropUI:_refreshScrollRect() - if self.scrollRect then - self.scrollRect:clearCells() - self.scrollRect:refillCells(#self.list) +function IdleDropUI:addGetBtnRedPoint() + if self.getBtnRedPoint == true then return end - - local uiMap = self.root:genAllChildren() - self.scrollRect = uiMap["idle_drop_ui.bg.scrollrect"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE) - self.scrollRect:addInitCallback(function() - return GConst.TYPEOF_LUA_CLASS.REWARD_CELL - end) - self.scrollRect:addRefreshCallback(function(index, cell) - cell:refreshByConfig(self.list[index]) - end) - self.scrollRect:clearCells() - self.scrollRect:refillCells(#self.list) + self.getBtnRedPoint = true + self.getBtn:addRedPoint(94, 42, 0.8) end -function IdleDropUI:refreshBtn() - local uiMap = self.root:genAllChildren() - local btn = uiMap["idle_drop_ui.bg.btn_1"] - if self:canAd() or self:canDiamond() then - btn:addRedPoint(85, 36, 0.5) - else - btn:removeRedPoint() +function IdleDropUI:removeGetBtnRedPoint() + if self.getBtnRedPoint == false then + return + end + self.getBtnRedPoint = false + self.getBtn:removeRedPoint() +end + +function IdleDropUI:addQuickBtnRedPoint() + if self.quickBtnRedPoint == true then + return + end + self.quickBtnRedPoint = true + self.quickBtn:addRedPoint(94, 42, 0.8) +end + +function IdleDropUI:removeQuickBtnRedPoint() + if self.quickBtnRedPoint == false then + return + end + self.quickBtnRedPoint = false + self.quickBtn:removeRedPoint() +end + +function IdleDropUI:findNextDefUnit() + local temp = self.monsterList[#self.monsterList] + self.monsterList[#self.monsterList] = self.monsterList[self.idleMonsterIndex] + self.monsterList[self.idleMonsterIndex] = temp + self.idleMonsterIndex = math.random(1, #self.monsterList - 1) + self.idleMonsterId = self.monsterList[self.idleMonsterIndex] + self:getDefUnit(function(defUnit) + self:recycleDefUnit(self.defUnit) + self.defUnit = defUnit + self.atkUnit:setTarget(self.defUnit) + self.defUnit:setTarget(self.atkUnit) + self.fightWaitTime = self.defUnit:getBornTime() + 0.2 + self.fightState = FIGHT_STATE_WAIT + self.defUnit:playBorn() + end) +end + +function IdleDropUI:getDefUnit(callback) + if self.cacheUnit == nil then + self.cacheUnit = {} + end + local monsterCfg = ConfigManager:getConfig("monster") + local monsterInfo = monsterCfg[self.idleMonsterId] + local defUnit = self.cacheUnit[monsterInfo.model_id] + if defUnit then + defUnit:setActive(true) + return callback(defUnit) + end + SpineManager:loadHeroAsync(monsterInfo.model_id, self.fightRoot, function(spineObject) + spineObject:setDefaultMix(0) + local defUnitComp = spineObject:addLuaComponent(IDLE_UNIT_COMPONENT) + defUnitComp:prepare(2, monsterInfo.model_id) + callback(defUnitComp) + end) +end + +function IdleDropUI:recycleDefUnit(defUnit) + if self.cacheUnit == nil then + self.cacheUnit = {} + end + defUnit:setActive(false) + self.cacheUnit[defUnit:getModelId()] = defUnit +end + +function IdleDropUI:changeNextDefUnit() + self.defUnit:playDead(function() + self:findNextDefUnit() + end) +end + +function IdleDropUI:tickFight(dt) + if self.fightState == FIGHT_STATE_STOP then + return + end + self.atkUnit:tick(dt) + self.defUnit:tick(dt) + if self.fightState == FIGHT_STATE_FIGHT then + elseif self.fightState == FIGHT_STATE_WAIT then + self.fightWaitTime = self.fightWaitTime - dt + if self.fightWaitTime < 0 then + self.fightState = FIGHT_STATE_FIGHT + self.atkUnit:doAttack(function() + self:changeNextDefUnit() + end) + end end end -function IdleDropUI:canAd() - return GFunc.getConstIntValue("idle_drop_fast_times_1") > DataManager.HangUpData:getAdCount() -end - -function IdleDropUI:canDiamond() - return GFunc.getConstIntValue("idle_drop_fast_times_2") > DataManager.HangUpData:getDiamondCount() -end - - return IdleDropUI \ No newline at end of file diff --git a/lua/app/ui/idle/idle_quick_drop_ui.lua b/lua/app/ui/idle/idle_quick_drop_ui.lua index 7ce4f53b..27ad9119 100644 --- a/lua/app/ui/idle/idle_quick_drop_ui.lua +++ b/lua/app/ui/idle/idle_quick_drop_ui.lua @@ -1,11 +1,5 @@ local IdleQuickDropUI = class("IdleQuickDropUI", BaseUI) -local BTN_ICON = { - BLUE = "common_btn_3", - YELLOW = "common_btn_2", - GRAY = "common_btn_4" -} - function IdleQuickDropUI:isFullScreen() return false end @@ -15,114 +9,133 @@ function IdleQuickDropUI:getPrefabPath() end function IdleQuickDropUI:ctor() - -- self.list = ModuleManager.IdleManager:getRewardList() - self.list = {} + self.rewardList = {} + local rewards = DataManager.IdleData:getIdleQuickDropPreviewRewards() + for _, item in pairs(rewards) do + if item.num > 0 then + table.insert(self.rewardList, item) + end + end + if #self.rewardList > 1 then + local cfg = ConfigManager:getConfig("item") + local infoA + local infoB + table.sort(self.rewardList, function(a, b) + infoA = cfg[a.id] + infoB = cfg[b.id] + if infoA.type == infoB.type then + if infoA.qlt == infoB.qlt then + return infoA.qlt > infoB.qlt + else + return a.id < b.id + end + else + return infoA.type < infoB.type + end + end) + end end function IdleQuickDropUI:onLoadRootComplete() - self:_display() - self:_addListeners() -end - -function IdleQuickDropUI:_display() local uiMap = self.root:genAllChildren() - uiMap["idle_quick_drop_ui.bg.title"]:setText(I18N:getGlobalText(I18N.GlobalConst.HANG_UP_DESC_5)) - uiMap["idle_quick_drop_ui.bg.desc"]:setText(I18N:getGlobalText(I18N.GlobalConst.HANG_UP_DESC_6)) - uiMap["idle_quick_drop_ui.bg.btn_1.desc"]:setText(I18N:getGlobalText(I18N.GlobalConst.FREE_DESC)) - -- uiMap["idle_quick_drop_ui.bg.btn_2.desc"]:setText("X" .. GFunc.getConstIntValue("idle_drop_fast_cost")) - -- uiMap["idle_quick_drop_ui.bg.desc2"]:setText(I18N:getGlobalText(I18N.GlobalConst.BUY_VIT_DESC_2, GFunc.getConstIntValue("idle_drop_fast_times_2") - DataManager.HangUpData:getDiamondCount())) - - -- if DataManager.MonthlyData:skipAd() then - -- uiMap["idle_quick_drop_ui.bg.btn_1.Image"]:setSprite(GConst.ATLAS_PATH.COMMON, "common_ad_1", function () - -- uiMap["idle_quick_drop_ui.bg.btn_1.Image"]:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_IMAGE):SetNativeSize() - -- end) - -- else - uiMap["idle_quick_drop_ui.bg.btn_1.Image"]:setSprite(GConst.ATLAS_PATH.COMMON, "common_ad", function () - uiMap["idle_quick_drop_ui.bg.btn_1.Image"]:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_IMAGE):SetNativeSize() - end) - -- end - uiMap["idle_quick_drop_ui.bg.btn_1.Image"]:setImageGray(not self:canAd()) - uiMap["idle_quick_drop_ui.bg.btn_2.img"]:setImageGray(not self:canDiamond()) - - local btn1 = uiMap["idle_quick_drop_ui.bg.btn_1"] - - local icon = BTN_ICON.BLUE - if not self:canAd() then - icon = BTN_ICON.GRAY - btn1:removeRedPoint() - else - btn1:addRedPoint(85, 36, 0.5) - end - btn1:setSprite(GConst.ATLAS_PATH.COMMON, icon) - - icon = BTN_ICON.YELLOW - if not self:canDiamond() then - icon = BTN_ICON.GRAY - end - uiMap["idle_quick_drop_ui.bg.btn_2"]:setSprite(GConst.ATLAS_PATH.COMMON, icon) - - self:_refreshScrollRect() -end - -function IdleQuickDropUI:_addListeners() - local uiMap = self.root:genAllChildren() - self.root:addClickListener(function() + self.uiMap = uiMap + uiMap["idle_quick_drop_ui.bg.close_btn"]:addClickListener(function() self:closeUI() end) + uiMap["idle_quick_drop_ui.bg.title_text"]:setText(I18N:getGlobalText(I18N.GlobalConst.IDLE_QUICK)) + local quickIdleTime = DataManager.IdleData:getQuickIdleTime() + uiMap["idle_quick_drop_ui.bg.desc_tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.IDLE_DROP_DESC_3, quickIdleTime // 3600)) - uiMap["idle_quick_drop_ui.bg.btn_1"]:addClickListener(function() - if not self:canAd() then - GFunc.showToast(I18N:getGlobalText(I18N.GlobalConst.HANG_UP_DESC_7, "0")) - return - end - BIReport:postAdClick(BIReport.ADS_CLICK_TYPE.AD_HANG_UP) - SDKManager:showFullScreenAds(BIReport.ADS_CLICK_TYPE.AD_HANG_UP, function() - ModuleManager.IdleManager:getHangUpQuickRewrad(ModuleManager.IdleManager.HANG_UP_REWARD_TYPE.QUICK_AD) - end) - end) - - uiMap["idle_quick_drop_ui.bg.btn_2"]:addClickListener(function() - if not self:canDiamond() then - GFunc.showToast(I18N:getGlobalText(I18N.GlobalConst.HANG_UP_DESC_7, "0")) - return - end - ModuleManager.IdleManager:getHangUpQuickRewrad(ModuleManager.IdleManager.HANG_UP_REWARD_TYPE.QUICK_DIAMOND) - end) - - uiMap["idle_quick_drop_ui.bg.close_img"]:addClickListener(function() - self:closeUI() - end) - - -- self:bind(DataManager.IdleData, "isDirty", function() - -- self:_display() - -- end) + self:initRewards() + self:initBtns() + self:bindData() end -function IdleQuickDropUI:_refreshScrollRect() - if self.scrollRect then - self.scrollRect:clearCells() - self.scrollRect:refillCells(#self.list) - return - end - - local uiMap = self.root:genAllChildren() - self.scrollRect = uiMap["idle_quick_drop_ui.bg.scrollrect"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE) +function IdleQuickDropUI:initRewards() + self.scrollRect = self.uiMap["idle_quick_drop_ui.bg.scroll_rect"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE) self.scrollRect:addInitCallback(function() return GConst.TYPEOF_LUA_CLASS.REWARD_CELL end) self.scrollRect:addRefreshCallback(function(index, cell) - cell:refreshByConfig(self.list[index]) + cell:refreshByConfig(self.rewardList[index]) end) self.scrollRect:clearCells() - self.scrollRect:refillCells(#self.list) + self.scrollRect:refillCells(#self.rewardList) end -function IdleQuickDropUI:canAd() - -- return GFunc.getConstIntValue("idle_drop_fast_times_1") > DataManager.HangUpData:getAdCount() +function IdleQuickDropUI:initBtns() + self.adBtn = self.uiMap["idle_quick_drop_ui.bg.ad_btn"] + self.adBtn:addClickListener(function() + ModuleManager.IdleManager:getIdleQuickRewrad(true) + end) + self.uiMap["idle_quick_drop_ui.bg.ad_btn.text"]:setText(I18N:getGlobalText(I18N.GlobalConst.STR_FREE)) + self.itemBtn = self.uiMap["idle_quick_drop_ui.bg.item_btn"] + self.itemBtn:addClickListener(function() + ModuleManager.IdleManager:getIdleQuickRewrad(false) + end) + + local cost = DataManager.IdleData:getQuickIdleCost() + local itemBtnIcon = self.uiMap["idle_quick_drop_ui.bg.item_btn.icon"] + local itemBtnTx = self.uiMap["idle_quick_drop_ui.bg.item_btn.text"] + local iconName = ConfigManager:getConfig("item")[cost.id].icon + itemBtnIcon:setSprite(GConst.ATLAS_PATH.ICON_ITEM, iconName) + itemBtnTx:setText(tostring(cost.num)) + GFunc.centerImgAndTx(itemBtnIcon, itemBtnTx) + + self.descTx2 = self.uiMap["idle_quick_drop_ui.bg.desc_tx_2"] + self.descTx3 = self.uiMap["idle_quick_drop_ui.bg.desc_tx_3"] end -function IdleQuickDropUI:canDiamond() - -- return GFunc.getConstIntValue("idle_drop_fast_times_2") > DataManager.HangUpData:getDiamondCount() +function IdleQuickDropUI:bindData() + self:bind(DataManager.IdleData, "adCount", function() + self:onRefresh() + end) + self:bind(DataManager.IdleData, "energyCount", function() + self:onRefresh() + end) + + local cost = DataManager.IdleData:getQuickIdleCost() + local costId = GFunc.getRewardId(cost) + local itemEntity = DataManager.BagData.ItemData:getItemById(costId) + if itemEntity then + self:bind(itemEntity, "num", function() + self:onRefresh() + end) + end +end + +function IdleQuickDropUI:onRefresh() + local adRemainTimes = DataManager.IdleData:getQuickIdleAdRemainTimes() + if adRemainTimes <= 0 then + adRemainTimes = 0 + self.adBtn:setTouchEnable(false) + self.adBtn:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_grey_2") + self.adBtn:removeRedPoint() + else + self.adBtn:setTouchEnable(true) + self.adBtn:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_blue_2") + self.adBtn:addRedPoint(94, 42, 0.8) + end + self.descTx2:setText(I18N:getGlobalText(I18N.GlobalConst.TODAY_REMAIN_TIMES, adRemainTimes)) + local vitRemainTimes = DataManager.IdleData:getQuickIdleVitRemainTimes() + if vitRemainTimes <= 0 then + vitRemainTimes = 0 + self.itemBtn:setTouchEnable(false) + self.itemBtn:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_grey_2") + self.itemBtn:removeRedPoint() + else + self.itemBtn:setTouchEnable(true) + self.itemBtn:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_green_2") + local cost = DataManager.IdleData:getQuickIdleCost() + local costId = GFunc.getRewardId(cost) + local costNum = GFunc.getRewardNum(cost) + if GFunc.checkCost(costId, costNum) then + self.itemBtn:addRedPoint(94, 42, 0.8) + else + self.itemBtn:removeRedPoint() + end + end + self.descTx3:setText(I18N:getGlobalText(I18N.GlobalConst.TODAY_REMAIN_TIMES, vitRemainTimes)) end return IdleQuickDropUI diff --git a/lua/app/ui/mail.meta b/lua/app/ui/mail.meta new file mode 100644 index 00000000..855e4644 --- /dev/null +++ b/lua/app/ui/mail.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7f38a3c4920f0d6498585ad8264181f1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/lua/app/ui/mail/cell.meta b/lua/app/ui/mail/cell.meta new file mode 100644 index 00000000..039e302b --- /dev/null +++ b/lua/app/ui/mail/cell.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9e0046c59ad9bbc43933e1d2dca2d905 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/lua/app/ui/mail/cell/mail_cell.lua b/lua/app/ui/mail/cell/mail_cell.lua new file mode 100644 index 00000000..08118035 --- /dev/null +++ b/lua/app/ui/mail/cell/mail_cell.lua @@ -0,0 +1,91 @@ +local MailCell = class("MailCell", BaseCell) + +local TITLE_ICON = { + [GConst.MailConst.MAIL_STATE.NOT_READ] = "mail_dec_2", + [GConst.MailConst.MAIL_STATE.READED] = "mail_dec_3", + [GConst.MailConst.MAIL_STATE.RECEIVED] = "mail_dec_3", +} + +local AD_TITLE_ICON = "mail_dec_1" + +function MailCell:refresh(entity) + if not entity then + return + end + + local uiMap = self:getUIMap() + local normalNode = uiMap["mail_cell.bg_normal"] + local adNode = uiMap["mail_cell.bg_ad"] + local readNode = uiMap["mail_cell.bg_read"] + if entity:getMailType() == GConst.MailConst.MAIL_TYPE.CUSTOM then + normalNode:setVisible(false) + adNode:setVisible(false) + readNode:setVisible(true) + elseif entity:getMailType() == GConst.MailConst.MAIL_TYPE.AD then + normalNode:setVisible(false) + adNode:setVisible(true) + readNode:setVisible(false) + elseif entity:getMailType() == GConst.MailConst.MAIL_TYPE.NORMAL then + normalNode:setVisible(true) + adNode:setVisible(false) + readNode:setVisible(false) + elseif entity:getMailType() == GConst.MailConst.MAIL_TYPE.READ then + normalNode:setVisible(false) + adNode:setVisible(false) + readNode:setVisible(true) + end + GFunc.setAdsSprite(uiMap["mail_cell.bg_ad.claim_btn.ad"]) + uiMap["mail_cell.bg_normal.claim_btn.tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.BTN_CLAIM)) + uiMap["mail_cell.bg_read.claim_btn.tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.BTN_READ)) + uiMap["mail_cell.bg_normal.claim_btn"]:addClickListener(function() + if entity:canClaim() then + ModuleManager.MailManager:claimMail({entity:getId()}) + end + end) + uiMap["mail_cell.bg_ad.claim_btn"]:addClickListener(function() + if entity:canClaim() then + SDKManager:showFullScreenAds(BIReport.ADS_CLICK_TYPE.MAIL, function() + ModuleManager.MailManager:claimMail({entity:getId()}) + end) + end + end) + uiMap["mail_cell.bg_read.claim_btn"]:addClickListener(function() + ModuleManager.MailManager:readMail(entity:getId()) + end) + + local titleIcon = uiMap["mail_cell.title_icon"] + local icon = TITLE_ICON[entity:getState()] or TITLE_ICON[GConst.MailConst.MAIL_STATE.NOT_READ] + + if entity:notRead() and entity:getMailType() == GConst.MailConst.MAIL_TYPE.AD then + icon = AD_TITLE_ICON + end + if self.icon ~= icon then + titleIcon:setSprite(GConst.ATLAS_PATH.UI_MAIL, icon) + self.icon = icon + end + uiMap["mail_cell.new"]:setVisible(entity:showNew()) + uiMap["mail_cell.desc"]:setText(entity:getMailName()) + uiMap["mail_cell.time"]:setText(entity:getRemainCdStr()) + local rewardBg = uiMap["mail_cell.reward_bg"] + local mask = uiMap["mail_cell.reward_bg.mask"] + if not self.rewardCell then + self.rewardCell = CellManager:addCellComp(uiMap["mail_cell.reward_cell"], GConst.TYPEOF_LUA_CLASS.REWARD_CELL) + end + local rewards = entity:getRewards() + local showCheck = entity:isReceived() + if rewards[2] then + rewardBg:setVisible(true) + self.rewardCell:getBaseObject():setVisible(false) + mask:setVisible(showCheck) + else + rewardBg:setVisible(false) + if entity:haveReward() then + self.rewardCell:getBaseObject():setVisible(true, 0.7) + self.rewardCell:refreshByConfig(rewards[1], showCheck, showCheck) + else + self.rewardCell:getBaseObject():setVisible(false) + end + end +end + +return MailCell \ No newline at end of file diff --git a/lua/app/ui/mail/cell/mail_cell.lua.meta b/lua/app/ui/mail/cell/mail_cell.lua.meta new file mode 100644 index 00000000..92a68f21 --- /dev/null +++ b/lua/app/ui/mail/cell/mail_cell.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 1f5fcba2f06710a4bbeab76ae83d1b76 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/ui/mail/mail_detail_ui.lua b/lua/app/ui/mail/mail_detail_ui.lua new file mode 100644 index 00000000..5903a4aa --- /dev/null +++ b/lua/app/ui/mail/mail_detail_ui.lua @@ -0,0 +1,99 @@ +local MailDetailUI = class("MailDetailUI", BaseUI) + +function MailDetailUI:isFullScreen() + return false +end + +function MailDetailUI:getPrefabPath() + return "assets/prefabs/ui/mail/mail_detail_ui.prefab" +end + +function MailDetailUI:ctor(params) + self.entity = DataManager.MailData:getMails()[params.id] +end + +function MailDetailUI:onLoadRootComplete() + self:_display() + self:_addListeners() + self:_bind() + + self.sid = self:scheduleGlobal(function() + self:updateTime() + end, 1) + self:updateTime() +end + +function MailDetailUI:_display() + local uiMap = self.root:genAllChildren() + uiMap["mail_detail_ui.bg.btn_claimed.btn_tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.BTN_CLAIM)) + uiMap["mail_detail_ui.bg.tx_1"]:setText(self.entity:getMailName()) + uiMap["mail_detail_ui.bg.tx_4"]:setText(I18N:getGlobalText(I18N.GlobalConst.IDLE_TITLE2)) + uiMap["mail_detail_ui.bg.btn_claimed"]:setActive(not self.entity:isReceived()) + + local content = uiMap["mail_detail_ui.bg.tx_3"] + content:setText(self.entity:getMailDesc()) + content:setSizeDeltaY(content:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_TEXT_MESH_PRO).preferredHeight) + content:setAnchoredPositionY(0) + + + local haveReward = self.entity:haveReward() + uiMap["mail_detail_ui.bg.img_bg"]:setVisible(haveReward) + local contentScroll = uiMap["mail_detail_ui.bg.scrollrect"] + if haveReward then + contentScroll:setSizeDeltaY(180) + else + contentScroll:setSizeDeltaY(351) + end + + self:refreshScrollRect() +end + +function MailDetailUI:_addListeners() + local uiMap = self.root:genAllChildren() + uiMap["mail_detail_ui.bg.btn_claimed"]:addClickListener(function() + ModuleManager.MailManager:claimMail({self.entity:getId()}) + end) + + uiMap["mail_detail_ui.bg.btn_close"]:addClickListener(function() + self:closeUI() + end) +end + +function MailDetailUI:_bind() + self:bind(DataManager.MailData, "isDirty", function() + local uiMap = self.root:genAllChildren() + uiMap["mail_detail_ui.bg.btn_claimed"]:setActive(not self.entity:isReceived()) + self:refreshScrollRect() + end) +end + +function MailDetailUI:refreshScrollRect() + if not self.entity then + return + end + + if self.scrollRect then + self.scrollRect:updateAllCell() + return + end + + local uiMap = self.root:genAllChildren() + local scrollView = uiMap["mail_detail_ui.bg.img_bg.scrollrect"] + self.scrollRect = scrollView:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE) + self.scrollRect:addInitCallback(function() + return GConst.TYPEOF_LUA_CLASS.REWARD_CELL + end) + self.scrollRect:addRefreshCallback(function(index, cell) + cell:refreshByConfig(self.entity:getRewards()[index], self.entity:isReceived(), self.entity:isReceived()) + end) + self.scrollRect:clearCells() + self.scrollRect:refillCells(#self.entity:getRewards()) +end + +function MailDetailUI:updateTime() + local uiMap = self.root:genAllChildren() + uiMap["mail_detail_ui.bg.tx_2"]:setText(self.entity:getRemainCdStr()) +end + + +return MailDetailUI \ No newline at end of file diff --git a/lua/app/ui/mail/mail_detail_ui.lua.meta b/lua/app/ui/mail/mail_detail_ui.lua.meta new file mode 100644 index 00000000..20c7d965 --- /dev/null +++ b/lua/app/ui/mail/mail_detail_ui.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 88fc0b06ecebcf54f9713464dee3bde3 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/ui/mail/mail_ui.lua b/lua/app/ui/mail/mail_ui.lua new file mode 100644 index 00000000..0703ce82 --- /dev/null +++ b/lua/app/ui/mail/mail_ui.lua @@ -0,0 +1,129 @@ +local MailUI = class("MailUI", BaseUI) + +local MAIL_CELL = "app/ui/mail/cell/mail_cell" + +function MailUI:isFullScreen() + return false +end + +function MailUI:getPrefabPath() + return "assets/prefabs/ui/mail/mail_ui.prefab" +end + +function MailUI:ctor() + self.mailList = {} +end + +function MailUI:onClose() + DataManager.MailData:setLastMailId() +end + +function MailUI:dealData() + local list = {} + local count = 0 + for id, entity in pairs(DataManager.MailData:getMails()) do + if not entity:isOver() then + table.insert(list, entity) + count = count + 1 + end + end + + table.sort(list, function(a, b) + local aCan = a:canDelete() + local bCan = b:canDelete() + if aCan == bCan then + local aCd = a:getRemainCd() + local bCd = b:getRemainCd() + if aCd == bCd then + return a:getId() > b:getId() + else + return aCd < bCd + end + else + return not aCan + end + end) + + if count ~= #self.mailList then + self.needRefills = true + end + self.mailList = list +end + +function MailUI:onLoadRootComplete() + self:_display() + self:_addListeners() + + self.sid = self:scheduleGlobal(function() + self:updateTime() + end, 1) + self:updateTime() +end + +function MailUI:_display() + local uiMap = self.root:genAllChildren() + self.root:addClickListener(function() + self:closeUI() + end) + uiMap["mail_ui.bg.title_bg.title_tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.MAIL_TITLE)) + uiMap["mail_ui.bg.btn_delect.btn_tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.BTN_DELETE_ALL)) + uiMap["mail_ui.bg.btn_claimed.btn_tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.BTN_CLAIM_ALL)) + + local uiSpine1 = uiMap["mail_ui.ui_spine_1"] + local uiSpine2 = uiMap["mail_ui.ui_spine_2"] + uiSpine1:playAnimComplete("born", false, false, function () + uiSpine1:playAnim("idle", true, false) + end) + uiSpine2:clearTrack() + uiSpine2:playAnimComplete("born", false, true, function () + uiSpine2:playAnim("idle", true, false) + end) +end + +function MailUI:_addListeners() + local uiMap = self.root:genAllChildren() + uiMap["mail_ui.bg.btn_close"]:addClickListener(function() + self:closeUI() + end) + + uiMap["mail_ui.bg.btn_delect"]:addClickListener(function() + ModuleManager.MailManager:deleteMail() + end) + + uiMap["mail_ui.bg.btn_claimed"]:addClickListener(function() + ModuleManager.MailManager:claimMail() + end) +end + +function MailUI:refreshScrollRect() + if self.scrollRect then + if self.needRefills then + self.scrollRect:clearCells() + self.scrollRect:refillCells(#self.mailList) + else + self.scrollRect:updateAllCell() + end + self.needRefills = false + return + end + + local uiMap = self.root:genAllChildren() + local scrollView = uiMap["mail_ui.bg.img_2.scrollrect"] + self.scrollRect = scrollView:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE) + self.scrollRect:addInitCallback(function() + return MAIL_CELL + end) + self.scrollRect:addRefreshCallback(function(index, cell) + cell:refresh(self.mailList[index]) + end) + self.scrollRect:clearCells() + self.scrollRect:refillCells(#self.mailList) + self.needRefills = false +end + +function MailUI:updateTime() + self:dealData() + self:refreshScrollRect() +end + +return MailUI \ No newline at end of file diff --git a/lua/app/ui/mail/mail_ui.lua.meta b/lua/app/ui/mail/mail_ui.lua.meta new file mode 100644 index 00000000..d9bbf371 --- /dev/null +++ b/lua/app/ui/mail/mail_ui.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 9f6ce58542eaf3046bc7f329075ae62e +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/ui/main_city/cell/side_bar_base_cell.lua b/lua/app/ui/main_city/cell/side_bar_base_cell.lua index aeb9a587..343e55d2 100644 --- a/lua/app/ui/main_city/cell/side_bar_base_cell.lua +++ b/lua/app/ui/main_city/cell/side_bar_base_cell.lua @@ -48,6 +48,10 @@ function SideBarBaseCellComp:getInfo() return nil end +function SideBarBaseCellComp:getIsShowRedPoint() + return false +end + -- 红点偏移位置 function SideBarBaseCellComp:getRedPointPosition() return DEFAULT_RED_POINT_POS_X, DEFAULT_RED_POINT_POS_Y @@ -106,4 +110,21 @@ function SideBarBaseCellComp:setCellPath(cellPath) self.cellPath = cellPath end +function SideBarBaseCellComp:showRedPoint() + if self.redPoint then + return + end + self.redPoint = true + local x, y = self:getRedPointPosition() + self.baseObject:addRedPoint(x, y, self:getRedPointScale()) +end + +function SideBarBaseCellComp:hideRedPoint() + if self.redPoint == false then + return + end + self.redPoint = false + self.baseObject:removeRedPoint() +end + return SideBarBaseCellComp \ No newline at end of file diff --git a/lua/app/ui/main_city/cell/side_bar_idle_cell.lua b/lua/app/ui/main_city/cell/side_bar_idle_cell.lua index ebcb9bb0..c3c2e277 100644 --- a/lua/app/ui/main_city/cell/side_bar_idle_cell.lua +++ b/lua/app/ui/main_city/cell/side_bar_idle_cell.lua @@ -2,7 +2,7 @@ local SideBarBaseCellComp = require "app/ui/main_city/cell/side_bar_base_cell" local SideBarIdleCell = class("SideBarIdleCell", SideBarBaseCellComp) function SideBarIdleCell:getIsOpen() - return true + return DataManager.IdleData:getIsOpen() end function SideBarIdleCell:getIconRes() @@ -13,4 +13,13 @@ function SideBarIdleCell:onClick() ModuleManager.IdleManager:showIdleDropUI() end +function SideBarIdleCell:getIsShowRedPoint() + local time = Time:getServerTime() - DataManager.IdleData:getLastDropTime() + local idleMaxTime = DataManager.IdleData:getIdleMaxTime() + if time >= idleMaxTime then + return true + end + return DataManager.IdleData:getQuickIdleRemainTimes() > 0 +end + return SideBarIdleCell \ No newline at end of file diff --git a/lua/app/ui/main_city/component/main_comp.lua b/lua/app/ui/main_city/component/main_comp.lua index 238bbac5..16a12329 100644 --- a/lua/app/ui/main_city/component/main_comp.lua +++ b/lua/app/ui/main_city/component/main_comp.lua @@ -95,6 +95,14 @@ function MainComp:refreshChapter(force) end end + local mysteryBoxCount = DataManager.ChapterData:getChapterMysteryBoxRewardCount(chapterId) + local mysteryBoxIcon = self.uiMap["main_comp.chapter.img.mystery_box_icon"] + mysteryBoxIcon:setVisible(mysteryBoxCount > 0) + if mysteryBoxCount > 0 then + local remainCount = math.max(mysteryBoxCount - DataManager.ChapterData:getChapterMysteryBoxGotCount(chapterId), 0) + self.uiMap["main_comp.chapter.img.mystery_box_icon.desc"]:setText(remainCount .. "/" .. mysteryBoxCount) + end + local rewardChapterId = DataManager.ChapterData:getIsHaveRewardsMinId() if rewardChapterId > chapterId then rewardChapterId = chapterId diff --git a/lua/app/ui/main_city/main_city_ui.lua b/lua/app/ui/main_city/main_city_ui.lua index 74046465..8c724f5a 100644 --- a/lua/app/ui/main_city/main_city_ui.lua +++ b/lua/app/ui/main_city/main_city_ui.lua @@ -68,17 +68,19 @@ function MainCityUI:onLoadRootComplete() self:_display() self:_addListeners() self:_bind() - self:updateTime() self:refreshBottomRp() + self:updateTime() self:scheduleGlobal(function() - self:updateTime() + self:updateSideBarStatus() + self:updateTime() end, 1) end function MainCityUI:onRefresh() self:refreshLeftBtns() self:refreshRightBtns() + self:updateSideBarStatus() end function MainCityUI:onReshow() @@ -310,6 +312,11 @@ end function MainCityUI:openOrCloseLeftSideBar() ModuleManager.MaincityManager:changeMainCityLeftSideBarOpenOrClose() self:refreshLeftBtns() + if self.isShowLeftSideBarArrowRedPoint ~= nil then + local isShowLeftSideBarArrowRedPoint = self.isShowLeftSideBarArrowRedPoint + self.isShowLeftSideBarArrowRedPoint = nil + self:setLeftSideBarArrowRedPoint(isShowLeftSideBarArrowRedPoint) + end end function MainCityUI:refreshLeftBtns() @@ -362,6 +369,11 @@ end function MainCityUI:openOrCloseRightSideBar() ModuleManager.MaincityManager:changeMainCityRightSideBarOpenOrClose() self:refreshRightBtns() + if self.isShowRightSideBarArrowRedPoint ~= nil then + local isShowRightSideBarArrowRedPoint = self.isShowRightSideBarArrowRedPoint + self.isShowRightSideBarArrowRedPoint = nil + self:setRightSideBarArrowRedPoint(isShowRightSideBarArrowRedPoint) + end end function MainCityUI:refreshRightBtns() @@ -489,7 +501,7 @@ function MainCityUI:refreshBounty() local bannerName = DataManager.BountyData:getRewardBannerName() self.bountyBanner:setSprite(GConst.ATLAS_PATH.BOUNTY, bannerName) self.bountyBannerInfo:setVisible(false) - self.bountyBannerDescTx:setText("临时文本:收集奖励") + self.bountyBannerDescTx:setText(I18N:getGlobalText(I18N.GlobalConst.COLLET_REWARDS)) else local bannerName = DataManager.BountyData:getBannerName() self.bountyBanner:setSprite(GConst.ATLAS_PATH.BOUNTY, bannerName) @@ -502,7 +514,7 @@ function MainCityUI:refreshBounty() self.bountyBannerSliderTx:setText(exp .. "/" .. lvUpExp) self.bountyBannerSlider:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_SLIDER).value = exp / lvUpExp if level >= maxLevel then - self.bountyBannerLvTx:setText("临时文本:MAX") + self.bountyBannerLvTx:setText(I18N:getGlobalText(I18N.GlobalConst.STR_MAX)) else self.bountyBannerLvTx:setText(tostring(level)) end @@ -548,6 +560,91 @@ end function MainCityUI:updateTime() end +function MainCityUI:updateSideBarStatus() + if self.leftBarList then + local first = self.leftBarList[1] + if first then + if first:getIsShowRedPoint() then + first:showRedPoint() + else + first:hideRedPoint() + end + local count = 0 + for i = 2, #self.leftBarList do + if self.leftBarList[i]:getIsShowRedPoint() then + self.leftBarList[i]:showRedPoint() + count = count + 1 + else + self.leftBarList[i]:hideRedPoint() + end + end + if count > 0 then + self:setLeftSideBarArrowRedPoint(true) + else + self:setLeftSideBarArrowRedPoint(false) + end + else + self:setLeftSideBarArrowRedPoint(false) + end + end + if self.rightBarList then + local first = self.rightBarList[1] + if first then + if first:getIsShowRedPoint() then + first:showRedPoint() + else + first:hideRedPoint() + end + local count = 0 + for i = 2, #self.rightBarList do + if self.rightBarList[i]:getIsShowRedPoint() then + self.rightBarList[i]:showRedPoint() + count = count + 1 + else + self.rightBarList[i]:hideRedPoint() + end + end + if count > 0 then + self:setRightSideBarArrowRedPoint(true) + else + self:setRightSideBarArrowRedPoint(false) + end + else + self:setRightSideBarArrowRedPoint(false) + end + end +end + +function MainCityUI:setLeftSideBarArrowRedPoint(isShow) + if self.isShowLeftSideBarArrowRedPoint == isShow then + return + end + if isShow then + if ModelManager.MaincityManager:getIsMainCityLeftSideBarClose() then + self.leftArrowBtn:removeRedPoint() + else + self.leftArrowBtn:addRedPoint() + end + else + self.leftArrowBtn:removeRedPoint() + end +end + +function MainCityUI:setRightSideBarArrowRedPoint(isShow) + if self.isShowRightSideBarArrowRedPoint == isShow then + return + end + if isShow then + if ModelManager.MaincityManager:getIsMainCityRightSideBarClose() then + self.rightArrowBtn:removeRedPoint() + else + self.rightArrowBtn:addRedPoint() + end + else + self.rightArrowBtn:removeRedPoint() + end +end + function MainCityUI:refreshBottomRp() local uiMap = self.root:genAllChildren() local heroRpObj = uiMap["main_ui.bottom_node.icons.ui_spine_obj_2.rp_node"] diff --git a/lua/app/ui/task/cell/daily_task_cell.lua b/lua/app/ui/task/cell/daily_task_cell.lua index 9bed24ed..3bd8ac4f 100644 --- a/lua/app/ui/task/cell/daily_task_cell.lua +++ b/lua/app/ui/task/cell/daily_task_cell.lua @@ -31,7 +31,7 @@ function DailyTaskCell:init() end end) self.refreshBtnTx = uiMap["task_cell.refresh_btn.btn.text"] - self.refreshBtnTx:setText("临时文本:刷新") + self.refreshBtnTx:setText(I18N:getGlobalText(I18N.GlobalConst.STR_REFRESH)) self.rewardCellComp = uiMap["task_cell.reward_cell"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL) self.lockNode = uiMap["task_cell.lock_node"] self.lockBg = uiMap["task_cell.lock_bg"] @@ -39,12 +39,12 @@ function DailyTaskCell:init() lockBtn:addClickListener(function() end) local lockBtnTx = uiMap["task_cell.lock_node.lock_btn.btn.text"] - lockBtnTx:setText("临时文本:解锁") + lockBtnTx:setText(I18N:getGlobalText(I18N.GlobalConst.STR_UNLOCK)) local lockTx = uiMap["task_cell.lock_node.lock_tx"] - lockTx:setText("临时文本:通行证专属任务") + lockTx:setText(I18N:getGlobalText(I18N.GlobalConst.TASK_DESC_1)) self.completeNode = uiMap["task_cell.complete"] local completeTx = uiMap["task_cell.complete.text"] - completeTx:setText("临时文本:已完成") + completeTx:setText(I18N:getGlobalText(I18N.GlobalConst.STR_COMPLETED)) end function DailyTaskCell:refresh(task) @@ -63,11 +63,7 @@ function DailyTaskCell:refresh(task) self.adBtnRoot:setVisible(false) self.completeNode:setVisible(false) else - if task.lock == nil then - self.lockBg:setVisible(false) - else - self.lockBg:setVisible(true) - end + self.lockBg:setVisible(false) self.lockNode:setVisible(false) self.progressBg:setVisible(true) local count = task.progress diff --git a/lua/app/ui/task/task_main_ui.lua b/lua/app/ui/task/task_main_ui.lua index d101d8e8..b8593ab5 100644 --- a/lua/app/ui/task/task_main_ui.lua +++ b/lua/app/ui/task/task_main_ui.lua @@ -92,7 +92,7 @@ end function TaskMainUI:initTitle() self.titleTx = self.uiMap["task_main_ui.bg.title"] - self.titleTx:setText("临时文本:任务") + self.titleTx:setText(I18N:getGlobalText(I18N.GlobalConst.TASK_NAME)) end function TaskMainUI:initPage() @@ -103,9 +103,9 @@ function TaskMainUI:initPage() self.menuOneOn = self.uiMap["task_main_ui.bg.menu_1.on"] self.menuOneOff = self.uiMap["task_main_ui.bg.menu_1.off"] local menuOneOnTx = self.uiMap["task_main_ui.bg.menu_1.on.text"] - menuOneOnTx:setText("临时文本:日常") + menuOneOnTx:setText(I18N:getGlobalText(I18N.GlobalConst.TASK_DAILY)) local menuOneOffTx = self.uiMap["task_main_ui.bg.menu_1.off.text"] - menuOneOffTx:setText("临时文本:日常") + menuOneOffTx:setText(I18N:getGlobalText(I18N.GlobalConst.TASK_DAILY)) self.menuTwo = self.uiMap["task_main_ui.bg.menu_2"] self.menuTwo:addClickListener(function() @@ -114,9 +114,9 @@ function TaskMainUI:initPage() self.menuTwoOn = self.uiMap["task_main_ui.bg.menu_2.on"] self.menuTwoOff = self.uiMap["task_main_ui.bg.menu_2.off"] local menuTwoOnTx = self.uiMap["task_main_ui.bg.menu_2.on.text"] - menuTwoOnTx:setText("临时文本:挑战") + menuTwoOnTx:setText(I18N:getGlobalText(I18N.GlobalConst.TASK_CHALLENGE)) local menuTwoOffTx = self.uiMap["task_main_ui.bg.menu_2.off.text"] - menuTwoOffTx:setText("临时文本:挑战") + menuTwoOffTx:setText(I18N:getGlobalText(I18N.GlobalConst.TASK_CHALLENGE)) self:initDaily() self:initChallenge() end @@ -137,7 +137,12 @@ function TaskMainUI:initDailyTaskAdCell() if DataManager.DailyTaskData:getDailyTaskCanClaimTask(taskId) then ModuleManager.TaskManager:claimDailyTask(taskId) else - ModuleManager.ShopManager:showBoxHeroUI() + local reward = DataManager.DailyTaskData:getDailyTaskAdReward() + if reward and reward[1] then + local rewardId = GFunc.getRewardId(reward[1]) + local rewardType = GFunc.getRewardType(reward[1]) + ModuleManager.TipsManager:showRewardTips(rewardId, rewardType, self.dailyTaskAdCellBox) + end end end) self.dailyTaskAdCellBoxInfo = self.uiMap["task_main_ui.bg.daily.task_ad_cell.box.info"] @@ -153,7 +158,12 @@ function TaskMainUI:initDailyTaskFinalCell() if DataManager.DailyTaskData:getDailyTaskCanClaimTask(taskId) then ModuleManager.TaskManager:claimDailyTask(taskId) else - ModuleManager.ShopManager:showBoxHeroUI() + local reward = DataManager.DailyTaskData:getDailyTaskFinalReward() + if reward and reward[1] then + local rewardId = GFunc.getRewardId(reward[1]) + local rewardType = GFunc.getRewardType(reward[1]) + ModuleManager.TipsManager:showRewardTips(rewardId, rewardType, self.dailyTaskFinalCellBox) + end end end) self.dailyTaskFinalCellBoxInfo = self.uiMap["task_main_ui.bg.daily.task_final_cell.box.info"] @@ -316,7 +326,7 @@ end function TaskMainUI:showHelp() local params = { - content = "临时文本:每日刷新,刷新后任务将重置,可以观看广告刷新任务", + content = I18N:getGlobalText(I18N.GlobalConst.TASK_HELP_1), boxType = GConst.MESSAGE_BOX_TYPE.MB_OK, okText = I18N:getGlobalText(I18N.GlobalConst.BTN_TEXT_OK), } diff --git a/lua/app/ui/tips/box_tips.lua b/lua/app/ui/tips/box_tips.lua new file mode 100644 index 00000000..2f36e327 --- /dev/null +++ b/lua/app/ui/tips/box_tips.lua @@ -0,0 +1,83 @@ +local BoxTips = class("BoxTips", BaseUI) + +function BoxTips:ctor(params) + self.itemId = params.itemId +end + +function BoxTips:getPrefabPath() + return "assets/prefabs/ui/tips/box_tips.prefab" +end + +function BoxTips:isFullScreen() + return false +end + +function BoxTips:onLoadRootComplete() + local uiMap = self.root:genAllChildren() + self.uiMap = uiMap + local itemTextInfo = I18N:getConfig("item")[self.itemId] + if itemTextInfo then + uiMap["box_tips.bg.title"]:setText(itemTextInfo.name) + else + uiMap["box_tips.bg.title"]:setText(GConst.EMPTY_STRING) + end + local itemInfo = ConfigManager:getConfig("item")[self.itemId] + if itemInfo then + local nameIndex = itemInfo.qlt - 1 + if nameIndex < 1 then + nameIndex = 1 + elseif nameIndex > 3 then + nameIndex = 3 + end + uiMap["box_tips.bg.box"]:setSprite(GConst.ATLAS_PATH.SHOP, "shop_chest_" .. nameIndex) + end + uiMap["box_tips.close_btn"]:addClickListener(function() + self:closeUI() + end) + + self.rewardNodeList = {} + local rewardList = itemInfo.reward or GConst.EMPTY_TABLE + for i = 1, 4 do + local rewardNode = uiMap["box_tips.bg.item_" .. i] + self.rewardNodeList[i] = rewardNode + if rewardList[i] then + local num = uiMap["box_tips.bg.item_" .. i .. ".num"] + num:setText(GFunc.intToString(i)) + local help = uiMap["box_tips.bg.item_" .. i .. ".help"] + if rewardList[i].type == GConst.ItemConst.ITEM_TYPE.RANDOM_FRAGMENT then + help:setVisible(true) + else + help:setVisible(false) + end + rewardNode:setVisible(true) + rewardNode:addClickListener(function() + ModuleManager.TipsManager:showRewardTips(rewardList[i].id, rewardList[i].type, rewardNode) + end) + local rewardComp = uiMap["box_tips.bg.item_" .. i .. ".reward_cell"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL) + rewardComp:refreshByConfig(rewardList[i]) + rewardComp:setTouchEnable(false) + rewardComp:setNumTx(GConst.EMPTY_STRING) + else + rewardNode:setVisible(false) + end + end + self:adpatRewardNode(#rewardList) +end + +function BoxTips:adpatRewardNode(count) + if count == 0 then + return + end + local width = self.rewardNodeList[1]:getRectWidth() + 10 + if count % 2 == 0 then + for i = 1, count do + self.rewardNodeList[i]:setAnchoredPositionX((i - count / 2 - 0.5) * width) + end + else + for i = 1, count do + self.rewardNodeList[i]:setAnchoredPositionX((i - (count - 1) / 2 - 1) * width) + end + end +end + +return BoxTips \ No newline at end of file diff --git a/lua/app/ui/tips/box_tips.lua.meta b/lua/app/ui/tips/box_tips.lua.meta new file mode 100644 index 00000000..90a05a8c --- /dev/null +++ b/lua/app/ui/tips/box_tips.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 59e3ce9541c217b4faf3f7e24ed10431 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/ui/tips/hero_fragment_tips.lua b/lua/app/ui/tips/hero_fragment_tips.lua new file mode 100644 index 00000000..e1d6dc21 --- /dev/null +++ b/lua/app/ui/tips/hero_fragment_tips.lua @@ -0,0 +1,67 @@ +local HeroFragmentTips = class("HeroFragmentTips", BaseUI) + +function HeroFragmentTips:ctor(params) + self.itemId = params.itemId +end + +function HeroFragmentTips:getPrefabPath() + return "assets/prefabs/ui/tips/hero_fragment_tips.prefab" +end + +function HeroFragmentTips:isFullScreen() + return false +end + +function HeroFragmentTips:onLoadRootComplete() + local cfg = ConfigManager:getConfig("item")[self.itemId] + if cfg == nil then + return self:closeUI() + end + local drop = cfg.hero_drop + if drop == nil then + return self:closeUI() + end + self.heroList = {} + for _, v in ipairs(drop) do + if DataManager.HeroData:getHeroIsActive(v.id) then + table.insert(self.heroList, v.id) + end + end + local heroCfg = ConfigManager:getConfig("hero") + local heroA + local heroB + table.sort(self.heroList, function(a, b) + heroA = heroCfg[a] + heroB = heroCfg[b] + if heroA.qlt == heroB.qlt then + return a > b + else + return heroA.qlt > heroB.qlt + end + end) + local uiMap = self.root:genAllChildren() + self.uiMap = uiMap + uiMap["hero_fragment_tips.title_bg_img.card"]:setSprite(GConst.ATLAS_PATH.ICON_ITEM, cfg.icon) + uiMap["hero_fragment_tips.title_bg_img.desc"]:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_CARD_TIPS_DESC)) + uiMap["hero_fragment_tips.title_bg_img.title_text"]:setText(I18N:getGlobalText(I18N.GlobalConst["HERO_CARD_DESC_QLT_" .. cfg.qlt])) + uiMap["hero_fragment_tips.title_bg_img.ok_btn"]:addClickListener(function() + self:closeUI() + end) + uiMap["hero_fragment_tips.title_bg_img.ok_btn.text"]:setText(I18N:getGlobalText(I18N.GlobalConst.BTN_TEXT_OK)) + + self:initScrollRect() +end + +function HeroFragmentTips:initScrollRect() + local scrollRectComp = self.uiMap["hero_fragment_tips.title_bg_img.scroll_rect"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE) + scrollRectComp:addInitCallback(function() + return GConst.TYPEOF_LUA_CLASS.REWARD_CELL + end) + scrollRectComp:addRefreshCallback(function(index, cell) + cell:refreshItemById(self.heroList[index], 0) + end) + scrollRectComp:clearCells() + scrollRectComp:refillCells(#self.heroList) +end + +return HeroFragmentTips \ No newline at end of file diff --git a/lua/app/ui/tips/hero_fragment_tips.lua.meta b/lua/app/ui/tips/hero_fragment_tips.lua.meta new file mode 100644 index 00000000..602a8dd5 --- /dev/null +++ b/lua/app/ui/tips/hero_fragment_tips.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 7b294c4c3d71286439f39110b326523a +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/ui/tips/rewards_tips.lua b/lua/app/ui/tips/rewards_tips.lua index b0cc58ec..318aa27c 100644 --- a/lua/app/ui/tips/rewards_tips.lua +++ b/lua/app/ui/tips/rewards_tips.lua @@ -5,6 +5,7 @@ function RewardsTips:ctor(params) self.params = params self.tarCornerScreenPos = params.tarCornerScreenPos self.location = params.location + self.callback = params.callback end function RewardsTips:getPrefabPath() @@ -65,6 +66,9 @@ function RewardsTips:onClose() tipsBgTransform.anchoredPosition = self.originAnchoredPosition tipsBgTransform.localPosition = self.originLocalPosition end + if self.callback then + self.callback() + end end return RewardsTips \ No newline at end of file diff --git a/lua/app/userdata/battle/battle_grid_entity.lua b/lua/app/userdata/battle/battle_grid_entity.lua index 1a40c8c3..ca230147 100644 --- a/lua/app/userdata/battle/battle_grid_entity.lua +++ b/lua/app/userdata/battle/battle_grid_entity.lua @@ -386,4 +386,8 @@ function BattleGridEntity:getEffectTrigger() return self:getGridTypeConfig().effect_trigger end +function BattleGridEntity:getBreakFlyToCharacter() + return self:getGridTypeConfig().break_fly_to_character == 1 +end + return BattleGridEntity \ No newline at end of file diff --git a/lua/app/userdata/battle/skill/battle_board_skill_entity.lua b/lua/app/userdata/battle/skill/battle_board_skill_entity.lua index fb828706..8437fb21 100644 --- a/lua/app/userdata/battle/skill/battle_board_skill_entity.lua +++ b/lua/app/userdata/battle/skill/battle_board_skill_entity.lua @@ -5,11 +5,12 @@ function BattleBoardSkillEntity:ctor(skillId) self:refreshSkillId(skillId) self.curEnergy = 0 self.addRange = {} - self.linkEffectEntities = {} - self.inInfluenceEntities = {} - self.skillAttackBeforeEffectEntities = {} - self.elementCountEffectEntities = {} - self.cacheBuffEntities = {} + self.linkEffectEntities = {} -- 链接攻击伤害 type = 3 + self.inInfluenceEntities = {} -- 技能消除攻击伤害 type = 11 + self.skillAttackBeforeEffectEntities = {} -- 战斗开始前获得技能效果 type = 12 + self.elementCountEffectEntities = {} -- 根据消除数量获得次数的技能效果 type = 13 + self.linkCountMoreEffects = {} -- 链接超过x元素获得一次技能效果 type = 14 + self.linkCountPowerEffects = {} -- 链接超过x元素获得倍数技能效果 type = 15 self.upSkillIdMap = {} self.getUpSkillKind = 0 @@ -280,27 +281,38 @@ function BattleBoardSkillEntity:addInInfluenceEffect(effect, unitEntity, targetS end end -function BattleBoardSkillEntity:addSkillAttackBeforeEffect(index, effect, unitEntity, targetSide) - local buffEntity = self.skillAttackBeforeEffectEntities[index] +function BattleBoardSkillEntity:addSkillAttackBeforeEffect(rogueSkill, index, effect, unitEntity, targetSide) + if not self.skillAttackBeforeEffectEntities[rogueSkill] then + self.skillAttackBeforeEffectEntities[rogueSkill] = {} + end + local buffEntity = self.skillAttackBeforeEffectEntities[rogueSkill][index] if not buffEntity then buffEntity = BattleBuffEntity:create() buffEntity:init(effect, unitEntity) - self.skillAttackBeforeEffectEntities[index] = buffEntity + self.skillAttackBeforeEffectEntities[rogueSkill][index] = buffEntity else buffEntity:init(effect, unitEntity) end buffEntity:setTargetSide(targetSide) end +function BattleBoardSkillEntity:removeSkillAttackBeforeEffect(rogueSkill) + self.skillAttackBeforeEffectEntities[rogueSkill] = nil +end + function BattleBoardSkillEntity:getSkillAttackBeforeEffects() return self.skillAttackBeforeEffectEntities end -function BattleBoardSkillEntity:addElementCountEffect(effect, unitEntity, targetSide) - local buffEntities = self.elementCountEffectEntities[effect.type] +function BattleBoardSkillEntity:addElementCountEffect(rogueSkill, index, effect, unitEntity, targetSide) + if not self.elementCountEffectEntities[rogueSkill] then + self.elementCountEffectEntities[rogueSkill] = {} + end + local buffEntities = self.elementCountEffectEntities[rogueSkill][index] if not buffEntities then - self.elementCountEffectEntities[effect.type] = {} - buffEntities = self.elementCountEffectEntities[effect.type] + self.elementCountEffectEntities[rogueSkill][index] = {} + buffEntities = self.elementCountEffectEntities[rogueSkill][index] + local originBuffEntity = BattleBuffEntity:create() originBuffEntity:init(effect, unitEntity) originBuffEntity:setTargetSide(targetSide) @@ -325,27 +337,14 @@ function BattleBoardSkillEntity:addElementCountEffect(effect, unitEntity, target end end +function BattleBoardSkillEntity:removeElementCountEffect(rogueSkill) + self.elementCountEffectEntities[rogueSkill] = nil +end + function BattleBoardSkillEntity:getElementCountEffect() return self.elementCountEffectEntities end -function BattleBoardSkillEntity:addBuffEffect(buff, unitEntity) - local buffEntity = self.cacheBuffEntities[buff.type] - if not buffEntity then - buffEntity = BattleBuffEntity:create() - buffEntity:init(buff, unitEntity) - self.cacheBuffEntities[buff.type] = buffEntity - else - local buffNum = buffEntity:getEffectNum() - buffEntity:init(buff, unitEntity) - buffEntity:setEffectNum(buffEntity:getEffectNum() + buffNum) - end -end - -function BattleBoardSkillEntity:getBuffEffects() - return self.cacheBuffEntities -end - function BattleBoardSkillEntity:getEliminateEffects(battleController) local unitEntity = battleController.battleData.atkTeam:getAllMembers()[self:getPosition()] if not unitEntity or not self.config.eliminate_effect then @@ -390,4 +389,61 @@ function BattleBoardSkillEntity:gotUpSKill(skillId) return true end +function BattleBoardSkillEntity:addLinkCountMoreEffects(rogueSkill, index, effect, unitEntity, targetSide, paramsCount) + if not self.linkCountMoreEffects[rogueSkill] then + self.linkCountMoreEffects[rogueSkill] = {} + end + local info = self.linkCountMoreEffects[rogueSkill][index] + if not info then + info = {paramsCount = paramsCount} + info.buffEntity = BattleBuffEntity:create() + info.buffEntity:init(effect, unitEntity) + self.linkCountMoreEffects[rogueSkill][index] = info + else + info.buffEntity:init(effect, unitEntity) + end + info.buffEntity:setTargetSide(targetSide) +end + +function BattleBoardSkillEntity:removeLinkCountMoreEffects(rogueSkill) + self.linkCountMoreEffects[rogueSkill] = nil +end + +function BattleBoardSkillEntity:getLinkCountMoreEffects() + return self.linkCountMoreEffects +end + +function BattleBoardSkillEntity:addLinkCountPowerEffects(rogueSkill, index, effect, unitEntity, targetSide, paramsCount) + if not self.linkCountPowerEffects[rogueSkill] then + self.linkCountPowerEffects[rogueSkill] = {} + end + local info = self.linkCountPowerEffects[rogueSkill][index] + if not info then + info = {paramsCount = paramsCount} + info.originBuffEntity = BattleBuffEntity:create() + info.originBuffEntity:init(effect, unitEntity) + info.originBuffEntity:setTargetSide(targetSide) + + info.useBuffEntity = BattleBuffEntity:create() + info.useBuffEntity:init(effect, unitEntity) + info.useBuffEntity:setTargetSide(targetSide) + + self.linkCountPowerEffects[rogueSkill][index] = info + else + info.originBuffEntity:init(effect, unitEntity) + info.originBuffEntity:setTargetSide(targetSide) + + info.useBuffEntity:init(effect, unitEntity) + info.useBuffEntity:setTargetSide(targetSide) + end +end + +function BattleBoardSkillEntity:removeLinkCountPowerEffects(rogueSkill) + self.linkCountPowerEffects[rogueSkill] = nil +end + +function BattleBoardSkillEntity:getLinkCountPowerEffects() + return self.linkCountPowerEffects +end + return BattleBoardSkillEntity \ No newline at end of file diff --git a/lua/app/userdata/battle/skill/battle_buff_entity.lua b/lua/app/userdata/battle/skill/battle_buff_entity.lua index 31a0cd1d..c3677090 100644 --- a/lua/app/userdata/battle/skill/battle_buff_entity.lua +++ b/lua/app/userdata/battle/skill/battle_buff_entity.lua @@ -78,7 +78,7 @@ function BattleBuffEntity:setRound(num) self.round = num end -function BattleBuffEntity:getTartgetSide() +function BattleBuffEntity:getTargetSide() return self.targetSide end diff --git a/lua/app/userdata/battle/skill/battle_skill_entity.lua b/lua/app/userdata/battle/skill/battle_skill_entity.lua index 05aa89cc..6a1c93f4 100644 --- a/lua/app/userdata/battle/skill/battle_skill_entity.lua +++ b/lua/app/userdata/battle/skill/battle_skill_entity.lua @@ -23,7 +23,8 @@ function BattleSkillEntity:init() self.cd = 0 end self:initSkillEffect() - if self.skillInfo.effect or self.skillInfo.name_act then + self:initEffectBlock() + if self.skillInfo.effect or self.skillInfo.name_act or self.skillInfo.skill_type then self.available = true else self.available = false @@ -46,6 +47,36 @@ function BattleSkillEntity:initSkillEffect() end end +function BattleSkillEntity:initEffectBlock() + if not self.effectBlock then + self.effectBlock = {} + self.blockTime = {} + else + for i = #self.effectBlock, 1, -1 do + table.remove(self.effectBlock) + end + for i = #self.blockTime, 1, -1 do + table.remove(self.blockTime) + end + end + if self.skillInfo.effect_block then + for _, idx in ipairs(self.skillInfo.effect_block) do + table.insert(self.effectBlock, idx) + end + else + local count = 0 + if self.skillInfo.effect then + count = #self.skillInfo.effect + end + table.insert(self.effectBlock, count) + end + if self.skillInfo.block_time then + for _, time in ipairs(self.skillInfo.block_time) do + table.insert(self.blockTime, time / 1000) + end + end +end + function BattleSkillEntity:startUse() self.skillCanUseTimes = self.owner:getSkillExtraUseTimes(self.skillId) + 1 end @@ -160,6 +191,33 @@ function BattleSkillEntity:getEffectList() return self.effectList end +function BattleSkillEntity:getEffectBlock() + return self.effectBlock +end + +function BattleSkillEntity:getEffectBlockTime() + return self.blockTime +end + +function BattleSkillEntity:getBuffCondition(index) + if not self.skillInfo.buff_condition then + return + end + return self.skillInfo.buff_condition[index] +end + +function BattleSkillEntity:getBuffConditionRel(index) + if not self.skillInfo.condition_rel then + return + end + for _, info in ipairs(self.skillInfo.condition_rel) do + if info[1] == index then + return info[2] + end + end + return self.skillInfo.condition_rel[index] +end + function BattleSkillEntity:getTargetType() return self.skillInfo.obj end diff --git a/lua/app/userdata/battle/team/battle_team_entity.lua b/lua/app/userdata/battle/team/battle_team_entity.lua index 5cda5537..08bbccb1 100644 --- a/lua/app/userdata/battle/team/battle_team_entity.lua +++ b/lua/app/userdata/battle/team/battle_team_entity.lua @@ -305,6 +305,10 @@ function BattleTeamEntity:getSkillHurt() return self.attr.skill_hurt or 0 end +function BattleTeamEntity:getAttrValue(attrName) + return self.attr[attrName] or 0 +end + function BattleTeamEntity:takeDamageOrCure(num) if self.isDead then return 0 diff --git a/lua/app/userdata/battle/team/battle_unit_entity.lua b/lua/app/userdata/battle/team/battle_unit_entity.lua index c7f308a4..e84bf21e 100644 --- a/lua/app/userdata/battle/team/battle_unit_entity.lua +++ b/lua/app/userdata/battle/team/battle_unit_entity.lua @@ -394,6 +394,10 @@ function BattleUnitEntity:getIsDead() return self.team:getIsDead() end +function BattleUnitEntity:getAttrValue(attr) + return self.team:getAttrValue(attr) +end + function BattleUnitEntity:addSkillExtraUseTimes(skillId, count) if self.skillExtraUseTimes == nil then self.skillExtraUseTimes = {} diff --git a/lua/app/userdata/bounty/bounty_data.lua b/lua/app/userdata/bounty/bounty_data.lua index b7db7ce6..6f4ce654 100644 --- a/lua/app/userdata/bounty/bounty_data.lua +++ b/lua/app/userdata/bounty/bounty_data.lua @@ -17,6 +17,7 @@ function BountyData:init(data) self.level = data.level or 1 self.exp = data.exp or 0 self.bought = data.bought + self.popBoughtTime = LocalData:getBountyPopTime() self.claimed = data.claimed or {} self.claimedCount = 0 for k, v in pairs(self.claimed) do @@ -57,6 +58,11 @@ function BountyData:initBountyLevelCfg() table.remove(self.bountyLevelCfg) end end + if self.proRewards then + for i = 1, #self.proRewards do + table.remove(self.proRewards) + end + end local cfg = ConfigManager:getConfig("bounty_level") for k, v in pairs(cfg) do if v.season == self.season then @@ -102,6 +108,7 @@ function BountyData:setBought(season, level) end self.bought = true self.level = level or self.level + DataManager.DailyTaskData:unlockBountyTask() self:markDirty() end @@ -128,13 +135,17 @@ function BountyData:addExp(num) end function BountyData:getLvUpExp() - local info = self:getSeasonInfoByLevel(self.level) + local info = self:getSeasonInfoByLevel(self.level + 1) if info == nil then return self.repeatLevelInfo and self.repeatLevelInfo.exp or 1 end return info.exp end +function BountyData:getRepeatLevelInfo() + return self.repeatLevelInfo +end + function BountyData:getIsOpen() if ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.BOUNTY_OPEN, true) and self.endTime > Time:getServerTime() then return true @@ -162,6 +173,33 @@ function BountyData:getMaxLevel() return #self.bountyLevelCfg end +function BountyData:getBountyLevelCfg() + return self.bountyLevelCfg +end + +function BountyData:getAllProRewards() + if self.proRewards and #self.proRewards > 0 then + return self.proRewards + end + local rewards = {} + for i = 1, #self.bountyLevelCfg do + local cfg = self.bountyLevelCfg[i] + if cfg.reward_pro then + table.insert(rewards, cfg.reward_pro) + end + end + self.proRewards = GFunc.mergeRewards(rewards) + local cfg = ConfigManager:getConfig("item") + table.sort(self.proRewards, function(a, b) + if cfg[a.id].type == cfg[b.id].type then + return a.id > b.id + else + return cfg[a.id].type > cfg[b.id].type + end + end) + return self.proRewards +end + function BountyData:getLevelState(lv) return self.claimed[lv] end @@ -283,4 +321,38 @@ function BountyData:getExpItemIcon() return info.icon end +function BountyData:getIsPopBought() + if not self:getIsOpen() then + return false + end + if self.bought then + return false + end + return self.popBoughtTime < Time:getBeginningOfServerToday() +end + +function BountyData:markPopBought() + if self.popBoughtTime >= Time:getBeginningOfServerToday() then + return + end + self.popBoughtTime = Time:getBeginningOfServerToday() + LocalData:setBountyPopTime(self.popBoughtTime) +end + +function BountyData:getRechargeId(advanced) + local cfg = ConfigManager:getConfig("act_gift") + local id = self:getGiftId(advanced) + if cfg[id] then + return cfg[id].recharge_id + end + return 0 +end + +function BountyData:getBuyProBountyAddLevelCount() + if self.buyProBountyAddLevelCount == nil then + self.buyProBountyAddLevelCount = ConfigManager:getConfig("const")["bounty_senior_rise"].value + end + return self.buyProBountyAddLevelCount +end + return BountyData \ No newline at end of file diff --git a/lua/app/userdata/chapter/chapter_data.lua b/lua/app/userdata/chapter/chapter_data.lua index 086b81a7..3f1b3d72 100644 --- a/lua/app/userdata/chapter/chapter_data.lua +++ b/lua/app/userdata/chapter/chapter_data.lua @@ -297,11 +297,12 @@ function ChapterData:openBox(chapterId, index) self:setDirty() end -function ChapterData:fightChapter(chapterId, maxChapterId, maxWave) +function ChapterData:fightChapter(chapterId, maxChapterId, maxWave, mysteryBoxIdx) if not self.data.chapterInfo[chapterId] then self.data.chapterInfo[chapterId] = { total_count = 0, - index = {} + index = {}, + mystery_box_idx = {} } end self.data.chapterInfo[chapterId].total_count = (self.data.chapterInfo[chapterId].total_count or 0) + 1 @@ -318,7 +319,74 @@ function ChapterData:fightChapter(chapterId, maxChapterId, maxWave) self.data.maxChapterId = maxChapterId - 1 end + for _, idx in ipairs(mysteryBoxIdx) do + if not self:getChapterMysteryBoxIsGot(chapterId, idx) then + table.insert(self.data.chapterInfo[chapterId].mystery_box_idx, idx) + end + end + self:setDirty() end +function ChapterData:getChapterMysteryBoxReward(chapterId) + local cfg = self:getChapterCfg()[chapterId] + if not cfg then + return + end + return cfg.mystery_box_reward +end + +function ChapterData:getChapterMysteryBoxRewardCount(chapterId) + local cfg = self:getChapterCfg()[chapterId] + if not cfg then + return 0 + end + if cfg.mystery_box_reward then + return #cfg.mystery_box_reward + else + return 0 + end +end + +function ChapterData:getChapterMysteryBoxIsGot(chapterId, index) + if not self.data.chapterInfo[chapterId] then + return false + end + if not self.data.chapterInfo[chapterId].mystery_box_idx then + return false + end + for _, idx in ipairs(self.data.chapterInfo[chapterId].mystery_box_idx) do + if idx == index then + return true + end + end + return false +end + +function ChapterData:getGoldDrop() + local info = self:getChapterCfg()[self:getMaxChapterId()] + if info == nil then + return 0 + end + return info.idle_gold +end + +function ChapterData:getExpDrop() + local info = self:getChapterCfg()[self:getMaxChapterId()] + if info == nil then + return 0 + end + return info.idle_exp +end + +function ChapterData:getChapterMysteryBoxGotCount(chapterId) + if not self.data.chapterInfo[chapterId] then + return 0 + end + if not self.data.chapterInfo[chapterId].mystery_box_idx then + return 0 + end + return #self.data.chapterInfo[chapterId].mystery_box_idx +end + return ChapterData \ No newline at end of file diff --git a/lua/app/userdata/hero/hero_data.lua b/lua/app/userdata/hero/hero_data.lua index c6db5503..5a0846c7 100644 --- a/lua/app/userdata/hero/hero_data.lua +++ b/lua/app/userdata/hero/hero_data.lua @@ -63,6 +63,14 @@ function HeroData:getActiveHeroCount() return self.data.activeCount end +function HeroData:getHeroIsActive(id) + local entity = self.heroes[id] + if entity == nil then + return false + end + return entity:isActived() +end + function HeroData:getUnlockHeroCount() local count = 0 for id, entity in pairs(self.heroes) do diff --git a/lua/app/userdata/hero/hero_entity.lua b/lua/app/userdata/hero/hero_entity.lua index 98291d5a..9ca5cf43 100644 --- a/lua/app/userdata/hero/hero_entity.lua +++ b/lua/app/userdata/hero/hero_entity.lua @@ -240,13 +240,15 @@ end function HeroEntity:getRogueSkillList() if not self.rogueSkillList then self.rogueSkillList = {} - for i = 1, 3 do - local id = self.config["rouge_skill_" .. i] + local count = 1 + while true do + local id = self.config["rouge_skill_" .. count] if id then table.insert(self.rogueSkillList, id) else break end + count = count + 1 end end @@ -260,7 +262,7 @@ function HeroEntity:getActiveTogueSkills() if id then table.insert(list, id) else - return + break end end diff --git a/lua/app/userdata/idle.meta b/lua/app/userdata/idle.meta new file mode 100644 index 00000000..c47b79e1 --- /dev/null +++ b/lua/app/userdata/idle.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8781f39eeaed2c14ab4d0a53dd345334 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/lua/app/userdata/idle/idle_data.lua b/lua/app/userdata/idle/idle_data.lua new file mode 100644 index 00000000..983dae68 --- /dev/null +++ b/lua/app/userdata/idle/idle_data.lua @@ -0,0 +1,195 @@ +local IdleData = class("IdleData", BaseData) + +function IdleData:ctor() + self.data.dirty = false + self.idleRewardMap = {} + self.idleQuickPreviewRewardMap = {} +end + +function IdleData:init(data) + data = data or GConst.EMPTY_TABLE + self.data.dropTime = (data.claim_at or 0) // 1000 + self.data.adCount = data.ad_count or 0 + self.data.energyCount = data.energy_count or 0 +end + +function IdleData:onGetIdleShowRewrad(data) + data = data or GConst.EMPTY_TABLE + self.data.dropTime = (data.claim_at or 0) // 1000 + self.data.adCount = data.ad_count or 0 + self.data.energyCount = data.energy_count or 0 + self:updateIdleRewards(data.items) + self:markDirty() +end + +function IdleData:updateIdleRewards(items) + if items == nil then + return + end + for k, v in pairs(self.idleRewardMap) do + self.idleRewardMap[k].num = 0 + end + for id, num in pairs(items) do + if self.idleRewardMap[id] then + self.idleRewardMap[id].num = num + else + self.idleRewardMap[id] = { + id = id, + num = num, + type = GConst.REWARD_TYPE.ITEM + } + end + end + self:markDirty() +end + +function IdleData:getIdleRewards() + return self.idleRewardMap +end + +function IdleData:markDirty() + self.data.dirty = not self.data.dirty +end + +function IdleData:getLastDropTime() + return self.data.dropTime +end + +function IdleData:onGetIdleRewrad(time) + self.data.dropTime = time // 1000 + for k, v in pairs(self.idleRewardMap) do + self.idleRewardMap[k].num = 0 + end + self:markDirty() +end + +function IdleData:onGetIdleQuickRewrad(data) + self.data.adCount = data.ad_count or 0 + self.data.energyCount = data.energy_count or 0 + self:markDirty() +end + +function IdleData:getIdleQuickDropPreviewRewards() + for k, v in pairs(self.idleQuickPreviewRewardMap) do + self.idleQuickPreviewRewardMap[k].num = 0 + end + + local chapterId = DataManager.ChapterData:getMaxChapterId() + local cfg = ConfigManager:getConfig("chapter")[chapterId] + if cfg == nil then + return self.idleQuickPreviewRewardMap + end + local constCfg = ConfigManager:getConfig("const") + local coinPerTime = constCfg.idle_exp_drop_time.value + local expPerTime = constCfg.idle_gold_drop_time.value + local itemPerTime = constCfg.idle_item_drop_time.value + local time = self:getQuickIdleTime() + + local itemGold = self.idleQuickPreviewRewardMap[GConst.ItemConst.ITEM_ID_GOLD] + if itemGold == nil then + itemGold = {} + itemGold.id = GConst.ItemConst.ITEM_ID_GOLD + itemGold.type = GConst.REWARD_TYPE.ITEM + self.idleQuickPreviewRewardMap[GConst.ItemConst.ITEM_ID_GOLD] = itemGold + end + itemGold.num = math.floor(cfg.idle_gold * (time // coinPerTime)) + + local itemExp = self.idleQuickPreviewRewardMap[GConst.ItemConst.ITEM_ID_EXP] + if itemExp == nil then + itemExp = {} + itemExp.id = GConst.ItemConst.ITEM_ID_EXP + itemExp.type = GConst.REWARD_TYPE.ITEM + self.idleQuickPreviewRewardMap[GConst.ItemConst.ITEM_ID_EXP] = itemExp + end + itemExp.num = math.floor(cfg.idle_exp * (time // expPerTime)) + + local itemCard = self.idleQuickPreviewRewardMap[GConst.ItemConst.ITEM_ID_RANDOM_FRAGMENT] + if itemCard == nil then + itemCard = {} + itemCard.id = GConst.ItemConst.ITEM_ID_RANDOM_FRAGMENT + itemCard.type = GConst.REWARD_TYPE.ITEM + self.idleQuickPreviewRewardMap[GConst.ItemConst.ITEM_ID_RANDOM_FRAGMENT] = itemCard + end + itemCard.num = math.floor((time // itemPerTime)) + + return self.idleQuickPreviewRewardMap +end + +function IdleData:getIsOpen() + return ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.IDLE_DROP, true) +end + +function IdleData:getIdleGoldDropTime() + if self.idleGoldDropTime == nil then + self.idleGoldDropTime = ConfigManager:getConfig("const")["idle_gold_drop_time"].value + end + return self.idleGoldDropTime +end + +function IdleData:getIdleExpDropTime() + if self.idleExpDropTime == nil then + self.idleExpDropTime = ConfigManager:getConfig("const")["idle_exp_drop_time"].value + end + return self.idleExpDropTime +end + +function IdleData:getIdleMaxTime() + if self.idleMaxTime == nil then + self.idleMaxTime = ConfigManager:getConfig("const")["idle_maxtime"].value + end + return self.idleMaxTime +end + +function IdleData:getGoldPerHour() + local goldDrop = DataManager.ChapterData:getGoldDrop() + local time = self:getIdleGoldDropTime() + return math.floor(goldDrop * 3600 / time) +end + +function IdleData:getExpPerHour() + local expDrop = DataManager.ChapterData:getExpDrop() + local time = self:getIdleExpDropTime() + return math.floor(expDrop * 3600 / time) +end + +function IdleData:getQuickIdleMaxAdTimes() + if self.quickIdleMaxAdTimes == nil then + self.quickIdleMaxAdTimes = ConfigManager:getConfig("const")["idle_drop_fast_times_1"].value + end + return self.quickIdleMaxAdTimes +end + +function IdleData:getQuickIdleAdRemainTimes() + return self:getQuickIdleMaxAdTimes() - self.data.adCount +end + +function IdleData:getQuickIdleMaxVitTimes() + if self.quickIdleMaxVitTimes == nil then + self.quickIdleMaxVitTimes = ConfigManager:getConfig("const")["idle_drop_fast_times_2"].value + end + return self.quickIdleMaxVitTimes +end + +function IdleData:getQuickIdleVitRemainTimes() + return self:getQuickIdleMaxVitTimes() - self.data.energyCount +end + +function IdleData:getQuickIdleRemainTimes() + return self:getQuickIdleMaxAdTimes() + self:getQuickIdleMaxVitTimes() - self.data.adCount - self.data.energyCount +end + +function IdleData:getQuickIdleCost() + if self.quickIdleCost == nil then + self.quickIdleCost = ConfigManager:getConfig("const")["idle_drop_fast_cost"].reward + end + return self.quickIdleCost +end + +function IdleData:getQuickIdleTime() + if self.quickIdleTime == nil then + self.quickIdleTime = ConfigManager:getConfig("const")["idle_drop_fast_time"].value + end + return self.quickIdleTime +end + +return IdleData \ No newline at end of file diff --git a/lua/app/userdata/idle/idle_data.lua.meta b/lua/app/userdata/idle/idle_data.lua.meta new file mode 100644 index 00000000..ad1895e8 --- /dev/null +++ b/lua/app/userdata/idle/idle_data.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 8a5f006ede4852a48a52f4c9ab6963ef +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/userdata/mail.meta b/lua/app/userdata/mail.meta new file mode 100644 index 00000000..bc641b1c --- /dev/null +++ b/lua/app/userdata/mail.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b2f9edf752615204da2c3f31531c458e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/lua/app/userdata/mail/mail_data.lua b/lua/app/userdata/mail/mail_data.lua new file mode 100644 index 00000000..ec91a9d2 --- /dev/null +++ b/lua/app/userdata/mail/mail_data.lua @@ -0,0 +1,203 @@ +local MailData = class("MailData", BaseData) + +local MailEntity = "app/userdata/mail/mail_entity" + +local TIME_TYPE = { + DAY = 1, + WEEK = 2, + MONTH = 3, +} +function MailData:ctor() + self.mails = {} + self.needGetNewMail = false + self.data.isDirty = false + self.data.redPoint = false + self.maxMailId = 0 +end + +function MailData:clear() + self.mails = {} + self.data.redPoint = false + self.lastMailId = nil + self.mailIsOpen = false +end + +function MailData:init(data) + data = data or GConst.EMPTY_TABLE + self.mails = {} + self.needGetNewMail = false + self:addMails(data.mails) + + self:updateRedPointCd() + DataManager:registerDataCd("MailData") +end + +function MailData:updateRedPointCd() + self.needUpdateRedPointInfo = {} + local cfg = ConfigManager:getConfig("mail") + for i,v in ipairs(cfg) do + if v.time_type == TIME_TYPE.DAY then + for ii = 1, 7 do + self.needUpdateRedPointInfo[ii] = self.needUpdateRedPointInfo[ii] or {} + if #v.time_send == 3 then + local time = v.time_send[1] * 3600 + v.time_send[2] * 60 + v.time_send[3] + if not table.containValue(self.needUpdateRedPointInfo[ii], time) then + table.insert(self.needUpdateRedPointInfo[ii], time) + end + end + end + elseif v.time_type == TIME_TYPE.WEEK then + if #v.time_send == 4 then + local day = v.time_send[1] + self.needUpdateRedPointInfo[day] = self.needUpdateRedPointInfo[day] or {} + local time = v.time_send[2] * 3600 + v.time_send[3] * 60 + v.time_send[4] + if not table.containValue(self.needUpdateRedPointInfo[day], time) then + table.insert(self.needUpdateRedPointInfo[day], time) + end + end + elseif v.time_type == TIME_TYPE.MONTH then + --TODO 暂时没有 无数据格式 + end + end +end + +function MailData:updateCd() + local nowTime = Time:getServerTime() + local today = Time:getDayofWeek() + local times = self.needUpdateRedPointInfo[today] or {} + local curTime = nowTime % 86400 + for i, v in ipairs(times) do + if v == curTime then + EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.TIME_TRIGGERED_NEW_EMAIL) + break + end + end +end + +function MailData:addMails(mails) + if not mails then + return + end + + for _, info in pairs(mails) do + local entity = require(MailEntity):create(info) + self.mails[info.id] = entity + if self.maxMailId < info.id then + self.maxMailId = info.id + end + end + + self:setDirty() + self:refreshRedPoint() +end + +function MailData:getMails() + return self.mails +end + +function MailData:setDirty() + self.data.isDirty = not self.data.isDirty +end + +function MailData:setMailReceived(id) + if not self.mails[id] then + return + end + self.mails[id]:receivedThis() + + self:setDirty() + self:refreshRedPoint() +end + +function MailData:setMailRead(id) + if not self.mails[id] then + return + end + self.mails[id]:readThis() + + self:refreshRedPoint() + self:setDirty() +end + +function MailData:deleteMail(ids) + if not ids then + return + end + + for _, id in ipairs(ids) do + self.mails[id] = nil + end + + self:setDirty() +end + +function MailData:refreshRedPoint() + if self.needGetNewMail then + self.data.redPoint = true + self.isAdRedPoint = false + return + end + + local reset = true + local haveNoAdRp = false + for id, entity in pairs(self.mails) do + if entity:canClaim() then + self.data.redPoint = true + if entity:getIsAdMail() then + if not haveNoAdRp then + self.isAdRedPoint = true + end + else + haveNoAdRp = true + self.isAdRedPoint = false + end + reset = false + end + end + if reset then + self.data.redPoint = false + self.isAdRedPoint = false + end +end + +function MailData:getRedPoint() + return self.data.redPoint, self.isAdRedPoint +end + +function MailData:setNeedGetNewMail(need) + self.needGetNewMail = need == true + if self.needGetNewMail then + self:refreshRedPoint() + end +end + +function MailData:getNeedGetNewMail() + return self.needGetNewMail +end + +function MailData:getLastMailId() + if not self.lastMailId then + self.lastMailId = LocalData:getLastMailId() + end + return self.lastMailId +end + +function MailData:setLastMailId() + if not self.maxMailId or not self.lastMailId then + return + end + + if self.lastMailId < self.maxMailId then + self.lastMailId = self.maxMailId + LocalData:setLastMailId(self.lastMailId) + end +end + +function MailData:getIsOpen() + if not self.mailIsOpen then + self.mailIsOpen = ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.MAIL_OPEN, true) + end + return self.mailIsOpen +end + +return MailData \ No newline at end of file diff --git a/lua/app/userdata/mail/mail_data.lua.meta b/lua/app/userdata/mail/mail_data.lua.meta new file mode 100644 index 00000000..4281f8db --- /dev/null +++ b/lua/app/userdata/mail/mail_data.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: a1288415a188ea64f807d5e0e28bc56f +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/userdata/mail/mail_entity.lua b/lua/app/userdata/mail/mail_entity.lua new file mode 100644 index 00000000..7801ba46 --- /dev/null +++ b/lua/app/userdata/mail/mail_entity.lua @@ -0,0 +1,169 @@ +local MailEntity = class("MailEntity", BaseData) + +function MailEntity:ctor(info) + info = info or GConst.EMPTY_TABLE + self.id = info.id or 0 + self.createTime = GFunc.formatTimeStep(info.create_at) + self.mailExpire = GFunc.formatTimeStep(info.expire + info.create_at) + self.state = info.state or GConst.MailConst.MAIL_TYPE.NOT_READ + self.mailType = GConst.MailConst.MAIL_TYPE.CUSTOM + self.mailCfgId = nil -- 可能为空 + self.title = json.decode(info.title or "{}") + self.body = json.decode(info.body or "{}") + self.rewards = info.rewards or {} + self.data.isDirty = false + + if self.title.key then + local cfg = ConfigManager:getConfig("mail")[self.title.key] + if cfg then + self.mailCfgId = self.title.key + self.mailType = cfg.type + end + end +end + +function MailEntity:setDirty() + self.data.isDirty = not self.data.isDirty +end + +function MailEntity:getId() + return self.id +end + +function MailEntity:notRead() + return self.state == GConst.MailConst.MAIL_STATE.NOT_READ +end + +function MailEntity:isRead() + return self.state == GConst.MailConst.MAIL_STATE.READED +end + +function MailEntity:readThis() + if self:isReceived() then + return + end + self.state = GConst.MailConst.MAIL_STATE.READED +end + +function MailEntity:isReceived() + return self.state == GConst.MailConst.MAIL_STATE.RECEIVED +end + +function MailEntity:receivedThis() + self.state = GConst.MailConst.MAIL_STATE.RECEIVED +end + +function MailEntity:getState() + return self.state +end + +function MailEntity:getMailName() + if self.mailCfgId then + return I18N:getConfig("mail")[self.mailCfgId].name + else + local language = I18N:getCurLanguage() + if self.title.content then + return self.title.content[language] or GConst.EMPTY_STRING + elseif self.title.raw then + return self.title.raw + else + return GConst.EMPTY_STRING + end + end +end + +function MailEntity:getMailDesc() + if self.mailCfgId then + return I18N:getConfig("mail")[self.mailCfgId].desc + else + local language = I18N:getCurLanguage() + if self.body.content then + return self.body.content[language] or GConst.EMPTY_STRING + elseif self.body.raw then + return self.body.raw + else + return GConst.EMPTY_STRING + end + end +end + +function MailEntity:getMailExpire() + return self.mailExpire +end + +function MailEntity:getRemainCd() + if not self.mailExpire then + return 0 + end + + local remainCd = self.mailExpire - Time:getServerTime() + if remainCd < 0 then + remainCd = 0 + end + + return remainCd +end + +function MailEntity:getRemainCdStr() + local hour = self:getRemainCd() // 3600 + if hour <= 0 then + hour = 1 + end + return I18N:getGlobalText(I18N.GlobalConst.MAIL_COUNTDOWN, hour) +end + +function MailEntity:getRewards() + return self.rewards +end + +function MailEntity:haveReward() + return self:getRewards()[1] ~= nil +end + +function MailEntity:getMailType() + return self.mailType +end + +function MailEntity:getIsAdMail() + return self.mailType == GConst.MailConst.MAIL_TYPE.AD +end + +function MailEntity:getIsNormalMail() + return self.mailType == GConst.MailConst.MAIL_TYPE.NORMAL +end + +function MailEntity:canClaim() + if self:isOver() then + return false + end + + if not self:getRewards()[1] then + return false + end + + return not self:isReceived() +end + +function MailEntity:isOver() + return self:getRemainCd() <= 0 +end + +function MailEntity:canDelete() + if self:isReceived() then + return true + end + if not self:haveReward() and self:isRead() then + return true + end + return false +end + +function MailEntity:showNew() + if not self:notRead() then + return false + end + + return self:getId() > DataManager.MailData:getLastMailId() +end + +return MailEntity \ No newline at end of file diff --git a/lua/app/userdata/mail/mail_entity.lua.meta b/lua/app/userdata/mail/mail_entity.lua.meta new file mode 100644 index 00000000..550c6744 --- /dev/null +++ b/lua/app/userdata/mail/mail_entity.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 2726071e33132774391e1f44fe68b154 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/userdata/player/player_data.lua b/lua/app/userdata/player/player_data.lua index 711253f3..0e63a8d2 100644 --- a/lua/app/userdata/player/player_data.lua +++ b/lua/app/userdata/player/player_data.lua @@ -7,7 +7,7 @@ function PlayerData:init(data) self.data.dirty = false self.data.payAmount = basicInfo.pay_amount or 0 - local energyLimit = data.energyLimit or GConst.EMPTY_TABLE + local energyLimit = data.energy_limit or GConst.EMPTY_TABLE self.data.vitGemCount = energyLimit.diamond_count or 0 self.data.vitADCount = energyLimit.ad_count or 0 diff --git a/lua/app/userdata/task/daily_task_data.lua b/lua/app/userdata/task/daily_task_data.lua index 40409639..dea2de24 100644 --- a/lua/app/userdata/task/daily_task_data.lua +++ b/lua/app/userdata/task/daily_task_data.lua @@ -12,6 +12,7 @@ function DailyTaskData:ctor() self.isInReset = false self.taskTypeMap = {} self.dailyTasks = {} + self.isUnlockBountyDailyTask = false end function DailyTaskData:init(data) @@ -26,6 +27,7 @@ function DailyTaskData:init(data) table.remove(v) end end + self.isUnlockBountyDailyTask = DataManager.BountyData:getBought() local redPoint = 0 ModuleManager.TaskManager:unRegisterAllModuleTask(DATA_NAME) for k, v in pairs(cfg) do @@ -49,7 +51,7 @@ function DailyTaskData:init(data) dailyTaskObj.redPoint = false end if v.bounty then - if DataManager.BountyData:getBought() then + if self.isUnlockBountyDailyTask then dailyTaskObj.lock = false else dailyTaskObj.lock = true @@ -63,7 +65,7 @@ function DailyTaskData:init(data) end table.insert(list, dailyTaskObj) if #list == 1 then - self:registerTask(taskInfo.type) + self:registerTaskWithType(taskInfo.type) end end self.dailyTasks[k] = dailyTaskObj @@ -96,39 +98,26 @@ function DailyTaskData:refreshDailyTask(task) if originTaskInfo == nil then return end + local dailyTaskInfo = self:getDailyTaskCfg()[id] + if dailyTaskInfo == nil then + return + end dailyTaskObj.id = task.id dailyTaskObj.taskId = task.task_id dailyTaskObj.progress = task.progress dailyTaskObj.needProgress = taskInfo.number dailyTaskObj.refresh = task.refresh dailyTaskObj.claimed = task.claimed + dailyTaskObj.type = dailyTaskInfo.type + dailyTaskObj.reset = dailyTaskInfo.reset local redPoint = false if not dailyTaskObj.claimed and dailyTaskObj.progress >= dailyTaskObj.needProgress then redPoint = true end local originTaskType = originTaskInfo.type if originTaskType ~= taskInfo.type then -- 任务类型变了 - local originTaskList = self.taskTypeMap[originTaskType] - if originTaskList then - for k, v in ipairs(originTaskList) do - if v.id == id then - table.remove(originTaskList, k) - break - end - end - if #originTaskList == 0 then - self:unregisterTask(originTaskType) - end - end - local newTaskList = self.taskTypeMap[taskInfo.type] - if newTaskList == nil then - newTaskList = {} - self.taskTypeMap[taskInfo.type] = newTaskList - end - table.insert(newTaskList, dailyTaskObj) - if #newTaskList == 1 then - self:registerTask(taskInfo.type) - end + self:unregisterTask(id, originTaskType) + self:registerTask(dailyTaskObj, taskInfo.type) end self:markDailyTaskDirty() @@ -156,10 +145,28 @@ function DailyTaskData:getDailyResetTime() return 86400 - Time:getServerTime() % 86400 end +function DailyTaskData:getDailyTaskAdReward() + local task = self.dailyTasks[DAILY_TASK_AD_ID] + if task == nil then + return nil + end + local cfg = self:getTaskCfg() + return cfg[task.taskId].reward +end + function DailyTaskData:getDailyTaskAdId() return DAILY_TASK_AD_ID end +function DailyTaskData:getDailyTaskFinalReward() + local task = self.dailyTasks[DAILY_TASK_FINAL_ID] + if task == nil then + return nil + end + local cfg = self:getTaskCfg() + return cfg[task.taskId].reward +end + function DailyTaskData:getDailyTaskFinalId() return DAILY_TASK_FINAL_ID end @@ -294,7 +301,7 @@ function DailyTaskData:addTaskProgress(task, taskType, count) self:markDailyTaskDirty() end -function DailyTaskData:registerTask(taskType) +function DailyTaskData:registerTaskWithType(taskType) ModuleManager.TaskManager:registerTask(DATA_NAME, taskType, function(count) local list = self:getTaskListByType(taskType) if #list > 0 then @@ -305,10 +312,37 @@ function DailyTaskData:registerTask(taskType) end) end -function DailyTaskData:unregisterTask(taskType) +function DailyTaskData:unregisterTask(id, taskType) + local taskList = self.taskTypeMap[taskType] + if taskList then + for k, v in ipairs(taskList) do + if v.id == id then + table.remove(taskList, k) + break + end + end + if #taskList == 0 then + self:unregisterTaskWithType(taskType) + end + end +end + +function DailyTaskData:unregisterTaskWithType(taskType) ModuleManager.TaskManager:unRegisterTask(DATA_NAME, taskType) end +function DailyTaskData:registerTask(dailyTaskObj, taskType) + local taskList = self.taskTypeMap[taskType] + if taskList == nil then + taskList = {} + self.taskTypeMap[taskType] = taskList + end + table.insert(taskList, dailyTaskObj) + if #taskList == 1 then + self:registerTaskWithType(taskType) + end +end + function DailyTaskData:getIfCanReset() return self.initDay < Time:getBeginningOfServerToday() end @@ -325,4 +359,23 @@ function DailyTaskData:getIsShowRedPoint() return self.redPoint > 0 end +function DailyTaskData:unlockBountyTask() + if self.isUnlockBountyDailyTask then + return + end + self.isUnlockBountyDailyTask = true + local dirty = false + local taskCfg = self:getTaskCfg() + for k, v in pairs(self.dailyTasks) do + if v.lock then -- 有锁的要解锁 + v.lock = false + dirty = true + self:registerTask(v, taskCfg[v.taskId].type) + end + end + if dirty then + self:markDailyTaskDirty() + end +end + return DailyTaskData \ No newline at end of file