public void Perform(Scenario scenario, ScenarioFrame frame, SimDescription actor, SimDescription target) { if (mScenario != null) { PropagateBuffScenario propagation = mScenario.Clone() as PropagateBuffScenario; propagation.SetActors(actor, target); scenario.IncStat("Propagate"); scenario.Add(frame, propagation, ScenarioResult.Start); } }
public bool Parse(XmlDbRow row, Origin origin, string prefix, ref string error) { if ((!string.IsNullOrEmpty(prefix)) && (!Parse(row, origin, null, ref error))) { return(false); } if (row.Exists(prefix + "PropagateFullClassName")) { Type scenarioType = row.GetClassType(prefix + "PropagateFullClassName"); if (scenarioType == null) { error = prefix + "PropagateFullClassName invalid"; return(false); } mScenario = null; try { mScenario = scenarioType.GetConstructor(new Type[0]).Invoke(new object[0]) as PropagateBuffScenario; } catch { } if (mScenario == null) { error = prefix + "PropagateFullClassName constructor fail"; return(false); } mScenario.Origin = origin; if (!mScenario.Parse(row, prefix, true, ref error)) { return(false); } if (!mScenario.PostParse(ref error)) { return(false); } } return(true); }