Example #1
0
        public void SideDoorTakesCloseTo1s9ToClose()
        {
            var sideDoor = new SideDoor("Right", Cylinder.Targets.Doors);

            sideDoor.Extend();

            while (!(sideDoor.Is_Locked && sideDoor.Gear_Extended))
            {
            }

            sideDoor.StopExtend();

            var start = DateTime.Now;

            sideDoor.Retract();

            while (!(sideDoor.Is_Locked && sideDoor.Gear_retracted))
            {
            }
            var end = DateTime.Now;

            var dif      = end - start;
            var expected = 1.9;

            var variation = Math.Abs((dif.TotalSeconds - expected) / expected);

            Assert.LessOrEqual(variation, 0.2);
        }
        public void WhenPressureIsOkUpCommandLiftCylinders()
        {
            GlobalValve generalValve = new GlobalValve();
            var         module       = new ComputingModule(generalValve);

            ElectroValve valveGearClose = new ElectroValve(ElectroValve.Targets.Gears, ElectroValve.Types.Retraction, false);
            ElectroValve valveGearOpen  = new ElectroValve(ElectroValve.Targets.Gears, ElectroValve.Types.Extension, false);
            ElectroValve valveDoorClose = new ElectroValve(ElectroValve.Targets.Doors, ElectroValve.Types.Retraction, false);
            ElectroValve valveDoorOpen  = new ElectroValve(ElectroValve.Targets.Doors, ElectroValve.Types.Extension, false);

            module.GetValvesFromGeneral();

            generalValve.Valves.Add(valveDoorOpen);
            generalValve.Valves.Add(valveDoorClose);
            generalValve.Valves.Add(valveGearClose);
            generalValve.Valves.Add(valveGearOpen);

            var frontGear = new FrontGear("Front", Cylinder.Targets.Gears);
            var leftGear  = new SideGear("Left", Cylinder.Targets.Gears);
            var rightGear = new SideGear("Right", Cylinder.Targets.Gears);

            valveGearClose.Cylinders.Add(frontGear);
            valveGearClose.Cylinders.Add(leftGear);
            valveGearClose.Cylinders.Add(rightGear);
            valveGearOpen.Cylinders.Add(frontGear);
            valveGearOpen.Cylinders.Add(leftGear);
            valveGearOpen.Cylinders.Add(rightGear);

            var frontDoor = new FrontDoor("Front", Cylinder.Targets.Doors);
            var leftDoor  = new SideDoor("Left", Cylinder.Targets.Doors);
            var rightDoor = new SideDoor("Right", Cylinder.Targets.Doors);

            valveDoorClose.Cylinders.Add(frontDoor);
            valveDoorClose.Cylinders.Add(leftDoor);
            valveDoorClose.Cylinders.Add(rightDoor);
            valveDoorOpen.Cylinders.Add(frontDoor);
            valveDoorOpen.Cylinders.Add(leftDoor);
            valveDoorOpen.Cylinders.Add(rightDoor);

            valveDoorOpen.Cylinders.ForEach(c => module.CylinderAdd(c));
            valveGearOpen.Cylinders.ForEach(c => module.CylinderAdd(c));

            //make the plane fly
            valveGearOpen.Cylinders.ForEach(c => c.OnFloor = false);

            module.Up();

            System.Threading.Thread.Sleep(10000);
        }
Example #3
0
        public Jupiter(Vector2 Position, float rotation = 0, int team = 0) : base(Position, rotation, team)
        {
            health = maxHealth = 500;
            entityID = 30;
            Miasma.currentWaveIntensity = 4;
            if(Miasma.hard)
            {
                maxArms += 2;
                maxBeamTime = 10;
            }
            name = "Jupiter";
            int x = 34;
            int y = 8;
            sideDoors[0] = new SideDoor(this, new Vector2(-x, -y), 0, new float[] { 0f, -(float)Math.PI / 2 }, 0);
            sideDoors[1] = new SideDoor(this, new Vector2(x, -y), 0, new float[] { 0f, (float)Math.PI / 2 }, 1);
            sideDoors[2] = new SideDoor(this, new Vector2(-x, y), 0, new float[] { 0f, (float)Math.PI / 2 }, 10);
            sideDoors[3] = new SideDoor(this, new Vector2(x, y), 0, new float[] { 0f, -(float)Math.PI / 2 }, 11);
            centerDoors[0] = new CenterDoor(this, new Vector2(0, -y), 0);
            centerDoors[1] = new CenterDoor(this, new Vector2(0, y), (float)Math.PI);
            core = new ArmsCore(this, new Vector2(0, -29), 0);

            limbs[0] = new LimbSegment(Position, new Hand(new BallLightning(Position)));
            limbs[1] = new LimbSegment(Position, new Hand(new BallLightning(Position)));
            limbs[1].Rotate((float)Math.PI);
            annihilator = new LightningAnnihilator(this, new Vector2(0, 8.5f), (float)Math.PI / 2);
            annihilator.UpdateRelativePosition();
            foreach (CenterDoor door in centerDoors)
            {
                door.UpdateRelativePosition();
            }
            foreach (SideDoor door in sideDoors)
            {
                door.UpdateRelativePosition();
            }
            core.UpdateRelativePosition();
        }