yyl
2025-08-29 fbfee35b87ead1c2cbbe6002c289fbcf56d320b1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
 
using System.Collections.Generic;
using UnityEngine;
 
 
public static class SkillFactory
{
    // SkillType    
    // 技能类型    定义
    // 特殊   0    
    // 攻击类   1    主动会造成瞬间伤害技能类型为1
    // 恢复类   2    主动会恢复生命值的技能类型为2
    // 持续增益BUFF  3    主动一段时间内间隔时间给予增益buff技能类型为3,比如持续回血
    // 持续减益BUFF  4    主动一段时间内间隔时间给予减益buff技能类型为4,比如中毒
    // 增益BUFF 5    主动持续一段时间给予增益buff,不会出现间隔时间buff类型为5,比如麒麟盾
    // 减益BUFF 6    主动持续一段时间给予减益buff,不会出现间隔时间buff类型为6,比如减速
    // 被动技   7    被动触发的技能类型为7
    // 复活     8    牧师复活队友技能,暂时无用
    // 增值技能(不可清除)9      和增益技能类似,无法点击图标取消,暂时无用
    // 光环技能  10    队友共享该技能的光环,类似魔兽争霸的强击光环,荆棘光环,暂时无这样技能
    // 装备技能  11    装备上附加了技能,比如套装附加攻击+50%,暂时无这样技能
    // 区域技能  12    "布怪器里 有个配置技能ID  比如配个火区域灼烧
    // "
    // 召唤      13    主动召唤出一个怪物,则配置为13,暂时无这样的技能
    // 控制型BUFF 14    比如眩晕,定身技能需要配置控制型buff
    // 多段伤害buff攻击类型(类xp技能) 15    多段伤害主动每秒伤害buff技能类型为15
    // 被动触发增益类buff 16    被动触发持续一段时间给予增益buff,不会出现间隔时间buff类型为16,如(50065疾风)
    // 被动触发减益类buff 17    被动触发持续一段时间给予减益buff,不会出现间隔时间buff类型为17,如(50235负伤)
    // 被动触发的控制类buff 18    被动触发持续一段时间的控制技能为17,如(50365激怒)
    // 属性类技能 20(如坐骑属性,宠物属性)    被动增加了属性效果值,长期的技能为20,如(50605守护)
    // 被动buff 19(暂时不知道干啥的)    
    // 被动触发持续类增益类buff 21    被动一段时间内间隔时间给予增益buff技能类型为3,比如(50635祝福)
    // 被动触发持续类减益类buff 22    被动一段时间内间隔时间给予减益buff技能类型为4,比如毒龙嗜天
 
 
    // 攻击技能:本回合对敌人武将造成伤害
    // 治疗技能:本回合对已方武将回复生命值,回复生命值不可超过生命上限
    // 辅助技能:增加怒气、召唤、光环等
    // BUFF技能:提升已方属性的增益BUFF(加攻、加血、加状态等),降低敌方属性的减益BUFF(减攻、减血、控制等),持续多回合
    // 复活技能:复活已方已死武将并回复X生命值,复活:继承死亡前的所有状态(各种状态、各种BUFF、怒气值等),复活后错过本回合攻击时机则下一回合才能出手
 
 
 
 
 
    public static SkillBase CreateSkill(BattleObject _caster, HB427_tagSCUseSkill vNetData, List<GameNetPackBasic> packList, BattleField battleField)
    {
        SkillConfig skillConfig = SkillConfig.Get((int)vNetData.SkillID);
 
        if (null == skillConfig)
        {
            Debug.LogError("skill config is null id is " + vNetData.SkillID);
            return null;
        }
 
        Debug.LogError("skill type is " + skillConfig.SkillType + " skill id is " + vNetData.SkillID);
 
 
        SkillBase skill = null;
        switch (skillConfig.SkillType)
        {
            case 1:
                //    先实现一个攻击的 后续有再慢慢增加
                skill = new DirectlyDamageSkill(_caster, skillConfig, vNetData, packList, battleField);
                break;
            // case 2:
            //     // skill = new DirectlyHealSkill(_skillConfig);
            //     break;
            // case 3:
            // case 4:
            // case 5:
            // case 6:
            // case 14:
                // // skill = new MountBuffSkill(_caster, skillConfig, vNetData, packList, battleField);
                // break;
            default:
                Debug.LogError("超出了技能类型范围 请检查配置, 目前暂时只支持攻击类型的技能");
                break;
        }
 
        return skill;
    }
}