123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- using CommonAI.Zone;
- using CommonLang;
- using CommonLang.Property;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using XmdsCommonServer.Plugin.XmdsSkillTemplate.Skills;
- namespace XmdsCommonSkill.Plugin.Interface
- {
- public class ComSpellTemplate
- {
- //法术类型魔板信息
- public enum XmdsSpellID : int
- {
- [Desc("治疗1-3,分裂扇")]
- SPLIT_FAN = 510131,
- [Desc("战士4-6,气血冲击")]
- WARRIOR_4_6 = 110461,
- [Desc("战士2-6,护盾破碎")]
- WARRIOR_2_6_DunBreak = 110261,
- [Desc("宠物Give-冰冻射线")]
- ROUND_FROZENLINE = 100000,
- [Desc("治疗普攻强化-飞花")]
- REMEDY_NORMALATK_1 = 510002,
- [Desc("治疗普攻强化-弹射")]
- REMEDY_NORMALATK_2 = 510003,
- [Desc("宠物Give-溅射")]
- PETGIVE_SPUTTER = 100001,
- [Desc("宠物Give-范围伤害")]
- PETGIVE_ROUNDDAMAGE = 100002,
- [Desc("法师,闪现后回原地范围伤害")]
- FS_MOVE_BACK = 310008,
- [Desc("周本boss五行特效-金")]
- BOSS_ZB_EFFECT_GOLD = 91301,
- [Desc("周本boss五行特效-木")]
- BOSS_ZB_EFFECT_WOOD = 91302,
- [Desc("周本boss五行特效-水")]
- BOSS_ZB_EFFECT_WATER = 91303,
- [Desc("周本boss五行特效-火")]
- BOSS_ZB_EFFECT_FIRE = 91304,
- [Desc("周本boss五行特效-土")]
- BOSS_ZB_EFFECT_SOIL = 91305,
- [Desc("周本boss五行-冲击波")]
- BOSS_ZB_EFFECT_DAMAGE = 91306,
- //斩妖技-法术
- [Desc("斩妖技-战士1")]
- ZHANYAO_ZS_1 = 70010,
- [Desc("斩妖技-战士2")]
- ZHANYAO_ZS_2 = 70011,
- [Desc("斩妖技-法师1")]
- ZHANYAO_FS_1 = 70020,
- [Desc("斩妖技-法师2")]
- ZHANYAO_FS_2 = 70021,
- [Desc("斩妖技-治疗1")]
- ZHANYAO_NM_1 = 70030,
- [Desc("斩妖技-治疗2")]
- ZHANYAO_NM_2 = 70031,
- // 天书特效
- [Desc("天书-天火")]
- TIANSHU_1 = 100101,
- [Desc("天书-地火")]
- TIANSHU_2 = 100102,
- [Desc("天书-阳雷")]
- TIANSHU_3 = 100103,
- [Desc("天书-阴雷")]
- TIANSHU_4 = 100104,
- [Desc("天书-天火-敌")]
- TIANSHU_1_ENEMY = 100105,
- [Desc("天书-地火-敌")]
- TIANSHU_2_ENEMY = 100106,
- [Desc("天书-阳雷-敌")]
- TIANSHU_3_ENEMY = 100107,
- [Desc("天书-阴雷-敌")]
- TIANSHU_4_ENEMY = 100108,
- [Desc("天书-敌人")]
- TIANSHU_5 = 100109,
- [Desc("天书-")]
- TIANSHU_5_ENEMY = 100110,
- //boss特殊法术
- DUNGEON_DEADSPELL = 910190, //副本,小怪死亡,boss释放
- //宠物装备802XX-803XX
- }
- private static ComSpellTemplate instance;
- private static readonly int BuffTemplateId = 123456; // 职业&默认法术模板
- private static readonly int BuffTemplateId_PET = 123458; // 宠物装备的法术,比较多,单独弄一个
- private static readonly int BuffTemplateId_CARDSKILL = 1999999; // 卡牌模块法术模板
- // 通用法术模板
- private static HashMap<int, LaunchSpell> mCacheSpell = new HashMap<int, LaunchSpell>();
- // 卡牌法术模板
- private static HashMap<int, LaunchSpell> mCardSpell = new HashMap<int, LaunchSpell>();
-
- public static ComSpellTemplate Instance()
- {
- if (instance == null)
- {
- instance = new ComSpellTemplate();
- instance.Init();
- }
- return instance;
- }
- private ComSpellTemplate() { }
- private void Init()
- {
- SpellTemplate mSpellInfo = XmdsBattleSkill.GetSpellTemplate(BuffTemplateId);
- for (int i = 0; i < mSpellInfo.KeyFrames.Count; i++)
- {
- mCacheSpell.Put(mSpellInfo.KeyFrames[i].Spell.SpellID, mSpellInfo.KeyFrames[i].Spell);
- }
- mSpellInfo = XmdsBattleSkill.GetSpellTemplate(BuffTemplateId_PET);
- for (int i = 0; i < mSpellInfo.KeyFrames.Count; i++)
- {
- mCacheSpell.Put(mSpellInfo.KeyFrames[i].Spell.SpellID, mSpellInfo.KeyFrames[i].Spell);
- }
- //卡牌法术
- mSpellInfo = XmdsBattleSkill.GetSpellTemplate(BuffTemplateId_CARDSKILL);
- if(mSpellInfo != null)
- {
- for (int i = 0; i < mSpellInfo.KeyFrames.Count; i++)
- {
- mCardSpell.Put(mSpellInfo.KeyFrames[i].Spell.SpellID, mSpellInfo.KeyFrames[i].Spell);
- }
- }
- }
- public LaunchSpell GetSpellByID(XmdsSpellID spellID)
- {
- return mCacheSpell.Get((int)spellID);
- }
- public LaunchSpell GetSpellBySpellID(int spellID)
- {
- return mCacheSpell.Get(spellID);
- }
- public LaunchSpell GetCardSpell(int spellID)
- {
- LaunchSpell launchSpll = mCardSpell.Get(spellID);
- if(launchSpll == null)
- {
- launchSpll = CommonAI.ZoneServer.JSGModule.JSGGlobalData.GetUnConfigSpellByID(spellID);
- }
-
- return launchSpll;
- }
- }
- }
|