示例#1
0
        public static bool heroAttackNPC()
        {
            NPCShip ship  = mainFunctions.getNPCByID(npcAttackID);
            double  num15 = ship.getPosX();
            double  num16 = ship.getPosY();
            double  num7  = Module1.mainHero.getPosX();
            double  num8  = Module1.mainHero.getPosY();
            double  num2  = num7 - num15;
            double  num3  = num8 - num16;

            if (!((num2 > 800.0) | (num2 < -800.0)))
            {
                double num9;
                if ((num3 > 800.0) | (num3 < -800.0))
                {
                    return(false);
                }
                int num17 = Module1.mainHero.getAmmoType();
                switch (num17)
                {
                case 1:
                    if (Module1.mainHero.getLaserAmmo1() <= 0)
                    {
                        mainFunctions.log("Not enough ammo to carry out attack...");
                        return(false);
                    }
                    break;

                case 2:
                    if (Module1.mainHero.getLaserAmmo2() <= 0)
                    {
                        mainFunctions.log("Not enough ammo to carry out attack...");
                        return(false);
                    }
                    break;

                case 3:
                    if (Module1.mainHero.getLaserAmmo3() <= 0)
                    {
                        mainFunctions.log("Not enough ammo to carry out attack...");
                        return(false);
                    }
                    break;

                case 4:
                    if (Module1.mainHero.getLaserAmmo4() <= 0)
                    {
                        mainFunctions.log("Not enough ammo to carry out attack...");
                        return(false);
                    }
                    break;

                case 5:
                    if (Module1.mainHero.getLaserAmmo5() <= 0)
                    {
                        mainFunctions.log("Not enough ammo to carry out attack...");
                        return(false);
                    }
                    break;

                default:
                    if ((num17 == 6) && (Module1.mainHero.getLaserAmmo1() <= 0))
                    {
                        mainFunctions.log("Not enough ammo to carry out attack...");
                        return(false);
                    }
                    break;
                }
                int amount   = Module1.mainHero.getLF3s();
                int num      = Module1.mainHero.getBO2s();
                int maxValue = amount * 150;
                int minValue = amount * 0x7d;
                if (ship.getSHD() <= 0)
                {
                    ship.setSHD(0);
                    num9 = 1.0;
                }
                else
                {
                    num9 = 0.4;
                }
                double num18   = 1.0 - num9;
                int    dmgDone = rnd.Next(minValue, maxValue);
                if (Module1.mainHero.getAmmoType() == 2)
                {
                    dmgDone *= 2;
                }
                else if (Module1.mainHero.getAmmoType() == 3)
                {
                    dmgDone *= 3;
                }
                else if (Module1.mainHero.getAmmoType() == 4)
                {
                    dmgDone *= 4;
                }
                int num5        = (int)Math.Round((double)(dmgDone * num9));
                int num6        = (int)Math.Round((double)(dmgDone * num18));
                int attackedHP  = ship.getHP() - num5;
                int attackedSHD = ship.getSHD() - num6;
                if (dmgDone > (ship.getHP() + ship.getSHD()))
                {
                    initConnection.sendAttack(npcAttackID, Module1.mainHero.getAmmoType() - 1, 0, 1);
                    initConnection.updateAttackLasers(npcAttackID, 0, 0, dmgDone);
                    ammoHandler(Module1.mainHero.getAmmoType(), amount, false);
                    ship.setHP(0);
                    ship.setSHD(0);
                    return(true);
                }
                initConnection.sendAttack(npcAttackID, Module1.mainHero.getAmmoType() - 1, 0, 1);
                initConnection.updateAttackLasers(npcAttackID, attackedHP, attackedSHD, dmgDone);
                ammoHandler(Module1.mainHero.getAmmoType(), amount, false);
                ship.setHP(attackedHP);
                ship.setSHD(attackedSHD);
            }
            return(false);
        }
示例#2
0
        public static void heroSbombd(double heroX, double heroY)
        {
            IEnumerator enumerator;

            try
            {
                enumerator = Module1.displayNPCs.GetEnumerator();
                while (enumerator.MoveNext())
                {
                    int     userID = Conversions.ToInteger(enumerator.Current);
                    NPCShip ship   = mainFunctions.getNPCByID(userID);
                    double  num13  = ship.getPosX();
                    double  num14  = ship.getPosY();
                    double  num11  = heroX - num13;
                    double  num12  = heroY - num14;
                    num11 = Math.Abs(num11);
                    num12 = Math.Abs(num12);
                    if ((num11 < 1000.0) && (num12 < 1000.0))
                    {
                        int num17   = ship.getMaxHP();
                        int num16   = ship.getHP();
                        int dmgDone = (int)Math.Round((double)(num17 * 0.2));
                        if (dmgDone > num16)
                        {
                            initConnection.updateAttackLasers(userID, 0, 0, dmgDone);
                            ship.setHP(0);
                            ship.setSHD(0);
                            if (Module1.accessingNPCs)
                            {
                                while (true)
                                {
                                    if (!Module1.accessingNPCs)
                                    {
                                        Module1.accessingNPCs = true;
                                        string str  = "";
                                        string str4 = "";
                                        string str2 = "";
                                        string str3 = "";
                                        Attack_Module.getRewards(ship.getShipType(), ref str, ref str4, ref str2, ref str3);
                                        initConnection.destroyNPC(userID);
                                        mainFunctions.removeNPCByID(userID);
                                        Module1.displayNPCs.Remove(userID);
                                        Attack_Module.NPCDead(Conversions.ToInteger(str), Conversions.ToInteger(str4), Conversions.ToInteger(str2), Conversions.ToInteger(str3));
                                        mainFunctions.log("NPC dead...");
                                        Module1.accessingNPCs = false;
                                        continue;
                                    }
                                }
                            }
                            Module1.accessingNPCs = true;
                            string credits = "";
                            string uridium = "";
                            string ep      = "";
                            string honor   = "";
                            Attack_Module.getRewards(userID, ref credits, ref uridium, ref ep, ref honor);
                            initConnection.destroyNPC(userID);
                            mainFunctions.removeNPCByID(userID);
                            Module1.displayNPCs.Remove(userID);
                            Attack_Module.NPCDead(Conversions.ToInteger(credits), Conversions.ToInteger(uridium), Conversions.ToInteger(ep), Conversions.ToInteger(honor));
                            mainFunctions.log("NPC dead...");
                            Module1.accessingNPCs = false;
                        }
                        else
                        {
                            int attackedHP = num16 - dmgDone;
                            initConnection.updateAttackLasers(userID, attackedHP, ship.getSHD(), dmgDone);
                            ship.setHP(attackedHP);
                        }
                    }
                }
            }
            finally
            {
                if (enumerator is IDisposable)
                {
                    (enumerator as IDisposable).Dispose();
                }
            }
            int num2  = Module1.mainHero.getRocketAmmo1();
            int num3  = Module1.mainHero.getRocketAmmo2();
            int num4  = Module1.mainHero.getRocketAmmo3();
            int num5  = Module1.mainHero.getRocketAmmo4();
            int num6  = Module1.mainHero.getRocketAmmo5();
            int num7  = Module1.mainHero.getRocketAmmo6();
            int num8  = Module1.mainHero.getRocketAmmo7();
            int num9  = Module1.mainHero.getRocketAmmo8();
            int num10 = Module1.mainHero.getRocketAmmo9();

            num8--;
            initConnection.sendPacket("0|3|" + Conversions.ToString(num2) + "|" + Conversions.ToString(num3) + "|" + Conversions.ToString(num4) + "|" + Conversions.ToString(num5) + "|" + Conversions.ToString(num6) + "|0|0|" + Conversions.ToString(num7) + "|" + Conversions.ToString(num8) + "|" + Conversions.ToString(num9) + "|" + Conversions.ToString(num10) + "|0|0|0");
            Module1.mainHero.setRocketAmmo(num2, num3, num4, num5, num6, num7, num8, num9, num10);
            new Thread(new ThreadStart(Mine_Module.heroSbombCooldown)).Start();
        }