protected SimScenario GetNewScenario(StoryProgressionObject manager, SimDescription sim, SimDescription target) { if (mScenario == null) { return(null); } SimScenario simScenario = mScenario.Clone() as SimScenario; simScenario.Manager = manager; switch (mScenarioActor) { case PropagateBuffScenario.WhichSim.Actor: simScenario.Sim = sim; break; case PropagateBuffScenario.WhichSim.Target: simScenario.Sim = target; break; case PropagateBuffScenario.WhichSim.NotActor: simScenario.NotSim = sim; break; case PropagateBuffScenario.WhichSim.NotTarget: simScenario.NotSim = target; break; } DualSimScenario dualSimScenario = simScenario as DualSimScenario; if (dualSimScenario != null) { switch (mScenarioTarget) { case PropagateBuffScenario.WhichSim.Actor: dualSimScenario.Target = sim; break; case PropagateBuffScenario.WhichSim.Target: dualSimScenario.Target = target; break; case PropagateBuffScenario.WhichSim.NotActor: dualSimScenario.NotTarget = sim; break; case PropagateBuffScenario.WhichSim.NotTarget: dualSimScenario.NotTarget = target; break; } } return(simScenario); }
protected static void OnPerform(Scenario scenario, ScenarioFrame frame) { DualSimScenario s = scenario as DualSimScenario; ManagerRomance.AffairStory affairStory = ManagerRomance.AffairStory.All; OldFlirtScenario flirtScenario = scenario as OldFlirtScenario; if (flirtScenario != null) { affairStory = flirtScenario.AffairStory; } scenario.Add(frame, new AffairScenario(s.Sim, s.Target, affairStory), ScenarioResult.Failure); }
public static void OnPerform(Scenario scenario, ScenarioFrame frame) { DualSimScenario s = scenario as DualSimScenario; if (s == null) { return; } if (RandomUtil.CoinFlip()) { scenario.Add(frame, new EngagementGatheringScenario(s.Sim), ScenarioResult.Start); } else { scenario.Add(frame, new EngagementGatheringScenario(s.Target), ScenarioResult.Start); } }
public bool TestBeforehand(StoryProgressionObject manager, SimDescription sim, SimDescription target) { if (!mTestBeforehand) { return(true); } SimScenario scenario = GetNewScenario(manager, sim, target); if (scenario == null) { return(true); } if (scenario.GetAllowedSims().Count == 0) { return(false); } DualSimScenario dualScenario = scenario as DualSimScenario; if (dualScenario != null) { bool found = false; foreach (SimDescription actor in scenario.GetAllowedSims()) { if (dualScenario.GetAllowedTargets(actor).Count > 0) { found = true; break; } } if (!found) { return(false); } } return(true); }
public NewEnemyScenario(DualSimScenario scenario) : this(scenario.Sim, scenario.Target) { }
public NewFriendScenario(DualSimScenario scenario) : this(scenario.Sim, scenario.Target) { }