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); }
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(); }