Ejemplo n.º 1
0
 protected virtual void Initialize(ref InteractionInstanceParameters parameters)
 {
     OverridedFridge_Have.Definition definition = parameters.InteractionDefinition as OverridedFridge_Have.Definition;
     this.MenuText           = definition.MenuText;
     this.MenuPath           = definition.MenuPath;
     this.mbWasHaveSomething = definition.WasHaveSomething;
     this.Destination        = definition.Destination;
     this.Quantity           = definition.Quantity;
     if (definition.ChosenRecipe == null)
     {
         if (base.Autonomous && this.Actor.SimDescription.IsVampire)
         {
             this.ChosenRecipe = Recipe.NameToRecipeHash["VampireJuice"];
         }
         else
         {
             Lot lotCurrent = parameters.Actor.LotCurrent;
             if (lotCurrent != null && lotCurrent.GetSims(new Predicate <Sim>(this.ShouldCookFor)).Count > 1)
             {
                 this.Quantity = Recipe.MealQuantity.Group;
             }
             this.ChosenRecipe = Food.ChooseRecipeRandomly(parameters.Target.LotCurrent, parameters.Actor as Sim, parameters.Autonomous, null, this.Quantity);
             if (!this.ChosenRecipe.CanMakeGroupServing && this.Quantity == Recipe.MealQuantity.Group)
             {
                 this.Quantity = Recipe.MealQuantity.Single;
             }
         }
         this.ObjectClickedOn = (parameters.Target as GameObject);
         return;
     }
     this.ChosenRecipe    = definition.ChosenRecipe;
     this.ObjectClickedOn = definition.ObjectClickedOn;
     this.Repetition      = definition.Repetition;
 }
Ejemplo n.º 2
0
 public OverridedFoodMenuInteractionDefinition(string menuText, Recipe recipe, string[] menuPath, GameObject objectClickedOn, Recipe.MealDestination destination, Recipe.MealQuantity quantity, Recipe.MealRepetition repetition, bool bWasHaveSomething, int cost)
 {
     this.MenuText         = menuText;
     this.ChosenRecipe     = recipe;
     this.MenuPath         = menuPath;
     this.Destination      = destination;
     this.Quantity         = quantity;
     this.Repetition       = repetition;
     this.WasHaveSomething = bWasHaveSomething;
     this.ObjectClickedOn  = objectClickedOn;
     this.Cost             = cost;
 }
Ejemplo n.º 3
0
 public override FoodMenuInteractionDefinition <Stove, Stove_Have> Create(string menuText, Recipe recipe, string[] menuPath, GameObject objectClickedOn, Recipe.MealDestination destination, Recipe.MealQuantity quantity, Recipe.MealRepetition repetition, bool bWasHaveSomething, int cost)
 {
     if (cost > 0)
     {
         cost = -2147483648;
     }
     return(new Definition(menuText, recipe, menuPath, objectClickedOn, destination, quantity, repetition, bWasHaveSomething, cost));
 }
Ejemplo n.º 4
0
 public Definition(string menuText, Recipe recipe, string[] menuPath, GameObject objectClickedOn, Recipe.MealDestination destination, Recipe.MealQuantity quantity, Recipe.MealRepetition repetition, bool bWasHaveSomething, int cost)
     : base(menuText, recipe, menuPath, objectClickedOn, destination, quantity, repetition, bWasHaveSomething, cost)
 {
 }
Ejemplo n.º 5
0
 protected override OverridedFoodMenuInteractionDefinition <Microwave, OverridedMicrowave_Have> Create(string menuText, Recipe recipe, string[] menuPath, GameObject objectClickedOn, Recipe.MealDestination destination, Recipe.MealQuantity quantity, Recipe.MealRepetition repetition, bool bWasHaveSomething, int cost)
 {
     return(new OverridedMicrowave_Have.Definition(menuText, recipe, menuPath, objectClickedOn, destination, quantity, repetition, bWasHaveSomething, cost));
 }
Ejemplo n.º 6
0
 protected override OverridedFoodMenuInteractionDefinition <Fridge, OverridedFridge_Have> Create(string menuText, Recipe recipe, string[] menuPath, GameObject objectClickedOn, Recipe.MealDestination destination, Recipe.MealQuantity quantity, Recipe.MealRepetition repetition, bool bWasHaveSomething, int cost)
 {
     menuPath = new string[]
     {
         Localization.LocalizeString("Gameplay/Objects/FoodObjects:PrepareMenuPath", new object[0])
     };
     return(new OverridedFridge_Prepare.PrepareDefinition(menuText, recipe, menuPath, objectClickedOn, Recipe.MealDestination.SurfaceOnly, Recipe.MealQuantity.Group, repetition, bWasHaveSomething, cost));
 }
Ejemplo n.º 7
0
 protected abstract OverridedFoodMenuInteractionDefinition <TTarget, TInteraction> Create(string menuText, Recipe recipe, string[] menuPath, GameObject objectClickedOn, Recipe.MealDestination destination, Recipe.MealQuantity quantity, Recipe.MealRepetition repetition, bool bWasHaveSomething, int cost);
Ejemplo n.º 8
0
        private bool StartCookingProcessWithFoodTray(string menuText, string[] menuPath, Recipe.MealDestination destination, Recipe.MealQuantity quantity, Recipe.MealRepetition repetition)
        {
            List <Ingredient> ingredientsUsed = new List <Ingredient>();

            if (!this.Actor.IsNPC && !AniRecipe.UseUpIngredientsFrom(this.ChosenRecipe, this.Actor, ref ingredientsUsed, quantity, false))
            {
                return(false);
            }
            this.Actor.SkillManager.AddElement(SkillNames.Cooking);
            FoodTray foodTray = (FoodTray)GlobalFunctions.CreateObject("FoodTray", Vector3.OutOfWorld, 0, Vector3.UnitZ);

            foodTray.CookingProcess = new CookingProcess(this.ChosenRecipe, ingredientsUsed, this.Target, this.Target.LotCurrent, destination, quantity, repetition, menuText, menuPath, foodTray, this.Actor);
            foodTray.CreateFoodProp(Slots.Hash("Slot_0"), foodTray.CookingProcess.Recipe.ModelsAndMaterials.GrillModel_FoodTray);
            CookingProcess.MoveToNextStep(foodTray, this.Actor);
            CookingProcess.MoveToNextStep(foodTray, this.Actor);
            CookingProcess.MoveToNextStep(foodTray, this.Actor);
            StateMachineClient stateMachineClient = StateMachineClient.Acquire(this.Actor.Proxy.ObjectId, "Grill");

            if (stateMachineClient == null)
            {
                return(false);
            }
            stateMachineClient.AddInterest <TraitNames>(TraitNames.Clumsy);
            stateMachineClient.SetActor("x", this.Actor);
            stateMachineClient.SetActor("FoodTray", foodTray);
            stateMachineClient.EnterState("x", "Enter - Hands Empty");
            stateMachineClient.RequestState("x", "Take Out Food Tray");
            stateMachineClient.RequestState("x", "Exit - Holding Food Tray");
            if (this.Actor.HasExitReason(ExitReason.Canceled))
            {
                CarrySystem.EnterWhileHolding(this.Actor, foodTray);
                Food.PutHeldObjectDownOnCounterTableOrFloor(this.Actor, SurfaceType.Normal);
                return(false);
            }
            CarrySystem.EnterWhileHolding(this.Actor, foodTray);
            InteractionInstance instance = FoodTray_Prepare.Singleton.CreateInstance(foodTray, this.Actor, this.Actor.InheritedPriority(), base.Autonomous, true);

            return(this.Actor.InteractionQueue.PushAsContinuation(instance, true));
        }
Ejemplo n.º 9
0
        public static bool ForcePushFridgeHave(Sim sim, GameObject objectToFindFridgeRelativeTo, Recipe chosenRecipe, Recipe.MealDestination destination, Recipe.MealQuantity quantity, Recipe.MealRepetition repetition)
        {
            Fridge closestObject = GlobalFunctions.GetClosestObject <Fridge>(objectToFindFridgeRelativeTo, false, true, null, null);

            if (closestObject == null)
            {
                return(false);
            }
            InteractionObjectPair         iop = new InteractionObjectPair(new OverridedFridge_Have.Definition(null, chosenRecipe, null, objectToFindFridgeRelativeTo, destination, quantity, repetition, false, 0), closestObject);
            InteractionInstanceParameters interactionInstanceParameters = new InteractionInstanceParameters(iop, sim, sim.InheritedPriority(), false, true);

            return(sim.InteractionQueue.AddNext(OverridedFridge_Have.Singleton.CreateInstanceFromParameters(ref interactionInstanceParameters)));
        }