Example #1
0
    public static void TakePart(Entity entity, TractorBeam tractor)
    {
        if (entity as Yard)
        {
            // Waits to see if it will get more parts
            Yard.lastPartTakenTime = Time.time;
            Yard.partsTakenCombo++;
        }
        else
        {
            PassiveDialogueSystem.Instance.PushPassiveDialogue(entity.ID, "<color=lime>Your part has been added into your inventory.</color>", 4);
        }
        var shellPart = tractor.GetTractorTarget().GetComponent <ShellPart>();
        var info      = shellPart.info;

        info = ShipBuilder.CullSpatialValues(info);
        ShipBuilder.AddOriginToDictionary(shellPart);
        PlayerCore.Instance.cursave.partInventory.Add(info);
        PartIndexScript.AttemptAddToPartsObtained(info);
        PartIndexScript.AttemptAddToPartsSeen(info);
        if (NodeEditorFramework.Standard.YardCollectCondition.OnYardCollect != null)
        {
            NodeEditorFramework.Standard.YardCollectCondition.OnYardCollect.Invoke(info.partID, info.abilityID, shellPart.droppedSectorName);
        }
        Destroy(shellPart.gameObject);
    }
Example #2
0
        private static void CreateTractorBeam(AnimationService animationService, Ship ship, Bug bug)
        {
            var tb = new TractorBeam()
            {
                DrawPath             = false,
                RotateAlongPath      = false,
                Started              = true,
                DestroyAfterComplete = false,
                IsMoving             = false,
                PathIsLine           = true,
                Location             = new PointF(bug.Location.X, bug.Location.Y + 155)
            };

            tb.SpriteBankIndex = 0;

            tb.SpriteBank.Add(new Sprite(Sprite.SpriteTypes.TractorBeam));
            tb.SpriteBank.Add(new Sprite(Sprite.SpriteTypes.TractorBeam2));
            tb.SpriteBank.Add(new Sprite(Sprite.SpriteTypes.TractorBeam3));
            tb.SpriteBank.ForEach(a => {
                a.SourceRect = new Rectangle(0, 0, Constants.BiggerSpriteDestSize.Width, 0);
                a.DestRect   = new Rectangle(0, 0, Constants.BiggerSpriteDestSize.Width, 0);
            });

            animationService.Animatables.Add(tb);
        }
Example #3
0
 // Use this for initialization
 void Start()
 {
     _pickedUp  = false;
     _canPlace  = false;
     _hand      = GameManager.Instance.GetComponent <CockpitReferences>().Hand;
     _beam      = GameManager.Instance.GetComponent <CockpitReferences>().TractorBeam;
     _materials = GetComponent <Renderer>().materials;
     _count     = 0;
 }
Example #4
0
        public void testTractorBeamSetIDS()
        {
            TractorBeam tb = new TractorBeam("2799531210", di);

            Assert.AreEqual("Tractor Beam", tb.Name);

            tb = tb.setIDS("2799531210");
            Assert.AreEqual("Tractor Beam", tb.Name);
        }
Example #5
0
 protected override void Awake()
 {
     respawns = true;
     if (!tractor)
     {
         tractor       = gameObject.AddComponent <TractorBeam>();
         tractor.owner = this;
     }
     base.Awake(); // base awake
 }
Example #6
0
    void Start()
    {
        // Initialize components
        gravityGenerator   = gameObject.AddComponent <GravityGenerator>();
        oxygenGenerator    = gameObject.AddComponent <OxygenGenerator>();
        warrantScanner     = gameObject.AddComponent <WarrantScanner>();
        integrityScanner   = gameObject.AddComponent <IntegrityScanner>();
        diagnosticsScanner = gameObject.AddComponent <DiagnosticsScanner>();

        tractorBeam = gameObject.AddComponent <TractorBeam>();
    }
Example #7
0
 // Use this for initialization
 void Start()
 {
     _doorPositions = new Vector3[doors.Length];
     for (int i = 0; i < doors.Length; i++)
     {
         _doorPositions[i] = doors[i].transform.position;
     }
     _hand   = GameManager.Instance.GetComponent <CockpitReferences>().Hand;
     _beam   = GameManager.Instance.GetComponent <CockpitReferences>().TractorBeam;
     snapped = false;
     index   = 0;
 }
Example #8
0
        public async Task Part1_ConcreteExcercise()
        {
            // Arrange
            var input   = "109,424,203,1,21101,11,0,0,1105,1,282,21102,18,1,0,1105,1,259,2102,1,1,221,203,1,21102,1,31,0,1106,0,282,21101,0,38,0,1106,0,259,20102,1,23,2,21202,1,1,3,21101,0,1,1,21102,57,1,0,1105,1,303,2101,0,1,222,20102,1,221,3,20101,0,221,2,21102,259,1,1,21101,0,80,0,1106,0,225,21102,135,1,2,21101,0,91,0,1105,1,303,2102,1,1,223,21001,222,0,4,21102,259,1,3,21102,1,225,2,21101,0,225,1,21101,118,0,0,1106,0,225,20101,0,222,3,21101,0,12,2,21101,0,133,0,1106,0,303,21202,1,-1,1,22001,223,1,1,21102,1,148,0,1105,1,259,1202,1,1,223,21002,221,1,4,20102,1,222,3,21101,0,17,2,1001,132,-2,224,1002,224,2,224,1001,224,3,224,1002,132,-1,132,1,224,132,224,21001,224,1,1,21102,1,195,0,105,1,109,20207,1,223,2,21001,23,0,1,21101,0,-1,3,21101,214,0,0,1105,1,303,22101,1,1,1,204,1,99,0,0,0,0,109,5,1202,-4,1,249,21201,-3,0,1,22102,1,-2,2,22102,1,-1,3,21102,250,1,0,1106,0,225,21202,1,1,-4,109,-5,2106,0,0,109,3,22107,0,-2,-1,21202,-1,2,-1,21201,-1,-1,-1,22202,-1,-2,-2,109,-3,2105,1,0,109,3,21207,-2,0,-1,1206,-1,294,104,0,99,21201,-2,0,-2,109,-3,2105,1,0,109,5,22207,-3,-4,-1,1206,-1,346,22201,-4,-3,-4,21202,-3,-1,-1,22201,-4,-1,2,21202,2,-1,-1,22201,-4,-1,1,22102,1,-2,3,21101,0,343,0,1106,0,303,1105,1,415,22207,-2,-3,-1,1206,-1,387,22201,-3,-2,-3,21202,-2,-1,-1,22201,-3,-1,3,21202,3,-1,-1,22201,-3,-1,2,22101,0,-4,1,21102,384,1,0,1105,1,303,1106,0,415,21202,-4,-1,-4,22201,-4,-3,-4,22202,-3,-2,-2,22202,-2,-4,-4,22202,-3,-2,-3,21202,-4,-1,-2,22201,-3,-2,1,22102,1,1,-4,109,-5,2106,0,0";
            var subject = new TractorBeam(new IntcodeProgram(NullLogger <IntcodeProgram> .Instance));

            // Act
            var result = await subject.SolvePart1Async(input.ToMemoryStream());

            // Assert
            Assert.Equal("156", result);
        }
Example #9
0
        public static TractorBeam CreateTractorBeam(IPhysicsEntity from, IPhysicsEntity to)
        {
            if (Atom.Math.Vector2.DistanceSquared(from.Position, to.Position) >= 700.0f)
            {
                return(null);
            }

            var beam = new TractorBeam(from, to);

            beam.DrawStrategy = new TractorBeamDrawStrategy();

            return(beam);
        }
Example #10
0
    protected override void Start()
    {
        if (!tractor)
        {
            tractor       = gameObject.AddComponent <TractorBeam>();
            tractor.owner = this;
            tractor.BuildTractor();
            tractor.SetEnergyEnabled(false);
        }

        category = EntityCategory.Station;
        base.Start();
    }
Example #11
0
    protected override void Start()
    {
        ID = AbilityID.Harvester;

        if (!owner)
        {
            owner = (Core as Turret).owner as ShellCore;
        }
        if (!tractor)
        {
            tractor       = gameObject.AddComponent <TractorBeam>();
            tractor.owner = Core;
            tractor.BuildTractor();
        }
    }
Example #12
0
    public override void Init()
    {
        initialized = true;
        if (!craft.gameObject.GetComponent <TractorBeam>())
        {
            beam       = craft.gameObject.AddComponent <TractorBeam>();
            beam.owner = craft;
            beam.BuildTractor();
        }
        else
        {
            beam = craft.gameObject.GetComponent <TractorBeam>();
        }

        beam.SetEnergyEnabled(false);
    }
Example #13
0
    /// <summary>
    /// Heals all nearby allies
    /// </summary>
    protected override void Execute()
    {
        TractorBeam tractor = Core.GetComponent <TractorBeam>();

        if (tractor.GetTractorTarget() != null && tractor.GetTractorTarget().GetComponent <ShellPart>())
        {
            if (FactionManager.IsAllied(Core.faction, PlayerCore.Instance.faction))
            {
                Yard.TakePart(Core, tractor);
            }
            else
            {
                Core.TakeEnergy(-energyCost);
                var shellPart = tractor.GetTractorTarget().GetComponent <ShellPart>();
                Destroy(shellPart.gameObject);
            }
        }
        else
        {
            Core.TakeEnergy(-energyCost);
            Draggable part = null;
            float     dist = range * range; //Max distance of new tractor beam
            for (int i = 0; i < AIData.strayParts.Count; i++)
            {
                float     d      = (AIData.strayParts[i].transform.position - Core.transform.position).sqrMagnitude;
                Draggable target = AIData.strayParts[i].GetComponent <Draggable>();
                if (d < dist && target && !target.dragging)
                {
                    dist = d;
                    part = target;
                }
            }
            if (part != null)
            {
                tractor.SetTractorTarget(part);
            }
        }
    }
    void Update()
    {
        foreach (var payload in Payloads)
        {
            var delta = payload.position - transform.position;
            if (delta.sqrMagnitude <= LockonDistance * LockonDistance)
            {
                HingeJoint hj = gameObject.AddComponent <HingeJoint>();
                hj.connectedBody = payload.GetComponent <Rigidbody>();
                hj.axis          = Vector3.forward;
                hj.anchor        = Vector3.zero;

                TractorBeam.Create(transform, payload);

                // <WIP> maybe we want to "correct" the hang distance
                // in case you came in so hot that you are unusually
                // close (or far) from the payload? Meh...

                Payloads.Remove(payload);
                return;
            }
        }
    }
Example #15
0
 // Use this for initialization
 void Start()
 {
     magnet = transform.FindChild ("Magnet").GetComponent<TractorBeam>();
     retract ();
 }
Example #16
0
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();

        TractorBeam tractor = (TractorBeam)target;
    }
Example #17
0
        public void testTractorBeamBasic()
        {
            TractorBeam tb = new TractorBeam("2799531210", di);

            Assert.AreEqual("Tractor Beam", tb.Name);
        }
Example #18
0
 public void SendTractorStartMessage( NetworkViewID _viewID, TractorBeam.TractorFunction _tractorDirection, NetworkViewID _targetID)
 {
     this.GetComponent<NetworkView>().RPC( "OnTractorStartRPC", RPCMode.Others, _viewID, (int)_tractorDirection, _targetID );
 }
    void Awake()
    {
        wasOccupied = false;

        if (GameObject.Find ("BlockSpawner")){
            blockSpawner = GameObject.Find ("BlockSpawner");
        }
        launchCount = 0;
        f = 0;
        lowThresh = 10f;
        highThresh = 90f;
        knockbackFactor = 4f;
        baselineKnockback = 20f;

        occupied = false;
        nowProjectile = false;
        waiting = false;
        blockTypes = new int[] {0,0,0,0};
        storedWeapons = new GameObject[] {null,null,null,null};

        superNeutralBlockPath = "Prefabs/WeaponBlocks/SuperNeutralBlock";
        superExplosiveBlockPath = "Prefabs/WeaponBlocks/SuperExplosiveBlock";
        superFrozesplosiveBlockPath = "Prefabs/WeaponBlocks/SuperFreezeBlock";
        superTelekineticBlockPath = "Prefabs/WeaponBlocks/SuperTelekineticBlock";
        superTurretBlockPath = "Prefabs/WeaponBlocks/SuperTurretBlock";

        if (gameObject.name == "WeaponDetector1"){
            chargeDisplay = GameObject.Find ("ChargeBar1").GetComponent<ChargeDisplay> ();
            character = GameObject.Find ("Hero1");

            arm = GameObject.Find ("Arm1").transform;
            tractorBeam = GameObject.Find ("TractorBeam1").GetComponent<TractorBeam>();
            wepDSID = 1;
        }
        else {
            chargeDisplay = GameObject.Find ("ChargeBar2").GetComponent<ChargeDisplay> ();
            character = GameObject.Find ("Hero2");

            arm = GameObject.Find ("Arm2").transform;
            tractorBeam = GameObject.Find ("TractorBeam2").GetComponent<TractorBeam>();
            wepDSID = 2;
        }
        player = character.GetComponent<Player> ();
        controller = character.GetComponent<Controller> ();

        if (GameObject.Find ("MainCamera").GetComponent<CameraFollowPlayer1> ().enabled){
            c1 = true;
            c2 = false;
            cameraFollowPlayer1 = GameObject.Find ("MainCamera").GetComponent<CameraFollowPlayer1> ();
        }
        else {
            c1 = false;
            c2 = true;
            cameraBattleArena = GameObject.Find ("MainCamera").GetComponent<CameraBattleArena> ();
        }
        baselineFire = 300f;
        fireSpeed = 12f;
        StartCoroutine (PeriodicCatalog ());
    }
 void Start()
 {
     beam = GetComponentInChildren <TractorBeam>();
 }
Example #21
0
 public Station(Dictionary <string, Texture2D> textureDictionary, Vector2 position, Dictionary <string, List <ITurret> > turrets, float healthMax, float energyMax, float energyRegen, float turnRate, float speed, TractorBeam tractorBeam, int upgradeCount) : base(textureDictionary, position, turrets, healthMax, energyMax, energyRegen, turnRate, speed, tractorBeam, upgradeCount)
 {
 }
 private void Start()
 {
     tractorBeam = GetComponentInChildren <TractorBeam>();
 }
Example #23
0
    void Awake()
    {
        wasOccupied = false;

        if (GameObject.Find("BlockSpawner"))
        {
            blockSpawner = GameObject.Find("BlockSpawner");
        }
        launchCount       = 0;
        f                 = 0;
        lowThresh         = 10f;
        highThresh        = 90f;
        knockbackFactor   = 4f;
        baselineKnockback = 20f;

        occupied      = false;
        nowProjectile = false;
        waiting       = false;
        blockTypes    = new int[] { 0, 0, 0, 0 };
        storedWeapons = new GameObject[] { null, null, null, null };

        superNeutralBlockPath       = "Prefabs/WeaponBlocks/SuperNeutralBlock";
        superExplosiveBlockPath     = "Prefabs/WeaponBlocks/SuperExplosiveBlock";
        superFrozesplosiveBlockPath = "Prefabs/WeaponBlocks/SuperFreezeBlock";
        superTelekineticBlockPath   = "Prefabs/WeaponBlocks/SuperTelekineticBlock";
        superTurretBlockPath        = "Prefabs/WeaponBlocks/SuperTurretBlock";

        if (gameObject.name == "WeaponDetector1")
        {
            chargeDisplay = GameObject.Find("ChargeBar1").GetComponent <ChargeDisplay> ();
            character     = GameObject.Find("Hero1");

            arm         = GameObject.Find("Arm1").transform;
            tractorBeam = GameObject.Find("TractorBeam1").GetComponent <TractorBeam>();
            wepDSID     = 1;
        }
        else
        {
            chargeDisplay = GameObject.Find("ChargeBar2").GetComponent <ChargeDisplay> ();
            character     = GameObject.Find("Hero2");

            arm         = GameObject.Find("Arm2").transform;
            tractorBeam = GameObject.Find("TractorBeam2").GetComponent <TractorBeam>();
            wepDSID     = 2;
        }
        player     = character.GetComponent <Player> ();
        controller = character.GetComponent <Controller> ();

        if (GameObject.Find("MainCamera").GetComponent <CameraFollowPlayer1> ().enabled)
        {
            c1 = true;
            c2 = false;
            cameraFollowPlayer1 = GameObject.Find("MainCamera").GetComponent <CameraFollowPlayer1> ();
        }
        else
        {
            c1 = false;
            c2 = true;
            cameraBattleArena = GameObject.Find("MainCamera").GetComponent <CameraBattleArena> ();
        }
        baselineFire = 300f;
        fireSpeed    = 12f;
        StartCoroutine(PeriodicCatalog());
    }
Example #24
0
        private void addEquipment(string expectedType, string IDS, int Quantity)
        {
            switch (expectedType)
            {
            case GamedataSchema.GAMEDATAAMMO:
                Ammo a = new Ammo(IDS, Quantity, di);
                Ammo.Add(a);
                writeLog(Logger.LogLevels.DEBUG, "ReadAmmo", "Ammo: " + a.Name + "Quantity: " + a.Quantity);
                break;

            case GamedataSchema.GAMEDATACARGO:
                Cargo c = new Cargo(IDS, Quantity, di);
                Cargo.Add(c);
                writeLog(Logger.LogLevels.DEBUG, "ReadCargo", "Cargo: " + c.Name + "Quantity: " + c.Quantity);
                break;

            case GamedataSchema.GAMEDATACM:
                Countermeasure cm = new Countermeasure(IDS, di);
                Countermeasures.Add(cm);
                writeLog(Logger.LogLevels.DEBUG, "ReadCM", "CM: " + cm.Name);
                break;

            case GamedataSchema.GAMEDATAENGINES:
                Engine e = new Engine(IDS, di);
                Engines.Add(e);
                writeLog(Logger.LogLevels.DEBUG, "ReadEngine", "Engine: " + e.Name);
                break;

            case GamedataSchema.GAMEDATAGUNS:
                Gun g = new Gun(IDS, di);
                Guns.Add(g);
                writeLog(Logger.LogLevels.DEBUG, "ReadGun", "Gun: " + g.Name);
                break;

            case GamedataSchema.GAMEDATALIGHTS:
                Light l = new Light(IDS, di);
                Lights.Add(l);
                writeLog(Logger.LogLevels.DEBUG, "ReadLight", "Light: " + l.Name);
                break;

            case GamedataSchema.GAMEDATAMINES:
                Mine m = new Mine(IDS, di);
                Mines.Add(m);
                writeLog(Logger.LogLevels.DEBUG, "ReadMine", "Mine: " + m.Name);
                break;

            case GamedataSchema.GAMEDATAMISC:
                Misc mi = new Misc(IDS, di);
                Misc.Add(mi);
                writeLog(Logger.LogLevels.DEBUG, "ReadMisc", "Misc: " + mi.Name);
                break;

            case GamedataSchema.GAMEDATAPOWER:
                Power p = new Power(IDS, di);
                Power.Add(p);
                writeLog(Logger.LogLevels.DEBUG, "ReadPower", "Power: " + p.Name);
                break;

            case GamedataSchema.GAMEDATAPROJECTILES:
                Projectile pr = new Projectile(IDS, di);
                Projectiles.Add(pr);
                writeLog(Logger.LogLevels.DEBUG, "ReadProjectile", "Projectile: " + pr.Name);
                break;

            case GamedataSchema.GAMEDATASCANNERS:
                Scanner s = new Scanner(IDS, di);
                Scanners.Add(s);
                writeLog(Logger.LogLevels.DEBUG, "ReadScanner", "Scanner: " + s.Name);
                break;

            case GamedataSchema.GAMEDATASHIELDS:
                Shield sh = new Shield(IDS, di);
                Shields.Add(sh);
                writeLog(Logger.LogLevels.DEBUG, "ReadShield", "Shield: " + sh.Name);
                break;

            case GamedataSchema.GAMEDATATHRUSTERS:
                Thruster t = new Thruster(IDS, di);
                Thrusters.Add(t);
                writeLog(Logger.LogLevels.DEBUG, "ReadThruster", "Thruster: " + t.Name);
                break;

            case GamedataSchema.GAMEDATATRACTORBEAMS:
                TractorBeam tb = new TractorBeam(IDS, di);
                TractorBeams.Add(tb);
                writeLog(Logger.LogLevels.DEBUG, "ReadTractor", "Tractor: " + tb.Name);
                break;

            case GamedataSchema.GAMEDATATURRETS:
                Turret tu = new Turret(IDS, di);
                Turrets.Add(tu);
                writeLog(Logger.LogLevels.DEBUG, "ReadTurret", "Turret: " + tu.Name);
                break;
            }
        }
Example #25
0
        protected override void LoadContent()
        {
            // Create a new SpriteBatch, which can be used to draw textures.
            _spriteBatch = new SpriteBatch(GraphicsDevice);
            _rnd         = new Random();
            camera       = new Camera2D(GraphicsDevice);

            Graphics.PreferredBackBufferWidth  = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width;  // window width 801
            Graphics.PreferredBackBufferHeight = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height; // window height 701
            Graphics.IsFullScreen           = false;
            GraphicsDevice.SamplerStates[0] = SamplerState.PointClamp;

            //graphics.PreferredBackBufferWidth = 801;  // window width 801
            //graphics.PreferredBackBufferHeight = 701;   // window height 701
            //graphics.IsFullScreen = false;

            Graphics.ApplyChanges();

            halfScreen = new Vector2(Graphics.PreferredBackBufferWidth / 2f, Graphics.PreferredBackBufferHeight / 2f);

            defaultShipPos = Vector2.Zero;

            var tractorBeamTexture = Content.Load <Texture2D>("tractorBeam");

            turret0Texture       = Content.Load <Texture2D>("turret0");
            turret1Texture       = Content.Load <Texture2D>("turret1");
            turretStationTexture = Content.Load <Texture2D>("turretStationTexture");

            shot0Texture = Content.Load <Texture2D>("shot0");
            shot0        = new Shot(shot0Texture, 60, "default", 15, 2);

            shot1Texture = Content.Load <Texture2D>("shot1");
            shot1        = new Shot(shot1Texture, 60, "default", 15, 1);

            var laserStart  = new Sprite(Content.Load <Texture2D>("laserStart"));
            var laserMiddle = new Sprite(Content.Load <Texture2D>("laserMiddle"));
            var laserEnd    = new Sprite(Content.Load <Texture2D>("laserEnd"));

            var soundTest = Content.Load <SoundEffect>("Sounds\\Item_75");

            turrets0.Add(new BasicTurret(turret1Texture, new Vector2(-7, -10), new Vector2(-7, -10), 0, shot1, 100, 0.05f, TurretType.Rotating, 30f));
            turrets0.Add(new BasicTurret(turret1Texture, new Vector2(-7, 10), new Vector2(-7, 10), 0, shot1, 100, 0.05f, TurretType.Rotating, 30f));

            turrets0[0].SoundEffect = soundTest;
            turrets0[1].SoundEffect = soundTest;

            turrets1.Add(new BasicTurret(turret1Texture, new Vector2(-10, -10), new Vector2(-10, -10), 0, shot0, 150, 0.05f, TurretType.Static, 30f));
            turrets1.Add(new BasicTurret(turret1Texture, new Vector2(-10, 10), new Vector2(-10, 10), 0, shot0, 150, 0.05f, TurretType.Static, 30f));

            turrets2.Add(new BasicTurret(turret0Texture, new Vector2(5, 0), new Vector2(5, 0), 0, shot0, 150, 0.05f, TurretType.Rotating, 30f));

            turrets3.Add(new BasicTurret(turret1Texture, new Vector2(-5.5f, -28.5f), new Vector2(-5.5f, -28.5f), 0, shot0, 150, 0.05f, TurretType.Rotating, 30f));
            turrets3.Add(new BasicTurret(turret1Texture, new Vector2(-5.5f, 27.5f), new Vector2(-5.5f, 27.5f), 0, shot0, 150, 0.05f, TurretType.Rotating, 30f));

            turrets3Secondary.Add(new LaserTurret(turret1Texture, laserStart, laserMiddle, laserEnd, new Vector2(-4.5f, 0f), new Vector2(-4.5f, 0), 0, 20, 0.05f, TurretType.Rotating, 180f, 800f, 120f, 1f));

            turretsStation.Add(new BasicTurret(turretStationTexture, new Vector2(5, 27), new Vector2(0, 27), 0, shot0, 150, 0.05f, TurretType.Rotating, 30f));
            turretsStation.Add(new BasicTurret(turretStationTexture, new Vector2(5, -27), new Vector2(5, -27), 0, shot0, 150, 0.05f, TurretType.Rotating, 30f));


            testTractorBeam = new TractorBeam(tractorBeamTexture, 300, 15, 20); // speed is speed/asteroid size
            LoadShips();                                                        //LOADS SHIPS

            upgradeTextures.Add(Content.Load <Texture2D>("Energybooster"));
            upgradeTextures.Add(Content.Load <Texture2D>("EnergyRegenbooster"));
            upgradeTextures.Add(Content.Load <Texture2D>("Healthbooster"));

            GenerateUpgrades();

            var turretStationCollection = new Dictionary <string, List <ITurret> >();

            turretStationCollection.Add("primary", turretsStation);

            //stationShip

            stationDictionary.Add("Default", Content.Load <Texture2D>("stationTexture"));

            currentStation = new Station(stationDictionary, defaultShipPos, turretStationCollection, 100, 500, 15, 0.05f, 0, testTractorBeam, 5);

            //stationShip end

            //asteroid textures
            for (int i = 1; i < asteroidTextureAmount + 1; i++)
            {
                asteroidTextures.Add(Content.Load <Texture2D>("asteroid" + i));
            }
            for (int i = 1; i < crystalTextureAmount + 1; i++)
            {
                crystalTextures.Add(Content.Load <Texture2D>("crystal" + i));
            }

            redPixel    = Content.Load <Texture2D>("redPixel");
            whitePixel  = Content.Load <Texture2D>("whitePixel");
            greenPixel  = Content.Load <Texture2D>("greenPixel");
            redHealth   = new Sprite(redPixel);
            greenHealth = new Sprite(greenPixel);
            //first sector

            currentSector                = GenerateSector();
            currentSector.CurrentShip    = new Ship(ships[0]);
            currentSector.CurrentStation = currentStation;

            //first sector end

            energyIconTexture = Content.Load <Texture2D>("battery2");
            aimTexture        = Content.Load <Texture2D>("aimWhite");
            aimSprite         = new Sprite(aimTexture, new Vector2(halfScreen.X, halfScreen.Y), new Rectangle(0, 0, aimTexture.Width, aimTexture.Height));
            energyBarSprite   = new Sprite(whitePixel, new Vector2(0, 0), new Rectangle(0, 0, 18, 292));
            font          = Content.Load <SpriteFont>("font");
            speed         = defaultSpeed;
            halfScreenPos = new Vector2(halfScreen.X, halfScreen.Y);
            transparent   = Content.Load <Texture2D>("transparent");

            viewScorePos = new Vector2(10, 10);
            viewLivesPos = new Vector2(10, 40);
            viewXPos     = new Vector2(0, 10);
            viewYPos     = new Vector2(0, 40);

            clearColor = Color.FromNonPremultiplied(37, 40, 41, 255);
            viewMatrix = camera.GetViewMatrix();

            //map generation

            ResetGame();

            //backgrounds larger = front


            // TODO: https://msdn.microsoft.com/en-us/library/bb531208.aspx

            //particles
            var textures = new List <Texture2D>
            {
                Content.Load <Texture2D>("red"),
                Content.Load <Texture2D>("orange"),
                Content.Load <Texture2D>("yellow")
            };

            particleEngine = new ParticleEngine(textures, new Vector2(0, 0));


            //main menu

            _gameUserInterface.GenerateUserInterface(GameState.MainMenu);

            //test ships

            //testShip = new Ship(ships[2]);
            //testShip.SetPosition(new Vector2(-500, -500));

            //bind default keys

            forwardKey  = Keys.W;
            forwardKey2 = Keys.Up;
        }