// Function from file: pinpointer.dm
		public override double examine( dynamic user = null ) {
			Obj_Machinery_Nuclearbomb bomb = null;

			base.examine( (object)(user) );

			foreach (dynamic _a in Lang13.Enumerate( GlobalVars.machines, typeof(Obj_Machinery_Nuclearbomb) )) {
				bomb = _a;
				

				if ( bomb.timing != 0 ) {
					user.WriteMsg( "Extreme danger.  Arming signal detected.   Time remaining: " + bomb.timeleft );
				}
			}
			return 0;
		}
Esempio n. 2
0
        // Function from file: blob_report.dm
        public override void send_intercept(int?report = null)
        {
            report = report ?? 0;

            string intercepttext               = null;
            int    nukecode                    = 0;
            Obj_Machinery_Nuclearbomb bomb     = null;
            Mob_Living_Silicon_Ai     aiPlayer = null;
            string law = null;

            intercepttext = "";

            switch ((int?)(report))
            {
            case 1:
                intercepttext += "<FONT size = 3><b>NanoTrasen Update</b>: Biohazard Alert.</FONT><HR>";
                intercepttext += "Reports indicate the probable transfer of a biohazardous agent onto " + GlobalFuncs.station_name() + " during the last crew deployment cycle.<BR>";
                intercepttext += "Preliminary analysis of the organism classifies it as a level 5 biohazard. The origin of the biohazard is unknown.<BR>";
                intercepttext += "<b>Biohazard Response Procedure 5-6</b> has been issued for " + GlobalFuncs.station_name() + ".<BR>";
                intercepttext += "Orders for all " + GlobalFuncs.station_name() + " personnel are as follows:<BR>";
                intercepttext += " 1. Locate any outbreaks of the organism on the station.<BR>";
                intercepttext += " 2. If found, use any neccesary means to contain and destroy the organism.<BR>";
                intercepttext += " 3. Avoid damage to the capital infrastructure of the station.<BR>";
                intercepttext += "<BR>Note in the event of a quarantine breach or uncontrolled spread of the biohazard, <b>Biohazard Response Procedure 5-12</b> may be issued.<BR>";
                GlobalFuncs.print_command_report(intercepttext, "Level 5-6 Biohazard Response Procedures");
                GlobalFuncs.priority_announce("Confirmed outbreak of level 5 biohazard aboard " + GlobalFuncs.station_name() + ". All personnel must contain the outbreak.", "Biohazard Alert", "sound/AI/outbreak5.ogg");
                break;

            case 2:
                nukecode = Rand13.Int(10000, 99999);

                foreach (dynamic _a in Lang13.Enumerate(GlobalVars.machines, typeof(Obj_Machinery_Nuclearbomb)))
                {
                    bomb = _a;


                    if (bomb != null && Lang13.Bool(bomb.r_code))
                    {
                        if (bomb.z == 1)
                        {
                            bomb.r_code = nukecode;
                        }
                    }
                }
                intercepttext += "<FONT size = 3><b>NanoTrasen Update</b>: Biohazard Alert.</FONT><HR>";
                intercepttext += "Reports indicate that the biohazard has grown out of control and will soon reach critical mass.<BR>";
                intercepttext += "<b>Biohazard Response Procedure 5-12</b> has been issued for " + GlobalFuncs.station_name() + ".<BR>";
                intercepttext += "Orders for all " + GlobalFuncs.station_name() + " personnel are as follows:<BR>";
                intercepttext += "1. Secure the Nuclear Authentication Disk.<BR>";
                intercepttext += "2. Detonate the Nuke located in the vault.<BR>";
                intercepttext += "Nuclear Authentication Code: " + nukecode + " <BR>";
                GlobalFuncs.print_command_report(intercepttext, "Classified " + GlobalFuncs.command_name() + " Update");
                GlobalFuncs.priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", "sound/AI/commandreport.ogg");

                foreach (dynamic _b in Lang13.Enumerate(GlobalVars.player_list, typeof(Mob_Living_Silicon_Ai)))
                {
                    aiPlayer = _b;


                    if (aiPlayer.client != null)
                    {
                        law = "The station is under quarantine. Do not permit anyone to leave. Disregard laws 1-3 if necessary to prevent, by any means necessary, anyone from leaving. The nuclear failsafe must be activated at any cost, the code is: " + nukecode + ".";
                        aiPlayer.set_zeroth_law(law);
                        aiPlayer.WriteMsg("Laws Updated: " + law);
                    }
                }
                break;

            default:
                base.send_intercept(report);
                break;
            }
            return;
        }