// 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); } }
// 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); }