Ejemplo n.º 1
0
    public void UpdateGameStringUnitTest()
    {
        using UnitDataDocument dataDocument = _heroesDataDirectory.UnitData(new HeroesDataVersion(2, 47, 3, 76124), true, Localization.KOKR);
        Unit data = dataDocument.GetUnitById("AbathurEvolvedMonstrosity", false, false);

        Assert.AreEqual("some description", data.Description?.RawDescription);

        _heroesDataDirectory.UpdateGameString(data, new HeroesDataVersion(2, 48, 4, 77407), Localization.ENUS);
        Assert.AreEqual("unitDescription", data.Description?.RawDescription);
    }
Ejemplo n.º 2
0
    public void GetUnitByIdTest(string id, bool abilities, bool subAbilities)
    {
        if (id is null)
        {
            Assert.ThrowsException <ArgumentNullException>(() =>
            {
                _ = _unitDataDocument.GetUnitById(id !, abilities, subAbilities);
            });

            return;
        }
        else if (id == "asdf")
        {
            Assert.ThrowsException <KeyNotFoundException>(() =>
            {
                _ = _unitDataDocument.GetUnitById(id, abilities, subAbilities);
            });

            return;
        }

        Unit unit = _unitDataDocument.GetUnitById(id, abilities, subAbilities);

        BasicAbathurEvolvedMonstrosityAsserts(unit);

        Assert.AreEqual(755, unit.Life.LifeMax);
        Assert.AreEqual(0.04, unit.Life.LifeScaling);
        Assert.AreEqual("Life", unit.Life.LifeType);
        Assert.AreEqual(5.4256, unit.Life.LifeRegenerationRate);
        Assert.AreEqual(0.04, unit.Life.LifeRegenerationRateScaling);

        Assert.AreEqual(755, unit.Shield.ShieldMax);
        Assert.AreEqual(0.04, unit.Shield.ShieldScaling);
        Assert.AreEqual("Shield", unit.Shield.ShieldType);
        Assert.AreEqual(5, unit.Shield.ShieldRegenerationDelay);
        Assert.AreEqual(5.245, unit.Shield.ShieldRegenerationRate);
        Assert.AreEqual(0.04, unit.Shield.ShieldRegenerationRateScaling);

        Assert.AreEqual(755, unit.Energy.EnergyMax);
        Assert.AreEqual("Ammo", unit.Energy.EnergyType);
        Assert.AreEqual(5.4256, unit.Energy.EnergyRegenerationRate);

        List <UnitArmor> unitArmorList = unit.Armor.ToList();

        Assert.AreEqual("structure", unitArmorList[0].Type);
        Assert.AreEqual(30, unitArmorList[0].BasicArmor);
        Assert.AreEqual(20, unitArmorList[0].AbilityArmor);
        Assert.AreEqual(30, unitArmorList[0].SplashArmor);

        Assert.AreEqual("hero", unitArmorList[1].Type);
        Assert.AreEqual(10, unitArmorList[1].BasicArmor);
        Assert.AreEqual(0, unitArmorList[1].AbilityArmor);
        Assert.AreEqual(0, unitArmorList[1].SplashArmor);

        List <UnitWeapon> unitWeapons = unit.Weapons.ToList();

        Assert.AreEqual("AllianceSuperCavalryWeapon", unitWeapons[0].WeaponNameId);
        Assert.AreEqual(5, unitWeapons[0].Range);
        Assert.AreEqual(3.9, unitWeapons[0].Period);
        Assert.AreEqual(454, unitWeapons[0].Damage);
        Assert.AreEqual(0.65, unitWeapons[0].DamageScaling);
        Assert.AreEqual(3.9, unitWeapons[0].Period);
        Assert.AreEqual("minion", unitWeapons[0].AttributeFactors.ToList()[0].Type);
        Assert.AreEqual(1.5, unitWeapons[0].AttributeFactors.ToList()[0].Value);

        Assert.AreEqual("AlteracBossWeaponParent", unitWeapons[1].WeaponNameId);
        Assert.AreEqual(4, unitWeapons[1].Range);
        Assert.AreEqual(40.1, unitWeapons[1].Period);
        Assert.AreEqual("summoned", unitWeapons[1].AttributeFactors.ToList()[1].Type);
        Assert.AreEqual(1.0, unitWeapons[1].AttributeFactors.ToList()[1].Value);

        if (abilities)
        {
            List <Ability> abilitiesList = unit.Abilities.ToList();
            Assert.AreEqual(AbilityTiers.Basic, abilitiesList[0].Tier);
            Assert.AreEqual("AlteracBossWhirlwind", abilitiesList[0].AbilityTalentId?.ReferenceId);
            Assert.AreEqual("AlteracBossWhirlwind", abilitiesList[0].AbilityTalentId?.ButtonId);
            Assert.AreEqual("Whirlwind", abilitiesList[0].Name);
            Assert.AreEqual("storm_ui_icon_sonya_whirlwind.png", abilitiesList[0].IconFileName);
            Assert.AreEqual("Cooldown: 12 seconds", abilitiesList[0].Tooltip.Cooldown.CooldownTooltip?.RawDescription);
            Assert.AreEqual("Damage nearby enemies", abilitiesList[0].Tooltip.ShortTooltip?.RawDescription);
            Assert.AreEqual(AbilityTypes.Q, abilitiesList[0].AbilityTalentId.AbilityType);

            Assert.AreEqual(AbilityTiers.Hidden, abilitiesList[3].Tier);
            Assert.AreEqual("AlteracBossChargeApproach", abilitiesList[3].AbilityTalentId?.ReferenceId);
            Assert.AreEqual("AlteracBossCharge", abilitiesList[3].AbilityTalentId?.ButtonId);
            Assert.AreEqual("Charge", abilitiesList[3].Name);
        }

        if (subAbilities)
        {
            List <Ability> abilitiesList = unit.SubAbilities().ToList();

            Assert.AreEqual(AbilityTiers.Interact, abilitiesList[0].Tier);
            Assert.AreEqual("WitchDoctorGargantuanStomp", abilitiesList[0].AbilityTalentId?.ReferenceId);
            Assert.AreEqual("WitchDoctorGargantuanStomp", abilitiesList[0].AbilityTalentId?.ButtonId);
            Assert.AreEqual("Gargantuan Stomp", abilitiesList[0].Name);
            Assert.AreEqual("AlteracBossWhirlwind", abilitiesList[0].ParentLink?.ReferenceId);
            Assert.AreEqual("AlteracBossWhirlwind", abilitiesList[0].ParentLink?.ButtonId);
            Assert.AreEqual(0.125, abilitiesList[0].Tooltip.Cooldown?.ToggleCooldown);

            Assert.AreEqual(AbilityTiers.MapMechanic, abilitiesList[1].Tier);
            Assert.AreEqual("VoidPrisonCancel", abilitiesList[1].AbilityTalentId?.ReferenceId);
            Assert.AreEqual("ZeratulVoidPrisonCancel", abilitiesList[1].AbilityTalentId?.ButtonId);

            Assert.AreEqual(AbilityTiers.MapMechanic, abilitiesList[2].Tier);
            Assert.AreEqual("MapMechanicAbilityInstant", abilitiesList[2].AbilityTalentId?.ReferenceId);
            Assert.AreEqual("MapMechanicAbility", abilitiesList[2].AbilityTalentId?.ButtonId);

            Assert.AreEqual(AbilityTiers.Hidden, abilitiesList[3].Tier);
            Assert.AreEqual("AlteracBossChargeApproach", abilitiesList[3].ParentLink?.ReferenceId);
            Assert.AreEqual("AlteracBossCharge", abilitiesList[3].ParentLink?.ButtonId);
            Assert.AreEqual(AbilityTypes.Hidden, abilitiesList[3].ParentLink?.AbilityType);
            Assert.AreEqual(true, abilitiesList[3].ParentLink?.IsPassive);
            Assert.AreEqual("AbathurAssumingDirectControlCancel", abilitiesList[3].AbilityTalentId?.ReferenceId);
            Assert.AreEqual("AbathurSymbioteCancel", abilitiesList[3].AbilityTalentId?.ButtonId);
            Assert.AreEqual(AbilityTypes.Heroic, abilitiesList[3].AbilityTalentId.AbilityType);
        }
    }