Merge branch 'master' of http://60.1.1.230/backend/jieling_server
commit
5de5a252ed
|
@ -133,8 +133,7 @@ function BuffManager:Update()
|
||||||
else
|
else
|
||||||
buffList = self.buffList.kvList[buff.id]
|
buffList = self.buffList.kvList[buff.id]
|
||||||
end
|
end
|
||||||
local count = buffList.size
|
if buff.cover and buffList.size > 0 then
|
||||||
if buff.cover and count > 0 then
|
|
||||||
if buffList.buffer[1]:OnCover(buff) then --判定该效果能否被覆盖
|
if buffList.buffer[1]:OnCover(buff) then --判定该效果能否被覆盖
|
||||||
buffList.buffer[1]:OnEnd(self.owner)
|
buffList.buffer[1]:OnEnd(self.owner)
|
||||||
self.owner.Event:DispatchEvent(BattleEventName.BuffEnd, buffList.buffer[1])
|
self.owner.Event:DispatchEvent(BattleEventName.BuffEnd, buffList.buffer[1])
|
||||||
|
@ -145,12 +144,12 @@ function BuffManager:Update()
|
||||||
self.owner.Event:DispatchEvent(BattleEventName.BuffCover, buff)
|
self.owner.Event:DispatchEvent(BattleEventName.BuffCover, buff)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
if buff.maxCount == 0 or count < buff.maxCount then --限制相同效果的数量,为0则不限制
|
if buff.maxCount == 0 or buffList.size < buff.maxCount then --限制相同效果的数量,为0则不限制
|
||||||
buffList:Add(buff)
|
buffList:Add(buff)
|
||||||
buff.target = self.owner
|
buff.target = self.owner
|
||||||
buff:OnStart()
|
buff:OnStart()
|
||||||
self.owner.Event:DispatchEvent(BattleEventName.BuffStart, buff)
|
self.owner.Event:DispatchEvent(BattleEventName.BuffStart, buff)
|
||||||
self.owner.Event:DispatchEvent(BattleEventName.BuffCountChange, buff.id, count)
|
self.owner.Event:DispatchEvent(BattleEventName.BuffCountChange, buff.id, buffList.size)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -245,7 +245,6 @@ local effectList = {
|
||||||
local f1 = args[1]
|
local f1 = args[1]
|
||||||
local dt = args[2]
|
local dt = args[2]
|
||||||
local f2 = args[3]
|
local f2 = args[3]
|
||||||
|
|
||||||
caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, interval)
|
caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, interval)
|
||||||
if caster.camp == 0 and target.camp == 1 then
|
if caster.camp == 0 and target.camp == 1 then
|
||||||
BattleLogic.Event:DispatchEvent(BattleEventName.ZoomChange, target, interval)
|
BattleLogic.Event:DispatchEvent(BattleEventName.ZoomChange, target, interval)
|
||||||
|
|
|
@ -3,7 +3,7 @@ RoleData.__index = RoleData
|
||||||
local max = math.max
|
local max = math.max
|
||||||
local floor = math.floor
|
local floor = math.floor
|
||||||
function RoleData.New()
|
function RoleData.New()
|
||||||
local instance = {role=0, data={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}}
|
local instance = {role=0, data={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}}
|
||||||
setmetatable(instance, RoleData)
|
setmetatable(instance, RoleData)
|
||||||
return instance
|
return instance
|
||||||
end
|
end
|
||||||
|
|
|
@ -61,28 +61,17 @@ RoleDataName = {
|
||||||
Crit = indexAdd(), --暴击率(%)
|
Crit = indexAdd(), --暴击率(%)
|
||||||
CritDamageFactor = indexAdd(), --暴击伤害系数(%)
|
CritDamageFactor = indexAdd(), --暴击伤害系数(%)
|
||||||
TreatFacter = indexAdd(),--治疗加成系数(%)
|
TreatFacter = indexAdd(),--治疗加成系数(%)
|
||||||
|
|
||||||
FireDamageBocusFactor = indexAdd(), --火系伤害加成系数(%)
|
|
||||||
FireDamageReduceFactor = indexAdd(), --火系伤害减免系数(%)
|
FireDamageReduceFactor = indexAdd(), --火系伤害减免系数(%)
|
||||||
WindDamageBocusFactor = indexAdd(), --风系伤害加成系数(%)
|
|
||||||
WindDamageReduceFactor = indexAdd(), --风系伤害减免系数(%)
|
WindDamageReduceFactor = indexAdd(), --风系伤害减免系数(%)
|
||||||
IceDamageBocusFactor = indexAdd(), --冰系伤害加成系数(%)
|
|
||||||
IceDamageReduceFactor = indexAdd(), --冰系伤害减免系数(%)
|
IceDamageReduceFactor = indexAdd(), --冰系伤害减免系数(%)
|
||||||
LandDamageBocusFactor = indexAdd(), --地系伤害加成系数(%)
|
|
||||||
LandDamageReduceFactor = indexAdd(), --地系伤害减免系数(%)
|
LandDamageReduceFactor = indexAdd(), --地系伤害减免系数(%)
|
||||||
LightDamageBocusFactor = indexAdd(), --光系伤害加成系数(%)
|
|
||||||
LightDamageReduceFactor = indexAdd(), --光系伤害减免系数(%)
|
LightDamageReduceFactor = indexAdd(), --光系伤害减免系数(%)
|
||||||
DarkDamageBocusFactor = indexAdd(), --暗系伤害加成系数(%)
|
|
||||||
DarkDamageReduceFactor = indexAdd(), --暗系伤害减免系数(%)
|
DarkDamageReduceFactor = indexAdd(), --暗系伤害减免系数(%)
|
||||||
|
ElementDamageBocusFactor = indexAdd(), --属性伤害加成系数(%)
|
||||||
}
|
}
|
||||||
|
|
||||||
BuffName = {
|
BuffName = {
|
||||||
Poison = "Poison",
|
|
||||||
PropertyChange = "PropertyChange",
|
PropertyChange = "PropertyChange",
|
||||||
Taunt = "Taunt",
|
|
||||||
Bleed = "Bleed",
|
|
||||||
Frozen = "Frozen",
|
|
||||||
Stun = "Stun",
|
|
||||||
HOT = "HOT",
|
HOT = "HOT",
|
||||||
DOT = "DOT",
|
DOT = "DOT",
|
||||||
Control = "Control",
|
Control = "Control",
|
||||||
|
|
|
@ -120,14 +120,25 @@ function BattleUtil.CalDamage(atkRole, defRole, damageType, baseFactor, ignoreDe
|
||||||
end
|
end
|
||||||
local atkData, defData = atkRole.data, defRole.data
|
local atkData, defData = atkRole.data, defRole.data
|
||||||
--伤害 =(基础伤害*(1+己伤害加成-目标伤害减免)*(1+己方属性伤害加成-目标属性伤害减免),10%*己攻)
|
--伤害 =(基础伤害*(1+己伤害加成-目标伤害减免)*(1+己方属性伤害加成-目标属性伤害减免),10%*己攻)
|
||||||
baseDamage = baseDamage * baseFactor *
|
|
||||||
(1 + atkData:GetData(RoleDataName.DamageBocusFactor)) * (1 - defData:GetData(RoleDataName.DamageReduceFactor)) *
|
local element = 1
|
||||||
(1 + atkData:GetData(RoleDataName.FireDamageBocusFactor)) * (1 - defData:GetData(RoleDataName.FireDamageReduceFactor)) * --火系
|
local elementDamageReduceFactor = RoleDataName.FireDamageReduceFactor
|
||||||
(1 + atkData:GetData(RoleDataName.WindDamageBocusFactor)) * (1 - defData:GetData(RoleDataName.WindDamageReduceFactor)) * --风系
|
if atkRole.element == 1 then
|
||||||
(1 + atkData:GetData(RoleDataName.IceDamageBocusFactor)) * (1 - defData:GetData(RoleDataName.IceDamageReduceFactor)) * --冰系
|
elementDamageReduceFactor = RoleDataName.FireDamageReduceFactor
|
||||||
(1 + atkData:GetData(RoleDataName.LandDamageBocusFactor)) * (1 - defData:GetData(RoleDataName.LandDamageReduceFactor)) * --地系
|
elseif atkRole.element == 2 then
|
||||||
(1 + atkData:GetData(RoleDataName.LightDamageBocusFactor)) * (1 - defData:GetData(RoleDataName.LightDamageReduceFactor)) * --光系
|
elementDamageReduceFactor = RoleDataName.WindDamageReduceFactor
|
||||||
(1 + atkData:GetData(RoleDataName.DarkDamageBocusFactor)) * (1 - defData:GetData(RoleDataName.DarkDamageReduceFactor)) --暗系
|
elseif atkRole.element == 3 then
|
||||||
|
elementDamageReduceFactor = RoleDataName.IceDamageReduceFactor
|
||||||
|
elseif atkRole.element == 4 then
|
||||||
|
elementDamageReduceFactor = RoleDataName.LandDamageReduceFactor
|
||||||
|
elseif atkRole.element == 5 then
|
||||||
|
elementDamageReduceFactor = RoleDataName.LightDamageReduceFactor
|
||||||
|
elseif atkRole.element == 6 then
|
||||||
|
elementDamageReduceFactor = RoleDataName.DarkDamageReduceFactor
|
||||||
|
end
|
||||||
|
element = (1 + atkData:GetData(RoleDataName.ElementDamageBocusFactor)) * (1 - defData:GetData(elementDamageReduceFactor))
|
||||||
|
|
||||||
|
baseDamage = baseDamage * baseFactor * element
|
||||||
baseDamage = max(baseDamage, 0.1 * attack)
|
baseDamage = max(baseDamage, 0.1 * attack)
|
||||||
|
|
||||||
local func
|
local func
|
||||||
|
|
|
@ -26,6 +26,7 @@ public class HeroLogic {
|
||||||
private HeroLogic(){}
|
private HeroLogic(){}
|
||||||
|
|
||||||
public static List<Integer> transTemplate = new ArrayList<>();
|
public static List<Integer> transTemplate = new ArrayList<>();
|
||||||
|
private static Map<Integer,List<Integer>> transTemplateByHeroPropertyName = new HashMap<>();
|
||||||
static {
|
static {
|
||||||
transTemplate.add(HeroAttributeEnum.CurHP.getPropertyId()); // 生命
|
transTemplate.add(HeroAttributeEnum.CurHP.getPropertyId()); // 生命
|
||||||
transTemplate.add(HeroAttributeEnum.Hp.getPropertyId()); // 最大生命
|
transTemplate.add(HeroAttributeEnum.Hp.getPropertyId()); // 最大生命
|
||||||
|
@ -40,18 +41,32 @@ public class HeroLogic {
|
||||||
transTemplate.add(HeroAttributeEnum.CritFactor.getPropertyId()); // 暴击率
|
transTemplate.add(HeroAttributeEnum.CritFactor.getPropertyId()); // 暴击率
|
||||||
transTemplate.add(HeroAttributeEnum.CritDamageFactor.getPropertyId()); // 暴击伤害系数
|
transTemplate.add(HeroAttributeEnum.CritDamageFactor.getPropertyId()); // 暴击伤害系数
|
||||||
transTemplate.add(HeroAttributeEnum.TreatFacter.getPropertyId()); // 治疗加成系数
|
transTemplate.add(HeroAttributeEnum.TreatFacter.getPropertyId()); // 治疗加成系数
|
||||||
transTemplate.add(HeroAttributeEnum.FireDamageBonusFactor.getPropertyId()); // 火系伤害加成系数
|
// transTemplate.add(HeroAttributeEnum.FireDamageBonusFactor.getPropertyId()); // 火系伤害加成系数
|
||||||
transTemplate.add(HeroAttributeEnum.FireDamageReduceFactor.getPropertyId()); // 火系伤害减免系数
|
transTemplate.add(HeroAttributeEnum.FireDamageReduceFactor.getPropertyId()); // 火系伤害减免系数
|
||||||
transTemplate.add(HeroAttributeEnum.WindDamageBonusFactor.getPropertyId()); // 风系伤害加成系数
|
// transTemplate.add(HeroAttributeEnum.WindDamageBonusFactor.getPropertyId()); // 风系伤害加成系数
|
||||||
transTemplate.add(HeroAttributeEnum.WindDamageReduceFactor.getPropertyId()); // 风系伤害减免系数
|
transTemplate.add(HeroAttributeEnum.WindDamageReduceFactor.getPropertyId()); // 风系伤害减免系数
|
||||||
transTemplate.add(HeroAttributeEnum.WaterDamageBonusFactor.getPropertyId()); // 冰系伤害加成系数
|
// transTemplate.add(HeroAttributeEnum.WaterDamageBonusFactor.getPropertyId()); // 冰系伤害加成系数
|
||||||
transTemplate.add(HeroAttributeEnum.WaterDamageReduceFactor.getPropertyId());// 冰系伤害减免系数
|
transTemplate.add(HeroAttributeEnum.WaterDamageReduceFactor.getPropertyId());// 冰系伤害减免系数
|
||||||
transTemplate.add(HeroAttributeEnum.LandDamageBonusFactor.getPropertyId()); // 地系伤害加成系数
|
// transTemplate.add(HeroAttributeEnum.LandDamageBonusFactor.getPropertyId()); // 地系伤害加成系数
|
||||||
transTemplate.add(HeroAttributeEnum.LandDamageReduceFactor.getPropertyId()); // 地系伤害减免系数
|
transTemplate.add(HeroAttributeEnum.LandDamageReduceFactor.getPropertyId()); // 地系伤害减免系数
|
||||||
transTemplate.add(HeroAttributeEnum.LightDamageBonusFactor.getPropertyId()); // 雷系伤害加成系数
|
// transTemplate.add(HeroAttributeEnum.LightDamageBonusFactor.getPropertyId()); // 雷系伤害加成系数
|
||||||
transTemplate.add(HeroAttributeEnum.LightDamageReduceFactor.getPropertyId());// 雷系伤害减免系数
|
transTemplate.add(HeroAttributeEnum.LightDamageReduceFactor.getPropertyId());// 雷系伤害减免系数
|
||||||
transTemplate.add(HeroAttributeEnum.DarkDamageBonusFactor.getPropertyId()); // 暗系伤害加成系数
|
// transTemplate.add(HeroAttributeEnum.DarkDamageBonusFactor.getPropertyId()); // 暗系伤害加成系数
|
||||||
transTemplate.add(HeroAttributeEnum.DarkDamageReduceFactor.getPropertyId()); // 暗系伤害减免系数
|
transTemplate.add(HeroAttributeEnum.DarkDamageReduceFactor.getPropertyId()); // 暗系伤害减免系数
|
||||||
|
|
||||||
|
transTemplateByHeroPropertyName.put(1,new ArrayList<>(transTemplate));
|
||||||
|
transTemplateByHeroPropertyName.put(2,new ArrayList<>(transTemplate));
|
||||||
|
transTemplateByHeroPropertyName.put(3,new ArrayList<>(transTemplate));
|
||||||
|
transTemplateByHeroPropertyName.put(4,new ArrayList<>(transTemplate));
|
||||||
|
transTemplateByHeroPropertyName.put(5,new ArrayList<>(transTemplate));
|
||||||
|
transTemplateByHeroPropertyName.put(6,new ArrayList<>(transTemplate));
|
||||||
|
|
||||||
|
transTemplateByHeroPropertyName.get(1).add(HeroAttributeEnum.FireDamageBonusFactor.getPropertyId());
|
||||||
|
transTemplateByHeroPropertyName.get(2).add(HeroAttributeEnum.WindDamageBonusFactor.getPropertyId());
|
||||||
|
transTemplateByHeroPropertyName.get(3).add(HeroAttributeEnum.WaterDamageBonusFactor.getPropertyId());
|
||||||
|
transTemplateByHeroPropertyName.get(4).add(HeroAttributeEnum.LandDamageBonusFactor.getPropertyId());
|
||||||
|
transTemplateByHeroPropertyName.get(5).add(HeroAttributeEnum.LightDamageBonusFactor.getPropertyId());
|
||||||
|
transTemplateByHeroPropertyName.get(6).add(HeroAttributeEnum.DarkDamageBonusFactor.getPropertyId());
|
||||||
}
|
}
|
||||||
private static final String VERTICAL = "|";
|
private static final String VERTICAL = "|";
|
||||||
private static final String DIVISION = "#";
|
private static final String DIVISION = "#";
|
||||||
|
@ -668,7 +683,9 @@ public class HeroLogic {
|
||||||
public StringBuilder getHeroProperty(User user, Hero hero, StringBuilder sb){
|
public StringBuilder getHeroProperty(User user, Hero hero, StringBuilder sb){
|
||||||
Map<Integer, Integer> heroAttributeMap = calHeroFinalAttribute(user, hero);
|
Map<Integer, Integer> heroAttributeMap = calHeroFinalAttribute(user, hero);
|
||||||
sb.append(hero.getLevel()).append(DIVISION);
|
sb.append(hero.getLevel()).append(DIVISION);
|
||||||
for(Integer templatePropetyId:transTemplate){
|
SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId());
|
||||||
|
List<Integer> templatePropetyIds = transTemplateByHeroPropertyName.get(scHero.getPropertyName());
|
||||||
|
for(Integer templatePropetyId:templatePropetyIds){
|
||||||
Integer propertyValue = heroAttributeMap.get(templatePropetyId);
|
Integer propertyValue = heroAttributeMap.get(templatePropetyId);
|
||||||
if(propertyValue == null){
|
if(propertyValue == null){
|
||||||
propertyValue =0;
|
propertyValue =0;
|
||||||
|
|
|
@ -163,6 +163,7 @@ public class FightDataUtil {
|
||||||
unitData.set("camp", 0);
|
unitData.set("camp", 0);
|
||||||
unitData.set("type", 1);
|
unitData.set("type", 1);
|
||||||
unitData.set("quality", 1);
|
unitData.set("quality", 1);
|
||||||
|
unitData.set("element", hero.getPropertyName());
|
||||||
|
|
||||||
unitData.set("skill", getSkill(skillIds[0]));
|
unitData.set("skill", getSkill(skillIds[0]));
|
||||||
unitData.set("superSkill", getSkill(skillIds[1]));
|
unitData.set("superSkill", getSkill(skillIds[1]));
|
||||||
|
|
Loading…
Reference in New Issue