Merge branch 'dev' of http://git.juzugame.com/b6-client/b6-lua into dev
# Conflicts: # lua/app/userdata/battle/team/battle_unit_entity.lua
This commit is contained in:
commit
22b46a5129
@ -15,6 +15,7 @@ BattleConst.SIDE_DEF = 2
|
||||
BattleConst.SKILL_TYPE_ACTIVE = 1
|
||||
BattleConst.SKILL_TYPE_NORMAL = 2
|
||||
BattleConst.SKILL_TYPE_ASSISTING = 3
|
||||
BattleConst.SKILL_TYPE_PASSIVE = 4
|
||||
BattleConst.SKILL_SELECT_COUNT = 3
|
||||
BattleConst.DEFAULT_FACTOR = 10000
|
||||
BattleConst.INIT_POS_X = 200 -- 战斗单位初始化的坐标
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
local BattleConst = require "app/module/battle/battle_const"
|
||||
local BattleHelper = require "app/module/battle/helper/battle_helper"
|
||||
local BattleBuffHandle = require "app/module/battle/helper/battle_buff_handle"
|
||||
local BattlePassive = require "app/module/battle/helper/battle_passive"
|
||||
|
||||
local BattleUnitComp = class("BattleUnitComp", LuaComponent)
|
||||
|
||||
@ -77,9 +78,96 @@ function BattleUnitComp:initWithEntity(modelId, entity, battleController, target
|
||||
self.side = entity:getSide()
|
||||
self:_initBase()
|
||||
self:initPosition()
|
||||
self:initPassiveSkills()
|
||||
self:playBorn()
|
||||
end
|
||||
|
||||
function BattleUnitComp:initPassiveSkills()
|
||||
local pasSkills = self.unitEntity:getPassiveSkills()
|
||||
if pasSkills and #pasSkills > 0 then
|
||||
if self.passiveSkills == nil then
|
||||
self.passiveSkills = {}
|
||||
else
|
||||
self:removeAllPassiveSkills()
|
||||
end
|
||||
for k, skill in ipairs(pasSkills) do
|
||||
local id = skill:getPassiveTriggerId()
|
||||
if id then
|
||||
skill:clearRecordData()
|
||||
local skills = self.passiveSkills[id]
|
||||
if skills == nil then
|
||||
skills = {}
|
||||
self.passiveSkills[id] = skills
|
||||
end
|
||||
table.insert(skills, skill)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function BattleUnitComp:addPassiveSkill(pasSkill)
|
||||
pasSkill:clearRecordData()
|
||||
if self.passiveSkills == nil then
|
||||
self.passiveSkills = {}
|
||||
end
|
||||
local id = pasSkill:getPassiveTriggerId()
|
||||
if id then
|
||||
local skills = self.passiveSkills[id]
|
||||
if skills == nil then
|
||||
skills = {}
|
||||
self.passiveSkills[id] = skills
|
||||
end
|
||||
table.insert(skills, pasSkill)
|
||||
end
|
||||
end
|
||||
|
||||
function BattleUnitComp:removePassiveSkill(skill)
|
||||
if self.passiveSkills == nil then
|
||||
return
|
||||
end
|
||||
local id = skill:getPassiveTriggerId()
|
||||
if id then
|
||||
local skills = self.passiveSkills[id]
|
||||
if skills then
|
||||
for k, v in ipairs(skills) do
|
||||
if v == skill then
|
||||
table.remove(skills, k)
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function BattleUnitComp:removeAllPassiveSkills()
|
||||
if self.passiveSkills then
|
||||
for _, skills in pairs(self.passiveSkills) do
|
||||
local count = #skills
|
||||
for i = 1, count do
|
||||
table.remove(skills)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function BattleUnitComp:addSkill(skillId)
|
||||
local skillEntity = self.unitEntity:addSkill(skillId)
|
||||
if skillEntity then
|
||||
if skillEntity:getIsPassiveType() then -- 添加被动
|
||||
self:addPassiveSkill(skillEntity)
|
||||
end
|
||||
return skillEntity:getSid()
|
||||
end
|
||||
return 0
|
||||
end
|
||||
|
||||
function BattleUnitComp:removeSkill(skillId, sid)
|
||||
local skillEntity = self.unitEntity:removeSkill(skillId, sid)
|
||||
if skillEntity and skillEntity:getIsPassiveType() then
|
||||
self:removePassiveSkill(skillEntity)
|
||||
end
|
||||
end
|
||||
|
||||
function BattleUnitComp:hideOutsideScreen()
|
||||
if self.unitEntity:getSide() == SIDE_ATK then
|
||||
self.baseObject:setLocalPosition(-GConst.UI_SCREEN_WIDTH/2 - BattleConst.UNIT_BODY_WIDTH, 0, 0)
|
||||
@ -809,6 +897,30 @@ function BattleUnitComp:tick(dt)
|
||||
end
|
||||
end
|
||||
|
||||
function BattleUnitComp:checkPassiveEvent(eventId, targetComp, ...)
|
||||
if self.passiveSkills == nil then
|
||||
return
|
||||
end
|
||||
local skills = self.passiveSkills[eventId]
|
||||
if skills and #skills > 0 then
|
||||
local func = BattlePassive.checkTrigger[eventId]
|
||||
if func then
|
||||
for _, skill in ipairs(skills) do
|
||||
local count = func(self, skill, targetComp, ...)
|
||||
if count > 0 and skill:getIsAvailable() then
|
||||
for i = 1, count do
|
||||
self:usePassiveSkill(skill)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function BattleUnitComp:usePassiveSkill(skill)
|
||||
self:onSkillTakeEffect(skill)
|
||||
end
|
||||
|
||||
function BattleUnitComp:getIsClear()
|
||||
return self.isClear
|
||||
end
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
local BattleHelper = require "app/module/battle/helper/battle_helper"
|
||||
local BattleScheduler = require "app/module/battle/helper/battle_scheduler"
|
||||
local BattleTeam = require "app/module/battle/team/battle_team"
|
||||
local BattlePassive = require "app/module/battle/helper/battle_passive"
|
||||
|
||||
local BattleController = class("BattleController")
|
||||
|
||||
@ -146,6 +147,7 @@ function BattleController:init(params)
|
||||
self.battleData:init()
|
||||
BattleScheduler:init()
|
||||
BattleHelper:init()
|
||||
BattlePassive:init()
|
||||
self:initBattleTeam()
|
||||
self:initOther()
|
||||
self:prepareFight()
|
||||
@ -1272,6 +1274,7 @@ function BattleController:clear()
|
||||
end
|
||||
BattleScheduler:clear()
|
||||
BattleHelper:clear()
|
||||
BattlePassive:clear()
|
||||
end
|
||||
|
||||
function BattleController:endBattleAndExit()
|
||||
|
||||
@ -6,11 +6,13 @@ local BUFF_NAME = BattleConst.BUFF_NAME
|
||||
local ATTR_NAME = BattleConst.ATTR_NAM
|
||||
|
||||
local function _addSkillOn(unitComp, buff, target, buffEffect)
|
||||
return 1
|
||||
return target:addSkill(buff:getEffectNum())
|
||||
end
|
||||
|
||||
local function _addSkillOff(buffSender, target, buff, buffEffect)
|
||||
return 1
|
||||
if buffEffect and buffEffect.result > 0 then
|
||||
target:removeSkill(buff:getEffectNum(), buffEffect.result)
|
||||
end
|
||||
end
|
||||
|
||||
local function _skillFireTimesOn(unitComp, buff, target, buffEffect)
|
||||
|
||||
20
lua/app/module/battle/helper/battle_passive.lua
Normal file
20
lua/app/module/battle/helper/battle_passive.lua
Normal file
@ -0,0 +1,20 @@
|
||||
local BattleConst = require "app/module/battle/battle_const"
|
||||
|
||||
local BattlePassive = {
|
||||
passiveSkills = {}
|
||||
}
|
||||
|
||||
local PASSIVE_EVENT = BattleConst.PASSIVE_EVENT
|
||||
local SKILL_RECORD_DATA_NAME = BattleConst.SKILL_RECORD_DATA_NAME
|
||||
local DEFAULT_FACTOR = BattleConst.DEFAULT_FACTOR
|
||||
|
||||
function BattlePassive:init()
|
||||
end
|
||||
|
||||
function BattlePassive:clear()
|
||||
end
|
||||
|
||||
BattlePassive.checkTrigger = {
|
||||
}
|
||||
|
||||
return BattlePassive
|
||||
10
lua/app/module/battle/helper/battle_passive.lua.meta
Normal file
10
lua/app/module/battle/helper/battle_passive.lua.meta
Normal file
@ -0,0 +1,10 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b44646ca9b5bf8240a4af4b9d2edd001
|
||||
ScriptedImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
|
||||
@ -1,4 +1,5 @@
|
||||
local BattleTeamEntity = require "app/userdata/battle/team/battle_team_entity"
|
||||
local BattleSkillEntity = require "app/userdata/battle/skill/battle_skill_entity"
|
||||
|
||||
local BattleData = class("BattleData", BaseData)
|
||||
|
||||
@ -17,6 +18,7 @@ function BattleData:init()
|
||||
self.needBattleExp = self:getLvNeedExp()
|
||||
self.addLvCount = 0
|
||||
self.data.lvDirty = false
|
||||
BattleSkillEntity.sid = 0
|
||||
self.atkTeam = self:initTeam(BattleConst.SIDE_ATK)
|
||||
self.defTeam = self:initTeam(BattleConst.SIDE_DEF)
|
||||
self:initRogueSkills()
|
||||
|
||||
@ -2,10 +2,14 @@ local BattleBuffEntity = require "app/userdata/battle/skill/battle_buff_entity"
|
||||
|
||||
local BattleSkillEntity = class("BattleSkillEntity", BaseData)
|
||||
|
||||
BattleSkillEntity.sid = 0
|
||||
|
||||
function BattleSkillEntity:ctor(skillId, skillType, owner)
|
||||
self.skillType = skillType
|
||||
self.skillId = skillId
|
||||
self.owner = owner
|
||||
BattleSkillEntity.sid = BattleSkillEntity.sid + 1
|
||||
self.sid = BattleSkillEntity.sid
|
||||
self:init()
|
||||
end
|
||||
|
||||
@ -99,6 +103,10 @@ function BattleSkillEntity:getSkillid()
|
||||
return self.skillId
|
||||
end
|
||||
|
||||
function BattleSkillEntity:getIsPassiveType()
|
||||
return self.skillType == GConst.BattleConst.SKILL_TYPE_PASSIVE
|
||||
end
|
||||
|
||||
function BattleSkillEntity:changeSkillId(skillId)
|
||||
self.skillId = skillId
|
||||
self:init()
|
||||
@ -139,4 +147,34 @@ function BattleSkillEntity:getTargetType()
|
||||
return self.skillInfo.obj
|
||||
end
|
||||
|
||||
function BattleSkillEntity:getSid()
|
||||
return self.sid
|
||||
end
|
||||
|
||||
function BattleSkillEntity:getPassiveTriggerId()
|
||||
return self.skillInfo.trigger
|
||||
end
|
||||
|
||||
function BattleSkillEntity:getRecordData(name)
|
||||
if self.recordData == nil then
|
||||
self.recordData = {}
|
||||
end
|
||||
return self.recordData[name]
|
||||
end
|
||||
|
||||
function BattleSkillEntity:setRecordData(name, value)
|
||||
if self.recordData == nil then
|
||||
self.recordData = {}
|
||||
end
|
||||
self.recordData[name] = value
|
||||
end
|
||||
|
||||
function BattleSkillEntity:clearRecordData()
|
||||
if self.recordData then
|
||||
for k, v in pairs(self.recordData) do
|
||||
self.recordData[k] = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return BattleSkillEntity
|
||||
@ -32,6 +32,49 @@ function BattleUnitEntity:getIsBoss()
|
||||
return self.unitData.isBoss
|
||||
end
|
||||
|
||||
function BattleUnitEntity:addSkill(skillId)
|
||||
local skillInfo = ConfigManager:getConfig("skill")[skillId]
|
||||
if skillInfo == nil then
|
||||
return nil
|
||||
end
|
||||
if skillInfo.effect_type == 1 then -- 主动技能
|
||||
local skill = BattleSkillEntity:create(skillId, GConst.BattleConst.SKILL_TYPE_ACTIVE, self)
|
||||
table.insert(self.activeSkills, skill)
|
||||
return skill
|
||||
else -- 被动技能
|
||||
if self.passiveSkills == nil then
|
||||
self.passiveSkills = {}
|
||||
end
|
||||
local skill = BattleSkillEntity:create(skillId, GConst.BattleConst.SKILL_TYPE_PASSIVE, self)
|
||||
table.insert(self.passiveSkills, skill)
|
||||
return skill
|
||||
end
|
||||
return nil
|
||||
end
|
||||
|
||||
function BattleUnitEntity:removeSkill(skillId, sid)
|
||||
local skillInfo = ConfigManager:getConfig("skill")[skillId]
|
||||
if skillInfo == nil then
|
||||
return nil
|
||||
end
|
||||
if skillInfo.effect_type == 1 then -- 主动技能
|
||||
for k, v in ipairs(self.activeSkills) do
|
||||
if v:getSid() == sid then
|
||||
return table.remove(self.activeSkills, k)
|
||||
end
|
||||
end
|
||||
else -- 被动技能
|
||||
if self.passiveSkills then
|
||||
for k, v in ipairs(self.passiveSkills) do
|
||||
if v:getSid() == sid then
|
||||
return table.remove(self.passiveSkills, k)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
return nil
|
||||
end
|
||||
|
||||
function BattleUnitEntity:addAttr(name, num, isPercent)
|
||||
return self.team:addAttr(name, num, isPercent)
|
||||
end
|
||||
@ -95,6 +138,10 @@ function BattleUnitEntity:getNormalSkillNameList()
|
||||
return self.normalSkillNameList, count
|
||||
end
|
||||
|
||||
function BattleUnitEntity:getPassiveSkills()
|
||||
return self.passiveSkills
|
||||
end
|
||||
|
||||
function BattleUnitEntity:changeActiveSkillId(originSkillId, tartgetSkillId)
|
||||
for _, skillEntity in ipairs(self.activeSkills) do
|
||||
if skillEntity:getSkillid() == originSkillId then
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user