示例#1
0
        public void ChangingSkyAndCloudColors_ChangesPulsedColors(string sky, string cloud, string outerBorder, string innerBorder)
        {
            var rom   = new MegaMan2Rom(_romBytes);
            var stage = rom.Stages.AirMan;

            stage.SkyColor              = Color.Parse(sky);
            stage.CloudColor            = Color.Parse(cloud);
            stage.CloudOuterBorderColor = Color.Parse(outerBorder);
            stage.CloudInnerBorderColor = Color.Parse(innerBorder);

            Assert.Equal(sky, stage.SkyColor.Name);
            Assert.Equal(cloud, stage.CloudColor.Name);
            Assert.Equal(outerBorder, stage.CloudOuterBorderColor.Name);
            Assert.Equal(innerBorder, stage.CloudInnerBorderColor.Name);

            Assert.Equal(innerBorder, new Color(rom.Bytes[Addresses.AirStageCloudInnerBorderColorFrame0]).Name);
            Assert.Equal(innerBorder, new Color(rom.Bytes[Addresses.AirStageCloudInnerBorderColorFrame1]).Name);
            Assert.Equal(cloud, new Color(rom.Bytes[Addresses.AirStageCloudInnerBorderColorFrame2]).Name);
            Assert.Equal(cloud, new Color(rom.Bytes[Addresses.AirStageCloudInnerBorderColorFrame3]).Name);
            Assert.Equal(cloud, new Color(rom.Bytes[Addresses.AirStageCloudInnerBorderColorFrame4]).Name);

            Assert.Equal(outerBorder, new Color(rom.Bytes[Addresses.AirStageCloudOuterBorderColorFrame0]).Name);
            Assert.Equal(outerBorder, new Color(rom.Bytes[Addresses.AirStageCloudOuterBorderColorFrame1]).Name);
            Assert.Equal(innerBorder, new Color(rom.Bytes[Addresses.AirStageCloudOuterBorderColorFrame2]).Name);
            Assert.Equal(cloud, new Color(rom.Bytes[Addresses.AirStageCloudOuterBorderColorFrame3]).Name);
            Assert.Equal(innerBorder, new Color(rom.Bytes[Addresses.AirStageCloudOuterBorderColorFrame4]).Name);
        }
示例#2
0
        public void CloudInnerBorderColor_IsVeryLightBlue()
        {
            var rom           = new MegaMan2Rom(_romBytes);
            var veryLightBlue = new Color(Chrominance.Blue, Luma.VeryLight);

            Assert.Equal(veryLightBlue, rom.Stages.AirMan.CloudInnerBorderColor);
        }
示例#3
0
        public void DefaultCutSceneText(string expected, int address)
        {
            var    rom    = new MegaMan2Rom(_romBytes);
            string actual = Text.DecodeCutScene(rom.Bytes, address);

            Assert.Equal(expected, actual);
        }
示例#4
0
        public void HeatMan_DefaultEquipment()
        {
            var rom = new MegaMan2Rom(_romBytes);

            Assert.Equal(WeaponId.AtomicFire, rom.RobotMasters.HeatMan.WeaponOnDefeat);
            Assert.Equal(ItemId.Item1, rom.RobotMasters.HeatMan.ItemOnDefeat);
        }
示例#5
0
        public void SkyColor_IsLightBlue()
        {
            var rom       = new MegaMan2Rom(_romBytes);
            var lightBlue = new Color(Chrominance.Blue, Luma.Light);

            Assert.Equal(lightBlue, rom.Stages.AirMan.SkyColor);
        }
示例#6
0
        public void WoodMan_DefaultEquipment()
        {
            var rom = new MegaMan2Rom(_romBytes);

            Assert.Equal(WeaponId.LeafShield, rom.RobotMasters.WoodMan.WeaponOnDefeat);
            Assert.Equal(ItemId.None, rom.RobotMasters.WoodMan.ItemOnDefeat);
        }
示例#7
0
        public void FlashMan_DefaultEquipment()
        {
            var rom = new MegaMan2Rom(_romBytes);

            Assert.Equal(WeaponId.TimeStopper, rom.RobotMasters.FlashMan.WeaponOnDefeat);
            Assert.Equal(ItemId.Item3, rom.RobotMasters.FlashMan.ItemOnDefeat);
        }
示例#8
0
        public void CrashMan_DefaultEquipment()
        {
            var rom = new MegaMan2Rom(_romBytes);

            Assert.Equal(WeaponId.CrashBomber, rom.RobotMasters.CrashMan.WeaponOnDefeat);
            Assert.Equal(ItemId.None, rom.RobotMasters.CrashMan.ItemOnDefeat);
        }
示例#9
0
        public void MetalMan_DefaultEquipment()
        {
            var rom = new MegaMan2Rom(_romBytes);

            Assert.Equal(WeaponId.MetalBlade, rom.RobotMasters.MetalMan.WeaponOnDefeat);
            Assert.Equal(ItemId.None, rom.RobotMasters.MetalMan.ItemOnDefeat);
        }
示例#10
0
        public void ChangingBusterColor_ChangesMultipleLocations()
        {
            var rom = new MegaMan2Rom(_romBytes);

            Assert.Equal("Light Cyan", new Color(rom.Bytes[Addresses.BusterColor1]).Name);
            Assert.Equal("Blue", new Color(rom.Bytes[Addresses.BusterColor2]).Name);
            Assert.Equal("Light Cyan", new Color(rom.Bytes[Addresses.BusterColor1CutScene]).Name);
            Assert.Equal("Light Cyan", new Color(rom.Bytes[Addresses.BusterColor1CutSceneBoots]).Name);
            Assert.Equal("Blue", new Color(rom.Bytes[Addresses.BusterColor2CutScene]).Name);
            Assert.Equal("Blue", new Color(rom.Bytes[Addresses.BusterColor2CutSceneBoots]).Name);
            Assert.Equal("Light Cyan", new Color(rom.Bytes[Addresses.BusterColor1TitleScreen]).Name);
            Assert.Equal("Blue", new Color(rom.Bytes[Addresses.BusterColor2TitleScreen]).Name);

            rom.MegaMan.BusterPrimaryColor   = new Color(Chrominance.Black, Luma.Medium);
            rom.MegaMan.BusterSecondaryColor = new Color(Chrominance.Red, Luma.Dark);

            Assert.Equal("Black", new Color(rom.Bytes[Addresses.BusterColor1]).Name);
            Assert.Equal("Dark Red", new Color(rom.Bytes[Addresses.BusterColor2]).Name);
            Assert.Equal("Black", new Color(rom.Bytes[Addresses.BusterColor1CutScene]).Name);
            Assert.Equal("Black", new Color(rom.Bytes[Addresses.BusterColor1CutSceneBoots]).Name);
            Assert.Equal("Dark Red", new Color(rom.Bytes[Addresses.BusterColor2CutScene]).Name);
            Assert.Equal("Dark Red", new Color(rom.Bytes[Addresses.BusterColor2CutSceneBoots]).Name);
            Assert.Equal("Black", new Color(rom.Bytes[Addresses.BusterColor1TitleScreen]).Name);
            Assert.Equal("Dark Red", new Color(rom.Bytes[Addresses.BusterColor2TitleScreen]).Name);

            // TODO: Find addresses for final cut scene at end of game
        }
示例#11
0
        public void QuickMan_DefaultEquipment()
        {
            var rom = new MegaMan2Rom(_romBytes);

            Assert.Equal(WeaponId.QuickBoomerang, rom.RobotMasters.QuickMan.WeaponOnDefeat);
            Assert.Equal(ItemId.None, rom.RobotMasters.QuickMan.ItemOnDefeat);
        }
示例#12
0
        public void AirMan_DefaultEquipment()
        {
            var rom = new MegaMan2Rom(_romBytes);

            Assert.Equal(WeaponId.AirShooter, rom.RobotMasters.AirMan.WeaponOnDefeat);
            Assert.Equal(ItemId.Item2, rom.RobotMasters.AirMan.ItemOnDefeat);
        }
示例#13
0
        public void BubbleMan_DefaultEquipment()
        {
            var rom = new MegaMan2Rom(_romBytes);

            Assert.Equal(WeaponId.BubbleLead, rom.RobotMasters.BubbleMan.WeaponOnDefeat);
            Assert.Equal(ItemId.None, rom.RobotMasters.BubbleMan.ItemOnDefeat);
        }
        public void SetWeaponOptions(MegaMan2Rom rom, TimeStopperOptionsViewModel model)
        {
            var timeStopper = rom.Weapons.TimeStopper;

            SetBaseWeaponOptions(timeStopper, model);
            timeStopper.DelayBeforeDrain = model.DelayBeforeDrain;
            timeStopper.DrainRateDelay   = model.DrainRateDelay;
        }
示例#15
0
        public void MenuOptions_DefaultColors()
        {
            var rom = new MegaMan2Rom(_romBytes);

            Assert.Equal(new Color(Chrominance.Crimson, Luma.VeryLight), rom.StartMenu.BorderColor);
            Assert.Equal(new Color(Chrominance.Blue, Luma.Light), rom.StartMenu.BackgroundColor);
            Assert.Equal(new Color(Chrominance.Blue, Luma.Medium), rom.StartMenu.ShadowColor);
        }
示例#16
0
        public void BusterLetterCode_CanBeChanged()
        {
            var rom = new MegaMan2Rom(_romBytes);

            Assert.Equal('P', rom.MegaMan.BusterLetterCode);
            rom.MegaMan.BusterLetterCode = 'M';
            Assert.Equal('M', rom.MegaMan.BusterLetterCode);
        }
示例#17
0
        public void SettingStageName_PreservesGivenWhiteSpace(string name, string line1, string line2)
        {
            var rom = new MegaMan2Rom(_romBytes);

            rom.Stages.AirMan.Name = name;
            Assert.Equal(line1, rom.Stages.AirMan.NameLine1);
            Assert.Equal(line2, rom.Stages.AirMan.NameLine2);
        }
示例#18
0
        public void RunSpeed_CanBeChanged(string valueText)
        {
            var value = decimal.Parse(valueText);
            var rom   = new MegaMan2Rom(_romBytes);

            rom.RobotMasters.FlashMan.RunSpeed = value;
            Assert.Equal(value, rom.RobotMasters.FlashMan.RunSpeed);
        }
示例#19
0
        public void SettingStageName_SplitsOnLineBreak_PadsWithWhiteSpace(string name, string line1, string line2)
        {
            var rom = new MegaMan2Rom(_romBytes);

            rom.Stages.AirMan.Name = name;
            Assert.Equal(line1, rom.Stages.AirMan.NameLine1);
            Assert.Equal(line2, rom.Stages.AirMan.NameLine2);
        }
示例#20
0
        public void LadderClimbSpeed_CanBeChanged(string valueText)
        {
            var value = decimal.Parse(valueText);
            var rom   = new MegaMan2Rom(_romBytes);

            rom.MegaMan.LadderClimbSpeed = value;
            Assert.Equal(value, rom.MegaMan.LadderClimbSpeed);
        }
        public void DefaultNamesAndLetterCodes(WeaponId weaponId, string name, char letterCode)
        {
            var            rom           = new MegaMan2Rom(_romBytes);
            IWeaponOptions weaponOptions = rom.Weapons.GetWeaponOptions(weaponId);

            Assert.Equal(weaponId, weaponOptions.WeaponId);
            Assert.Equal(name, weaponOptions.Name);
            Assert.Equal(letterCode, weaponOptions.LetterCode);
        }
        public void DefaultWeaponColors(WeaponId weaponId, string primaryColor, string secondaryColor)
        {
            var            rom           = new MegaMan2Rom(_romBytes);
            IWeaponOptions weaponOptions = rom.Weapons.GetWeaponOptions(weaponId);

            Assert.Equal(weaponId, weaponOptions.WeaponId);
            Assert.Equal(primaryColor, weaponOptions.PrimaryColor.Name);
            Assert.Equal(secondaryColor, weaponOptions.SecondaryColor.Name);
        }
        public void SetRobotMasterOptions(MegaMan2Rom rom, CrashManOptionsViewModel model)
        {
            var crashMan = rom.RobotMasters.CrashMan;

            SetBaseRobotMasterOptions(crashMan, model);
            crashMan.JumpHeight      = model.JumpHeight;
            crashMan.ProjectileSpeed = model.ProjectileSpeed;
            crashMan.WalkSpeed       = model.WalkSpeed;
        }
        public void SetWeaponOptions(MegaMan2Rom rom, MetalBladeOptionsViewModel model)
        {
            var metalBlade = rom.Weapons.MetalBlade;

            SetBaseWeaponOptions(metalBlade, model);
            metalBlade.MaxShots     = model.MaxShots;
            metalBlade.ShotsPerAmmo = model.ShotsPerAmmo;
            metalBlade.Speed        = model.ProjectileSpeed;
        }
        public void SetWeaponOptions(MegaMan2Rom rom, CrashBomberOptionsViewModel model)
        {
            var crashBomber = rom.Weapons.CrashBomber;

            SetBaseWeaponOptions(crashBomber, model);
            crashBomber.AmmoUsed        = model.AmmoUsed;
            crashBomber.DetonationDelay = model.DetonationDelay;
            crashBomber.HorizontalSpeed = model.HorizontalSpeed;
            crashBomber.VerticalSpeed   = model.VerticalSpeed;
        }
        public void SetWeaponOptions(MegaMan2Rom rom, LeafShieldOptionsViewModel model)
        {
            var leafShield = rom.Weapons.LeafShield;

            SetBaseWeaponOptions(leafShield, model);
            leafShield.AmmoUsed        = model.AmmoUsed;
            leafShield.DeployDelay     = model.DeployDelay;
            leafShield.HorizontalSpeed = model.ProjectileSpeed;
            leafShield.VerticalSpeed   = model.ProjectileSpeed;
        }
        public void TornadoPatterns_Has5Patterns_With6TornadoesPerPattern()
        {
            var rom    = new MegaMan2Rom(_romBytes);
            var airMan = rom.RobotMasters.AirMan;

            Assert.Equal(5, airMan.Patterns.Count);
            foreach (TornadoPattern pattern in airMan.Patterns)
            {
                Assert.Equal(6, pattern.Tornados.Count);
            }
        }
        public void SetRobotMasterOptions(MegaMan2Rom rom, MetalManOptionsViewModel model)
        {
            var metalMan = rom.RobotMasters.MetalMan;

            SetBaseRobotMasterOptions(metalMan, model);
            metalMan.BladeColor      = Color.Parse(model.BladeColor);
            metalMan.Jump1Height     = model.Jump1Height;
            metalMan.Jump2Height     = model.Jump2Height;
            metalMan.Jump3Height     = model.Jump3Height;
            metalMan.ProjectileSpeed = model.ProjectileSpeed;
        }
        public void SetWeaponOptions(MegaMan2Rom rom, AirShooterOptionsViewModel model)
        {
            var airShooter = rom.Weapons.AirShooter;

            SetBaseWeaponOptions(airShooter, model);
            airShooter.ProjectileCount = model.ProjectileCount;
            airShooter.ProjectileVerticalAcceleration = model.VerticalAcceleration;
            airShooter.Projectile1HorizontalSpeed     = model.Projectile1HorizontalSpeed;
            airShooter.Projectile2HorizontalSpeed     = model.Projectile2HorizontalSpeed;
            airShooter.Projectile3HorizontalSpeed     = model.Projectile3HorizontalSpeed;
        }
        public void SetRobotMasterOptions(MegaMan2Rom rom, FlashManOptionsViewModel model)
        {
            var flashMan = rom.RobotMasters.FlashMan;

            SetBaseRobotMasterOptions(flashMan, model);
            flashMan.RunSpeed         = model.RunSpeed;
            flashMan.JumpDistance     = model.JumpDistance;
            flashMan.JumpHeight       = model.JumpHeight;
            flashMan.ProjectileCount  = model.ProjectileCount;
            flashMan.ProjectileSpeed  = model.ProjectileSpeed;
            flashMan.TimeStopperDelay = model.TimeStopperDelay;
        }