Merge branch 'dev' of git.juzugame.com:b6-client/b6-lua into dev
This commit is contained in:
commit
c6ea40de7e
@ -11,6 +11,7 @@ function DataManager:init()
|
|||||||
self:initManager("BagData", "app/userdata/bag/bag_data")
|
self:initManager("BagData", "app/userdata/bag/bag_data")
|
||||||
self:initManager("BattleData", "app/userdata/battle/battle_data")
|
self:initManager("BattleData", "app/userdata/battle/battle_data")
|
||||||
self:initManager("FormationData", "app/userdata/formation/formation_data")
|
self:initManager("FormationData", "app/userdata/formation/formation_data")
|
||||||
|
self:initManager("TutorialData", "app/userdata/tutorial/tutorial_data")
|
||||||
end
|
end
|
||||||
|
|
||||||
function DataManager:initManager(name, path)
|
function DataManager:initManager(name, path)
|
||||||
@ -87,6 +88,7 @@ function DataManager:initWithServerData(data)
|
|||||||
self.HeroData:init(data.HeroData)
|
self.HeroData:init(data.HeroData)
|
||||||
self.BagData:init(data.BagData)
|
self.BagData:init(data.BagData)
|
||||||
self.FormationData:init(data.FormationData)
|
self.FormationData:init(data.FormationData)
|
||||||
|
self.TutorialData:init(data.TutorialData)
|
||||||
|
|
||||||
self:scheduleGlobal()
|
self:scheduleGlobal()
|
||||||
self:checkDataBind()
|
self:checkDataBind()
|
||||||
|
|||||||
@ -19,6 +19,9 @@ EventManager.CUSTOM_EVENT = {
|
|||||||
TUTORIAL_TASK_REWARD = "TUTORIAL_TASK_REWARD",
|
TUTORIAL_TASK_REWARD = "TUTORIAL_TASK_REWARD",
|
||||||
ATK_TRAIN_TUTORIAL_OVER = "ATK_TRAIN_TUTORIAL_OVER",
|
ATK_TRAIN_TUTORIAL_OVER = "ATK_TRAIN_TUTORIAL_OVER",
|
||||||
TUTORIAL_TASK_STOP = "TUTORIAL_TASK_STOP",
|
TUTORIAL_TASK_STOP = "TUTORIAL_TASK_STOP",
|
||||||
|
ELIMINATION_OVER = "ELIMINATION_OVER",
|
||||||
|
SHOW_ELIMINATION_TUTORAIL = "SHOW_ELIMINATION_TUTORAIL",
|
||||||
|
BOARD_FILL_OVER = "BOARD_FILL_OVER",
|
||||||
-- BORAD_TOUCH_BEGIN = "BORAD_TOUCH_BEGIN",
|
-- BORAD_TOUCH_BEGIN = "BORAD_TOUCH_BEGIN",
|
||||||
-- BORAD_TOUCH_OVER = "BORAD_TOUCH_OVER"
|
-- BORAD_TOUCH_OVER = "BORAD_TOUCH_OVER"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,181 +3,181 @@ local battle_exp = {
|
|||||||
["exp"]=10000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[2]={
|
[2]={
|
||||||
["exp"]=20000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[3]={
|
[3]={
|
||||||
["exp"]=30000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[4]={
|
[4]={
|
||||||
["exp"]=40000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[5]={
|
[5]={
|
||||||
["exp"]=50000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[6]={
|
[6]={
|
||||||
["exp"]=60000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[7]={
|
[7]={
|
||||||
["exp"]=70000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[8]={
|
[8]={
|
||||||
["exp"]=80000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[9]={
|
[9]={
|
||||||
["exp"]=90000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[10]={
|
[10]={
|
||||||
["exp"]=100000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[11]={
|
[11]={
|
||||||
["exp"]=110000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[12]={
|
[12]={
|
||||||
["exp"]=120000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[13]={
|
[13]={
|
||||||
["exp"]=130000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[14]={
|
[14]={
|
||||||
["exp"]=140000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[15]={
|
[15]={
|
||||||
["exp"]=150000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[16]={
|
[16]={
|
||||||
["exp"]=160000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[17]={
|
[17]={
|
||||||
["exp"]=170000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[18]={
|
[18]={
|
||||||
["exp"]=180000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[19]={
|
[19]={
|
||||||
["exp"]=190000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[20]={
|
[20]={
|
||||||
["exp"]=200000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[21]={
|
[21]={
|
||||||
["exp"]=210000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[22]={
|
[22]={
|
||||||
["exp"]=220000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[23]={
|
[23]={
|
||||||
["exp"]=230000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[24]={
|
[24]={
|
||||||
["exp"]=240000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[25]={
|
[25]={
|
||||||
["exp"]=250000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[26]={
|
[26]={
|
||||||
["exp"]=260000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[27]={
|
[27]={
|
||||||
["exp"]=270000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[28]={
|
[28]={
|
||||||
["exp"]=280000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[29]={
|
[29]={
|
||||||
["exp"]=290000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[30]={
|
[30]={
|
||||||
["exp"]=300000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[31]={
|
[31]={
|
||||||
["exp"]=310000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[32]={
|
[32]={
|
||||||
["exp"]=320000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[33]={
|
[33]={
|
||||||
["exp"]=330000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[34]={
|
[34]={
|
||||||
["exp"]=340000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[35]={
|
[35]={
|
||||||
["exp"]=350000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[36]={
|
[36]={
|
||||||
["exp"]=360000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[37]={
|
[37]={
|
||||||
["exp"]=370000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[38]={
|
[38]={
|
||||||
["exp"]=380000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[39]={
|
[39]={
|
||||||
["exp"]=390000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[40]={
|
[40]={
|
||||||
["exp"]=400000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[41]={
|
[41]={
|
||||||
["exp"]=410000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[42]={
|
[42]={
|
||||||
["exp"]=420000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[43]={
|
[43]={
|
||||||
["exp"]=430000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[44]={
|
[44]={
|
||||||
["exp"]=440000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[45]={
|
[45]={
|
||||||
["exp"]=450000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[46]={
|
[46]={
|
||||||
["exp"]=460000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[47]={
|
[47]={
|
||||||
["exp"]=470000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[48]={
|
[48]={
|
||||||
["exp"]=480000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[49]={
|
[49]={
|
||||||
["exp"]=490000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[50]={
|
[50]={
|
||||||
["exp"]=500000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[51]={
|
[51]={
|
||||||
["exp"]=510000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[52]={
|
[52]={
|
||||||
["exp"]=520000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[53]={
|
[53]={
|
||||||
["exp"]=530000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[54]={
|
[54]={
|
||||||
["exp"]=540000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[55]={
|
[55]={
|
||||||
["exp"]=550000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[56]={
|
[56]={
|
||||||
["exp"]=560000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[57]={
|
[57]={
|
||||||
["exp"]=570000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[58]={
|
[58]={
|
||||||
["exp"]=580000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[59]={
|
[59]={
|
||||||
["exp"]=590000
|
["exp"]=10000
|
||||||
},
|
},
|
||||||
[60]={
|
[60]={
|
||||||
["exp"]=600000
|
["exp"]=10000
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
local config = {
|
local config = {
|
||||||
|
|||||||
@ -206,11 +206,11 @@ local chapter_board = {
|
|||||||
2,
|
2,
|
||||||
2,
|
2,
|
||||||
2,
|
2,
|
||||||
4,
|
|
||||||
2,
|
2,
|
||||||
2,
|
2,
|
||||||
2,
|
2,
|
||||||
3
|
2,
|
||||||
|
2
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
[2]={
|
[2]={
|
||||||
@ -220,36 +220,12 @@ local chapter_board = {
|
|||||||
0
|
0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
1,
|
0,
|
||||||
0
|
1
|
||||||
},
|
|
||||||
{
|
|
||||||
1,
|
|
||||||
0
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
0,
|
0,
|
||||||
4
|
3
|
||||||
},
|
|
||||||
{
|
|
||||||
1,
|
|
||||||
0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
1,
|
|
||||||
0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
1,
|
|
||||||
0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
1,
|
|
||||||
0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
1,
|
|
||||||
0
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
0,
|
0,
|
||||||
@ -277,7 +253,7 @@ local chapter_board = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
0,
|
0,
|
||||||
3
|
1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
0,
|
0,
|
||||||
@ -287,14 +263,6 @@ local chapter_board = {
|
|||||||
0,
|
0,
|
||||||
1
|
1
|
||||||
},
|
},
|
||||||
{
|
|
||||||
0,
|
|
||||||
1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
0,
|
|
||||||
3
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
1,
|
1,
|
||||||
0
|
0
|
||||||
@ -304,12 +272,8 @@ local chapter_board = {
|
|||||||
0
|
0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
0,
|
1,
|
||||||
2
|
0
|
||||||
},
|
|
||||||
{
|
|
||||||
0,
|
|
||||||
3
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
0,
|
0,
|
||||||
@ -319,22 +283,6 @@ local chapter_board = {
|
|||||||
0,
|
0,
|
||||||
3
|
3
|
||||||
},
|
},
|
||||||
{
|
|
||||||
0,
|
|
||||||
4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
1,
|
|
||||||
0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
1,
|
|
||||||
0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
0,
|
|
||||||
1
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
0,
|
0,
|
||||||
1
|
1
|
||||||
@ -347,10 +295,6 @@ local chapter_board = {
|
|||||||
0,
|
0,
|
||||||
4
|
4
|
||||||
},
|
},
|
||||||
{
|
|
||||||
0,
|
|
||||||
2
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
1,
|
1,
|
||||||
0
|
0
|
||||||
@ -365,7 +309,7 @@ local chapter_board = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
0,
|
0,
|
||||||
4
|
3
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
0,
|
0,
|
||||||
@ -373,11 +317,7 @@ local chapter_board = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
0,
|
0,
|
||||||
2
|
3
|
||||||
},
|
|
||||||
{
|
|
||||||
1,
|
|
||||||
0
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
1,
|
1,
|
||||||
@ -397,7 +337,67 @@ local chapter_board = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
0,
|
0,
|
||||||
4
|
1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
1,
|
||||||
|
0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
0,
|
||||||
|
1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
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,
|
1,
|
||||||
@ -411,13 +411,6 @@ local chapter_board = {
|
|||||||
1,
|
1,
|
||||||
0
|
0
|
||||||
}
|
}
|
||||||
},
|
|
||||||
["control_element"]={
|
|
||||||
4,
|
|
||||||
3,
|
|
||||||
4,
|
|
||||||
1,
|
|
||||||
4
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
[3]={
|
[3]={
|
||||||
|
|||||||
362
lua/app/config/fx.lua
Normal file
362
lua/app/config/fx.lua
Normal file
@ -0,0 +1,362 @@
|
|||||||
|
local fx = {
|
||||||
|
[100000]={
|
||||||
|
["res"]="sfx_m10001_b01_01",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[100001]={
|
||||||
|
["res"]="sfx_m10001_b01_02",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[100002]={
|
||||||
|
["res"]="sfx_m10001_b01_03",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[100003]={
|
||||||
|
["res"]="sfx_m10006_b01",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[100004]={
|
||||||
|
["res"]="sfx_m10006_b02",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[100005]={
|
||||||
|
["res"]="sfx_m10006_b03",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[100006]={
|
||||||
|
["res"]="sfx_m10010_b01",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[100007]={
|
||||||
|
["res"]="sfx_m10010_b02",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[100008]={
|
||||||
|
["res"]="sfx_m10010_b03",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[100009]={
|
||||||
|
["res"]="sfx_m10011_b01",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[100010]={
|
||||||
|
["res"]="sfx_m10011_b03",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[100011]={
|
||||||
|
["res"]="sfx_m10012_b01",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[100012]={
|
||||||
|
["res"]="sfx_m10012_b02",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[100013]={
|
||||||
|
["res"]="sfx_m10016_b01",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[100014]={
|
||||||
|
["res"]="sfx_m10016_b02",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[100015]={
|
||||||
|
["res"]="sfx_m10016_b03",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200000]={
|
||||||
|
["res"]="sfx_m20001_b01",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200001]={
|
||||||
|
["res"]="sfx_m20001_b02",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200002]={
|
||||||
|
["res"]="sfx_m20001_b03",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200003]={
|
||||||
|
["res"]="sfx_m20002_b01",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200004]={
|
||||||
|
["res"]="sfx_m20002_b02",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200005]={
|
||||||
|
["res"]="sfx_m20002_b03",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200006]={
|
||||||
|
["res"]="sfx_m20003_b01",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200007]={
|
||||||
|
["res"]="sfx_m20003_b02",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200008]={
|
||||||
|
["res"]="sfx_m20003_b03",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200009]={
|
||||||
|
["res"]="sfx_m20003_b04",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200010]={
|
||||||
|
["res"]="sfx_m20004_b01",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200011]={
|
||||||
|
["res"]="sfx_m20004_b02",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200012]={
|
||||||
|
["res"]="sfx_m20005_b01",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200013]={
|
||||||
|
["res"]="sfx_m20005_b02",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200014]={
|
||||||
|
["res"]="sfx_m20005_b03",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200015]={
|
||||||
|
["res"]="sfx_m20005_b04",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200016]={
|
||||||
|
["res"]="sfx_m20006_b01",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200017]={
|
||||||
|
["res"]="sfx_m20006_b02",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200018]={
|
||||||
|
["res"]="sfx_m20006_b03",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200019]={
|
||||||
|
["res"]="sfx_m20006_b04",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200020]={
|
||||||
|
["res"]="sfx_m20007_b01",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200021]={
|
||||||
|
["res"]="sfx_m20007_b02",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200022]={
|
||||||
|
["res"]="sfx_m20007_b03",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200023]={
|
||||||
|
["res"]="sfx_m20007_b04",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200024]={
|
||||||
|
["res"]="sfx_m20008_b01",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200025]={
|
||||||
|
["res"]="sfx_m20008_b02",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200026]={
|
||||||
|
["res"]="sfx_m20008_b03",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200027]={
|
||||||
|
["res"]="sfx_m20008_b04",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200028]={
|
||||||
|
["res"]="sfx_m20009_b01",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200029]={
|
||||||
|
["res"]="sfx_m20009_b02",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200030]={
|
||||||
|
["res"]="sfx_m20009_b03",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200031]={
|
||||||
|
["res"]="sfx_m20010_b01",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200032]={
|
||||||
|
["res"]="sfx_m20010_b03",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200033]={
|
||||||
|
["res"]="sfx_m20011_b01",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200034]={
|
||||||
|
["res"]="sfx_m20011_b02",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200035]={
|
||||||
|
["res"]="sfx_m20011_b03",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200036]={
|
||||||
|
["res"]="sfx_m20012_b01",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200037]={
|
||||||
|
["res"]="sfx_m20012_b02",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200038]={
|
||||||
|
["res"]="sfx_m20012_b03",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[200039]={
|
||||||
|
["res"]="sfx_m20012_b04",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300000]={
|
||||||
|
["res"]="sfx_p0001_b01",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300001]={
|
||||||
|
["res"]="sfx_p0001_b02",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300002]={
|
||||||
|
["res"]="sfx_p0001_b03",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300003]={
|
||||||
|
["res"]="sfx_p0001_b04",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300004]={
|
||||||
|
["res"]="sfx_p0002_b01",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300005]={
|
||||||
|
["res"]="sfx_p0002_b02",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300006]={
|
||||||
|
["res"]="sfx_p0002_b03",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300007]={
|
||||||
|
["res"]="sfx_p0002_b04",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300008]={
|
||||||
|
["res"]="sfx_p0002_b05",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300009]={
|
||||||
|
["res"]="sfx_p0003_b01",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300010]={
|
||||||
|
["res"]="sfx_p0003_b02",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300011]={
|
||||||
|
["res"]="sfx_p0003_b03",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300012]={
|
||||||
|
["res"]="sfx_p0003_b04",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300013]={
|
||||||
|
["res"]="sfx_p0004_b01",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300014]={
|
||||||
|
["res"]="sfx_p0004_b03",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300015]={
|
||||||
|
["res"]="sfx_p0004_b04",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300016]={
|
||||||
|
["res"]="sfx_p0004_b05",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300017]={
|
||||||
|
["res"]="sfx_p0005_b01",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300018]={
|
||||||
|
["res"]="sfx_p0005_b02",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300019]={
|
||||||
|
["res"]="sfx_p0005_b03",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300020]={
|
||||||
|
["res"]="sfx_p0005_b04",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300021]={
|
||||||
|
["res"]="sfx_p0006_b01",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300022]={
|
||||||
|
["res"]="sfx_p0006_b02",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300023]={
|
||||||
|
["res"]="sfx_p0006_b03",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300024]={
|
||||||
|
["res"]="sfx_p0006_b04",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300025]={
|
||||||
|
["res"]="sfx_p0006_b05",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300026]={
|
||||||
|
["res"]="sfx_p0007_b01",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300027]={
|
||||||
|
["res"]="sfx_p0007_b02",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300028]={
|
||||||
|
["res"]="sfx_p0007_b03",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300029]={
|
||||||
|
["res"]="sfx_p0007_b04",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300030]={
|
||||||
|
["res"]="sfx_p0008_b01",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300031]={
|
||||||
|
["res"]="sfx_p0008_b05",
|
||||||
|
["bind"]="root"
|
||||||
|
},
|
||||||
|
[300032]={
|
||||||
|
["res"]="sfx_p0008_b06",
|
||||||
|
["bind"]="root"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
local config = {
|
||||||
|
data=fx,count=89
|
||||||
|
}
|
||||||
|
return config
|
||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 1fa9da99f3507cd4688b77793381a636
|
guid: 3d15f668fda6e404dbee3fe8789124e6
|
||||||
ScriptedImporter:
|
ScriptedImporter:
|
||||||
internalIDToNameTable: []
|
internalIDToNameTable: []
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
@ -40,7 +40,6 @@ local LocalizationGlobalConst =
|
|||||||
HERO_DESC_9 = "HERO_DESC_9",
|
HERO_DESC_9 = "HERO_DESC_9",
|
||||||
HERO_DESC_10 = "HERO_DESC_10",
|
HERO_DESC_10 = "HERO_DESC_10",
|
||||||
BATTLE_DESC_8 = "BATTLE_DESC_8",
|
BATTLE_DESC_8 = "BATTLE_DESC_8",
|
||||||
HERO_DESC_11 = "HERO_DESC_11",
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return LocalizationGlobalConst
|
return LocalizationGlobalConst
|
||||||
File diff suppressed because it is too large
Load Diff
@ -292,7 +292,7 @@ local skill = {
|
|||||||
["effect"]={
|
["effect"]={
|
||||||
{
|
{
|
||||||
["type"]="hurt_yellow",
|
["type"]="hurt_yellow",
|
||||||
["num"]=20000,
|
["num"]=30000,
|
||||||
["ratio"]=10000,
|
["ratio"]=10000,
|
||||||
["round"]=0
|
["round"]=0
|
||||||
}
|
}
|
||||||
@ -336,7 +336,7 @@ local skill = {
|
|||||||
["effect"]={
|
["effect"]={
|
||||||
{
|
{
|
||||||
["type"]="hurt_yellow",
|
["type"]="hurt_yellow",
|
||||||
["num"]=20000,
|
["num"]=30000,
|
||||||
["ratio"]=10000,
|
["ratio"]=10000,
|
||||||
["round"]=0
|
["round"]=0
|
||||||
}
|
}
|
||||||
@ -481,7 +481,7 @@ local skill = {
|
|||||||
["effect"]={
|
["effect"]={
|
||||||
{
|
{
|
||||||
["type"]="heal",
|
["type"]="heal",
|
||||||
["num"]=2000,
|
["num"]=8000,
|
||||||
["ratio"]=10000,
|
["ratio"]=10000,
|
||||||
["round"]=1
|
["round"]=1
|
||||||
}
|
}
|
||||||
@ -771,7 +771,7 @@ local skill = {
|
|||||||
["effect"]={
|
["effect"]={
|
||||||
{
|
{
|
||||||
["type"]="hurt",
|
["type"]="hurt",
|
||||||
["num"]=20000,
|
["num"]=40000,
|
||||||
["ratio"]=10000,
|
["ratio"]=10000,
|
||||||
["round"]=0
|
["round"]=0
|
||||||
}
|
}
|
||||||
@ -903,7 +903,7 @@ local skill = {
|
|||||||
["effect"]={
|
["effect"]={
|
||||||
{
|
{
|
||||||
["type"]="hurt",
|
["type"]="hurt",
|
||||||
["num"]=20000,
|
["num"]=25000,
|
||||||
["ratio"]=10000,
|
["ratio"]=10000,
|
||||||
["round"]=0
|
["round"]=0
|
||||||
}
|
}
|
||||||
@ -1118,7 +1118,7 @@ local skill = {
|
|||||||
["effect"]={
|
["effect"]={
|
||||||
{
|
{
|
||||||
["type"]="hurt",
|
["type"]="hurt",
|
||||||
["num"]=20000,
|
["num"]=25000,
|
||||||
["ratio"]=10000,
|
["ratio"]=10000,
|
||||||
["round"]=0
|
["round"]=0
|
||||||
}
|
}
|
||||||
|
|||||||
@ -38,11 +38,8 @@ local localization_global =
|
|||||||
["REWARD_PREVIEW_DESC"] = "奖励预览",
|
["REWARD_PREVIEW_DESC"] = "奖励预览",
|
||||||
["HERO_DESC_8"] = "使用",
|
["HERO_DESC_8"] = "使用",
|
||||||
["HERO_DESC_9"] = "信息",
|
["HERO_DESC_9"] = "信息",
|
||||||
|
|
||||||
["HERO_DESC_10"] = "通关章节{0}解锁",
|
["HERO_DESC_10"] = "通关章节{0}解锁",
|
||||||
["BATTLE_DESC_8"] = "还有可上阵英雄",
|
["BATTLE_DESC_8"] = "还有可上阵英雄",
|
||||||
|
|
||||||
["HERO_DESC_11"] = "已解锁",
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return localization_global
|
return localization_global
|
||||||
@ -24,35 +24,35 @@ local item = {
|
|||||||
["desc"]="可以获得史诗英雄。"
|
["desc"]="可以获得史诗英雄。"
|
||||||
},
|
},
|
||||||
[12001]={
|
[12001]={
|
||||||
["name"]="洛克西",
|
["name"]="洛克西英雄碎片",
|
||||||
["desc"]="凑齐可解锁或升级。"
|
["desc"]="凑齐可解锁或升级。"
|
||||||
},
|
},
|
||||||
[22001]={
|
[22001]={
|
||||||
["name"]="卡拉",
|
["name"]="卡拉英雄碎片",
|
||||||
["desc"]="凑齐可解锁或升级。"
|
["desc"]="凑齐可解锁或升级。"
|
||||||
},
|
},
|
||||||
[23001]={
|
[23001]={
|
||||||
["name"]="巨剑罗伯特",
|
["name"]="巨剑罗伯特英雄碎片",
|
||||||
["desc"]="凑齐可解锁或升级。"
|
["desc"]="凑齐可解锁或升级。"
|
||||||
},
|
},
|
||||||
[32001]={
|
[32001]={
|
||||||
["name"]="阿斯克",
|
["name"]="阿斯克英雄碎片",
|
||||||
["desc"]="凑齐可解锁或升级。"
|
["desc"]="凑齐可解锁或升级。"
|
||||||
},
|
},
|
||||||
[33001]={
|
[33001]={
|
||||||
["name"]="艾芙琳",
|
["name"]="艾芙琳英雄碎片",
|
||||||
["desc"]="凑齐可解锁或升级。"
|
["desc"]="凑齐可解锁或升级。"
|
||||||
},
|
},
|
||||||
[42001]={
|
[42001]={
|
||||||
["name"]="莉莉丝",
|
["name"]="莉莉丝英雄碎片",
|
||||||
["desc"]="凑齐可解锁或升级。"
|
["desc"]="凑齐可解锁或升级。"
|
||||||
},
|
},
|
||||||
[43001]={
|
[43001]={
|
||||||
["name"]="白发凯瑟琳",
|
["name"]="白发凯瑟琳英雄碎片",
|
||||||
["desc"]="凑齐可解锁或升级。"
|
["desc"]="凑齐可解锁或升级。"
|
||||||
},
|
},
|
||||||
[52001]={
|
[52001]={
|
||||||
["name"]="艾伦",
|
["name"]="艾伦英雄碎片",
|
||||||
["desc"]="凑齐可解锁或升级。"
|
["desc"]="凑齐可解锁或升级。"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,6 +2,7 @@ local tutorial = {
|
|||||||
[10000]={
|
[10000]={
|
||||||
["next_id"]=10010,
|
["next_id"]=10010,
|
||||||
["type"]=6,
|
["type"]=6,
|
||||||
|
["finish"]=4,
|
||||||
["target_element"]={
|
["target_element"]={
|
||||||
53,
|
53,
|
||||||
44,
|
44,
|
||||||
@ -32,6 +33,7 @@ local tutorial = {
|
|||||||
[10040]={
|
[10040]={
|
||||||
["next_id"]=10050,
|
["next_id"]=10050,
|
||||||
["type"]=6,
|
["type"]=6,
|
||||||
|
["finish"]=4,
|
||||||
["target_element"]={
|
["target_element"]={
|
||||||
33,
|
33,
|
||||||
23,
|
23,
|
||||||
@ -53,6 +55,7 @@ local tutorial = {
|
|||||||
},
|
},
|
||||||
[10060]={
|
[10060]={
|
||||||
["type"]=6,
|
["type"]=6,
|
||||||
|
["finish"]=4,
|
||||||
["target_element"]={
|
["target_element"]={
|
||||||
23,
|
23,
|
||||||
13,
|
13,
|
||||||
|
|||||||
@ -654,7 +654,6 @@ function GFunc.addRewards(rewards, itemGetType)
|
|||||||
local newRewards = {}
|
local newRewards = {}
|
||||||
GFunc.mergeRewards2(rewards, newRewards)
|
GFunc.mergeRewards2(rewards, newRewards)
|
||||||
|
|
||||||
local runeList = {}
|
|
||||||
-- 根据类型type来添加奖励
|
-- 根据类型type来添加奖励
|
||||||
for k, v in ipairs(newRewards) do
|
for k, v in ipairs(newRewards) do
|
||||||
if v.type == GConst.REWARD_TYPE.ITEM then
|
if v.type == GConst.REWARD_TYPE.ITEM then
|
||||||
@ -663,8 +662,6 @@ function GFunc.addRewards(rewards, itemGetType)
|
|||||||
DataManager.BagData.EquipData:addEquipCountById(v.equip.id, v.equip.count, itemGetType)
|
DataManager.BagData.EquipData:addEquipCountById(v.equip.id, v.equip.count, itemGetType)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
ModuleManager.TaskManager:addTaskProgress(GConst.TaskConst.TASK_TYPE.X_RUNE_GOT, {runeList = runeList})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function GFunc.addCosts(costs, itemGetType)
|
function GFunc.addCosts(costs, itemGetType)
|
||||||
|
|||||||
@ -15,7 +15,7 @@ function BattleManager:showPauseUI()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function BattleManager:showSelectSkillUI(skillList)
|
function BattleManager:showSelectSkillUI(skillList)
|
||||||
UIManager:showUI("app/ui/battle/battle_skill_select_ui", {skillList = skillList})
|
UIManager:showUI(UIManager.UI_PATH.ROGUE_SKILL_UI, {skillList = skillList})
|
||||||
end
|
end
|
||||||
|
|
||||||
function BattleManager:showBattleResultUI(rewards, combatReport)
|
function BattleManager:showBattleResultUI(rewards, combatReport)
|
||||||
|
|||||||
@ -512,110 +512,65 @@ function BattleController:onTouchEvent(eventType, posId)
|
|||||||
end
|
end
|
||||||
|
|
||||||
if eventType == ELIMINATION_TOUCH_EVENT.DOWN then
|
if eventType == ELIMINATION_TOUCH_EVENT.DOWN then
|
||||||
if #self.battleData:getGridSequence() > 0 then
|
self:onLinkStart(entity, posId)
|
||||||
self.battleData:clearGridSequence()
|
|
||||||
end
|
|
||||||
self.battleData:insertGridSequence(posId, self:snapshotBoard())
|
|
||||||
local skillEntity = self.battleData:getSkillEntityBySkillId(entity:getSkillId())
|
|
||||||
local maskElementType = entity:getElementType(skillEntity)
|
|
||||||
self.battleUI:showBoardMask(maskElementType)
|
|
||||||
self:findSkillInfluenceGrids()
|
|
||||||
self:onLinkChange()
|
|
||||||
elseif eventType == ELIMINATION_TOUCH_EVENT.ENTER then
|
elseif eventType == ELIMINATION_TOUCH_EVENT.ENTER then
|
||||||
local sequence = self.battleData:getGridSequence()
|
self:onLinkEnter(entity, posId)
|
||||||
local info = sequence[#sequence]
|
|
||||||
local lastPosId = info and info.posId
|
|
||||||
if not lastPosId then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
local outLineMap = BattleConst.GRID_OUT_LINE_POS_ID[lastPosId]
|
|
||||||
if not outLineMap or not outLineMap[posId] then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
if self.battleData:alreadyInsertSequence(posId) then
|
|
||||||
local info = sequence[#sequence - 1]
|
|
||||||
local beforePosId = info and info.posId
|
|
||||||
if not beforePosId then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
if beforePosId == posId then -- 进入的是倒数第二个,则移除倒数第一个
|
|
||||||
local snapshot = self.battleData:removeGridSequence(lastPosId)
|
|
||||||
if snapshot then -- 如果有快照,则恢复一次
|
|
||||||
for posId, info in pairs(snapshot) do
|
|
||||||
local entity = self.battleData:getGridEntity(posId)
|
|
||||||
if entity then
|
|
||||||
entity:setInfoBySnapshop(info)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local lastEntity = self.battleData:getGridEntity(beforePosId)
|
|
||||||
local lastSkillEntity = self.battleData:getSkillEntityBySkillId(lastEntity:getSkillId())
|
|
||||||
local maskElementType = lastEntity:getElementType(lastSkillEntity)
|
|
||||||
self.battleUI:showBoardMask(maskElementType)
|
|
||||||
|
|
||||||
self:findSkillInfluenceGrids()
|
|
||||||
self:onLinkChange()
|
|
||||||
return
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local skillId = entity:getSkillId()
|
|
||||||
local skillEntity = self.battleData:getSkillEntityBySkillId(skillId)
|
|
||||||
local elementType = entity:getElementType(skillEntity)
|
|
||||||
|
|
||||||
local lastEntity = self.battleData:getGridEntity(lastPosId)
|
|
||||||
local lastSkillId = lastEntity:getSkillId()
|
|
||||||
local lastSkillEntity = self.battleData:getSkillEntityBySkillId(lastSkillId)
|
|
||||||
local lastElementType = lastEntity:getElementType(lastSkillEntity)
|
|
||||||
|
|
||||||
if skillEntity and self.battleData:getSequenceHadSkill() then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
if not elementType or not lastElementType then
|
|
||||||
else
|
|
||||||
if lastElementType ~= elementType then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local maskElementType = elementType or lastElementType
|
|
||||||
self.battleUI:showBoardMask(maskElementType)
|
|
||||||
|
|
||||||
self.battleData:insertGridSequence(posId, self:snapshotBoard())
|
|
||||||
if lastEntity:getNeedChangePos() and not entity:getNeedChangePos() then -- 需要移动到队列末尾
|
|
||||||
local lastSkillId = lastEntity:getSkillId()
|
|
||||||
local skillId = entity:getSkillId()
|
|
||||||
self:setGridSkillId(lastPosId, skillId)
|
|
||||||
self:setGridSkillId(posId, lastSkillId)
|
|
||||||
end
|
|
||||||
|
|
||||||
local newElementType = elementType or lastElementType
|
|
||||||
if newElementType then
|
|
||||||
entity:setElementType(newElementType)
|
|
||||||
lastEntity:setElementType(newElementType)
|
|
||||||
end
|
|
||||||
|
|
||||||
entity:addLinkSkillCount()
|
|
||||||
|
|
||||||
self:findSkillInfluenceGrids()
|
|
||||||
self:onLinkChange()
|
|
||||||
elseif eventType == ELIMINATION_TOUCH_EVENT.EXIT then
|
elseif eventType == ELIMINATION_TOUCH_EVENT.EXIT then
|
||||||
|
|
||||||
else -- 取消和抬起
|
else -- 取消和抬起
|
||||||
self.battleUI:showBoardMask(nil)
|
self:onLinkCancelOrUp(entity, posId)
|
||||||
local sequence = self.battleData:getGridSequence()
|
end
|
||||||
local count = #sequence
|
end
|
||||||
if count < self:getMinEliminationCount() then
|
|
||||||
if count <= 0 then
|
function BattleController:onLinkStart(entity, posId)
|
||||||
self.battleData:clearGridSequence()
|
if DataManager.TutorialData:getIsInTutorial() then
|
||||||
self:onLinkChange()
|
local elementList = DataManager.TutorialData:getTargetElement()
|
||||||
|
if elementList then
|
||||||
|
local find = false
|
||||||
|
for _, curPosId in ipairs(elementList) do
|
||||||
|
if curPosId == posId then
|
||||||
|
find = true
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if not find then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
local snapshot = self.battleData:getFirstSequenceSnapshot()
|
self.battleUI:showTutorialFinger()
|
||||||
|
if #self.battleData:getGridSequence() > 0 then
|
||||||
|
self.battleData:clearGridSequence()
|
||||||
|
end
|
||||||
|
self.battleData:insertGridSequence(posId, self:snapshotBoard())
|
||||||
|
local skillEntity = self.battleData:getSkillEntityBySkillId(entity:getSkillId())
|
||||||
|
local maskElementType = entity:getElementType(skillEntity)
|
||||||
|
self.battleUI:showBoardMask(maskElementType)
|
||||||
|
self:findSkillInfluenceGrids()
|
||||||
|
self:onLinkChange()
|
||||||
|
end
|
||||||
|
|
||||||
|
function BattleController:onLinkEnter(entity, posId)
|
||||||
|
local sequence = self.battleData:getGridSequence()
|
||||||
|
local info = sequence[#sequence]
|
||||||
|
local lastPosId = info and info.posId
|
||||||
|
if not lastPosId then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local outLineMap = BattleConst.GRID_OUT_LINE_POS_ID[lastPosId]
|
||||||
|
if not outLineMap or not outLineMap[posId] then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if self.battleData:alreadyInsertSequence(posId) then
|
||||||
|
local info = sequence[#sequence - 1]
|
||||||
|
local beforePosId = info and info.posId
|
||||||
|
if not beforePosId then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if beforePosId == posId then -- 进入的是倒数第二个,则移除倒数第一个
|
||||||
|
local snapshot = self.battleData:removeGridSequence(lastPosId)
|
||||||
if snapshot then -- 如果有快照,则恢复一次
|
if snapshot then -- 如果有快照,则恢复一次
|
||||||
for posId, info in pairs(snapshot) do
|
for posId, info in pairs(snapshot) do
|
||||||
local entity = self.battleData:getGridEntity(posId)
|
local entity = self.battleData:getGridEntity(posId)
|
||||||
@ -625,15 +580,112 @@ function BattleController:onTouchEvent(eventType, posId)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
self.battleData:clearGridSequence()
|
local lastEntity = self.battleData:getGridEntity(beforePosId)
|
||||||
|
local lastSkillEntity = self.battleData:getSkillEntityBySkillId(lastEntity:getSkillId())
|
||||||
|
local maskElementType = lastEntity:getElementType(lastSkillEntity)
|
||||||
|
self.battleUI:showBoardMask(maskElementType)
|
||||||
|
|
||||||
|
self:findSkillInfluenceGrids()
|
||||||
self:onLinkChange()
|
self:onLinkChange()
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local skillId = entity:getSkillId()
|
||||||
|
local skillEntity = self.battleData:getSkillEntityBySkillId(skillId)
|
||||||
|
local elementType = entity:getElementType(skillEntity)
|
||||||
|
|
||||||
|
local lastEntity = self.battleData:getGridEntity(lastPosId)
|
||||||
|
local lastSkillId = lastEntity:getSkillId()
|
||||||
|
local lastSkillEntity = self.battleData:getSkillEntityBySkillId(lastSkillId)
|
||||||
|
local lastElementType = lastEntity:getElementType(lastSkillEntity)
|
||||||
|
|
||||||
|
if skillEntity and self.battleData:getSequenceHadSkill() then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if not elementType or not lastElementType then
|
||||||
|
else
|
||||||
|
if lastElementType ~= elementType then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local maskElementType = elementType or lastElementType
|
||||||
|
self.battleUI:showBoardMask(maskElementType)
|
||||||
|
|
||||||
|
self.battleData:insertGridSequence(posId, self:snapshotBoard())
|
||||||
|
if lastEntity:getNeedChangePos() and not entity:getNeedChangePos() then -- 需要移动到队列末尾
|
||||||
|
local lastSkillId = lastEntity:getSkillId()
|
||||||
|
local skillId = entity:getSkillId()
|
||||||
|
self:setGridSkillId(lastPosId, skillId)
|
||||||
|
self:setGridSkillId(posId, lastSkillId)
|
||||||
|
end
|
||||||
|
|
||||||
|
local newElementType = elementType or lastElementType
|
||||||
|
if newElementType then
|
||||||
|
entity:setElementType(newElementType)
|
||||||
|
lastEntity:setElementType(newElementType)
|
||||||
|
end
|
||||||
|
|
||||||
|
entity:addLinkSkillCount()
|
||||||
|
|
||||||
|
self:findSkillInfluenceGrids()
|
||||||
|
self:onLinkChange()
|
||||||
|
end
|
||||||
|
|
||||||
|
function BattleController:onLinkCancelOrUp(entity, posId)
|
||||||
|
local tutorialElementList
|
||||||
|
if DataManager.TutorialData:getIsInTutorial() then
|
||||||
|
tutorialElementList = DataManager.TutorialData:getTargetElement()
|
||||||
|
end
|
||||||
|
|
||||||
|
self.battleUI:showBoardMask(nil)
|
||||||
|
local sequence = self.battleData:getGridSequence()
|
||||||
|
local count = #sequence
|
||||||
|
if count < self:getMinEliminationCount() then
|
||||||
|
self:clearGridSequence()
|
||||||
|
|
||||||
|
if tutorialElementList then
|
||||||
|
self.battleUI:showTutorialFinger(tutorialElementList)
|
||||||
|
end
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if tutorialElementList then
|
||||||
|
local posIdmap = {}
|
||||||
|
for _, info in ipairs(sequence) do
|
||||||
|
posIdmap[info.posId] = true
|
||||||
|
end
|
||||||
|
EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.ELIMINATION_OVER, posIdmap)
|
||||||
|
else
|
||||||
self:onLinkOver()
|
self:onLinkOver()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function BattleController:clearGridSequence()
|
||||||
|
local sequence = self.battleData:getGridSequence()
|
||||||
|
local count = #sequence
|
||||||
|
if count <= 0 then
|
||||||
|
self.battleData:clearGridSequence()
|
||||||
|
self:onLinkChange()
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local snapshot = self.battleData:getFirstSequenceSnapshot()
|
||||||
|
if snapshot then -- 如果有快照,则恢复一次
|
||||||
|
for posId, info in pairs(snapshot) do
|
||||||
|
local entity = self.battleData:getGridEntity(posId)
|
||||||
|
if entity then
|
||||||
|
entity:setInfoBySnapshop(info)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
self.battleData:clearGridSequence()
|
||||||
|
self:onLinkChange()
|
||||||
|
end
|
||||||
|
|
||||||
function BattleController:onLinkOver()
|
function BattleController:onLinkOver()
|
||||||
self.battleUI:hideAllSfxLine()
|
self.battleUI:hideAllSfxLine()
|
||||||
local sequence = self.battleData:getGridSequence()
|
local sequence = self.battleData:getGridSequence()
|
||||||
@ -807,6 +859,8 @@ function BattleController:fillBoard()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function BattleController:onFillBoardOver()
|
function BattleController:onFillBoardOver()
|
||||||
|
EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.BOARD_FILL_OVER)
|
||||||
|
|
||||||
self:generateSkill(function()
|
self:generateSkill(function()
|
||||||
self.battleUI:refreshSkill()
|
self.battleUI:refreshSkill()
|
||||||
local defTeam = self.battleData:getDefTeam()
|
local defTeam = self.battleData:getDefTeam()
|
||||||
|
|||||||
@ -6,10 +6,14 @@ end
|
|||||||
|
|
||||||
-- 从登录界面第一次进入主城
|
-- 从登录界面第一次进入主城
|
||||||
function MaincityManager:firstEnterMainCity()
|
function MaincityManager:firstEnterMainCity()
|
||||||
self:showMainCityUI(true)
|
if ModuleManager.TutorialManager:checkFuncTutorial(GConst.TutorialConst.START_TUTORIAL, true) then
|
||||||
-- ModuleManager.BattleManager:playBattle(ModuleManager.BattleManager.BATTLE_TYPE.STAGE)
|
DataManager.ChapterData:setChapterId(DataManager.ChapterData.MIN_CHAPTER_ID)
|
||||||
-- SDKManager:doUncompletePay()
|
ModuleManager.BattleManager:playBattle(GConst.BattleConst.BATTLE_TYPE.STAGE)
|
||||||
-- BIReport:postFightBegin(ModuleManager.BattleManager.BATTLE_TYPE.STAGE, DataManager.ChapterData:getCurChapterId(), DataManager.ChapterData:getHistoryChapterId())
|
else
|
||||||
|
self:showMainCityUI(true)
|
||||||
|
-- SDKManager:doUncompletePay()
|
||||||
|
-- BIReport:postFightBegin(ModuleManager.BattleManager.BATTLE_TYPE.STAGE, DataManager.ChapterData:getCurChapterId(), DataManager.ChapterData:getHistoryChapterId())
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
return MaincityManager
|
return MaincityManager
|
||||||
@ -33,7 +33,7 @@ function TipsManager:showRewardTips(id, type, tarPrefabObj, alignType, params)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function TipsManager:showRewardsBox(params)
|
function TipsManager:showRewardsBox(params)
|
||||||
UIManager:showUI("app/ui/tips/reward_box", params)
|
UIManager:showUI(UIManager.UI_PATH.REWARD_BOX, params)
|
||||||
end
|
end
|
||||||
|
|
||||||
function TipsManager:showItemTips(id, tarPrefabObj, alignType)
|
function TipsManager:showItemTips(id, tarPrefabObj, alignType)
|
||||||
|
|||||||
@ -63,12 +63,19 @@ local function _tutorialEmptyCancelBlock(tutorialId)
|
|||||||
ModuleManager.TutorialManager:checkAndNextTutorial(tutorialId)
|
ModuleManager.TutorialManager:checkAndNextTutorial(tutorialId)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function _tutorialToElimination(tutorialId)
|
||||||
|
ModuleManager.TutorialManager:setBlockTouchEnabled(false)
|
||||||
|
EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.SHOW_ELIMINATION_TUTORAIL, DataManager.TutorialData:getTargetElement())
|
||||||
|
ModuleManager.TutorialManager:checkAndNextTutorial(tutorialId)
|
||||||
|
end
|
||||||
|
|
||||||
TutorialAction._doTutorial = {
|
TutorialAction._doTutorial = {
|
||||||
[TutorialConst.TUTORIAL_TYPE.CLICK] = _tutorialClick,
|
[TutorialConst.TUTORIAL_TYPE.CLICK] = _tutorialClick,
|
||||||
[TutorialConst.TUTORIAL_TYPE.CLICK_BTN] = _tutorialClickBtn,
|
[TutorialConst.TUTORIAL_TYPE.CLICK_BTN] = _tutorialClickBtn,
|
||||||
[TutorialConst.TUTORIAL_TYPE.TALK] = _tutorialTalk,
|
[TutorialConst.TUTORIAL_TYPE.TALK] = _tutorialTalk,
|
||||||
[TutorialConst.TUTORIAL_TYPE.DO_NOTHING] = _tutorialEmpty,
|
[TutorialConst.TUTORIAL_TYPE.DO_NOTHING] = _tutorialEmpty,
|
||||||
[TutorialConst.TUTORIAL_TYPE.EMPTY_CANCEL_BLOCK] = _tutorialEmptyCancelBlock,
|
[TutorialConst.TUTORIAL_TYPE.EMPTY_CANCEL_BLOCK] = _tutorialEmptyCancelBlock,
|
||||||
|
[TutorialConst.TUTORIAL_TYPE.TO_ELIMINATION] = _tutorialToElimination,
|
||||||
}
|
}
|
||||||
|
|
||||||
-- 此步引导结束的时候
|
-- 此步引导结束的时候
|
||||||
|
|||||||
@ -3,39 +3,38 @@ local TutorialConst = {}
|
|||||||
TutorialConst.FINGER_MOVE_SPEED = 200
|
TutorialConst.FINGER_MOVE_SPEED = 200
|
||||||
TutorialConst.DEFAULT_RADIUS = 100
|
TutorialConst.DEFAULT_RADIUS = 100
|
||||||
|
|
||||||
|
TutorialConst.START_TUTORIAL = 1
|
||||||
|
TutorialConst.PASS_ONE_CHAPTER = 2
|
||||||
|
TutorialConst.TWO_CHAPTER_BOX_CAN_GOT = 3
|
||||||
|
TutorialConst.PASS_THREE_CHAPTER = 4
|
||||||
|
|
||||||
TutorialConst.TUTORIAL_TYPE = {
|
TutorialConst.TUTORIAL_TYPE = {
|
||||||
CLICK = 1, -- 点击任意区域
|
CLICK = 1, -- 点击任意区域
|
||||||
CLICK_BTN = 2, -- 点击指定按钮
|
CLICK_BTN = 2, -- 点击指定按钮
|
||||||
TALK = 3, -- 文本对话
|
TALK = 3, -- 文本对话
|
||||||
DO_NOTHING = 4, -- 什么也不做,等待条件完成
|
DO_NOTHING = 4, -- 什么也不做,等待条件完成
|
||||||
EMPTY_CANCEL_BLOCK = 5, -- 什么也不做, 解除屏蔽,等待条件完成
|
EMPTY_CANCEL_BLOCK = 5, -- 什么也不做, 解除屏蔽,等待条件完成
|
||||||
|
TO_ELIMINATION = 6, -- 引导消除元素
|
||||||
}
|
}
|
||||||
|
|
||||||
TutorialConst.FINISH_TYPE = {
|
TutorialConst.FINISH_TYPE = {
|
||||||
ON_UI_SHOW = 1, -- 当XX界面显示
|
ON_UI_SHOW = 1, -- 当XX界面显示
|
||||||
ON_UI_CLOSE = 2, -- 当XX界面关闭
|
ON_UI_CLOSE = 2, -- 当XX界面关闭
|
||||||
ON_TASK_COMPLETE = 3, -- 当主线任务完成
|
ON_BOARD_CAN_ELIMINATION = 3, -- 当棋盘可以消除
|
||||||
ON_ATK_LEVEL = 4, -- 当攻击力升至x级时
|
ON_ELIMINATION_OVER = 4,-- 等待棋盘消除完成
|
||||||
ON_TO_ARENA = 5, -- 界面移动到竞技场位置
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TutorialConst.UI_TYPE = {
|
TutorialConst.UI_TYPE = {
|
||||||
WEAPON_SUMMON_UI = 1,
|
ROGUE_SKILL_UI = 1,
|
||||||
PROTECTIVE_SUMMON_UI = 2,
|
REWARD_BOX = 2,
|
||||||
LEGACY_SUMMON_UI = 3,
|
-- PROTECTIVE_SUMMON_UI = 2,
|
||||||
HERO_ALL_UP_UI = 4,
|
-- LEGACY_SUMMON_UI = 3,
|
||||||
|
-- HERO_ALL_UP_UI = 4,
|
||||||
}
|
}
|
||||||
|
|
||||||
TutorialConst.UI_PATH = {
|
TutorialConst.UI_PATH = {
|
||||||
[TutorialConst.UI_TYPE.WEAPON_SUMMON_UI] = UIManager.UI_PATH.WEAPON_SUMMON_UI,
|
[TutorialConst.UI_TYPE.ROGUE_SKILL_UI] = UIManager.UI_PATH.ROGUE_SKILL_UI,
|
||||||
[TutorialConst.UI_TYPE.PROTECTIVE_SUMMON_UI] = UIManager.UI_PATH.PROTECTIVE_SUMMON_UI,
|
[TutorialConst.UI_TYPE.REWARD_BOX] = UIManager.UI_PATH.REWARD_BOX,
|
||||||
[TutorialConst.UI_TYPE.LEGACY_SUMMON_UI] = UIManager.UI_PATH.LEGACY_SUMMON_UI,
|
|
||||||
[TutorialConst.UI_TYPE.HERO_ALL_UP_UI] = UIManager.UI_PATH.HERO_ALL_UP_UI,
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
TutorialConst.FUNC_TUTORIAL_ID = {
|
|
||||||
BATTLE_AUTO = 4, -- 引导自动战斗
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return TutorialConst
|
return TutorialConst
|
||||||
@ -66,22 +66,36 @@ local function _listenerOnUIClose(tutorialId)
|
|||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
local function _listenerOnTaskCompete(tutorialId)
|
local function _listenerOnCanElimination(tutorialId)
|
||||||
|
ModuleManager.TutorialManager:addEventListener(EventManager.CUSTOM_EVENT.BOARD_FILL_OVER, function(index)
|
||||||
|
ModuleManager.TutorialManager:finishAndNextTutorial(tutorialId)
|
||||||
|
end)
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
local function _listenerOnAtkLevel(tutorialId)
|
local function _listenerOnEliminationOver(tutorialId)
|
||||||
local params = DataManager.TutorialData:getFinishTypeParams()
|
local elementPosList = DataManager.TutorialData:getTargetElement()
|
||||||
if params == nil then -- 打开界面的完成条件必须要有参数
|
if not elementPosList then
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
if DataManager.ChapterData:getTrainAtkLv() >= params then
|
ModuleManager.TutorialManager:addEventListener(EventManager.CUSTOM_EVENT.ELIMINATION_OVER, function(posIdmap)
|
||||||
return true
|
local over = true
|
||||||
end
|
for _, posId in ipairs(elementPosList) do
|
||||||
ModuleManager.TutorialManager:addEventListener(EventManager.CUSTOM_EVENT.ATK_TRAIN_LEVEL_UP, function(index)
|
if not posIdmap[posId] then
|
||||||
if DataManager.ChapterData:getTrainAtkLv() >= params then
|
over = false
|
||||||
EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.ATK_TRAIN_TUTORIAL_OVER)
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if over then
|
||||||
|
if ModuleManager.BattleManager.battleController then
|
||||||
|
ModuleManager.BattleManager.battleController:onLinkOver()
|
||||||
|
end
|
||||||
ModuleManager.TutorialManager:finishAndNextTutorial(tutorialId)
|
ModuleManager.TutorialManager:finishAndNextTutorial(tutorialId)
|
||||||
|
else
|
||||||
|
if ModuleManager.BattleManager.battleController then
|
||||||
|
ModuleManager.BattleManager.battleController:clearGridSequence()
|
||||||
|
EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.SHOW_ELIMINATION_TUTORAIL, elementPosList)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
return false
|
return false
|
||||||
@ -90,8 +104,8 @@ end
|
|||||||
TutorialFinishListener._addListener = {
|
TutorialFinishListener._addListener = {
|
||||||
[TutorialConst.FINISH_TYPE.ON_UI_SHOW] = _listenerOnUIShow,
|
[TutorialConst.FINISH_TYPE.ON_UI_SHOW] = _listenerOnUIShow,
|
||||||
[TutorialConst.FINISH_TYPE.ON_UI_CLOSE] = _listenerOnUIClose,
|
[TutorialConst.FINISH_TYPE.ON_UI_CLOSE] = _listenerOnUIClose,
|
||||||
[TutorialConst.FINISH_TYPE.ON_TASK_COMPLETE] = _listenerOnTaskCompete,
|
[TutorialConst.FINISH_TYPE.ON_BOARD_CAN_ELIMINATION] = _listenerOnCanElimination,
|
||||||
[TutorialConst.FINISH_TYPE.ON_ATK_LEVEL] = _listenerOnAtkLevel,
|
[TutorialConst.FINISH_TYPE.ON_ELIMINATION_OVER] = _listenerOnEliminationOver,
|
||||||
}
|
}
|
||||||
|
|
||||||
return TutorialFinishListener
|
return TutorialFinishListener
|
||||||
@ -2,8 +2,6 @@ local TutorialConst = require "app/module/tutorial/tutorial_const"
|
|||||||
|
|
||||||
local TutorialManager = class("TutorialManager", BaseModule)
|
local TutorialManager = class("TutorialManager", BaseModule)
|
||||||
|
|
||||||
TutorialManager.FUNC_TUTORIAL_ID = TutorialConst.FUNC_TUTORIAL_ID
|
|
||||||
|
|
||||||
function TutorialManager:checkAndPlayForceTutorial()
|
function TutorialManager:checkAndPlayForceTutorial()
|
||||||
if DataManager.TutorialData:getIsInTutorial() then
|
if DataManager.TutorialData:getIsInTutorial() then
|
||||||
return
|
return
|
||||||
@ -22,14 +20,18 @@ function TutorialManager:sendTutorialId(id, callback)
|
|||||||
local args = {
|
local args = {
|
||||||
id = id
|
id = id
|
||||||
}
|
}
|
||||||
self:sendMessage(ProtoMsgType.FromMsgEnum.MarkGuideReq, args, {}, self.sendTutorialIdFinish)
|
|
||||||
self.sendTutorialIdCallback = callback
|
self.sendTutorialIdCallback = callback
|
||||||
|
|
||||||
|
ServerDataManager:dataOperate(GConst.ServerDataConst.DATA_OP_BEHAVIOR.MARK_GUIDE, args, function(result)
|
||||||
|
self:sendTutorialIdFinish(result)
|
||||||
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
function TutorialManager:sendTutorialIdFinish(result)
|
function TutorialManager:sendTutorialIdFinish(result)
|
||||||
if result.status == 0 then
|
if result.status == 0 then
|
||||||
if result.id then
|
if result.id then
|
||||||
BIReport:postTutorialStep(result.id)
|
-- BIReport:postTutorialStep(result.id)
|
||||||
-- DataManager.TutorialData:markFuncTutorialFinish(result.id)
|
-- DataManager.TutorialData:markFuncTutorialFinish(result.id)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -73,15 +75,10 @@ end
|
|||||||
function TutorialManager:startTutorial()
|
function TutorialManager:startTutorial()
|
||||||
local tutorialId = DataManager.TutorialData:getTutorialId()
|
local tutorialId = DataManager.TutorialData:getTutorialId()
|
||||||
-- 上报引导每一步
|
-- 上报引导每一步
|
||||||
BIReport:postTutorialStep(tutorialId)
|
-- BIReport:postTutorialStep(tutorialId)
|
||||||
Logger.log("开始引导:%s", tutorialId)
|
Logger.log("开始引导:%s", tutorialId)
|
||||||
|
|
||||||
DataManager.TutorialData:markFuncTutorialFinish(tutorialId)
|
DataManager.TutorialData:markFuncTutorialFinish(tutorialId)
|
||||||
if DataManager.TutorialData:getTutorialStopFight() then
|
|
||||||
ModuleManager.BattleManager:pauseFightByTutorial()
|
|
||||||
else
|
|
||||||
ModuleManager.BattleManager:resumeFightByTutorial()
|
|
||||||
end
|
|
||||||
|
|
||||||
-- 如果这一步引导已经完成了就进入下一步,没有完成则如果有监听就添加监听
|
-- 如果这一步引导已经完成了就进入下一步,没有完成则如果有监听就添加监听
|
||||||
local over = self.tutorialFinishListener:checkAndAddListener(tutorialId)
|
local over = self.tutorialFinishListener:checkAndAddListener(tutorialId)
|
||||||
@ -99,8 +96,6 @@ function TutorialManager:stopTutorial()
|
|||||||
if DataManager.TutorialData then
|
if DataManager.TutorialData then
|
||||||
Logger.log("停止引导:%s", DataManager.TutorialData:getTutorialId())
|
Logger.log("停止引导:%s", DataManager.TutorialData:getTutorialId())
|
||||||
end
|
end
|
||||||
ModuleManager.BattleManager:resumeFightByTutorial()
|
|
||||||
|
|
||||||
if self.tutorialFinishListener then
|
if self.tutorialFinishListener then
|
||||||
self.tutorialFinishListener:clear()
|
self.tutorialFinishListener:clear()
|
||||||
end
|
end
|
||||||
@ -134,28 +129,12 @@ function TutorialManager:finishAndNextTutorial(tutorialId)
|
|||||||
-- 此步引导完成时需要处理的东西
|
-- 此步引导完成时需要处理的东西
|
||||||
self.tutorialAction:doStepOver(tutorialId)
|
self.tutorialAction:doStepOver(tutorialId)
|
||||||
|
|
||||||
local haveNext, newStopId = DataManager.TutorialData:nextTutorial()
|
local haveNext = DataManager.TutorialData:nextTutorial()
|
||||||
if haveNext then
|
if haveNext then
|
||||||
local delay = DataManager.TutorialData:getDelayStartTime()
|
local delay = DataManager.TutorialData:getDelayStartTime()
|
||||||
if newStopId then -- 中断步骤变了要跟服务器同步
|
self:performWithDelayGlobal(function()
|
||||||
self:sendTutorialId(DataManager.TutorialData:getTutorialId(), function(success)
|
self:startTutorial()
|
||||||
if success then
|
end, delay)
|
||||||
if delay > 0 then
|
|
||||||
self:performWithDelayGlobal(function()
|
|
||||||
self:startTutorial()
|
|
||||||
end, delay)
|
|
||||||
else
|
|
||||||
self:startTutorial()
|
|
||||||
end
|
|
||||||
else
|
|
||||||
self:stopTutorial()
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
else
|
|
||||||
self:performWithDelayGlobal(function()
|
|
||||||
self:startTutorial()
|
|
||||||
end, delay)
|
|
||||||
end
|
|
||||||
else
|
else
|
||||||
self:performWithDelayGlobal(function()
|
self:performWithDelayGlobal(function()
|
||||||
self:stopTutorial()
|
self:stopTutorial()
|
||||||
|
|||||||
@ -1,29 +0,0 @@
|
|||||||
local TutorialTaskManager = class("TutorialTaskManager", BaseModule)
|
|
||||||
|
|
||||||
function TutorialTaskManager:claimTask()
|
|
||||||
if DataManager.TutorialTaskData:getTaskCollect() then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
ModuleManager.TaskManager:dealTaskType(DataManager.TutorialTaskData:getTaskType(), function()
|
|
||||||
self:sendMessage(ProtoMsgType.FromMsgEnum.TaskTutorRewardReq, {}, {}, self.claimTaskFinish, BIReport.ITEM_GET_TYPE.TUTORIAL_TASK)
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
|
|
||||||
function TutorialTaskManager:claimTaskFinish(result)
|
|
||||||
if result.status == 0 then
|
|
||||||
local taskId = DataManager.TutorialTaskData:getCurTutorialId()
|
|
||||||
DataManager.TutorialTaskData:init(result.task)
|
|
||||||
|
|
||||||
EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.TUTORIAL_TASK_REWARD, result.rewards)
|
|
||||||
local tutorialId = DataManager.TutorialTaskData:getTaskTutorialId()
|
|
||||||
if not tutorialId then
|
|
||||||
tutorialId = DataManager.TutorialData:getTaskOpenTutorial(taskId)
|
|
||||||
end
|
|
||||||
|
|
||||||
if tutorialId then
|
|
||||||
ModuleManager.TutorialManager:checkFuncTutorial(tutorialId)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return TutorialTaskManager
|
|
||||||
19
lua/app/server/data/server_tutorial_data.lua
Normal file
19
lua/app/server/data/server_tutorial_data.lua
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
local ServerTutorialData = class("ServerTutorialData", ServerBaseData)
|
||||||
|
|
||||||
|
function ServerTutorialData:init(data)
|
||||||
|
if data then
|
||||||
|
self.data.markedGuide = data.markedGuide or {}
|
||||||
|
else
|
||||||
|
self.data.markedGuide = {}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function ServerTutorialData:markGuide(id)
|
||||||
|
id = tostring(id)
|
||||||
|
if not id then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
self.data.markedGuide[id] = true
|
||||||
|
end
|
||||||
|
|
||||||
|
return ServerTutorialData
|
||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 0dd4f32fe399df647a2e9d5375711196
|
guid: 8482be101c0b05347b61cef1d8925dac
|
||||||
ScriptedImporter:
|
ScriptedImporter:
|
||||||
internalIDToNameTable: []
|
internalIDToNameTable: []
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
24
lua/app/server/manager/server_tutorial_manager.lua
Normal file
24
lua/app/server/manager/server_tutorial_manager.lua
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
local ServerChapterManager = {}
|
||||||
|
|
||||||
|
function ServerChapterManager:markGuide(params, callback)
|
||||||
|
local result = {
|
||||||
|
status = 1
|
||||||
|
}
|
||||||
|
if params == nil or not params.id then
|
||||||
|
if callback then
|
||||||
|
callback(result)
|
||||||
|
end
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local ServerGameData = ServerDataManager:getServerGameData()
|
||||||
|
ServerGameData.TutorialData:markGuide(params.id)
|
||||||
|
result.id = params.id
|
||||||
|
result.status = 0
|
||||||
|
|
||||||
|
if callback then
|
||||||
|
callback(result)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return ServerChapterManager
|
||||||
10
lua/app/server/manager/server_tutorial_manager.lua.meta
Normal file
10
lua/app/server/manager/server_tutorial_manager.lua.meta
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 635bfc3932a24014192fd87a7c164c14
|
||||||
|
ScriptedImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
|
||||||
@ -12,6 +12,7 @@ ServerDataConst.DATA_OP_BEHAVIOR = {
|
|||||||
UPGRADE_HERO = "UPGRADE_HERO",
|
UPGRADE_HERO = "UPGRADE_HERO",
|
||||||
END_FIGHT = "END_FIGHT",
|
END_FIGHT = "END_FIGHT",
|
||||||
OPEN_CHAPTER_BOX = "OPEN_CHAPTER_BOX",
|
OPEN_CHAPTER_BOX = "OPEN_CHAPTER_BOX",
|
||||||
|
MARK_GUIDE = "MARK_GUIDE",
|
||||||
}
|
}
|
||||||
|
|
||||||
return ServerDataConst
|
return ServerDataConst
|
||||||
@ -6,6 +6,7 @@ function ServerDataManager:init()
|
|||||||
self.ServerFormationManager = require("app/server/manager/server_formation_manager")
|
self.ServerFormationManager = require("app/server/manager/server_formation_manager")
|
||||||
self.ServerHeroManager = require("app/server/manager/server_hero_manager")
|
self.ServerHeroManager = require("app/server/manager/server_hero_manager")
|
||||||
self.ServerChapterManager = require("app/server/manager/server_chapter_manager")
|
self.ServerChapterManager = require("app/server/manager/server_chapter_manager")
|
||||||
|
self.ServerTutorialManager = require("app/server/manager/server_tutorial_manager")
|
||||||
end
|
end
|
||||||
|
|
||||||
function ServerDataManager:saveData()
|
function ServerDataManager:saveData()
|
||||||
@ -67,6 +68,7 @@ ServerDataManager.OP_FUNC = {
|
|||||||
[GConst.ServerDataConst.DATA_OP_BEHAVIOR.UPGRADE_HERO] = function (...) ServerDataManager.ServerHeroManager:onUpgradeHero(...) end,
|
[GConst.ServerDataConst.DATA_OP_BEHAVIOR.UPGRADE_HERO] = function (...) ServerDataManager.ServerHeroManager:onUpgradeHero(...) end,
|
||||||
[GConst.ServerDataConst.DATA_OP_BEHAVIOR.END_FIGHT] = function(...) ServerDataManager.ServerChapterManager:endFight(...) end,
|
[GConst.ServerDataConst.DATA_OP_BEHAVIOR.END_FIGHT] = function(...) ServerDataManager.ServerChapterManager:endFight(...) end,
|
||||||
[GConst.ServerDataConst.DATA_OP_BEHAVIOR.OPEN_CHAPTER_BOX] = function(...) ServerDataManager.ServerChapterManager:openBox(...) end,
|
[GConst.ServerDataConst.DATA_OP_BEHAVIOR.OPEN_CHAPTER_BOX] = function(...) ServerDataManager.ServerChapterManager:openBox(...) end,
|
||||||
|
[GConst.ServerDataConst.DATA_OP_BEHAVIOR.MARK_GUIDE] = function(...) ServerDataManager.ServerTutorialManager:markGuide(...) end,
|
||||||
}
|
}
|
||||||
|
|
||||||
function ServerDataManager:dealGM(params, callback)
|
function ServerDataManager:dealGM(params, callback)
|
||||||
|
|||||||
@ -18,6 +18,7 @@ function ServerGameData:init()
|
|||||||
self:initServerData("HeroData", "app/server/data/server_hero_data")
|
self:initServerData("HeroData", "app/server/data/server_hero_data")
|
||||||
self:initServerData("ChapterData", "app/server/data/server_chapter_data")
|
self:initServerData("ChapterData", "app/server/data/server_chapter_data")
|
||||||
self:initServerData("FormationData", "app/server/data/server_formation_data")
|
self:initServerData("FormationData", "app/server/data/server_formation_data")
|
||||||
|
self:initServerData("TutorialData", "app/server/data/server_tutorial_data")
|
||||||
end
|
end
|
||||||
|
|
||||||
function ServerGameData:initData()
|
function ServerGameData:initData()
|
||||||
|
|||||||
@ -46,6 +46,7 @@ function BattleUI:_display()
|
|||||||
self:initHpNode()
|
self:initHpNode()
|
||||||
self:initFxNode()
|
self:initFxNode()
|
||||||
self:hideGenerateSkillGridCells()
|
self:hideGenerateSkillGridCells()
|
||||||
|
self:initTutorialNode()
|
||||||
end
|
end
|
||||||
|
|
||||||
function BattleUI:_addListeners()
|
function BattleUI:_addListeners()
|
||||||
@ -53,6 +54,10 @@ function BattleUI:_addListeners()
|
|||||||
uiMap["battle_ui.top_node.close_btn"]:addClickListener(function()
|
uiMap["battle_ui.top_node.close_btn"]:addClickListener(function()
|
||||||
ModuleManager.BattleManager:showPauseUI()
|
ModuleManager.BattleManager:showPauseUI()
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
self:addEventListener(EventManager.CUSTOM_EVENT.SHOW_ELIMINATION_TUTORAIL, function(posIdList)
|
||||||
|
self:showTutorialFinger(posIdList)
|
||||||
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
function BattleUI:_bind()
|
function BattleUI:_bind()
|
||||||
@ -625,6 +630,9 @@ function BattleUI:onInitGridCellOver()
|
|||||||
entity:setCell(cell)
|
entity:setCell(cell)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
---- 检查引导
|
||||||
|
ModuleManager.TutorialManager:checkFuncTutorial(GConst.TutorialConst.START_TUTORIAL)
|
||||||
end
|
end
|
||||||
|
|
||||||
function BattleUI:switchBoard(downCallback, callback, isFirst)
|
function BattleUI:switchBoard(downCallback, callback, isFirst)
|
||||||
@ -1115,6 +1123,49 @@ function BattleUI:hideAllSfxGridBreak()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function BattleUI:initTutorialNode()
|
||||||
|
local uiMap = self.root:genAllChildren()
|
||||||
|
self.tutorialNode = uiMap["battle_ui.tutorial_node"]
|
||||||
|
self.tutorialFinger = uiMap["battle_ui.tutorial_node.board_node.finger"]
|
||||||
|
self:showTutorialFinger()
|
||||||
|
end
|
||||||
|
|
||||||
|
function BattleUI:showTutorialFinger(posIdList)
|
||||||
|
if self.showTutorialFingerSeq then
|
||||||
|
self.showTutorialFingerSeq:Kill()
|
||||||
|
self.showTutorialFingerSeq = nil
|
||||||
|
end
|
||||||
|
|
||||||
|
if not self.tutorialFinger then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local show = false
|
||||||
|
if posIdList and posIdList[1] then
|
||||||
|
show = true
|
||||||
|
end
|
||||||
|
self.tutorialNode:setVisible(show)
|
||||||
|
if not show then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
self.showTutorialFingerSeq = self.root:createBindTweenSequence()
|
||||||
|
local path = {}
|
||||||
|
local count = 0
|
||||||
|
for index, posId in ipairs(posIdList) do
|
||||||
|
local curPos = ModuleManager.BattleManager:getPosInfo(posId)
|
||||||
|
if index == 1 then
|
||||||
|
self.tutorialFinger:setAnchoredPosition(curPos.x, curPos.y)
|
||||||
|
else
|
||||||
|
table.insert(path, curPos)
|
||||||
|
count = count + 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
self.showTutorialFingerSeq:Append(self.tutorialFinger:getTransform():DOLocalPath(path, count))
|
||||||
|
self.showTutorialFingerSeq:SetLoops(-1)
|
||||||
|
end
|
||||||
|
|
||||||
function BattleUI:clear()
|
function BattleUI:clear()
|
||||||
if self.alreadyClear then
|
if self.alreadyClear then
|
||||||
return
|
return
|
||||||
|
|||||||
@ -20,12 +20,9 @@ UIManager.MESSAGE_BOX_TAG = {
|
|||||||
UIManager.UI_PATH = {
|
UIManager.UI_PATH = {
|
||||||
GM_TOO_UI = "app/ui/gm/gm_tool_ui",
|
GM_TOO_UI = "app/ui/gm/gm_tool_ui",
|
||||||
MAINCITY_UI = "app/ui/main_city/main_city_ui",
|
MAINCITY_UI = "app/ui/main_city/main_city_ui",
|
||||||
WEAPON_SUMMON_UI = "app/ui/summon_pop/summon_rewards_ui",
|
|
||||||
PROTECTIVE_SUMMON_UI = "app/ui/summon_pop/summon_rewards_ui",
|
|
||||||
LEGACY_SUMMON_UI = "app/ui/summon_pop/summon_rewards_ui",
|
|
||||||
HERO_ALL_UP_UI = "app/ui/hero/hero_all_up_ui",
|
|
||||||
BATTLE_BLACK_UI = "app/ui/battle/battle_black_ui",
|
|
||||||
BATTLE_UI = "app/ui/battle/battle_ui",
|
BATTLE_UI = "app/ui/battle/battle_ui",
|
||||||
|
ROGUE_SKILL_UI = "app/ui/battle/battle_skill_select_ui",
|
||||||
|
REWARD_BOX = "app/ui/tips/reward_box",
|
||||||
}
|
}
|
||||||
|
|
||||||
-- 动画类型
|
-- 动画类型
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
local ChapterData = class("ChapterData", BaseData)
|
local ChapterData = class("ChapterData", BaseData)
|
||||||
|
|
||||||
local MIN_CHAPTER_ID = 1
|
ChapterData.MIN_CHAPTER_ID = 1
|
||||||
|
local MIN_CHAPTER_ID = ChapterData.MIN_CHAPTER_ID
|
||||||
|
|
||||||
function ChapterData:ctor()
|
function ChapterData:ctor()
|
||||||
self.data.chapterId = MIN_CHAPTER_ID
|
self.data.chapterId = MIN_CHAPTER_ID
|
||||||
|
|||||||
@ -8,30 +8,26 @@ local TutorialData = class("TutorialData", BaseData)
|
|||||||
function TutorialData:ctor()
|
function TutorialData:ctor()
|
||||||
self.inTutorial = false
|
self.inTutorial = false
|
||||||
self.data.tutorialId = 0 -- 强制引导步骤
|
self.data.tutorialId = 0 -- 强制引导步骤
|
||||||
self.data.stopId = 0 -- 中断步骤
|
|
||||||
self.isFuncTutorial = false
|
self.isFuncTutorial = false
|
||||||
end
|
end
|
||||||
|
|
||||||
function TutorialData:clear()
|
function TutorialData:clear()
|
||||||
self.inTutorial = false
|
self.inTutorial = false
|
||||||
self.data.tutorialId = 0
|
self.data.tutorialId = 0
|
||||||
self.data.stopId = 0
|
|
||||||
self.isFuncTutorial = false
|
self.isFuncTutorial = false
|
||||||
end
|
end
|
||||||
|
|
||||||
function TutorialData:init(data)
|
function TutorialData:init(data)
|
||||||
data = data or {}
|
data = data or {}
|
||||||
self.inTutorial = false
|
self.inTutorial = false
|
||||||
-- 强制引导步骤
|
|
||||||
self.data.tutorialId = data.id or 0
|
|
||||||
if self.data.tutorialId > 0 then
|
|
||||||
self.tutorialInfo = TUTORIAL_CFG[self.data.tutorialId]
|
|
||||||
end
|
|
||||||
-- 功能开启引导列表
|
-- 功能开启引导列表
|
||||||
self.funcTutorialMap = {}
|
self.funcTutorialMap = {}
|
||||||
if data.func then
|
if data.markedGuide then
|
||||||
for k,v in pairs(data.func) do
|
for k,v in pairs(data.markedGuide) do
|
||||||
self.funcTutorialMap[k] = v
|
local id = tonumber(k)
|
||||||
|
if id then
|
||||||
|
self.funcTutorialMap[id] = v
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -53,25 +49,16 @@ function TutorialData:getIsInFirstStep()
|
|||||||
return self.data.tutorialId == 10010
|
return self.data.tutorialId == 10010
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 是否有下一步,中断步骤是否改变
|
-- 是否有下一步
|
||||||
function TutorialData:nextTutorial()
|
function TutorialData:nextTutorial()
|
||||||
local id = self.tutorialInfo.next_id
|
local id = self.tutorialInfo.next_id
|
||||||
local tutorialInfo = TUTORIAL_CFG[id]
|
local tutorialInfo = TUTORIAL_CFG[id]
|
||||||
if tutorialInfo == nil then
|
if tutorialInfo == nil then
|
||||||
return false, false
|
return false
|
||||||
end
|
end
|
||||||
self.data.tutorialId = id
|
self.data.tutorialId = id
|
||||||
self.tutorialInfo = tutorialInfo
|
self.tutorialInfo = tutorialInfo
|
||||||
local stopId = self.tutorialInfo and self.tutorialInfo.stop_id or 0
|
return true
|
||||||
if stopId ~= self.data.stopId then -- 中断步骤发生了改变
|
|
||||||
self.data.stopId = stopId
|
|
||||||
return true, true
|
|
||||||
end
|
|
||||||
return true, false
|
|
||||||
end
|
|
||||||
|
|
||||||
function TutorialData:getStopId()
|
|
||||||
return self.data.stopId
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function TutorialData:stopTutorial()
|
function TutorialData:stopTutorial()
|
||||||
@ -168,6 +155,10 @@ function TutorialData:getTypeParameter()
|
|||||||
return self.tutorialInfo.type_parameter
|
return self.tutorialInfo.type_parameter
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function TutorialData:getTargetElement()
|
||||||
|
return self.tutorialInfo.target_element
|
||||||
|
end
|
||||||
|
|
||||||
function TutorialData:getIsHaveTutorialText()
|
function TutorialData:getIsHaveTutorialText()
|
||||||
if self.tutorialInfo.txt and self.tutorialInfo.txt ~= "" then
|
if self.tutorialInfo.txt and self.tutorialInfo.txt ~= "" then
|
||||||
return true
|
return true
|
||||||
@ -215,7 +206,6 @@ function TutorialData:getIsHaveFuncTutorial(tutorialId, tutorialInfo)
|
|||||||
|
|
||||||
self.tutorialInfo = tutorialInfo
|
self.tutorialInfo = tutorialInfo
|
||||||
self.data.tutorialId = tutorialId
|
self.data.tutorialId = tutorialId
|
||||||
self.data.stopId = 0
|
|
||||||
self.isFuncTutorial = true
|
self.isFuncTutorial = true
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
@ -261,48 +251,4 @@ function TutorialData:getTutorialId2UIPath(id)
|
|||||||
return self.tutorialId2UIPath[id]
|
return self.tutorialId2UIPath[id]
|
||||||
end
|
end
|
||||||
|
|
||||||
function TutorialData:getFuncTutorialId(uiPath)
|
|
||||||
self:getTutorialIdList()
|
|
||||||
local list = self.funcTutorialUImap[uiPath]
|
|
||||||
if list then
|
|
||||||
for _, id in ipairs(list) do
|
|
||||||
local info = TUTORIAL_STARTCFG[id]
|
|
||||||
local tId = info.start_id
|
|
||||||
if tId then
|
|
||||||
if not self:getIsFuncTutorialFinished(tId) then
|
|
||||||
return id
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function TutorialData:getTaskOpenTutorial(taskId)
|
|
||||||
if not self.taskOpenTutorialMap then
|
|
||||||
self.taskOpenTutorialMap = {}
|
|
||||||
local cfg = ConfigManager:getConfig("func_open")
|
|
||||||
for id, info in pairs(cfg) do
|
|
||||||
if info.task and info.tutorial_id then
|
|
||||||
self.taskOpenTutorialMap[info.task] = info.tutorial_id
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return self.taskOpenTutorialMap[taskId]
|
|
||||||
end
|
|
||||||
|
|
||||||
function TutorialData:getStageOpenTutorial(stageId)
|
|
||||||
if not self.stageOpenTutorialMap then
|
|
||||||
self.stageOpenTutorialMap = {}
|
|
||||||
local cfg = ConfigManager:getConfig("func_open")
|
|
||||||
for id, info in pairs(cfg) do
|
|
||||||
if info.stage and info.tutorial_id then
|
|
||||||
self.stageOpenTutorialMap[info.stage] = info.tutorial_id
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return self.stageOpenTutorialMap[stageId]
|
|
||||||
end
|
|
||||||
|
|
||||||
return TutorialData
|
return TutorialData
|
||||||
@ -1,280 +0,0 @@
|
|||||||
local TutorialTaskData = class("TutorialTaskData", BaseData)
|
|
||||||
|
|
||||||
local TUTORIAL_TASK_CFG = ConfigManager:getConfig("tutorialtask")
|
|
||||||
|
|
||||||
function TutorialTaskData:ctor()
|
|
||||||
self:clear()
|
|
||||||
end
|
|
||||||
|
|
||||||
function TutorialTaskData:clear()
|
|
||||||
self.data.isDirty = false
|
|
||||||
self.finished = false
|
|
||||||
self.progress = 0
|
|
||||||
self.curTaskId = 1
|
|
||||||
|
|
||||||
ModuleManager.TaskManager:unRegisterAllModuleTask("TutorialTaskData")
|
|
||||||
end
|
|
||||||
|
|
||||||
function TutorialTaskData:init(data, isInit)
|
|
||||||
data = data or {}
|
|
||||||
self.finished = data.finished or false
|
|
||||||
self.progress = data.progress or 0
|
|
||||||
self.curTaskId = data.id or 1
|
|
||||||
|
|
||||||
if isInit then
|
|
||||||
self:initTaskListener()
|
|
||||||
end
|
|
||||||
self:setDirty()
|
|
||||||
end
|
|
||||||
|
|
||||||
function TutorialTaskData:setDirty()
|
|
||||||
self.data.isDirty = not self.data.isDirty
|
|
||||||
end
|
|
||||||
|
|
||||||
function TutorialTaskData:getCurTutorialId()
|
|
||||||
return self.curTaskId
|
|
||||||
end
|
|
||||||
|
|
||||||
function TutorialTaskData:getTaskCollect(id)
|
|
||||||
if id then
|
|
||||||
return id < self.curTaskId
|
|
||||||
end
|
|
||||||
return self.finished
|
|
||||||
end
|
|
||||||
|
|
||||||
function TutorialTaskData:getTaskDesc(taskId, noProgress)
|
|
||||||
taskId = taskId or self.curTaskId
|
|
||||||
if TUTORIAL_TASK_CFG[taskId] then
|
|
||||||
local progress = self:getTaskCount(taskId)
|
|
||||||
if noProgress then
|
|
||||||
progress = nil
|
|
||||||
end
|
|
||||||
return ModuleManager.TaskManager:getTaskTutorialDesc(TUTORIAL_TASK_CFG[taskId].type, progress, self:getTaskTotalCount(taskId))
|
|
||||||
end
|
|
||||||
return GConst.EMPTY_STRING
|
|
||||||
end
|
|
||||||
|
|
||||||
function TutorialTaskData:getTaskCount()
|
|
||||||
return self.progress
|
|
||||||
end
|
|
||||||
|
|
||||||
function TutorialTaskData:getTaskTotalCount(taskId)
|
|
||||||
taskId = taskId or self.curTaskId
|
|
||||||
if TUTORIAL_TASK_CFG[taskId] then
|
|
||||||
return TUTORIAL_TASK_CFG[taskId].parameter
|
|
||||||
end
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
function TutorialTaskData:getTaskReward(taskId)
|
|
||||||
taskId = taskId or self.curTaskId
|
|
||||||
if TUTORIAL_TASK_CFG[taskId] then
|
|
||||||
return TUTORIAL_TASK_CFG[taskId].reward
|
|
||||||
end
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
function TutorialTaskData:getTaskTutorialId(taskId)
|
|
||||||
taskId = taskId or self.curTaskId
|
|
||||||
if TUTORIAL_TASK_CFG[taskId] then
|
|
||||||
return TUTORIAL_TASK_CFG[taskId].tutorial_id
|
|
||||||
end
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
function TutorialTaskData:getTaskType(taskId)
|
|
||||||
taskId = taskId or self.curTaskId
|
|
||||||
if TUTORIAL_TASK_CFG[taskId] then
|
|
||||||
return TUTORIAL_TASK_CFG[taskId].type
|
|
||||||
end
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
function TutorialTaskData:getTaskNext(taskId)
|
|
||||||
taskId = taskId or self.curTaskId
|
|
||||||
if TUTORIAL_TASK_CFG[taskId] then
|
|
||||||
return TUTORIAL_TASK_CFG[taskId].next
|
|
||||||
end
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
function TutorialTaskData:canClaimTask()
|
|
||||||
if not TUTORIAL_TASK_CFG[self.curTaskId] or self:getTaskCollect() then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
return self:getTaskCount() >= self:getTaskTotalCount()
|
|
||||||
end
|
|
||||||
|
|
||||||
function TutorialTaskData:getMaxShowFingerTask()
|
|
||||||
if not self.maxShowFingerTaskId then
|
|
||||||
self.maxShowFingerTaskId = GFunc.getConstIntValue("tutorialtask_tutorialmax")
|
|
||||||
end
|
|
||||||
return self.maxShowFingerTaskId
|
|
||||||
end
|
|
||||||
|
|
||||||
---- 如果需要显示指引,则返回类型,nil为不指引
|
|
||||||
function TutorialTaskData:showFinger(taskId)
|
|
||||||
if DataManager.TutorialData:getIsInTutorial() then -- 强引导
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
taskId = taskId or self.curTaskId
|
|
||||||
if taskId > self:getMaxShowFingerTask() then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
if not TUTORIAL_TASK_CFG[taskId] then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
if self:canClaimTask() then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
local taskType = TUTORIAL_TASK_CFG[taskId].type
|
|
||||||
if taskType == GConst.TaskConst.TASK_TYPE.X_TRAIN_ATK or
|
|
||||||
taskType == GConst.TaskConst.TASK_TYPE.X_TRAIN_HP then
|
|
||||||
return taskType
|
|
||||||
end
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
function TutorialTaskData:showMaskFinger(taskId)
|
|
||||||
if DataManager.TutorialData:getIsInTutorial() then -- 强引导
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
taskId = taskId or self.curTaskId
|
|
||||||
if not TUTORIAL_TASK_CFG[taskId] or not TUTORIAL_TASK_CFG[taskId].must_tutorial then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
return self:canClaimTask()
|
|
||||||
end
|
|
||||||
|
|
||||||
function TutorialTaskData:getIsThisTypeTask(taskType)
|
|
||||||
local cfg = TUTORIAL_TASK_CFG[self.curTaskId]
|
|
||||||
if cfg and cfg.type == taskType then
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function TutorialTaskData:addTaskProgress(count)
|
|
||||||
if not count then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
self.progress = self.progress + count
|
|
||||||
self:setDirty()
|
|
||||||
|
|
||||||
if self:showMaskFinger() and not DataManager.TutorialData:getIsInTutorial() then
|
|
||||||
EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.CHANGE_MAIN_CITY_PAGE, {page = 0})
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function TutorialTaskData:setTaskProgress(count)
|
|
||||||
if not count then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
if self.progress > count then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
self.progress = count
|
|
||||||
self:setDirty()
|
|
||||||
end
|
|
||||||
|
|
||||||
function TutorialTaskData:initTaskListener()
|
|
||||||
ModuleManager.TaskManager:registerTask("TutorialTaskData", GConst.TaskConst.TASK_TYPE.X_KILL_MONSTER, function(count)
|
|
||||||
if self:getIsThisTypeTask(GConst.TaskConst.TASK_TYPE.X_KILL_MONSTER) then
|
|
||||||
self:addTaskProgress(count)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
ModuleManager.TaskManager:registerTask("TutorialTaskData", GConst.TaskConst.TASK_TYPE.PASS_CHAPTER, function(count)
|
|
||||||
if self:getIsThisTypeTask(GConst.TaskConst.TASK_TYPE.PASS_CHAPTER) then
|
|
||||||
self:setTaskProgress(count)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
ModuleManager.TaskManager:registerTask("TutorialTaskData", GConst.TaskConst.TASK_TYPE.X_WEAPON_SUMMON, function(count)
|
|
||||||
if self:getIsThisTypeTask(GConst.TaskConst.TASK_TYPE.X_WEAPON_SUMMON) then
|
|
||||||
self:addTaskProgress(count)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
ModuleManager.TaskManager:registerTask("TutorialTaskData", GConst.TaskConst.TASK_TYPE.X_PROTECTIVE_SUMMON, function(count)
|
|
||||||
if self:getIsThisTypeTask(GConst.TaskConst.TASK_TYPE.X_PROTECTIVE_SUMMON) then
|
|
||||||
self:addTaskProgress(count)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
ModuleManager.TaskManager:registerTask("TutorialTaskData", GConst.TaskConst.TASK_TYPE.X_LEGACY_SUMMON, function(count)
|
|
||||||
if self:getIsThisTypeTask(GConst.TaskConst.TASK_TYPE.X_LEGACY_SUMMON) then
|
|
||||||
self:addTaskProgress(count)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
ModuleManager.TaskManager:registerTask("TutorialTaskData", GConst.TaskConst.TASK_TYPE.COMPLETED_JEWELRY_BATTLE, function(count)
|
|
||||||
if self:getIsThisTypeTask(GConst.TaskConst.TASK_TYPE.COMPLETED_JEWELRY_BATTLE) then
|
|
||||||
self:setTaskProgress(count)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
ModuleManager.TaskManager:registerTask("TutorialTaskData", GConst.TaskConst.TASK_TYPE.COMPLETED_GOLD_BATTLE, function(count)
|
|
||||||
if self:getIsThisTypeTask(GConst.TaskConst.TASK_TYPE.COMPLETED_GOLD_BATTLE) then
|
|
||||||
self:setTaskProgress(count)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
ModuleManager.TaskManager:registerTask("TutorialTaskData", GConst.TaskConst.TASK_TYPE.COMPLETED_MITHRIL_BATTLE, function(count)
|
|
||||||
if self:getIsThisTypeTask(GConst.TaskConst.TASK_TYPE.COMPLETED_MITHRIL_BATTLE) then
|
|
||||||
self:setTaskProgress(count)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
ModuleManager.TaskManager:registerTask("TutorialTaskData", GConst.TaskConst.TASK_TYPE.ARENA_TIER_ON, function(count)
|
|
||||||
if self:getIsThisTypeTask(GConst.TaskConst.TASK_TYPE.ARENA_TIER_ON) then
|
|
||||||
self:addTaskProgress(count)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
ModuleManager.TaskManager:registerTask("TutorialTaskData", GConst.TaskConst.TASK_TYPE.X_MINE_DISTANCE, function(count)
|
|
||||||
if self:getIsThisTypeTask(GConst.TaskConst.TASK_TYPE.X_MINE_DISTANCE) then
|
|
||||||
self:setTaskProgress(count)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
ModuleManager.TaskManager:registerTask("TutorialTaskData", GConst.TaskConst.TASK_TYPE.X_TRAIN_ATK, function(count)
|
|
||||||
if self:getIsThisTypeTask(GConst.TaskConst.TASK_TYPE.X_TRAIN_ATK) then
|
|
||||||
self:setTaskProgress(count)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
ModuleManager.TaskManager:registerTask("TutorialTaskData", GConst.TaskConst.TASK_TYPE.X_TRAIN_HP, function(count)
|
|
||||||
if self:getIsThisTypeTask(GConst.TaskConst.TASK_TYPE.X_TRAIN_HP) then
|
|
||||||
self:setTaskProgress(count)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
ModuleManager.TaskManager:registerTask("TutorialTaskData", GConst.TaskConst.TASK_TYPE.X_WATCH_AD, function(count)
|
|
||||||
if self:getIsThisTypeTask(GConst.TaskConst.TASK_TYPE.X_WATCH_AD) then
|
|
||||||
self:addTaskProgress(count)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
ModuleManager.TaskManager:registerTask("TutorialTaskData", GConst.TaskConst.TASK_TYPE.X_HOE_USE, function(count)
|
|
||||||
if self:getIsThisTypeTask(GConst.TaskConst.TASK_TYPE.X_HOE_USE) then
|
|
||||||
self:addTaskProgress(count)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
ModuleManager.TaskManager:registerTask("TutorialTaskData", GConst.TaskConst.TASK_TYPE.X_RESEARCH_USE, function(count)
|
|
||||||
if self:getIsThisTypeTask(GConst.TaskConst.TASK_TYPE.X_RESEARCH_USE) then
|
|
||||||
self:addTaskProgress(count)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
ModuleManager.TaskManager:registerTask("TutorialTaskData", GConst.TaskConst.TASK_TYPE.X_MINE_GRID, function(count)
|
|
||||||
if self:getIsThisTypeTask(GConst.TaskConst.TASK_TYPE.X_MINE_GRID) then
|
|
||||||
self:addTaskProgress(count)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
|
|
||||||
return TutorialTaskData
|
|
||||||
Loading…
x
Reference in New Issue
Block a user