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