/// <summary> /// 判断某一skilleffect是否是有害的. /// </summary> /// <param name="type">skilleffect的类型</param> /// <param name="resID">skilleffect的资源ID</param> /// <returns></returns> public static bool IsHarmfulEffect(SkillEffectType type, uint resID) { switch (type) { case SkillEffectType.Buff: SkillBuffTableItem resBuff = DataManager.BuffTable[resID] as SkillBuffTableItem; return(resBuff == null || resBuff.harmful); case SkillEffectType.Impact: SkillImpactTableItem resImpact = DataManager.ImpactTable[resID] as SkillImpactTableItem; return(resImpact == null || resImpact.harmful); case SkillEffectType.Displacement: SkillDisplacementTableItem resDisplacement = DataManager.DisplacementTable[resID] as SkillDisplacementTableItem; return(resDisplacement == null || resDisplacement.harmful); case SkillEffectType.Spasticity: return(true); default: ErrorHandler.Parse(ErrorCode.LogicError, "invalid skill effect type: " + type); break; } return(true); }
private bool checkImpact() { DataType myName = DataType.DATA_SKILL_IMPACT; const string onlyHarmfulAvailable = "该列只对有害的impact有效, 无害的需要填入0"; IDictionaryEnumerator itr = DataManager.ImpactTable.GetEnumerator(); while (itr.MoveNext()) { SkillImpactTableItem item = itr.Value as SkillImpactTableItem; if (!item.harmful) { if (!checkParam(item.damageAddPerMile == 0, myName, item.resID, "附加距离伤害", onlyHarmfulAvailable)) { return(false); } if (!checkParam(item.damageAttrPercent == 0, myName, item.resID, "伤害属性百分比", onlyHarmfulAvailable)) { return(false); } } else { if (!checkParam(item.impactDamageType < ImpactDamageType.Count, myName, item.resID, "伤害类型")) { return(false); } } if (!checkParam(item.shakeCameraDuration != uint.MaxValue, myName, item.resID, "无效的震屏时间")) { return(false); } if (!checkParam(item.damageAttrPercent >= 0f, myName, item.resID, "伤害属性百分比", "伤害属性百分比 ≥ 0")) { return(false); } if (item._3DEffectID != uint.MaxValue && !checkLink(myName, item.resID, DataType.DATA_EFFECT, item._3DEffectID)) { return(false); } } // foreach (int key in DataManager.ImpactTable.Keys) // { // // } return(true); }
public override bool Initialize(SkillEffectInitParam param) { SkillImpactInitParam initParam = param as SkillImpactInitParam; mImpactRes = initParam.impactResource; if (mImpactRes == null) { return(false); } return(base.Initialize(param)); }