|
|
@@ -418,27 +418,9 @@ function posAttrQuery(human)
|
|
|
end
|
|
|
|
|
|
|
|
|
-local function calcSinglePosAttr(posCfg, pos, obj)
|
|
|
- local idx = 0
|
|
|
- for k, v in ipairs(posCfg.pos) do
|
|
|
- if v == pos then
|
|
|
- idx = k
|
|
|
- break
|
|
|
- end
|
|
|
- end
|
|
|
-
|
|
|
- local posAttr = posCfg.attr[idx]
|
|
|
- for _, v in ipairs(posAttr or {}) do
|
|
|
- local attrType = v[1]
|
|
|
- local attrValue = v[2]
|
|
|
- obj.sysAttr[attrType] = (obj.sysAttr[attrType] or 0) + attrValue
|
|
|
- obj.isSysAttrChange = true
|
|
|
- end
|
|
|
-end
|
|
|
|
|
|
|
|
|
-
|
|
|
-function getPosAttr(objList, formation)
|
|
|
+function getPosAttr(objList)
|
|
|
local campList = {}
|
|
|
for i = 1,CombatDefine.COMBAT_HERO_CNT do
|
|
|
local obj = objList[i]
|
|
|
@@ -455,17 +437,43 @@ function getPosAttr(objList, formation)
|
|
|
caclCampAttr(attr, camp, cnt)
|
|
|
end
|
|
|
|
|
|
+ return attr
|
|
|
+end
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+local function calcSinglePosAttr(posCfg, pos, obj)
|
|
|
+ local idx = 0
|
|
|
+ for k, v in ipairs(posCfg.pos) do
|
|
|
+ if v == obj.formationPos then
|
|
|
+ idx = k
|
|
|
+ break
|
|
|
+ end
|
|
|
+ end
|
|
|
+
|
|
|
+ local posAttr = posCfg.attr[idx]
|
|
|
+ for _, v in ipairs(posAttr or {}) do
|
|
|
+ local attrType = v[1]
|
|
|
+ local attrValue = v[2]
|
|
|
+ obj.sysAttr[attrType] = (obj.sysAttr[attrType] or 0) + attrValue
|
|
|
+ obj.isSysAttrChange = true
|
|
|
+ end
|
|
|
+end
|
|
|
+
|
|
|
+local function posAttrAdd(formation, posList)
|
|
|
--阵法中单个位置的属性加成
|
|
|
local posCfg = getFormationConfig(formation)
|
|
|
if posCfg then
|
|
|
- for pos, obj in pairs(objList) do
|
|
|
- calcSinglePosAttr(posCfg, pos, obj)
|
|
|
+ for _,pos in ipairs(posList) do
|
|
|
+ local obj = CombatImpl.objList[pos]
|
|
|
+ if obj then
|
|
|
+ calcSinglePosAttr(posCfg, pos, obj)
|
|
|
+ end
|
|
|
end
|
|
|
end
|
|
|
+end
|
|
|
|
|
|
|
|
|
- return attr
|
|
|
-end
|
|
|
|
|
|
function onFightBegin(human)
|
|
|
-- 获取进攻方种族属性
|
|
|
@@ -481,7 +489,7 @@ function onFightBegin(human)
|
|
|
end
|
|
|
end
|
|
|
end
|
|
|
-
|
|
|
+
|
|
|
-- 获取防御方种族属性
|
|
|
local attrs2 = human.combat.posAttr[2]
|
|
|
if attrs2 then
|
|
|
@@ -495,6 +503,13 @@ function onFightBegin(human)
|
|
|
end
|
|
|
end
|
|
|
end
|
|
|
+
|
|
|
+
|
|
|
+ --阵法中位置的属性加成
|
|
|
+ posAttrAdd(human.combat.atkFormation, CombatDefine.SIDE2POS[CombatDefine.ATTACK_SIDE])
|
|
|
+
|
|
|
+ posAttrAdd(human.combat.defFormation, CombatDefine.SIDE2POS[CombatDefine.DEFEND_SIDE])
|
|
|
+
|
|
|
end
|
|
|
|
|
|
-- 获得 怪物组的 光环 血量加成
|