Ejemplo n.º 1
0
            public override bool Run()
            {
                Counter parent = base.Target.Parent as Counter;

                if (parent == null)
                {
                    return(false);
                }
                if (!SurfaceUtil.RouteToObjectOnSurface(parent, base.Actor, base.Target))
                {
                    return(false);
                }
                base.StandardEntry();

                this.Cup = this.MakeCup() as HotBeverageMachine.Cup;
                this.Cup.SetHiddenFlags(HiddenFlags.Model);

                this.BarTray = GlobalFunctions.CreateObject("barTray", (base.Target.Parent ?? base.Target).Position, base.Target.Level, Vector3.UnitZ) as BarTray;
                this.BarTray.SetHiddenFlags(HiddenFlags.Model);
                this.BarTray.AddInteraction(CallForCoffee.Singleton);

                base.Target.mLastCreatedTrayOfDrinksId = this.BarTray.ObjectId;
                HotBeverageMachine.EnterStateMachine(this);
                base.AddOneShotScriptEventHandler(100, new SacsEventHandler(this.FillTray));
                base.SetActor("coffeeCup", this.Cup);
                base.SetActor("barTray", this.BarTray);
                base.BeginCommodityUpdates();
                base.AnimateSim("Make Many Drinks");
                base.EndCommodityUpdates(true);
                base.StandardExit();
                CarrySystem.VerifyAnimationParent(this.BarTray, base.Actor);
                CarrySystem.EnterWhileHolding(base.Actor, this.BarTray);
                CarrySystem.PutDown(base.Actor, SurfaceType.Normal, true);
                //if ((!base.Autonomous || !base.Actor.HasBuffsToPreventSleepiness()) && CarrySystem.PickUp(base.Actor, this.Cup))
                //{
                //    this.Cup.PushDrinkAsContinuation(base.Actor);
                //}
                base.mCurrentStateMachine.Dispose();
                this.Cup.StartEffects();
                if (parent.IsCleanable)
                {
                    parent.Cleanable.DirtyInc(base.Actor);
                }
                return(true);
            }