Пример #1
0
        public override float SpawnChance(NPCSpawnInfo spawnInfo)
        {
            int x    = spawnInfo.spawnTileX;
            int y    = spawnInfo.spawnTileY;
            int tile = (int)Main.tile[x, y].type;

            return(HavocPlayer.ZoneSwamp && Havoc.NoInvasion(spawnInfo) && spawnInfo.water ? 1f : 0f);
        }
        public static void Generate(WeakAura wa)
        {
            var havoc = new Havoc();

            var builder = new SpecBuilder(ClassSpec.Havoc);

            // todo: souls tracker (to the resource HUD?)
            builder.AddOverflow(
                havoc.Imprison.DeBuff(),
                havoc.SpectralSight.Buff(),
                // todo: not_on_CD --> back to combat buffs?
                havoc.ThrowGlaive
                // havoc.Torment,
                ).AddRightBar(
                // Cooldowns
                havoc.ChaosNova.DeBuff(),
                havoc.Darkness.Buff(),
                havoc.Blur.Buff(),
                havoc.SigilOfMisery
                ).AddCoreRotation(
                havoc.ImmolationAura.Buff(),
                // todo: glow when castable
                havoc.EyeBeam.Buff().AssociateAura(havoc.FuriousGaze),
                havoc.BladeDance,
                havoc.GlaiveTempest
                ).AddCoreCooldowns(
                havoc.Metamorphosis.Buff(),
                havoc.EssenceBreak.DeBuff(),
                havoc.FelEruption.DeBuff(),
                havoc.FelBarrage.Buff()
                ).AddBottomBar(
                havoc.FelRush,
                havoc.VengefulRetreat,
                havoc.Felblade,
                havoc.Netherwalk,
                havoc.Disrupt,
                // todo: check target for magic
                havoc.ConsumeMagic
                ).AddTopBar(
                havoc.SoulFragments.Passive().Buff()
                // vengeance.ChaosBrand.Passive().B
                ).AddAlerts(
                havoc.Glide.Passive().Buff()
                ).Build(wa);
        }
Пример #3
0
        public override float SpawnChance(NPCSpawnInfo spawnInfo)
        {
            int spawn = Main.rand.Next(1, 10);

            return(HavocPlayer.ZoneSwamp && spawn == 3 && Havoc.NoInvasion(spawnInfo) ? 0.5f : 0f);
        }
Пример #4
0
        public override float SpawnChance(NPCSpawnInfo spawnInfo)
        {
            int rand = Main.rand.Next(2);

            return(rand == 1 && HavocPlayer.ZoneSwamp && Havoc.NoInvasion(spawnInfo) ? 0.5f : 0f);
        }
Пример #5
0
 public override float SpawnChance(NPCSpawnInfo spawnInfo)
 {
     return(HavocPlayer.ZoneSwamp && spawnInfo.water && Havoc.NoInvasion(spawnInfo) ? 0.5f : 0f);
 }
Пример #6
0
        public override float SpawnChance(NPCSpawnInfo spawnInfo)
        {
            int rand = Main.rand.Next(1, 95);

            return(HavocPlayer.ZoneSwamp && Main.hardMode && rand == 45 && Havoc.NoInvasion(spawnInfo) ? 0.5f : 0f);
        }
Пример #7
0
        private static IWeapon CreateFromRecognizedString(string recognizedName, IWeapon currentWeapon, int offsetX, int offsetY, float sensitivityScale)
        {
            var weaponName = recognizedName.FindMostSimilar(WeaponNamesToTypes.Keys);

            WeaponNamesToTypes.TryGetValue(weaponName, out var weaponType);

            var     inGameName = weaponType.GetWeaponName();
            IWeapon result;

            if (currentWeapon?.IsTheSameWeapon(inGameName) ?? weaponType == WeaponAL.Unknown)
            {
                return(currentWeapon);
            }

            var numOfMods = WeaponTypesToNumOfMods[weaponType];

            switch (weaponType)
            {
            case WeaponAL.Wingman:
            case WeaponAL.MASTIFF:
            case WeaponAL.KRABER:
            case WeaponAL.Longbow:
            case WeaponAL.Peacekeeper:
            case WeaponAL.TripleTake:
                result = new NonAdjustableWeapon(inGameName, 0, recognizedName, numOfMods);
                break;

            case WeaponAL.Havoc:
                result = new Havoc(inGameName, 2, recognizedName, numOfMods);
                break;

            case WeaponAL.Devotion:
                result = new Devotion(inGameName, 2, recognizedName, numOfMods);
                break;

            case WeaponAL.LStar:
                result = new LStar(inGameName, 2, recognizedName, numOfMods);
                break;

            case WeaponAL.Flatline:
                result = new Flatline(inGameName, 2, recognizedName, numOfMods);
                break;

            case WeaponAL.Hemlok:
                result = new Hemlok(inGameName, 2, recognizedName, numOfMods);
                break;

            case WeaponAL.Prowler:
                result = new Prowler(inGameName, 2, recognizedName, numOfMods);
                break;

            case WeaponAL.RE45:
                result = new RE45(inGameName, 2, recognizedName, numOfMods);
                break;

            case WeaponAL.R301:
                result = new R301(inGameName, 2, recognizedName, numOfMods);
                break;

            case WeaponAL.R99:
                result = new R99(inGameName, 1.5, recognizedName, numOfMods);
                break;

            case WeaponAL.Alternator:
                result = new Alternator(inGameName, 2, recognizedName, numOfMods);
                break;

            case WeaponAL.G7Scout:
                result = new G7Scout(inGameName, 2, recognizedName, numOfMods);
                break;

            case WeaponAL.Unknown:
            case WeaponAL.Spitfire:
            case WeaponAL.EVA8Auto:
            case WeaponAL.Mozambique:
            case WeaponAL.P2020:
                result = new RegularAdjustmentWeapon(inGameName, 2, recognizedName, numOfMods);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }


            result.SetOffsets(offsetX, offsetY);
            result.SetSensitivityScale(sensitivityScale);
            return(result);
        }
Пример #8
0
        public override float SpawnChance(NPCSpawnInfo spawnInfo)
        {
            int spawn = Main.rand.Next(100);

            return(Main.hardMode && spawnInfo.spawnTileY < Main.rockLayer && Havoc.NoInvasion(spawnInfo) && spawn == 24 ? 1f : 0f);
        }