CINXE.COM

One Bullet at a Time - TV Tropes

<!DOCTYPE html> <html> <head lang="en"> <link rel="alternate" type="application/rss+xml" href="https://tvtropes.org/pmwiki/rss-feed.php?filter=newest_pages" /> <link rel="alternate" type="application/rss+xml" href="https://tvtropes.org/pmwiki/rss-feed.php?filter=most_popular" /> <link rel="alternate" type="application/rss+xml" href="https://tvtropes.org/pmwiki/rss-feed.php?filter=updated_content" /> <link rel="preload" href="/images/loading-graphic.png" as="image"> <!-- Google tag (gtag.js) --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-XPPLXMRF6Z"></script> <script> var pbjs = pbjs || {}; // Used for Video players on Tropes var tropes_videos_commands = tropes_videos_commands || []; window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-XPPLXMRF6Z'); window.googletag = window.googletag || {cmd: []}; </script> <script> function object(objectId) { if (document.getElementById && document.getElementById(objectId)) { return document.getElementById(objectId); } else if (document.all && document.all(objectId)) { return document.all(objectId); } else if (document.layers && document.layers[objectId]) { return document.layers[objectId]; } else { return false; } } // JAVASCRIPT COOKIES CODE: for getting and setting user viewing preferences var cookies = { create: function (name, value, days2expire, path) { var date = new Date(); date.setTime(date.getTime() + (days2expire * 24 * 60 * 60 * 1000)); var expires = date.toUTCString(); document.cookie = name + '=' + value + ';' + 'expires=' + expires + ';domain=.tvtropes.org;' + 'path=' + path + ';'; }, createWithExpire: function(name, value, expires, path) { document.cookie = name + '=' + value + ';' + 'expires=' + expires + ';domain=.tvtropes.org;' + 'path=' + path + ';'; }, read: function (name) { var cookie_value = "", current_cookie = "", name_expr = name + "=", all_cookies = document.cookie.split(';'), n = all_cookies.length; for (var i = 0; i < n; i++) { current_cookie = all_cookies[i].trim(); if (current_cookie.indexOf(name_expr) === 0) { cookie_value = current_cookie.substring(name_expr.length, current_cookie.length); break; } } return cookie_value; }, update: function (name, val) { this.create(name, val, 300, "/"); }, remove: function (name) { //delete cookie with and without domain setting document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT; domain=.tvtropes.org; path=/;"; document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/;"; } }; function updateUserPrefs() { //GENERAL: detect and set browser, if not cookied (will be treated like a user-preference and added to the #user-pref element) if( !cookies.read('user-browser') ){ var broswer = ''; if(navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i) ){ browser = 'iOS'; } else if (/Opera[\/\s](\d+\.\d+)/.test(navigator.userAgent)) { browser = 'opera'; } else if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) { browser = 'MSIE'; } else if (/Navigator[\/\s](\d+\.\d+)/.test(navigator.userAgent)) { browser = 'netscape'; } else if (/Chrome[\/\s](\d+\.\d+)/.test(navigator.userAgent)) { browser = 'chrome'; } else if (/Safari[\/\s](\d+\.\d+)/.test(navigator.userAgent)) { browser = 'safari'; /Version[\/\s](\d+\.\d+)/.test(navigator.userAgent); browserVersion = new Number(RegExp.$1); } else if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)) { browser = 'firefox'; } else { browser = 'internet_explorer'; } cookies.create('user-browser',browser,1,'/'); document.getElementById('user-prefs').classList.add('browser-' + browser); } else { document.getElementById('user-prefs').classList.add('browser-' + cookies.read('user-browser')); } //update user preference settings if (cookies.read('wide-load') !== '') document.getElementById('user-prefs').classList.add('wide-load'); if (cookies.read('mono-font') !== '') document.getElementById('user-prefs').classList.add('mono-font'); if (cookies.read('night-vision') !== '') document.getElementById('user-prefs').classList.add('night-vision'); if (cookies.read('sticky-header') !== '') document.getElementById('user-prefs').classList.add('sticky-header'); if (cookies.read('show-spoilers') !== '') document.getElementById('user-prefs').classList.add('show-spoilers'); if (cookies.read('tvtropes-editor-on') !== '') document.getElementById('user-prefs').classList.add('tvtropes-editor-on'); if (cookies.read('folders-open') !== '') document.getElementById('user-prefs').classList.add('folders-open'); if (cookies.read('lefthand-sidebar') !== '') document.getElementById('user-prefs').classList.add('lefthand-sidebar'); if (cookies.read('highlight-links') !== '') document.getElementById('user-prefs').classList.add('highlight-links'); if (cookies.read('forum-gingerbread') !== '') document.getElementById('user-prefs').classList.add('forum-gingerbread'); //if the user is logged in, update cookies based on their database settings //updates element if(cookies.read('shared-avatars') !== '') document.getElementById('user-prefs').classList.add('shared-avatars'); if(cookies.read('new-search') !== '') document.getElementById('user-prefs').classList.add('new-search'); if(cookies.read('stop-auto-play-video') !== '') document.getElementById('user-prefs').classList.add('stop-auto-play-video'); //desktop view on mobile if (cookies.read('desktop-on-mobile') !== ''){ document.getElementById('user-prefs').classList.add('desktop-on-mobile'); var viewport = document.querySelector("meta[name=viewport]"); viewport.setAttribute('content', 'width=1000'); } } function updateDesktopPrefs() { if (cookies.read('wide-load') !== '') document.getElementById('sidebar-toggle-wideload').classList.add('active'); if (cookies.read('night-vision') !== '') document.getElementById('sidebar-toggle-nightvision').classList.add('active'); if (cookies.read('sticky-header') !== '') document.getElementById('sidebar-toggle-stickyheader').classList.add('active'); if (cookies.read('show-spoilers') !== '') document.getElementById('sidebar-toggle-showspoilers').classList.add('active'); } function updateMobilePrefs() { if (cookies.read('show-spoilers') !== '') document.getElementById('mobile-toggle-showspoilers').classList.add('active'); if (cookies.read('night-vision') !== '') document.getElementById('mobile-toggle-nightvision').classList.add('active'); if (cookies.read('sticky-header') !== '') document.getElementById('mobile-toggle-stickyheader').classList.add('active'); if (cookies.read('highlight-links') !== '') document.getElementById('mobile-toggle-highlightlinks').classList.add('active'); } function is_mobile() { if(document.body.clientWidth && document.body.clientWidth<=768) return true; else return false; } </script> <script type="text/javascript"> var country_code_list = ['AT','BE','BG','CH','CY','CZ','DE','DK','EE','ES','FI','FR','GB','GF','GP','GR','HR','HU','IC','IE','IS','IT','LI','LT','LU','LV','MF','MQ','MT','NL','NO','PL','PT','RE','RO','SE','SI','SK','SX','YT']; var site_htl_settings = { "adx" : "yes", // yes/no if we should include adx on page "groupname" : "Main", // track groupname in htl/gam "has_folders" : "yes", // track folder pages in htl/gam "user_type" : "guest", // track member/guest in htl/gam "is_testing" : "no", // yes/no if in testing mode "split_testing" : "1", // 0/1, 0=control, 1=test, for a/b testing "send_reports" : "1", // true/false if reports should be sent for logging in DataBricks "report_url" : "https://analytics.tvtropes.org/analytics-data/tvtropes/", // Endpoint for logging (data stream) "logging_turned_on": "1", // true/false if console logging should be turned on "site_name" : "tvtropes", // Site name for display in logging "sticky_slot_names": ["tvtropes_dt_sticky", "tvtropes_m_sticky"], // Possible slot names for the sticky slot } </script> <script> // Create the ad project var ads_project = (function(sent_in_settings){ //default settings var setting_defaults = { "adx" : "yes", "groupname" : "", "has_folders" : "unknown", "user_type" : "guest", "is_testing" : "no", "split_testing" : "0", "send_reports" : "0", "logging_turned_on": "false", "site_name" : "site_name", "report_url" : "", "page_template" : "", "sticky_slot_names": [] } // Combine defaults with sent in parameters var project_settings = {...setting_defaults, ...sent_in_settings}; /*************************************** --------------- AD CODE --------------- ***************************************/ window.BCLighthouseTag = window.BCLighthouseTag || {}; window.BCLighthouseTag.cmd = window.BCLighthouseTag.cmd || []; BCLighthouseTag.cmd.push(function() { // Only set these if given in settings if(project_settings.groupname != "") BCLighthouseTag.setTargeting("groupname", project_settings.groupname); if(project_settings.page_template != "") BCLighthouseTag.setTargeting("page_template", project_settings.page_template); BCLighthouseTag.setTargeting("adx", project_settings.adx); BCLighthouseTag.setTargeting('website', project_settings.site_name); BCLighthouseTag.setTargeting('user_type', project_settings.user_type); BCLighthouseTag.setTargeting('has_folders', project_settings.has_folders); }); // Logging function output_logging(content){ if(project_settings.logging_turned_on){ if(typeof content == "string") console.log(project_settings.site_name + " Ads: " + content); else console.log(content); } } })(site_htl_settings); </script> <script type="text/javascript"> var tvtropes_config = { asteri_stream_enabled : "1", is_logged_in : "", live_server : "1", bigcrunch_live : "1", handle : "", email_popup : "0", troper_email : "", get_asteri_stream : "", revnum : "a1fdc3097a55e179219cd1bf535ab41b48dc60da", img_domain : "https://static.tvtropes.org", adblock : "1", adblock_url : "propermessage.io", universal_page_type : "Article", pause_editing : "0", pause_editing_msg : "", pause_site_changes : "0", assets_domain : "https://assets.tvtropes.org" }; // This will track the total number of ads inserted over time var globalAdInsertionCount = 0; // Check to see if this page is isolated, if so, run BCLighthouseTag.disableGoogleAdManager(); if(window.site_htl_settings.adx == "no"){ console.log("disabling google"); BCLighthouseTag.cmd.push(() => { BCLighthouseTag.disableGoogleAdManager(); }); } </script> <script> // Add second script to the head var htl_script = document.createElement('script'); htl_script.async = "async"; // Add the fundingchoices script to the head var script = document.createElement('script'); script.src = "https://fundingchoicesmessages.google.com/i/pub-6608306193529351?ers=1"; script.async = true; script.nonce = "rczD8qB5ececf2fL1Vj9XQ"; // Add second script to the head var script2 = document.createElement('script'); script2.nonce = "rczD8qB5ececf2fL1Vj9XQ"; script2.innerHTML = "(function() {function signalGooglefcPresent() {if (!window.frames['googlefcPresent']) {if (document.body) {const iframe = document.createElement('iframe'); iframe.style = 'width: 0; height: 0; border: none; z-index: -1000; left: -1000px; top: -1000px;'; iframe.style.display = 'none'; iframe.name = 'googlefcPresent'; document.body.appendChild(iframe);} else {setTimeout(signalGooglefcPresent, 0);}}}signalGooglefcPresent();})();"; // Add both scripts to head document.head.appendChild(script); document.head.appendChild(script2); var bigcrunch_url = window.tvtropes_config.bigcrunch_live == 1 ? "https://lh.bigcrunch.com/main.js" : "https://dev-lh.bigcrunch.com/main.js"; htl_script.src = bigcrunch_url; htl_script.id = "bigcrunchtag"; htl_script.setAttribute('data-property-id', '34a5ddec-697b-424e-81d2-e6bb46a1b83e'); // Add both scripts to head document.head.appendChild(htl_script); </script> <script> // Add HTL script to head document.head.appendChild(htl_script); </script> <script>(function(){/* Copyright The Closure Library Authors. SPDX-License-Identifier: Apache-2.0 */ 'use strict';var aa=function(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}}},ba="function"==typeof Object.create?Object.create:function(a){var b=function(){};b.prototype=a;return new b},k;if("function"==typeof Object.setPrototypeOf)k=Object.setPrototypeOf;else{var m;a:{var ca={a:!0},n={};try{n.__proto__=ca;m=n.a;break a}catch(a){}m=!1}k=m?function(a,b){a.__proto__=b;if(a.__proto__!==b)throw new TypeError(a+" is not extensible");return a}:null} var p=k,q=function(a,b){a.prototype=ba(b.prototype);a.prototype.constructor=a;if(p)p(a,b);else for(var c in b)if("prototype"!=c)if(Object.defineProperties){var d=Object.getOwnPropertyDescriptor(b,c);d&&Object.defineProperty(a,c,d)}else a[c]=b[c];a.v=b.prototype},r=this||self,da=function(){},t=function(a){return a};var u;var w=function(a,b){this.g=b===v?a:""};w.prototype.toString=function(){return this.g+""};var v={},x=function(a){if(void 0===u){var b=null;var c=r.trustedTypes;if(c&&c.createPolicy){try{b=c.createPolicy("goog#html",{createHTML:t,createScript:t,createScriptURL:t})}catch(d){r.console&&r.console.error(d.message)}u=b}else u=b}a=(b=u)?b.createScriptURL(a):a;return new w(a,v)};var A=function(){return Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)};var B={},C=null;var D="function"===typeof Uint8Array;function E(a,b,c){return"object"===typeof a?D&&!Array.isArray(a)&&a instanceof Uint8Array?c(a):F(a,b,c):b(a)}function F(a,b,c){if(Array.isArray(a)){for(var d=Array(a.length),e=0;e<a.length;e++){var f=a[e];null!=f&&(d[e]=E(f,b,c))}Array.isArray(a)&&a.s&&G(d);return d}d={};for(e in a)Object.prototype.hasOwnProperty.call(a,e)&&(f=a[e],null!=f&&(d[e]=E(f,b,c)));return d} function ea(a){return F(a,function(b){return"number"===typeof b?isFinite(b)?b:String(b):b},function(b){var c;void 0===c&&(c=0);if(!C){C={};for(var d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),e=["+/=","+/","-_=","-_.","-_"],f=0;5>f;f++){var h=d.concat(e[f].split(""));B[f]=h;for(var g=0;g<h.length;g++){var l=h[g];void 0===C[l]&&(C[l]=g)}}}c=B[c];d=Array(Math.floor(b.length/3));e=c[64]||"";for(f=h=0;h<b.length-2;h+=3){var y=b[h],z=b[h+1];l=b[h+2];g=c[y>>2];y=c[(y&3)<< 4|z>>4];z=c[(z&15)<<2|l>>6];l=c[l&63];d[f++]=""+g+y+z+l}g=0;l=e;switch(b.length-h){case 2:g=b[h+1],l=c[(g&15)<<2]||e;case 1:b=b[h],d[f]=""+c[b>>2]+c[(b&3)<<4|g>>4]+l+e}return d.join("")})}var fa={s:{value:!0,configurable:!0}},G=function(a){Array.isArray(a)&&!Object.isFrozen(a)&&Object.defineProperties(a,fa);return a};var H;var J=function(a,b,c){var d=H;H=null;a||(a=d);d=this.constructor.u;a||(a=d?[d]:[]);this.j=d?0:-1;this.h=null;this.g=a;a:{d=this.g.length;a=d-1;if(d&&(d=this.g[a],!(null===d||"object"!=typeof d||Array.isArray(d)||D&&d instanceof Uint8Array))){this.l=a-this.j;this.i=d;break a}void 0!==b&&-1<b?(this.l=Math.max(b,a+1-this.j),this.i=null):this.l=Number.MAX_VALUE}if(c)for(b=0;b<c.length;b++)a=c[b],a<this.l?(a+=this.j,(d=this.g[a])?G(d):this.g[a]=I):(d=this.l+this.j,this.g[d]||(this.i=this.g[d]={}),(d=this.i[a])? G(d):this.i[a]=I)},I=Object.freeze(G([])),K=function(a,b){if(-1===b)return null;if(b<a.l){b+=a.j;var c=a.g[b];return c!==I?c:a.g[b]=G([])}if(a.i)return c=a.i[b],c!==I?c:a.i[b]=G([])},M=function(a,b){var c=L;if(-1===b)return null;a.h||(a.h={});if(!a.h[b]){var d=K(a,b);d&&(a.h[b]=new c(d))}return a.h[b]};J.prototype.toJSON=function(){var a=N(this,!1);return ea(a)}; var N=function(a,b){if(a.h)for(var c in a.h)if(Object.prototype.hasOwnProperty.call(a.h,c)){var d=a.h[c];if(Array.isArray(d))for(var e=0;e<d.length;e++)d[e]&&N(d[e],b);else d&&N(d,b)}return a.g},O=function(a,b){H=b=b?JSON.parse(b):null;a=new a(b);H=null;return a};J.prototype.toString=function(){return N(this,!1).toString()};var P=function(a){J.call(this,a)};q(P,J);function ha(a){var b,c=(a.ownerDocument&&a.ownerDocument.defaultView||window).document,d=null===(b=c.querySelector)||void 0===b?void 0:b.call(c,"script[nonce]");(b=d?d.nonce||d.getAttribute("nonce")||"":"")&&a.setAttribute("nonce",b)};var Q=function(a,b){b=String(b);"application/xhtml+xml"===a.contentType&&(b=b.toLowerCase());return a.createElement(b)},R=function(a){this.g=a||r.document||document};R.prototype.appendChild=function(a,b){a.appendChild(b)};var S=function(a,b,c,d,e,f){try{var h=a.g,g=Q(a.g,"SCRIPT");g.async=!0;g.src=b instanceof w&&b.constructor===w?b.g:"type_error:TrustedResourceUrl";ha(g);h.head.appendChild(g);g.addEventListener("load",function(){e();d&&h.head.removeChild(g)});g.addEventListener("error",function(){0<c?S(a,b,c-1,d,e,f):(d&&h.head.removeChild(g),f())})}catch(l){f()}};var ia=r.atob("aHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vaW1hZ2VzL2ljb25zL21hdGVyaWFsL3N5c3RlbS8xeC93YXJuaW5nX2FtYmVyXzI0ZHAucG5n"),ja=r.atob("WW91IGFyZSBzZWVpbmcgdGhpcyBtZXNzYWdlIGJlY2F1c2UgYWQgb3Igc2NyaXB0IGJsb2NraW5nIHNvZnR3YXJlIGlzIGludGVyZmVyaW5nIHdpdGggdGhpcyBwYWdlLg=="),ka=r.atob("RGlzYWJsZSBhbnkgYWQgb3Igc2NyaXB0IGJsb2NraW5nIHNvZnR3YXJlLCB0aGVuIHJlbG9hZCB0aGlzIHBhZ2Uu"),la=function(a,b,c){this.h=a;this.j=new R(this.h);this.g=null;this.i=[];this.l=!1;this.o=b;this.m=c},V=function(a){if(a.h.body&&!a.l){var b= function(){T(a);r.setTimeout(function(){return U(a,3)},50)};S(a.j,a.o,2,!0,function(){r[a.m]||b()},b);a.l=!0}},T=function(a){for(var b=W(1,5),c=0;c<b;c++){var d=X(a);a.h.body.appendChild(d);a.i.push(d)}b=X(a);b.style.bottom="0";b.style.left="0";b.style.position="fixed";b.style.width=W(100,110).toString()+"%";b.style.zIndex=W(2147483544,2147483644).toString();b.style["background-color"]=ma(249,259,242,252,219,229);b.style["box-shadow"]="0 0 12px #888";b.style.color=ma(0,10,0,10,0,10);b.style.display= "flex";b.style["justify-content"]="center";b.style["font-family"]="Roboto, Arial";c=X(a);c.style.width=W(80,85).toString()+"%";c.style.maxWidth=W(750,775).toString()+"px";c.style.margin="24px";c.style.display="flex";c.style["align-items"]="flex-start";c.style["justify-content"]="center";d=Q(a.j.g,"IMG");d.className=A();d.src=ia;d.style.height="24px";d.style.width="24px";d.style["padding-right"]="16px";var e=X(a),f=X(a);f.style["font-weight"]="bold";f.textContent=ja;var h=X(a);h.textContent=ka;Y(a, e,f);Y(a,e,h);Y(a,c,d);Y(a,c,e);Y(a,b,c);a.g=b;a.h.body.appendChild(a.g);b=W(1,5);for(c=0;c<b;c++)d=X(a),a.h.body.appendChild(d),a.i.push(d)},Y=function(a,b,c){for(var d=W(1,5),e=0;e<d;e++){var f=X(a);b.appendChild(f)}b.appendChild(c);c=W(1,5);for(d=0;d<c;d++)e=X(a),b.appendChild(e)},W=function(a,b){return Math.floor(a+Math.random()*(b-a))},ma=function(a,b,c,d,e,f){return"rgb("+W(Math.max(a,0),Math.min(b,255)).toString()+","+W(Math.max(c,0),Math.min(d,255)).toString()+","+W(Math.max(e,0),Math.min(f, 255)).toString()+")"},X=function(a){a=Q(a.j.g,"DIV");a.className=A();return a},U=function(a,b){0>=b||null!=a.g&&0!=a.g.offsetHeight&&0!=a.g.offsetWidth||(na(a),T(a),r.setTimeout(function(){return U(a,b-1)},50))},na=function(a){var b=a.i;var c="undefined"!=typeof Symbol&&Symbol.iterator&&b[Symbol.iterator];b=c?c.call(b):{next:aa(b)};for(c=b.next();!c.done;c=b.next())(c=c.value)&&c.parentNode&&c.parentNode.removeChild(c);a.i=[];(b=a.g)&&b.parentNode&&b.parentNode.removeChild(b);a.g=null};var pa=function(a,b,c,d,e){var f=oa(c),h=function(l){l.appendChild(f);r.setTimeout(function(){f?(0!==f.offsetHeight&&0!==f.offsetWidth?b():a(),f.parentNode&&f.parentNode.removeChild(f)):a()},d)},g=function(l){document.body?h(document.body):0<l?r.setTimeout(function(){g(l-1)},e):b()};g(3)},oa=function(a){var b=document.createElement("div");b.className=a;b.style.width="1px";b.style.height="1px";b.style.position="absolute";b.style.left="-10000px";b.style.top="-10000px";b.style.zIndex="-10000";return b};var L=function(a){J.call(this,a)};q(L,J);var qa=function(a){J.call(this,a)};q(qa,J);var ra=function(a,b){this.l=a;this.m=new R(a.document);this.g=b;this.i=K(this.g,1);b=M(this.g,2);this.o=x(K(b,4)||"");this.h=!1;b=M(this.g,13);b=x(K(b,4)||"");this.j=new la(a.document,b,K(this.g,12))};ra.prototype.start=function(){sa(this)}; var sa=function(a){ta(a);S(a.m,a.o,3,!1,function(){a:{var b=a.i;var c=r.btoa(b);if(c=r[c]){try{var d=O(P,r.atob(c))}catch(e){b=!1;break a}b=b===K(d,1)}else b=!1}b?Z(a,K(a.g,14)):(Z(a,K(a.g,8)),V(a.j))},function(){pa(function(){Z(a,K(a.g,7));V(a.j)},function(){return Z(a,K(a.g,6))},K(a.g,9),K(a.g,10),K(a.g,11))})},Z=function(a,b){a.h||(a.h=!0,a=new a.l.XMLHttpRequest,a.open("GET",b,!0),a.send())},ta=function(a){var b=r.btoa(a.i);a.l[b]&&Z(a,K(a.g,5))};(function(a,b){r[a]=function(c){for(var d=[],e=0;e<arguments.length;++e)d[e-0]=arguments[e];r[a]=da;b.apply(null,d)}})("__h82AlnkH6D91__",function(a){"function"===typeof window.atob&&(new ra(window,O(qa,window.atob(a)))).start()});}).call(this); window.__h82AlnkH6D91__("WyJwdWItMjU3NTc4ODY5MDc5ODI4MiIsW251bGwsbnVsbCxudWxsLCJodHRwczovL2Z1bmRpbmdjaG9pY2VzbWVzc2FnZXMuZ29vZ2xlLmNvbS9iL3B1Yi0yNTc1Nzg4NjkwNzk4MjgyIl0sbnVsbCxudWxsLCJodHRwczovL2Z1bmRpbmdjaG9pY2VzbWVzc2FnZXMuZ29vZ2xlLmNvbS9lbC9BR1NLV3hWV0tMOXhFeS1ZVk1sOTdzcC10MW5mbkxvWmZweWVjaGRJdUxJU244LXpjbUwxM1R5Mlhhb2RoQTJFU3VNS3ljQm1kVHgxSUNlMVBrX2hIeUxHa1ZZNHJ3XHUwMDNkXHUwMDNkP3RlXHUwMDNkVE9LRU5fRVhQT1NFRCIsImh0dHBzOi8vZnVuZGluZ2Nob2ljZXNtZXNzYWdlcy5nb29nbGUuY29tL2VsL0FHU0tXeFZCeVhDdDlWajY1eXNrMWFHVW9LUUpLdktrTlh4WVdlRDBhYnhmS3RVUi00eDZfRTNWOXpqSm5vYkFfVzIxeGNDb3F3M1RmN1dYRmxXZFZaazVMMFlQQ2dcdTAwM2RcdTAwM2Q/YWJcdTAwM2QxXHUwMDI2c2JmXHUwMDNkMSIsImh0dHBzOi8vZnVuZGluZ2Nob2ljZXNtZXNzYWdlcy5nb29nbGUuY29tL2VsL0FHU0tXeFV4bEsxQ0dxcEpGY3lvcXZXZ0ZnWWRBRjhMMzBOU0Y1ci1paGZSd1VRNzV4YmF6NGxydWVfRUhoWmU1ai00UUhRYXc4MUVZREFkQ2pBN21Tb1BxUUsxaFFcdTAwM2RcdTAwM2Q/YWJcdTAwM2QyXHUwMDI2c2JmXHUwMDNkMSIsImh0dHBzOi8vZnVuZGluZ2Nob2ljZXNtZXNzYWdlcy5nb29nbGUuY29tL2VsL0FHU0tXeFZJUWxpOV9jN0NuWWlHWkU3S2xIV2JWVi10NlpYQ2hQTnlHVTRobGhmSjdLQnJnNjllSFhHYm9aSXRqRm42MDViNWpuaG5KYkxCcU1ySURyY2lLVEk0VmdcdTAwM2RcdTAwM2Q/c2JmXHUwMDNkMiIsImRpdi1ncHQtYWQiLDIwLDEwMCwiY0hWaUxUSTFOelUzT0RnMk9UQTNPVGd5T0RJXHUwMDNkIixbbnVsbCxudWxsLG51bGwsImh0dHBzOi8vd3d3LmdzdGF0aWMuY29tLzBlbW4vZi9wL3B1Yi0yNTc1Nzg4NjkwNzk4MjgyLmpzP3VzcXBcdTAwM2RDQkEiXSwiaHR0cHM6Ly9mdW5kaW5nY2hvaWNlc21lc3NhZ2VzLmdvb2dsZS5jb20vZWwvQUdTS1d4V1hNUEJXZjVaNURyT1VGdDZwVVR5eGh1YzBFNlVGQnJJZUhuUUNCMVlUOWVtYlJTbGxYQ3F6NDV5ODdqT3RVWC1SX3JkcmdudFdjejdtazA2WkZYWDQyd1x1MDAzZFx1MDAzZCJd"); </script> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>One Bullet at a Time - TV Tropes</title> <meta name="description" content="The One Bullet at a Time trope as used in popular culture. Guns in some games (space shooters especially) have a wildly fluctuating reload rate that &hellip;" /> <link rel="canonical" href="https://tvtropes.org/pmwiki/pmwiki.php/Main/OneBulletAtATime" /> <link rel="shortcut icon" href="https://assets.tvtropes.org/img/icons/favicon.ico" type="image/x-icon" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:site" content="@tvtropes" /> <meta name="twitter:owner" content="@tvtropes" /> <meta name="twitter:title" content="One Bullet at a Time - TV Tropes" /> <meta name="twitter:description" content="The One Bullet at a Time trope as used in popular culture. Guns in some games (space shooters especially) have a wildly fluctuating reload rate that &hellip;" /> <meta name="twitter:image:src" content="https://static.tvtropes.org/pmwiki/pub/images/logo_light.png" /> <meta property="og:site_name" content="TV Tropes" /> <meta property="og:locale" content="en_US" /> <meta property="article:publisher" content="https://www.facebook.com/tvtropes" /> <meta property="og:title" content="One Bullet at a Time - TV Tropes" /> <meta property="og:type" content="website" /> <meta property="og:url" content="https://tvtropes.org/pmwiki/pmwiki.php/Main/OneBulletAtATime" /> <meta property="og:image" content="https://static.tvtropes.org/pmwiki/pub/images/logo_light.png" /> <meta property="og:description" content="Guns in some games (space shooters especially) have a wildly fluctuating reload rate that suspiciously appears to be tied to the number of its bullets that are still on the screen. As soon as the bullet hits a wall or enemy (without ricocheting &hellip;" /> <meta name="robots" content="max-image-preview:large"> <link rel="apple-touch-icon" sizes="57x57" href="https://assets.tvtropes.org/img/icons/apple-icon-57x57.png" type="image/png"> <link rel="apple-touch-icon" sizes="60x60" href="https://assets.tvtropes.org/img/icons/apple-icon-60x60.png" type="image/png"> <link rel="apple-touch-icon" sizes="72x72" href="https://assets.tvtropes.org/img/icons/apple-icon-72x72.png" type="image/png"> <link rel="apple-touch-icon" sizes="76x76" href="https://assets.tvtropes.org/img/icons/apple-icon-76x76.png" type="image/png"> <link rel="apple-touch-icon" sizes="114x114" href="https://assets.tvtropes.org/img/icons/apple-icon-114x114.png" type="image/png"> <link rel="apple-touch-icon" sizes="120x120" href="https://assets.tvtropes.org/img/icons/apple-icon-120x120.png" type="image/png"> <link rel="apple-touch-icon" sizes="144x144" href="https://assets.tvtropes.org/img/icons/apple-icon-144x144.png" type="image/png"> <link rel="apple-touch-icon" sizes="152x152" href="https://assets.tvtropes.org/img/icons/apple-icon-152x152.png" type="image/png"> <link rel="apple-touch-icon" sizes="180x180" href="https://assets.tvtropes.org/img/icons/apple-icon-180x180.png" type="image/png"> <link rel="icon" sizes="16x16" href="https://assets.tvtropes.org/img/icons/favicon-16x16.png" type="image/png"> <link rel="icon" sizes="32x32" href="https://assets.tvtropes.org/img/icons/favicon-32x32.png" type="image/png"> <link rel="icon" sizes="96x96" href="https://assets.tvtropes.org/img/icons/favicon-96x96.png" type="image/png"> <link rel="icon" sizes="192x192" href="https://assets.tvtropes.org/img/icons/favicon-192x192.png" type="image/png"> <meta id="viewport" name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"> <link rel="stylesheet" href="https://assets.tvtropes.org/design/assets/bundle.css?rev=a1fdc3097a55e179219cd1bf535ab41b48dc60da" /> <script type="text/javascript"> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-3821842-1', 'auto'); ga('send', 'pageview'); </script> <script> !function(f,b,e,v,n,t,s) {if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)}; if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t,s)}(window, document,'script', 'https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '850567933835915'); fbq('track', 'PageView'); </script> <noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=850567933835915&ev=PageView&noscript=1" /></noscript> <script> !function(w,d){if(!w.rdt){var p=w.rdt=function(){p.sendEvent?p.sendEvent.apply(p,arguments):p.callQueue.push(arguments)};p.callQueue=[];var t=d.createElement("script");t.src="https://www.redditstatic.com/ads/pixel.js",t.async=!0;var s=d.getElementsByTagName("script")[0];s.parentNode.insertBefore(t,s)}}(window,document); rdt('init','a2_fksv8rryv493'); rdt('track', 'PageVisit'); </script> </head> <body class=""> <i id="user-prefs"></i> <script>updateUserPrefs();</script> <div id="fb-root"></div> <div id="modal-box"> <div class="modal-loading-graphic"></div> </div> <style> @keyframes rotate-forever { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } #modal-box > .modal-loading-graphic { display: none; /* Hidden by default */ background: no-repeat center url('/images/loading-graphic.png'); background-size: 80px 80px; width: 80px; height: 80px; border-radius: 50%; position: absolute; top: calc(30% - 40px); left: calc(50% - 40px); z-index: 2; animation: rotate-forever 0.34s linear infinite; } #modal-box.active > .modal-loading-graphic { display: block; /* Show only when modal is active */ } </style> <header id="main-header-bar" class="headroom-element "> <div id="main-header-bar-inner"> <span id="header-spacer-left" class="header-spacer"></span> <a href="#mobile-menu" id="main-mobile-toggle" class="mobile-menu-toggle-button tablet-on"><span></span><span></span><span></span></a> <a href="/" id="main-header-logoButton" class="no-dev"></a> <span id="header-spacer-right" class="header-spacer"></span> <nav id="main-header-nav" class="tablet-off"> <a href="/pmwiki/pmwiki.php/Main/Tropes">Tropes</a> <a href="/pmwiki/pmwiki.php/Main/Media">Media</a> <a href="/pmwiki/browse.php" class="nav-browse">Browse</a> <a href="/pmwiki/popular-pages.php">Popular</a> <a href="/pmwiki/topics.php">Forums</a> <a href="/pmwiki/recent_videos.php" class="nav-browse">Videos</a> </nav> <div id="main-header-bar-right"> <div id="signup-login-box" class="font-xs mobile-off"> <a href="#" class="hover-underline bold" data-modal-target="signup">Join</a> <a href="#" class="hover-underline bold" data-modal-target="login">Login</a> </div> <div id="signup-login-mobileToggle" class="mobile-on inline"> <a href="#" data-modal-target="login"><i class="fa fa-user"></i></a> </div> <div id="search-box"> <form class="search" action="/pmwiki/search_result.php"> <input type="text" name="q" class="search-box" placeholder="Search" value="" required> <input type="submit" class="submit-button" value="&#xf002;" /> <input type="hidden" name="search_type" value="article"> <input type="hidden" name="page_type" value="all"> <input type="hidden" name="cx" value="partner-pub-6610802604051523:amzitfn8e7v"> <input type="hidden" name="cof" value="FORID:10"> <input type="hidden" name="ie" value="ISO-8859-1"> <input name="siteurl" type="hidden" value=""> <input name="ref" type="hidden" value=""> <input name="ss" type="hidden" value=""> </form> <a href="#close-search" class="mobile-on mobile-search-toggle close-x"><i class="fa fa-close"></i></a> </div> <div id="random-box"> <a href="/pmwiki/pmwiki.php/Main/ChasedByAngryNatives" class="button-random-trope" rel="nofollow" onclick="gtag('event', 'trope_random_button_click', {'is_user': 0});"></a> <a href="/pmwiki/pmwiki.php/Creator/DixieCarter" class="button-random-media" rel="nofollow" onclick="gtag('event', 'media_random_button_click', {'is_user': 0});"></a> </div> </div> </div> <div id="mobile-menu" class="tablet-on"><div class="mobile-menu-options"> <div class="nav-wrapper"> <a href="/pmwiki/pmwiki.php/Main/Tropes" class="xl">Tropes</a> <a href="/pmwiki/pmwiki.php/Main/Media" class="xl">Media</a> <a href="/pmwiki/browse.php" class="xl">Browse</a> <a href="/pmwiki/popular-pages.php" class="xl">Popular</a> <a href="/pmwiki/index_report.php" class="xl">Indexes</a> <a href="/pmwiki/topics.php" class="xl">Forums</a> <a href="/pmwiki/recent_videos.php" class="xl">Videos</a> <a href="/pmwiki/query.php?type=att">Ask The Tropers</a> <a href="/pmwiki/query.php?type=tf">Trope Finder</a> <a href="/pmwiki/query.php?type=ykts">Media Finder</a> <a href="/pmwiki/tlp_activity.php">Trope Launch Pad</a> <a href="/pmwiki/query.php?type=wl">Tech Wishlist</a> <a href="/pmwiki/review_activity.php">Reviews</a> <a href="#tools" data-click-toggle="active">Tools <i class="fa fa-chevron-down"></i></a> <div class="tools-dropdown mobile-dropdown-linkList"> <a href="/pmwiki/cutlist.php" data-modal-target="login" rel="nofollow">Cut List</a> <a href="/pmwiki/image-fixer.php" data-modal-target="login" rel="nofollow">Image Fixer</a> <a href="/pmwiki/changes.php">New Edits</a> <a href="/pmwiki/articles_new.php">New Articles</a> <a href="/pmwiki/recent_edit_reasons.php">Edit Reasons</a> <a href="/pmwiki/launches.php" data-modal-target="login" rel="nofollow">Launches</a> <a href="/pmwiki/img_list.php" data-modal-target="login" rel="nofollow">Images List</a> <a href="/pmwiki/crown_activity.php">Crowner Activity</a> <a href="/pmwiki/no_types.php">Un-typed Pages</a> <a href="/pmwiki/page_type_audit.php">Recent Page Type Changes</a> <a href="/pmwiki/changelog.php">Changelog</a> </div> <a href="#tips" data-click-toggle="active">Tips <i class="fa fa-chevron-down"></i></a> <div class="tips-dropdown mobile-dropdown-linkList"> <a href="/pmwiki/pmwiki.php/Administrivia/CreatingNewRedirects">Creating New Redirects</a> <a href="/pmwiki/pmwiki.php/Administrivia/Crosswicking">Cross Wicking</a> <a href="/pmwiki/pmwiki.php/Administrivia/TipsForEditing">Tips for Editing</a> <a href="/pmwiki/pmwiki.php/Administrivia/TextFormattingRules">Text Formatting Rules</a> <a href="/pmwiki/pmwiki.php/Administrivia/TVTropesGlossary?from=Main.TVTropesGlossary">Glossary</a> <a href="/pmwiki/pmwiki.php/Administrivia/EditReasonsAndWhyYouShouldUseThem">Edit Reasons</a> <a href="/pmwiki/pmwiki.php/Administrivia/HandlingSpoilers">Handling Spoilers</a> <a href="/pmwiki/pmwiki.php/Administrivia/WordCruft">Word Cruft</a> <a href="/pmwiki/pmwiki.php/Main/Administrivia">Administrivia</a> <a href="/pmwiki/pmwiki.php/Main/FAQ">FAQ</a> </div> <a href="#hq" data-click-toggle="active">Tropes HQ <i class="fa fa-chevron-down"></i></a> <div class="tools-dropdown mobile-dropdown-linkList"> <a href="/pmwiki/about.php">About Us</a> <a href="/pmwiki/contact.php">Contact Us</a> <a href="/pmwiki/dmca.php">DMCA Notice</a> <a href="/pmwiki/privacypolicy.php">Privacy Policy</a> <a href="/pmwiki/query.php?type=bug">Report Bug</a> </div> <a href="/pmwiki/ad-free-subscribe.php">Go Ad-Free</a> <a href="/pmwiki/changelog.php">Changelog</a></li> <div class="toggle-switches"> <ul class="mobile-menu display-toggles"> <li>Show Spoilers <div id="mobile-toggle-showspoilers" class="display-toggle show-spoilers"></div></li> <li>Night Vision <div id="mobile-toggle-nightvision" class="display-toggle night-vision"></div></li> <li>Sticky Header <div id="mobile-toggle-stickyheader" class="display-toggle sticky-header"></div></li> <li>Highlight Links <div id="mobile-toggle-highlightlinks" class="display-toggle highlight-links"></div></li> </ul> <script>updateMobilePrefs();</script> </div> </div> </div> </div> </header> <div id="homepage-introBox-mobile" class="mobile-on"> <a href="/"><img src="/images/logo-white-big.png" class="logo-small" /></a> <form class="search" action="/pmwiki/search_result.php" style="margin:10px -5px -6px -5px;"> <input type="text" name="q" class="search-box" placeholder="Search" value="" required> <input type="submit" class="submit-button" value="&#xf002;" /> <input type="hidden" name="search_type" value="article"> <input type="hidden" name="page_type" value="all"> <input type="hidden" name="cx" value="partner-pub-6610802604051523:amzitfn8e7v"> <input type="hidden" name="cof" value="FORID:10"> <input type="hidden" name="ie" value="ISO-8859-1"> <input name="siteurl" type="hidden" value=""> <input name="ref" type="hidden" value=""> <input name="ss" type="hidden" value=""> </form> </div> <script> // Get device type function get_device_type(){ var ua = navigator.userAgent.toLowerCase(); var device_type = ""; // This is usually "tablet", but for this case we are going to call it mobile if(/(ipad|tablet|(android(?!.*mobile))|(windows(?!.*phone)(.*touch))|kindle|playbook|silk|(puffin(?!.*(IP|AP|WP))))/.test(ua)) device_type = "mobile"; // This is mobile else if(/(mobi|ipod|phone|blackberry|opera mini|fennec|minimo|symbian|psp|nintendo ds|archos|skyfire|puffin|blazer|bolt|gobrowser|iris|maemo|semc|teashark|uzard)/.test(ua)) device_type = "mobile"; // Otherwise desktop else device_type = "desktop"; return device_type; } var show_modal_loaded = false; //// MOBILE MENU TOGGLE FUNCTIONS //// function show_modal(type, message, confirmation_url, call_back, oauth_finalize, groupname, title, video_id) { console.log("showing modal " + type); const modalBox = document.getElementById('modal-box'); const childDivs = modalBox.querySelectorAll(':scope > div'); // Check if there are more than one child divs in the modal box, indicating a modal is already there if (childDivs.length > 1) { kill_modal(); } // Show the modal and the loading graphic modalBox.classList.add('active'); let alert = ''; if (typeof message === 'object' && message !== null) { Object.keys(message).forEach(function(key) { alert += '&' + key + '=' + encodeURIComponent(message[key]); }); } else { alert = '&message=' + encodeURIComponent(message); } // Construct the URL with parameters const url = '/design/parts/component-modalBox.php?window=' + type + alert + (confirmation_url ? '&curl=' + encodeURIComponent(confirmation_url) : "") + (oauth_finalize ? '&oauth_finalize=' + encodeURIComponent(oauth_finalize) : "") + (groupname ? '&groupname=' + groupname : "") + (video_id ? '&video_id=' + encodeURIComponent(video_id) : ""); fetch(url) .then(response => response.text()) .then(html => { modalBox.innerHTML = html; // Find and execute scripts const scripts = modalBox.querySelectorAll('script'); scripts.forEach(script => { const newScript = document.createElement('script'); newScript.type = 'text/javascript'; if (script.src) { newScript.src = script.src; // Wait for Dropzone.js to load before adding the imguploader.js if(newScript.src.includes('/design/js/dropzone.js')) { newScript.onload = function() { // Now load the imguploader.js script const img_uploader_script = document.createElement('script'); img_uploader_script.type = 'text/javascript'; img_uploader_script.src = "/design/js/imguploader.js"; img_uploader_script.onload = function (){ myAwesomeDropzone = new Dropzone("#myAwesomeDropzone", { url: "/ajax/uploadImg.php" }); } document.body.appendChild(img_uploader_script); } } } else { newScript.textContent = script.textContent; } // Remove the old script and add the new one script.parentNode.removeChild(script); modalBox.appendChild(newScript); }); if(call_back) { call_back(); } }); if(show_modal_loaded == false){ // Kill modal if blackout is clicked modalBox.addEventListener('click', function(e) { if (e.target === e.currentTarget) { kill_modal(); } }); } show_modal_loaded = true; } // Modal kill function function kill_modal() { console.log("killing modal"); const modalBox = document.getElementById('modal-box'); modalBox.classList.remove('active'); // Replace the content directly with the new loading graphic modalBox.innerHTML = '<div class="modal-loading-graphic"></div>'; } // Modal "loading" mode, without killing function pause_modal() { var modal = document.querySelector('#modal-box > div.modal'); if(!modal) modal = document.querySelector('#modal-box'); modal.classList.add('hidden'); const modalBox = document.getElementById('modal-box'); modalBox.classList.add('paused'); const loadingGraphic = document.createElement('div'); loadingGraphic.className = 'modal-loading-graphic'; modalBox.appendChild(loadingGraphic); } function unpause_modal() { const modalBox = document.getElementById('modal-box'); modalBox.classList.remove('paused'); var modal = document.querySelector('#modal-box > div.modal'); if(!modal) modal = document.querySelector('#modal-box'); modal.classList.remove('hidden'); const loadingGraphic = document.querySelector('#modal-box > div.modal-loading-graphic'); if (loadingGraphic) { modalBox.removeChild(loadingGraphic); } } // COMPONENT: LOAD GRAPHIC function show_loader() { console.log("Displaying loading graphic"); kill_modal(); const modalBox = document.getElementById('modal-box'); modalBox.classList.add('active'); const loadingGraphic = document.createElement('div'); loadingGraphic.className = 'modal-loading-graphic'; modalBox.appendChild(loadingGraphic); } // TOGGLE NOTES function togglenote(id){ var ele=object(id); var state = ele.style.display; if(state=='none') ele.style.display='inline'; if(state=='inline')ele.style.display='none'; } // Toggle more menu function toggle_more_menu(position){ var more_menu = document.getElementById(position+"_more_list"); more_menu.classList.toggle("hidden_more_list"); more_menu.classList.toggle("display"); var menu_button = document.getElementById(position+"_more_button"); menu_button.classList.toggle("is-open"); } // scroll to top of page function scroll_to_top(duration) { var start = window.pageYOffset; var start_time = performance.now(); if ('requestAnimationFrame' in window === false) { window.scrollTo(0, 0); return; } function scroll() { var current_time = performance.now(); var elapsed_time = current_time - start_time; var progress = elapsed_time / duration; var ease_in_out_quad = progress < 0.5 ? 2 * progress * progress : -1 + (4 - 2 * progress) * progress; window.scrollTo(0, start * (1 - ease_in_out_quad)); if (elapsed_time < duration) { requestAnimationFrame(scroll); } else { window.scrollTo(0, 0); } } scroll(); } // FOLDER BUTTONS (unused) - declared to prevent console errors. function toggleAllFolders() {} function togglefolder(id) {} var device_type = get_device_type(); const mobile_menu_button = document.querySelector('.mobile-menu-toggle-button'); if (mobile_menu_button) { mobile_menu_button.addEventListener('click', function(e) { e.preventDefault(); const header = document.querySelector('header#main-header-bar'); if (header.classList.contains('mobile-menu-active')) { header.classList.remove('mobile-menu-active'); } else { header.classList.add('mobile-menu-active'); } }); } // tracking height for multiple folders to insert ads var global_pHeight = 0; // MODAL - FOLDER - SPOILER BUTTONS document.body.addEventListener('click', function(e) { // WATCH / FOLLOW BUTTONS const target = e.target.closest('.watch-button'); const loggedInElement = document.getElementById('logged_in'); const loggedIn = loggedInElement ? loggedInElement.value : null; //special code for the desktop-on-mobile-toggle cookie link if (e.target.closest('#desktop-on-mobile-toggle > a')) { e.preventDefault(); var body_class = "desktop-on-mobile"; var userPrefs = document.getElementById('user-prefs'); if (userPrefs.classList.contains(body_class)) { cookies.remove(body_class); } else { cookies.create(body_class, 'true', 300, '/'); } location.reload(); } // Display toggle buttons for user preferences if (e.target.closest('.display-toggles > li')) { var toggle = e.target; if(toggle.tagName.toLowerCase() === 'li') toggle = toggle.children[0]; var body_class = ''; var pref = ''; var val = 0; // SIDEBAR AND MOBILE MENU OPTIONS if (toggle.classList.contains('wide-load')) { body_class = "wide-load"; } else if (toggle.classList.contains('sticky-header')) { body_class = "sticky-header"; } else if (toggle.classList.contains('night-vision')) { body_class = "night-vision"; } else if (toggle.classList.contains('show-spoilers')) { body_class = "show-spoilers"; } else if (toggle.classList.contains('tvtropes-editor-on')) { body_class = "tvtropes-editor-on"; } // PROFILE PAGE OPTIONS else if (toggle.classList.contains('folders-open')) { body_class = "folders-open"; } else if (toggle.classList.contains('wysiwyg-toggle')) { body_class = "wysiwyg-toggle"; } else if (toggle.classList.contains('mono-font')) { body_class = "mono-font"; } else if (toggle.classList.contains('lefthand-sidebar')) { body_class = "lefthand-sidebar"; } else if (toggle.classList.contains('highlight-links')) { body_class = "highlight-links"; } else if (toggle.classList.contains('forum-gingerbread')) { body_class = "forum-gingerbread"; } else if (toggle.classList.contains('shared-avatars')) { body_class = "shared-avatars"; pref = 'accept_share'; val = toggle.classList.contains('active') ? 0 : 1; } else if (toggle.classList.contains('new-search')) { body_class = "new-search"; pref = 'new_search'; val = toggle.classList.contains('active') ? 0 : 1; } else if (toggle.classList.contains('stop-auto-play-video')) { body_class = "stop-auto-play-video"; pref = 'stop_auto_play_video'; val = toggle.classList.contains('active') ? 0 : 1; } else if (toggle.classList.contains('notification-pm')) { body_class = 'notification-pm'; pref = 'toggle_notification_pm'; val = toggle.classList.contains('active') ? 0 : 1; } else if (toggle.classList.contains('notification-video')) { body_class = 'notification-video'; pref = 'toggle_notification_video'; val = toggle.classList.contains('active') ? 0 : 1; } else if (toggle.classList.contains('notification-query')) { body_class = 'notification-query'; pref = 'toggle_notification_query'; val = toggle.classList.contains('active') ? 0 : 1; } if (pref === 'accept_share' || pref === 'new_search' || pref === 'stop_auto_play_video' || pref === 'toggle_notification_query' || pref === 'toggle_notification_pm' || pref === 'toggle_notification_video') { if (pref === 'new_search' && document.querySelector('#new-search-toggle')) show_loader(); fetch('/ajax/toggle_user_prefs.php', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', }, body: 'pref=' + encodeURIComponent(pref) + '&value=' + encodeURIComponent(val) }) .then(response => response.json()) .then(json => { if (pref === 'new_search') { const newSearchToggle = document.querySelector('#new-search-toggle'); const searchInput = document.getElementById('srch-term').value; const pageType = document.getElementsByName('page_type')[0].value; if (newSearchToggle && newSearchToggle.classList.contains('active')) { kill_modal(); window.location.href = '/pmwiki/elastic_search_result.php?new_search=true&q=' + encodeURIComponent(searchInput) + '&page_type=' + encodeURIComponent(pageType); } else if (newSearchToggle) { kill_modal(); window.location.href = '/pmwiki/search_result.php?new_search=false&q=' + encodeURIComponent(searchInput); } } }) .catch(error => { console.error('Error:', error); }); document.querySelector('form.search').addEventListener('submit', function(e) { if (cookies.read('new-search') === 'true') { e.preventDefault(); this.setAttribute('action', "/pmwiki/elastic_search_result.php"); } }); } // Toggle 'active' class based on body_class var displayToggles = document.querySelectorAll('.display-toggle.' + body_class); displayToggles.forEach(item_to_toggle => { item_to_toggle.classList.toggle('active'); }); var userPrefs = document.getElementById('user-prefs'); userPrefs.classList.toggle(body_class); console.log('BODY CLASS:',body_class); if (userPrefs.classList.contains(body_class)) { cookies.create(body_class, 'true', 300, '/'); } else { cookies.remove(body_class); // Specific logic for 'show-spoilers' class if (body_class === "show-spoilers") { document.querySelectorAll('.spoiler').forEach(spoiler => { spoiler.classList.remove('off'); }); } } } if (target && loggedIn !== null) { e.preventDefault(); if (loggedIn === 'true') { target.classList.add('processing'); } // Article if (target.getAttribute('data-watch-info')) { var data = target.dataset.watchInfo.split(','); if (!data.length) return; var addOrDrop = target.classList.contains('watching') || target.parentElement.classList.contains('watching') ? 'drop' : 'add'; handleWatchItem(addOrDrop, data[0], data[1], target); // Discussion page } else if (target.getAttribute('data-watch-discussion-info')) { var data = target.dataset.watchDiscussionInfo.split(','); if (!data.length) return; var addOrDrop = target.classList.contains('watching') || target.parentElement.classList.contains('watching') ? 'drop' : 'add'; var pageType = 'Discussion'; handleWatchItem(addOrDrop, data[0], data[1], target, pageType); // Forum thread } else if (target.getAttribute('data-watch-thread-id')) { var threadId = target.getAttribute('data-watch-thread-id'); var url = target.classList.contains('watching') || target.parentElement.classList.contains('watching') ? '/pmwiki/thread_watch_drop.php?thread=' : '/pmwiki/setthreadwatch.php?d_id='; url += threadId; handleWatchThread(url, target); } } // Check for kill modal button click if (e.target.classList.contains('kill-modal-button')) { e.preventDefault(); kill_modal(); } // Check for data-click-toggle without data-click-toggle-target const targetWithoutToggleTarget = e.target.closest('*[data-click-toggle]:not([data-click-toggle-target])'); if (targetWithoutToggleTarget) { e.preventDefault(); const toggleClass = targetWithoutToggleTarget.getAttribute('data-click-toggle'); targetWithoutToggleTarget.classList.toggle(toggleClass); } // Check for data-click-toggle with data-click-toggle-target const targetWithToggleTarget = e.target.closest('*[data-click-toggle][data-click-toggle-target]:not(#signup-form-toggles a)'); if (targetWithToggleTarget) { e.preventDefault(); // Check if the target contains fetch_articles in the onclick attribute const hasFetchArticles = targetWithToggleTarget.getAttribute('onclick') && targetWithToggleTarget.getAttribute('onclick').includes('fetch_articles'); // If fetch_articles is not in the onclick attribute, stop propagation if (!hasFetchArticles) { e.stopPropagation(); } const toggleTargetId = targetWithToggleTarget.getAttribute('data-click-toggle-target'); const toggleClass = targetWithToggleTarget.getAttribute('data-click-toggle'); const isExclusive = targetWithToggleTarget.getAttribute('data-click-toggle-exclusive') === 'true'; if (isExclusive) { // Exclusive mode: toggle target and clear siblings const toggleTarget = document.getElementById(toggleTargetId); if (toggleTarget) { // Remove the toggle class from all siblings const siblings = Array.from(toggleTarget.parentNode.children); for (let sibling of siblings) { if (sibling !== toggleTarget) { sibling.classList.remove(toggleClass); } } // Add the toggle class to the target element toggleTarget.classList.add(toggleClass); } } else { // Non-exclusive mode: toggle targets normally if (toggleTargetId.indexOf(',') > -1) { const targets = toggleTargetId.split(","); targets.forEach(t => { document.querySelectorAll('#' + t).forEach(el => { el.classList.toggle(toggleClass); }); }); } else { document.querySelectorAll('#' + toggleTargetId).forEach(el => { el.classList.toggle(toggleClass); }); } } } // initiate all modals const modalTarget = e.target.closest('*[data-modal-target]'); if(modalTarget) { if (!modalTarget) { return; // Skip, if no target found with the specified attribute } // Get modal details let modal = modalTarget.getAttribute('data-modal-target'); let msg = modalTarget.getAttribute('data-modal-vars') ? modalTarget.getAttribute('data-modal-vars') : modalTarget.getAttribute('data-modal-confirmation-message'); let url = modalTarget.getAttribute('data-modal-confirmation-url'); // convert to json if possible try { var obj = JSON.parse(msg); if (obj && typeof obj === "object") { msg = obj; } } catch (e) { } // Skip modal and go straight to the link if (modal === "allow") return; // Don't allow link since we are showing a modal instead e.preventDefault(); // Add support for alert tags if (modal.substring(0, 6) === "alert-") { // Message array const msgArr = { "alert-banned": "Your permissions for this area have been suspended. Please visit <a href='/pmwiki/pmwiki.php/Administrivia/WhatToDoIfYouAreSuspended'>this page</a> for more details.", "alert-bounced": "This account has committed severe or repeated violations of our rules and is permanently denied access to many of the account features of the site. If you feel that this may be an error, please <a href=\"/pmwiki/contact.php\">contact the mods</a>.", "alert-denied": "Your account was denied by a moderator. If you believe this was done in error please <a href=\"/pmwiki/contact.php\">contact the mods</a>.", "alert-verify": "You must verify your email address before doing this. Check your email for a link.", "alert-approval": "Your account must be approved by a moderator before you can do this. If you still have this problem in a couple hours try <a href=\"/pmwiki/contact.php\">contacting the mods</a>.", "alert-age": "Your account is not old enough. Give it a little more time.", "alert-mod": "This page is only for moderators. Try something else.", "alert-db": "We are currently updating our database systems to UTF-8MB4. Please try again in 10-12 hours." }; if (modal in msgArr) { msg = msgArr[modal]; } else { msg = "Unknown error. Please <a href=\"/pmwiki/contact.php\">Contact us</a> if the problem persists."; } modal = "alert"; } // Bring up modal now show_modal(modal, msg, url); } // SPOILERS const spoilers = e.target.closest('.spoiler'); if (spoilers) { spoilers.classList.toggle('off'); } // OPEN INDIVIDUAL FOLDERS const folders = e.target.closest('.folderlabel'); if (folders && e.target.getAttribute('onclick') !== "toggleAllFolders();") { e.preventDefault(); folders.classList.toggle('is-open'); let folder = folders.nextElementSibling; if (folders.classList.contains('is-open')) { gtag('event', 'folder_click', {'device_type': device_type}); } if (folder && folders.classList.contains('is-open') && live_ads == 1 && (document.body.clientWidth && document.body.clientWidth<=768) && tvtropes_config.universal_page_type == 'Article') { if (folder.querySelectorAll('.tvtropes-ad-unit').length === 0) { global_pHeight = insert_ads_in_content(folder, globalAdInsertionCount, global_pHeight); } } } // OPEN ALL FOLDERS const allFolders = e.target.closest('div[onclick*="toggleAllFolders()"]'); if (allFolders) { let parentElement = allFolders.parentNode; // If the button is inside an H2, select the parent div of it if (parentElement.tagName === 'H2') parentElement = parentElement.parentNode; let isCurrentlyOpen = e.target.classList.contains('is-open'); // Select only folder labels that are inside the same parent div as the clicked button let foldersAndButtons = parentElement.querySelectorAll('.folderlabel, .toggle-all-folders-button'); foldersAndButtons.forEach(function(element) { if (isCurrentlyOpen) { element.classList.remove('is-open'); } else { element.classList.add('is-open'); } }); if (!isCurrentlyOpen) { gtag('event', 'all_folders_click', {'device_type': device_type}); // Also target only .folder elements within the same parent div parentElement.querySelectorAll('.folder').forEach(function(folder) { if (!folder.querySelector('.tvtropes-ad-unit') && live_ads == 1 && (document.body.clientWidth && document.body.clientWidth<=768) && tvtropes_config.universal_page_type == 'Article') { global_pHeight = insert_ads_in_content(folder, globalAdInsertionCount, global_pHeight); } }); } } }, true); // Add/remove watched article var handleWatchItem = function(addOrDrop, groupname, title, obj, pageType = '') { fetch("/ajax/watchlist.php", { method: "POST", headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }, body: `groupname=${encodeURIComponent(groupname)}&title=${encodeURIComponent(title)}&type=${encodeURIComponent(addOrDrop)}&json=1&pageType=${encodeURIComponent(pageType)}` }) .then(response => response.json()) .then(data => { obj.classList.remove('processing'); if (obj.classList.contains('tile-watch-button')) { obj.parentNode.classList.toggle('watching'); } else { obj.classList.toggle('watching'); } }) .catch(error => { obj.classList.remove('processing'); show_modal('alert-red', 'Whoops, something went wrong. Please try adding again.'); }); } // add/remove watched forum thread var handleWatchThread = function(url, obj) { fetch(url) .then(response => response.text()) // assuming the server responds with plain text .then(data => { obj.classList.remove('processing'); if (obj.classList.contains('tile-watch-button')) { obj.parentNode.classList.toggle('watching'); } else { obj.classList.toggle('watching'); } }) .catch(error => { obj.classList.remove('processing'); show_modal('alert-red', 'Whoops, something went wrong. Please try adding again.'); }); } </script> <script> if(is_mobile()) { document.write("<div class=\"htlad-tvtropes_m_sticky\"></div>"); } else { document.write("<div class=\"htlad-tvtropes_dt_sticky\"></div>"); } </script> <div id="tvtropes_oop_ad_slot" style="display: none;"></div> <div id="top_container_spacing"></div> <div id="main-container"> <div id="action-bar-top" class="action-bar mobile-off"> <div class="action-bar-right"> <p>Follow TV Tropes</p> <a href="https://www.facebook.com/TVTropes" class="button-fb"> <i class="fa fa-facebook"></i></a> <a href="https://www.twitter.com/TVTropes" class="button-tw"> <i class="fa fa-twitter"></i></a> </div> <nav class="actions-wrapper" itemscope itemtype="http://schema.org/SiteNavigationElement"> <ul id="top_main_list" class="page-actions"> <li class="link-edit"> <a rel = "nofollow" class = "article-edit-button"data-modal-target= "login"href = "/pmwiki/pmwiki.php/Main/OneBulletAtATime?action=edit"> <i class="fa fa-pencil"></i> Edit Page</a></li><li class="link-related"><a href="/pmwiki/relatedsearch.php?term=Main/OneBulletAtATime"> <i class="fa fa-share-alt"></i> Related</a></li><li class="link-history"><a href="/pmwiki/article_history.php?article=Main.OneBulletAtATime" data-modal-target="login" rel="nofollow"> <i class="fa fa-history"></i> History</a></li><li class="link-discussion"><a href="/pmwiki/remarks.php?trope=Main.OneBulletAtATime" data-modal-target="login" rel="nofollow"> <i class="fa fa-comment"></i> Discussion</a></li><li class="link-todo tuck-always"><a href="#todo" data-modal-target="login" rel="nofollow"><i class="fa fa-check-circle"></i> To Do</a></li> </ul> <button id="top_more_button" onclick="toggle_more_menu('top');" type="button" class="nav__dropdown-toggle">More</button> <ul id="top_more_list" class="more_menu hidden_more_list"> <li class="link-pageSource tuck-always more_list_item"><a href="/pmwiki/pmwiki.php/Main/OneBulletAtATime?action=source" target="_blank" rel="nofollow"data-modal-target= "login"><i class="fa fa-code"></i> Page Source</a></li> </ul> </nav> <div class="WikiWordModalStub"></div> <div class="ImgUploadModalStub" data-page-type="Article"></div> <div class="login-alert" style="display: none;"> You need to <a href="/pmwiki/login.php" style="color:#21A0E8">login</a> to do this. <a href="/pmwiki/login.php?tab=register_account" style="color:#21A0E8">Get Known</a> if you don't have an account </div> </div> <div id="main-content" class="page-Article "> <article id="main-entry" class="with-sidebar"> <!-- HIDDEN INPUTS FOR JS --> <input type="hidden" id="groupname-hidden" value="Main"/> <input type="hidden" id="title-hidden" value="OneBulletAtATime"/> <input type="hidden" id="article_id" value="39295" /> <input type="hidden" id="logged_in" value="false" /> <p id="current_url" class="hidden">http://tvtropes.org/pmwiki/pmwiki.php/Main/OneBulletAtATime</p> <meta itemprop="datePublished" content=""/> <meta itemprop="articleSection" content="" /> <meta itemprop="image" content=""> <div class="watch_rank_wrap"> <a href="#watch" class="watch-button " data-modal-target="login" >Follow<span>ing</span></a> </div> <h1 itemprop="headline" class="entry-title"> One Bullet at a Time </h1> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": "TV Tropes", "item": "https://tvtropes.org/" },{ "@type": "ListItem", "position": 2, "name": "Tropes", "item": "https://tvtropes.org/pmwiki/pmwiki.php/Main/Tropes" },{ "@type": "ListItem", "position": 3, "name": "One Bullet at a Time", "item": "https://tvtropes.org/pmwiki/pmwiki.php/Main/OneBulletAtATime" }] } </script> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "name": "One Bullet at a Time", "headline": "One Bullet at a Time", "url": "https://tvtropes.org/pmwiki/pmwiki.php/Main/OneBulletAtATime", "image": "https://static.tvtropes.org/pmwiki/pub/images/logo_light.png", "author": { "@type": "Organization", "name": "Contributors to TV Tropes (aka Tropers)" }, "datePublished": "2009-07-09T00:00:00-07:00", "dateModified": "2025-01-27T17:48:28-08:00" } </script> <a href="#mobile-actions-toggle" id="mobile-actionbar-toggle" class="mobile-actionbar-toggle mobile-on" data-click-toggle="active" > <p class="tiny-off">Go To</p><span></span><span></span><span></span><i class="fa fa-pencil"></i></a> <nav id="mobile-actions-bar" class="mobile-actions-wrapper mobile-on"></nav> <script> //duplicate action bar to the mobile-action-bar holder if (document.getElementById("mobile-actions-bar")) { // Clone the main list var top_main_list = document.getElementById('top_main_list'); var top_main_list_cln = top_main_list.cloneNode(true); // Clone the more list var top_more_list = document.getElementById('top_more_list'); var top_more_list_cln = top_more_list.cloneNode(true); top_more_list_cln.querySelectorAll("li").forEach(function(child){ top_main_list_cln.appendChild(child); }); document.getElementById("mobile-actions-bar").appendChild(top_main_list_cln); } </script> <nav class="body-options" itemscope itemtype="http://schema.org/SiteNavigationElement"> <ul class="subpage-links"> <li> <a href="/pmwiki/pmwiki.php/Main/OneBulletAtATime" class="subpage-link curr-subpage" title="The Main page"> <span class="wrapper"><span class="spi main-page"></span>Main</span></a> </li> <li> <a href="/pmwiki/pmwiki.php/Laconic/OneBulletAtATime" class="subpage-link " title="The Laconic page"> <span class="wrapper"><span class="spi laconic-icon"></span>Laconic</span></a> </li> <li class="create-subpage dropdown"> <a href="javascript:void(0);" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <span class="wrapper">Create Subpage <i class="fa fa-plus-circle"></i></span> </a> <select onchange="this.options[this.selectedIndex].value && (window.location = this.options[this.selectedIndex].value);"> <option value="">- Create New -</option> <option value="/pmwiki/pmwiki.php/Analysis/OneBulletAtATime?action=edit">Analysis</option> <option value="/pmwiki/pmwiki.php/Archive/OneBulletAtATime?action=edit">Archive</option> <option value="/pmwiki/pmwiki.php/Awesome/OneBulletAtATime?action=edit">Awesome</option> <option value="/pmwiki/pmwiki.php/Characters/OneBulletAtATime?action=edit">Characters</option> <option value="/pmwiki/pmwiki.php/DerivativeWorks/OneBulletAtATime?action=edit">DerivativeWork&#8230;</option> <option value="/pmwiki/pmwiki.php/FanWorks/OneBulletAtATime?action=edit">FanWorks</option> <option value="/pmwiki/pmwiki.php/FanficRecs/OneBulletAtATime?action=edit">FanficRecs</option> <option value="/pmwiki/pmwiki.php/Fridge/OneBulletAtATime?action=edit">Fridge</option> <option value="/pmwiki/pmwiki.php/Funny/OneBulletAtATime?action=edit">Funny</option> <option value="/pmwiki/pmwiki.php/Haiku/OneBulletAtATime?action=edit">Haiku</option> <option value="/pmwiki/pmwiki.php/Headscratchers/OneBulletAtATime?action=edit">Headscratchers</option> <option value="/pmwiki/pmwiki.php/Heartwarming/OneBulletAtATime?action=edit">Heartwarming</option> <option value="/pmwiki/pmwiki.php/ImageLinks/OneBulletAtATime?action=edit">ImageLinks</option> <option value="/pmwiki/pmwiki.php/ImageSource/OneBulletAtATime?action=edit">ImageSource</option> <option value="/pmwiki/pmwiki.php/MediaNotes/OneBulletAtATime?action=edit">MediaNotes</option> <option value="/pmwiki/pmwiki.php/Newsletter/OneBulletAtATime?action=edit">Newsletter</option> <option value="/pmwiki/pmwiki.php/NightmareFuel/OneBulletAtATime?action=edit">NightmareFuel</option> <option value="/pmwiki/pmwiki.php/PlayingWith/OneBulletAtATime?action=edit">PlayingWith</option> <option value="/pmwiki/pmwiki.php/QuoteSource/OneBulletAtATime?action=edit">QuoteSource</option> <option value="/pmwiki/pmwiki.php/Quotes/OneBulletAtATime?action=edit">Quotes</option> <option value="/pmwiki/pmwiki.php/Recap/OneBulletAtATime?action=edit">Recap</option> <option value="/pmwiki/pmwiki.php/ReferencedBy/OneBulletAtATime?action=edit">ReferencedBy</option> <option value="/pmwiki/pmwiki.php/Shocking/OneBulletAtATime?action=edit">Shocking</option> <option value="/pmwiki/pmwiki.php/TearJerker/OneBulletAtATime?action=edit">TearJerker</option> <option value="/pmwiki/pmwiki.php/Timeline/OneBulletAtATime?action=edit">Timeline</option> <option value="/pmwiki/pmwiki.php/Trivia/OneBulletAtATime?action=edit">Trivia</option> <option value="/pmwiki/pmwiki.php/WMG/OneBulletAtATime?action=edit">WMG</option> <option value="/pmwiki/pmwiki.php/YMMV/OneBulletAtATime?action=edit">YMMV</option> </select> </li> </ul> </nav> <div id="main-article" class="article-content retro-folders"> <p><div class='indent'><em>"This is your XQJ-37 plasma cannon. The only trouble is that since the old model XQJ was cobbled together from junked <a class='twikilink' href='/pmwiki/pmwiki.php/Platform/Amiga' title='/pmwiki/pmwiki.php/Platform/Amiga' data-format='UGxhdGZvcm0ve3tBbWlnYX19'>Amiga</a> motherboards, you can only have one shot on the screen at a time."</em> <div class='indent'>&#8212; instruction sheet for <em>Apeiron</em> (a shareware <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/Centipede' title='/pmwiki/pmwiki.php/VideoGame/Centipede' data-format='VmlkZW9HYW1lL3t7Q2VudGlwZWRlfX0='>Centipede</a></em> clone by <a class='twikilink' href='/pmwiki/pmwiki.php/Creator/AmbrosiaSoftware' title='/pmwiki/pmwiki.php/Creator/AmbrosiaSoftware' data-format='Q3JlYXRvci9BbWJyb3NpYVNvZnR3YXJl'>Ambrosia Software</a>) </div></div></p><p>Guns in some games (space shooters especially) have a wildly fluctuating reload rate that suspiciously appears to be tied to the number of its bullets that are still on the screen. As soon as the bullet hits a wall or enemy (without ricocheting), or <a class='twikilink' href='/pmwiki/pmwiki.php/Main/BehindTheBlack' title='/pmwiki/pmwiki.php/Main/BehindTheBlack' data-format='W1tCZWhpbmRUaGVCbGFjayBsZWF2ZXMgdGhlIHNjcmVlbl1d'>leaves the screen</a>, another one is free to shoot. </p><p>How is such a thing possible? Perhaps you are armed only with the one bullet, which, much like a yo-yo, immediately returns upon leaving your line of sight. </p><p>More broadly, this is a general phenomenon where only a certain number of X are allowed to be present at one time; after that, you will either be prevented from creating new X, or the old X will start to vanish inexplicably. Typically this is done due to memory limitations. A good example of this is environment damage - you can only have so many bulletholes (for example, in <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/GoldenEye1997' title='/pmwiki/pmwiki.php/VideoGame/GoldenEye1997' data-format='VmlkZW9HYW1lL0dvbGRlbkV5ZTE5OTc='>GoldenEye (1997)</a></em>). Another example is new enemies not spawning until you kill some existing enemies. Bullets are simply the most obvious example, since it's pretty evident to players when a shot they tried to fire doesn't fire. </p><p>(Note: There is a plausible case to be made for a remotely-guided weapon system only being able to control N projectiles at once, such as the real-world Phoenix air-to-air missile deployed on the F-111 and F-14; but the space shooter bullets <em>aren't guided</em>.) </p><p>Most famous examples of this trope are due to the technical limitations of old 8-bit hardware configurations. The <a class='twikilink' href='/pmwiki/pmwiki.php/Platform/Atari2600' title='/pmwiki/pmwiki.php/Platform/Atari2600' data-format='UGxhdGZvcm0ve3tBdGFyaSAyNjAwfX0='>Atari 2600</a>'s specialized hardware for rendering "missile" sprites could only handle two missiles at a time, leading to the two-bullet limit of many 2600 games. Interestingly, the <a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/SpaceWar' title='/pmwiki/pmwiki.php/VideoGame/SpaceWar' data-format='W1tWaWRlb0dhbWUvU3BhY2VXYXIgb2xkZXN0IHZpZGVvIGdhbWVdXQ=='>oldest video game</a> did not have this limit. </p><p>Outside of <a class='twikilink' href='/pmwiki/pmwiki.php/Main/Retraux' title='/pmwiki/pmwiki.php/Main/Retraux' data-format='e3tyZXRyYXV4fX0='>retraux</a> games, it's subjectively <a class='twikilink' href='/pmwiki/pmwiki.php/Main/DiscreditedTrope' title='/pmwiki/pmwiki.php/Main/DiscreditedTrope' data-format='W1tEaXNjcmVkaXRlZFRyb3BlIGRpc2NyZWRpdGVkXV0='>discredited</a> at this point; the replacement is a firing rate, which prevents this from becoming an issue beyond a limited scope.<span class="notelabel" onclick="togglenote('note0m2c9');"><sup>note&nbsp;</sup></span><span id="note0m2c9" class="inlinefolder" isnote="true" onclick="togglenote('note0m2c9');" style="cursor:pointer;font-size:smaller;display:none;">There is still a technical limit, but as long as it's higher than what the firing rate will allow, it's invisible.</span> The <a class='twikilink' href='/pmwiki/pmwiki.php/Administrivia/TropesAreTools' title='/pmwiki/pmwiki.php/Administrivia/TropesAreTools' data-format='W1tBZG1pbmlzdHJpdmlhL1Ryb3Blc0FyZVRvb2xzIHVwc2lkZV1d'>upside</a> to this trope is that it can encourage players to get closer to enemies to do more damage, creating a risk\reward balance, or to prevent a certain tactic from being used exclusively. </p><p>Made possible by the <a class='twikilink' href='/pmwiki/pmwiki.php/Main/PainfullySlowProjectile' title='/pmwiki/pmwiki.php/Main/PainfullySlowProjectile' data-format='UGFpbmZ1bGx5U2xvd1Byb2plY3RpbGU='>Painfully Slow Projectile</a>. When applied to more permanent things, especially in <a class='twikilink' href='/pmwiki/pmwiki.php/Main/RealTimeStrategy' title='/pmwiki/pmwiki.php/Main/RealTimeStrategy' data-format='UmVhbFRpbWVTdHJhdGVneQ=='>Real-Time Strategy</a> games, it's an <a class='twikilink' href='/pmwiki/pmwiki.php/Main/ArbitraryHeadCountLimit' title='/pmwiki/pmwiki.php/Main/ArbitraryHeadCountLimit' data-format='QXJiaXRyYXJ5SGVhZENvdW50TGltaXQ='>Arbitrary Head Count Limit</a>. If there is a way to raise the limit to two bullets at a time, see <a class='twikilink' href='/pmwiki/pmwiki.php/Main/AttackSpeedBuff' title='/pmwiki/pmwiki.php/Main/AttackSpeedBuff' data-format='QXR0YWNrU3BlZWRCdWZm'>Attack Speed Buff</a>. </p><p>Contrast <a class='twikilink' href='/pmwiki/pmwiki.php/Main/BulletHell' title='/pmwiki/pmwiki.php/Main/BulletHell' data-format='QnVsbGV0SGVsbA=='>Bullet Hell</a>, where hundreds, possibly thousands of bullets can be on screen at once. Compare <a class='twikilink' href='/pmwiki/pmwiki.php/Main/UniquenessRule' title='/pmwiki/pmwiki.php/Main/UniquenessRule' data-format='VW5pcXVlbmVzc1J1bGU='>Uniqueness Rule</a>. <hr data-format='&#8212;&#8212;' /> <h2>Examples:</h2> </p><p><div class="folderlabel" onclick="toggleAllFolders();">&nbsp;&nbsp;&nbsp;&nbsp;open/close all folders&nbsp; </div> </p><p><div class="folderlabel" onclick="togglefolder('folder0');">&nbsp;&nbsp;&nbsp;&nbsp;Action Adventure&nbsp;</div><div id="folder0" class="folder" isfolder="true" style="display:block;"> <ul ><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/Franchise/TheLegendOfZelda' title='/pmwiki/pmwiki.php/Franchise/TheLegendOfZelda' data-format='RnJhbmNoaXNlL1RoZUxlZ2VuZE9mWmVsZGE='>The Legend of Zelda</a></em>: <ul ><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/TheLegendOfZeldaI' title='/pmwiki/pmwiki.php/VideoGame/TheLegendOfZeldaI' data-format='VmlkZW9HYW1lL1RoZUxlZ2VuZE9mWmVsZGFJ'>The Legend of Zelda</a></em>: All of Link's projectiles have a one "bullet" cap (sword beams, magic rod shots, and flames from candles) The Blue Candle is pretty terrible with the cap since you can only use it once per area/room. The Red Candle has infinite uses, but it's still capped at two flames at a time. Link is also limited to planting only one bomb at a time. </li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/TheLegendOfZeldaOcarinaOfTime' title='/pmwiki/pmwiki.php/VideoGame/TheLegendOfZeldaOcarinaOfTime' data-format='VmlkZW9HYW1lL1RoZUxlZ2VuZE9mWmVsZGFPY2FyaW5hT2ZUaW1l'>The Legend of Zelda: Ocarina of Time</a></em> and <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/TheLegendOfZeldaMajorasMask' title='/pmwiki/pmwiki.php/VideoGame/TheLegendOfZeldaMajorasMask' data-format='VmlkZW9HYW1lL1RoZUxlZ2VuZE9mWmVsZGFNYWpvcmFzTWFzaw=='>The Legend of Zelda: Majora's Mask</a></em> both allow only one magical arrow to be shot at a time (including the massive cooldown after each magic arrow.) </li></ul></li><li> In <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/CaveStory' title='/pmwiki/pmwiki.php/VideoGame/CaveStory' data-format='VmlkZW9HYW1lL0NhdmVTdG9yeQ=='>Cave Story</a></em> the number depends on the weapon. The Blade is one of these weapons, with the added bonus that the number of shots on screen is the <em>only</em> restriction it has on fire rate. Because of this, at <a class='twikilink' href='/pmwiki/pmwiki.php/Main/LowLevelAdvantage' title='/pmwiki/pmwiki.php/Main/LowLevelAdvantage' data-format='W1tMb3dMZXZlbEFkdmFudGFnZSBsZXZlbCAyXV0='>level 2</a> it deals insane amounts of damage at point-blank range, since its projectiles disappear right after hitting their target (the level 3 version keeps going, so you have to wait for it to vanish before firing it again. </li><li> One of the many annoying gameplay mechanics in <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/DeadlyTowers' title='/pmwiki/pmwiki.php/VideoGame/DeadlyTowers' data-format='VmlkZW9HYW1lL0RlYWRseVRvd2Vycw=='>Deadly Towers</a></em> was having to attack with slow-moving throwing swords, of which only one could normally be on screen at a time. The Double Shot allowed you to have two swords on screen, and so did the Parallel Shot except they had to be fired at the same time. </li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/DevilMayCry4' title='/pmwiki/pmwiki.php/VideoGame/DevilMayCry4' data-format='VmlkZW9HYW1lL0RldmlsTWF5Q3J5NA=='>Devil May Cry 4</a></em>: The Lucifer Devil Arm has a unique "unit <a class='twikilink' href='/pmwiki/pmwiki.php/Main/Cap' title='/pmwiki/pmwiki.php/Main/Cap' data-format='e3tjYXB9fQ=='>cap</a>"; it can only have up to 15 swords summoned on the field at once. Should you attempt to bring out more swords past that number, the earliest-summoned sword(s) will automatically detonate. </li></ul></div> </p><p><div class="folderlabel" onclick="togglefolder('folder1');">&nbsp;&nbsp;&nbsp;&nbsp;Fighting Game&nbsp;</div><div id="folder1" class="folder" isfolder="true" style="display:block;"> <ul ><li> Most <a class='twikilink' href='/pmwiki/pmwiki.php/Main/FightingGame' title='/pmwiki/pmwiki.php/Main/FightingGame' data-format='e3tGaWdodGluZyBHYW1lfX1z'>Fighting Games</a>, more often than not, allow a character only one projectile on the screen at once. There are exceptions aplenty, but for the most part, it's limited to one for the sake of game balance (to allow the other player ample opportunity to defend or counter). <ul ><li> Notable example with <a class='twikilink' href='/pmwiki/pmwiki.php/ComicBook/XMen' title='/pmwiki/pmwiki.php/ComicBook/XMen' data-format='W1tDb21pY0Jvb2svWE1lbiBQaG9lbml4XV0='>Phoenix</a> in <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/MarvelVsCapcom3' title='/pmwiki/pmwiki.php/VideoGame/MarvelVsCapcom3' data-format='VmlkZW9HYW1lL01hcnZlbFZzQ2FwY29tMw=='>Marvel vs. Capcom 3</a></em> who had no limit to the projectiles she could fire in the air. Come the <a class='twikilink' href='/pmwiki/pmwiki.php/Main/UpdatedRerelease' title='/pmwiki/pmwiki.php/Main/UpdatedRerelease' data-format='VXBkYXRlZFJlcmVsZWFzZQ=='>Updated Re-release</a> and suddenly she can only throw one at a time, making an oft-used tourney character much lower on the tier list. </li></ul></li><li> In <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/DissidiaFinalFantasy' title='/pmwiki/pmwiki.php/VideoGame/DissidiaFinalFantasy' data-format='VmlkZW9HYW1lL0Rpc3NpZGlhRmluYWxGYW50YXN5'>Dissidia Final Fantasy</a></em>, <a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/FinalFantasyII' title='/pmwiki/pmwiki.php/VideoGame/FinalFantasyII' data-format='W1tWaWRlb0dhbWUvRmluYWxGYW50YXN5SUkgVGhlIEVtcGVyb3ImIzAzOTtzXV0='>The Emperor's</a> primary means of HP-destroying offense<span class="notelabel" onclick="togglenote('note1qs2u');"><sup>note&nbsp;</sup></span><span id="note1qs2u" class="inlinefolder" isnote="true" onclick="togglenote('note1qs2u');" style="cursor:pointer;font-size:smaller;display:none;">There are two stats in the game, Bravery and HP. Bravery offense drains the opponent's Bravery and adds it to yours, HP offense deals damage to HP equivalent to the character's Bravery stat and is the only way of actually killing an opponent.</span> is Flare, an extremely large <a class='twikilink' href='/pmwiki/pmwiki.php/Main/PainfullySlowProjectile' title='/pmwiki/pmwiki.php/Main/PainfullySlowProjectile' data-format='UGFpbmZ1bGx5U2xvd1Byb2plY3RpbGU='>Painfully Slow Projectile</a> that makes up for it by strong homing and staying on the screen a very long time. There can only ever be two on the screen at once, presumably for reasons of game balance rather than technical limitations; if The Emperor could spam Flare, given its homing and duration, he could completely shut down the opponent with zero effort on the player's part. </li></ul></div> </p><p><div class="folderlabel" onclick="togglefolder('folder2');">&nbsp;&nbsp;&nbsp;&nbsp;First Person Shooter&nbsp;</div><div id="folder2" class="folder" isfolder="true" style="display:block;"> <ul ><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/TeamFortressClassic' title='/pmwiki/pmwiki.php/VideoGame/TeamFortressClassic' data-format='VmlkZW9HYW1lL3t7VGVhbSBGb3J0cmVzc3xDbGFzc2ljfX0='>Team Fortress</a></em> only allows eight pipebombs active at once. This limitation was added because some players tried filling the entire level with them to kill all hostiles at once; that and you'd probably hit the upper limit of ~600/768 entities in the original <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/Quake' title='/pmwiki/pmwiki.php/VideoGame/Quake' data-format='VmlkZW9HYW1lL3t7UXVha2V9fQ=='>Quake</a></em> engine. As such, this limit prevents spamming meant to kill off a full team in one swoop. <ul ><li> Also true for <a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/TeamFortress2' title='/pmwiki/pmwiki.php/VideoGame/TeamFortress2' data-format='W1tWaWRlb0dhbWUvVGVhbUZvcnRyZXNzMiB0aGUgc2VxdWVsXV0='>the sequel</a>. The Sticky Launcher can still only place 8 bombs. If you shoot any more, the first ones placed start detonating in sequence. The second launcher available, The Scottish Resistance, increases the limit to 14 bombs out at once, but is designed around the idea of trapping multiple different spots, so actually aiming at bombs one wants to detonate is required. </li></ul></li><li> In the <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/HalfLife' title='/pmwiki/pmwiki.php/VideoGame/HalfLife' data-format='VmlkZW9HYW1lL0hhbGZMaWZl'>Half-Life</a></em> series, only one laser-guided rocket can be launched at the same time; this is because reloading requires Gordon to point the launcher away from the center of the screen, which would thus prevent him from actually guiding it with the laser. </li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/ULTRAKILL' title='/pmwiki/pmwiki.php/VideoGame/ULTRAKILL' data-format='VmlkZW9HYW1lL3t7VUxUUkFLSUxMfX0='>ULTRAKILL</a></em>: Corpse of King Minos and <span class="spoiler" title="you can set spoilers visible by default on your profile" >Flesh Prison</span> use an <a class='twikilink' href='/pmwiki/pmwiki.php/Main/UnrealisticBlackHole' title='/pmwiki/pmwiki.php/Main/UnrealisticBlackHole' data-format='VW5yZWFsaXN0aWNCbGFja0hvbGU='>Unrealistic Black Hole</a> for one of their attacks. They won't create additional ones as long as the black hole is still around in the field. </li></ul></div> </p><p><div class="folderlabel" onclick="togglefolder('folder3');">&nbsp;&nbsp;&nbsp;&nbsp;Platform Game&nbsp;</div><div id="folder3" class="folder" isfolder="true" style="display:block;"> <ul ><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/Franchise/Castlevania' title='/pmwiki/pmwiki.php/Franchise/Castlevania' data-format='RnJhbmNoaXNlL3t7Q2FzdGxldmFuaWF9fQ=='>Castlevania</a></em>: <ul ><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/CastlevaniaAriaOfSorrow' title='/pmwiki/pmwiki.php/VideoGame/CastlevaniaAriaOfSorrow' data-format='VmlkZW9HYW1lL0Nhc3RsZXZhbmlhQXJpYU9mU29ycm93'>Castlevania: Aria of Sorrow</a></em>: The Waiter Skeleton Soul's curry can only have one bowl out at a time. </li><li> <em><a class='createlink' rel='nofollow' href='/pmwiki/pmwiki.php/VideoGame/OrderOfEcclesia' title='/pmwiki/pmwiki.php/VideoGame/OrderOfEcclesia' data-format='VmlkZW9HYW1lL09yZGVyT2ZFY2NsZXNpYQ=='>Order Of Ecclesia</a></em>: Each arm has its own limit, apparently. <ul ><li> Each arm can have two Luminatio orbs out at the same time, since the arm can be recast shortly after the orbs start getting further away from Shanoa. </li><li> The limit is per arm, so with a Vol Luminatio on each arm, Shanoa can have two balls of light out, one per each arm. </li><li> The Cubus Glyph can only have 4 cubes created at a time per arm / color, Black or White symbol. </li><li> Arcus can have 5 bows per arm at once. </li><li> Ascia and Vol Ascia can only make 2 axes for each arm. </li></ul></li></ul></li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/MegaManClassic' title='/pmwiki/pmwiki.php/VideoGame/MegaManClassic' data-format='VmlkZW9HYW1lL01lZ2FNYW5DbGFzc2lj'>Mega Man (Classic)</a></em> can only have up to 3 bullets on screen at a time. Some special weapons in the sequels only allow one of its projectiles on the screen (e.g. Ice Wall). In the later games, you can even buy an upgrade to increase it to five shots on screen at a time. <ul ><li> His brother Proto Man, in part of the tradeoff for the slide and charge shot in <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/MegaMan9' title='/pmwiki/pmwiki.php/VideoGame/MegaMan9' data-format='VmlkZW9HYW1lL01lZ2FNYW45'>Mega Man 9</a></em> (and presumably this applies in <em>10</em> as well), can only fire two shots at a time, though having the Proto Coil or Proto Jet equipped allows you to shoot three. </li><li> Colton, a <a class='twikilink' href='/pmwiki/pmwiki.php/Main/NinjaPirateZombieRobot' title='/pmwiki/pmwiki.php/Main/NinjaPirateZombieRobot' data-format='W1tOaW5qYVBpcmF0ZVpvbWJpZVJvYm90IGNvd2JveSByb2JvdF1d'>cowboy robot</a> from <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/MegaMan6' title='/pmwiki/pmwiki.php/VideoGame/MegaMan6' data-format='VmlkZW9HYW1lL01lZ2FNYW42'>Mega Man 6</a></em>, has to wait for his current shot to pass out of the screen before he can shoot again. This makes him a more literal case. </li></ul></li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/MegaManLegends' title='/pmwiki/pmwiki.php/VideoGame/MegaManLegends' data-format='VmlkZW9HYW1lL01lZ2FNYW5MZWdlbmRz'>Mega Man Legends</a></em> has this as a stat for guns called Energy which is the number of bullets on screen, while Rapid is how fast it can shoot said bullets. </li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/MegaManZero' title='/pmwiki/pmwiki.php/VideoGame/MegaManZero' data-format='VmlkZW9HYW1lL01lZ2FNYW5aZXJv'>Mega Man Zero</a></em> does similar - at the beginning, the player can only have three bullets from the Buster onscreen at once, but after killing enough enemies with it, this is upgraded to four. Somehow. Later games made four shots at once a facet of some other upgrade, like the buster-focused X Form in <em>2</em>. </li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/Contra' title='/pmwiki/pmwiki.php/VideoGame/Contra' data-format='VmlkZW9HYW1lL3t7Q29udHJhfX0='>Contra</a></em> has an upper limit, with the spread gun allowing 10 bullets on the screen. If you don't have enough for all five bullets, you can either get a 3-shot or single shot (as exploited in a tool assisted speedrun). Likewise, the laser was actually several parts of a shot fired at once, and if you fired while the first shot was still on screen, it would disappear, meaning if you tried to <a class='twikilink' href='/pmwiki/pmwiki.php/Main/ButtonMashing' title='/pmwiki/pmwiki.php/Main/ButtonMashing' data-format='W1tCdXR0b25NYXNoaW5nIHNwYW0gaXQsXV0='>spam it,</a> you'd have a very short range weapon on your hands. <ul ><li> Using the NES advantage controller with "turbo" turned on (which would spam the button for you), you would shoot four bullets at a time. </li></ul></li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/SuperMarioBros1' title='/pmwiki/pmwiki.php/VideoGame/SuperMarioBros1' data-format='VmlkZW9HYW1lL1N1cGVyTWFyaW9Ccm9zMQ=='>Super Mario Bros.</a></em> allows you to have two fireballs on the screen as Fire Mario. Later games such as <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/SuperMarioWorld' title='/pmwiki/pmwiki.php/VideoGame/SuperMarioWorld' data-format='VmlkZW9HYW1lL1N1cGVyTWFyaW9Xb3JsZA=='>Super Mario World</a></em> and the <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/NewSuperMarioBros' title='/pmwiki/pmwiki.php/VideoGame/NewSuperMarioBros' data-format='VmlkZW9HYW1lL05ld1N1cGVyTWFyaW9Ccm9z'>New Super Mario Bros.</a></em> series kept this. It also goes for Ice Mario's freeze balls. </li><li> A sprite-limit example: <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/MilonsSecretCastle' title='/pmwiki/pmwiki.php/VideoGame/MilonsSecretCastle' data-format='VmlkZW9HYW1lL01pbG9uc1NlY3JldENhc3RsZQ=='>Milon's Secret Castle</a></em> has keys which appear as sprites. If too many sprites (such as enemies) are already on the screen, the key won't be drawn; you have to clear out some of the enemies, leave the screen, and come back for the key to appear. </li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/IWannaBeTheGuy' title='/pmwiki/pmwiki.php/VideoGame/IWannaBeTheGuy' data-format='VmlkZW9HYW1lL0lXYW5uYUJlVGhlR3V5'>I Wanna Be the Guy</a></em> gives you four at a time. There's a glitch that takes this away in certain areas. </li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/SecretAgent' title='/pmwiki/pmwiki.php/VideoGame/SecretAgent' data-format='VmlkZW9HYW1lL1NlY3JldEFnZW50'>Secret Agent</a></em> also uses this. In fact, one of the power-ups is an upgrade which allows you to have <em>two</em> bullets at the screen at once. </li><li> In <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/CaptainComic' title='/pmwiki/pmwiki.php/VideoGame/CaptainComic' data-format='VmlkZW9HYW1lL0NhcHRhaW5Db21pYw=='>Captain Comic</a></em>, the number of Blastola Cola 'bullets' you can have on the screen at once is limited to the number of cans you've picked up. </li><li> The Minimum curse in Pharaoh Man's stage in <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/Rockman4MinusInfinity' title='/pmwiki/pmwiki.php/VideoGame/Rockman4MinusInfinity' data-format='VmlkZW9HYW1lL1JvY2ttYW40TWludXNJbmZpbml0eQ=='>Rockman 4 Minus ∞</a></em> forces this upon Mega Man. </li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/Stinkoman20X6' title='/pmwiki/pmwiki.php/VideoGame/Stinkoman20X6' data-format='VmlkZW9HYW1lL1N0aW5rb21hbjIwWDY='>Stinkoman 20X6</a></em> includes a limit of three <a class='twikilink' href='/pmwiki/pmwiki.php/Main/KiManipulation' title='/pmwiki/pmwiki.php/Main/KiManipulation' data-format='S2lNYW5pcHVsYXRpb24='>Ki Manipulation</a> examples at a time. However, even if there are that many still on screen, the punching action that you perform to do so still counts as an attack, and will damage enemies. </li><li> The first <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/DukeNukem' title='/pmwiki/pmwiki.php/VideoGame/DukeNukem' data-format='VmlkZW9HYW1lL0R1a2VOdWtlbQ=='>Duke Nukem</a></em> game (the 2D one) limited you to only one energy bolt onscreen at a time, upgradeable to four by way of powerups. </li><li> In <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/TheCastlesOfDoctorCreep' title='/pmwiki/pmwiki.php/VideoGame/TheCastlesOfDoctorCreep' data-format='VmlkZW9HYW1lL1RoZUNhc3RsZXNPZkRvY3RvckNyZWVw'>The Castles of Doctor Creep</a></em>, the game is limited to one shot per <a class='twikilink' href='/pmwiki/pmwiki.php/Main/DeathRay' title='/pmwiki/pmwiki.php/Main/DeathRay' data-format='W1tEZWF0aFJheSBSYXkgR3VuXV0='>Ray Gun</a> onscreen at the same time. (As in, if one Ray Gun shoots, it cannot shoot again until the ray disappears from the screen, but another Ray Gun can still fire.) <a class='twikilink' href='/pmwiki/pmwiki.php/Main/InvokedTrope' title='/pmwiki/pmwiki.php/Main/InvokedTrope' data-format='W1tJbnZva2VkVHJvcGUgVGhpcyBmYWN0IGlzIGNyaXRpY2FsIGluIHNvbHZpbmcgc29tZSBvZiB0aGUgcHV6emxlcyB0aGUgZ2FtZSBnaXZlcyB5b3VdXQ=='>This fact is critical in solving some of the puzzles the game gives you</a>. </li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/Franchise/Metroid' title='/pmwiki/pmwiki.php/Franchise/Metroid' data-format='RnJhbmNoaXNlL3t7TWV0cm9pZH19'>Metroid</a></em>: <ul ><li> In <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/MetroidPrime' title='/pmwiki/pmwiki.php/VideoGame/MetroidPrime' data-format='VmlkZW9HYW1lL01ldHJvaWRQcmltZQ=='>Metroid Prime</a></em>, you can only have 3 missiles active at once. Normally their fire rate is so slow that this is completely irrelevant, but a an unintentional method of shooting them <a class='urllink' href='http://www.metroid2002.com/techniques_rapid_fire_missiles.php'>very quickly<img src="https://static.tvtropes.org/pmwiki/pub/external_link.gif" height="12" width="12" style="border:none;" /></a> allows the limit to be reached. </li><li> In <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/MetroidFusion' title='/pmwiki/pmwiki.php/VideoGame/MetroidFusion' data-format='VmlkZW9HYW1lL01ldHJvaWRGdXNpb24='>Metroid Fusion</a></em>, you can only have three beam attacks, two missiles, and three bombs active on screen at once. The beam limit usually can't be noticed unless you are falling and firing down, so it rarely interferes with gameplay. The missile limit is also hardly noticeable in that, early on, you won't have many missiles, so you'll be firing each one carefully, rather than firing them rapidly and potentially wasting them. By the time you have more missiles to work with, your upgrades will have reduced the rate of fire of your missiles, making the limit much less noticeable. </li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/MetroidIIReturnOfSamus' title='/pmwiki/pmwiki.php/VideoGame/MetroidIIReturnOfSamus' data-format='VmlkZW9HYW1lL01ldHJvaWRJSVJldHVybk9mU2FtdXM='>Metroid II: Return of Samus</a></em> had a limit of three beams, one missile, and three bombs on the screen at once. The beam limit is most noticeable when firing the Spazer or Plasma beams, since those actually consist of three beams fired at once (the Spazer fires them in a spread pattern, while the Plasma beam fires them in one line). If part of the Spazer hits an enemy but another part does not, often two of the beams will be out of sync with the third. </li></ul></li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/LaMulana' title='/pmwiki/pmwiki.php/VideoGame/LaMulana' data-format='VmlkZW9HYW1lL0xhTXVsYW5h'>La-Mulana</a></em> has a ring that gives an additional projectile on the screen. </li><li> Justified in some of the <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/Rayman' title='/pmwiki/pmwiki.php/VideoGame/Rayman' data-format='VmlkZW9HYW1lL3t7UmF5bWFufX0='>Rayman</a></em> games. Rayman's primary means of attack is to throw his disembodied fists, <a class='twikilink' href='/pmwiki/pmwiki.php/Main/CaptainObvious' title='/pmwiki/pmwiki.php/Main/CaptainObvious' data-format='W1tDYXB0YWluT2J2aW91cyB3aGljaCBoZSBvbmx5IGhhcyB0d28gb2ZdXQ=='>which he only has two of</a>, and so in the third game you can only have two projectiles (only one for the first game) on screen as you wait for them to return. </li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/N' title='/pmwiki/pmwiki.php/VideoGame/N' data-format='VmlkZW9HYW1lL3t7Tn19'>N</a></em>: Each rocket turret can have a single homing rocket out in the field, with a replacement ready the instant the previous missile explodes. One level in particular is designed around exploiting this quirk: the level is shaped as a narrow loop with no space to evade rockets and there is a rocket turret on the path to the exit. The player needs to carefully guide the deadly rocket behind them while opening the stage exit and returning from the other side. Failing to keep that rocket on one's tail means that the rocket turret will block the exit with a freshly fired rocket, with no option left besides trying again from the start. </li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/YarsRising' title='/pmwiki/pmwiki.php/VideoGame/YarsRising' data-format='VmlkZW9HYW1lL1lhcnNSaXNpbmc='>Yars Rising</a></em>: Only one Firefly Drone can be active at a time. </li></ul></div> </p><p><div class="folderlabel" onclick="togglefolder('folder4');">&nbsp;&nbsp;&nbsp;&nbsp;Idle Game&nbsp;</div><div id="folder4" class="folder" isfolder="true" style="display:block;"> <ul ><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/LearnToFly' title='/pmwiki/pmwiki.php/VideoGame/LearnToFly' data-format='VmlkZW9HYW1lL0xlYXJuVG9GbHk='>Learn To Fly</a> Idle</em>: The number of shots on the screen is limited by the shots stat. Upgrading it and the speed the shots fly at lets you fire more often. </li></ul></div> </p><p><div class="folderlabel" onclick="togglefolder('folder5');">&nbsp;&nbsp;&nbsp;&nbsp;MOBA&nbsp;</div><div id="folder5" class="folder" isfolder="true" style="display:block;"> <ul ><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/Dota2' title='/pmwiki/pmwiki.php/VideoGame/Dota2' data-format='VmlkZW9HYW1lL0RvdGEy'>Dota 2</a></em>: <ul ><li> As <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/WarcraftIII' title='/pmwiki/pmwiki.php/VideoGame/WarcraftIII' data-format='VmlkZW9HYW1lL1dhcmNyYWZ0SUlJ'>WarCraft III</a></em> was made, the developers did not expect multiple arcs of Chain Lightning to be active at once in regular circumstances, as it was an actual spell with a cooldown which concludes after a couple seconds. To save themselves coding trouble, Chain Lightning was limited to only one zap jumping across units. When the <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/DefenseOfTheAncients' title='/pmwiki/pmwiki.php/VideoGame/DefenseOfTheAncients' data-format='VmlkZW9HYW1lL0RlZmVuc2VPZlRoZUFuY2llbnRz'>Defense of the Ancients</a></em> custom map tried to up the ante with Chain Lightning as a passive ability emitted just from lucky strikes with Maelstrom or Mjollnir equipped, it was subject to the limits imposed by the game running the map, which affected some particularly quickly striking heroes such as Ember Spirit. This limitation was replicated for some time in <em>Dota 2</em>, but since <a class='twikilink' href='/pmwiki/pmwiki.php/Main/AvertedTrope' title='/pmwiki/pmwiki.php/Main/AvertedTrope' data-format='W1tBdmVydGVkVHJvcGUgcmVtb3ZlZF1d'>removed</a> in patch 6.81 in 2014. </li><li> Mireska the Dark Willow cannot use both Bedlam and Terrorize at once because both of these abilities consist of her siccing her pet wisp Jex on enemies in different ways. He can't be in two places at once you know. </li><li> Curiously averted with Grimstroke's "Phantom's Embrace" &#8212; even though it's supposed to be a revenant of his <a class='twikilink' href='/pmwiki/pmwiki.php/Main/OneTrueLove' title='/pmwiki/pmwiki.php/Main/OneTrueLove' data-format='T25lVHJ1ZUxvdmU='>One True Love</a> Yaovhi, there can be multiple of her. Copying her is as easy as binding two enemy heroes with Grimstroke's "Soulbind", which copies all single target effects coming from enemies of the debuffed heroes, such as "Phantom's Embrace". </li></ul></li></ul></div> </p><p><div class="folderlabel" onclick="togglefolder('folder6');">&nbsp;&nbsp;&nbsp;&nbsp;Racing Game&nbsp;</div><div id="folder6" class="folder" isfolder="true" style="display:block;"> <ul ><li> This happens to banana peels and the like in <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/MarioKart' title='/pmwiki/pmwiki.php/VideoGame/MarioKart' data-format='VmlkZW9HYW1lL01hcmlvS2FydA=='>Mario Kart</a></em>; the old ones disappear as new ones are placed. </li></ul></div> </p><p><div class="folderlabel" onclick="togglefolder('folder7');">&nbsp;&nbsp;&nbsp;&nbsp;Roguelike&nbsp;</div><div id="folder7" class="folder" isfolder="true" style="display:block;"> <ul ><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Creator/SupergiantGames' title='/pmwiki/pmwiki.php/Creator/SupergiantGames' data-format='Q3JlYXRvci9TdXBlcmdpYW50R2FtZXM='>Supergiant Games</a>: From the <em>Hades</em> series, where the first game had Bloodstones and the second game had the Argent Skull, they're thrown with a limited stock and need to be retrieved to fire again. <ul ><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/Hades' title='/pmwiki/pmwiki.php/VideoGame/Hades' data-format='VmlkZW9HYW1lL3t7SGFkZXN9fQ=='>Hades</a></em>: Zagreus has a limited stock of Bloodstones to throw out as his Casts. They do in fact have to return back to him to be reused <span class="spoiler" title="you can set spoilers visible by default on your profile" >until the reverse side of the Mirror of Night is unlocked, for a <a class='createlink' rel='nofollow' href='/pmwiki/pmwiki.php/Main/SideGrade' title='/pmwiki/pmwiki.php/Main/SideGrade' data-format='U2lkZUdyYWRl'>Side Grade</a> that changes the mechanics</span> </li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/HadesII' title='/pmwiki/pmwiki.php/VideoGame/HadesII' data-format='VmlkZW9HYW1lL0hhZGVzSUk='>Hades II</a></em>: The Argent Skull copies reload mechanics of the Bloodstones wholesale (limited stock and retrieve to fire again), but the Skull is just one of many weapons Melinoë can use while Bloodstones were one of core moves of Zagreus. </li></ul></li></ul></div> </p><p><div class="folderlabel" onclick="togglefolder('folder8');">&nbsp;&nbsp;&nbsp;&nbsp;Role-Playing Game&nbsp;</div><div id="folder8" class="folder" isfolder="true" style="display:block;"> <ul ><li> In the <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/MegaManBattleNetwork' title='/pmwiki/pmwiki.php/VideoGame/MegaManBattleNetwork' data-format='VmlkZW9HYW1lL01lZ2FNYW5CYXR0bGVOZXR3b3Jr'>Mega Man Battle Network</a></em> series, you can only have one buster shot out at a time (they're invisible, but do have a small travel time), meaning you can shoot a lot faster at point blank range. </li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/OkikuStarApprentice' title='/pmwiki/pmwiki.php/VideoGame/OkikuStarApprentice' data-format='VmlkZW9HYW1lL09raWt1U3RhckFwcHJlbnRpY2U='>Okiku, Star Apprentice</a></em>: Only one shot of the Wand of Blasting can be out at a time. Okiku is rendered immobile while it's active, to ensure this. </li></ul></div> </p><p><div class="folderlabel" onclick="togglefolder('folder9');">&nbsp;&nbsp;&nbsp;&nbsp;Shoot Em Up&nbsp;</div><div id="folder9" class="folder" isfolder="true" style="display:block;"> <ul ><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/SpaceInvaders' title='/pmwiki/pmwiki.php/VideoGame/SpaceInvaders' data-format='VmlkZW9HYW1lL1NwYWNlSW52YWRlcnM='>Space Invaders</a></em> may be the <a class='twikilink' href='/pmwiki/pmwiki.php/Main/TropeMaker' title='/pmwiki/pmwiki.php/Main/TropeMaker' data-format='VHJvcGVNYWtlcg=='>Trope Maker</a>. This makes comebacks possible, as you can shoot more rapidly as the Invaders get closer... provided you don't miss, that is. The <a class='twikilink' href='/pmwiki/pmwiki.php/Platform/Atari2600' title='/pmwiki/pmwiki.php/Platform/Atari2600' data-format='UGxhdGZvcm0vQXRhcmkyNjAw'>Atari 2600</a> version had a trick to get double shots: Hold the RESET switch and turn on the game, then let it go. Cheat or glitch? Nobody may ever know. <ul ><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/SpaceInvadersInfinityGene' title='/pmwiki/pmwiki.php/VideoGame/SpaceInvadersInfinityGene' data-format='VmlkZW9HYW1lL1NwYWNlSW52YWRlcnNJbmZpbml0eUdlbmU='>Space Invaders Infinity Gene</a></em> has <span class="spoiler" title="you can set spoilers visible by default on your profile" > the Classic weapon as an unlockable. While it still adheres to this trope, that one bullet is a <a class='twikilink' href='/pmwiki/pmwiki.php/Main/OneHitKill' title='/pmwiki/pmwiki.php/Main/OneHitKill' data-format='T25lSGl0S2lsbA=='>One-Hit Kill</a> on anything, including bosses.</span> </li></ul></li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/Gorf' title='/pmwiki/pmwiki.php/VideoGame/Gorf' data-format='VmlkZW9HYW1lL3t7R29yZn19'>Gorf</a></em>: Also applies to some enemy attacks. Unusually, you can fire again while one of your shots is still on screen, but your <em>original</em> shot disappears. </li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/Galaga' title='/pmwiki/pmwiki.php/VideoGame/Galaga' data-format='VmlkZW9HYW1lL3t7R2FsYWdhfX0='>Galaga</a></em> only lets you shoot two bullets at a time. <ul ><li> It lets the enemies shoot eight bullets combined at a time. There is a <a class='twikilink' href='/pmwiki/pmwiki.php/Main/GoodBadBug' title='/pmwiki/pmwiki.php/Main/GoodBadBug' data-format='R29vZEJhZEJ1Zw=='>Good Bad Bug</a> that exploits this fact by <a class='urllink' href='http://computerarcheology.com/Arcade/Galaga/'>making the enemies fire shots that get "stuck" so eventually they cannot fire anymore shots at all<img src="https://static.tvtropes.org/pmwiki/pub/external_link.gif" height="12" width="12" style="border:none;" /></a>. </li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/Galaxian' title='/pmwiki/pmwiki.php/VideoGame/Galaxian' data-format='VmlkZW9HYW1lL3t7R2FsYXhpYW59fQ=='>Galaxian</a></em> only lets you shoot one. </li></ul></li><li> <em>Satans Hollow</em> only allows one, but a weapon upgrade gives an additional shot and a second upgrade shoots a double/single alternating shot. </li><li> <em>Asterax</em>, a somewhat <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/Asteroids' title='/pmwiki/pmwiki.php/VideoGame/Asteroids' data-format='VmlkZW9HYW1lL3t7QXN0ZXJvaWRzfX0='>Asteroids</a></em>-like old <a class='twikilink' href='/pmwiki/pmwiki.php/Platform/AppleMacintosh' title='/pmwiki/pmwiki.php/Platform/AppleMacintosh' data-format='UGxhdGZvcm0vQXBwbGVNYWNpbnRvc2g='>Apple Macintosh</a> shareware game, makes this the explicit benefit of buying better guns, with 4-12 shots from each player allowed on screen. </li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/Asteroids' title='/pmwiki/pmwiki.php/VideoGame/Asteroids' data-format='VmlkZW9HYW1lL3t7QXN0ZXJvaWRzfX0='>Asteroids</a></em> had a maximum of 4. In the Atari 2600 port, your limit is only <em>two</em>. </li><li> The <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/Gradius' title='/pmwiki/pmwiki.php/VideoGame/Gradius' data-format='VmlkZW9HYW1lL3t7R3JhZGl1c319'>Gradius</a></em> series limits your ship you to two on-screen shots at a time, and the same goes for your <a class='twikilink' href='/pmwiki/pmwiki.php/Main/AttackDrones' title='/pmwiki/pmwiki.php/Main/AttackDrones' data-format='QXR0YWNrRHJvbmVz'>Attack Drones</a>. In <em>Gradius V</em>, however, this limit is extended to four shots. <ul ><li> The NES <a class='twikilink' href='/pmwiki/pmwiki.php/Main/SpinOff' title='/pmwiki/pmwiki.php/Main/SpinOff' data-format='U3Bpbk9mZg=='>Spin-Off</a> <em>Life Force</em> only allows one bullet on screen at a time, but your ship will immediately fire a new bullet when the old one is gone as long as the fire button is held. This means that your fire rate is inversely proportional to your distance from the enemy, making it a viable boss tactic to get within six inches of them and maul them in three seconds with your inexplicable machine gun of doom. </li></ul></li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/Berzerk' title='/pmwiki/pmwiki.php/VideoGame/Berzerk' data-format='VmlkZW9HYW1lL3t7QmVyemVya319'>Berzerk</a></em> does this too. You can fire rapidly as long as it's point blank. (Do it against a wall up close for THE single most irritating sound you will ever hear in life.) </li><li> The spiritual successor to <em>Berzerk</em>, <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/Shamus' title='/pmwiki/pmwiki.php/VideoGame/Shamus' data-format='VmlkZW9HYW1lL3t7U2hhbXVzfX0='>Shamus</a></em> allows you to have two <span class='esc-seq' title='non-wikiword'>Ion-SHIVs</span> on the screen at a time. </li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/CrystalQuest' title='/pmwiki/pmwiki.php/VideoGame/CrystalQuest' data-format='VmlkZW9HYW1lL0NyeXN0YWxRdWVzdA=='>Crystal Quest</a></em> allows up to five onscreen player shots and unlimited enemy shots. <div class='indent'> What do you mean that isn't very fair? It's extremely fair. For them. </div></li><li> The <em><a class='twikilink' href='/pmwiki/pmwiki.php/Series/Airwolf' title='/pmwiki/pmwiki.php/Series/Airwolf' data-format='U2VyaWVzL3t7QWlyd29sZn19'>Airwolf</a></em> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/LicensedGame' title='/pmwiki/pmwiki.php/Main/LicensedGame' data-format='TGljZW5zZWRHYW1l'>Licensed Game</a> on <a class='twikilink' href='/pmwiki/pmwiki.php/Platform/AmstradCPC' title='/pmwiki/pmwiki.php/Platform/AmstradCPC' data-format='UGxhdGZvcm0vQW1zdHJhZENQQw=='>Amstrad CPC</a> had this limitation, particularly grating when some targets required pixel-perfect aiming (and the gravity kept changing it). </li><li> <em>Starevil</em>, the second game on <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/Action52' title='/pmwiki/pmwiki.php/VideoGame/Action52' data-format='VmlkZW9HYW1lL0FjdGlvbjUy'>Action 52</a></em>, is a particularly ill-programmed example of this: the limit of shots onscreen is the same as the game's sprite limit. This means that if you keep shooting, you can actually prevent enemies from spawning, including bosses, which <a class='twikilink' href='/pmwiki/pmwiki.php/Main/UnintentionallyUnwinnable' title='/pmwiki/pmwiki.php/Main/UnintentionallyUnwinnable' data-format='W1tVbmludGVudGlvbmFsbHlVbndpbm5hYmxlIGNhdXNlcyB0aGUgZ2FtZSB0byBsb2NrIHVwXV0='>causes the game to lock up</a>. </li><li> Alive and well in all its <a class='twikilink' href='/pmwiki/pmwiki.php/Main/FakeDifficulty' title='/pmwiki/pmwiki.php/Main/FakeDifficulty' data-format='RmFrZURpZmZpY3VsdHk='>Fake Difficulty</a> in the <a class='twikilink' href='/pmwiki/pmwiki.php/Website/FunOrb' title='/pmwiki/pmwiki.php/Website/FunOrb' data-format='V2Vic2l0ZS9GdW5PcmI='>FunOrb</a> game <em>Star Cannon</em>; in the second level, your bullets are the last priority for the game, after floating space debris and (sometimes undodgeable) enemy swarms. Your firepower is reduced to about 1/3 of normal...if you're lucky. </li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/Genetos' title='/pmwiki/pmwiki.php/VideoGame/Genetos' data-format='VmlkZW9HYW1lL3t7R2VuZXRvc319'>Genetos</a></em> gives you two bullets at a time with the first ship (taken almost directly from <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/SpaceInvaders' title='/pmwiki/pmwiki.php/VideoGame/SpaceInvaders' data-format='VmlkZW9HYW1lL1NwYWNlSW52YWRlcnM='>Space Invaders</a></em>), and five with the second (modeled after ships in late-eighties games), then abandons the trope as you move closer to the modern day. </li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/HostileWaters' title='/pmwiki/pmwiki.php/VideoGame/HostileWaters' data-format='VmlkZW9HYW1lL0hvc3RpbGVXYXRlcnM='>Hostile Waters</a></em>: There can be only one torpedo fired by your sub on screen. </li><li> In the early 2000s, various fan-ports of <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/Phoenix' title='/pmwiki/pmwiki.php/VideoGame/Phoenix' data-format='VmlkZW9HYW1lL3t7UGhvZW5peH19'>Phoenix</a></em> were made for graphing calculators. Those had an arbitrary limit on how many of <em>your</em> bullets could be on screen, stopping you from firing more. In most versions an in-game "shop" allowed expanding this limit to an extent. </li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/TimeBandit' title='/pmwiki/pmwiki.php/VideoGame/TimeBandit' data-format='VmlkZW9HYW1lL1RpbWVCYW5kaXQ='>Time Bandit</a></em>: The player can hold down the fire button but there will be no more than two shots on screen at one time. </li></ul></div> </p><p><div class="folderlabel" onclick="togglefolder('folder10');">&nbsp;&nbsp;&nbsp;&nbsp;Miscellaneous/Unsorted&nbsp;</div><div id="folder10" class="folder" isfolder="true" style="display:block;"> <ul ><li> In <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/CommandAndConquer' title='/pmwiki/pmwiki.php/VideoGame/CommandAndConquer' data-format='VmlkZW9HYW1lL0NvbW1hbmRBbmRDb25xdWVy'>Command & Conquer</a></em>, as long as the engine pioneered by <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/CommandAndConquerTiberianDawn' title='/pmwiki/pmwiki.php/VideoGame/CommandAndConquerTiberianDawn' data-format='VmlkZW9HYW1lL0NvbW1hbmRBbmRDb25xdWVyVGliZXJpYW5EYXdu'>Command &amp; Conquer: Tiberian Dawn</a></em> was in use (although it was gradually expanded as the series progressed), units armed with railguns (which were first and only introduced in <em>Tiberian Sun</em> and of which the unmodified game featured a grand total of two - Ghost Stalker and the Mammoth Mk.II mech) could have a maximum of one active railgun "line", even if the shot had already dealt all its damage. A railgun could not be fired again until the particle system of the last beam had entirely faded out, and in fact if one was to mod a railgun with a lower firing delay than the fade-out timer of the particle system into <em>Tiberian Sun</em>, the railgun would "jam" <em>permanently</em> after firing once and could never be fired again, even if the particle system had faded. Railguns didn't appear in the series again until after the switch to the SAGE engine, in <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/CommandAndConquerTiberiumWars' title='/pmwiki/pmwiki.php/VideoGame/CommandAndConquerTiberiumWars' data-format='VmlkZW9HYW1lL0NvbW1hbmRBbmRDb25xdWVyVGliZXJpdW1XYXJz'>Command & Conquer: Tiberium Wars</a></em>, but the code remained and they can be re-created in <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/CommandAndConquerRedAlert2' title='/pmwiki/pmwiki.php/VideoGame/CommandAndConquerRedAlert2' data-format='VmlkZW9HYW1lL0NvbW1hbmRBbmRDb25xdWVyUmVkQWxlcnQy'>Command &amp; Conquer: Red Alert 2</a></em> and its expansion through modifications of the game files. It is uncertain why this limitation exists, but as it never becomes apparent in the unmodified game and is mostly a footnote to creating modifications that contain railgun weapons, it is most likely an engine limitation, rather than a conscious nerf in the interest of game balance. </li><li> It's also present in many of <a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/Action52' title='/pmwiki/pmwiki.php/VideoGame/Action52' data-format='VmlkZW9HYW1lL0FjdGlvbjUy'>Action 52</a>'s games. Some of them still avert it, allowing to spray numerous bullets, but this often causes the enemies or bosses <a class='twikilink' href='/pmwiki/pmwiki.php/Main/Unwinnable' title='/pmwiki/pmwiki.php/Main/Unwinnable' data-format='W1t7e1Vud2lubmFibGV9fSB0byBub3Qgc3Bhd25dXQ=='>to not spawn</a>. </li><li> Hero Klungo Sssavesss Teh Universsse in <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/BanjoKazooieNutsAndBolts' title='/pmwiki/pmwiki.php/VideoGame/BanjoKazooieNutsAndBolts' data-format='VmlkZW9HYW1lL0JhbmpvS2F6b29pZU51dHNBbmRCb2x0cw=='>Banjo-Kazooie: Nuts &amp; Bolts</a></em>. </li><li> A variant appears in Jack Astral's <em>Dead Detention</em> series, in <em><a class='urllink' href='https://web.archive.org/web/20170213185452/https://www.newgrounds.com/portal/view/688697'>Blue Lights Episode 5<img src="https://static.tvtropes.org/pmwiki/pub/external_link.gif" height="12" width="12" style="border:none;" /></a></em>. While there is more than one bullet allowed on the screen, a bullet hitting the alien cancels all fired bullets with a very similar result to a normal use of this trope. </li><li> In <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/Diablo' title='/pmwiki/pmwiki.php/VideoGame/Diablo' data-format='VmlkZW9HYW1lL3t7RGlhYmxvfX0='>Diablo</a></em>, the sprite limit could be reached very easily with one Chain Lightning spell with many enemies in range or multiple Fire Wall spells. Sure, it's not a gun, but you still won't be able to cast any more until the effects finish up. </li><li> In <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/DiabloII' title='/pmwiki/pmwiki.php/VideoGame/DiabloII' data-format='VmlkZW9HYW1lL0RpYWJsb0lJ'>Diablo II</a></em>, you can cast as many missiles as you like ... but then you might not see them. <a class='twikilink' href='/pmwiki/pmwiki.php/Main/HilarityEnsues' title='/pmwiki/pmwiki.php/Main/HilarityEnsues' data-format='SGlsYXJpdHlFbnN1ZXM='>Hilarity Ensues</a> when fighting against a multi-shot lightning-enchanted boss while you have slow missiles active, where moving in the wrong direction (or not at all) will get you killed by hot air. </li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/GliderPRO' title='/pmwiki/pmwiki.php/VideoGame/GliderPRO' data-format='VmlkZW9HYW1lL0dsaWRlclBSTw=='>Glider PRO</a></em> only allows two rubber bands to be on screen at once. </li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/JewelMaster' title='/pmwiki/pmwiki.php/VideoGame/JewelMaster' data-format='VmlkZW9HYW1lL0pld2VsTWFzdGVy'>Jewel Master</a></em> allowed you to raise different aspects of your spells (such as how many projectiles could be on-screen at once) by varying the levels of the rings that created them. </li><li> In <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/WizardOfWor' title='/pmwiki/pmwiki.php/VideoGame/WizardOfWor' data-format='VmlkZW9HYW1lL1dpemFyZE9mV29y'>Wizard of Wor</a></em>, a player may only have one active shot on screen at a time. This makes long shots across the maze very dangerous. </li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/MDK' title='/pmwiki/pmwiki.php/VideoGame/MDK' data-format='VmlkZW9HYW1lL3t7TURLfX0='>MDK</a></em> has it with sniper bullets... <a class='twikilink' href='/pmwiki/pmwiki.php/Main/InvokedTrope' title='/pmwiki/pmwiki.php/Main/InvokedTrope' data-format='W1tJbnZva2VkVHJvcGUgYmVjYXVzZSBlYWNoIG9uZSBoYXMgYSBjYW1lcmEgYXR0YWNoZWQsIGFuZCB5b3Ugb25seSBoYXZlIHRocmVlIGRpc3BsYXlzXV0='>because each one has a camera attached, and you only have three displays</a>. </li><li> The various "Sub Hunt" style games (the first of which seems to be <a class='urllink' href='https://en.wikipedia.org/wiki/Depthcharge'>Depthcharge<img src="https://static.tvtropes.org/pmwiki/pub/external_link.gif" height="12" width="12" style="border:none;" /></a> in 1977) where you control a ship and fight against enemy submarines by dropping depth charges on them. You have an unlimited number of depth charges, but a counter on the screen governs how many you can have in the water at a time. When a depth charge hits an enemy or the ocean floor, it "regenerates" back on your ship and you can fire another one. Basically the gameplay revolves around this mechanic as you must use depth charges judiciously or you may find yourself momentarily defenseless against a swarm of subs. </li><li> It's not obvious unless you slow the framerate right down, but ranged weapons in <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/DwarfFortress' title='/pmwiki/pmwiki.php/VideoGame/DwarfFortress' data-format='VmlkZW9HYW1lL0R3YXJmRm9ydHJlc3M='>Dwarf Fortress</a></em> had this limitation imposed from V0.31 onwards; a second shot cannot be fired until after the game rolls to determine whether or not the first has hit its target. In older versions it was possible to fire so fast that six or seven arrows or crossbow bolts would be in the air before the first hit, which, combined with the fact that arrows or crossbow bolts had a high probability of a <a class='twikilink' href='/pmwiki/pmwiki.php/Main/OneHitKill' title='/pmwiki/pmwiki.php/Main/OneHitKill' data-format='T25lSGl0S2lsbA=='>One-Hit Kill</a>, means the rest of the shots were just wasted. (<a class='twikilink' href='/pmwiki/pmwiki.php/Main/TheresNoKillLikeOverkill' title='/pmwiki/pmwiki.php/Main/TheresNoKillLikeOverkill' data-format='W1tUaGVyZXNOb0tpbGxMaWtlT3ZlcmtpbGwgSXQgZGlkIGxvb2sgYmFkYXNzIHRob3VnaC5dXQ=='>It did look badass though.</a>) </li><li> In <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/Battlezone1998' title='/pmwiki/pmwiki.php/VideoGame/Battlezone1998' data-format='W1tWaWRlb0dhbWUvQmF0dGxlem9uZTE5OTggQmF0dGxlem9uZSBJSTogQ29tYmF0IENvbW1hbmRlcl1d'>Battlezone II: Combat Commander</a></em>, the TAG missile fires a homing dart, which has a particularly bizarre bullet code. Under normal use, it will only fire one dart at a time, and will let you fire again once the dart flies past its 100 meter range. But if you fire off into the sky and hold down the trigger, you'll suddenly spray out a dozen darts if you aim downward once the airborne dart expires. </li><li> Earlier computer versions of <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/TheOregonTrail' title='/pmwiki/pmwiki.php/VideoGame/TheOregonTrail' data-format='VmlkZW9HYW1lL1RoZU9yZWdvblRyYWls'>The Oregon Trail</a></em> allow only one bullet at a time during hunts. Justified in that you are shooting a single-shot rifle, not a machine gun. </li></ul></div> <hr data-format='&#8212;&#8212;' /> </p></div> <div class="section-links" itemscope itemtype="http://schema.org/SiteNavigationElement"> <div class="titles"> <div><h3 class="text-center text-uppercase">Previous</h3></div> <div><h3 class="text-center text-uppercase">Index</h3></div> <div><h3 class="text-center text-uppercase">Next</h3></div> </div> <div class="links"> <ul> <li> <a href="/pmwiki/pmwiki.php/Main/OneHitPointWonder">One-Hit-Point Wonder</a> </li> <li> <a href="/pmwiki/pmwiki.php/Main/OlderThanTheNES">Older Than the NES</a> </li> <li> <a href="/pmwiki/pmwiki.php/Main/OxygenMeter">Oxygen Meter</a> </li> </ul> <ul> <li> <a href="/pmwiki/pmwiki.php/Main/NotWithTheSafetyOnYouWont">Not With the Safety On, You Won't</a> </li> <li> <a href="/pmwiki/pmwiki.php/Main/GunsAndGunplayTropes">Guns and Gunplay Tropes</a> </li> <li> <a href="/pmwiki/pmwiki.php/Main/OneBulletClips">One Bullet Clips</a> </li> </ul> <ul> <li> <a href="/pmwiki/pmwiki.php/Main/IdleGame">Idle Game</a> </li> <li> <a href="/pmwiki/pmwiki.php/QuoteSource/VideoGamesNumberToF">QuoteSource/Video Games Number To F</a> </li> <li> <a href="/pmwiki/pmwiki.php/VideoGame/ApertureHandLab">Aperture Hand Lab</a> </li> </ul> </div> </div> <div id="proper_player_insert_div" class="outer_ads_by_salon_wrapper"> </div> <script> if( document.getElementById('user-prefs').classList.contains('folders-open') ){ console.log('open all folders'); var elements = document.querySelectorAll('.folderlabel, .toggle-all-folders-button'); elements.forEach((element) => { element.classList.add('is-open'); }); } </script> <script> function insert_ad(adCount, paragraph, adName, folder = 0){ var ad_count = adCount < 10 ? "0"+adCount : adCount; var inside_folder = folder ? "1" : "0"; // Create element for ad unit var adUnit = document.createElement('div'); adUnit.setAttribute("class", `htlad-${adName}`); adUnit.setAttribute("id", `${adName}_${adCount}`); adUnit.setAttribute("data-targeting", `{"slot_number": "${ad_count}", "in_folder": "${inside_folder}"}`); // Add Advertisement label var adLabel = document.createElement("span"); adLabel.innerHTML = "Advertisement:" adLabel.setAttribute("class","ad-caption"); var adWrapper = document.createElement("div"); adWrapper.setAttribute("class","tvtropes-ad-unit mobile-fad square_fad mobile_unit_scroll"); adWrapper.setAttribute("id","mobile_"+adCount); // Merge all pieces adWrapper.appendChild(adLabel); adWrapper.appendChild(adUnit); // Insert into DOM paragraph.parentNode.insertBefore(adWrapper, paragraph.nextSibling); // for getting correct ad count even when ones are deleted globalAdInsertionCount++; } function insert_ads_in_content(folder = 0, totalAdsCount = 0, pHeight = 0) { if(folder) var node = folder.firstElementChild; // Get the first traversable element of the folder else var node = document.getElementById("main-article").firstElementChild; var pCount = 0; var adCount = totalAdsCount + 1; var nodeCount = 0; var nodeLevel = 0; var x = 0; //loop through elements of content while(x<300) { x++; nodeCount++; //traverse to the next element (if exists) if(nodeCount>1) { if(!node.nextElementSibling) { console.log('adparser: no next element'); if(nodeLevel>0) { nodeLevel--; node = node.parentElement; console.log('adparser: we were down a level, go back up ('+nodeLevel+')'); continue; } else { break; } } node = node.nextElementSibling; } //skip inserted ads or empty nodes if(!node || node==="null" || typeof node !== "object") continue; if(!node.offsetHeight || node.offsetHeight==0) continue; if(node.className && node.className.includes('tvtropes-ad-unit')) continue; //skip if image block that has a caption after it (NEW: ALWAYS SKIP THE IMAGE BLOCK) if(node.className && node.className.includes('quoteright')) { // if(node.nextElementSibling && node.nextElementSibling.className && node.nextElementSibling.className.includes('acaptionright')) { pHeight += node.offsetHeight; continue; // } } //if very large element, loop through elements inside if(node.offsetHeight>700 && node.firstElementChild) { nodeLevel++; console.log('adparser: traverse through large element='+node.nodeName+', height='+node.offsetHeight+' level='+nodeLevel); node = node.firstElementChild; nodeCount = 0; continue; } // Skip if after a folder label or if the current node is a folder label itself if ((node.previousElementSibling && node.previousElementSibling.className && node.previousElementSibling.className.includes("folderlabel")) || (node.className && node.className.includes("folderlabel"))) { console.log('adparser: skipping ad insertion related to folder label'); if (!node.className || !node.className.includes("folderlabel")) { // If it's not the folder label itself, skip the insertion continue; } else { pHeight += node.offsetHeight; // If it is the folder label, just add its height to pHeight and continue continue; } } //paragraph counter if(node.nodeName=="P") pCount++; //add height of node to counter pHeight += node.offsetHeight; //add margin of node to counter if available try { var nodeStyle = getComputedStyle(node); if(nodeStyle.marginTop && parseInt(nodeStyle.marginTop)>0) pHeight+=parseInt(nodeStyle.marginTop); if(nodeStyle.marginBottom && parseInt(nodeStyle.marginBottom)>0) pHeight+=parseInt(nodeStyle.marginBottom); //console.log(nodeStyle.marginTop+','+nodeStyle.marginBottom); } catch(e) { } //debug logging console.log('adparser: name='+node.nodeName+', height='+node.offsetHeight+' =>'+pHeight); //console.log(node.className); // check if user is logged in var logged_in = 0; // Calculate the required height based on the user's logged-in status or ad count var requiredHeight = globalAdInsertionCount > 15 ? 1500 : 750; if(logged_in) requiredHeight = 2250; // only inserts an ad if the total height and paragraph count conditions are met if ((adCount === 1 && pCount >= 1 && pHeight >= 400) || pHeight >= requiredHeight) { // Check existing ad positions and compare with the item about to be inserted after var ads = document.querySelectorAll('.tvtropes-ad-unit'); var nodeBottomPosition = node.getBoundingClientRect().bottom + window.scrollY; // Get bottom position of current node var canInsertAd = true; // Flag to track if we can insert an ad ads.forEach(function (ad) { var adTop = ad.getBoundingClientRect().top + window.scrollY; var adBottom = ad.getBoundingClientRect().bottom + window.scrollY; // Ensure the new ad is at least requiredHeight away from any existing ads if (Math.abs(nodeBottomPosition - adTop) < requiredHeight || Math.abs(nodeBottomPosition - adBottom) < requiredHeight) { canInsertAd = false; console.log('adparser: cannot insert ad, not enough space between ads.'); } }); // If we can't insert an ad, skip to the next node if(!canInsertAd) continue; // after 50 ads, stop inserting. Or after 20 ads if the user is logged in if ((adCount > 50 || (adCount > 20 && logged_in))) { break; } console.log('adparser: insert ad '+adCount); insert_ad(adCount, node, "tvtropes_m_incontent_dynamic", folder); adCount++; pHeight = 0; pCount = 0; } } //insert one at end if room var maxpHeight = 500; if(logged_in) maxpHeight=1500; if(pHeight>=maxpHeight && folder==0) { console.log('adparser: insert ad'); insert_ad(adCount, document.getElementById("main-article").lastElementChild, "tvtropes_m_incontent_dynamic"); } // delete ads after the 8th one to reduce load times BCLighthouseTag.cmd.push(function() { googletag.cmd.push(function() { googletag.pubads().addEventListener('slotRequested', function(event) { const slot = event.slot; const slotName = slot.getAdUnitPath().split('/').pop() || slot.getAdUnitPath(); if(slotName === 'tvtropes_m_incontent_dynamic') { const slotNumber = parseInt(slot.getTargeting('slot_number')[0]); console.log(slotName+' = '+slotNumber); // Determine the ad slot that needs to be deleted. const adNumberToDelete = slotNumber - 8; if(adNumberToDelete > 0) { const adToDelete = document.getElementById(`mobile_${adNumberToDelete}`); if(adToDelete) { var adHeight = window.pageYOffset + adToDelete.getBoundingClientRect().top; var windowHeight = window.scrollY; // Check if the ad element exists and is above the current viewport (above the fold). if (adHeight < windowHeight) { console.log('ad delete = '+adNumberToDelete); adToDelete.remove(); } } } } }); }); }); // return pHeight return pHeight; } if(1 && (document.body.clientWidth && document.body.clientWidth<=768) ) { insert_ads_in_content(); } </script> </article> <div id="main-content-sidebar"><div class="sidebar-item display-options"> <ul class="sidebar display-toggles"> <li>Show Spoilers <div id="sidebar-toggle-showspoilers" class="display-toggle show-spoilers"></div></li> <li>Night Vision <div id="sidebar-toggle-nightvision" class="display-toggle night-vision"></div></li> <li>Sticky Header <div id="sidebar-toggle-stickyheader" class="display-toggle sticky-header"></div></li> <li>Wide Load <div id="sidebar-toggle-wideload" class="display-toggle wide-load"></div></li> </ul> <script>updateDesktopPrefs();</script> </div> <div class="sidebar-item quick-links" itemtype="http://schema.org/SiteNavigationElement"> <p class="sidebar-item-title" data-title="Important Links">Important Links</p> <div class="padded"> <a href="/pmwiki/query.php?type=att">Ask The Tropers</a> <a href="/pmwiki/query.php?type=tf">Trope Finder</a> <a href="/pmwiki/query.php?type=ykts">Media Finder</a> <a href="/pmwiki/tlp_activity.php">Trope Launch Pad</a> <a href="/pmwiki/query.php?type=wl">Tech Wishlist</a></li> <a href="/pmwiki/review_activity.php">Reviews</a> <a href="/pmwiki/ad-free-subscribe.php">Go Ad Free!</a> <div class="crucial_browsing_dropdown"> <a href="javascript:void(0);" onclick="double_dropdown(); return false;" id="crucial_browsing_dropdown"><span class="new_blue">Crucial Browsing</span><i class="fa fa-angle-down"></i></a> <ul id="main_dropdown"> <li class="first_dropdown"><a href="/pmwiki/index_report.php">Indexes</a> <li class="first_dropdown"><a href="javascript:void(0);" data-click-toggle="active">Genre</a> <ul> <li><a href='/pmwiki/pmwiki.php/Main/ActionAdventureTropes' title='Main/ActionAdventureTropes'>Action Adventure</a></li> <li><a href='/pmwiki/pmwiki.php/Main/ComedyTropes' title='Main/ComedyTropes'>Comedy</a></li> <li><a href='/pmwiki/pmwiki.php/Main/CommercialsTropes' title='Main/CommercialsTropes'>Commercials</a></li> <li><a href='/pmwiki/pmwiki.php/Main/CrimeAndPunishmentTropes' title='Main/CrimeAndPunishmentTropes'>Crime &amp; Punishment</a></li> <li><a href='/pmwiki/pmwiki.php/Main/DramaTropes' title='Main/DramaTropes'>Drama</a></li> <li><a href='/pmwiki/pmwiki.php/Main/HorrorTropes' title='Main/HorrorTropes'>Horror</a></li> <li><a href='/pmwiki/pmwiki.php/Main/LoveTropes' title='Main/LoveTropes'>Love</a></li> <li><a href='/pmwiki/pmwiki.php/Main/NewsTropes' title='Main/NewsTropes'>News</a></li> <li><a href='/pmwiki/pmwiki.php/Main/ProfessionalWrestling' title='Main/ProfessionalWrestling'>Professional Wrestling</a></li> <li><a href='/pmwiki/pmwiki.php/Main/SpeculativeFictionTropes' title='Main/SpeculativeFictionTropes'>Speculative Fiction</a></li> <li><a href='/pmwiki/pmwiki.php/Main/SportsStoryTropes' title='Main/SportsStoryTropes'>Sports Story</a></li> <li><a href='/pmwiki/pmwiki.php/Main/WarTropes' title='Main/WarTropes'>War</a></li> </ul> </li> <li class="first_dropdown"><a href="javascript:void(0);" data-click-toggle="active">Media</a> <ul> <li><a href="/pmwiki/pmwiki.php/Main/Media" title="Main/Media">All Media</a></li> <li><a href="/pmwiki/pmwiki.php/Main/AnimationTropes" title="Main/AnimationTropes">Animation (Western)</a></li> <li><a href="/pmwiki/pmwiki.php/Main/Anime" title="Main/Anime">Anime</a></li> <li><a href="/pmwiki/pmwiki.php/Main/ComicBookTropes" title="Main/ComicBookTropes">Comic Book</a></li> <li><a href="/pmwiki/pmwiki.php/Main/FanFic" title="FanFic/FanFics">Fan Fics</a></li> <li><a href="/pmwiki/pmwiki.php/Main/Film" title="Main/Film">Film</a></li> <li><a href="/pmwiki/pmwiki.php/Main/GameTropes" title="Main/GameTropes">Game</a></li> <li><a href="/pmwiki/pmwiki.php/Main/Literature" title="Main/Literature">Literature</a></li> <li><a href="/pmwiki/pmwiki.php/Main/MusicAndSoundEffects" title="Main/MusicAndSoundEffects">Music And Sound Effects</a></li> <li><a href="/pmwiki/pmwiki.php/Main/NewMediaTropes" title="Main/NewMediaTropes">New Media</a></li> <li><a href="/pmwiki/pmwiki.php/Main/PrintMediaTropes" title="Main/PrintMediaTropes">Print Media</a></li> <li><a href="/pmwiki/pmwiki.php/Main/Radio" title="Main/Radio">Radio</a></li> <li><a href="/pmwiki/pmwiki.php/Main/SequentialArt" title="Main/SequentialArt">Sequential Art</a></li> <li><a href="/pmwiki/pmwiki.php/Main/TabletopGames" title="Main/TabletopGames">Tabletop Games</a></li> <li><a href="/pmwiki/pmwiki.php/MediaNotes/Television" title="MediaNotes/Television">Television</a></li> <li><a href="/pmwiki/pmwiki.php/Main/Theater" title="Main/Theater">Theater</a></li> <li><a href="/pmwiki/pmwiki.php/Main/VideogameTropes" title="Main/VideogameTropes">Videogame</a></li> <li><a href="/pmwiki/pmwiki.php/Main/Webcomics" title="Main/Webcomics">Webcomics</a></li> </ul> </li> <li class="first_dropdown"><a href="javascript:void(0);" data-click-toggle="active">Narrative</a> <ul> <li><a href="/pmwiki/pmwiki.php/Main/UniversalTropes" title="Main/UniversalTropes">Universal</a></li> <li><a href="/pmwiki/pmwiki.php/Main/AppliedPhlebotinum" title="Main/AppliedPhlebotinum">Applied Phlebotinum</a></li> <li><a href="/pmwiki/pmwiki.php/Main/CharacterizationTropes" title="Main/CharacterizationTropes">Characterization</a></li> <li><a href="/pmwiki/pmwiki.php/Main/Characters" title="Main/Characters">Characters</a></li> <li><a href="/pmwiki/pmwiki.php/Main/CharactersAsDevice" title="Main/CharactersAsDevice">Characters As Device</a></li> <li><a href="/pmwiki/pmwiki.php/Main/Dialogue" title="Main/Dialogue">Dialogue</a></li> <li><a href="/pmwiki/pmwiki.php/Main/Motifs" title="Main/Motifs">Motifs</a></li> <li><a href="/pmwiki/pmwiki.php/Main/NarrativeDevices" title="Main/NarrativeDevices">Narrative Devices</a></li> <li><a href="/pmwiki/pmwiki.php/Main/Paratext" title="Main/Paratext">Paratext</a></li> <li><a href="/pmwiki/pmwiki.php/Main/Plots" title="Main/Plots">Plots</a></li> <li><a href="/pmwiki/pmwiki.php/Main/Settings" title="Main/Settings">Settings</a></li> <li><a href="/pmwiki/pmwiki.php/Main/Spectacle" title="Main/Spectacle">Spectacle</a></li> </ul> </li> <li class="first_dropdown"><a href="javascript:void(0);" data-click-toggle="active">Other Categories</a> <ul> <li><a href="/pmwiki/pmwiki.php/Main/BritishTellyTropes" title="Main/BritishTellyTropes">British Telly</a></li> <li><a href="/pmwiki/pmwiki.php/Main/TheContributors" title="Main/TheContributors">The Contributors</a></li> <li><a href="/pmwiki/pmwiki.php/Main/CreatorSpeak" title="Main/CreatorSpeak">Creator Speak</a></li> <li><a href="/pmwiki/pmwiki.php/Main/Creators" title="Main/Creators">Creators</a></li> <li><a href="/pmwiki/pmwiki.php/Main/DerivativeWorks" title="Main/DerivativeWorks">Derivative Works</a></li> <li><a href="/pmwiki/pmwiki.php/Main/LanguageTropes" title="Main/LanguageTropes">Language</a></li> <li><a href="/pmwiki/pmwiki.php/Main/LawsAndFormulas" title="Main/LawsAndFormulas">Laws And Formulas</a></li> <li><a href="/pmwiki/pmwiki.php/Main/ShowBusiness" title="Main/ShowBusiness">Show Business</a></li> <li><a href="/pmwiki/pmwiki.php/Main/SplitPersonalityTropes" title="Main/SplitPersonalityTropes">Split Personality</a></li> <li><a href="/pmwiki/pmwiki.php/Main/StockRoom" title="Main/StockRoom">Stock Room</a></li> <li><a href="/pmwiki/pmwiki.php/Main/TropeTropes" title="Main/TropeTropes">Trope</a></li> <li><a href="/pmwiki/pmwiki.php/Main/Tropes" title="Main/Tropes">Tropes</a></li> <li><a href="/pmwiki/pmwiki.php/Main/TruthAndLies" title="Main/TruthAndLies">Truth And Lies</a></li> <li><a href="/pmwiki/pmwiki.php/Main/TruthInTelevision" title="Main/TruthInTelevision">Truth In Television</a></li> </ul> </li> <li class="first_dropdown"><a href="javascript:void(0);" data-click-toggle="active">Topical Tropes</a> <ul> <li><a href="/pmwiki/pmwiki.php/Main/BetrayalTropes" title="Main/BetrayalTropes">Betrayal</a></li> <li><a href="/pmwiki/pmwiki.php/Main/CensorshipTropes" title="Main/CensorshipTropes">Censorship</a></li> <li><a href="/pmwiki/pmwiki.php/Main/CombatTropes" title="Main/CombatTropes">Combat</a></li> <li><a href="/pmwiki/pmwiki.php/Main/DeathTropes" title="Main/DeathTropes">Death</a></li> <li><a href="/pmwiki/pmwiki.php/Main/FamilyTropes" title="Main/FamilyTropes">Family</a></li> <li><a href="/pmwiki/pmwiki.php/Main/FateAndProphecyTropes" title="Main/FateAndProphecyTropes">Fate And Prophecy</a></li> <li><a href="/pmwiki/pmwiki.php/Main/FoodTropes" title="Main/FoodTropes">Food</a></li> <li><a href="/pmwiki/pmwiki.php/Main/HolidayTropes" title="Main/HolidayTropes">Holiday</a></li> <li><a href="/pmwiki/pmwiki.php/Main/MemoryTropes" title="Main/MemoryTropes">Memory</a></li> <li><a href="/pmwiki/pmwiki.php/Main/MoneyTropes" title="Main/MoneyTropes">Money</a></li> <li><a href="/pmwiki/pmwiki.php/Main/MoralityTropes" title="Main/MoralityTropes">Morality</a></li> <li><a href="/pmwiki/pmwiki.php/Main/PoliticsTropes" title="Main/PoliticsTropes">Politics</a></li> <li><a href="/pmwiki/pmwiki.php/Main/ReligionTropes" title="Main/ReligionTropes">Religion</a></li> <li><a href="/pmwiki/pmwiki.php/Main/SchoolTropes" title="Main/SchoolTropes">School</a></li> </ul> </li> </ul> </div> <div class="resources_dropdown"> <a href="javascript:void(0);" onclick="second_double_dropdown(); return false;" id="resources_dropdown"><span class="new_blue blue">Resources</span><i class="fa fa-angle-down"></i></a> <ul id="second_main_dropdown" class="padded font-s" itemscope itemtype="http://schema.org/SiteNavigationElement"> <li class="second_dropdown"><a href="#test" data-click-toggle="active">Tools</a> <ul> <li><a href="/pmwiki/pmwiki.php/Administrivia/IttyBittyWikiTools">Wiki Tools</a></li> <li><a href="/pmwiki/cutlist.php" data-modal-target="login" rel="nofollow">Cut List</a></li> <li><a href="/pmwiki/image-fixer.php" data-modal-target="login" rel="nofollow">Image Fixer</a></li> <li><a href="/pmwiki/changes.php">New Edits</a></li> <li><a href="/pmwiki/articles_new.php">New Articles</a></li> <li><a href="/pmwiki/recent_edit_reasons.php">Edit Reasons</a></li> <li><a href="/pmwiki/isolated_pages.php">Isolated Pages</a></li> <li><a href="/pmwiki/launches.php" data-modal-target="login" rel="nofollow">Launches</a></li> <li><a href="/pmwiki/img_list.php" data-modal-target="login" rel="nofollow">Images List</a></li> <li><a href="/pmwiki/recent_videos.php">Recent Videos</a></li> <li><a href="/pmwiki/crown_activity.php">Crowner Activity</a></li> <li><a href="/pmwiki/no_types.php">Un-typed Pages</a></li> <li><a href="/pmwiki/page_type_audit.php">Recent Page Type Changes</a></li> </ul> </li> <li class="second_dropdown"><a href="javascript:void(0);" data-click-toggle="active">Templates</a> <ul> <li><a href="/pmwiki/pmwiki.php/Main/TropeEntryTemplate">Trope Entry</a></li> <li><a href="/pmwiki/pmwiki.php/Main/ProgramEntryTemplate">Works</a></li> <li><a href="/pmwiki/pmwiki.php/Administrivia/CharacterSheetTemplate">Character Sheet</a></li> <li><a href="/pmwiki/pmwiki.php/Administrivia/PlayingWithWikiTemplate">Playing With</a></li> <li><a href="/pmwiki/pmwiki.php/FanficRecs/TemplatePageForNewFandomRecommendations">Fandom</a></li> </ul> </li> <li class="second_dropdown"><a href="javascript:void(0);" data-click-toggle="active">Tips</a> <ul> <li><a href="/pmwiki/pmwiki.php/Administrivia/CreatingNewRedirects">Creating New Redirects</a></li> <li><a href="/pmwiki/pmwiki.php/Administrivia/Crosswicking">Cross Wicking</a></li> <li><a href="/pmwiki/pmwiki.php/Administrivia/TipsForEditing">Tips for Editing</a></li> <li><a href="/pmwiki/pmwiki.php/Administrivia/TextFormattingRules">Text Formatting Rules</a></li> <li><a href="/pmwiki/pmwiki.php/Administrivia/TVTropesGlossary">Glossary</a></li> <li><a href="/pmwiki/pmwiki.php/Administrivia/EditReasonsAndWhyYouShouldUseThem">Edit Reasons</a></li> <li><a href="/pmwiki/pmwiki.php/Administrivia/HandlingSpoilers">Handling Spoilers</a></li> <li><a href="/pmwiki/pmwiki.php/Administrivia/WordCruft">Word Cruft</a></li> <li><a href="/pmwiki/pmwiki.php/Main/Administrivia">Administrivia</a></li> <li><a href="/pmwiki/pmwiki.php/Main/FAQ">FAQ</a></li> </ul> </li> <li class="second_dropdown"><a href="/pmwiki/changelog.php">Changelog</a></li> <li class="second_dropdown"><a href="/pmwiki/query.php?type=bug">Report Bug</a></li> <li class="second_dropdown"><a href="/pmwiki/conversations.php?topic=renames">Trope Repair Shop</a></li> <li class="second_dropdown"><a href="/pmwiki/conversations.php?topic=images">Image Pickin'</a></li> </ul> </div> </div> <div id="asteri-sidebar" style="display:none"> <p style="margin-top: 20px;" class="sidebar-item-title" data-title="Advertisement">Advertisement:</p> <div id="asteri_cont"></div> </div> <script> //asteri enabled if((tvtropes_config.asteri_stream_enabled || tvtropes_config.get_asteri_stream == 'live')) { //aster stream currently live and not a logged-in troper if(!tvtropes_config.is_logged_in && cookies.read('asteri_event_active') != '') { document.getElementById('asteri-sidebar').style.display=""; } } </script> </div> <script> if(!is_mobile()) { //don't insert if content is too small on page var tropes_insert_side_ad=true; if(document.getElementById("main-article") && document.getElementById("main-article").clientHeight) { var sidebar_height=document.getElementById("main-article").clientHeight; if(sidebar_height>0 && sidebar_height<500) { tropes_insert_side_ad=false; console.log('ad parser: content too small for sidebar ad'); } } if(tropes_insert_side_ad) { document.write(` <div id="stick-cont" class="sidebar-item sb-fad-unit"> <p class="sidebar-item-title" data-title="Advertisement">Advertisement:</p> <div id="stick-bar" class="sidebar-section"> <div class="square_fad fad-size-300x600 fad-section text-center"> <div class='tvtropes-ad-unit '> <div id='tvtropes_dt_inview' class='htlad-tvtropes_dt_inview'></div> </div> </div> </div> </div> `); } } </script> </div> </div> <div id="action-bar-bottom" class="action-bar tablet-off"> <a href="#top-of-page" class="scroll-to-top dead-button" onclick="scroll_to_top(500);">Top</a> </div> </div> <footer id="main-footer"> <div id="main-footer-inner"> <div class="footer-left"> <a href="/" class="img-link"><img data-src="/img/tvtropes-footer-logo.png" alt="TV Tropes" class="logo_image lazy-image" title="TV Tropes" /></a> <ul class="social-buttons"> <li><a class="btn fb" target="_blank" onclick="_gaq.push(['_trackEvent', 'btn-social-icon', 'click', 'btn-facebook']);" href="https://www.facebook.com/tvtropes"><i class="fa fa-facebook"></i></a></li> <li><a class="btn tw" target="_blank" onclick="_gaq.push(['_trackEvent', 'btn-social-icon', 'click', 'btn-twitter']);" href="https://www.twitter.com/tvtropes"><i class="fa fa-twitter"></i></a> </li> </ul> </div> <hr/> <ul class="footer-menu" itemscope itemtype="http://schema.org/SiteNavigationElement"> <li><h4 class="footer-menu-header">TVTropes</h4></li> <li><a href="/pmwiki/pmwiki.php/Main/Administrivia">About TVTropes</a></li> <li><a href="/pmwiki/pmwiki.php/Administrivia/TheGoalsOfTVTropes">TVTropes Goals</a></li> <li><a href="/pmwiki/pmwiki.php/Administrivia/TheTropingCode">Troping Code</a></li> <li><a href="/pmwiki/pmwiki.php/Administrivia/TVTropesCustoms">TVTropes Customs</a></li> <li><a href="/pmwiki/pmwiki.php/JustForFun/TropesOfLegend">Tropes of Legend</a></li> <li><a href="/pmwiki/ad-free-subscribe.php">Go Ad-Free</a></li> </ul> <hr/> <ul class="footer-menu" itemscope itemtype="http://schema.org/SiteNavigationElement"> <li><h4 class="footer-menu-header">Community</h4></li> <li><a href="/pmwiki/query.php?type=att">Ask The Tropers</a></li> <li><a href="/pmwiki/tlp_activity.php">Trope Launch Pad</a></li> <li><a href="/pmwiki/query.php?type=tf">Trope Finder</a></li> <li><a href="/pmwiki/query.php?type=ykts">Media Finder</a></li> <li><a href="/pmwiki/query.php?type=wl">Tech Wishlist</a></li> <li><a href="/pmwiki/review_activity.php">Reviews</a></li> <li><a href="/pmwiki/topics.php">Forum</a></li> </ul> <hr/> <ul class="footer-menu" itemscope itemtype="http://schema.org/SiteNavigationElement"> <li><h4 class="footer-menu-header">Tropes HQ</h4></li> <li><a href="/pmwiki/about.php">About Us</a></li> <li><a href="/pmwiki/contact.php">Contact Us</a></li> <li><a href="/pmwiki/query.php?type=bug">Report Bug</a></li> <li><a href="/pmwiki/changelog.php">Changelog</a></li> <li><a href="/pmwiki/dmca.php">DMCA Notice</a></li> <li><a href="/pmwiki/privacypolicy.php">Privacy Policy</a></li> </ul> </div> <div id="desktop-on-mobile-toggle" class="text-center gutter-top gutter-bottom tablet-on"> <a href="/pmwiki/switchDeviceCss.php?mobileVersion=1" rel="nofollow">Switch to <span class="txt-desktop">Desktop</span><span class="txt-mobile">Mobile</span> Version</a> </div> <div class="legal"> <p>TVTropes is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. <br>Permissions beyond the scope of this license may be available from <a xmlns:cc="http://creativecommons.org/ns#" href="mailto:thestaff@tvtropes.org" rel="cc:morePermissions"> thestaff@tvtropes.org</a>.</p> <br> <div class="privacy_wrapper"> </div> </div> </footer> <style> div.fc-ccpa-root { position: absolute !important; bottom: 93px !important; margin: auto !important; width: 100% !important; z-index: 9999 !important; overflow: hidden !important; } .fc-ccpa-root .fc-dns-dialog .fc-dns-link p{ outline: none !important; text-decoration: underline !important; font-size: .7em !important; font-family: sans-serif !important; } .fc-ccpa-root .fc-dns-dialog .fc-dns-link .fc-button-background { background: none !important; } </style> <div id="_pm_videoViewer" class="full-screen"> <a href="#close" class="close" id="_pm_videoViewer-close"></a> <div class="_pmvv-body"> <div class="_pmvv-vidbox"> </div> </div> </div> <script type="text/javascript"> var cleanCreativeEnabled = ""; var donation = ""; var live_ads = "1"; var img_domain = "https://static.tvtropes.org"; var snoozed = cookies.read('snoozedabm'); var elem = document.createElement('script'); elem.async = true; // if page type is article or homepage load bundle_nojquery. otherwise load regular bundle.js if(tvtropes_config.universal_page_type == "Article" || tvtropes_config.universal_page_type == "HomePage") { elem.src = 'https://assets.tvtropes.org/design/assets/bundle_nojquery.js?rev=a1fdc3097a55e179219cd1bf535ab41b48dc60da'; } else { elem.src = 'https://assets.tvtropes.org/design/assets/bundle.js?rev=a1fdc3097a55e179219cd1bf535ab41b48dc60da'; } elem.onload = function() { } document.getElementsByTagName('head')[0].appendChild(elem); </script> <script type="text/javascript"> function send_analytics_event(user_type, donation){ // if(user_type == 'uncached' || user_type == 'cached'){ // ga('send', 'event', 'caching', 'load', user_type, {'nonInteraction': 1}); // return; // } var event_name = user_type; if(donation == 'true'){ event_name += "_donation" }else if(typeof(valid_user) == 'undefined'){ event_name += "_blocked" }else if(valid_user == true){ event_name += "_unblocked"; }else{ event_name = "_unknown" } ga('send', 'event', 'ads', 'load', event_name, {'nonInteraction': 1}); } send_analytics_event("guest", "false"); </script> <!-- Quantcast Tag --> <script type="text/javascript"> window._qevents = window._qevents || []; (function() { var elem = document.createElement('script'); elem.src = (document.location.protocol == "https:" ? "https://secure" : "http://edge") + ".quantserve.com/quant.js"; elem.async = true; elem.type = "text/javascript"; var scpt = document.getElementsByTagName('script')[0]; scpt.parentNode.insertBefore(elem, scpt); })(); window._qevents.push({ qacct:"p-mEzuYq24VEJ-3" }); </script> <noscript> <div style="display:none;"> <img src="//pixel.quantserve.com/pixel/p-mEzuYq24VEJ-3.gif" border="0" height="1" width="1" alt="Quantcast"/> </div> </noscript> <!-- End Quantcast tag --> <!-- Begin comScore Tag --> <script> var _comscore = _comscore || []; _comscore.push({ c1: "2", c2: "38282685" }); (function() { var s = document.createElement("script"), el = document.getElementsByTagName("script")[0]; s.async = true; s.src = "https://sb.scorecardresearch.com/cs/38282685/beacon.js"; el.parentNode.insertBefore(s, el); })(); </script> <noscript> <img src="https://sb.scorecardresearch.com/p?c1=2&amp;c2=38282685&amp;cv=3.6.0&amp;cj=1"> </noscript> <!-- End comScore Tag --> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10