コード例 #1
0
        public async Task GetByIdShouldReturnPilotDetails()
        {
            int pilotId  = 1;
            var newPilot = new Pilot
            {
                ID    = 1,
                Files = new List <File> {
                    new File()
                },
                Scenes = new List <Scene> {
                    new Scene {
                        SceneFiles = new List <SceneFile> {
                            new SceneFile()
                        }
                    }
                },
                Script = new Script {
                    ScriptWriter = new User()
                }
            };

            _aviMock.Setup(x => x.GetPilotByID(It.IsAny <int>())).Returns(newPilot);
            var newAviqtorBL = new PilotController(_aviMock.Object);
            var result       = newAviqtorBL.GetById(pilotId);

            Assert.IsAssignableFrom <PilotDetails>(result);
            Assert.Equal(result.ID, pilotId);
            _aviMock.Verify(x => x.GetPilotByID(pilotId));
        }
コード例 #2
0
ファイル: WorldController.cs プロジェクト: blaquenkot/ship
    private void ShowAllPilotsArrows()
    {
        if (!AllPilotsArrowsShown)
        {
            foreach (var inactiveObject in InactiveObjectsToActivateOnFirstPilot)
            {
                inactiveObject.SetActive(true);

                ArrowController arrowController = inactiveObject.GetComponent <ArrowController>();
                if (arrowController)
                {
                    arrowController.Blink(2);
                }
                else
                {
                    PilotController pilotController = inactiveObject.GetComponent <PilotController>();
                    if (pilotController)
                    {
                        ActivePilots.Add(pilotController);
                    }
                }
            }

            AllPilotsArrowsShown = true;
        }
    }
コード例 #3
0
        public void TestSetUp()
        {
            var connection = @"Server=DESKTOP-DMYTRO\SQLEXPRESS;Initial Catalog=Academy;Trusted_Connection=True;ConnectRetryCount=0";
            DbContextOptionsBuilder <MyContext> t = new DbContextOptionsBuilder <MyContext>();

            t.UseSqlServer(connection);
            mc = new MyContext(t.Options);

            CrewRepository       crewRepository       = new CrewRepository(mc);
            PilotRepository      pilotRepository      = new PilotRepository(mc);
            StewardessRepository stewardessRepository = new StewardessRepository(mc);
            FlightRepository     flightRepository     = new FlightRepository(mc);
            TicketRepository     ticketRepository     = new TicketRepository(mc);
            TakeOffRepository    takeOffRepository    = new TakeOffRepository(mc);
            PlaneRepository      planeRepository      = new PlaneRepository(mc);
            PlaneTypeRepository  planeTypeRepository  = new PlaneTypeRepository(mc);

            UnitOfWork unitOfWork = new UnitOfWork(crewRepository, flightRepository, pilotRepository,
                                                   planeRepository, planeTypeRepository, stewardessRepository,
                                                   takeOffRepository, ticketRepository, mc);

            CrewService       crewService       = new CrewService(unitOfWork);
            FlightService     flightService     = new FlightService(unitOfWork);
            StewardessService stewardessService = new StewardessService(unitOfWork);
            PilotService      pilotService      = new PilotService(unitOfWork);
            TicketService     ticketService     = new TicketService(unitOfWork);
            TakeOffService    takeOffService    = new TakeOffService(unitOfWork);
            PlaneService      planeService      = new PlaneService(unitOfWork);
            PlaneTypeService  planeTypeService  = new PlaneTypeService(unitOfWork);



            pilotController  = new PilotController(pilotService);
            flightController = new FlightController(flightService);
        }
コード例 #4
0
        public static async Task ClassEndMissionAsync(Player player)
        {
            switch (player.PlayerClass)
            {
            case PlayerClassType.TruckDriver:
                await TruckerController.EndMissionAsync(player);

                break;

            case PlayerClassType.BusDriver:
                BusDriverController.EndMission(player);
                break;

            case PlayerClassType.Pilot:
                PilotController.EndMission(player);
                break;

            case PlayerClassType.Police:
                PoliceController.EndMission(player);
                break;

            case PlayerClassType.Mafia:
                await MafiaController.EndMissionAsync(player);

                break;

            case PlayerClassType.Assistance:
                AssistanceController.EndMission(player);
                break;
            }
        }
コード例 #5
0
ファイル: Player.cs プロジェクト: 737871854/SuperPilot_2
    void Awake()
    {
        HelicopterBody  = transform.Find("HeilcopterBody").transform;
        EffectPoint     = HelicopterBody.Find("EffectPoint").transform;
        WaterEffect     = transform.Find("WaterEffect").transform;
        DustEffect      = transform.Find("DustEffect").transform;
        BossPoint       = transform.Find("BossLocalPath").transform;
        FirePoint       = HelicopterBody.Find("FirePoint").transform;
        CameraObj       = transform.Find("Main Camera").gameObject;
        PCamera         = CameraObj.GetComponent <Camera>();
        PilotController = HelicopterBody.gameObject.GetOrAddComponent <PilotController>();
        AnimController  = GetComponent <AnimController>();

        BossCameraObj   = transform.Find("BossCamera").gameObject;
        FirstCameraView = transform.Find("FirstView").GetComponent <FirstCameraView>();
        ThirdCameraView = transform.Find("ThirdView").transform;
        ShowUITran      = BossCameraObj.transform.Find("ShowUI").transform;
        BossAttackPoint = BossCameraObj.transform.Find("BossAttackPoint").transform;

        Effect_Shield  = EffectPoint.transform.Find("Effect_Shield").gameObject;
        Effect_Magent  = EffectPoint.transform.Find("Effect_Magent").gameObject;
        EffectSpeedUp  = EffectPoint.transform.Find("Effect_SpeedUp").gameObject;
        Effect_Warning = EffectPoint.transform.Find("Effect_Warning").gameObject;
        EffectFixed    = EffectPoint.transform.Find("Effect_Fixed").gameObject;

        EventDispatcher.AddEventListener <bool>(EventDefine.Event_Trigger_Effect_Water, OnWater);
        EventDispatcher.AddEventListener <bool>(EventDefine.Event_Trigger_Effect_Dust, OnDust);
        EventDispatcher.AddEventListener(EventDefine.Event_Lift_End, OnLiftEnd);
        EventDispatcher.AddEventListener <E_CameraState>(EventDefine.Event_Camera_State_FirstOrThird, ChangeCameraState);
        EventDispatcher.AddEventListener(EventDefine.Event_Player_Gather, UseGather);
        EventDispatcher.AddEventListener <bool>(EventDefine.Event_Gorge_Boss_Animation, OnGorgeBoss);
        EventDispatcher.AddEventListener(EventDefine.Event_Boss_Warning, OnWarning);
        EventDispatcher.AddEventListener(EventDefine.Event_Groge_Boss_Attack, OnGorgeAttack);
    }
コード例 #6
0
        public async Task GetAllPilots_ReturnsJsonResult()
        {
            MockService();
            controller = new PilotController(service.Object);
            var result = await controller.Get() as JsonResult;

            Assert.IsInstanceOf <JsonResult>(result);
            Assert.IsTrue(((List <PilotDTO>)result.Value).Count == 3);
        }
コード例 #7
0
        public async Task PostPilot_WhenValid_ReturnsOkObjectResult()
        {
            MockService();
            controller = new PilotController(service.Object);
            var result = await controller.Create(pilots[0]) as OkObjectResult;

            Assert.IsInstanceOf <OkObjectResult>(result);
            Assert.IsTrue(result.StatusCode == 200);
        }
コード例 #8
0
        public async Task DeletePilot_WhenCorrectId_ReturnsOkObjectResult()
        {
            MockService();
            controller = new PilotController(service.Object);

            var result = await controller.Delete(pilots[0].Id);

            Assert.IsInstanceOf <OkObjectResult>(result);
            Assert.IsTrue((result as OkObjectResult).StatusCode == 200);
        }
コード例 #9
0
        public async Task GetPilotById_WhenCorrectId_ReturnsOkObjectResult()
        {
            MockService();
            controller = new PilotController(service.Object);
            int pilotId = 1;

            var result = await controller.Get(pilotId);

            Assert.IsInstanceOf <OkObjectResult>(result);
            Assert.IsTrue((result as OkObjectResult).StatusCode == 200);
        }
コード例 #10
0
        public void PostPilotTest()
        {
            // Arrange
            var             serviceMock = new Mock <IPilotService>();
            PilotController controller  = new PilotController(serviceMock.Object);

            // Act
            var result = controller.Post(null) as BadRequestResult;

            // Assert
            Assert.AreEqual(400, result.StatusCode);
        }
コード例 #11
0
ファイル: WorldController.cs プロジェクト: blaquenkot/ship
    public void PilotDied(PilotController pilot)
    {
        ActivePilots.Remove(pilot);

        GameUIController.UpdateCurrentTarget(MissionTargetState.Lost);

        ShowAllPilotsArrows();

        TotalPilots -= 1;

        PilotsChanged();
    }
コード例 #12
0
        public async Task DeletePilot_WhenWrongId_ReturnsNotFoundResult()
        {
            int pilotId = 100;

            service = new Mock <IService <PilotDTO> >();
            service.Setup(x => x.Remove(It.IsAny <int>())).Throws <NotFoundException>();
            controller = new PilotController(service.Object);

            var result = await controller.Delete(pilotId);

            Assert.IsInstanceOf <NotFoundObjectResult>(result);
            Assert.IsTrue((result as NotFoundObjectResult).StatusCode == 404);
        }
コード例 #13
0
        public async Task GetPilotById_WhenIncorrectId_ReturnsNotFoundObjectResult()
        {
            service = new Mock <IService <PilotDTO> >();
            service.Setup(x => x.GetById(It.IsAny <int>())).Throws <NotFoundException>();

            controller = new PilotController(service.Object);
            int pilotId = 100;

            var result = await controller.Get(pilotId);

            Assert.IsInstanceOf <NotFoundObjectResult>(result);
            Assert.IsTrue((result as NotFoundObjectResult).StatusCode == 404);
        }
コード例 #14
0
        public async Task GetPilotById_WhenNegativeId_ReturnsNotFoundObjectResult()
        {
            service = new Mock <IService <PilotDTO> >();
            service.Setup(x => x.GetById(It.IsAny <int>())).Throws <ArgumentException>();

            controller = new PilotController(service.Object);
            int pilotId = -1;

            var result = await controller.Get(pilotId);

            Assert.IsInstanceOf <BadRequestResult>(result);
            Assert.IsTrue((result as BadRequestResult).StatusCode == 400);
        }
コード例 #15
0
        public void GetWithQueryParamShouldReturnPilotListItems()
        {
            var pilots = new List <Pilot> {
                new Pilot(), new Pilot()
            };

            _aviMock.Setup(x => x.GetPilotsByProducerID(1)).Returns(pilots);
            var newAviqtorBL = new PilotController(_aviMock.Object);
            var result       = newAviqtorBL.Get(1);

            Assert.IsAssignableFrom <IEnumerable <PilotListItem> >(result);
            Assert.Equal(2, result.Count());
            _aviMock.Verify(x => x.GetPilotsByProducerID(1));
        }
コード例 #16
0
ファイル: WorldController.cs プロジェクト: blaquenkot/ship
    public void PilotPickedUp(PilotController pilot)
    {
        ActivePilots.Remove(pilot);

        GameUIController.UpdateCurrentTarget(MissionTargetState.Completed);

        ShowAllPilotsArrows();

        PickedUpPilots += 1;

        AddPoints(1000);

        PilotsChanged();
    }
コード例 #17
0
        public async Task GetShouldReturnPilotListItems()
        {
            var pilots = new List <Pilot> {
                new Pilot(), new Pilot()
            };

            _aviMock.Setup(x => x.GetPilots()).Returns(pilots);
            var newAviqtorBL = new PilotController(_aviMock.Object);
            var result       = newAviqtorBL.Get();

            Assert.IsAssignableFrom <IEnumerable <PilotListItem> >(result);
            Assert.Equal(2, result.Count());
            _aviMock.Verify(x => x.GetPilots());
        }
コード例 #18
0
ファイル: ShipController.cs プロジェクト: blaquenkot/ship
    void OnTriggerEnter2D(Collider2D collider)
    {
        PickupableObject pickupableObject = collider.GetComponent <PickupableObject>();

        if (pickupableObject && pickupableObject.CanBePickedUp())
        {
            pickupableObject.PickUp(gameObject);

            PowerUpController powerUp = collider.GetComponent <PowerUpController>();
            if (powerUp)
            {
                ModifyFactor(powerUp.Amount, powerUp.Type);
            }
            else
            {
                PilotController pilot = collider.GetComponent <PilotController>();
                if (pilot)
                {
                    UpdateSpecialAttackTimer(MaxSpecialAttackTimer);
                    WorldController.PilotPickedUp(pilot);
                }
            }
        }
        else
        {
            SpaceStationController SpaceStation = collider.GetComponent <SpaceStationController>();
            if (SpaceStation)
            {
                CanBeControlled      = false;
                DesiredRotation      = 0f;
                DesiredMovement      = 0f;
                Shoot                = false;
                ExecuteSpecialAttack = false;
                Rigidbody.velocity   = Vector2.zero;
                TailParticleSystem.Stop();
                RightParticleSystem.Stop();
                LeftParticleSystem.Stop();
                Vector2 spaceStationPosition = WorldController.SpaceStationReached();
                DOTween.Sequence()
                .Join(transform.DOMove(spaceStationPosition, 1f).SetEase(Ease.OutQuad))
                .Join(transform.DOScale(transform.localScale * 0.2f, 1f))
                .OnComplete(() => {
                    Destroy(gameObject);
                });
            }
        }
    }
コード例 #19
0
ファイル: PilotView.cs プロジェクト: laki94/BD
        /// <summary>
        /// Konstruktor okna z parametrem, pozwalający na przekazanie nazwy użytkownika zalogowanego do systemu
        /// oraz tworzący połączenie z bazą danych.
        /// </summary>
        /// <param name="uzytkownik">Nazwa użytkownika</param>
        public PilotView(Pilot uzytkownik)
        {
            InitializeComponent();

            l_uzytkownik.Text      = uzytkownik.DaneOsobowe();
            l_polaczenie.Text      = "Połączony";
            _uzytkownik            = uzytkownik;
            l_polaczenie.ForeColor = System.Drawing.Color.Green;

            controller = new PilotController(this);

            aktWycieczki = new AktualizacjaController("wycieczka");

            this.helpProvider.HelpNamespace = "Helper\\Pilot.chm";

            timer1.Start();
        }
コード例 #20
0
        public async Task CreateShouldReturnCreatedID()
        {
            var newPilot = new Pilot {
                ID = 1
            };
            var newPilotCreate = new PilotCreate {
                ProducerID = 1
            };

            _aviMock.Setup(x => x.AddPilot(It.IsAny <Pilot>())).Returns(newPilot);
            var newAviqtorBL = new PilotController(_aviMock.Object);
            var result       = newAviqtorBL.Create(newPilotCreate);

            Assert.IsAssignableFrom <CreatedID>(result);
            Assert.Equal(result.ID, newPilotCreate.ProducerID);
            _aviMock.Verify(x => x.AddPilot(It.IsAny <Pilot>()));
        }
コード例 #21
0
        public async Task PostPilot_WhenInvalid_ReturnsBadRequestResult()
        {
            service = new Mock <IService <PilotDTO> >();
            service.Setup(x => x.Add(It.IsAny <PilotDTO>())).Throws <ArgumentNullException>();

            var invalidPilot = new PilotDTO
            {
                FirstName   = "No last name pilot",
                Experience  = 5,
                DateOfBirth = new DateTime(1960, 8, 30)
            };

            controller = new PilotController(service.Object);
            var result = await controller.Create(invalidPilot);

            Assert.IsInstanceOf <BadRequestResult>(result);
            Assert.IsTrue((result as BadRequestResult).StatusCode == 400);
        }
コード例 #22
0
        public void CheckPilotListTest()
        {
            // Arrange
            var serviceMock = new Mock <IPilotService>();

            serviceMock.Setup(a => a.GetPilotCollection()).Returns(new List <PilotDTO>()
            {
                new PilotDTO(), new PilotDTO()
            });
            PilotController controller = new PilotController(serviceMock.Object);

            // Act
            var result = controller.Get();

            // Assert
            var okObjresult = result as OkObjectResult;
            var model       = okObjresult.Value as List <PilotDTO>;

            Assert.IsNotNull(model);
            Assert.AreEqual(model.Count, 2);
        }
コード例 #23
0
        public void CheckPilotId()
        {
            // Arrange
            List <PilotDTO> list = new List <PilotDTO>()
            {
                new PilotDTO()
                {
                    Id = 1
                },
                new PilotDTO()
                {
                    Id = 2
                },
                new PilotDTO()
                {
                    Id   = 3,
                    Name = "Dima"
                },
                new PilotDTO()
                {
                    Id = 4
                }
            };
            int index       = 3;
            var serviceMock = new Mock <IPilotService>();

            serviceMock.Setup(a => a.GetPilotById(index)).Returns(list.Find(e => e.Id == index));
            PilotController controller = new PilotController(serviceMock.Object);

            // Act
            var result = controller.Get(index);

            // Assert

            var okObj = result as OkObjectResult;
            var model = okObj.Value as PilotDTO;

            Assert.AreEqual("Dima", model.Name);
            Assert.AreEqual(index, model.Id);
        }
コード例 #24
0
 void EnterShip(Collider trigger)
 {
     ship            = trigger.gameObject.transform.root.gameObject;
     pilotController = ship.GetComponent <PilotController>();
 }
コード例 #25
0
 void ExitShip()
 {
     gameObject.transform.SetParent(null);
     ship            = null;
     pilotController = null;
 }
コード例 #26
0
    private void OnCollisionEnter(Collision collision)
    {
        if (collision.collider.tag == "Tank")
        {
            Debug.Log("Y'a eu trigger avec " + collision.collider.name);
            Collider[] colliders = Physics.OverlapSphere(transform.position, m_ExplosionRadius);

            for (int i = 0; i < colliders.Length; i++)
            {
                Debug.Log("JAI touché " + colliders[i].name);
                Rigidbody targetRigidbody = colliders[i].GetComponent <Rigidbody>();
                Rigidbody parentTry       = colliders[i].GetComponentInParent <Rigidbody>();

                // Si le parent de l'element a pas de rigidbody c'est pas un bout du tank, donc on passe au suivant.
                if (!parentTry)
                {
                    continue;
                }
                //Si on trouve pas le tag tank, on a rien a faire donc on continue
                if (parentTry.tag != "Tank")
                {
                    continue;
                }

                PilotController scriptpilote = parentTry.GetComponent <PilotController>();
                if (scriptpilote)
                {
                    if (colliders[i].name.Contains("L_"))
                    {
                        if (Random.Range(0, 5) == 0)
                        {
                            scriptpilote.DisableLeft();
                        }
                    }
                    if (colliders[i].name.Contains("R_"))
                    {
                        if (Random.Range(0, 5) == 0)
                        {
                            scriptpilote.DisableRight();
                        }
                    }
                }

                TankHealth targethealth = parentTry.GetComponent <TankHealth>();
                if (!targethealth)
                {
                    continue;
                }
                //on met 5 dégats par partie du tank qu'on trouve, ce qui permet de scale les dégats
                targethealth.TakeDamage(5);
            }

            m_ExplosionParticles = Instantiate(ExplosionPrefab).GetComponent <ParticleSystem>();
            m_ExplosionParticles.transform.position = transform.position;
            m_ExplosionAudio = m_ExplosionParticles.GetComponent <AudioSource>();
            m_ExplosionParticles.Play();
            m_ExplosionAudio.Play();

            // Once the particles have finished, destroy the gameobject they are on.
            ParticleSystem.MainModule mainModule = m_ExplosionParticles.main;
            Destroy(m_ExplosionParticles.gameObject, mainModule.duration);
            // Destroy la mine.
            Destroy(gameObject);
        }
    }
コード例 #27
0
        public static void OnStartMissionCommand(Player sender)
        {
            if (sender.IsDoingMission)
            {
                sender.SendClientMessage(Color.Red, Messages.AlreadyDoingAMission);
                return;
            }

            if (!sender.IsDriving())
            {
                sender.SendClientMessage(Color.Red, Messages.CommandAllowedOnlyAsDriver);
                return;
            }

            var playerVehicleModel = sender.Vehicle?.Model;

            switch (sender.PlayerClass)
            {
            case PlayerClassType.TruckDriver:

                var convoy = sender.Convoy;

                if (sender.IsInConvoy && convoy?.Members[0] != sender)
                {
                    sender.SendClientMessage(Color.Red,
                                             "You are not the leader of the convoy, you can not start a job.");
                    return;
                }

                var dialogTruckerMission = new ListDialog(Messages.MissionTruckerSelectMissionMethod,
                                                          Messages.DialogButtonSelect, Messages.DialogButtonCancel);
                dialogTruckerMission.AddItem("Setup your own load and route\r\nAuto assigned load");

                switch (playerVehicleModel)
                {
                case VehicleModelType.Flatbed:
                case VehicleModelType.DFT30:
                case VehicleModelType.CementTruck:
                    if (sender.Account.TruckerLicense == 1)
                    {
                        dialogTruckerMission.Show(sender);
                    }
                    else
                    {
                        TruckerController.StartRandomMission(sender);
                    }
                    break;

                case VehicleModelType.Roadtrain:
                case VehicleModelType.Linerunner:
                case VehicleModelType.Tanker:
                    if (sender.Vehicle.Trailer != null)
                    {
                        if (sender.Account.TruckerLicense == 1)
                        {
                            dialogTruckerMission.Show(sender);
                        }
                        else
                        {
                            TruckerController.StartRandomMission(sender);
                        }
                    }
                    else
                    {
                        sender.SendClientMessage(Color.Red, Messages.MissionTruckerTrailerNeeded);
                        return;
                    }

                    break;

                default:
                    sender.SendClientMessage(Color.Red, "You need to be the driver of a trucking vehicle to start a mission.");
                    break;
                }

                dialogTruckerMission.Response += TruckerController.MissionDialogResponse;

                break;

            case PlayerClassType.BusDriver:
                var dialogBusDriverMission = new ListDialog(Messages.MissionTruckerSelectMissionMethod,
                                                            Messages.DialogButtonSelect, Messages.DialogButtonCancel);
                dialogBusDriverMission.AddItem("Choose your own busroute\r\nAuto assigned busroute");

                var random = new Random();

                switch (playerVehicleModel)
                {
                case VehicleModelType.Coach:
                case VehicleModelType.Bus:
                    if (sender.Account.BusLicense == 1)
                    {
                        dialogBusDriverMission.Show(sender);
                    }
                    else
                    {
                        BusDriverController.StartMission(sender, BusRoute.BusRoutes[random.Next(BusRoute.BusRoutes.Count)]);
                    }
                    break;

                default:
                    sender.SendClientMessage(Color.Red, "You need to be the driver of a bus to start a mission.");
                    break;
                }

                dialogBusDriverMission.Response += BusDriverController.DialogBusDriverMission_Response;
                break;

            case PlayerClassType.Pilot:
                switch (playerVehicleModel)
                {
                case VehicleModelType.Nevada:
                case VehicleModelType.Shamal:
                case VehicleModelType.Maverick:
                case VehicleModelType.Cargobob:
                    PilotController.StartRandomMission(sender);
                    break;
                }

                break;

            case PlayerClassType.Mafia:
                switch (sender.Vehicle.Model)
                {
                case VehicleModelType.Sandking:
                case VehicleModelType.Moonbeam:
                    MafiaController.StartRandomMission(sender);
                    break;
                }
                break;
            }
        }
コード例 #28
0
ファイル: WorldController.cs プロジェクト: blaquenkot/ship
    public void Awake()
    {
        NetworkingController.NewSession((_) => {});

        PersistentDataController = Object.FindObjectOfType <PersistentDataController>();
        if (PersistentDataController == null)
        {
            PersistentDataController = Instantiate(PersistentDataControllerPrefab).GetComponent <PersistentDataController>();
        }
        GameOverController.GetComponentInChildren <NewHighscoreController>().PersistentDataController          = PersistentDataController;
        YouWonController.gameObject.GetComponentInChildren <NewHighscoreController>().PersistentDataController = PersistentDataController;

        Volume.sharedProfile.TryGet <ColorAdjustments>(out ColorAdjustments);

        List <Sprite> Pilots = PilotImages.ToList();

        List <Vector2> points = new List <Vector2>();

        for (int i = 0; i < MaxPilots; i++)
        {
            bool    badPosition = true;
            Vector2 position    = Vector2.zero;
            while (badPosition)
            {
                badPosition = false;
                position    = Random.insideUnitCircle.normalized;
                foreach (var point in points)
                {
                    if (Vector2.Distance(point, position) < 0.5f)
                    {
                        badPosition = true;
                        break;
                    }
                }
            }
            points.Add(position);
            GameObject      pilot           = Instantiate(Pilot, position * Random.Range(75f, 175f), transform.rotation, transform.parent);
            GameObject      arrow           = Instantiate(Arrow, Vector2.zero, transform.rotation, transform.parent);
            ArrowController arrowController = arrow.GetComponent <ArrowController>();
            arrowController.Target = pilot;
            int index = Random.Range(0, Pilots.Count);
            arrowController.SetCentralImage(Pilots[index]);
            Pilots.RemoveAt(index);

            PilotController pilotController = pilot.GetComponent <PilotController>();
            pilotController.WorldController = this;
            pilotController.ArrowController = arrowController;

            if (i != 0)
            {
                arrow.SetActive(false);
                InactiveObjectsToActivateOnFirstPilot.Add(arrow);
                pilot.SetActive(false);
                InactiveObjectsToActivateOnFirstPilot.Add(pilot);
            }
            else
            {
                pilot.GetComponentInChildren <CameraController>().ForceCamera(0.01f, IntroTime, 9f);
                GameUIController.BlinkText(4, () => {
                    Camera.main.GetComponent <CinemachineBrain>().m_UpdateMethod      = CinemachineBrain.UpdateMethod.FixedUpdate;
                    Camera.main.GetComponent <CinemachineBrain>().m_BlendUpdateMethod = CinemachineBrain.BrainUpdateMethod.FixedUpdate;
                });

                // The ship should look at the first pilot
                Vector3 relativePos = (pilot.transform.position - ShipController.transform.position).normalized;
                float   z           = Mathf.Atan2(relativePos.y, relativePos.x) * Mathf.Rad2Deg;
                ShipController.transform.rotation = Quaternion.Euler(ShipController.transform.rotation.x, ShipController.transform.rotation.y, z);

                arrowController.Blink(2);
            }
        }

        SpaceStation.SetActive(false);
        ArrowController spaceStationArrowController = SpaceStationArrow.GetComponent <ArrowController>();

        spaceStationArrowController.Target = SpaceStation;
        spaceStationArrowController.SetCentralImage(SpaceStationArrowSprite);
        SpaceStationArrow.SetActive(false);
    }
コード例 #29
0
    private void OnTriggerEnter(Collider other)
    {
        Debug.Log("JAI TRIGGER sur " + other.name);
        // Collect all the colliders in a sphere from the shell's current position to a radius of the explosion radius.
        Collider[] colliders = Physics.OverlapSphere(transform.position, m_ExplosionRadius);

        // Go through all the colliders...
        for (int i = 0; i < colliders.Length; i++)
        {
            //Debug.Log("JAI COLLIDE "+colliders[i].name);
            // ... and find their rigidbody.
            Rigidbody targetRigidbody = colliders[i].GetComponent <Rigidbody> ();
            Rigidbody parentTry       = colliders[i].GetComponentInParent <Rigidbody>();

            // Si le parent de l'element a pas de rigidbody c'est pas un bout du tank, donc on passe au suivant.
            if (!parentTry)
            {
                continue;
            }

            //Debug.Log("je trouve " + parentTry.name+" from "+colliders[i].name);
            //Si on trouve pas le tag tank, on a rien a faire donc on continue
            if (parentTry.tag != "Tank")
            {
                continue;
            }

            //Debug.Log("le tag tank fonctionne");
            PilotController scriptpilote = parentTry.GetComponent <PilotController>();
            //si y'a pas de script pilote on passe au collider suivant
            if (scriptpilote)
            {
                if (colliders[i].name.Contains("L_"))
                {
                    if (Random.Range(0, 10) == 0)
                    {
                        scriptpilote.DisableLeft();
                    }
                }
                if (colliders[i].name.Contains("R_"))
                {
                    if (Random.Range(0, 10) == 0)
                    {
                        scriptpilote.DisableRight();
                    }
                }
            }

            TankHealth targethealth = parentTry.GetComponent <TankHealth>();
            if (!targethealth)
            {
                continue;
            }

            //on met 5 dégats par partie du tank qu'on trouve, ce qui permet de scale les dégats
            targethealth.TakeDamage(5);
        }

        m_ExplosionParticles = Instantiate(ExplosionPrefab).GetComponent <ParticleSystem>();
        m_ExplosionParticles.transform.position = transform.position;
        m_ExplosionAudio = m_ExplosionParticles.GetComponent <AudioSource>();
        m_ExplosionParticles.Play();
        m_ExplosionAudio.Play();

        // Once the particles have finished, destroy the gameobject they are on.
        ParticleSystem.MainModule mainModule = m_ExplosionParticles.main;
        Destroy(m_ExplosionParticles.gameObject, mainModule.duration);
        // Destroy the shell.
        Destroy(gameObject);
    }