ui动画、结算界面逻辑
This commit is contained in:
parent
84f1f27c3c
commit
9dc155e593
@ -40,6 +40,9 @@ EventManager.CUSTOM_EVENT = {
|
|||||||
PLAYER_INFO_CLICK_AVATAR = "PLAYER_INFO_CLICK_AVATAR",-- 个人信息选择头像
|
PLAYER_INFO_CLICK_AVATAR = "PLAYER_INFO_CLICK_AVATAR",-- 个人信息选择头像
|
||||||
PLAYER_INFO_CLICK_FRAME = "PLAYER_INFO_CLICK_FRAME",-- 个人信息选择头像框
|
PLAYER_INFO_CLICK_FRAME = "PLAYER_INFO_CLICK_FRAME",-- 个人信息选择头像框
|
||||||
RENAME_SUCCESS = "RENAME_SUCCESS",-- 重命名成功
|
RENAME_SUCCESS = "RENAME_SUCCESS",-- 重命名成功
|
||||||
|
-- 竞技场
|
||||||
|
ARENA_SEASON_SETTLEMENT = "ARENA_SEASON_SETTLEMENT",-- 赛季结算
|
||||||
|
ARENA_SEASON_END = "ARENA_SEASON_END",-- 赛季结束
|
||||||
-- BORAD_TOUCH_BEGIN = "BORAD_TOUCH_BEGIN",
|
-- BORAD_TOUCH_BEGIN = "BORAD_TOUCH_BEGIN",
|
||||||
-- BORAD_TOUCH_OVER = "BORAD_TOUCH_OVER"
|
-- BORAD_TOUCH_OVER = "BORAD_TOUCH_OVER"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -68,11 +68,11 @@ local func_open = {
|
|||||||
["pop_ups"]=1
|
["pop_ups"]=1
|
||||||
},
|
},
|
||||||
["arena_open"]={
|
["arena_open"]={
|
||||||
["stage"]=10,
|
["stage"]=5,
|
||||||
["pop_ups"]=1
|
["pop_ups"]=1
|
||||||
},
|
},
|
||||||
["act_arena_gift"]={
|
["act_arena_gift"]={
|
||||||
["stage"]=10,
|
["stage"]=5,
|
||||||
["pop_ups"]=1
|
["pop_ups"]=1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -135,9 +135,7 @@ local LocalizationGlobalConst =
|
|||||||
LEVEL_FUND_DESC_1 = "LEVEL_FUND_DESC_1",
|
LEVEL_FUND_DESC_1 = "LEVEL_FUND_DESC_1",
|
||||||
BUFF_DESC = "BUFF_DESC",
|
BUFF_DESC = "BUFF_DESC",
|
||||||
DAILY_CHALLENGE_DESC_1 = "DAILY_CHALLENGE_DESC_1",
|
DAILY_CHALLENGE_DESC_1 = "DAILY_CHALLENGE_DESC_1",
|
||||||
DISCONNECT_RELOGIN = "DISCONNECT_RELOGIN",
|
|
||||||
RECONNECT = "RECONNECT",
|
RECONNECT = "RECONNECT",
|
||||||
RELOGIN = "RELOGIN",
|
|
||||||
SEVEN_DAY_TITLE = "SEVEN_DAY_TITLE",
|
SEVEN_DAY_TITLE = "SEVEN_DAY_TITLE",
|
||||||
SEVEN_DAY_DESC_1 = "SEVEN_DAY_DESC_1",
|
SEVEN_DAY_DESC_1 = "SEVEN_DAY_DESC_1",
|
||||||
DAY_X = "DAY_X",
|
DAY_X = "DAY_X",
|
||||||
@ -301,6 +299,13 @@ local LocalizationGlobalConst =
|
|||||||
ARENA_BATTLE_DESC_3 = "ARENA_BATTLE_DESC_3",
|
ARENA_BATTLE_DESC_3 = "ARENA_BATTLE_DESC_3",
|
||||||
ARENA_BATTLE_DESC_4 = "ARENA_BATTLE_DESC_4",
|
ARENA_BATTLE_DESC_4 = "ARENA_BATTLE_DESC_4",
|
||||||
ARENA_BATTLE_DESC_5 = "ARENA_BATTLE_DESC_5",
|
ARENA_BATTLE_DESC_5 = "ARENA_BATTLE_DESC_5",
|
||||||
|
ARENA_DESC_25 = "ARENA_DESC_25",
|
||||||
|
ARENA_DESC_26 = "ARENA_DESC_26",
|
||||||
|
ARENA_DESC_27 = "ARENA_DESC_27",
|
||||||
|
ARENA_DESC_29 = "ARENA_DESC_29",
|
||||||
|
ARENA_DESC_30 = "ARENA_DESC_30",
|
||||||
|
ARENA_DESC_31 = "ARENA_DESC_31",
|
||||||
|
ARENA_DESC_HELP = "ARENA_DESC_HELP",
|
||||||
}
|
}
|
||||||
|
|
||||||
return LocalizationGlobalConst
|
return LocalizationGlobalConst
|
||||||
@ -135,9 +135,7 @@ local localization_global =
|
|||||||
["LEVEL_FUND_DESC_1"] = "购买成长基金{0}后,可通过提升等级获得钻石。\n多档基金可同时购买",
|
["LEVEL_FUND_DESC_1"] = "购买成长基金{0}后,可通过提升等级获得钻石。\n多档基金可同时购买",
|
||||||
["BUFF_DESC"] = "BUFF",
|
["BUFF_DESC"] = "BUFF",
|
||||||
["DAILY_CHALLENGE_DESC_1"] = "今日剩余挑战次数不足",
|
["DAILY_CHALLENGE_DESC_1"] = "今日剩余挑战次数不足",
|
||||||
["DISCONNECT_RELOGIN"] = "网络连接已断开, 请重新登录",
|
|
||||||
["RECONNECT"] = "网络连接已断开,是否重连",
|
["RECONNECT"] = "网络连接已断开,是否重连",
|
||||||
["RELOGIN"] = "重新登录",
|
|
||||||
["SEVEN_DAY_TITLE"] = "新手七天乐",
|
["SEVEN_DAY_TITLE"] = "新手七天乐",
|
||||||
["SEVEN_DAY_DESC_1"] = "每天将开启新的任务",
|
["SEVEN_DAY_DESC_1"] = "每天将开启新的任务",
|
||||||
["DAY_X"] = "第{0}天",
|
["DAY_X"] = "第{0}天",
|
||||||
@ -301,6 +299,13 @@ local localization_global =
|
|||||||
["ARENA_BATTLE_DESC_3"] = "眩晕中",
|
["ARENA_BATTLE_DESC_3"] = "眩晕中",
|
||||||
["ARENA_BATTLE_DESC_4"] = "冻结中",
|
["ARENA_BATTLE_DESC_4"] = "冻结中",
|
||||||
["ARENA_BATTLE_DESC_5"] = "昏睡中",
|
["ARENA_BATTLE_DESC_5"] = "昏睡中",
|
||||||
|
["ARENA_DESC_25"] = "是否消耗{0}钻石重新匹配?",
|
||||||
|
["ARENA_DESC_26"] = "对手已经离开,请重新匹配",
|
||||||
|
["ARENA_DESC_27"] = "竞技场积分{0}",
|
||||||
|
["ARENA_DESC_29"] = "竞技场结算中,请稍后再匹配……",
|
||||||
|
["ARENA_DESC_30"] = "竞技场新赛季开启,请更新游戏再进入!",
|
||||||
|
["ARENA_DESC_31"] = "竞技场结算开始,暂停挑战!",
|
||||||
|
["ARENA_DESC_HELP"] = "1.竞技场为赛季周期制,每个赛季结束后将重置竞技场并发放上一赛季段位奖励。\n2.竞技场结算将在结束当日的23点30分(UTC-0)开始结算,结算时长为30分钟,结算期间为防止竞技场记录员受到干扰,竞技场将无法进行挑战,请各位骑士见谅。\n3.结算后,所有骑士团将重置为当前段位的最低段位阶段。如果前一赛季挑战不足10次,则重置为上一段位的最低阶段。",
|
||||||
}
|
}
|
||||||
|
|
||||||
return localization_global
|
return localization_global
|
||||||
@ -135,9 +135,7 @@ local localization_global =
|
|||||||
["LEVEL_FUND_DESC_1"] = "After purchasing Growth Fund {0}, you can obtain Diamonds by upgrading. \nMultiple funds can be purchased simultaneously.",
|
["LEVEL_FUND_DESC_1"] = "After purchasing Growth Fund {0}, you can obtain Diamonds by upgrading. \nMultiple funds can be purchased simultaneously.",
|
||||||
["BUFF_DESC"] = "BUFF",
|
["BUFF_DESC"] = "BUFF",
|
||||||
["DAILY_CHALLENGE_DESC_1"] = "Insufficient challenge attempts for today.",
|
["DAILY_CHALLENGE_DESC_1"] = "Insufficient challenge attempts for today.",
|
||||||
["DISCONNECT_RELOGIN"] = "Network disconnected. Please log in again.",
|
|
||||||
["RECONNECT"] = "Network disconnected. Reconnect?",
|
["RECONNECT"] = "Network disconnected. Reconnect?",
|
||||||
["RELOGIN"] = "Re-login",
|
|
||||||
["SEVEN_DAY_TITLE"] = "Novice 7-Day Login Event",
|
["SEVEN_DAY_TITLE"] = "Novice 7-Day Login Event",
|
||||||
["SEVEN_DAY_DESC_1"] = "New quests are unlocked daily",
|
["SEVEN_DAY_DESC_1"] = "New quests are unlocked daily",
|
||||||
["DAY_X"] = "Day {0}",
|
["DAY_X"] = "Day {0}",
|
||||||
|
|||||||
@ -135,9 +135,7 @@ local localization_global =
|
|||||||
["LEVEL_FUND_DESC_1"] = "Bisa mendapat berlian dengan naik level setelah membeli {0} Dana Growth.\nDana multi-level dapat dibeli secara bersamaan.",
|
["LEVEL_FUND_DESC_1"] = "Bisa mendapat berlian dengan naik level setelah membeli {0} Dana Growth.\nDana multi-level dapat dibeli secara bersamaan.",
|
||||||
["BUFF_DESC"] = "BUFF",
|
["BUFF_DESC"] = "BUFF",
|
||||||
["DAILY_CHALLENGE_DESC_1"] = "Tantangan yang tersisa saat ini tidak cukup",
|
["DAILY_CHALLENGE_DESC_1"] = "Tantangan yang tersisa saat ini tidak cukup",
|
||||||
["DISCONNECT_RELOGIN"] = "Koneksi jaringan terputus, silakan login ulang",
|
|
||||||
["RECONNECT"] = "Koneksi jaringan terputus. Login ulang?",
|
["RECONNECT"] = "Koneksi jaringan terputus. Login ulang?",
|
||||||
["RELOGIN"] = "Login ulang",
|
|
||||||
["SEVEN_DAY_TITLE"] = "Kegembiraan 7 Hari bagi Pemula",
|
["SEVEN_DAY_TITLE"] = "Kegembiraan 7 Hari bagi Pemula",
|
||||||
["SEVEN_DAY_DESC_1"] = "Misi baru akan dibuka setiap hari.",
|
["SEVEN_DAY_DESC_1"] = "Misi baru akan dibuka setiap hari.",
|
||||||
["DAY_X"] = "Hari ke-{0}",
|
["DAY_X"] = "Hari ke-{0}",
|
||||||
|
|||||||
@ -135,9 +135,7 @@ local localization_global =
|
|||||||
["LEVEL_FUND_DESC_1"] = "成長ファンド{0}を購入した後、レベルアップすることでダイヤを獲得できます。\n複数のファンドを同時に購入できます",
|
["LEVEL_FUND_DESC_1"] = "成長ファンド{0}を購入した後、レベルアップすることでダイヤを獲得できます。\n複数のファンドを同時に購入できます",
|
||||||
["BUFF_DESC"] = "バフ",
|
["BUFF_DESC"] = "バフ",
|
||||||
["DAILY_CHALLENGE_DESC_1"] = "本日の残り挑戦回数が足りません",
|
["DAILY_CHALLENGE_DESC_1"] = "本日の残り挑戦回数が足りません",
|
||||||
["DISCONNECT_RELOGIN"] = "ネットワーク接続が切断されました。もう一度ログインしてください",
|
|
||||||
["RECONNECT"] = "ネットワーク接続が切断されました。再接続しますか",
|
["RECONNECT"] = "ネットワーク接続が切断されました。再接続しますか",
|
||||||
["RELOGIN"] = "再ログイン",
|
|
||||||
["SEVEN_DAY_TITLE"] = "初心者7日間ログイン報酬",
|
["SEVEN_DAY_TITLE"] = "初心者7日間ログイン報酬",
|
||||||
["SEVEN_DAY_DESC_1"] = "ミッションは日ごとに解放される",
|
["SEVEN_DAY_DESC_1"] = "ミッションは日ごとに解放される",
|
||||||
["DAY_X"] = "{0}日目",
|
["DAY_X"] = "{0}日目",
|
||||||
|
|||||||
@ -135,9 +135,7 @@ local localization_global =
|
|||||||
["LEVEL_FUND_DESC_1"] = "레벨업 펀드{0}를 구매한 후, 레벨업을 통해 다이아를 획득할 수 있습니다. \n여러 등급의 패스는 동시에 구매할 수 있습니다.",
|
["LEVEL_FUND_DESC_1"] = "레벨업 펀드{0}를 구매한 후, 레벨업을 통해 다이아를 획득할 수 있습니다. \n여러 등급의 패스는 동시에 구매할 수 있습니다.",
|
||||||
["BUFF_DESC"] = "버프",
|
["BUFF_DESC"] = "버프",
|
||||||
["DAILY_CHALLENGE_DESC_1"] = "오늘 남은 도전 횟수가 부족합니다.",
|
["DAILY_CHALLENGE_DESC_1"] = "오늘 남은 도전 횟수가 부족합니다.",
|
||||||
["DISCONNECT_RELOGIN"] = "네트워크 연결이 끊어졌습니다. 다시 로그인하세요.",
|
|
||||||
["RECONNECT"] = "네크워크 연결이 끊어졌습니다. 다시 연결해 보세요.",
|
["RECONNECT"] = "네크워크 연결이 끊어졌습니다. 다시 연결해 보세요.",
|
||||||
["RELOGIN"] = "다시 로그인하기",
|
|
||||||
["SEVEN_DAY_TITLE"] = "초보자 7일 축제",
|
["SEVEN_DAY_TITLE"] = "초보자 7일 축제",
|
||||||
["SEVEN_DAY_DESC_1"] = "매일 새로운 미션이 시작됩니다.",
|
["SEVEN_DAY_DESC_1"] = "매일 새로운 미션이 시작됩니다.",
|
||||||
["DAY_X"] = "제{0}일",
|
["DAY_X"] = "제{0}일",
|
||||||
|
|||||||
@ -135,9 +135,7 @@ local localization_global =
|
|||||||
["LEVEL_FUND_DESC_1"] = "Após comprar o Fundo de Crescimento {0}, você pode obter diamantes ao aumentar de nível.\nVários fundos podem ser comprados ao mesmo tempo.",
|
["LEVEL_FUND_DESC_1"] = "Após comprar o Fundo de Crescimento {0}, você pode obter diamantes ao aumentar de nível.\nVários fundos podem ser comprados ao mesmo tempo.",
|
||||||
["BUFF_DESC"] = "BÔNUS",
|
["BUFF_DESC"] = "BÔNUS",
|
||||||
["DAILY_CHALLENGE_DESC_1"] = "Hoje restam poucas chances de desafio",
|
["DAILY_CHALLENGE_DESC_1"] = "Hoje restam poucas chances de desafio",
|
||||||
["DISCONNECT_RELOGIN"] = "A conexão com a internet foi interrompida, por favor, faça login novamente",
|
|
||||||
["RECONNECT"] = "A conexão com a internet foi interrompida, deseja reconectar?",
|
["RECONNECT"] = "A conexão com a internet foi interrompida, deseja reconectar?",
|
||||||
["RELOGIN"] = "Fazer login novamente",
|
|
||||||
["SEVEN_DAY_TITLE"] = "Alegria de 7 Dias do Principiante",
|
["SEVEN_DAY_TITLE"] = "Alegria de 7 Dias do Principiante",
|
||||||
["SEVEN_DAY_DESC_1"] = "Novas missões serão disponíveis diariamente",
|
["SEVEN_DAY_DESC_1"] = "Novas missões serão disponíveis diariamente",
|
||||||
["DAY_X"] = "Dia {0}",
|
["DAY_X"] = "Dia {0}",
|
||||||
|
|||||||
@ -135,9 +135,7 @@ local localization_global =
|
|||||||
["LEVEL_FUND_DESC_1"] = "หลังจากซื้อกองทุนเติบโต{0}แล้ว จะสามารถรับเพชรได้โดยการอัปเลเวล\nสามารถซื้อได้หลายกองทุนในเวลาเดียวกัน",
|
["LEVEL_FUND_DESC_1"] = "หลังจากซื้อกองทุนเติบโต{0}แล้ว จะสามารถรับเพชรได้โดยการอัปเลเวล\nสามารถซื้อได้หลายกองทุนในเวลาเดียวกัน",
|
||||||
["BUFF_DESC"] = "BUFF",
|
["BUFF_DESC"] = "BUFF",
|
||||||
["DAILY_CHALLENGE_DESC_1"] = "จำนวนท้าทายที่เหลือของวันนี้ไม่พอ",
|
["DAILY_CHALLENGE_DESC_1"] = "จำนวนท้าทายที่เหลือของวันนี้ไม่พอ",
|
||||||
["DISCONNECT_RELOGIN"] = "การเชื่อมต่อเครือข่ายถูกตัด โปรดล็อกอินอีกครั้ง",
|
|
||||||
["RECONNECT"] = "การเชื่อมต่อเครือข่ายถูกตัด เชื่อมต่อใหม่หรือไม่",
|
["RECONNECT"] = "การเชื่อมต่อเครือข่ายถูกตัด เชื่อมต่อใหม่หรือไม่",
|
||||||
["RELOGIN"] = "ล็อกอินใหม่",
|
|
||||||
["SEVEN_DAY_TITLE"] = "กิจกรรมล็อกอิน 7 วันสำหรับมือใหม่",
|
["SEVEN_DAY_TITLE"] = "กิจกรรมล็อกอิน 7 วันสำหรับมือใหม่",
|
||||||
["SEVEN_DAY_DESC_1"] = "ภารกิจใหม่จะเปิดทุกวัน",
|
["SEVEN_DAY_DESC_1"] = "ภารกิจใหม่จะเปิดทุกวัน",
|
||||||
["DAY_X"] = "วันที่ {0}",
|
["DAY_X"] = "วันที่ {0}",
|
||||||
|
|||||||
@ -135,9 +135,7 @@ local localization_global =
|
|||||||
["LEVEL_FUND_DESC_1"] = "Sau khi mua Quỹ Trưởng Thành {0}, có thể tăng cấp nhận Kim Cương.\nCó thể cùng lúc mua nhiều mốc quỹ",
|
["LEVEL_FUND_DESC_1"] = "Sau khi mua Quỹ Trưởng Thành {0}, có thể tăng cấp nhận Kim Cương.\nCó thể cùng lúc mua nhiều mốc quỹ",
|
||||||
["BUFF_DESC"] = "BUFF",
|
["BUFF_DESC"] = "BUFF",
|
||||||
["DAILY_CHALLENGE_DESC_1"] = "Hôm nay thiếu lượt khiêu chiến",
|
["DAILY_CHALLENGE_DESC_1"] = "Hôm nay thiếu lượt khiêu chiến",
|
||||||
["DISCONNECT_RELOGIN"] = "Mất kết nối, vui lòng đăng nhập lại",
|
|
||||||
["RECONNECT"] = "Mất kết nối, kết nối lại chứ",
|
["RECONNECT"] = "Mất kết nối, kết nối lại chứ",
|
||||||
["RELOGIN"] = "Đăng Nhập Lại",
|
|
||||||
["SEVEN_DAY_TITLE"] = "7 ngày tân thủ vui vẻ",
|
["SEVEN_DAY_TITLE"] = "7 ngày tân thủ vui vẻ",
|
||||||
["SEVEN_DAY_DESC_1"] = "Mỗi ngày sẽ mở nhiệm vụ mới",
|
["SEVEN_DAY_DESC_1"] = "Mỗi ngày sẽ mở nhiệm vụ mới",
|
||||||
["DAY_X"] = "Ngày {0}",
|
["DAY_X"] = "Ngày {0}",
|
||||||
|
|||||||
@ -135,9 +135,7 @@ local localization_global =
|
|||||||
["LEVEL_FUND_DESC_1"] = "購買成長基金{0}後,可透過提高等級獲得鑽石。 \n多檔基金可同時購買",
|
["LEVEL_FUND_DESC_1"] = "購買成長基金{0}後,可透過提高等級獲得鑽石。 \n多檔基金可同時購買",
|
||||||
["BUFF_DESC"] = "BUFF",
|
["BUFF_DESC"] = "BUFF",
|
||||||
["DAILY_CHALLENGE_DESC_1"] = "今日剩餘挑戰次數不足",
|
["DAILY_CHALLENGE_DESC_1"] = "今日剩餘挑戰次數不足",
|
||||||
["DISCONNECT_RELOGIN"] = "網路連接已中斷,請重新登入",
|
|
||||||
["RECONNECT"] = "網路連接已中斷,是否重連",
|
["RECONNECT"] = "網路連接已中斷,是否重連",
|
||||||
["RELOGIN"] = "重新登入",
|
|
||||||
["SEVEN_DAY_TITLE"] = "新人七天樂",
|
["SEVEN_DAY_TITLE"] = "新人七天樂",
|
||||||
["SEVEN_DAY_DESC_1"] = "每天將開啟新的任務",
|
["SEVEN_DAY_DESC_1"] = "每天將開啟新的任務",
|
||||||
["DAY_X"] = "第{0}天",
|
["DAY_X"] = "第{0}天",
|
||||||
|
|||||||
@ -1,7 +1,13 @@
|
|||||||
local ArenaManager = class("ArenaManager", BaseModule)
|
local ArenaManager = class("ArenaManager", BaseModule)
|
||||||
|
|
||||||
|
-- 赛季结算
|
||||||
|
function ArenaManager:onSeasonSettlement()
|
||||||
|
EventManager.dispatchEvent(EventManager.CUSTOM_EVENT.ARENA_SEASON_SETTLEMENT)
|
||||||
|
end
|
||||||
|
|
||||||
-- 赛季改变
|
-- 赛季改变
|
||||||
function ArenaManager:onSeasonChanged()
|
function ArenaManager:onSeasonChanged()
|
||||||
|
EventManager.dispatchEvent(EventManager.CUSTOM_EVENT.ARENA_SEASON_END)
|
||||||
if not self.isResetting then
|
if not self.isResetting then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
@ -28,6 +34,13 @@ function ArenaManager:reqChallenge()
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- 判断体力
|
||||||
|
if not DataManager.ArenaData:isEnoughTicket() then
|
||||||
|
GFunc.showItemNotEnough(GConst.ItemConst.ITEM_ID_ARENA_TICKET)
|
||||||
|
ModuleManager.CommerceManager:showBuyArenaTicketUI()
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
local reqData = {
|
local reqData = {
|
||||||
defInfo = DataManager.ArenaData:getMatchInfo()
|
defInfo = DataManager.ArenaData:getMatchInfo()
|
||||||
}
|
}
|
||||||
@ -82,12 +95,14 @@ end
|
|||||||
function ArenaManager:rspSettlement(result)
|
function ArenaManager:rspSettlement(result)
|
||||||
if result.err_code == GConst.ERROR_STR.SUCCESS then
|
if result.err_code == GConst.ERROR_STR.SUCCESS then
|
||||||
DataManager.ArenaData:onBattleResultReceived(result.settlement)
|
DataManager.ArenaData:onBattleResultReceived(result.settlement)
|
||||||
|
local checkCount = 0
|
||||||
-- 总共赢的次数result.total_win_count
|
if result.settlement.win then
|
||||||
-- 总共输的次数result.total_lose_count
|
checkCount = result.total_win_count
|
||||||
|
else
|
||||||
|
checkCount = result.total_lose_count
|
||||||
|
end
|
||||||
-- 展示结算界面
|
-- 展示结算界面
|
||||||
ModuleManager.BattleManager:showBattleResultUI(GConst.BattleConst.BATTLE_TYPE.ARENA, result.rewards, result.reqData.combatReport)
|
ModuleManager.BattleManager:showArenaBattleResultUI(result.settlement, result.rewards, checkCount)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -19,7 +19,25 @@ function BattleManager:showPauseUI(battleType)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function BattleManager:showBattleResultUI(battleType, rewards, combatReport, mysteryBoxIdx)
|
function BattleManager:showBattleResultUI(battleType, rewards, combatReport, mysteryBoxIdx)
|
||||||
UIManager:showUI("app/ui/battle/battle_result_ui", {battleType = battleType, rewards = rewards, combatReport = combatReport, mysteryBoxIdx = mysteryBoxIdx})
|
UIManager:showUI("app/ui/battle/battle_result_ui", {
|
||||||
|
battleType = battleType,
|
||||||
|
isWin = combatReport.victory,
|
||||||
|
rewards = rewards,
|
||||||
|
atkReport = combatReport.atkReport,
|
||||||
|
wave = combatReport.wave,
|
||||||
|
mysteryBoxIdx = mysteryBoxIdx or 0,
|
||||||
|
remainRound = combatReport.remainRound or 0,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
function BattleManager:showArenaBattleResultUI(settlement, rewards, checkCount)
|
||||||
|
UIManager:showUI("app/ui/battle/battle_result_ui", {
|
||||||
|
battleType = GConst.BattleConst.BATTLE_TYPE.ARENA,
|
||||||
|
isWin = settlement.win,
|
||||||
|
rewards = rewards,
|
||||||
|
incrScore = settlement.incr_score,
|
||||||
|
arenaTotalCount = checkCount,
|
||||||
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
function BattleManager:showBoxOpenUI(rewards, callback)
|
function BattleManager:showBoxOpenUI(rewards, callback)
|
||||||
|
|||||||
@ -73,6 +73,8 @@ function ArenaMatchUI:onLoadRootComplete()
|
|||||||
-- 匹配结果页
|
-- 匹配结果页
|
||||||
self.matchResult = uiMap["arena_match_ui.match_result"]
|
self.matchResult = uiMap["arena_match_ui.match_result"]
|
||||||
self.btnClose = uiMap["arena_match_ui.match_result.btn_close"]
|
self.btnClose = uiMap["arena_match_ui.match_result.btn_close"]
|
||||||
|
self.spineVS = uiMap["arena_match_ui.match_result.spine_vs"]
|
||||||
|
self.matchAnimator = self.matchResult:getComponent(GConst.TYPEOF_UNITY_CLASS.ANIMATOR)
|
||||||
-- 对手信息
|
-- 对手信息
|
||||||
self.matchAvatar = CellManager:addCellComp(uiMap["arena_match_ui.match_result.match.info.player_head_cell"], GConst.TYPEOF_LUA_CLASS.PLAYER_HEAD_CELL)
|
self.matchAvatar = CellManager:addCellComp(uiMap["arena_match_ui.match_result.match.info.player_head_cell"], GConst.TYPEOF_LUA_CLASS.PLAYER_HEAD_CELL)
|
||||||
self.matchTxName = uiMap["arena_match_ui.match_result.match.info.tx_name"]
|
self.matchTxName = uiMap["arena_match_ui.match_result.match.info.tx_name"]
|
||||||
@ -105,7 +107,6 @@ function ArenaMatchUI:onLoadRootComplete()
|
|||||||
end)
|
end)
|
||||||
self.btnStart:addClickListener(function()
|
self.btnStart:addClickListener(function()
|
||||||
ModuleManager.ArenaManager:reqChallenge()
|
ModuleManager.ArenaManager:reqChallenge()
|
||||||
self:closeUI()
|
|
||||||
end)
|
end)
|
||||||
self.btnRematch:addClickListener(function()
|
self.btnRematch:addClickListener(function()
|
||||||
self:onClickRematch()
|
self:onClickRematch()
|
||||||
@ -114,6 +115,10 @@ function ArenaMatchUI:onLoadRootComplete()
|
|||||||
UIManager:showUI("app/ui/arena/arena_formation_ui", GConst.BattleConst.FORMATION_TYPE.ARENA_ATTACK)
|
UIManager:showUI("app/ui/arena/arena_formation_ui", GConst.BattleConst.FORMATION_TYPE.ARENA_ATTACK)
|
||||||
self:closeUI()
|
self:closeUI()
|
||||||
end)
|
end)
|
||||||
|
self:addEventListener(EventManager.CUSTOM_EVENT.ARENA_SEASON_SETTLEMENT, function()
|
||||||
|
GFunc.showToast(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_31))
|
||||||
|
self:closeUI()
|
||||||
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
function ArenaMatchUI:onRefresh()
|
function ArenaMatchUI:onRefresh()
|
||||||
@ -160,7 +165,9 @@ function ArenaMatchUI:showMatchResult()
|
|||||||
self.matchResult:setActive(true)
|
self.matchResult:setActive(true)
|
||||||
self.showResult = true
|
self.showResult = true
|
||||||
|
|
||||||
self.freeRematchCD = DataManager.ArenaData:getFreeRematchCd()
|
self.spineVS:playAnimComplete("born", false, true, function()
|
||||||
|
self.spineVS:playAnim("idle", true, true)
|
||||||
|
end)
|
||||||
|
|
||||||
self.txStart:setText(I18N:getGlobalText(I18N.GlobalConst.TASK_CHALLENGE))
|
self.txStart:setText(I18N:getGlobalText(I18N.GlobalConst.TASK_CHALLENGE))
|
||||||
self.txConst:setText(DataManager.ArenaData:getFightCostNum())
|
self.txConst:setText(DataManager.ArenaData:getFightCostNum())
|
||||||
@ -202,12 +209,13 @@ function ArenaMatchUI:showMatchResult()
|
|||||||
self.matchExistCd = self.matchExistCd - 1
|
self.matchExistCd = self.matchExistCd - 1
|
||||||
if self.matchExistCd <= 0 then
|
if self.matchExistCd <= 0 then
|
||||||
self:unscheduleGlobal(self.existSid)
|
self:unscheduleGlobal(self.existSid)
|
||||||
GFunc.showToast(I18N:getGlobalText(I18N.GlobalConst.BATTLE_DESC_8))
|
GFunc.showToast(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_26))
|
||||||
self:closeUI()
|
self:closeUI()
|
||||||
end
|
end
|
||||||
end, 1)
|
end, 1)
|
||||||
|
|
||||||
-- 免费匹配cd倒计时
|
-- 免费匹配cd倒计时
|
||||||
|
self.freeRematchCD = DataManager.ArenaData:getFreeRematchCd()
|
||||||
if self.countdownSid then
|
if self.countdownSid then
|
||||||
self:unscheduleGlobal(self.countdownSid)
|
self:unscheduleGlobal(self.countdownSid)
|
||||||
end
|
end
|
||||||
@ -245,7 +253,7 @@ function ArenaMatchUI:onClickRematch()
|
|||||||
else
|
else
|
||||||
-- 钻石
|
-- 钻石
|
||||||
local params ={
|
local params ={
|
||||||
content = I18N:getGlobalText(I18N.GlobalConst.BOUNTY_BUY_LEVEL_COUNTENT),
|
content = I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_25, DataManager.ArenaData:getRematchConstGem()),
|
||||||
boxType = GConst.MESSAGE_BOX_TYPE.MB_OK_CANCEL,
|
boxType = GConst.MESSAGE_BOX_TYPE.MB_OK_CANCEL,
|
||||||
costId = GConst.ItemConst.ITEM_ID_GEM,
|
costId = GConst.ItemConst.ITEM_ID_GEM,
|
||||||
costNum = DataManager.ArenaData:getRematchConstGem(),
|
costNum = DataManager.ArenaData:getRematchConstGem(),
|
||||||
|
|||||||
@ -8,14 +8,28 @@ function BattleResultUI:getPrefabPath()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function BattleResultUI:ctor(params)
|
function BattleResultUI:ctor(params)
|
||||||
self.rewards = params.rewards
|
if EDITOR_MODE then
|
||||||
self.combatReport = params.combatReport
|
Logger.printTable(params)
|
||||||
self.mysteryBoxIdx = params.mysteryBoxIdx or 0
|
end
|
||||||
|
-- 通用
|
||||||
self.battleType = params.battleType
|
self.battleType = params.battleType
|
||||||
|
self.isWin = params.isWin
|
||||||
|
self.rewards = params.rewards
|
||||||
|
-- pve特有
|
||||||
|
self.atkReport = params.atkReport
|
||||||
|
self.wave = params.wave
|
||||||
|
-- 主线特有
|
||||||
|
self.mysteryBoxIdx = params.mysteryBoxIdx or 0
|
||||||
|
-- 金币副本特有
|
||||||
|
self.remainRound = params.remainRound
|
||||||
|
-- 竞技场特有
|
||||||
|
self.incrScore = params.incrScore
|
||||||
|
self.arenaTotalCount = params.arenaTotalCount
|
||||||
|
|
||||||
self.isTryShowGoldPig = false
|
self.isTryShowGoldPig = false
|
||||||
self.totalDmg = 0
|
self.totalDmg = 0
|
||||||
if self.combatReport.atkReport then
|
if self.atkReport then
|
||||||
for _, info in ipairs(self.combatReport.atkReport) do
|
for _, info in ipairs(self.atkReport) do
|
||||||
self.totalDmg = self.totalDmg + info.dmg
|
self.totalDmg = self.totalDmg + info.dmg
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -35,8 +49,8 @@ function BattleResultUI:onClose()
|
|||||||
if self.sliderSequence then
|
if self.sliderSequence then
|
||||||
self.sliderSequence:Kill()
|
self.sliderSequence:Kill()
|
||||||
end
|
end
|
||||||
if self.animUnit then
|
if self.animNode then
|
||||||
self.animUnit:Kill()
|
self.animNode:Kill()
|
||||||
end
|
end
|
||||||
if self.animPig then
|
if self.animPig then
|
||||||
self.animPig:Kill()
|
self.animPig:Kill()
|
||||||
@ -48,217 +62,281 @@ function BattleResultUI:onClose()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
if self.arenaSequence then
|
||||||
|
self.arenaSequence:Kill()
|
||||||
|
self.arenaSequence = nil
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function BattleResultUI:onLoadRootComplete()
|
function BattleResultUI:onLoadRootComplete()
|
||||||
self:_display()
|
|
||||||
self:_addListeners()
|
|
||||||
end
|
|
||||||
|
|
||||||
function BattleResultUI:_display()
|
|
||||||
if self.combatReport.victory then
|
|
||||||
self:refreshVictoryNode()
|
|
||||||
AudioManager:playEffect(AudioManager.EFFECT_ID.BATTLE_VICTORY)
|
|
||||||
else
|
|
||||||
self:refreshDefeatNode()
|
|
||||||
AudioManager:playEffect(AudioManager.EFFECT_ID.BATTLE_DEFEAT)
|
|
||||||
end
|
|
||||||
self:refreshFixedInfo()
|
|
||||||
self:refreshRewards()
|
|
||||||
self:refreshUnitInfo()
|
|
||||||
self:initGoldPig()
|
|
||||||
end
|
|
||||||
|
|
||||||
function BattleResultUI:_addListeners()
|
|
||||||
local uiMap = self.root:genAllChildren()
|
local uiMap = self.root:genAllChildren()
|
||||||
uiMap["battle_result_ui.mask_v"]:addClickListener(function()
|
|
||||||
if self.isTryShowGoldPig then
|
|
||||||
ModuleManager.BattleManager:endBattleAndExit()
|
|
||||||
else
|
|
||||||
if not self:tryShowGoldPig() then
|
|
||||||
ModuleManager.BattleManager:endBattleAndExit()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
uiMap["battle_result_ui.mask_d"]:addClickListener(function()
|
self.continue = uiMap["battle_result_ui.continue"]
|
||||||
if self.isTryShowGoldPig then
|
-- 胜利节点
|
||||||
ModuleManager.BattleManager:endBattleAndExit()
|
self.victoryNode = uiMap["battle_result_ui.victory_node"]
|
||||||
else
|
self.victoryMask = uiMap["battle_result_ui.mask_v"]
|
||||||
if not self:tryShowGoldPig() then
|
self.victoryTxTitle = uiMap["battle_result_ui.victory_node.title_bg.desc"]
|
||||||
ModuleManager.BattleManager:endBattleAndExit()
|
self.victorySpine = uiMap["battle_result_ui.victory_node.ui_spine_obj"]
|
||||||
end
|
self.victoryUnitNode = uiMap["battle_result_ui.victory_node.unit_node"]
|
||||||
end
|
-- 失败节点
|
||||||
end)
|
self.defeatNode = uiMap["battle_result_ui.defeat_node"]
|
||||||
end
|
self.defeatMask = uiMap["battle_result_ui.mask_d"]
|
||||||
|
self.defeatTxTitle = uiMap["battle_result_ui.defeat_node.title_bg.desc"]
|
||||||
function BattleResultUI:refreshFixedInfo()
|
self.defeatSpine = uiMap["battle_result_ui.defeat_node.ui_spine_obj"]
|
||||||
local uiMap = self.root:genAllChildren()
|
self.defeatUnitNode = uiMap["battle_result_ui.defeat_node.unit_node"]
|
||||||
local icon = uiMap["battle_result_ui.unit_node.icon"]
|
-- 战斗信息
|
||||||
local desc1 = uiMap["battle_result_ui.unit_node.desc_1"]
|
self.unitNode = uiMap["battle_result_ui.unit_node"]
|
||||||
local desc2 = uiMap["battle_result_ui.unit_node.desc_2"]
|
self.unitImgBattleIcon = uiMap["battle_result_ui.unit_node.icon"]
|
||||||
local desc3 = uiMap["battle_result_ui.unit_node.desc_3"]
|
self.unitTxDesc1 = uiMap["battle_result_ui.unit_node.desc_1"]
|
||||||
local rewardTitle = uiMap["battle_result_ui.reward_node.reward_title"]
|
self.unitTxDesc2 = uiMap["battle_result_ui.unit_node.desc_2"]
|
||||||
local continue = uiMap["battle_result_ui.continue"]
|
self.unitTxDesc3 = uiMap["battle_result_ui.unit_node.desc_3"]
|
||||||
desc2:setText(self.combatReport.wave)
|
self.unitImgReportV = uiMap["battle_result_ui.unit_node.report_img_v"]
|
||||||
desc3:setText(I18N:getGlobalText(I18N.GlobalConst.BATTLE_DESC_7, GFunc.num2Str(self.totalDmg)))
|
self.unitImgReportD = uiMap["battle_result_ui.unit_node.report_img_d"]
|
||||||
rewardTitle:setText(I18N:getGlobalText(I18N.GlobalConst.REWARD_DESC))
|
|
||||||
continue:setText(I18N:getGlobalText(I18N.GlobalConst.CONTINUE_DESC))
|
|
||||||
|
|
||||||
local iconName = "common_dec_3"
|
|
||||||
if self.battleType == GConst.BattleConst.BATTLE_TYPE.DUNGEON_GOLD then
|
|
||||||
iconName = "common_dec_15"
|
|
||||||
local round = self.combatReport.remainRound or 0
|
|
||||||
desc2:setText(round)
|
|
||||||
desc1:setText(I18N:getGlobalText(I18N.GlobalConst.ROUND_LEFT))
|
|
||||||
else
|
|
||||||
desc1:setText(GConst.EMPTY_STRING)
|
|
||||||
end
|
|
||||||
icon:setSprite(GConst.ATLAS_PATH.COMMON, iconName)
|
|
||||||
|
|
||||||
GFunc.centerImgAndTx(icon, desc2, 7)
|
|
||||||
end
|
|
||||||
|
|
||||||
function BattleResultUI:refreshVictoryNode()
|
|
||||||
local uiMap = self.root:genAllChildren()
|
|
||||||
uiMap["battle_result_ui.mask_v"]:setVisible(true)
|
|
||||||
uiMap["battle_result_ui.mask_d"]:setVisible(false)
|
|
||||||
uiMap["battle_result_ui.defeat_node"]:setVisible(false)
|
|
||||||
uiMap["battle_result_ui.victory_node"]:setVisible(true)
|
|
||||||
uiMap["battle_result_ui.victory_node.unit_node.report_img_v"]:setVisible(true)
|
|
||||||
uiMap["battle_result_ui.defeat_node.unit_node.report_img_d"]:setVisible(false)
|
|
||||||
uiMap["battle_result_ui.victory_node.title_bg.desc"]:setText(I18N:getGlobalText(I18N.GlobalConst.BATTLE_DESC_5))
|
|
||||||
uiMap["battle_result_ui.victory_node.ui_spine_obj"]:playAnimComplete("born", false, true, function()
|
|
||||||
uiMap["battle_result_ui.victory_node.ui_spine_obj"]:playAnim("idle", true, true)
|
|
||||||
end)
|
|
||||||
self:refreshUnitNodeAnim(uiMap["battle_result_ui.victory_node.unit_node"])
|
|
||||||
end
|
|
||||||
|
|
||||||
function BattleResultUI:refreshDefeatNode()
|
|
||||||
local uiMap = self.root:genAllChildren()
|
|
||||||
uiMap["battle_result_ui.mask_v"]:setVisible(false)
|
|
||||||
uiMap["battle_result_ui.mask_d"]:setVisible(true)
|
|
||||||
uiMap["battle_result_ui.defeat_node"]:setVisible(true)
|
|
||||||
uiMap["battle_result_ui.victory_node"]:setVisible(false)
|
|
||||||
uiMap["battle_result_ui.victory_node.unit_node.report_img_v"]:setVisible(false)
|
|
||||||
uiMap["battle_result_ui.defeat_node.unit_node.report_img_d"]:setVisible(true)
|
|
||||||
uiMap["battle_result_ui.defeat_node.title_bg.desc"]:setText(I18N:getGlobalText(I18N.GlobalConst.BATTLE_DESC_6))
|
|
||||||
uiMap["battle_result_ui.defeat_node.ui_spine_obj"]:playAnimComplete("born", false, true, function()
|
|
||||||
uiMap["battle_result_ui.defeat_node.ui_spine_obj"]:playAnim("idle", true, true)
|
|
||||||
end)
|
|
||||||
self:refreshUnitNodeAnim(uiMap["battle_result_ui.defeat_node.unit_node"])
|
|
||||||
end
|
|
||||||
|
|
||||||
function BattleResultUI:refreshUnitNodeAnim(parent)
|
|
||||||
local uiMap = self.root:genAllChildren()
|
|
||||||
if not parent then
|
|
||||||
uiMap["battle_result_ui.unit_node"]:setActive(false)
|
|
||||||
return
|
|
||||||
else
|
|
||||||
uiMap["battle_result_ui.unit_node"]:setActive(true)
|
|
||||||
end
|
|
||||||
uiMap["battle_result_ui.unit_node"]:setParent(parent, false)
|
|
||||||
uiMap["battle_result_ui.unit_node"]:setAnchoredPosition(0, 0)
|
|
||||||
local canvasNodeUnit = parent:getComponent(GConst.TYPEOF_UNITY_CLASS.CANVAS_GROUP)
|
|
||||||
|
|
||||||
self.animUnit = self.root:createBindTweenSequence()
|
|
||||||
self.animUnit:Insert(0, canvasNodeUnit:DOFade(0, 0))
|
|
||||||
self.animUnit:Insert(0.1, canvasNodeUnit:DOFade(1, 0))
|
|
||||||
self.animUnit:Insert(0, parent:getTransform():DOScale(0, 0))
|
|
||||||
self.animUnit:Insert(0.1, parent:getTransform():DOScale(0.35, 0))
|
|
||||||
self.animUnit:Insert(0.13, parent:getTransform():DOScale(1.1, 0.16))
|
|
||||||
self.animUnit:Insert(0.26, parent:getTransform():DOScale(1, 0.14))
|
|
||||||
self.animUnit:OnComplete(function()
|
|
||||||
self.animUnit = nil
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
|
|
||||||
function BattleResultUI:refreshArenaNode(isShow)
|
|
||||||
local uiMap = self.root:genAllChildren()
|
|
||||||
if not isShow then
|
|
||||||
uiMap["battle_result_ui.arena_node"]:setActive(false)
|
|
||||||
return
|
|
||||||
else
|
|
||||||
uiMap["battle_result_ui.arena_node"]:setActive(true)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function BattleResultUI:refreshRewards()
|
|
||||||
if self.scrollRectComp then
|
|
||||||
self.scrollRectComp:updateAllCell()
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
self.animRewards = {}
|
|
||||||
local uiMap = self.root:genAllChildren()
|
|
||||||
self.rewardNode = uiMap["battle_result_ui.reward_node"]
|
|
||||||
self.rewardNode:setVisible(true)
|
|
||||||
local scrollRect = uiMap["battle_result_ui.reward_node.scroll_rect"]
|
|
||||||
self.scrollRectComp = scrollRect:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE)
|
|
||||||
self.scrollRectComp:addInitCallback(function()
|
|
||||||
return GConst.TYPEOF_LUA_CLASS.REWARD_CELL
|
|
||||||
end)
|
|
||||||
self.scrollRectComp:addRefreshCallback(function(index, cell)
|
|
||||||
cell:refresh(self.rewards[index])
|
|
||||||
if index <= MAX_SCROLL_SHOW_COUNT and self.animRewards[index] == nil then
|
|
||||||
self.animRewards[index] = self:showRewardAppearAnim(index, cell)
|
|
||||||
end
|
|
||||||
cell:showRightUpIcon(index <= self.mysteryBoxIdx, GConst.ATLAS_PATH.COMMON, "common_chest_1")
|
|
||||||
end)
|
|
||||||
self.scrollRectComp:setFadeArgs(0.05, 0.3)
|
|
||||||
self.scrollRectComp:clearCells()
|
|
||||||
local rewardCount = #self.rewards
|
|
||||||
if rewardCount > MAX_SCROLL_SHOW_COUNT then
|
|
||||||
local comp = scrollRect:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_SCROLL_RECT)
|
|
||||||
comp.movementType = CS.UnityEngine.UI.ScrollRect.MovementType.Elastic
|
|
||||||
self.scrollRectComp:setPerLineNum(5)
|
|
||||||
scrollRect:setSizeDeltaX(560)
|
|
||||||
else
|
|
||||||
local comp = scrollRect:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_SCROLL_RECT)
|
|
||||||
comp.movementType = CS.UnityEngine.UI.ScrollRect.MovementType.Clamped
|
|
||||||
if rewardCount >= 5 then
|
|
||||||
self.scrollRectComp:setPerLineNum(5)
|
|
||||||
scrollRect:setSizeDeltaX(560)
|
|
||||||
elseif rewardCount <= 0 then
|
|
||||||
self.scrollRectComp:setPerLineNum(1)
|
|
||||||
scrollRect:setSizeDeltaX(560)
|
|
||||||
else
|
|
||||||
self.scrollRectComp:setPerLineNum(rewardCount)
|
|
||||||
scrollRect:setSizeDeltaX(112*rewardCount)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
self.scrollRectComp:refillCells(rewardCount)
|
|
||||||
end
|
|
||||||
|
|
||||||
function BattleResultUI:refreshUnitInfo()
|
|
||||||
local uiMap = self.root:genAllChildren()
|
|
||||||
if not self.unitResultReportCells then
|
if not self.unitResultReportCells then
|
||||||
self.unitResultReportCells = {}
|
self.unitResultReportCells = {}
|
||||||
for index = 1, 5 do
|
for index = 1, 5 do
|
||||||
self.unitResultReportCells[index] = CellManager:addCellComp(uiMap["battle_result_ui.unit_node.unit_result_report_cell_" .. index], UNIT_RESULT_RERPORT_CELL)
|
self.unitResultReportCells[index] = CellManager:addCellComp(uiMap["battle_result_ui.unit_node.unit_result_report_cell_" .. index], UNIT_RESULT_RERPORT_CELL)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
-- 奖励节点
|
||||||
|
self.rewardNode = uiMap["battle_result_ui.reward_node"]
|
||||||
|
self.rewardTxTitle = uiMap["battle_result_ui.reward_node.reward_title"]
|
||||||
|
self.rewardScrollRect = uiMap["battle_result_ui.reward_node.scroll_rect"]
|
||||||
|
self.rewardScrollRectComp = self.rewardScrollRect:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE)
|
||||||
|
-- 金猪存钱罐
|
||||||
|
self.goldPigNode = uiMap["battle_result_ui.gold_pig"]
|
||||||
|
self.goldPigTxGem = uiMap["battle_result_ui.gold_pig.gem_bg.gem_tx"]
|
||||||
|
self.goldPigSlider = uiMap["battle_result_ui.gold_pig.slider_bg.slider"]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_SLIDER)
|
||||||
|
self.goldPigTxSlider = uiMap["battle_result_ui.gold_pig.slider_bg.text"]
|
||||||
|
self.goldPigImgGem = uiMap["battle_result_ui.gold_pig.gem_bg.gem_img"]
|
||||||
|
self.goldPigSpine = uiMap["battle_result_ui.gold_pig.spine_pig"]
|
||||||
|
self.goldPigGem = uiMap["battle_result_ui.gold_pig.gem_bg"]
|
||||||
|
self.canvasGroupPigGem = self.goldPigGem:getComponent(GConst.TYPEOF_UNITY_CLASS.CANVAS_GROUP)
|
||||||
|
-- 竞技场
|
||||||
|
self.arenaNode = uiMap["battle_result_ui.arena_node"]
|
||||||
|
self.arenaSpineGrading = uiMap["battle_result_ui.arena_node.spine_grading"]
|
||||||
|
self.arenaTxGrading = uiMap["battle_result_ui.arena_node.tx_grading"]
|
||||||
|
self.arenaTxScore = uiMap["battle_result_ui.arena_node.tx_score"]
|
||||||
|
self.arenaImgProp = uiMap["battle_result_ui.arena_node.prog.img_prog"]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_SLIDER)
|
||||||
|
self.arenaTxProg = uiMap["battle_result_ui.arena_node.prog.tx_prog"]
|
||||||
|
-- 竞技场广告宝箱
|
||||||
|
self.arenaBoxNode = uiMap["battle_result_ui.arena_box_node"]
|
||||||
|
|
||||||
|
self.victoryMask:addClickListener(function()
|
||||||
|
self:onClickMask()
|
||||||
|
end)
|
||||||
|
self.defeatMask:addClickListener(function()
|
||||||
|
self:onClickMask()
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
function BattleResultUI:onClickMask()
|
||||||
|
if self.isTryShowGoldPig then
|
||||||
|
ModuleManager.BattleManager:endBattleAndExit()
|
||||||
|
else
|
||||||
|
if not self:tryShowGoldPig() then
|
||||||
|
ModuleManager.BattleManager:endBattleAndExit()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function BattleResultUI:onRefresh()
|
||||||
|
if self.isWin then
|
||||||
|
self:refreshVictoryNode()
|
||||||
|
AudioManager:playEffect(AudioManager.EFFECT_ID.BATTLE_VICTORY)
|
||||||
|
else
|
||||||
|
self:refreshDefeatNode()
|
||||||
|
AudioManager:playEffect(AudioManager.EFFECT_ID.BATTLE_DEFEAT)
|
||||||
|
end
|
||||||
|
self:refreshRewards()
|
||||||
|
self:refreshUnitInfo()
|
||||||
|
self:refreshArenaNode()
|
||||||
|
end
|
||||||
|
|
||||||
|
function BattleResultUI:refreshVictoryNode()
|
||||||
|
self.victoryNode:setVisible(true)
|
||||||
|
self.unitImgReportV:setVisible(true)
|
||||||
|
self.defeatNode:setVisible(false)
|
||||||
|
self.unitImgReportD:setVisible(false)
|
||||||
|
|
||||||
|
self.victoryTxTitle:setText(I18N:getGlobalText(I18N.GlobalConst.BATTLE_DESC_5))
|
||||||
|
self.victorySpine:playAnimComplete("born", false, true, function()
|
||||||
|
self.victorySpine:playAnim("idle", true, true)
|
||||||
|
end)
|
||||||
|
|
||||||
|
if self.battleType == GConst.BattleConst.BATTLE_TYPE.ARENA then
|
||||||
|
self:showNodeAnim(self.victoryUnitNode, self.arenaNode)
|
||||||
|
else
|
||||||
|
self:showNodeAnim(self.victoryUnitNode, self.unitNode)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function BattleResultUI:refreshDefeatNode()
|
||||||
|
self.victoryNode:setVisible(false)
|
||||||
|
self.unitImgReportV:setVisible(false)
|
||||||
|
self.defeatNode:setVisible(true)
|
||||||
|
self.unitImgReportD:setVisible(true)
|
||||||
|
|
||||||
|
self.defeatTxTitle:setText(I18N:getGlobalText(I18N.GlobalConst.BATTLE_DESC_6))
|
||||||
|
self.defeatSpine:playAnimComplete("born", false, true, function()
|
||||||
|
self.defeatSpine:playAnim("idle", true, true)
|
||||||
|
end)
|
||||||
|
|
||||||
|
if self.battleType == GConst.BattleConst.BATTLE_TYPE.ARENA then
|
||||||
|
self:showNodeAnim(self.defeatUnitNode, self.arenaNode)
|
||||||
|
else
|
||||||
|
self:showNodeAnim(self.defeatUnitNode, self.unitNode)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 播放节点动画
|
||||||
|
function BattleResultUI:showNodeAnim(parent, node)
|
||||||
|
if not parent then
|
||||||
|
node:setVisible(false)
|
||||||
|
return
|
||||||
|
else
|
||||||
|
node:setVisible(true)
|
||||||
|
end
|
||||||
|
node:setParent(parent, false)
|
||||||
|
node:setAnchoredPosition(0, 0)
|
||||||
|
local canvasNode = parent:getComponent(GConst.TYPEOF_UNITY_CLASS.CANVAS_GROUP)
|
||||||
|
|
||||||
|
self.animNode = self.root:createBindTweenSequence()
|
||||||
|
self.animNode:Insert(0, canvasNode:DOFade(0, 0))
|
||||||
|
self.animNode:Insert(0.1, canvasNode:DOFade(1, 0))
|
||||||
|
self.animNode:Insert(0, parent:getTransform():DOScale(0, 0))
|
||||||
|
self.animNode:Insert(0.1, parent:getTransform():DOScale(0.35, 0))
|
||||||
|
self.animNode:Insert(0.13, parent:getTransform():DOScale(1.1, 0.16))
|
||||||
|
self.animNode:Insert(0.26, parent:getTransform():DOScale(1, 0.14))
|
||||||
|
self.animNode:OnComplete(function()
|
||||||
|
self.animNode = nil
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
function BattleResultUI:refreshArenaNode()
|
||||||
|
if self.battleType ~= GConst.BattleConst.BATTLE_TYPE.ARENA then
|
||||||
|
self.arenaNode:setVisible(false)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
self.arenaNode:setVisible(true)
|
||||||
|
local totalScore = DataManager.ArenaData:getScore()
|
||||||
|
local lastScore = totalScore - self.incrScore
|
||||||
|
local curId = DataManager.ArenaData:getGradingId()
|
||||||
|
local lastId = DataManager.ArenaData:getGradingIdFromScore(lastScore)
|
||||||
|
|
||||||
|
self.arenaTxGrading:setText(DataManager.ArenaData:getGradingName(lastId))
|
||||||
|
if self.arenaSequence then
|
||||||
|
self.arenaSequence:Kill()
|
||||||
|
end
|
||||||
|
self.arenaSequence = DOTweenManager:createSeqWithIntId()
|
||||||
|
local tween = DOTweenManager:createDOTweenTo(
|
||||||
|
function()
|
||||||
|
return lastScore
|
||||||
|
end,
|
||||||
|
function(value)
|
||||||
|
local maxScore = DataManager.ArenaData:getGradingScoreTotal(value)
|
||||||
|
local curScore = DataManager.ArenaData:getGradingScore(value)
|
||||||
|
self.arenaImgProp.value = curScore/maxScore
|
||||||
|
self.arenaTxProg:setText(math.floor(curScore).."/"..maxScore)
|
||||||
|
end,
|
||||||
|
totalScore, 1.5)
|
||||||
|
self.arenaSequence:Append(tween)
|
||||||
|
self.arenaSequence:AppendCallback(function()
|
||||||
|
self.arenaTxGrading:setText(DataManager.ArenaData:getGradingName(curId))
|
||||||
|
self.arenaSequence = nil
|
||||||
|
end)
|
||||||
|
|
||||||
|
if self.incrScore > 0 then
|
||||||
|
self.arenaTxScore:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_27, "+"..self.incrScore))
|
||||||
|
else
|
||||||
|
self.arenaTxScore:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_27, self.incrScore))
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 检查ad宝箱显示
|
||||||
|
self.arenaBoxNode:setVisible(false)
|
||||||
|
if self.isWin then
|
||||||
|
if (self.arenaTotalCount % GFunc.getConstIntValue("arena_win_adbox")) == 0 then
|
||||||
|
self.arenaBoxNode:setVisible(true)
|
||||||
|
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if (self.arenaTotalCount % GFunc.getConstIntValue("arena_lose_adbox")) == 0 then
|
||||||
|
self.arenaBoxNode:setVisible(true)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function BattleResultUI:refreshRewards()
|
||||||
|
self.animRewards = {}
|
||||||
|
self.rewardNode:setVisible(true)
|
||||||
|
self.rewardTxTitle:setText(I18N:getGlobalText(I18N.GlobalConst.REWARD_DESC))
|
||||||
|
self.continue:setText(I18N:getGlobalText(I18N.GlobalConst.CONTINUE_DESC))
|
||||||
|
self.rewardScrollRectComp:addInitCallback(function()
|
||||||
|
return GConst.TYPEOF_LUA_CLASS.REWARD_CELL
|
||||||
|
end)
|
||||||
|
self.rewardScrollRectComp:addRefreshCallback(function(index, cell)
|
||||||
|
cell:refresh(self.rewards[index])
|
||||||
|
if index <= MAX_SCROLL_SHOW_COUNT and self.animRewards[index] == nil then
|
||||||
|
self.animRewards[index] = self:showRewardAppearAnim(index, cell)
|
||||||
|
end
|
||||||
|
cell:showRightUpIcon(index <= self.mysteryBoxIdx, GConst.ATLAS_PATH.COMMON, "common_chest_1")
|
||||||
|
end)
|
||||||
|
self.rewardScrollRectComp:setFadeArgs(0.05, 0.3)
|
||||||
|
self.rewardScrollRectComp:clearCells()
|
||||||
|
local rewardCount = #self.rewards
|
||||||
|
if rewardCount > MAX_SCROLL_SHOW_COUNT then
|
||||||
|
local comp = self.rewardScrollRect:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_SCROLL_RECT)
|
||||||
|
comp.movementType = CS.UnityEngine.UI.ScrollRect.MovementType.Elastic
|
||||||
|
self.rewardScrollRectComp:setPerLineNum(5)
|
||||||
|
self.rewardScrollRect:setSizeDeltaX(560)
|
||||||
|
else
|
||||||
|
local comp = self.rewardScrollRect:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_SCROLL_RECT)
|
||||||
|
comp.movementType = CS.UnityEngine.UI.ScrollRect.MovementType.Clamped
|
||||||
|
if rewardCount >= 5 then
|
||||||
|
self.rewardScrollRectComp:setPerLineNum(5)
|
||||||
|
self.rewardScrollRect:setSizeDeltaX(560)
|
||||||
|
elseif rewardCount <= 0 then
|
||||||
|
self.rewardScrollRectComp:setPerLineNum(1)
|
||||||
|
self.rewardScrollRect:setSizeDeltaX(560)
|
||||||
|
else
|
||||||
|
self.rewardScrollRectComp:setPerLineNum(rewardCount)
|
||||||
|
self.rewardScrollRect:setSizeDeltaX(112*rewardCount)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
self.rewardScrollRectComp:refillCells(rewardCount)
|
||||||
|
end
|
||||||
|
|
||||||
|
function BattleResultUI:refreshUnitInfo()
|
||||||
|
if not self.atkReport then
|
||||||
|
self.unitNode:setVisible(false)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
self.unitNode:setVisible(true)
|
||||||
for index, cell in ipairs(self.unitResultReportCells) do
|
for index, cell in ipairs(self.unitResultReportCells) do
|
||||||
local info = self.combatReport.atkReport[index]
|
local info = self.atkReport[index]
|
||||||
cell:getBaseObject():setVisible(info ~= nil)
|
cell:getBaseObject():setVisible(info ~= nil)
|
||||||
if info then
|
if info then
|
||||||
cell:refresh(info, self.totalDmg)
|
cell:refresh(info, self.totalDmg)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
function BattleResultUI:initGoldPig()
|
self.unitTxDesc2:setText(self.wave)
|
||||||
local uiMap = self.root:genAllChildren()
|
self.unitTxDesc3:setText(I18N:getGlobalText(I18N.GlobalConst.BATTLE_DESC_7, GFunc.num2Str(self.totalDmg)))
|
||||||
self.goldPigRoot = uiMap["battle_result_ui.gold_pig"]
|
|
||||||
self.goldPigRoot:setVisible(false)
|
local iconName = "common_dec_3"
|
||||||
self.goldPigGem = uiMap["battle_result_ui.gold_pig.gem_bg"]
|
if self.battleType == GConst.BattleConst.BATTLE_TYPE.DUNGEON_GOLD then
|
||||||
self.goldPigGemTx = uiMap["battle_result_ui.gold_pig.gem_bg.gem_tx"]
|
iconName = "common_dec_15"
|
||||||
self.goldPigGemImg = uiMap["battle_result_ui.gold_pig.gem_bg.gem_img"]
|
local round = self.remainRound or 0
|
||||||
self.goldPigGemSliderComp = uiMap["battle_result_ui.gold_pig.slider_bg.slider"]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_SLIDER)
|
self.unitTxDesc2:setText(round)
|
||||||
self.goldPigGemSliderTx = uiMap["battle_result_ui.gold_pig.slider_bg.text"]
|
self.unitTxDesc1:setText(I18N:getGlobalText(I18N.GlobalConst.ROUND_LEFT))
|
||||||
self.goldPigSpine = uiMap["battle_result_ui.gold_pig.spine_pig"]
|
else
|
||||||
self.canvasGroupPigGem = self.goldPigGem:getComponent(GConst.TYPEOF_UNITY_CLASS.CANVAS_GROUP)
|
self.unitTxDesc1:setText(GConst.EMPTY_STRING)
|
||||||
|
end
|
||||||
|
self.unitImgBattleIcon:setSprite(GConst.ATLAS_PATH.COMMON, iconName)
|
||||||
|
|
||||||
|
GFunc.centerImgAndTx(self.unitImgBattleIcon, self.unitTxDesc2, 7)
|
||||||
end
|
end
|
||||||
|
|
||||||
function BattleResultUI:tryShowGoldPig()
|
function BattleResultUI:tryShowGoldPig()
|
||||||
@ -270,7 +348,7 @@ function BattleResultUI:tryShowGoldPig()
|
|||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
self.rewardNode:setVisible(false)
|
self.rewardNode:setVisible(false)
|
||||||
self.goldPigRoot:setVisible(true)
|
self.goldPigNode:setVisible(true)
|
||||||
local lastGemCount = DataManager.GoldPigData:getLastCount()
|
local lastGemCount = DataManager.GoldPigData:getLastCount()
|
||||||
local currGemCount = DataManager.GoldPigData:getCount()
|
local currGemCount = DataManager.GoldPigData:getCount()
|
||||||
local maxGemCount = DataManager.GoldPigData:getMaxCount()
|
local maxGemCount = DataManager.GoldPigData:getMaxCount()
|
||||||
@ -290,24 +368,24 @@ function BattleResultUI:tryShowGoldPig()
|
|||||||
self.goldPigSpine:playAnim("idle2", true, false)
|
self.goldPigSpine:playAnim("idle2", true, false)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
self.goldPigGemTx:setText("+" .. currGemCount - lastGemCount)
|
self.goldPigTxGem:setText("+" .. currGemCount - lastGemCount)
|
||||||
GFunc.centerImgAndTx(self.goldPigGemImg, self.goldPigGemTx, 0, -4)
|
GFunc.centerImgAndTx(self.goldPigImgGem, self.goldPigTxGem, 0, -4)
|
||||||
if currGemCount > lastGemCount then
|
if currGemCount > lastGemCount then
|
||||||
self.sliderSequence = DOTweenManager:createSeqWithIntId()
|
self.sliderSequence = DOTweenManager:createSeqWithIntId()
|
||||||
local curProgress = 0
|
local curProgress = 0
|
||||||
local remain = currGemCount - lastGemCount
|
local remain = currGemCount - lastGemCount
|
||||||
local startPercent = lastGemCount / maxGemCount
|
local startPercent = lastGemCount / maxGemCount
|
||||||
local remainPercent = currGemCount / maxGemCount - startPercent
|
local remainPercent = currGemCount / maxGemCount - startPercent
|
||||||
self.goldPigGemSliderComp.value = startPercent
|
self.goldPigSlider.value = startPercent
|
||||||
self.goldPigGemSliderTx:setText(lastGemCount .. "/" .. currGemCount)
|
self.goldPigTxSlider:setText(lastGemCount .. "/" .. currGemCount)
|
||||||
local tween = DOTweenManager:createDOTweenTo(
|
local tween = DOTweenManager:createDOTweenTo(
|
||||||
function()
|
function()
|
||||||
return curProgress
|
return curProgress
|
||||||
end,
|
end,
|
||||||
function(value)
|
function(value)
|
||||||
curProgress = value
|
curProgress = value
|
||||||
self.goldPigGemSliderComp.value = startPercent + remainPercent*curProgress
|
self.goldPigSlider.value = startPercent + remainPercent*curProgress
|
||||||
self.goldPigGemSliderTx:setText(lastGemCount + math.floor(remain*curProgress) .. "/" .. maxGemCount)
|
self.goldPigTxSlider:setText(lastGemCount + math.floor(remain*curProgress) .. "/" .. maxGemCount)
|
||||||
end,
|
end,
|
||||||
1, 1)
|
1, 1)
|
||||||
self.sliderSequence:Append(tween)
|
self.sliderSequence:Append(tween)
|
||||||
@ -315,8 +393,8 @@ function BattleResultUI:tryShowGoldPig()
|
|||||||
self.sliderSequence = nil
|
self.sliderSequence = nil
|
||||||
end)
|
end)
|
||||||
else -- 相等就不跑动画了
|
else -- 相等就不跑动画了
|
||||||
self.goldPigGemSliderComp.value = currGemCount / maxGemCount
|
self.goldPigSlider.value = currGemCount / maxGemCount
|
||||||
self.goldPigGemSliderTx:setText(currGemCount .. "/" .. maxGemCount)
|
self.goldPigTxSlider:setText(currGemCount .. "/" .. maxGemCount)
|
||||||
end
|
end
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|||||||
@ -61,7 +61,7 @@ function ResourceCell:show(itemId, hideAddImg)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function ResourceCell:updateTime()
|
function ResourceCell:updateTime()
|
||||||
if self.itemId then
|
if self.itemId and DataManager.BagData.ItemData:isTimingRecovery(self.itemId) then
|
||||||
local curTime = DataManager.BagData.ItemData:getTimelyItemRecoveryTime(self.itemId)
|
local curTime = DataManager.BagData.ItemData:getTimelyItemRecoveryTime(self.itemId)
|
||||||
if curTime <= 0 then
|
if curTime <= 0 then
|
||||||
self.timeTx:setText(GConst.EMPTY_STRING)
|
self.timeTx:setText(GConst.EMPTY_STRING)
|
||||||
@ -93,6 +93,8 @@ function ResourceCell:refreshTextRightNow()
|
|||||||
self.numTx:setText("0")
|
self.numTx:setText("0")
|
||||||
elseif obj:getId() == GConst.ItemConst.ITEM_ID_VIT then
|
elseif obj:getId() == GConst.ItemConst.ITEM_ID_VIT then
|
||||||
self.numTx:setText(GFunc.num2Str(count) .. "/" .. DataManager.PlayerData:getMaxVit())
|
self.numTx:setText(GFunc.num2Str(count) .. "/" .. DataManager.PlayerData:getMaxVit())
|
||||||
|
elseif obj:getId() == GConst.ItemConst.ITEM_ID_ARENA_TICKET then
|
||||||
|
self.numTx:setText(GFunc.num2Str(count) .. "/" .. DataManager.PlayerData:getMaxArenaTicket())
|
||||||
else
|
else
|
||||||
self.numTx:setText(GFunc.num2Str(count))
|
self.numTx:setText(GFunc.num2Str(count))
|
||||||
end
|
end
|
||||||
|
|||||||
@ -102,10 +102,10 @@ end
|
|||||||
|
|
||||||
function DungeonBoardCell:refreshCountdown(txCountdown)
|
function DungeonBoardCell:refreshCountdown(txCountdown)
|
||||||
if self.countdownSid then
|
if self.countdownSid then
|
||||||
ModuleManager.DungeonManager:unscheduleGlobal(self.countdownSid)
|
self:getBaseObject():unscheduleGlobal(self.countdownSid)
|
||||||
self.countdownSid = nil
|
self.countdownSid = nil
|
||||||
end
|
end
|
||||||
self.countdownSid = ModuleManager.DungeonManager:scheduleGlobal(function()
|
self.countdownSid = self:getBaseObject():scheduleGlobal(function()
|
||||||
self:updateTime(txCountdown)
|
self:updateTime(txCountdown)
|
||||||
end, 1)
|
end, 1)
|
||||||
self:updateTime(txCountdown)
|
self:updateTime(txCountdown)
|
||||||
|
|||||||
@ -51,9 +51,14 @@ function ArenaComp:init()
|
|||||||
self.txRank:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_5))
|
self.txRank:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_5))
|
||||||
|
|
||||||
self.btnHelp:addClickListener(function()
|
self.btnHelp:addClickListener(function()
|
||||||
ModuleManager.TipsManager:showDescTips(DataManager.DungeonData:getRule(self.moduleKey), self.btnHelp)
|
ModuleManager.TipsManager:showHelpTips({desc = I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_HELP)})
|
||||||
end)
|
end)
|
||||||
self.btnRecord:addClickListener(function()
|
self.btnRecord:addClickListener(function()
|
||||||
|
-- 赛季结算
|
||||||
|
if DataManager.ArenaData:isInSeasonSettlement() then
|
||||||
|
GFunc.showToast(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_29))
|
||||||
|
return
|
||||||
|
end
|
||||||
UIManager:showUI("app/ui/arena/arena_recent_battle_ui")
|
UIManager:showUI("app/ui/arena/arena_recent_battle_ui")
|
||||||
end)
|
end)
|
||||||
self.btnFormation:addClickListener(function()
|
self.btnFormation:addClickListener(function()
|
||||||
@ -119,32 +124,51 @@ function ArenaComp:refreshShow()
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local maxScore = DataManager.ArenaData:getGradingScoreTotal()
|
local totalScore = DataManager.ArenaData:getScore()
|
||||||
local curScore = DataManager.ArenaData:getGradingScore()
|
local maxScore = DataManager.ArenaData:getGradingScoreTotal(totalScore)
|
||||||
|
local curScore = DataManager.ArenaData:getGradingScore(totalScore)
|
||||||
self.txSeason:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_3, DataManager.ArenaData:getSeason()))
|
self.txSeason:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_3, DataManager.ArenaData:getSeason()))
|
||||||
self.txGarding:setText(DataManager.ArenaData:getGradingName(DataManager.ArenaData:getGradingId()))
|
self.txGarding:setText(DataManager.ArenaData:getGradingName(DataManager.ArenaData:getGradingId()))
|
||||||
self.txProg:setText(curScore.."/"..maxScore)
|
self.txProg:setText(curScore.."/"..maxScore)
|
||||||
self.imgProg:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_SLIDER).value = curScore/maxScore
|
self.imgProg:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_SLIDER).value = curScore/maxScore
|
||||||
|
|
||||||
self.seasonChangeCD = DataManager.ArenaData:getRemainSeasonTime()
|
|
||||||
if self.seasonChangeSid then
|
|
||||||
ModuleManager.ArenaManager:unscheduleGlobal(self.seasonChangeSid)
|
|
||||||
end
|
|
||||||
self.seasonChangeSid = ModuleManager.ArenaManager:scheduleGlobal(function()
|
|
||||||
self:refreshCountdown()
|
|
||||||
end, 1)
|
|
||||||
|
|
||||||
self:refreshBounty() -- 刷新战令
|
self:refreshBounty() -- 刷新战令
|
||||||
|
self:updateTimer()
|
||||||
end
|
end
|
||||||
|
|
||||||
function ArenaComp:refreshCountdown()
|
function ArenaComp:updateTimer()
|
||||||
self.seasonChangeCD = self.seasonChangeCD - 1
|
if not DataManager.ArenaData:isOpen() then
|
||||||
if self.seasonChangeCD < 0 then
|
|
||||||
ModuleManager.ArenaManager:onSeasonChanged()
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
self.txCountdown:setText(Time:formatNumTimeStr(self.seasonChangeCD))
|
if self.seasonSettlementSid then
|
||||||
|
self:getBaseObject():unscheduleGlobal(self.seasonSettlementSid)
|
||||||
|
self.seasonSettlementSid = nil
|
||||||
|
end
|
||||||
|
if self.seasonEndSid then
|
||||||
|
self:getBaseObject():unscheduleGlobal(self.seasonEndSid)
|
||||||
|
self.seasonEndSid = nil
|
||||||
|
end
|
||||||
|
|
||||||
|
if DataManager.ArenaData:isInSeasonSettlement() then
|
||||||
|
-- 结算计时器
|
||||||
|
self.seasonSettlementSid = self:getBaseObject():performWithDelayGlobal(function()
|
||||||
|
ModuleManager.ArenaManager:onSeasonSettlement()
|
||||||
|
end, DataManager.ArenaData:getRemainSeasonTime())
|
||||||
|
else
|
||||||
|
-- 结束计时器
|
||||||
|
self.seasonEndSid = self:getBaseObject():performWithDelayGlobal(function()
|
||||||
|
ModuleManager.ArenaManager:onSeasonChanged()
|
||||||
|
end, DataManager.ArenaData:getRemainSeasonSettlementTime())
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 显示倒计时
|
||||||
|
if self.seasonChangeSid then
|
||||||
|
self:getBaseObject():unscheduleGlobal(self.seasonChangeSid)
|
||||||
|
end
|
||||||
|
self.seasonChangeSid = self:getBaseObject():scheduleGlobal(function()
|
||||||
|
self.txCountdown:setText(Time:formatNumTimeStr(DataManager.ArenaData:getRemainSeasonTime()))
|
||||||
|
end, 1)
|
||||||
end
|
end
|
||||||
|
|
||||||
return ArenaComp
|
return ArenaComp
|
||||||
@ -136,7 +136,7 @@ end
|
|||||||
function DailyChallengeComp:refreshCountdown()
|
function DailyChallengeComp:refreshCountdown()
|
||||||
self.countdownTx = self.uiMap["daily_challenge_comp.countdown.time_tx"]
|
self.countdownTx = self.uiMap["daily_challenge_comp.countdown.time_tx"]
|
||||||
if not self.countdownSid then
|
if not self.countdownSid then
|
||||||
self.countdownSid = ModuleManager.DailyChallengeManager:scheduleGlobal(function()
|
self.countdownSid = self:getBaseObject():scheduleGlobal(function()
|
||||||
self:updateTime()
|
self:updateTime()
|
||||||
end, 1)
|
end, 1)
|
||||||
end
|
end
|
||||||
|
|||||||
@ -41,7 +41,7 @@ function DungeonComp:refreshShow()
|
|||||||
|
|
||||||
-- 跨天定时器
|
-- 跨天定时器
|
||||||
if self.countdownSid then
|
if self.countdownSid then
|
||||||
SchedulerManager:unscheduleGlobal(self.countdownSid)
|
self:getBaseObject():unscheduleGlobal(self.countdownSid)
|
||||||
self.countdownSid = nil
|
self.countdownSid = nil
|
||||||
end
|
end
|
||||||
self.countdownSid = self:getBaseObject():scheduleGlobal(function()
|
self.countdownSid = self:getBaseObject():scheduleGlobal(function()
|
||||||
|
|||||||
@ -40,8 +40,6 @@ function MainComp:refreshModule(selectModule)
|
|||||||
|
|
||||||
-- 左侧活动入口
|
-- 左侧活动入口
|
||||||
if not self.leftEntrance then
|
if not self.leftEntrance then
|
||||||
self.uiMap["main_comp.left"]:setAnchoredPositionY(self.btnPosY)
|
|
||||||
|
|
||||||
self.leftEntrance = {}
|
self.leftEntrance = {}
|
||||||
self.leftEntrance[GConst.MainCityConst.MAIN_MODULE.CHAPTER] = self.uiMap["main_comp.left.chapter"]
|
self.leftEntrance[GConst.MainCityConst.MAIN_MODULE.CHAPTER] = self.uiMap["main_comp.left.chapter"]
|
||||||
self.leftEntrance[GConst.MainCityConst.MAIN_MODULE.ARENA] = self.uiMap["main_comp.left.arena"]
|
self.leftEntrance[GConst.MainCityConst.MAIN_MODULE.ARENA] = self.uiMap["main_comp.left.arena"]
|
||||||
@ -50,8 +48,6 @@ function MainComp:refreshModule(selectModule)
|
|||||||
|
|
||||||
-- 右侧活动入口
|
-- 右侧活动入口
|
||||||
if not self.rightEntrance then
|
if not self.rightEntrance then
|
||||||
self.uiMap["main_comp.right"]:setAnchoredPositionY(self.btnPosY)
|
|
||||||
|
|
||||||
self.rightEntrance = {}
|
self.rightEntrance = {}
|
||||||
self.rightEntrance[GConst.MainCityConst.MAIN_MODULE.CHAPTER] = self.uiMap["main_comp.right.chapter"]
|
self.rightEntrance[GConst.MainCityConst.MAIN_MODULE.CHAPTER] = self.uiMap["main_comp.right.chapter"]
|
||||||
self.rightEntrance[GConst.MainCityConst.MAIN_MODULE.DUNGEON] = self.uiMap["main_comp.right.dungeon"]
|
self.rightEntrance[GConst.MainCityConst.MAIN_MODULE.DUNGEON] = self.uiMap["main_comp.right.dungeon"]
|
||||||
@ -163,10 +159,12 @@ function MainComp:refreshLeftBtn()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if showCount >= 2 then
|
if showCount >= 2 then
|
||||||
|
self.uiMap["main_comp.left"]:setAnchoredPositionY(self.btnPosY - 20)
|
||||||
table.foreach(self.leftEntrance, function(idx, entrance)
|
table.foreach(self.leftEntrance, function(idx, entrance)
|
||||||
entrance:setLocalScale(0.8,0.8)
|
entrance:setLocalScale(0.8,0.8)
|
||||||
end)
|
end)
|
||||||
else
|
else
|
||||||
|
self.uiMap["main_comp.left"]:setAnchoredPositionY(self.btnPosY)
|
||||||
table.foreach(self.leftEntrance, function(idx, entrance)
|
table.foreach(self.leftEntrance, function(idx, entrance)
|
||||||
entrance:setLocalScale(1,1)
|
entrance:setLocalScale(1,1)
|
||||||
end)
|
end)
|
||||||
@ -190,10 +188,12 @@ function MainComp:refreshRightBtn()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if showCount >= 2 then
|
if showCount >= 2 then
|
||||||
|
self.uiMap["main_comp.right"]:setAnchoredPositionY(self.btnPosY - 20)
|
||||||
table.foreach(self.rightEntrance, function(idx, entrance)
|
table.foreach(self.rightEntrance, function(idx, entrance)
|
||||||
entrance:setLocalScale(0.8,0.8)
|
entrance:setLocalScale(0.8,0.8)
|
||||||
end)
|
end)
|
||||||
else
|
else
|
||||||
|
self.uiMap["main_comp.right"]:setAnchoredPositionY(self.btnPosY)
|
||||||
table.foreach(self.rightEntrance, function(idx, entrance)
|
table.foreach(self.rightEntrance, function(idx, entrance)
|
||||||
entrance:setLocalScale(1,1)
|
entrance:setLocalScale(1,1)
|
||||||
end)
|
end)
|
||||||
@ -323,6 +323,11 @@ function MainComp:refreshDungeon()
|
|||||||
self.dungeonComp:refreshShow()
|
self.dungeonComp:refreshShow()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function MainComp:refreshArena()
|
||||||
|
self:refreshBtns()
|
||||||
|
self.arenaComp:refreshShow()
|
||||||
|
end
|
||||||
|
|
||||||
function MainComp:refreshStageFormaion()
|
function MainComp:refreshStageFormaion()
|
||||||
self.heroCells:refresh()
|
self.heroCells:refresh()
|
||||||
self:refreshHeroFormationVisible()
|
self:refreshHeroFormationVisible()
|
||||||
|
|||||||
@ -63,9 +63,18 @@ function ArenaData:isOpen()
|
|||||||
if not ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.ARENA, true) then
|
if not ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.ARENA, true) then
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
if self.cfgRank == nil or self.cfgTime == nil then
|
||||||
|
GFunc.showToast(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_30))
|
||||||
|
return false
|
||||||
|
end
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- 是否在赛季结算中
|
||||||
|
function ArenaData:isInSeasonSettlement()
|
||||||
|
return self:getRemainSeasonTime() > 0 and self:getRemainSeasonSettlementTime() < 0
|
||||||
|
end
|
||||||
|
|
||||||
-- 获取当前为第几赛季
|
-- 获取当前为第几赛季
|
||||||
function ArenaData:getSeason()
|
function ArenaData:getSeason()
|
||||||
return self.season
|
return self.season
|
||||||
@ -122,6 +131,36 @@ function ArenaData:getGradingIdFromScore(score, isLastSeason)
|
|||||||
return seasonId
|
return seasonId
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- 获取所在段位的积分 cur - min
|
||||||
|
function ArenaData:getGradingScore(score)
|
||||||
|
return score - self:getGradingMinScore(self.score)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 获取所在段位的最低积分
|
||||||
|
function ArenaData:getGradingMinScore(score)
|
||||||
|
local id = self:getGradingIdFromScore(score)
|
||||||
|
return self.cfgRank[id].score
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 获取所在段位的最高积分 full
|
||||||
|
function ArenaData:getGradingMaxScore(score)
|
||||||
|
local gradingId = self:getGradingIdFromScore(score)
|
||||||
|
local isNext = false
|
||||||
|
for id, data in pairs(self.cfgRank) do
|
||||||
|
if isNext then
|
||||||
|
return data.score
|
||||||
|
end
|
||||||
|
if id == gradingId then
|
||||||
|
isNext = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 获取所在段位的总积分
|
||||||
|
function ArenaData:getGradingScoreTotal(score)
|
||||||
|
return self:getGradingMaxScore(score) - self:getGradingMinScore(score)
|
||||||
|
end
|
||||||
|
|
||||||
-- 获取段位图标名
|
-- 获取段位图标名
|
||||||
function ArenaData:getGradingIconName(id)
|
function ArenaData:getGradingIconName(id)
|
||||||
local cfg = ConfigManager:getConfig("arena_rank")
|
local cfg = ConfigManager:getConfig("arena_rank")
|
||||||
@ -177,6 +216,11 @@ function ArenaData:getFightCostNum()
|
|||||||
return GFunc.getRewardNum(GFunc.getConstReward("arena_fight_cost"))
|
return GFunc.getRewardNum(GFunc.getConstReward("arena_fight_cost"))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- 入场券是否足够
|
||||||
|
function ArenaData:isEnoughTicket()
|
||||||
|
return self:getFightCostNum() <= DataManager.BagData.ItemData:getItemNumById(GConst.ItemConst.ITEM_ID_ARENA_TICKET)
|
||||||
|
end
|
||||||
|
|
||||||
-- 排行榜 ----------------------------------------------------------------------
|
-- 排行榜 ----------------------------------------------------------------------
|
||||||
|
|
||||||
-- 排行榜玩家总数
|
-- 排行榜玩家总数
|
||||||
@ -248,34 +292,6 @@ function ArenaData:getGradingId()
|
|||||||
return self.curGradingId
|
return self.curGradingId
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 获取所在段位的积分 cur - min
|
|
||||||
function ArenaData:getGradingScore()
|
|
||||||
return self.score - self:getGradingMinScore(self.score)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- 获取所在段位的最低积分
|
|
||||||
function ArenaData:getGradingMinScore()
|
|
||||||
return self.cfgRank[self.curGradingId].score
|
|
||||||
end
|
|
||||||
|
|
||||||
-- 获取所在段位的最高积分 full
|
|
||||||
function ArenaData:getGradingMaxScore()
|
|
||||||
local isNext = false
|
|
||||||
for id, data in pairs(self.cfgRank) do
|
|
||||||
if isNext then
|
|
||||||
return data.score
|
|
||||||
end
|
|
||||||
if id == self.curGradingId then
|
|
||||||
isNext = true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- 获取所在段位的总积分
|
|
||||||
function ArenaData:getGradingScoreTotal()
|
|
||||||
return self:getGradingMaxScore() - self:getGradingMinScore()
|
|
||||||
end
|
|
||||||
|
|
||||||
-- 获取自己的排名
|
-- 获取自己的排名
|
||||||
function ArenaData:getRank()
|
function ArenaData:getRank()
|
||||||
return self.rank
|
return self.rank
|
||||||
@ -371,10 +387,13 @@ end
|
|||||||
-- 结算战斗数据
|
-- 结算战斗数据
|
||||||
function ArenaData:onBattleResultReceived(settlement)
|
function ArenaData:onBattleResultReceived(settlement)
|
||||||
-- 战斗记录改变
|
-- 战斗记录改变
|
||||||
|
if self.recentBattle == nil then
|
||||||
|
self.recentBattle = {}
|
||||||
|
end
|
||||||
table.remove(self.recentBattle, #self.recentBattle)
|
table.remove(self.recentBattle, #self.recentBattle)
|
||||||
table.insert(self.recentBattle, 1, settlement)
|
table.insert(self.recentBattle, 1, settlement)
|
||||||
-- 积分改变
|
-- 积分改变
|
||||||
self.score = self.score + settlement.score
|
self.score = self.score + settlement.incr_score
|
||||||
self.curGradingId = self:getGradingIdFromScore(self.score)
|
self.curGradingId = self:getGradingIdFromScore(self.score)
|
||||||
|
|
||||||
self:setDirty()
|
self:setDirty()
|
||||||
|
|||||||
@ -3,8 +3,8 @@ local ItemEntity = require "app/userdata/bag/item_entity"
|
|||||||
local ItemConst = require "app/module/item/item_const"
|
local ItemConst = require "app/module/item/item_const"
|
||||||
local ItemData = class("ItemData", BaseData)
|
local ItemData = class("ItemData", BaseData)
|
||||||
|
|
||||||
|
local RECOVERY_TYPE_TIME = 1
|
||||||
local RECOVERY_TYPE_DAILY = 2
|
local RECOVERY_TYPE_DAILY = 2
|
||||||
local SECONDS_PRE_DAY = 86400
|
|
||||||
|
|
||||||
local CACHE_ITEM = {
|
local CACHE_ITEM = {
|
||||||
id = 0,
|
id = 0,
|
||||||
@ -57,6 +57,7 @@ function ItemData:init(data)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
self.initDay = Time:getBeginningOfServerToday()
|
||||||
self.data.dirty = false
|
self.data.dirty = false
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -222,6 +223,15 @@ function ItemData:setDirty()
|
|||||||
self.data.dirty = not self.data.dirty
|
self.data.dirty = not self.data.dirty
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- 是否按时间恢复
|
||||||
|
function ItemData:isTimingRecovery(itemId)
|
||||||
|
local data = self.recoveryMap[itemId]
|
||||||
|
if not data then
|
||||||
|
return -1
|
||||||
|
end
|
||||||
|
return data.type == RECOVERY_TYPE_TIME
|
||||||
|
end
|
||||||
|
|
||||||
function ItemData:getTimelyItemRecoveryTime(itemId)
|
function ItemData:getTimelyItemRecoveryTime(itemId)
|
||||||
local data = self.recoveryMap[itemId]
|
local data = self.recoveryMap[itemId]
|
||||||
if not data then
|
if not data then
|
||||||
@ -234,8 +244,13 @@ function ItemData:getTimelyItemRecoveryTime(itemId)
|
|||||||
return -1
|
return -1
|
||||||
end
|
end
|
||||||
-- 计算时间
|
-- 计算时间
|
||||||
local remainTime = data.ts + data.time - Time:getServerTime()
|
if self:isTimingRecovery(itemId) then
|
||||||
return remainTime
|
local remainTime = data.ts + data.time - Time:getServerTime()
|
||||||
|
return remainTime
|
||||||
|
else
|
||||||
|
-- 无自动恢复时间
|
||||||
|
return -1
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 按时间回复的在此回复
|
-- 按时间回复的在此回复
|
||||||
@ -270,17 +285,15 @@ end
|
|||||||
|
|
||||||
-- 每日回复的在此回复
|
-- 每日回复的在此回复
|
||||||
function ItemData:recoveryDailyItem(data)
|
function ItemData:recoveryDailyItem(data)
|
||||||
local nowTime = Time:getServerTime()
|
if not self:isDayChange() then
|
||||||
if nowTime < data.ts then
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local itemId = data.id
|
local itemId = data.id
|
||||||
local currNum = self:getItemNumById(itemId)
|
local currNum = self:getItemNumById(itemId)
|
||||||
if currNum < data.limit then
|
if currNum < data.limit then
|
||||||
self:addItemNumById(itemId, data.limit - currNum, BIReport.ITEM_GET_TYPE.CROSS_DAY)
|
self:addItemNumById(itemId, data.limit - currNum, BIReport.ITEM_GET_TYPE.CROSS_DAY)
|
||||||
end
|
end
|
||||||
-- 计算下次回复的时间
|
|
||||||
data.ts = data.ts + SECONDS_PRE_DAY
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function ItemData:resetItemRecoveryTime(itemId)
|
function ItemData:resetItemRecoveryTime(itemId)
|
||||||
@ -311,6 +324,11 @@ function ItemData:updateCd()
|
|||||||
self:recoveryItem(v) -- 根据间隔时间增加
|
self:recoveryItem(v) -- 根据间隔时间增加
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
self.initDay = Time:getBeginningOfServerToday()
|
||||||
|
end
|
||||||
|
|
||||||
|
function ItemData:isDayChange()
|
||||||
|
return self.initDay ~= Time:getBeginningOfServerToday()
|
||||||
end
|
end
|
||||||
|
|
||||||
return ItemData
|
return ItemData
|
||||||
@ -42,6 +42,7 @@ end
|
|||||||
|
|
||||||
-- 设置数量
|
-- 设置数量
|
||||||
function ItemEntity:setNum(num)
|
function ItemEntity:setNum(num)
|
||||||
|
Logger.logHighlight("设置:"..num)
|
||||||
self.data.num = num
|
self.data.num = num
|
||||||
self:setDirty()
|
self:setDirty()
|
||||||
end
|
end
|
||||||
|
|||||||
@ -59,7 +59,7 @@ function HeroData:isExistHeroById(id)
|
|||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
return self.heroes[id] ~= nil
|
return ConfigManager:getConfig("hero")[id] ~= nil
|
||||||
end
|
end
|
||||||
|
|
||||||
function HeroData:addHero(heroStruct)
|
function HeroData:addHero(heroStruct)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user