private BDExplosivePart GetMine()
        {
            BDExplosivePart m = null;

            m = part.FindModuleImplementing <BDExplosivePart>();

            return(m);
        }
        IEnumerator DetonateMineRoutine()
        {
            detonating = true;
            mine       = GetMine();
            mine.DetonateAG(new KSPActionParam(KSPActionGroup.None, KSPActionType.Activate));
            yield return(new WaitForSeconds(1));

            part.explode();
        }
 private void ArmMine()
 {
     part.vessel.DiscoveryInfo.SetLevel(DiscoveryLevels.Unowned);
     mine     = GetMine();
     armMine  = true;
     deployed = true;
     mine.ArmAG(new KSPActionParam(KSPActionGroup.None, KSPActionType.Activate));
     string _proximity_ = Convert.ToString(proximity);
 }
Ejemplo n.º 4
0
 public override void OnStart(StartState state)
 {
     if (HighLogic.LoadedSceneIsFlight)
     {
         part.force_activate();
         mine = GetMine();
     }
     base.OnStart(state);
 }
Ejemplo n.º 5
0
        IEnumerator DetonateMineRoutine()
        {
            detonating = true;
            mine       = GetMine();
            mine.ArmAG(new KSPActionParam(KSPActionGroup.None, KSPActionType.Activate));
            AddForce();
            yield return(new WaitForFixedUpdate());

            mine.DetonateAG(new KSPActionParam(KSPActionGroup.None, KSPActionType.Activate));
            part.explode();
        }
Ejemplo n.º 6
0
        IEnumerator DetonateMineRoutine()
        {
            detonating = true;
            UnityEngine.Debug.Log("[OrX Bonus Ball] Waldo Attack " + this.vessel.vesselName + " Detonating ... ");

            mine = GetMine();
            mine.ArmAG(new KSPActionParam(KSPActionGroup.None, KSPActionType.Activate));
            yield return(new WaitForFixedUpdate());

            mine.DetonateAG(new KSPActionParam(KSPActionGroup.None, KSPActionType.Activate));
            part.explode();
        }
        IEnumerator DisarmRoutine()
        {
            mine       = GetMine();
            armMine    = false;
            mine.Armed = false;
            yield return(new WaitForSeconds(2.5f));

            ScreenMsg("<color=#017c19ff><b>MINE DISARMED</b></color>");
            vessel.DiscoveryInfo.SetLevel(DiscoveryLevels.Owned);
            disarm    = true;
            disarming = false;
            armMine   = false;
        }
        public override void OnStart(StartState state)
        {
            decouple                = GetDecouple();
            minimumCrew             = 0;
            decouple.staged         = false;
            decouple.stagingEnabled = false;

            if (HighLogic.LoadedSceneIsFlight)
            {
                part.force_activate();
                mine = GetMine();
            }
            base.OnStart(state);
        }
        public override void OnStart(StartState state)
        {
            minimumCrew             = 0;
            decouple                = GetDecouple();
            decouple.staged         = false;
            decouple.stagingEnabled = false;
            GameEvents.onVesselWasModified.Add(ReconfigureEvent);
            recalcSurfaceArea();

            if (HighLogic.LoadedSceneIsFlight)
            {
                part.force_activate();
                mine = GetMine();
            }
            base.OnStart(state);
        }
Ejemplo n.º 10
0
        IEnumerator ArmMine()
        {
            checkIfArmed = false;
            yield return(new WaitForSeconds(1f));

            mine = GetMine();
            if (part.vessel.Splashed)
            {
                armMine  = true;
                deployed = true;
                mine.ArmAG(new KSPActionParam(KSPActionGroup.None, KSPActionType.Activate));
            }
            else
            {
                checkIfArmed = true;
            }
        }
        private void ProxDetect()
        {
            mine = GetMine();
            if (!detonating)
            {
                foreach (Vessel v in FlightGlobals.Vessels)
                {
                    double targetDistance = Vector3d.Distance(this.vessel.GetWorldPos3D(), v.GetWorldPos3D());

                    if (targetDistance <= proximity)
                    {
                        if (targetDistance >= 0 && v.speed >= 1.5f)
                        {
                            StartCoroutine(DetonateMineRoutine());
                        }
                    }
                }
            }
        }
        //////////////////////////////////////////////////////////////////////////

        IEnumerator ArmMine()
        {
            part.vessel.DiscoveryInfo.SetLevel(DiscoveryLevels.Unowned);
            checkIfArmed = false;
            yield return(new WaitForSeconds(1f));

            mine = GetMine();
            if (part.vessel.altitude <= 0 || part.vessel.altitude == 0)
            {
                armMine  = true;
                deployed = true;
                part.vessel.DiscoveryInfo.SetLevel(DiscoveryLevels.Unowned);
                mine.ArmAG(new KSPActionParam(KSPActionGroup.None, KSPActionType.Activate));
            }
            else
            {
                checkIfArmed = true;
            }
        }
        private void ProxDetect()
        {
            part.vessel.DiscoveryInfo.SetLevel(DiscoveryLevels.Unowned);
            mine = GetMine();
            if (!detonating)
            {
                foreach (Vessel v in FlightGlobals.Vessels)
                {
                    if (!v.HoldPhysics && v.speed >= 1.1f)
                    {
                        double targetDistance = Vector3d.Distance(this.vessel.GetWorldPos3D(), v.GetWorldPos3D());

                        if (targetDistance >= 0 && targetDistance <= proximity)
                        {
                            StartCoroutine(DetonateMineRoutine());
                        }
                    }
                }
            }
        }
Ejemplo n.º 14
0
        IEnumerator ProxDetect()
        {
            double targetDistance = Vector3d.Distance(this.vessel.GetWorldPos3D(), FlightGlobals.ActiveVessel.GetWorldPos3D());

            if (targetDistance <= 10)
            {
                mine = GetMine();

                if (FlightGlobals.ActiveVessel.isEVA)
                {
                    speed        = 1.5f + KerbinMissions.instance.level * 0.1;
                    mine.tntMass = 1;
                    StartCoroutine(DetonateMineRoutine());
                    Debug.Log("[OrX Bonus Ball] Waldo Attack " + this.vessel.vesselName + " Found Kerbal ... Detonating");
                }
                else
                {
                    if (FlightGlobals.ActiveVessel.srfSpeed >= 5)
                    {
                        speed        = (FlightGlobals.ActiveVessel.srfSpeed * 0.9f) + (KerbinMissions.instance.level * 0.1f);
                        mine.tntMass = 5 + (KerbinMissions.instance.level * 0.1f);
                        StartCoroutine(DetonateMineRoutine());
                        Debug.Log("[OrX Bonus Ball] Waldo Attack " + this.vessel.vesselName + " Found Vessel ... Detonating");
                    }
                    else
                    {
                        speed        = 4 + KerbinMissions.instance.level * 0.1f;
                        mine.tntMass = 5 + (KerbinMissions.instance.level * 0.1f);
                        StartCoroutine(DetonateMineRoutine());
                        Debug.Log("[OrX Bonus Ball] Waldo Attack " + this.vessel.vesselName + " Found Vessel ... Detonating");
                    }
                }
            }

            yield return(new WaitForSeconds(2));

            detecting = false;
        }