Example #1
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);
            }
                );
        }
Example #2
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();
            }
                );
        }
 private void ShowBarrelRollTemplate()
 {
     SelectedTemplate.ApplyTemplate(
         TheShip,
         (SelectedDirectionPrimary == Direction.Left) ? TheShip.GetLeft() : TheShip.GetRight(),
         SelectedDirectionPrimary
         );
 }
Example #4
0
        private void ShowBombAndLaunchTemplate(ManeuverTemplate bombDropTemplate)
        {
            bombDropTemplate.ApplyTemplate(Selection.ThisShip, Selection.ThisShip.GetPosition(), Direction.Top);

            Vector3    bombPosition = bombDropTemplate.GetFinalPosition();
            Quaternion bombRotation = bombDropTemplate.GetFinalRotation();

            CreateBombObject(bombPosition, bombRotation);
            BombObjects[0].transform.position = bombPosition;

            SelectedBombLaunchHelper = bombDropTemplate;
        }
        private void ShowBombAndDropTemplate(ManeuverTemplate bombDropTemplate)
        {
            GenericBomb bomb = BombsManager.CurrentDevice as GenericBomb;

            bombDropTemplate.ApplyTemplate(Selection.ThisShip, Selection.ThisShip.GetBack(), Direction.Bottom);

            Vector3    bombPosition = bombDropTemplate.GetFinalPosition();
            Quaternion bombRotation = bombDropTemplate.GetFinalRotation();

            CreateBombObject(bombPosition, bombRotation);

            for (int i = 0; i < BombObjects.Count; i++)
            {
                switch (i)
                {
                case 0:
                    BombObjects[i].transform.position = bombPosition;
                    break;

                case 1:
                    BombObjects[i].transform.position = bombPosition
                                                        + BombObjects.First().transform.TransformVector(new Vector3(
                                                                                                            bomb.bombSideDistanceX,
                                                                                                            0,
                                                                                                            bomb.bombSideDistanceZ
                                                                                                            )
                                                                                                        );
                    break;

                case 2:
                    BombObjects[i].transform.position = bombPosition
                                                        + BombObjects.First().transform.TransformVector(new Vector3(
                                                                                                            -bomb.bombSideDistanceX,
                                                                                                            0,
                                                                                                            bomb.bombSideDistanceZ
                                                                                                            )
                                                                                                        );
                    break;

                default:
                    break;
                }

                BombObjects[i].transform.rotation = bombRotation;
            }

            SelectedBombDropHelper = bombDropTemplate;
        }
        private void ShowRemoteAndDropTemplate(ManeuverTemplate bombDropTemplate)
        {
            bombDropTemplate.ApplyTemplate(Selection.ThisShip, Selection.ThisShip.GetBack(), Direction.Bottom);

            Vector3    bombPosition = bombDropTemplate.GetFinalPosition();
            Quaternion bombRotation = bombDropTemplate.GetFinalRotation();

            // TODO: get type of remote from upgrade
            ShipFactory.SpawnRemote(
                (GenericRemote)Activator.CreateInstance(BombsManager.CurrentDevice.UpgradeInfo.RemoteType, Selection.ThisShip.Owner),
                bombPosition,
                bombRotation
                );

            SelectedBombDropHelper = bombDropTemplate;
        }