yyl
9 小时以前 78a9b0e3a368d2b59fd6559a2be1f50d32040ea0
125 战斗 tagAim=6的支持 持续buff层级永远在最前
12个文件已修改
78 ■■■■■ 已修改文件
Main/Component/UI/Effect/BattleEffectPlayer.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleField/RecordActions/SkillRecordAction.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleObject/BattleObjectLayerMgr.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleUtility.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/Skill/SkillBase.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/Skill/SkillFactory.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/SkillEffect/BulletSkillEffect.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/SkillEffect/DotSkillEffect.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/SkillEffect/NoEffect.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/SkillEffect/NormalSkillEffect.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/SkillEffect/SkillEffect.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/SkillEffect/SkillEffectFactory.cs 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Component/UI/Effect/BattleEffectPlayer.cs
@@ -222,7 +222,7 @@
            bool isHeroFront = funcIsHeroFront();
            int finalSortingOrder = isHeroFront ?
                (isEffectFront ? BattleConst.ActiveHeroActionSortingOrder : BattleConst.ActiveHeroBackSortingOrder) : (isEffectFront ? BattleConst.UnactiveHeroFrontSortingOrder : BattleConst.UnactiveHeroBackSortingOrder);
                (isEffectFront ? BattleConst.ActiveHeroActionSortingOrder + 1 : BattleConst.ActiveHeroBackSortingOrder) : (isEffectFront ? BattleConst.UnactiveHeroFrontSortingOrder : BattleConst.UnactiveHeroBackSortingOrder);
            blocker.SetSortingOrder(finalSortingOrder);
Main/System/Battle/BattleField/RecordActions/SkillRecordAction.cs
@@ -7,7 +7,7 @@
    private bool isCast = false;
    public int fromSkillId = 0;
    public SkillBase fromSkill = null;
    public SkillRecordAction(BattleField _battleField, BattleObject _caster, HB427_tagSCUseSkill vNetData, List<GameNetPackBasic> packList)
        : base(RecordActionType.Skill, _battleField, _caster)
@@ -53,14 +53,14 @@
        if (isCast)
            return;
        if (fromSkillId > 0)
        if (fromSkill != null)
        {
            BattleDebug.LogError("cast skill from skill : " + fromSkillId);
            BattleDebug.LogError("cast skill from skill : " + fromSkill.skillConfig.SkillID);
        }
        // Debug.LogError("cast skill id is " + skillBase.skillConfig.SkillID);
        skillBase.fromSkillId = fromSkillId;
        skillBase.fromSkill = fromSkill;
        skillBase.Cast();
Main/System/Battle/BattleObject/BattleObjectLayerMgr.cs
@@ -29,6 +29,11 @@
            rendererAdjuster.SetSortingOrder(sortingOrder);
        }
        battleObj.heroInfoBar.maxXpGO.SetSortingOrder(sortingOrder + 5);
        for (int i = 0; i < effectPlayers.Count; i++)
        {
            effectPlayers[i]?.ApplySortingOrder();
        }
    }
    public void AddEffect(BattleEffectPlayer effectPlayer)
Main/System/Battle/BattleUtility.cs
@@ -150,7 +150,7 @@
        return stringBuild.ToString();
    }
    public static int GetMainTargetPositionNum(BattleObject caster, List<HB427_tagSCUseSkill.tagSCUseSkillHurt> targetList, SkillConfig skillConfig)
    public static int GetMainTargetPositionNum(SkillBase skillBase, BattleObject caster, List<HB427_tagSCUseSkill.tagSCUseSkillHurt> targetList, SkillConfig skillConfig)
    {
        int returnIndex = 0;
        //  根据敌方血量阵营 存活人数来选择
@@ -272,6 +272,11 @@
            case 5:
                returnIndex = caster.teamHero.positionNum;
                break;
            case 6:
                //  跟随主技能的目标
                var fromSkill = skillBase.fromSkill;
                returnIndex = GetMainTargetPositionNum(fromSkill, fromSkill.caster, fromSkill.tagUseSkillAttack.HurtList.ToList(), fromSkill.skillConfig);
                break;
            default:
                Debug.LogError("暂时不支持其他的方式选择主目标 有需求请联系策划 技能id:" + skillConfig.SkillID + " TagAim " + skillConfig.TagAim);
                returnIndex = 0;
Main/System/Battle/Skill/SkillBase.cs
@@ -17,18 +17,18 @@
                                                        189f / 255f);
    protected SkillEffect skillEffect;
    protected HB427_tagSCUseSkill tagUseSkillAttack;
    public HB427_tagSCUseSkill tagUseSkillAttack;
    public SkillConfig skillConfig;
    protected bool isFinished = false;
    protected BattleField battleField = null; // 战场
    protected RectTransform targetNode = null; // 目标节点
    protected BattleObject caster = null; // 施法者
    public BattleObject caster = null; // 施法者
    protected List<GameNetPackBasic> packList;
    protected List<SkillRecordAction> otherSkillActionList = new List<SkillRecordAction>();
    protected List<H0704_tagRolePackRefresh> dropPackList = new List<H0704_tagRolePackRefresh>();
    protected List<HB405_tagMCAddExp> expPackList = new List<HB405_tagMCAddExp>();
    protected bool moveFinished = false;
    public int fromSkillId;
    public SkillBase fromSkill;
    public bool isPlay = false;
    private float MoveSpeed = 750f;
@@ -219,7 +219,7 @@
            return;
        }
        int mainTargetPosNum = BattleUtility.GetMainTargetPositionNum(caster, tagUseSkillAttack.HurtList.ToList(), skillConfig);
        int mainTargetPosNum = BattleUtility.GetMainTargetPositionNum(this, caster, tagUseSkillAttack.HurtList.ToList(), skillConfig);
        BattleCamp battleCamp = skillConfig.TagFriendly != 0 ? caster.Camp : caster.GetEnemyCamp();
        RectTransform targetTrans = battleField.GetTeamNode(battleCamp, mainTargetPosNum);
@@ -340,17 +340,19 @@
    {
        HandleDead();
        
        skillEffect = SkillEffectFactory.CreateSkillEffect(caster, skillConfig, tagUseSkillAttack);
        skillEffect = SkillEffectFactory.CreateSkillEffect(this, caster, skillConfig, tagUseSkillAttack);
        skillEffect.Play(OnHitTargets);
        foreach (var subSkillPack in tagUseSkillAttack.subSkillList)
        {
            SkillRecordAction recordAction = CustomHB426CombinePack.CreateSkillAction(battleField.guid, new List<GameNetPackBasic>() { subSkillPack });
            recordAction.fromSkill = this;
            otherSkillActionList.Add(recordAction);
            battleField.recordPlayer.ImmediatelyPlay(recordAction);
        }
        foreach (var subCombinePack in tagUseSkillAttack.subSkillCombinePackList)
        {
            SkillRecordAction recordAction = CustomHB426CombinePack.CreateSkillAction(battleField.guid, subCombinePack.packList);
            recordAction.fromSkill = this;
            otherSkillActionList.Add(recordAction);
            battleField.recordPlayer.ImmediatelyPlay(recordAction);
        }
@@ -881,7 +883,7 @@
            if (pack is CustomHB426CombinePack combinePack && combinePack.startTag.Tag.StartsWith("Skill_"))
            {
                var otherSkillAction = combinePack.CreateSkillAction();
                otherSkillAction.fromSkillId = skillConfig.SkillID;
                otherSkillAction.fromSkill = this;
                otherSkillAction.ForceFinish();
            }
            else
@@ -962,7 +964,7 @@
            {
                BattleDebug.LogError("other skill casting " + combinePack.startTag.Tag);
                var otherSkillAction = combinePack.CreateSkillAction();
                otherSkillAction.fromSkillId = skillConfig.SkillID;
                otherSkillAction.fromSkill = this;
                otherSkillActionList.Add(otherSkillAction);
                return false;
            }
Main/System/Battle/Skill/SkillFactory.cs
@@ -71,10 +71,11 @@
            case 5:
            case 6:
            case 14:
            case 15:
                skill = new MountBuffSkill(_caster, skillConfig, vNetData, packList, battleField);
                break;
            default:
                Debug.LogError("超出了技能类型范围 请检查配置, 目前暂时只支持攻击类型的技能");
                Debug.LogError("超出了技能类型范围 请检查配置, 目前暂时只支持攻击类型的技能 " + skillConfig.SkillType);
                break;
        }
Main/System/Battle/SkillEffect/BulletSkillEffect.cs
@@ -18,8 +18,8 @@
    private int scatterTotalTargets = 0;
    public BulletSkillEffect(SkillConfig _skillConfig, BattleObject _caster, HB427_tagSCUseSkill _tagUseSkillAttack)
        : base(_skillConfig, _caster, _tagUseSkillAttack)
    public BulletSkillEffect(SkillBase _skillBase, SkillConfig _skillConfig, BattleObject _caster, HB427_tagSCUseSkill _tagUseSkillAttack)
        : base(_skillBase, _skillConfig, _caster, _tagUseSkillAttack)
    {
    }
Main/System/Battle/SkillEffect/DotSkillEffect.cs
@@ -13,8 +13,8 @@
    // protected BattleObject caster;
    // protected List<BattleObject> targets; // 目标列表
    public DotSkillEffect(SkillConfig _skillConfig, BattleObject _caster, HB427_tagSCUseSkill _tagUseSkillAttack)
        : base(_skillConfig, _caster, _tagUseSkillAttack)
    public DotSkillEffect(SkillBase _skillBase, SkillConfig _skillConfig, BattleObject _caster, HB427_tagSCUseSkill _tagUseSkillAttack)
        : base(_skillBase, _skillConfig, _caster, _tagUseSkillAttack)
    {
    }
Main/System/Battle/SkillEffect/NoEffect.cs
@@ -13,8 +13,8 @@
    // protected BattleObject caster;
    // protected List<BattleObject> targets; // 目标列表
    public NoEffect(SkillConfig _skillConfig, BattleObject _caster, HB427_tagSCUseSkill _tagUseSkillAttack)
        : base(_skillConfig, _caster, _tagUseSkillAttack)
    public NoEffect(SkillBase _skillBase, SkillConfig _skillConfig, BattleObject _caster, HB427_tagSCUseSkill _tagUseSkillAttack)
        : base(_skillBase, _skillConfig, _caster, _tagUseSkillAttack)
    {
    }
@@ -22,7 +22,7 @@
    public override void OnMiddleFrameEnd(int times, int hitIndex)
    {
        int mainTargetIndex = BattleUtility.GetMainTargetPositionNum(caster, tagUseSkillAttack.HurtList.ToList(), skillConfig);
        int mainTargetIndex = BattleUtility.GetMainTargetPositionNum(skillBase, caster, tagUseSkillAttack.HurtList.ToList(), skillConfig);
        BattleCamp battleCamp = skillConfig.TagFriendly == 1 ? caster.Camp : caster.GetEnemyCamp();
Main/System/Battle/SkillEffect/NormalSkillEffect.cs
@@ -11,8 +11,8 @@
    // protected BattleObject caster;
    // protected List<BattleObject> targets; // 目标列表
    public NormalSkillEffect(SkillConfig _skillConfig, BattleObject _caster, HB427_tagSCUseSkill _tagUseSkillAttack)
        : base(_skillConfig, _caster, _tagUseSkillAttack)
    public NormalSkillEffect(SkillBase _skillBase, SkillConfig _skillConfig, BattleObject _caster, HB427_tagSCUseSkill _tagUseSkillAttack)
        : base(_skillBase, _skillConfig, _caster, _tagUseSkillAttack)
    {
    }
@@ -21,7 +21,7 @@
    public override void OnMiddleFrameEnd(int times, int hitIndex)
    {
        int mainTargetIndex = BattleUtility.GetMainTargetPositionNum(caster, tagUseSkillAttack.HurtList.ToList(), skillConfig);
        int mainTargetIndex = BattleUtility.GetMainTargetPositionNum(skillBase, caster, tagUseSkillAttack.HurtList.ToList(), skillConfig);
        BattleCamp battleCamp = skillConfig.TagFriendly == 1 ? caster.Camp : caster.GetEnemyCamp();
Main/System/Battle/SkillEffect/SkillEffect.cs
@@ -4,6 +4,7 @@
public class SkillEffect
{
    protected SkillBase skillBase;
    protected SkillConfig skillConfig;
    protected BattleObject caster;
    protected HB427_tagSCUseSkill tagUseSkillAttack;// 目标列表
@@ -14,8 +15,9 @@
    protected Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> onHit;
    public SkillEffect(SkillConfig _skillConfig, BattleObject _caster, HB427_tagSCUseSkill _tagUseSkillAttack)
    public SkillEffect(SkillBase _skillBase, SkillConfig _skillConfig, BattleObject _caster, HB427_tagSCUseSkill _tagUseSkillAttack)
    {
        skillBase = _skillBase;
        skillConfig = _skillConfig;
        caster = _caster;
        tagUseSkillAttack = _tagUseSkillAttack;
Main/System/Battle/SkillEffect/SkillEffectFactory.cs
@@ -4,26 +4,27 @@
public static class SkillEffectFactory
{
    public static SkillEffect CreateSkillEffect(BattleObject caster, SkillConfig skillConfig, HB427_tagSCUseSkill tagUseSkillAttack)
    public static SkillEffect CreateSkillEffect(SkillBase skillBase, BattleObject caster, SkillConfig skillConfig, HB427_tagSCUseSkill tagUseSkillAttack)
    {
        switch (skillConfig.effectType)
        {
            case SkillEffectType.Bullet:
                return new BulletSkillEffect(skillConfig, caster, tagUseSkillAttack);
                return new BulletSkillEffect(skillBase,skillConfig, caster, tagUseSkillAttack);
            case SkillEffectType.Direct:
                return new NormalSkillEffect(skillConfig, caster, tagUseSkillAttack);
                return new NormalSkillEffect(skillBase, skillConfig, caster, tagUseSkillAttack);
            // case SkillEffectType.BuffEffect:
            //     return new BuffSkillEffect(skillConfig, caster, targets);
            // case SkillEffectType.StageEffect:
            //     return new StageSkillEffect(skillConfig, caster, targets);
            case SkillEffectType.DOTEffect:
                return new DotSkillEffect(skillConfig, caster, tagUseSkillAttack);
                return new DotSkillEffect(skillBase,skillConfig, caster, tagUseSkillAttack);
            case SkillEffectType.NoEffect:
                return new NoEffect(skillConfig, caster, tagUseSkillAttack);
            case SkillEffectType.None:
                return new NoEffect(skillBase, skillConfig, caster, tagUseSkillAttack);
            default:
                UnityEngine.Debug.LogError("Unknown Skill Effect Type " + skillConfig.effectType + " skill id is " + skillConfig.SkillID);
                return new NoEffect(skillConfig, caster, tagUseSkillAttack);
                return new NoEffect(skillBase, skillConfig, caster, tagUseSkillAttack);
                break;
        }
        return null;