Пример #1
0
        public static MultiplayerBench FromBench(Bench origin, GameObject target, Side side, GameObject animatorRoot)
        {
            Animator  animator        = animatorRoot.GetComponent <Animator>();
            Transform playerTarget    = animatorRoot.transform.Find("root/cine_loc/player_target");
            Transform playerOutTarget = animatorRoot.transform.Find("out_target");

            MultiplayerBench bench = target.AddComponent <MultiplayerBench>();

            bench.frontObstacleCheck         = origin.frontObstacleCheck;
            bench.backObstacleCheck          = origin.backObstacleCheck;
            bench.frontAnimRotation          = origin.frontAnimRotation;
            bench.backAnimRotation           = origin.backAnimRotation;
            bench.checkDistance              = origin.checkDistance;
            bench.handText                   = origin.handText;
            bench.triggerType                = origin.triggerType;
            bench.volumeTriggerType          = origin.volumeTriggerType;
            bench.standUpCinematicController = origin.standUpCinematicController;
            bench.cinematicController        = origin.cinematicController;

            bench.onCinematicStart = new CinematicModeEvent();
            bench.onCinematicEnd   = new CinematicModeEvent();
            bench.side             = side;

            bench.animator     = animator;
            bench.playerTarget = playerTarget;
            bench.cinematicController.animatedTransform        = playerTarget;
            bench.cinematicController.animator                 = animator;
            bench.cinematicController.informGameObject         = target;
            bench.standUpCinematicController.animatedTransform = playerTarget;
            bench.standUpCinematicController.endTransform      = playerOutTarget;
            bench.standUpCinematicController.animator          = animator;
            bench.standUpCinematicController.informGameObject  = target;

            return(bench);
        }
Пример #2
0
    /*
     *	Add to the bench with the least amount of people on it
     *
     *	If nothing available return null
     */
    public Bench AddToBench(Passenger passenger)
    {
        // find the bench with the lostwest number of passengers on it
        Bench mostAvailableBench = null;

        foreach (Bench bench in benches)
        {
            if (mostAvailableBench == null)
            {
                mostAvailableBench = bench;
            }
            else if (bench.GetBenchSpaces() > mostAvailableBench.GetBenchSpaces())
            {
                mostAvailableBench = bench;
            }
        }

        // make sure there is a bench available
        if (mostAvailableBench != null)
        {
            mostAvailableBench.AddPassenger(passenger);
            return(mostAvailableBench);
        }

        return(null);
    }
Пример #3
0
        /// <summary>
        /// Attempts to add a bench.
        ///
        /// ROUTE:
        /// "api/bench"
        ///
        /// REQUEST BODY:
        /// {
        ///     "Description": `string`,
        ///     "Latitude": `float`,
        ///     "Longitude": `float`,
        ///     "NumberSeats": `int`,
        ///     "UserId": `int`
        /// }
        ///
        /// RESPONSE BODY:
        /// {
        ///     "Success": `bool`,
        ///     "Id": `int`,
        ///     "Description": `string`,
        ///     "Latitude": `float`,
        ///     "Longitude": `float`,
        ///     "NumberSeats": `int`,
        ///     "UserId": `int`
        /// }
        /// </summary>
        /// <param name="request">The request body.</param>
        /// <returns>The response body.</returns>
        public async Task <BenchAddResponse> Post(BenchAddRequest request)
        {
            var response = new BenchAddResponse()
            {
                Success = false
            };

            if (ModelState.IsValid)
            {
                var bench = new Bench()
                {
                    Description = request.Description,
                    Latitude    = request.Latitude.Value,
                    Longitude   = request.Longitude.Value,
                    NumberSeats = request.NumberSeats.Value,
                    UserId      = request.UserId.Value
                };
                var benchId = await _benchRepo.AddAsync(bench);

                if (benchId.HasValue)
                {
                    response.Success     = true;
                    response.Id          = benchId.Value;
                    response.Description = bench.Description;
                    response.Latitude    = bench.Latitude;
                    response.Longitude   = bench.Longitude;
                    response.NumberSeats = bench.NumberSeats;
                    response.UserId      = bench.UserId;
                }
            }

            return(response);
        }
Пример #4
0
 public ActionResult Add(BenchAddViewModel viewModel)
 {
     if (ModelState.IsValid)
     {
         var bench = new Bench()
         {
             Description = viewModel.Description,
             Latitude    = viewModel.Latitude.Value,
             Longitude   = viewModel.Longitude.Value,
             NumberSeats = viewModel.NumberSeats,
             UserId      = ((CustomPrincipal)User).Id
         };
         // TODO validation
         if (benchRepo.Add(bench))
         {
             return(RedirectToAction("Index"));
         }
         else
         {
             ModelState.AddModelError("", "Unable to add bench.");
         }
     }
     else
     {
         ModelState.AddModelError("", "All fields are required.");
     }
     return(View(viewModel));
 }
Пример #5
0
        public ActionResult View(int?id)
        {
            if (id == null)
            {
                return(RedirectToAction("Index"));
            }

            BenchRepository benchRepo = new BenchRepository(context);
            Bench           bench     = benchRepo.GetBenchById(id.Value);

            if (bench == null)
            {
                return(RedirectToAction("Index"));
            }

            ReviewRepository reviewRepo = new ReviewRepository(context);
            List <Review>    reviews    = reviewRepo.GetReviewsByBench(id.Value);

            UserRepository userRepo = new UserRepository(context);
            List <User>    users    = userRepo.GetUsers();

            var viewModel = new BenchViewModel();

            viewModel.Id             = bench.Id;
            viewModel.Name           = bench.Name;
            viewModel.Seats          = bench.Seats;
            viewModel.Description    = bench.Description;
            viewModel.DateDiscovered = bench.DateDiscovered;
            viewModel.Latitude       = bench.Latitude;
            viewModel.Longitude      = bench.Longitude;
            viewModel.Reviews        = reviews;
            viewModel.Users          = users;

            return(View("View", viewModel));
        }
Пример #6
0
        public mGame(IBidloFactory level)
        {
            you = new Hero();

            Tree[] trees = new Tree[]
            {
                new Tree(),
                new Tree(),
                new Tree(),
            };

            Bench[] benches = new Bench[]
            {
                new Bench(),
                new Bench(),
            };

            IBidlo[] bidlos = new IBidlo[100];

            for (int i = 0; i < bidlos.Length; i++)
            {
                bidlos[i] = level.Create();
            }

            park = new Park(bidlos, trees, benches);
        }
Пример #7
0
        public void Remove_Then_Add()
        {
            var bench = new Bench();

            var p1 = new PokemonCard();
            var p2 = new PokemonCard();
            var p3 = new PokemonCard();
            var p4 = new PokemonCard();

            bench.Add(p1);
            bench.Add(p2);
            bench.Add(p3);

            bench.Remove(p2);

            Assert.Equal(1, bench.GetNextFreeIndex());

            bench.Add(p4);

            Assert.Equal(3, bench.Count);
            Assert.True(bench.Contains(p1));
            Assert.False(bench.Contains(p2));
            Assert.True(bench.Contains(p3));
            Assert.True(bench.Contains(p4));

            Assert.Equal(p4, bench.Pokemons[1]);
        }
    private void UpgradeUnits(string title, int level)
    {
        AnimaText animaText = new AnimaText();

        for (int i = 0; i < Bench.SIZE; i++)
        {
            if (Bench.occupied[i])
            {
                if (Bench.units[i].title == title && Bench.units[i].level < level)
                {
                    Bench bench = new Bench();
                    bench.Destroy(i);
                    animaText.ShowText(Bench.benches[i], "Upgraded", Color.green);
                }
            }
        }
        for (int i = 0; i < Formation.SIZE; i++)
        {
            if (Formation.occupied[i])
            {
                if (Formation.units[i].title == title && Formation.units[i].level < level)
                {
                    Formation formation = new Formation();
                    formation.Destroy(i);
                    animaText.ShowText(Formation.formations[i], "Upgraded", Color.green);
                }
            }
        }
    }
Пример #9
0
        static void ProfileMath()
        {
            bool   bo;
            byte   b1, br, b2; b1 = sbyte.MaxValue - 7; b2 = sbyte.MaxValue - 13;
            sbyte  sb1, sbr, sb2; sb1 = (sbyte)b1; sb2 = (sbyte)b2;
            ushort us1, usr, us2; us1 = short.MaxValue - 7; us2 = short.MaxValue - 13;
            short  s1, sr, s2; s1 = (short)us1; s2 = (short)us2;
            uint   ui1, uir, ui2; ui1 = int.MaxValue - 7; ui2 = int.MaxValue - 13;
            int    i1, ir, i2; i1 = (int)ui1; i2 = (int)ui2;
            ulong  ul1, ulr, ul2; ul1 = long.MaxValue - 7; ul2 = long.MaxValue - 13;
            long   l1, lr, l2; l1 = (long)ul1; l2 = (long)ul2;

            br = 0; ulr = 0;
            const byte mod   = 121;
            var        bench = new Bench();

            bench.Time("sbyte.AbsU", () => { br = sb1.AbsU(); br = sb1.AbsU(); br = sb1.AbsU(); br = sb1.AbsU(); br = sb1.AbsU(); }, 5);
            bench.Time("short.AbsU", () => { usr = s1.AbsU(); usr = s1.AbsU(); usr = s1.AbsU(); usr = s1.AbsU(); usr = s1.AbsU(); }, 5);
            bench.Time("int.AbsU", () => { uir = i1.AbsU(); uir = i1.AbsU(); uir = i1.AbsU(); uir = i1.AbsU(); uir = i1.AbsU(); }, 5);
            bench.Time("long.AbsU", () => { ulr = l1.AbsU(); ulr = l1.AbsU(); ulr = l1.AbsU(); ulr = l1.AbsU(); ulr = l1.AbsU(); }, 5);
            bench.Time("byte.MulMod", () => { br = b1.MulMod(b2, 143); br = b1.MulMod(b2, 143); br = b1.MulMod(b2, 143); br = b1.MulMod(b2, 143); br = b1.MulMod(b2, 143); }, 5);
            bench.Time("sbyte.MulMod", () => { sbr = sb1.MulMod(sb2, (sbyte)mod); sbr = sb1.MulMod(sb2, (sbyte)mod); sbr = sb1.MulMod(sb2, (sbyte)mod); sbr = sb1.MulMod(sb2, (sbyte)mod); sbr = sb1.MulMod(sb2, (sbyte)mod); }, 5);
            bench.Time("ushort.MulMod", () => { usr = us1.MulMod(us2, mod); usr = us1.MulMod(us2, mod); usr = us1.MulMod(us2, mod); usr = us1.MulMod(us2, mod); usr = us1.MulMod(us2, mod); }, 5);
            bench.Time("short.MulMod", () => { sr = s1.MulMod(s2, mod); sr = s1.MulMod(s2, mod); sr = s1.MulMod(s2, mod); sr = s1.MulMod(s2, mod); sr = s1.MulMod(s2, mod); }, 5);
            bench.Time("uint.MulMod", () => { uir = ui1.MulMod(ui2, mod); uir = ui1.MulMod(ui2, mod); uir = ui1.MulMod(ui2, mod); uir = ui1.MulMod(ui2, mod); uir = ui1.MulMod(ui2, mod); }, 5);
            bench.Time("int.MulMod", () => { ir = i1.MulMod(i2, mod); ir = i1.MulMod(i2, mod); ir = i1.MulMod(i2, mod); ir = i1.MulMod(i2, mod); ir = i1.MulMod(i2, mod); }, 5);
            bench.Time("ulong.MulMod", () => { ulr = ul1.MulMod(ul2, mod); ulr = ul1.MulMod(ul2, mod); ulr = ul1.MulMod(ul2, mod); ulr = ul1.MulMod(ul2, mod); ulr = ul1.MulMod(ul2, mod); }, 5);
            bench.Time("long.MulMod", () => { lr = l1.MulMod(l2, mod); lr = l1.MulMod(l2, mod); lr = l1.MulMod(l2, mod); lr = l1.MulMod(l2, mod); lr = l1.MulMod(l2, mod); }, 5);
            bench.Time("uint.ModPow", () => { uir = ui1.ModPow(ui2, mod); uir = ui1.ModPow(ui2, mod); uir = ui1.ModPow(ui2, mod); uir = ui1.ModPow(ui2, mod); uir = ui1.ModPow(ui2, mod); }, 5);
            bench.Time("ulong.ModPow", () => { ulr = ul1.ModPow(ul2, mod); ulr = ul1.ModPow(ul2, mod); ulr = ul1.ModPow(ul2, mod); ulr = ul1.ModPow(ul2, mod); ulr = ul1.ModPow(ul2, mod); }, 5);
        }
Пример #10
0
    public void BuyUnit(int i)
    {
        if (occupied[i])
        {
            Bench bench    = new Bench();
            int   benchNmb = bench.GetAvailableBench();
            if (benchNmb < Bench.SIZE)
            {
                Money money = new Money();
                if (money.UseGold(units[i].cost))
                {
                    Upgrade upgrade = new Upgrade();
                    units[i].level = upgrade.NewUnit(units[i].title);
                    for (int j = 1; j < units[i].level; j++)
                    {
                        units[i].attack    = Mathf.RoundToInt(units[i].attack * 1.5f);
                        units[i].health    = Mathf.RoundToInt(units[i].health * 1.5f);
                        units[i].maxHealth = Mathf.RoundToInt(units[i].maxHealth * 1.5f);
                        units[i].armor     = Mathf.RoundToInt(units[i].armor * 1.5f);
                        units[i].resist    = Mathf.RoundToInt(units[i].resist * 1.5f);
                    }
                    if (units[i].level == 4)
                    {
                        units[i].image = Resources.Load <Sprite>("Creature Icons Upgrade/" + units[i].image.name);
                    }

                    bench.AddUnit(units[i], benchNmb);
                    recruits[i].GetComponentInChildren <Image>().enabled       = true;
                    videoPlayer[i].GetComponentInChildren <VideoPlayer>().clip = null;
                    videoPlayer[i].GetComponentInChildren <VideoPlayer>().Stop();
                    Destroy(i);
                }
            }
        }
    }
        public async Task <IActionResult> PutBench([FromRoute] int id, [FromBody] Bench bench)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != bench.Id)
            {
                return(BadRequest());
            }

            _context.Entry(bench).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!BenchExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
 public Controller()
 {
     display = new Display();
     ground  = new Ground(display.Side);
     plate   = new Plate(display.PlateHeight, display.PlateWidth);
     bench   = new Bench(display.BenchHeight, display.BenchWidth);
 }
Пример #13
0
        public Game(IBidloFactory factory)
        {
            gamer = new Hero();         // В игре должен быть главный герой, за которого бы будем играть

            Tree[] trees = new Tree[] { // Задаём список деревьев, которые будут на локации
                new Tree(),
                new Tree(),
                new Tree()
            };

            Bench[] benches = new Bench[] { // Задаём список скамеек, которые будут на локации
                new Bench(),
                new Bench(),
                new Bench()
            };

            IBidlo[] bidlos = new IBidlo[100]; // Задаём список монстров на локации

            for (int i = 0; i < bidlos.Length; i++)
            {
                bidlos[i] = factory.Create(); // заполнение массива делегировано фабричному методу
            }

            location = new Park(bidlos, trees, benches); // инициализируем игровую локацию

            // Обратите внимание, что эта портянка вообще ничего не знает о пространстве имён с
            // конкретными монстрами. Вместо этого происходит манипуляция абстракциями и фабриками.
            // Теперь насколько бы большой не была бы иерархия наследования быдла, она не будет нам мешать
            // при разработке этой части приложения (да и вообще какой-то другой части).
            // О конкретном быдло (Alkash, Exhibitionist, Gopnik) знают только конкретные фабрики, которые
            // работают с быдлом. Но при этом фабрики ничего не знают о других частях программы.
            // Инкапсуляция, мать её.
        }
Пример #14
0
 private void PlayerEnterBenchArea(AreaBase area)
 {
     if (area.GetData("rbMod_Id", out Guid benchId))
     {
         CurBench    = BenchManager.GetBench(benchId);
         CanUseBench = CurBench == null ? false : (CurBench.Owner == Character.Unknown || CurBench.Owner == Util.GetCharacterFromModel(Game.Player.Character.Model.Hash));
     }
 }
Пример #15
0
 public void HandleStandUp()
 {
     if (_currentBench != null)
     {
         _currentBench = null;
         CalculateRandomTarget();
     }
 }
Пример #16
0
        static void Time(Bench bench, string name, Action target, int reps)
        {
            var    res   = bench.Time(name, target, reps);
            string nanos = res.NanosecondsPerOperation.ToString("#,##0.0");

            nanos = new string(' ', 12 - nanos.Length) + nanos;
            Console.WriteLine(res.Name + new String('.', 40 - res.Name.Length) + nanos + " nanos/op\r");
        }
Пример #17
0
        public static void Postfix(Bench __instance)
        {
            NitroxId id = NitroxEntity.GetId(__instance.gameObject);

            // Request to be downgraded to a transient lock so we can still simulate the positioning.
            simulationOwnership.RequestSimulationLock(id, SimulationLockType.TRANSIENT);
            localPlayer.AnimationChange(AnimChangeType.BENCH, AnimChangeState.UNSET);
        }
    public void FormationClicked(int i)
    {
        Bench bench  = new Bench();
        int   iBench = Bench.iBench;

        if (iBench < Bench.SIZE)
        {
            if (!occupied[i])
            {
                AddUnit(Bench.units[iBench], i);
                bench.Destroy(iBench);
            }
            else
            {
                Unit temp = units[i];
                AddUnit(Bench.units[iBench], i);
                bench.AddUnit(temp, iBench);
            }
        }

        else if (iFormation == SIZE && !occupied[i])
        {
            iFormation = SIZE;
        }
        else if (iFormation == SIZE)
        {
            iFormation = i;
            Info info = new Info();
            info.ShowUnit(units[i]);
        }
        else
        {
            if (iFormation != i)
            {
                if (occupied[iFormation] || occupied[i])
                {
                    if (!occupied[iFormation])
                    {
                        AddUnit(units[i], iFormation);
                        Destroy(i);
                    }
                    else if (!occupied[i])
                    {
                        AddUnit(units[iFormation], i);
                        Destroy(iFormation);
                    }
                    else
                    {
                        Unit temp = units[i];
                        AddUnit(units[iFormation], i);
                        AddUnit(temp, iFormation);
                    }
                }
            }
            iFormation = SIZE;
        }
        Bench.iBench = Bench.SIZE;
    }
Пример #19
0
 void DoStruct()
 {
     uiText.text += Bench.Start();
     for (int i = 0; i < qty; ++i)
     {
         structs[i].patate = 42;
     }
     uiText.text += Bench.End("Structs");
 }
Пример #20
0
        public void GetNextFreeIndex_NotEmpty()
        {
            var bench = new Bench();

            bench.Add(new PokemonCard());
            bench.Add(new PokemonCard());

            Assert.Equal(2, bench.GetNextFreeIndex());
        }
Пример #21
0
        private void PlayerLeaveBenchArea(AreaBase area)
        {
            CurBench    = null;
            CanUseBench = false;

            MenuPool.CloseAllMenus();
            CurCraftingAmounts.Clear();
            MaterialMenuItems.Clear();
        }
Пример #22
0
 void DoClass()
 {
     uiText.text += Bench.Start();
     for (int i = 0; i < qty; ++i)
     {
         classes[i].patate = 42;
     }
     uiText.text += Bench.End("Classes");
 }
        public static void Postfix(Bench __instance)
        {
            NitroxId id = NitroxEntity.GetId(__instance.gameObject);

            SimulationOwnership simulationOwnership = NitroxServiceLocator.LocateService <SimulationOwnership>();

            // Request to be downgraded to a transient lock so we can still simulate the positioning.
            simulationOwnership.RequestSimulationLock(id, SimulationLockType.TRANSIENT);
        }
        public static void Postfix(Bench __instance)
        {
            NitroxId id = NitroxEntity.GetId(__instance.gameObject);

            // Request to be downgraded to a transient lock so we can still simulate the positioning.
            simulationOwnership.RequestSimulationLock(id, SimulationLockType.TRANSIENT);

            localPlayer.AnimationChange(AnimChangeType.BENCH, AnimChangeState.OFF);
            __instance.StartCoroutine(ResetAnimationDelayed(__instance.standUpCinematicController.interpolationTimeOut));
        }
Пример #25
0
        public void Add_Empty()
        {
            var bench = new Bench();

            bench.Add(new PokemonCard());
            bench.Add(new PokemonCard());
            bench.Add(new PokemonCard());

            Assert.Equal(3, bench.Count);
        }
Пример #26
0
        static void TimeDamOSA()
        {
            var bench = new Bench(20, 1000, false);

            RunDamOSABenches(bench, 5, 5, 400, 24);
            RunDamOSABenches(bench, 15, 15, 200, 24);
            RunDamOSABenches(bench, 25, 25, 200, 24);
            RunDamOSABenches(bench, 100, 100, 50, 20);
            RunDamOSABenches(bench, 1000, 1000, 16, 15);
        }
Пример #27
0
        public Bench GetById(int id)
        {
            Bench bench = context.Benches
                          .Include(b => b.User)
                          .Include(b => b.Reviews)
                          .Where(b => b.Id == id)
                          .SingleOrDefault();

            bench.SetRating();
            return(bench);
        }
Пример #28
0
 public void HandleSitdown(Bench bench)
 {
     if (IsGoingAway)
     {
         return;
     }
     _currentBench      = bench;
     AttackTarget       = null;
     transform.position = new Vector3(bench.transform.position.x, bench.transform.position.y, transform.position.z);
     ActivateState((int)MovableCharacterStates.Sit);
 }
        public async Task <IActionResult> PostBench([FromBody] Bench bench)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.Benches.Add(bench);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetBench", new { id = bench.Id }, bench));
        }
Пример #30
0
        static void TimeLevenshtein()
        {
            var bench = new Bench(20, 1000, false);

            //var words = File.ReadAllLines("wordlist.txt");
            //strings = words.Where(w => w.Length >= 15 && w.Length <= 15).ToList();
            RunLevBenches(bench, 5, 5, 400, 24);
            RunLevBenches(bench, 15, 15, 200, 24);
            RunLevBenches(bench, 25, 25, 200, 24);
            RunLevBenches(bench, 100, 100, 50, 20);
            RunLevBenches(bench, 1000, 1000, 16, 15);
        }
Пример #31
0
    void VisitGateUpdate()
    {
        // if the boarding process has started, skip ahead past benches
        if (startedBoardingInterrupt && (state_passenger_building != STATE_GATE_GOTO_ENTER &&
                   state_passenger_building != STATE_GATE_GOTO_SEAT &&
                   state_passenger_building != STATE_GATE_SEAT_ROTATE)) {

            // if already entering benches, wait to get to seating part
            if (state_passenger_building == STATE_GATE_SEAT) {
                StartBoarding();
            } else {
                state_passenger_building = STATE_GATE_GOTO_QUEUE;
                finalDestination = new Vector2(this.transform.position.x, this.transform.position.z);
            }
            startedBoardingInterrupt = false;
        }

        if (state_passenger_building == STATE_GATE_GOTO) {
            finalDestination = gate.GetEnterBenchesPosition();
            steering.Visit(finalDestination);
            state_passenger_building = STATE_GATE_GOTO_ENTER;
        } else if (state_passenger_building == STATE_GATE_GOTO_ENTER) {
            if (HasArrived(GridHelper.GetGridCellSize() / 5)) {
                bench = gate.AddToBench(this);
                if (bench != null) {
                    Vector2[] exitPath = bench.GetBenchEnterPath(this);
                    steering.Visit(exitPath);
                    finalDestination = exitPath[0];
                    state_passenger_building = STATE_GATE_GOTO_SEAT;
                }
            }
        } else if (state_passenger_building == STATE_GATE_GOTO_SEAT) {
            if (HasArrived(GridHelper.GetGridCellSize() / 10f)) {
                steering.FullStop ();
                finalDestination = new Vector2 (99999f, 99999f);
                state_passenger_building = STATE_GATE_SEAT_ROTATE;
            }
        } else if (state_passenger_building == STATE_GATE_SEAT_ROTATE) {
             iTween.RotateTo(gameObject,iTween.Hash(
             	"rotation", bench.GetSeatRotation(this),
             	"easetype", iTween.EaseType.easeInOutQuad,
             	"time",1.0f));
            state_passenger_building = STATE_GATE_SEAT;
        } else if (state_passenger_building == STATE_GATE_SEAT) {
         		// on seat, waiting for boarding
         	} else if (state_passenger_building == STATE_GATE_GOTO_QUEUE) {
         		if (HasArrived(GridHelper.GetGridCellSize())) {
         			// go to enter queue position
         			//finalDestination = gate.GetEnterQueuePosition(); DISABLED FOR PASSENGER BUILDING
                steering.Seek(finalDestination);

         			state_passenger_building = STATE_GATE_GOTO_QUEUE_ENTER;
         		}
         	} else if (state_passenger_building == STATE_GATE_GOTO_QUEUE_ENTER) {

         		hasArrivedCounter++;

         		if (hasArrivedCounter > 200) {
         			print("stuck on has arrived (" + GetID() + ")");
         			print("this position = " + this.position + " | targetPos = " + targetPos + " | finalDestination = " + finalDestination);
         			finalDestination = this.position;
         		}

         		if (HasArrived(GridHelper.GetGridCellSize())) {
         			//print("has arrived");
                // send back to visitPassengerUpdate() because that will do the whole queue thing (except for exit path?)
         			visitBuilding = gate;
         			exit_state = STATE_GATE_EXIT;

         			//finalDestination = visitBuilding.EnterQueueAndGetPosition(this); DISABLED FOR PASSENGER BUILDING
                steering.Arrive(finalDestination);

                state_passenger_building = STATE_PASSENGER_BUILDING_QUEUE_ENTER;
                state = STATE_GATE_BOARDING_QUEUE;
         		}

         	}
    }
Пример #32
0
 public void HandleSitdown(Bench bench)
 {
     if(IsGoingAway)
         return;
     _currentBench = bench;
     AttackTarget = null;
     transform.position = new Vector3(bench.transform.position.x, bench.transform.position.y, transform.position.z);
     ActivateState((int) MovableCharacterStates.Sit);
 }
Пример #33
0
 public void HandleStandUp()
 {
     if (_currentBench != null)
     {
         _currentBench = null;
         CalculateRandomTarget();
     }
 }
Пример #34
0
	public GuiObject BuildBenchWindow(Bench bench) {
		GuiObject window = new GuiObject(new Rect(0, 0, 300, 500), "LeftPane", bench.customname);
		var playerPosition = Static.Man.transform.position;
		window.Draw += (g) => {
			GUI.Box(g.rect, g.text);
			Debug.Log (Vector3.Distance(playerPosition,Static.Man.transform.position));
			if (Vector3.Distance(playerPosition,Static.Man.transform.position)>2){
				NewWindowTask=CloseWindow;
				NewWindow=window;
				return;
			}
			int i, o, boxH, boxY = 25;
			foreach(CraftingConversion cc in bench.craftables) {
			
				i = o = 0;
				
				int[] hasInInventory = man.GetComponent<Inventory>().GetAmounts(cc.reqs);
				boxH = Mathf.Max(cc.reqs.Length, cc.yields.Length) * 25 + 35;
				
				GUI.Box(new Rect(5, boxY, 290, boxH - 5), "");
				int index = 0;
				bool cancraft = true;
				foreach (var rc in cc.reqs) {
					SetColor(() => {return hasInInventory[index] >= rc.amount;});
					if (hasInInventory[index] < rc.amount) cancraft = false;
					GUI.Label(new Rect(10, boxY + 5 + i * 20, 150, 25), hasInInventory[index++] + "/" + rc.amount + " " + rc.item.GetName());
					i++;
				}
				foreach (ItemCount y in cc.yields) {
					GUI.Label(new Rect(225, boxY + 5 + o * 20, 70, 25), y.amount + " " + y.item.GetName());
					o++;
				}
				
				GUI.Label(new Rect(130, boxY + 5, 60, 25), "------>");
				
				SetColor();
				GUI.Label(new Rect(10, boxY + boxH - 35, 130, 25), cc.name);
				
				GUI.enabled = cancraft;
				if (GUI.Button(new Rect(225, boxY + boxH - 35, 60, 25), "Craft")) {
					Inventory inv = man.GetComponent<Inventory>();
					foreach (ItemCount rc in cc.reqs) {
						inv.AddToInventory(rc.item, -rc.amount);
					}
					foreach (ItemCount y in cc.yields) {
						inv.AddToInventory(y.item, y.amount);
					}
				}
				
				GUI.enabled = true;
				boxY += boxH;
			}
		};
		
		return window;
	}
Пример #35
0
    private void addTestObjects()
    {
        int i = 0;
        int padding = 10;
        int numObjects = mFailCount > 20 ? 2 : 10;

        int len = mContainer.GetChildCount();
        if ( len + numObjects > Main.LIMIT ) numObjects = Main.LIMIT - len;

        for ( i=0; i<numObjects; ++i ) {
            Bench s = new Bench();
            s.x = - Futile.screen.halfWidth + padding + RXRandom.Float() * ( Futile.screen.width - 2 * padding );
            s.y = - Futile.screen.halfHeight + padding + RXRandom.Float() * ( Futile.screen.height - 2 * padding );
            mContainer.AddChild( s );
        }
    }
Пример #36
0
 /// <summary>
 /// Creates the bench.
 /// </summary>
 /// <param name="transform">The transform.</param>
 /// <returns>The created bench</returns>
 public static Bench CreateBench(Transform transform)
 {
     Bench bench = new Bench(transform, lastBenchId++);
     benches.Add(bench);
     return bench;
 }