源战役客户端
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 
 
 
 

301 rindas
7.6 KiB

CalculatorView = CalculatorView or BaseClass(BaseView)
function CalculatorView:__init()
self.base_file = "common"
self.layout_file = "CalculatorView"
self.layer_name = "Top"
self.destroy_imm = true
self.use_background = true
self.background_alpha = 0
self.close_mode = CloseMode.CloseDestroy
self.click_bg_toClose = true
self.append_to_ctl_queue = false
self.hide_maincancas = false
self.is_set_zdepth = true
self.mainVo = RoleManager.Instance.mainRoleInfo
self.key_list = {}
self.final_num = 0 --输入的数字
self.mult_num = 10 --倍数
self.call_back = nil
self.max_count = 0
self.localPos = Vector3(701, 347,0)
self.input_number_list = {}
self.load_callback = function()
self:LoadSuccess()
self:InitEvent()
end
self.open_callback = function()
self:SetWinPosition()
end
self.destroy_callback = function()
self:Remove()
end
end
--type 1 通用 2 兑换 3战力 4等级 5发红包
function CalculatorView:Open(max_count,call_back,type, min_price)
self.max_count = max_count
self.call_back = call_back
self.type = type or 1
self.min_price = min_price
BaseView.Open(self)
end
function CalculatorView:Close()
-- if self.call_back then
-- self.call_back(self.final_num, true)
-- end
if not self.click_sure_btn then
self:InputNumKey(self.final_num, true)
end
self.call_back = nil
self.max_count = 0
self.final_num = 0
self.localPos = nil
self.input_number_list = {}
BaseView.Close(self)
end
function CalculatorView:Remove()
self.key_list = {}
end
function CalculatorView:LoadSuccess()
self.container = self:GetChild("container")
for i=1,12 do
table.insert(self.key_list,self:GetChild("container/keyPanel/key_"..i).gameObject)
end
self.transform.sizeDelta = Vector2(ScreenWidth, ScreenHeight)
end
function CalculatorView:InitEvent()
local function onBtnClickHandler(target)
if target == self.key_list[1] then
self:InputNumKey(1)
elseif target == self.key_list[2] then
self:InputNumKey(2)
elseif target == self.key_list[3] then
self:InputNumKey(3)
elseif target == self.key_list[4] then
self:InputNumKey(4)
elseif target == self.key_list[5] then
self:InputNumKey(5)
elseif target == self.key_list[6] then
self:InputNumKey(6)
elseif target == self.key_list[7] then
self:InputNumKey(7)
elseif target == self.key_list[8] then
self:InputNumKey(8)
elseif target == self.key_list[9] then
self:InputNumKey(9)
elseif target == self.key_list[10] then
self:InputNumKey(0)
elseif target == self.key_list[11] then
self:BackKey()
elseif target == self.key_list[12] then
-- if self.call_back and self.type ~= 7 then
-- self.call_back(self.final_num, true)
-- end
self.click_sure_btn = true
self:InputNumKey(self.final_num, true)
self:Close()
end
end
for i=1,12 do
AddClickEvent(self.key_list[i],onBtnClickHandler)
end
-- self.transform.localPosition = self.localPos
end
-- is_check_full 是否立马判断是否足够数量
function CalculatorView:InputNumKey(num, is_check_full)
local number = self.final_num * self.mult_num + num
if is_check_full then
number = self.final_num
end
-- local number = 0
-- if self.final_num == 1 and num ~= 1 then
-- number = num
-- else
-- number = self.final_num * self.mult_num + num
-- end
if number <= 0 then
if self.type == 7 then
Message.show("选择数量为0")
return
end
--Message.show("选择数量为0个")
return
end
-- if number > self.max_count then
-- if self.type == 1 then
-- Message.show("本次最多购买"..self.max_count.."个")
-- elseif self.type == 2 then
-- Message.show("本次最多兑换"..self.max_count.."个")
-- elseif self.type == 3 then
-- Message.show("战力最高设置为"..self.max_count)
-- elseif self.type == 4 then
-- Message.show("等级最高设置为"..self.max_count.."级")
-- elseif self.type == 5 then
-- Message.show("本次最多发"..self.max_count.."个")
-- elseif self.type == 6 then
-- Message.show("本次最多可上架"..self.max_count.."个")
-- elseif self.type == 7 then
-- Message.show("价格不能超过"..self.max_count)
-- elseif self.type == 8 then
-- Message.show("最多加价"..self.max_count)
-- end
-- self:AutoSetMaxNum(self.max_count)
-- return
-- end
-- table.insert(self.input_number_list,num)
self.final_num = number
-- self.call_back(self.final_num)
if is_check_full then
if number > self.max_count then
if self.type == 1 then
Message.show("本次最多购买"..self.max_count.."")
elseif self.type == 2 then
Message.show("本次最多兑换"..self.max_count.."")
elseif self.type == 3 then
Message.show("战力最高设置为"..self.max_count)
elseif self.type == 4 then
Message.show("等级最高设置为"..self.max_count.."")
elseif self.type == 5 then
Message.show("本次最多发"..self.max_count.."")
elseif self.type == 6 then
Message.show("本次最多可上架"..self.max_count.."")
elseif self.type == 7 then
Message.show("价格不能超过"..self.max_count)
elseif self.type == 8 then
Message.show("最多加价"..self.max_count)
elseif self.type == 9 then
Message.show("不能大于"..self.max_count)
end
self:AutoSetMaxNum(self.max_count, is_check_full)
return
elseif self.min_price and number < self.min_price then
if self.type == 1 then
elseif self.type == 2 then
elseif self.type == 3 then
elseif self.type == 4 then
elseif self.type == 5 then
elseif self.type == 6 then
elseif self.type == 7 then
Message.show("价格不能少于"..self.min_price)
end
self:AutoSetMinNum(self.min_price, is_check_full)
return
end
else
table.insert(self.input_number_list,num)
self.final_num = number
self.call_back(self.final_num)
end
-- self.final_num = number
end
function CalculatorView:BackKey()
--PrintTable(self.input_number_list)
local lastNum = self.input_number_list[#self.input_number_list]
if lastNum ~= nil then
self.final_num = (self.final_num - lastNum) / self.mult_num
table.remove(self.input_number_list,#self.input_number_list)
if self.final_num == 0 then
self.final_num = 1
end
else
self.final_num = 0
--Message.show("最少购买1个")
end
self.call_back(self.final_num)
end
function CalculatorView:AutoSetMaxNum(num, is_check_full)
self.input_number_list = {}
local max_mult = 10000000
local max_num = num
local start_insert = false
for i=1,8 do
local input_num = max_num/max_mult
--print("===============input_num:"..input_num)
if input_num >= 1 or input_num == 0 or start_insert then
input_num = math.floor(input_num)
max_num = max_num - (input_num*max_mult)
table.insert(self.input_number_list,input_num)
start_insert = true
end
max_mult = max_mult/10
end
-- PrintTable(self.input_number_list)
-- print(num)
self.final_num = num
print("tanar: [CalculatorView 269]=> num: ",num)
self.call_back(self.final_num, is_check_full)
end
function CalculatorView:AutoSetMinNum(num, is_check_full)
self.input_number_list = {}
local min_mult = 10000000
local min_num = num
local start_insert = false
self.final_num = num
self.call_back(self.final_num, is_check_full)
end
function CalculatorView:SetWinPosition()
local con_width = self.container.transform.sizeDelta.x
local con_height = self.container.transform.sizeDelta.y
local x, y = ScreenToViewportPoint(self.localPos.x, self.localPos.y)
x = x - 180
y = y + 255
x = x < 40 and 40 or x
if x + con_width > ScreenWidth then
x = ScreenWidth - con_width - 25
end
if y > ScreenHeight then
y = y - con_height - 80
end
self.container.transform.anchoredPosition = Vector3(x, y, 0)
end