コード例 #1
0
ファイル: BuzzDroidSwarm.cs プロジェクト: vitreuz/FlyCasual
        private IEnumerator CheckPositions()
        {
            DisableRenderers();
            OldPosition = HostShip.GetPositionInfo();

            ObstaclesStayDetectorForced collisionDetector = HostShip.Model.GetComponentInChildren <ObstaclesStayDetectorForced>();

            RelocateToFrontGuides();

            collisionDetector.ReCheckCollisionsStart();
            yield return(new WaitForEndOfFrame());

            yield return(new WaitForEndOfFrame());

            bool canBePlacedFront = NoCollisionsWithObjects(collisionDetector);

            collisionDetector.ReCheckCollisionsFinish();

            RelocateToRearGuides();

            collisionDetector.ReCheckCollisionsStart();
            yield return(new WaitForEndOfFrame());

            yield return(new WaitForEndOfFrame());

            bool canBePlacedRear = NoCollisionsWithObjects(collisionDetector);

            collisionDetector.ReCheckCollisionsFinish();

            HostShip.SetPositionInfo(OldPosition);
            RestoreRenderers();

            if (!canBePlacedFront && !canBePlacedRear)
            {
                Messages.ShowInfo("Buzz Droid Swarm cannot be relocated without overlapping");
                DealDamageToBothShips();
            }
            else if (canBePlacedFront && canBePlacedRear)
            {
                StartDecisionSubphase();
            }
            else if (canBePlacedFront && !canBePlacedRear)
            {
                RelocateToFrontGuidesAndFinish(Triggers.FinishTrigger);
            }
            else if (!canBePlacedFront && canBePlacedRear)
            {
                RelocateToRearGuidesAndFinish(Triggers.FinishTrigger);
            }
        }
コード例 #2
0
            public IEnumerator CheckCollisions()
            {
                Collider         = TemporaryShipBase.GetComponentInChildren <ObstaclesStayDetectorForced>();
                Collider.TheShip = (Phases.CurrentSubPhase as BarrelRollPlanningSubPhase).TheShip;
                Collider.ReCheckCollisionsStart();

                yield return(Tools.WaitForFrames(3));
            }
コード例 #3
0
ファイル: BarrelRollAction.cs プロジェクト: Conzar/FlyCasual
        private void TryConfirmBarrelRollPosition()
        {
            obstaclesStayDetectorBase.ReCheckCollisionsStart();
            obstaclesStayDetectorMovementTemplate.ReCheckCollisionsStart();

            GameManagerScript Game = GameObject.Find("GameManager").GetComponent <GameManagerScript>();

            Game.Movement.FuncsToUpdate.Add(UpdateColisionDetection);
        }
コード例 #4
0
        private void CheckImmediateDetonation()
        {
            collisionChecker = BombObject.GetComponentInChildren <ObstaclesStayDetectorForced>();
            collisionChecker.ReCheckCollisionsStart();

            GameManagerScript Game = GameObject.Find("GameManager").GetComponent <GameManagerScript>();

            Game.Movement.FuncsToUpdate.Add(UpdateColisionDetection);
        }
コード例 #5
0
        public void TryConfirmBoostPosition(System.Action <bool> canBoostCallback = null)
        {
            ShowBoosterHelper();

            obstaclesStayDetectorBase.ReCheckCollisionsStart();
            obstaclesStayDetectorMovementTemplate.ReCheckCollisionsStart();

            GameManagerScript Game = GameObject.Find("GameManager").GetComponent <GameManagerScript>();

            Game.Movement.FuncsToUpdate.Add(() => UpdateColisionDetection(canBoostCallback));
        }
コード例 #6
0
        private void CheckImmediateDetonation()
        {
            foreach (var mineObject in CurrentBombObjects)
            {
                ObstaclesStayDetectorForced collisionChecker = mineObject.GetComponentInChildren <ObstaclesStayDetectorForced>();
                collisionChecker.ReCheckCollisionsStart();

                GameManagerScript Game = GameObject.Find("GameManager").GetComponent <GameManagerScript>();
                Game.Movement.FuncsToUpdate.Add(delegate { return(UpdateColisionDetection(collisionChecker)); });
            }
        }
コード例 #7
0
ファイル: DecloakSubPhases.cs プロジェクト: xNyer/FlyCasual
        public void TryConfirmDecloakPosition()
        {
            obstaclesStayDetectorBase.ReCheckCollisionsStart();

            obstaclesStayDetectorMovementTemplate = GetDecloakHelperByName(SelectedDecloakHelper).GetComponentInChildren <ObstaclesStayDetectorForced>();
            obstaclesStayDetectorMovementTemplate.ReCheckCollisionsStart();

            GameManagerScript Game = GameObject.Find("GameManager").GetComponent <GameManagerScript>();

            Game.Movement.FuncsToUpdate.Add(UpdateColisionDetection);
        }
コード例 #8
0
ファイル: BoostAction.cs プロジェクト: zdravkotatic/FlyCasual
        public void TryConfirmBoostPosition()
        {
            ShowBoosterHelper();

            obstaclesStayDetectorBase.ReCheckCollisionsStart();
            obstaclesStayDetectorMovementTemplate.ReCheckCollisionsStart();

            GameManagerScript Game = GameObject.Find("GameManager").GetComponent <GameManagerScript>();

            Game.Movement.FuncsToUpdate.Add(UpdateColisionDetection);
        }
コード例 #9
0
    private IEnumerator CheckCollisions()
    {
        foreach (var temporaryShipBase in TemporaryShipBases.Values)
        {
            ObstaclesStayDetectorForced detector = temporaryShipBase.transform.Find("ShipBase").Find("ObstaclesStayDetector").gameObject.AddComponent <ObstaclesStayDetectorForced>();

            detector.ReCheckCollisionsStart();
            yield return(new WaitForFixedUpdate());

            detector.ReCheckCollisionsFinish();
        }
    }
コード例 #10
0
        private IEnumerator CheckBombPlacement()
        {
            ObstaclesStayDetectorForced detector = BombGO.GetComponentInChildren <ObstaclesStayDetectorForced>();

            detector.ReCheckCollisionsStart();
            yield return(WaitForFrames(2));

            detector.ReCheckCollisionsFinish();

            if (detector.OverlapsCurrentShipNow)
            {
                GameCommand command = GeneratePlaceBombCommand(BombGO.transform.position, BombGO.transform.eulerAngles);
                GameMode.CurrentGameMode.ExecuteCommand(command);
            }
            else
            {
                Messages.ShowError("The bomb must be touching ship's base");
                IsInReposition = true;
            }
        }
コード例 #11
0
        private IEnumerator CheckBoostTemplate(ObstaclesStayDetectorForced obstaclesStayDetectorMovementTemplate)
        {
            obstaclesStayDetectorMovementTemplate.ReCheckCollisionsStart();

            yield return(Tools.WaitForFrames(3));
        }
コード例 #12
0
ファイル: BoostAction.cs プロジェクト: thordurk91/FlyCasual
 private void TryConfirmBoostPosition()
 {
     obstaclesStayDetectorBase.ReCheckCollisionsStart();
     obstaclesStayDetectorMovementTemplate.ReCheckCollisionsStart();
     Game.Movement.FuncsToUpdate.Add(UpdateColisionDetection);
 }