Esempio n. 1
0
        // Function from file: nuclearbomb.dm
        public override dynamic Destroy(  )
        {
            dynamic _default = null;

            Obj_Item_Weapon_Disk_Nuclear NEWDISK = null;
            dynamic diskturf = null;


            if (GlobalVars.blobstart.len > 0)
            {
                GlobalVars.poi_list.Remove(this);
                NEWDISK = new Obj_Item_Weapon_Disk_Nuclear(Rand13.PickFromTable(GlobalVars.blobstart));
                this.transfer_fingerprints_to(NEWDISK);
                diskturf = GlobalFuncs.get_turf(this);
                GlobalFuncs.message_admins("" + this + " has been destroyed in (" + diskturf.x + ", " + diskturf.y + " ," + diskturf.z + " - <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=" + diskturf.x + ";Y=" + diskturf.y + ";Z=" + diskturf.z + "'>JMP</a>). Moving it to (" + NEWDISK.x + ", " + NEWDISK.y + ", " + NEWDISK.z + " - <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=" + NEWDISK.x + ";Y=" + NEWDISK.y + ";Z=" + NEWDISK.z + "'>JMP</a>).");
                GlobalFuncs.log_game("" + this + " has been destroyed in (" + diskturf.x + ", " + diskturf.y + " ," + diskturf.z + "). Moving it to (" + NEWDISK.x + ", " + NEWDISK.y + ", " + NEWDISK.z + ").");
                return(4);
            }
            else
            {
                _default = 1;
                throw new Exception("Unable to find a blobstart landmark");
                return(_default);
            }
        }
Esempio n. 2
0
        // Function from file: nuclear.dm
        public override bool declare_completion(  )
        {
            bool disk_rescued = false;
            Obj_Item_Weapon_Disk_Nuclear D = null;
            bool crew_evacuated            = false;

            disk_rescued = true;

            foreach (dynamic _a in Lang13.Enumerate(GlobalVars.poi_list, typeof(Obj_Item_Weapon_Disk_Nuclear)))
            {
                D = _a;


                if (!D.onCentcom())
                {
                    disk_rescued = false;
                    break;
                }
            }
            crew_evacuated = GlobalVars.SSshuttle.emergency.mode >= 6;

            if (!disk_rescued && this.station_was_nuked && !this.syndies_didnt_escape)
            {
                GlobalFuncs.feedback_set_details("round_end_result", "win - syndicate nuke");
                Game13.WriteMsg("<FONT size = 3><B>Syndicate Major Victory!</B></FONT>");
                Game13.WriteMsg("<B>" + GlobalFuncs.syndicate_name() + " operatives have destroyed " + GlobalFuncs.station_name() + "!</B>");
            }
            else if (!disk_rescued && this.station_was_nuked && this.syndies_didnt_escape)
            {
                GlobalFuncs.feedback_set_details("round_end_result", "halfwin - syndicate nuke - did not evacuate in time");
                Game13.WriteMsg("<FONT size = 3><B>Total Annihilation</B></FONT>");
                Game13.WriteMsg("<B>" + GlobalFuncs.syndicate_name() + " operatives destroyed " + GlobalFuncs.station_name() + " but did not leave the area in time and got caught in the explosion.</B> Next time, don't lose the disk!");
            }
            else if (!disk_rescued && !this.station_was_nuked && this.nuke_off_station != 0 && !this.syndies_didnt_escape)
            {
                GlobalFuncs.feedback_set_details("round_end_result", "halfwin - blew wrong station");
                Game13.WriteMsg("<FONT size = 3><B>Crew Minor Victory</B></FONT>");
                Game13.WriteMsg("<B>" + GlobalFuncs.syndicate_name() + " operatives secured the authentication disk but blew up something that wasn't " + GlobalFuncs.station_name() + ".</B> Next time, don't lose the disk!");
            }
            else if (!disk_rescued && !this.station_was_nuked && this.nuke_off_station != 0 && this.syndies_didnt_escape)
            {
                GlobalFuncs.feedback_set_details("round_end_result", "halfwin - blew wrong station - did not evacuate in time");
                Game13.WriteMsg("<FONT size = 3><B>" + GlobalFuncs.syndicate_name() + " operatives have earned Darwin Award!</B></FONT>");
                Game13.WriteMsg("<B>" + GlobalFuncs.syndicate_name() + " operatives blew up something that wasn't " + GlobalFuncs.station_name() + " and got caught in the explosion.</B> Next time, don't lose the disk!");
            }
            else if ((disk_rescued || GlobalVars.SSshuttle.emergency.mode < 6) && this.are_operatives_dead())
            {
                GlobalFuncs.feedback_set_details("round_end_result", "loss - evacuation - disk secured - syndi team dead");
                Game13.WriteMsg("<FONT size = 3><B>Crew Major Victory!</B></FONT>");
                Game13.WriteMsg("<B>The Research Staff has saved the disc and killed the " + GlobalFuncs.syndicate_name() + " Operatives</B>");
            }
            else if (disk_rescued)
            {
                GlobalFuncs.feedback_set_details("round_end_result", "loss - evacuation - disk secured");
                Game13.WriteMsg("<FONT size = 3><B>Crew Major Victory</B></FONT>");
                Game13.WriteMsg("<B>The Research Staff has saved the disc and stopped the " + GlobalFuncs.syndicate_name() + " Operatives!</B>");
            }
            else if (!disk_rescued && this.are_operatives_dead())
            {
                GlobalFuncs.feedback_set_details("round_end_result", "loss - evacuation - disk not secured");
                Game13.WriteMsg("<FONT size = 3><B>Syndicate Minor Victory!</B></FONT>");
                Game13.WriteMsg("<B>The Research Staff failed to secure the authentication disk but did manage to kill most of the " + GlobalFuncs.syndicate_name() + " Operatives!</B>");
            }
            else if (!disk_rescued && crew_evacuated)
            {
                GlobalFuncs.feedback_set_details("round_end_result", "halfwin - detonation averted");
                Game13.WriteMsg("<FONT size = 3><B>Syndicate Minor Victory!</B></FONT>");
                Game13.WriteMsg("<B>" + GlobalFuncs.syndicate_name() + " operatives recovered the abandoned authentication disk but detonation of " + GlobalFuncs.station_name() + " was averted.</B> Next time, don't lose the disk!");
            }
            else if (!disk_rescued && !crew_evacuated)
            {
                GlobalFuncs.feedback_set_details("round_end_result", "halfwin - interrupted");
                Game13.WriteMsg("<FONT size = 3><B>Neutral Victory</B></FONT>");
                Game13.WriteMsg("<B>Round was mysteriously interrupted!</B>");
            }
            base.declare_completion();
            return(false);
        }