Exemplo n.º 1
0
 void OnTriggerStay(Collider collisionInfo)
 {
     if (checkCollisionsNow)
     {
         if (collisionInfo.tag == "Asteroid")
         {
             GenericObstacle obstacle = ObstaclesManager.GetObstacleByTransform(collisionInfo.transform);
             if (!OverlappedAsteroidsNow.Contains(obstacle))
             {
                 OverlappedAsteroidsNow.Add(obstacle);
             }
         }
         else if (collisionInfo.tag == "Mine")
         {
             if (!OverlapedMinesNow.Contains(collisionInfo))
             {
                 OverlapedMinesNow.Add(collisionInfo);
             }
         }
         else if (collisionInfo.name == "OffTheBoard")
         {
             OffTheBoardNow = true;
         }
         else if (collisionInfo.name == "ObstaclesStayDetector")
         {
             if (collisionInfo.tag != "Untagged" && collisionInfo.tag != TheShip.GetTag())
             {
                 OverlappedShipsNow.Add(Roster.GetShipById(collisionInfo.tag));
             }
         }
     }
 }
        public static void PlaceObstacle(string obstacleName, Vector3 position, Vector3 angles)
        {
            Phases.CurrentSubPhase.IsReadyForCommands = false;

            ChosenObstacle = ObstaclesManager.GetChosenObstacle(obstacleName);
            ChosenObstacle.ObstacleGO.transform.position    = position;
            ChosenObstacle.ObstacleGO.transform.eulerAngles = angles;

            Board.ToggleOffTheBoardHolder(false);

            ChosenObstacle.ObstacleGO.transform.parent = Board.BoardTransform;

            ChosenObstacle.IsPlaced = true;
            ChosenObstacle          = null;
            IsEnteredPlacementZone  = false;
            IsEnteredPlaymat        = false;

            MovementTemplates.ReturnRangeRulerR1();
            MovementTemplates.ReturnRangeRulerR2();

            if (ObstaclesManager.GetPlacedObstaclesCount() < 6)
            {
                Phases.CurrentSubPhase.Next();
            }
            else
            {
                FinishSubPhase();
            }
        }
Exemplo n.º 3
0
        private void CheckObstructionRecursive(Vector3 point1, Vector3 point2, GenericShip targetShip)
        {
            RaycastHit hitInfo = new RaycastHit();

            if (Physics.Raycast(point1 + new Vector3(0, 0.003f, 0), point2 - point1 + new Vector3(0, 0.003f, 0), out hitInfo))
            {
                if (hitInfo.collider.tag == "Obstacle")
                {
                    GenericObstacle obstructedObstacle = ObstaclesManager.GetChosenObstacle(hitInfo.collider.name);
                    if (!ObstructedByObstacles.Contains(obstructedObstacle))
                    {
                        ObstructedByObstacles.Add(obstructedObstacle);
                    }
                    IgnoreCollider(hitInfo);
                    CheckObstructionRecursive(point1, point2, targetShip);
                }
                else if (hitInfo.collider.tag.StartsWith("ShipId:"))
                {
                    if (hitInfo.collider.tag != "ShipId:" + targetShip.ShipId)
                    {
                        GenericShip obstructedShip = Roster.GetShipById(hitInfo.collider.tag);
                        if (!ObstructedByShips.Contains(obstructedShip))
                        {
                            ObstructedByShips.Add(obstructedShip);
                        }
                        IgnoreCollider(hitInfo);
                        CheckObstructionRecursive(point1, point2, targetShip);
                    }
                }
                else if (hitInfo.collider.tag == "Mine" || hitInfo.collider.tag == "TimedBomb")
                {
                    IsObstructedByBombToken = true;
                }
            }
        }
Exemplo n.º 4
0
        private void DropCargoToken()
        {
            Action Callback = Phases.CurrentSubPhase.CallBack;

            DecisionSubPhase.ConfirmDecisionNoCallback();

            HostUpgrade.State.SpendCharge();

            ManeuverTemplate dropTemplate = new ManeuverTemplate(ManeuverBearing.Straight, ManeuverDirection.Forward, ManeuverSpeed.Speed1, isBombTemplate: true);

            dropTemplate.ApplyTemplate(HostShip, HostShip.GetBack(), Direction.Bottom);

            Debris looseCargo = new Debris("Loose Cargo", "loosecargo");

            looseCargo.Spawn("Loose Cargo " + HostShip.ShipId, Board.GetBoard());
            ObstaclesManager.AddObstacle(looseCargo);

            looseCargo.ObstacleGO.transform.position    = dropTemplate.GetFinalPosition();
            looseCargo.ObstacleGO.transform.eulerAngles = dropTemplate.GetFinalAngles();
            looseCargo.IsPlaced = true;

            GameManagerScript.Wait(
                1,
                delegate
            {
                dropTemplate.DestroyTemplate();
                Callback();
            }
                );
        }
Exemplo n.º 5
0
        private void DropSparePartsToken()
        {
            Action Callback = Phases.CurrentSubPhase.CallBack;

            DecisionSubPhase.ConfirmDecisionNoCallback();

            HostUpgrade.State.SpendCharge();

            ManeuverTemplate dropTemplate = new ManeuverTemplate(ManeuverBearing.Straight, ManeuverDirection.Forward, ManeuverSpeed.Speed1, isBombTemplate: true);

            dropTemplate.ApplyTemplate(HostShip, HostShip.GetBack(), Direction.Bottom);

            Debris spareParts = new Debris("Spare Parts", "spareparts");

            spareParts.Spawn("Spare Parts " + HostShip.ShipId, Board.GetBoard());
            ObstaclesManager.AddObstacle(spareParts);

            spareParts.ObstacleGO.transform.position    = dropTemplate.GetFinalPosition();
            spareParts.ObstacleGO.transform.eulerAngles = dropTemplate.GetFinalAngles();
            spareParts.IsPlaced = true;

            GameManagerScript.Wait(
                1,
                delegate
            {
                Messages.ShowInfo("Spare Parts are dropped");
                dropTemplate.DestroyTemplate();
                BreakAllLocksRecursive(Callback);
            }
                );
        }
Exemplo n.º 6
0
        private void DropSparePartsToken()
        {
            Action Callback = Phases.CurrentSubPhase.CallBack;

            DecisionSubPhase.ConfirmDecisionNoCallback();

            HostUpgrade.State.SpendCharge();

            Debris spareParts = new Debris("Spare Parts", "spareparts");

            spareParts.Spawn("Spare Parts " + HostShip.ShipId, Board.GetBoard());
            ObstaclesManager.AddObstacle(spareParts);

            spareParts.ObstacleGO.transform.position    = HostShip.GetBack();
            spareParts.ObstacleGO.transform.eulerAngles = HostShip.GetAngles() + new Vector3(0, 180, 0);
            spareParts.IsPlaced = true;

            GameManagerScript.Wait(
                1,
                delegate
            {
                Messages.ShowInfo("Spare Parts are dropped");
                BreakAllLocksRecursive(Callback);
            }
                );
        }
Exemplo n.º 7
0
 // Start is called before the first frame update
 void Start()
 {
     currentTime     = 0.0f;
     currentMin      = 0;
     currentSetting  = Dificulty.VeryEasy;
     obstacleManager = GetComponentInChildren <ObstaclesManager>();
     pickUpManager   = GetComponentInChildren <PickablesManager>();
     enemySpawner    = GetComponentInChildren <EnemySpawner>();
 }
Exemplo n.º 8
0
        private void DetonateObstacle()
        {
            //TODO: Animation
            if (ChosenObstacle != null)
            {
                ObstaclesManager.DestroyObstacle(ChosenObstacle);
            }

            BombsManager.ResolveDetonationTriggers();
        }
Exemplo n.º 9
0
    void Start()
    {
        gameplayManager = GameObject.FindGameObjectWithTag("GameManagers").GetComponent <GameplayManager>();
        generalSounds   = GameObject.FindGameObjectWithTag("GameManagers").GetComponent <GeneralSoundsManager>();
        obstacleManager = GameObject.FindGameObjectWithTag("GameManagers").GetComponent <ObstaclesManager>();

        if (hasChild)
        {
            for (int i = 0; i < transform.GetChildCount(); i++)
            {
                Transform obs = transform.GetChild(i);
                if (isAnimated)
                {
                    Transform     root  = obs.GetChild(0);
                    Transform     child = root.GetChild(0);
                    ObstacleChild comp  = child.gameObject.AddComponent <ObstacleChild>();
                    comp.name = name;
                    child.gameObject.AddComponent <FootprintComponent>();
                    if (isAnimated)
                    {
                        obstacleAnimation.Add(root.GetComponent <Animation>());
                    }
                }
                else
                {
                    ObstacleChild comp = obs.gameObject.AddComponent <ObstacleChild>();
                    comp.name = name;
                    obs.gameObject.AddComponent <FootprintComponent>();
                }
            }
        }
        else
        {
            if (isAnimated)
            {
                Transform root = transform.GetChild(0);
                obstacleAnimation.Add(root.GetComponent <Animation>());
                Transform     animatedChild = root.GetChild(0);
                ObstacleChild comp          = animatedChild.gameObject.AddComponent <ObstacleChild>();
                comp.name = name;
                animatedChild.gameObject.AddComponent <FootprintComponent>();
                animChild = animatedChild.gameObject;

                Transform childTr = animChild.transform;
                initialPos = new Vector3(childTr.position.x, childTr.position.y, childTr.position.z);
                initialRot = new Quaternion(childTr.rotation.x, childTr.rotation.y, childTr.rotation.z, childTr.rotation.w);
            }
            else
            {
                gameObject.AddComponent <FootprintComponent>();
            }
        }

        SetActivationDistance();
    }
Exemplo n.º 10
0
 void Awake()
 {
     if (instance == null)
     {
         instance = this;
     }
     else if (instance != this)
     {
         Destroy(gameObject);
     }
 }
 void OnTriggerEnter(Collider collisionInfo)
 {
     if (collisionInfo.tag == "Obstacle")
     {
         ObstaclesObstructed.Add(ObstaclesManager.GetChosenObstacle(collisionInfo.transform.name));
     }
     else if (collisionInfo.tag == "Mine" || collisionInfo.tag == "TimedBomb")
     {
         IsObstructedByBombToken = true;
     }
 }
Exemplo n.º 12
0
    protected void InitializeDataContainer()
    {
        GameObject gameManagers = GameObject.FindGameObjectWithTag("GameManagers");

        environmentManager = gameManagers.GetComponent <EnvironmentManager>();
        tokenManager       = gameManagers.GetComponent <TokensManager>();
        obstacleManager    = gameManagers.GetComponent <ObstaclesManager>();
        gameplayManager    = gameManagers.GetComponent <GameplayManager>();
        interfaces         = GameObject.FindGameObjectWithTag("Interface").GetComponent <CQ_Interface>();
        tokenByName        = new Dictionary <string, Token>();
    }
Exemplo n.º 13
0
 private void Awake()
 {
     if (_instance != null && _instance != this)
     {
         Destroy(this.gameObject);
     }
     else
     {
         _instance = this;
     }
 }
Exemplo n.º 14
0
        private void ApplyObstacleLimits()
        {
            MovementTemplates.ReturnRangeRulerR1();

            Vector3 fromObstacle = Vector3.zero;
            Vector3 toObstacle   = Vector3.zero;
            float   minDistance  = float.MaxValue;

            bool isBlockedByAnotherObstacle = false;

            foreach (MeshCollider collider in ObstaclesManager.GetPlacedObstacles().Select(n => n.ObstacleGO.GetComponentInChildren <MeshCollider>()))
            {
                Vector3 closestPoint = collider.ClosestPoint(ChosenObstacle.ObstacleGO.transform.position);

                RaycastHit hitInfo = new RaycastHit();

                if (Physics.Raycast(closestPoint + new Vector3(0, 0.003f, 0), ChosenObstacle.ObstacleGO.transform.position - closestPoint, out hitInfo))
                {
                    float distanceBetween = Vector3.Distance(closestPoint, hitInfo.point);
                    if (distanceBetween < MinObstaclesDistance)
                    {
                        IsPlacementBlocked         = true;
                        isBlockedByAnotherObstacle = true;

                        if (distanceBetween < minDistance)
                        {
                            fromObstacle = closestPoint + new Vector3(0, 0.003f, 0);
                            toObstacle   = hitInfo.point;
                            minDistance  = distanceBetween;
                        }
                    }
                }

                // In case if one asteroid is inside of another
                float distanceToCenter = Vector3.Distance(closestPoint, ChosenObstacle.ObstacleGO.transform.position);
                if (distanceToCenter < MinObstaclesDistance)
                {
                    IsPlacementBlocked         = true;
                    isBlockedByAnotherObstacle = true;

                    if (distanceToCenter < minDistance)
                    {
                        fromObstacle = closestPoint;
                        toObstacle   = ChosenObstacle.ObstacleGO.transform.position;
                        minDistance  = distanceToCenter;
                    }
                }
            }

            if (IsPlacementBlocked && isBlockedByAnotherObstacle)
            {
                MovementTemplates.ShowRangeRulerR1(fromObstacle, toObstacle);
            }
        }
Exemplo n.º 15
0
 private void Start()
 {
     if (instance == null)
     {
         instance = this;
     }
     else
     {
         Destroy(this);
     }
 }
Exemplo n.º 16
0
 public void SetDefaultObstacles()
 {
     ChosenObstacles.AddRange
     (
         new List <GenericObstacle>()
     {
         ObstaclesManager.GetPossibleObstacle("coreasteroid5"),
         ObstaclesManager.GetPossibleObstacle("core2asteroid5"),
         ObstaclesManager.GetPossibleObstacle("core2asteroid4")
     }
     );
 }
Exemplo n.º 17
0
        private static void FinishSubPhase()
        {
            HideSubphaseDescription();

            Board.ToggleObstaclesHolder(false);
            ObstaclesManager.SetObstaclesCollisionDetectionQuality(CollisionDetectionQuality.High);

            GenericSubPhase subphase = Phases.StartTemporarySubPhaseNew("Notification", typeof(NotificationSubPhase), StartSetupPhase);

            (subphase as NotificationSubPhase).TextToShow = "Setup";
            subphase.Start();
        }
Exemplo n.º 18
0
        private static void FinishSubPhase()
        {
            HideSubphaseDescription();

            Board.ToggleObstaclesHolder(false);
            Roster.SetRaycastTargets(true);
            ObstaclesManager.SetObstaclesCollisionDetectionQuality(CollisionDetectionQuality.High);

            Action callback = Phases.CurrentSubPhase.CallBack;

            Phases.CurrentSubPhase = Phases.CurrentSubPhase.PreviousSubPhase;
            //Phases.CurrentSubPhase.Resume();
            callback();
        }
Exemplo n.º 19
0
    private void Awake()
    {
        instance = this;

        allTreasuresMerged = false;

        obstaclesList = new List <Obstacle>(obstaclesParentGO.GetComponentsInChildren <Obstacle>());

        //Check if total obstacles in scene are equal to the variable totalObstaclesWithTreasure
        if (obstaclesList.Count != totalNumberOfObstacles)
        {
            Debug.LogError("Obstacles gameobjects in scene does not equal the required obstacles mentioned in the gamemanager script.");
        }
    }
Exemplo n.º 20
0
        public ShipObstacleDistance(GenericShip ship, GenericObstacle obstacle)
        {
            CollisionDetectionQuality currentQuality = ObstaclesManager.CollisionDetectionQuality;

            ObstaclesManager.SetObstaclesCollisionDetectionQuality(CollisionDetectionQuality.Low);
            Ship     = ship;
            Obstacle = obstacle;

            if (!CheckDistanceSimple())
            {
                CheckDistanceAdvanced();
            }
            ObstaclesManager.SetObstaclesCollisionDetectionQuality(currentQuality);
        }
Exemplo n.º 21
0
    void StartGame()
    {
        SoundsManager.getInstance().PlayIngameMusic();

        PhysicalGameManager.getInstance().gameObject.transform.GetChild(0).gameObject.SetActive(false);

        if (NetworkManager.getInstance().IsServer())
        {
            ObstaclesManager.getInstance().StartObstaclesManager();
            PowerUpsManager.getInstance().StartPowerUpsManager();
        }

        for (int i = 0; i < 4; i++)
        {
            if (i == SelectedPlayer)
            {
                transform.GetChild(3).GetChild(i).GetComponent <BaseController>().SelectPlayer(true);
            }
            else
            {
                if (!InPractice)
                {
                    transform.GetChild(3).GetChild(i).GetComponent <NPCController>().enabled = true;
                    transform.GetChild(3).GetChild(i).GetComponent <NPCController>().StartSynchronize();
                }
                transform.GetChild(3).GetChild(i).GetComponent <CapsuleCollider>().enabled = false;
                Destroy(transform.GetChild(3).GetChild(i).GetComponent <Rigidbody>());
            }
        }

        var Platforms = gameObject.GetComponentsInChildren <FixedPlatform>();

        // Enable rigidbodies:
        foreach (var component in Platforms)
        {
            component.Initiate();
        }

        UIPlayerFollow.getInstance().SetPlayer(SelectedPlayer);

        Timer.getInstance().StartTimer();

        GameCanvas.getInstance().gameObject.transform.GetChild(0).GetChild(0).GetChild(0).GetChild(SelectedPlayer).gameObject.SetActive(true);
        GameCanvas.getInstance().gameObject.transform.GetChild(0).GetChild(1).GetChild(SelectedPlayer).gameObject.SetActive(true);
        GameCanvas.getInstance().gameObject.transform.GetChild(0).GetChild(0).GetChild(1).gameObject.SetActive(true);

        InGame = true;
    }
Exemplo n.º 22
0
 void OnTriggerEnter(Collider collisionInfo)
 {
     if (checkCollisions)
     {
         GameManagerScript Game = GameObject.Find("GameManager").GetComponent <GameManagerScript>();
         if (collisionInfo.tag == "Obstacle")
         {
             GenericObstacle obstacle = ObstaclesManager.GetChosenObstacle(collisionInfo.transform.name);
             if (!OverlapedAsteroids.Contains(obstacle))
             {
                 OverlapedAsteroids.Add(obstacle);
             }
         }
         else if (collisionInfo.tag == "Mine")
         {
             if (!OverlapedMines.Contains(collisionInfo))
             {
                 OverlapedMines.Add(collisionInfo);
             }
         }
         else if (collisionInfo.name == "OffTheBoard")
         {
             OffTheBoard = true;
         }
         else if (collisionInfo.name == "ObstaclesStayDetector")
         {
             if (collisionInfo.tag != this.tag)
             {
                 Game.Movement.CollidedWith = collisionInfo;
                 OverlapsShip = true;
                 if (!OverlapedShips.Contains(Roster.GetShipById(collisionInfo.tag)))
                 {
                     OverlapedShips.Add(Roster.GetShipById(collisionInfo.tag));
                 }
             }
         }
         else if (collisionInfo.name == "RemoteCollider")
         {
             if (collisionInfo.tag != this.tag)
             {
                 if (!OverlapedRemotes.Contains(Roster.GetShipById(collisionInfo.tag) as GenericRemote))
                 {
                     OverlapedRemotes.Add(Roster.GetShipById(collisionInfo.tag) as GenericRemote);
                 }
             }
         }
     }
 }
Exemplo n.º 23
0
    private void Start()
    {
        // Afectation des positions en X
        posXPlayer1 = player1.transform.position.x;
        posXPlayer2 = player2.transform.position.x;

        // Affectation des scripts des joueurs
        p1Script = player1.GetComponent <Player>();
        p2Script = player2.GetComponent <Player>();

        // Affection des manager
        tileMScript1 = tileManager1.GetComponent <TileManager>();
        tileMScript2 = tileManager2.GetComponent <TileManager>();

        obMScript1 = obManager1.GetComponent <ObstaclesManager>();
        obMScript2 = obManager2.GetComponent <ObstaclesManager>();
    }
Exemplo n.º 24
0
        public override void Initialize()
        {
            RequiredPlayer = Selection.ThisShip.Owner.PlayerNo;

            MinBoardEdgeDistance = Board.BoardIntoWorld(2 * Board.RANGE_1);
            MinObstaclesDistance = Board.BoardIntoWorld(Board.RANGE_1);

            ChosenObstacle.IsPlaced = false;

            Board.ToggleObstaclesHolder(true);
            Roster.SetRaycastTargets(false);

            ObstaclesManager.SetObstaclesCollisionDetectionQuality(CollisionDetectionQuality.Low);

            IsReadyForCommands = true;
            Roster.GetPlayer(RequiredPlayer).MoveObstacleMidgame();
        }
Exemplo n.º 25
0
        private bool IsNearObstacle()
        {
            if (HostShip.IsLandedOnObstacle)
            {
                Messages.ShowInfo(HostUpgrade.Name + ": Action is treated as white");
                return(true);
            }

            foreach (GenericObstacle obstacle in ObstaclesManager.GetPlacedObstacles())
            {
                ShipObstacleDistance shipObstacleDist = new ShipObstacleDistance(HostShip, obstacle);
                if (shipObstacleDist.Range < 2)
                {
                    Messages.ShowInfo(HostUpgrade.Name + ": Action is treated as white");
                    return(true);
                }
            }

            return(false);
        }
Exemplo n.º 26
0
 void OnTriggerEnter(Collider collisionInfo)
 {
     if (checkCollisions)
     {
         if (collisionInfo.tag == "Obstacle")
         {
             GenericObstacle obstacle = ObstaclesManager.GetChosenObstacle(collisionInfo.transform.name);
             if (!OverlapedAsteroids.Contains(obstacle))
             {
                 OverlapedAsteroids.Add(obstacle);
             }
         }
         else if (collisionInfo.tag == "Mine")
         {
             if (!OverlapedMines.Contains(collisionInfo))
             {
                 OverlapedMines.Add(collisionInfo);
             }
         }
         else if (collisionInfo.name == "RemoteCollider")
         {
             if (collisionInfo.tag != this.tag)
             {
                 if (!RemotesMovedThrough.Contains(Roster.GetShipById(collisionInfo.tag) as GenericRemote))
                 {
                     RemotesMovedThrough.Add(Roster.GetShipById(collisionInfo.tag) as GenericRemote);
                 }
             }
         }
         else if (collisionInfo.name == "ObstaclesStayDetector")
         {
             if (collisionInfo.tag != this.tag)
             {
                 if (!ShipsMovedThrough.Contains(Roster.GetShipById(collisionInfo.tag)))
                 {
                     ShipsMovedThrough.Add(Roster.GetShipById(collisionInfo.tag));
                 }
             }
         }
     }
 }
Exemplo n.º 27
0
    //SHIP CREATION

    private static void SpawnAllShips()
    {
        ObstaclesManager.Instance.ChosenObstacles = new List <GenericObstacle>();

        foreach (var squadList in SquadBuilder.SquadLists)
        {
            SquadBuilder.SetPlayerSquadFromImportedJson(squadList.Name, squadList.SavedConfiguration, squadList.PlayerNo, delegate { });

            if (Roster.GetPlayer(squadList.PlayerNo).PlayerType != PlayerType.Ai)
            {
                JSONObject playerInfo = squadList.SavedConfiguration.GetField("PlayerInfo");
                Roster.GetPlayer(squadList.PlayerNo).NickName = playerInfo.GetField("NickName").str;
                Roster.GetPlayer(squadList.PlayerNo).Title    = playerInfo.GetField("Title").str;
                Roster.GetPlayer(squadList.PlayerNo).Avatar   = playerInfo.GetField("Avatar").str;
            }

            Roster.GetPlayer(squadList.PlayerNo).SquadCost = squadList.Points;

            Roster.GetPlayer(squadList.PlayerNo).ChosenObstacles = new List <GenericObstacle>()
            {
                ObstaclesManager.GenerateObstacle(squadList.ChosenObstacles[0].ShortName, squadList.PlayerNo),
                ObstaclesManager.GenerateObstacle(squadList.ChosenObstacles[1].ShortName, squadList.PlayerNo),
                ObstaclesManager.GenerateObstacle(squadList.ChosenObstacles[2].ShortName, squadList.PlayerNo)
            };
        }

        // Keep order, ships must have same ID on both clients
        ShipFactory.Initialize();
        foreach (SquadBuilderShip shipConfig in SquadBuilder.GetSquadList(PlayerNo.Player1).GetShips())
        {
            GenericShip newShip = ShipFactory.SpawnShip(shipConfig);
            AddShipToLists(newShip);
        }
        foreach (SquadBuilderShip shipConfig in SquadBuilder.GetSquadList(PlayerNo.Player2).GetShips())
        {
            GenericShip newShip = ShipFactory.SpawnShip(shipConfig);
            AddShipToLists(newShip);
        }

        BoardTools.Board.SetShips();
    }
 void OnTriggerStay(Collider collisionInfo)
 {
     if (checkCollisionsNow)
     {
         if (collisionInfo.tag == "Obstacle")
         {
             GenericObstacle obstacle = ObstaclesManager.GetChosenObstacle(collisionInfo.transform.name);
             if (!OverlappedAsteroidsNow.Contains(obstacle))
             {
                 OverlappedAsteroidsNow.Add(obstacle);
             }
         }
         else if (collisionInfo.tag == "Mine")
         {
             if (!OverlapedMinesNow.Contains(collisionInfo))
             {
                 OverlapedMinesNow.Add(collisionInfo);
             }
         }
         else if (collisionInfo.name == "OffTheBoard")
         {
             OffTheBoardNow = true;
         }
         else if (collisionInfo.name == "ObstaclesStayDetector")
         {
             if (collisionInfo.tag != TheShip.GetTag())
             {
                 GenericShip ship = Roster.GetShipById(collisionInfo.tag);
                 if (ship != null && !OverlappedShipsNow.Contains(ship))
                 {
                     OverlappedShipsNow.Add(ship);
                 }
             }
             else if (collisionInfo.tag == TheShip.GetTag())
             {
                 OverlapsCurrentShipNow = true;
             }
         }
     }
 }
Exemplo n.º 29
0
        public override void Initialize()
        {
            ShowObstaclesHolder();

            MinBoardEdgeDistance = Board.BoardIntoWorld(2 * Board.RANGE_1);
            MinObstaclesDistance = Board.BoardIntoWorld(Board.RANGE_1);

            RequiredPlayer = Roster.AnotherPlayer(Phases.PlayerWithInitiative); // Will be changed in Next
            ChosenObstacle = null;

            foreach (GenericPlayer player in Roster.Players)
            {
                if (player.PlayerType == PlayerType.Ai)
                {
                    IsRandomSetupSelected[player.PlayerNo] = true;
                }
            }

            ObstaclesManager.SetObstaclesCollisionDetectionQuality(CollisionDetectionQuality.Low);

            Next();
        }
Exemplo n.º 30
0
    void OnTriggerEnter(Collider collisionInfo)
    {
        if (checkCollisions)
        {
            if (collisionInfo.tag == "Asteroid")
            {
                GenericObstacle obstacle = ObstaclesManager.GetObstacleByTransform(collisionInfo.transform);
                if (!OverlapedAsteroids.Contains(obstacle))
                {
                    OverlapedAsteroids.Add(obstacle);
                }
            }

            if (collisionInfo.tag == "Mine")
            {
                if (!OverlapedMines.Contains(collisionInfo))
                {
                    OverlapedMines.Add(collisionInfo);
                }
            }
        }
    }