00003 不思议迷宫.0009.2.4:自动换装:在事件中实现自动换装
具体的换装动作如何实现呢?老办法:学原版。在前一章中,我们已经接触过一个叫做“UIEquipsOperation”的东西。它就是专门用来显示装备信息和操作的,包括装备、卸下、分解等等。我们就看看它的“装备”和“卸下”按钮的回调:
local function onEquipSetOnClick(sender,eventType)
if eventType ==ccui.TouchEventType.ended then
AudioM.playFx("equip_put");
if self.operateType ==EQUIP_OPERATE_EQUIP then
-- 装备
local type =EquipM.query(self.classId, "type");
local equipClassId =EquipM.getEquip(type, 1);
if not equipClassId then
DungeonActionM.go("do_equip", 0, self.classId);
-- 关闭当前界面
UIMgr.getCurrentScene():removeFormByName("UIEquipsOperation");
return;
end
-- 获得新装备增加的血量
local newHp =self:getAttrib(self.classId, "max_hp");
local newMp =self:getAttrib(self.classId, "max_mp");
local oldHp =self:getAttrib(equipClassId, "max_hp");
local oldMp =self:getAttrib(equipClassId, "max_mp");
-- 考虑套装加成
local oldEquipList = {};
local newEquipList = {};
-- 遍历每个部位
for _, equiped inpairs(ME.user.equipments) do
-- 遍历该部位的所有已穿戴装备
for _, e in pairs(equiped)do
ifEquipM.isEquipment(e) then