|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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,比如毒龙嗜天 | 
|---|
|  |  |  | // 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、怒气值等),复活后错过本回合攻击时机则下一回合才能出手 | 
|---|
|  |  |  | // 攻击技能:本回合对敌人武将造成伤害 | 
|---|
|  |  |  | // 治疗技能:本回合对已方武将回复生命值,回复生命值不可超过生命上限 | 
|---|
|  |  |  | // 辅助技能:增加怒气、召唤、光环等 | 
|---|
|  |  |  | // BUFF技能:提升已方属性的增益BUFF(加攻、加血、加状态等),降低敌方属性的减益BUFF(减攻、减血、控制等),持续多回合 | 
|---|
|  |  |  | // 复活技能:复活已方已死武将并回复X生命值,复活:继承死亡前的所有状态(各种状态、各种BUFF、怒气值等),复活后错过本回合攻击时机则下一回合才能出手 | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static SkillBase CreateSkill(BattleObject _caster, H0604_tagUseSkillAttack vNetData, BattleField battleField) | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static SkillBase CreateSkill(BattleObject _caster, HB427_tagSCUseSkill vNetData, List<GameNetPackBasic> packList, BattleField battleField) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | SkillConfig skillConfig = SkillConfig.Get(vNetData.SkillID); | 
|---|
|  |  |  | SkillConfig skillConfig = SkillConfig.Get((int)vNetData.SkillID); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (null == skillConfig) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | Debug.LogError("skill config is null id is " + vNetData.SkillID); | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | SkillBase skill = null; | 
|---|
|  |  |  | switch (skillConfig.SkillType) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | case 1: | 
|---|
|  |  |  | //   先实现一个攻击的 后续有再慢慢增加 | 
|---|
|  |  |  | skill = new DirectlyDamageSkill(_caster, skillConfig, vNetData, battleField); | 
|---|
|  |  |  | skill = new DirectlyDamageSkill(_caster, skillConfig, vNetData, packList, battleField); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 2: | 
|---|
|  |  |  | // skill = new DirectlyHealSkill(_skillConfig); | 
|---|
|  |  |  | skill = new DirectlyHealSkill(_caster, skillConfig, vNetData, packList, battleField); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 3: | 
|---|
|  |  |  | // skill = new SupportSkill(_skillConfig); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 4: | 
|---|
|  |  |  | // skill = new MountBuffSkill(_skillConfig); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 5: | 
|---|
|  |  |  | // skill = new ReviveSkill(_skillConfig); | 
|---|
|  |  |  | case 6: | 
|---|
|  |  |  | case 14: | 
|---|
|  |  |  | skill = new MountBuffSkill(_caster, skillConfig, vNetData, packList, battleField); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | default: | 
|---|
|  |  |  | Debug.LogError("超出了技能类型范围 请检查配置"); | 
|---|
|  |  |  | Debug.LogError("超出了技能类型范围 请检查配置, 目前暂时只支持攻击类型的技能"); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // skill 挂载buff | 
|---|
|  |  |  | // skill  1 2 3 4技能 | 
|---|
|  |  |  | // skill头 B428 尾 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return skill; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|