예제 #1
0
        /// <summary>
        /// 显示未命中时候的效果
        /// </summary>
        public static void ShowDamageEffect(Damage dmg, uint effectType, int value = 0)
        {
            var damageEffects = DBDamageEffect.GetInstance().DamagetEffects;

            using (var enumer = damageEffects.GetEnumerator())
            {
                while (enumer.MoveNext())
                {
                    var info = enumer.Current.Value;

                    // 从DBDamageEffect配表中获取匹配的特殊伤害类型
                    if ((effectType & info.ID) != 0)
                    {
                        FightEffectHelp.FightEffectType type = FightEffectHelp.GetFightEffectTypeByDamageEffect((Damage.EDamageEffect)info.ID);

                        if (info.Target == DBDamageEffect.EffectTarget.ET_DEST)
                        {
                            var targer_actor = dmg.target;
                            if (targer_actor != null)
                            {
                                targer_actor.ShowDamageEffect(type, dmg.SrcID, value);
                            }
                        }
                        else if (info.Target == DBDamageEffect.EffectTarget.ET_SRC)
                        {
                            var src_actor = dmg.src;
                            if (src_actor != null)
                            {
                                if (type == FightEffectHelp.FightEffectType.OneHitKill)
                                {
                                    continue;
                                }
                                src_actor.ShowDamageEffect(type, dmg.SrcID, value);
                            }
                        }
                    }
                }
            }
        }
예제 #2
0
 public DBDamageEffect(string strName, string strPath) :
     base(strName, strPath)
 {
     mInstance = this;
 }