//根据效果的名称获取一个深度克隆的效果信息 public EffectInfo GetDepthCloneEffectByName(string effectCode) { EffectInfo effectInfo = TransExpV2 <EffectInfo, EffectInfo> .Trans(effectSysItem.effectInfoMap[effectCode]); //初始化效果 effectSysItem.EffectActionReady(effectInfo); if (effectInfo.preEffectList != null) { //实例化每一个前置后置效果 foreach (string preEffectCode in effectInfo.preEffectList) { EffectInfo preEffectInfo = TransExpV2 <EffectInfo, EffectInfo> .Trans(effectSysItem.effectInfoMap[preEffectCode]); effectSysItem.EffectActionReady(preEffectInfo); effectInfo.preEffectEntryList.Add(preEffectInfo); } } if (effectInfo.postEffectList != null) { //实例化每一个前置后置效果 foreach (string postEffectCode in effectInfo.postEffectList) { EffectInfo postEffectInfo = TransExpV2 <EffectInfo, EffectInfo> .Trans(effectSysItem.effectInfoMap[postEffectCode]); effectSysItem.EffectActionReady(postEffectInfo); effectInfo.postEffectEntryList.Add(postEffectInfo); } } return(effectInfo); }
public void EffectActionReady(EffectInfo effect) { if (effect.operationalTarget != null) { effect.operationalTarget.selectTargetList = new List <TargetSet>(); foreach (string targetSetCode in effect.operationalTarget.selectTarget) { TargetSet targetSetDto = TransExpV2 <TargetSet, TargetSet> .Trans(targetSetMap[targetSetCode]); targetSetDto.CleanEffectTargetSetList(); effect.operationalTarget.selectTargetList.Add(targetSetDto); } } }