コード例 #1
0
		// Range: -1 Access: 0 Flags: ( 0, 4, 255 )
		public static ByTable pollCandidates( string Question = null, string jobbanType = null, GameMode gametypeCheck = null, dynamic be_special_flag = null, int? poll_time = null ) {
			ByTable candidates = null;
			int time_passed = 0;
			Mob_Dead_Observer G = null;
			Mob_Dead_Observer G2 = null;
			if ( be_special_flag == null ) {
				be_special_flag = 0;
			}
			if ( poll_time == null ) {
				poll_time = 300;
			}
			candidates = new ByTable();
			time_passed = Game13.time;
			if ( !Lang13.Bool( Question ) ) {
				Question = "Would you like to be a special role?";
			}
			G = null;
			foreach (dynamic _b in GlobalVars.player_list ) {
				if ( !( _b is Mob_Dead_Observer ) ) {
					continue;
				}
				G = _b;
				if ( !Lang13.Bool( ((dynamic)G).key ) || !Lang13.Bool( ((dynamic)G).client ) ) {
					continue;
				}
				if ( Lang13.Bool( be_special_flag ) ) {
					if ( !Lang13.Bool( ((dynamic)G).client.prefs.be_special & be_special_flag ) ) {
						continue;
					}
				}
				if ( gametypeCheck != null ) {
					if ( !gametypeCheck.age_check( ((dynamic)G).client ) ) {
						continue;
					}
				}
				if ( Lang13.Bool( jobbanType ) ) {
					if ( Lang13.Bool( GlobalFuncs.jobban_isbanned( G, jobbanType ) ) || Lang13.Bool( GlobalFuncs.jobban_isbanned( G, "Syndicate" ) ) ) {
						continue;
					}
				}
				Task13.schedule( 0, (Task13.Closure)(() => {
					((dynamic)G).write( "sound/misc/notice2.ogg" );
					dynamic _a = GlobalFuncs.askuser( G, Question, "Please answer in " + ( poll_time ??0) / 10 + " seconds!", "Yes", "No", null, false, poll_time ); // Was a switch-case, sorry for the mess.
					if ( _a==1 ) {
						((dynamic)G).write( "<span class='notice'>Choice registered: Yes.</span>" );
						if ( Game13.time - time_passed > ( poll_time ??0) ) {
							((dynamic)G).write( "<span class='danger'>Sorry, you were too late for the consideration!</span>" );
							((dynamic)G).write( "sound/machines/buzz-sigh.ogg" );
						} else {
							candidates += G;
						}
					} else if ( _a==2 ) {
						((dynamic)G).write( "<span class='danger'>Choice registered: No.</span>" );
					};
					return;
				}));
			};
			Task13.sleep( poll_time ??0 );
			G2 = null;
			foreach (dynamic _c in candidates ) {
				if ( !( _c is Mob_Dead_Observer ) ) {
					continue;
				}
				G2 = _c;
				if ( !Lang13.Bool( ((dynamic)G2).key ) || !Lang13.Bool( ((dynamic)G2).client ) ) {
					candidates.Remove( G2 );
				}
			};
			return candidates;
		}