public StandardMoveInLotScenario(HouseholdBreakdown breakdown, int maximumLoan)
     : base(breakdown)
 {
     mMaximumLoan = maximumLoan;
 }
 protected override MoveInLotScenario GetMoveInLotScenario(HouseholdBreakdown breakdown)
 {
     return new StrandedMoveInLotScenario(breakdown, mMaximumLoan);
 }
 protected override MoveInLotScenario GetMoveInLotScenario(HouseholdBreakdown breakdown)
 {
     return new StandardMoveInLotScenario(breakdown, 0);
 }
 public StrandedMoveInLotScenario(HouseholdBreakdown breakdown, int maximumLoan)
     : base(breakdown, maximumLoan)
 { }
 public MarriageMoveMoveInLotScenario(HouseholdBreakdown breakdown)
     : base(breakdown)
 { }
 protected override MoveInLotScenario GetMoveInLotScenario(HouseholdBreakdown breakdown)
 {
     return new MarriageMoveMoveInLotScenario(breakdown);
 }
        protected override bool PrivateUpdate(ScenarioFrame frame)
        {
            HouseholdBreakdown breakdown = new HouseholdBreakdown(Manager, this, UnlocalizedName, Sim, HouseholdBreakdown.ChildrenMove.Scoring, mIgnoreHead);

            if (!breakdown.SimGoing)
            {
                IncStat("Not Going");
                return false;
            }
            else if ((breakdown.NoneStaying) && (GetValue<IsAncestralOption, bool>(Sim.Household)))
            {
                IncStat("Ancestral");
                return false;
            }

            Add(frame, new InspectedMoveInScenario(breakdown.Going, Target), ScenarioResult.Start);
            return false;
        }
Beispiel #8
0
        protected override bool PrivateUpdate(ScenarioFrame frame)
        {
            HouseholdBreakdown breakdown = new HouseholdBreakdown(Manager, this, UnlocalizedName, Sim, ChildMove, false);

            if (!breakdown.SimGoing)
            {
                IncStat("Staying");
                return false;
            }
            else if ((breakdown.NoneStaying) && (Sim.LotHome != null))
            {
                IncStat("None Staying");
                return false;
            }
            else if (breakdown.NoneGoing)
            {
                IncStat("None Going");
                return false;
            }
            else if ((mStay != null) && (breakdown.Going.Contains(mStay)))
            {
                IncStat("Both Going");
                return false;
            }

            if (Households.AllowSoloMove (Sim))
            {
                Add(frame, GetMoveInLotScenario(breakdown.Going), ScenarioResult.Failure);
            }

            Add(frame, GetMoveInScenario(breakdown.Going), ScenarioResult.Failure);
            return false;
        }