CINXE.COM

Nerd Action Hero - 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>Nerd Action Hero - TV Tropes</title> <meta name="description" content="When a character is primarily a nerd (or possibly Geek), but still manages to pull off feats of Action Heroism, then they are a Nerd Action Hero. Sometimes &hellip;" /> <link rel="canonical" href="https://tvtropes.org/pmwiki/pmwiki.php/Main/NerdActionHero" /> <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="Nerd Action Hero - TV Tropes" /> <meta name="twitter:description" content="When a character is primarily a nerd (or possibly Geek), but still manages to pull off feats of Action Heroism, then they are a Nerd Action Hero. Sometimes &hellip;" /> <meta name="twitter:image:src" content="https://static.tvtropes.org/pmwiki/pub/images/ddb65da1a31d7e2cb84e8ed209944bb3.jpg" /> <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="Nerd Action Hero - TV Tropes" /> <meta property="og:type" content="website" /> <meta property="og:url" content="https://tvtropes.org/pmwiki/pmwiki.php/Main/NerdActionHero" /> <meta property="og:image" content="https://static.tvtropes.org/pmwiki/pub/images/ddb65da1a31d7e2cb84e8ed209944bb3.jpg" /> <meta property="og:description" content="When a character is primarily a nerd (or possibly Geek), but still manages to pull off feats of Action Heroism, then they are a Nerd Action Hero. Sometimes this is the result of Character Development, where the character starts out as a nerd but &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/JustBetweenYouAndMe" class="button-random-trope" rel="nofollow" onclick="gtag('event', 'trope_random_button_click', {'is_user': 0});"></a> <a href="/pmwiki/pmwiki.php/Creator/EdKrynski" 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/NerdActionHero?action=edit"> <i class="fa fa-pencil"></i> Edit Page</a></li><li class="link-related"><a href="/pmwiki/relatedsearch.php?term=Main/NerdActionHero"> <i class="fa fa-share-alt"></i> Related</a></li><li class="link-history"><a href="/pmwiki/article_history.php?article=Main.NerdActionHero" 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.NerdActionHero" 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/NerdActionHero?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="NerdActionHero"/> <input type="hidden" id="article_id" value="223971" /> <input type="hidden" id="logged_in" value="false" /> <p id="current_url" class="hidden">http://tvtropes.org/pmwiki/pmwiki.php/Main/NerdActionHero</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"> Nerd Action Hero </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": "Nerd Action Hero", "item": "https://tvtropes.org/pmwiki/pmwiki.php/Main/NerdActionHero" }] } </script> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "name": "Nerd Action Hero", "headline": "Nerd Action Hero", "url": "https://tvtropes.org/pmwiki/pmwiki.php/Main/NerdActionHero", "image": "https://static.tvtropes.org/pmwiki/pub/images/ddb65da1a31d7e2cb84e8ed209944bb3.jpg", "author": { "@type": "Organization", "name": "Contributors to TV Tropes (aka Tropers)" }, "datePublished": "2010-10-14T00:00:00-07:00", "dateModified": "2024-12-11T13:55:15-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/NerdActionHero" 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/NerdActionHero" 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/NerdActionHero?action=edit">Analysis</option> <option value="/pmwiki/pmwiki.php/Archive/NerdActionHero?action=edit">Archive</option> <option value="/pmwiki/pmwiki.php/Awesome/NerdActionHero?action=edit">Awesome</option> <option value="/pmwiki/pmwiki.php/Characters/NerdActionHero?action=edit">Characters</option> <option value="/pmwiki/pmwiki.php/DerivativeWorks/NerdActionHero?action=edit">DerivativeWork&#8230;</option> <option value="/pmwiki/pmwiki.php/FanWorks/NerdActionHero?action=edit">FanWorks</option> <option value="/pmwiki/pmwiki.php/FanficRecs/NerdActionHero?action=edit">FanficRecs</option> <option value="/pmwiki/pmwiki.php/Fridge/NerdActionHero?action=edit">Fridge</option> <option value="/pmwiki/pmwiki.php/Funny/NerdActionHero?action=edit">Funny</option> <option value="/pmwiki/pmwiki.php/Haiku/NerdActionHero?action=edit">Haiku</option> <option value="/pmwiki/pmwiki.php/Headscratchers/NerdActionHero?action=edit">Headscratchers</option> <option value="/pmwiki/pmwiki.php/Heartwarming/NerdActionHero?action=edit">Heartwarming</option> <option value="/pmwiki/pmwiki.php/ImageLinks/NerdActionHero?action=edit">ImageLinks</option> <option value="/pmwiki/pmwiki.php/ImageSource/NerdActionHero?action=edit">ImageSource</option> <option value="/pmwiki/pmwiki.php/MediaNotes/NerdActionHero?action=edit">MediaNotes</option> <option value="/pmwiki/pmwiki.php/Newsletter/NerdActionHero?action=edit">Newsletter</option> <option value="/pmwiki/pmwiki.php/NightmareFuel/NerdActionHero?action=edit">NightmareFuel</option> <option value="/pmwiki/pmwiki.php/PlayingWith/NerdActionHero?action=edit">PlayingWith</option> <option value="/pmwiki/pmwiki.php/QuoteSource/NerdActionHero?action=edit">QuoteSource</option> <option value="/pmwiki/pmwiki.php/Quotes/NerdActionHero?action=edit">Quotes</option> <option value="/pmwiki/pmwiki.php/Recap/NerdActionHero?action=edit">Recap</option> <option value="/pmwiki/pmwiki.php/ReferencedBy/NerdActionHero?action=edit">ReferencedBy</option> <option value="/pmwiki/pmwiki.php/Shocking/NerdActionHero?action=edit">Shocking</option> <option value="/pmwiki/pmwiki.php/TearJerker/NerdActionHero?action=edit">TearJerker</option> <option value="/pmwiki/pmwiki.php/Timeline/NerdActionHero?action=edit">Timeline</option> <option value="/pmwiki/pmwiki.php/Trivia/NerdActionHero?action=edit">Trivia</option> <option value="/pmwiki/pmwiki.php/WMG/NerdActionHero?action=edit">WMG</option> <option value="/pmwiki/pmwiki.php/YMMV/NerdActionHero?action=edit">YMMV</option> </select> </li> </ul> </nav> <div id="main-article" class="article-content retro-folders"> <p><!-- Administrivia/ZeroContextExample entries are not allowed on wiki pages. All such entries have been commented out. Add context to the entries before uncommenting them.--> </p><p><div class="quoteright" style="width:350px;" ><div class="lazy_load_img_box" style="padding-top:69.11%"><img src='https://static.tvtropes.org/pmwiki/pub/images/ddb65da1a31d7e2cb84e8ed209944bb3.jpg' class='embeddedimage' border='0' alt='Nerd Action Hero (trope)' width=492 height=340></div></div> </p><p>When a character is <em>primarily</em> a <a class='twikilink' href='/pmwiki/pmwiki.php/Main/StereotypicalNerd' title='/pmwiki/pmwiki.php/Main/StereotypicalNerd' data-format='W1tTdGVyZW90eXBpY2FsTmVyZCBuZXJkXV0='>nerd</a> (or possibly <a class='twikilink' href='/pmwiki/pmwiki.php/Main/Geek' title='/pmwiki/pmwiki.php/Main/Geek' data-format='e3tHZWVrfX0='>Geek</a>), but still manages to pull off feats of <a class='twikilink' href='/pmwiki/pmwiki.php/Main/ActionHero' title='/pmwiki/pmwiki.php/Main/ActionHero' data-format='e3tBY3Rpb24gSGVyb319aXNt'>Action Heroism</a>, then they are a <a class='twikilink' href='/pmwiki/pmwiki.php/Main/TitleDrop' title='/pmwiki/pmwiki.php/Main/TitleDrop' data-format='W1tUaXRsZURyb3AgTmVyZCBBY3Rpb24gSGVyb11d'>Nerd Action Hero</a>. </p><p>Sometimes this is the result of <a class='twikilink' href='/pmwiki/pmwiki.php/Main/CharacterDevelopment' title='/pmwiki/pmwiki.php/Main/CharacterDevelopment' data-format='Q2hhcmFjdGVyRGV2ZWxvcG1lbnQ='>Character Development</a>, where the character starts out as a nerd but over time develops heroic skills. In other cases, the character is a <a class='twikilink' href='/pmwiki/pmwiki.php/Main/HiddenBadass' title='/pmwiki/pmwiki.php/Main/HiddenBadass' data-format='SGlkZGVuQmFkYXNz'>Hidden Badass</a>. </p><p>Sometimes a Nerd Action Hero may be paired with an <a class='twikilink' href='/pmwiki/pmwiki.php/Main/ActionGirl' title='/pmwiki/pmwiki.php/Main/ActionGirl' data-format='QWN0aW9uR2lybA=='>Action Girl</a> in a <a class='twikilink' href='/pmwiki/pmwiki.php/Main/StrongGirlSmartGuy' title='/pmwiki/pmwiki.php/Main/StrongGirlSmartGuy' data-format='U3Ryb25nR2lybFNtYXJ0R3V5'>Strong Girl, Smart Guy</a> duo, and the aforementioned <a class='twikilink' href='/pmwiki/pmwiki.php/Main/CharacterDevelopment' title='/pmwiki/pmwiki.php/Main/CharacterDevelopment' data-format='Q2hhcmFjdGVyRGV2ZWxvcG1lbnQ='>Character Development</a> may occur as a result of their interaction. </p><p>There is an overlap with <a class='twikilink' href='/pmwiki/pmwiki.php/Main/BadassBookworm' title='/pmwiki/pmwiki.php/Main/BadassBookworm' data-format='QmFkYXNzQm9va3dvcm0='>Badass Bookworm</a>, but many of those are badass first and bookworm only as a bonus. There can also be an overlap with <a class='twikilink' href='/pmwiki/pmwiki.php/Main/ScienceHero' title='/pmwiki/pmwiki.php/Main/ScienceHero' data-format='U2NpZW5jZUhlcm8='>Science Hero</a>, but a Nerd Action Hero tends to do more ordinary <a class='twikilink' href='/pmwiki/pmwiki.php/Main/ActionHero' title='/pmwiki/pmwiki.php/Main/ActionHero' data-format='QWN0aW9uSGVybw=='>Action Hero</a> things (shooting, fighting, jumping, etc.) when the action starts. </p><p>Compare the <a class='twikilink' href='/pmwiki/pmwiki.php/Main/SuperLoser' title='/pmwiki/pmwiki.php/Main/SuperLoser' data-format='U3VwZXJMb3Nlcg=='>Super Loser</a>, an uncool superpowered being, and <a class='twikilink' href='/pmwiki/pmwiki.php/Main/SuperZeroes' title='/pmwiki/pmwiki.php/Main/SuperZeroes' data-format='U3VwZXJaZXJvZXM='>Super Zeroes</a>, who are ineffective at heroism. For characters who generally take <a class='twikilink' href='/pmwiki/pmwiki.php/Main/GuileHero' title='/pmwiki/pmwiki.php/Main/GuileHero' data-format='R3VpbGVIZXJv'>Guile Hero</a> or <a class='twikilink' href='/pmwiki/pmwiki.php/Main/TheSmartGuy' title='/pmwiki/pmwiki.php/Main/TheSmartGuy' data-format='VGhlU21hcnRHdXk='>The Smart Guy</a> roles to the point where viewers might even forget they're devastatingly effective at getting physical, they might have <a class='twikilink' href='/pmwiki/pmwiki.php/Main/MinoredInAssKicking' title='/pmwiki/pmwiki.php/Main/MinoredInAssKicking' data-format='TWlub3JlZEluQXNzS2lja2luZw=='>Minored In Ass Kicking</a>. Can also be a <a class='twikilink' href='/pmwiki/pmwiki.php/Main/WorkingClassHero' title='/pmwiki/pmwiki.php/Main/WorkingClassHero' data-format='V29ya2luZ0NsYXNzSGVybw=='>Working-Class Hero</a> if the nerdy hero is also from the lower working-class backgrounds. Compare <a class='twikilink' href='/pmwiki/pmwiki.php/Main/PopCulturedBadass' title='/pmwiki/pmwiki.php/Main/PopCulturedBadass' data-format='UG9wQ3VsdHVyZWRCYWRhc3M='>Pop-Cultured Badass</a>, who is often this trope. </p><p><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;Anime and Manga&nbsp;</div><div id="folder0" class="folder" isfolder="true" style="display:block;"> <!--* Ishida Uryuu from ''Manga/{{Bleach}}''.--> <ul ><li> Throughout the <em><a class='twikilink' href='/pmwiki/pmwiki.php/Literature/HaruhiSuzumiya' title='/pmwiki/pmwiki.php/Literature/HaruhiSuzumiya' data-format='TGl0ZXJhdHVyZS9IYXJ1aGlTdXp1bWl5YQ=='>Haruhi Suzumiya</a></em> series, due to all the strange things that happen to Kyon, he develops into this. However, after a while, he leaves things to Yuki. After the <em>Disappearance (Vanishment)</em> movie, though, Kyon has the ability to bargain with aliens that have godlike powers. </li><li> Izuku Midoriya from <em><a class='twikilink' href='/pmwiki/pmwiki.php/Manga/MyHeroAcademia' title='/pmwiki/pmwiki.php/Manga/MyHeroAcademia' data-format='TWFuZ2EvTXlIZXJvQWNhZGVtaWE='>My Hero Academia</a></em> is a hero <a class='twikilink' href='/pmwiki/pmwiki.php/Main/Otaku' title='/pmwiki/pmwiki.php/Main/Otaku' data-format='e3tPdGFrdX19'>Otaku</a> to the nth degree, to the point that he memorizes the favorite foods and <em>trees</em> of the world's most famous heroes. After obtaining One For All, he eventually becomes a brawler who rushes into the middle of the fight to deal serious hurt and overpower his opponents with his <a class='twikilink' href='/pmwiki/pmwiki.php/Main/SuperStrength' title='/pmwiki/pmwiki.php/Main/SuperStrength' data-format='U3VwZXJTdHJlbmd0aA=='>Super-Strength</a>, going so far as to <a class='twikilink' href='/pmwiki/pmwiki.php/Main/HeroicRROD' title='/pmwiki/pmwiki.php/Main/HeroicRROD' data-format='W1tIZXJvaWNSUk9EIGJyZWFrIGEgbGltYl1d'>break a limb</a> if he needs to use 100% of his new power. But his greatest strength is his nigh-encyclopedic hero knowledge and knack for strategy. <!--* Yomiko Readman of ''Anime/ReadOrDie''.--> </li></ul></div> </p><p><div class="folderlabel" onclick="togglefolder('folder1');">&nbsp;&nbsp;&nbsp;&nbsp;Comics&nbsp;</div><div id="folder1" class="folder" isfolder="true" style="display:block;"> <ul ><li> Valierie from <em><a class='twikilink' href='/pmwiki/pmwiki.php/ComicBook/DangerGirl' title='/pmwiki/pmwiki.php/ComicBook/DangerGirl' data-format='Q29taWNCb29rL0Rhbmdlckdpcmw='>Danger Girl</a></em> is a nerd first and an <a class='twikilink' href='/pmwiki/pmwiki.php/Main/ActionGirl' title='/pmwiki/pmwiki.php/Main/ActionGirl' data-format='QWN0aW9uR2lybA=='>Action Girl</a> second, so she qualifies. Abbey, on the other hand, is an <a class='twikilink' href='/pmwiki/pmwiki.php/Main/ActionGirl' title='/pmwiki/pmwiki.php/Main/ActionGirl' data-format='QWN0aW9uR2lybA=='>Action Girl</a> first and bookworm second. And third comes JC from <a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/DangerGirl' title='/pmwiki/pmwiki.php/VideoGame/DangerGirl' data-format='W1tWaWRlb0dhbWUvRGFuZ2VyR2lybCB0aGUgdmlkZW8gZ2FtZV1d'>the video game</a> adaptation, who's more of a <a class='twikilink' href='/pmwiki/pmwiki.php/Main/WrenchWench' title='/pmwiki/pmwiki.php/Main/WrenchWench' data-format='V3JlbmNoV2VuY2g='>Wrench Wench</a> who can kick ass as nicely as she can defuse bombs. <!--* Mr. Fantastic of the ''ComicBook/FantasticFour'' qualifies, DependingOnTheWriter.--> </li></ul></div> </p><p><div class="folderlabel" onclick="togglefolder('folder2');">&nbsp;&nbsp;&nbsp;&nbsp;Fan Works&nbsp;</div><div id="folder2" class="folder" isfolder="true" style="display:block;"> <ul ><li> In <em><a class='twikilink' href='/pmwiki/pmwiki.php/Fanfic/AmazingFantasy' title='/pmwiki/pmwiki.php/Fanfic/AmazingFantasy' data-format='RmFuZmljL0FtYXppbmdGYW50YXN5'>Amazing Fantasy</a></em>, Izuku is surprised when Bakugou doesn't refer to him as a nerd once in the first ten minutes they're sitting next to each other at the U.A. Entrance Exam. It's immediately lampshaded how pathetic that sounds. <div class='indent'><strong>Izuku:</strong> Oh man, that just sounds sad... </div></li></ul></div> </p><p><div class="folderlabel" onclick="togglefolder('folder3');">&nbsp;&nbsp;&nbsp;&nbsp;Film&nbsp;</div><div id="folder3" class="folder" isfolder="true" style="display:block;"> <ul ><li> Milo Thatch in <em><a class='twikilink' href='/pmwiki/pmwiki.php/WesternAnimation/AtlantisTheLostEmpire' title='/pmwiki/pmwiki.php/WesternAnimation/AtlantisTheLostEmpire' data-format='V2VzdGVybkFuaW1hdGlvbi9BdGxhbnRpc1RoZUxvc3RFbXBpcmU='>Atlantis: The Lost Empire</a></em> starts out as an out-and-out nerd, but <a class='twikilink' href='/pmwiki/pmwiki.php/Main/TookALevelInBadass' title='/pmwiki/pmwiki.php/Main/TookALevelInBadass' data-format='W1tUb29rQUxldmVsSW5CYWRhc3MgbWFucyB1cF1d'>mans up</a> and leads the final assault on the bad guys. </li><li> In <em><a class='twikilink' href='/pmwiki/pmwiki.php/Film/BrokenArrow1996' title='/pmwiki/pmwiki.php/Film/BrokenArrow1996' data-format='RmlsbS9Ccm9rZW5BcnJvdzE5OTY='>Broken Arrow (1996)</a></em> Terry attacks one of Deakins's henchmen who she assumes is just a computer nerd, but finds out the hard way that he's a former Navy SEAL. Not enough is revealed about him to put him firmly in either this or the <a class='twikilink' href='/pmwiki/pmwiki.php/Main/BadassBookworm' title='/pmwiki/pmwiki.php/Main/BadassBookworm' data-format='QmFkYXNzQm9va3dvcm0='>Badass Bookworm</a> camp. </li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Franchise/IndianaJones' title='/pmwiki/pmwiki.php/Franchise/IndianaJones' data-format='RnJhbmNoaXNlL0luZGlhbmFKb25lcw=='>Indiana Jones</a> would probably appear as this to one of his students or neighbors, as college professor = nerd, but since we in the audience mostly get to see him in the field he probably doesn't qualify. <ul ><li> His father from <em><a class='twikilink' href='/pmwiki/pmwiki.php/Film/IndianaJonesAndTheLastCrusade' title='/pmwiki/pmwiki.php/Film/IndianaJonesAndTheLastCrusade' data-format='W1tGaWxtL0luZGlhbmFKb25lc0FuZFRoZUxhc3RDcnVzYWRlIFRoZSBMYXN0IENydXNhZGVdXQ=='>The Last Crusade</a></em>, though, is a more traditional archaeologist and not suited for the antics that Indiana finds himself in. He still manages a few brilliant feats. </li></ul></li><li> All the main characters from <em><a class='twikilink' href='/pmwiki/pmwiki.php/Film/TheLastLovecraftRelicOfCthulhu' title='/pmwiki/pmwiki.php/Film/TheLastLovecraftRelicOfCthulhu' data-format='RmlsbS9UaGVMYXN0TG92ZWNyYWZ0UmVsaWNPZkN0aHVsaHU='>The Last Lovecraft: Relic of Cthulhu</a></em> qualify, but top marks must go to Paul, who leads the bad guys away to save the two remaining heroes, gets knocked out, backflips out a window, and then runs across the desert with two broken arms, before asking for some dynamite be shoved down his pants so he doesn't feel left out. </li><li> The main protagonist in <em><a class='twikilink' href='/pmwiki/pmwiki.php/Film/TheLibrarian' title='/pmwiki/pmwiki.php/Film/TheLibrarian' data-format='RmlsbS9UaGVMaWJyYXJpYW4='>The Librarian</a></em> starts out as an overage student who doesn't know when it's time to stop accumulating degrees and get a job instead&#8212;quite nerdy. Then he gets a job which requires him to be the hero. </li><li> The <em><a class='twikilink' href='/pmwiki/pmwiki.php/Franchise/MarvelCinematicUniverse' title='/pmwiki/pmwiki.php/Franchise/MarvelCinematicUniverse' data-format='RnJhbmNoaXNlL01hcnZlbENpbmVtYXRpY1VuaXZlcnNl'>Marvel Cinematic Universe</a></em> has Spider-Man, who uses battle strategies from <em><a class='twikilink' href='/pmwiki/pmwiki.php/Film/TheEmpireStrikesBack' title='/pmwiki/pmwiki.php/Film/TheEmpireStrikesBack' data-format='RmlsbS9UaGVFbXBpcmVTdHJpa2VzQmFjaw=='>The Empire Strikes Back</a></em> and <em><a class='twikilink' href='/pmwiki/pmwiki.php/Film/Aliens' title='/pmwiki/pmwiki.php/Film/Aliens' data-format='RmlsbS97e0FsaWVuc319'>Aliens</a></em>. He also compliments Falcon and Winter Soldier on their tech <em>while fighting them.</em> </li></ul></div> </p><p><div class="folderlabel" onclick="togglefolder('folder4');">&nbsp;&nbsp;&nbsp;&nbsp;Literature&nbsp;</div><div id="folder4" class="folder" isfolder="true" style="display:block;"> <ul ><li> Although in his own narration, <a class='twikilink' href='/pmwiki/pmwiki.php/Literature/TheDresdenFiles' title='/pmwiki/pmwiki.php/Literature/TheDresdenFiles' data-format='W1tMaXRlcmF0dXJlL1RoZURyZXNkZW5GaWxlcyBIYXJyeSBEcmVzZGVuXV0='>Harry Dresden</a> portrays himself as a hardboiled detective, narration from his friends in side stories reveals <a class='twikilink' href='/pmwiki/pmwiki.php/Main/UnreliableNarrator' title='/pmwiki/pmwiki.php/Main/UnreliableNarrator' data-format='W1tVbnJlbGlhYmxlTmFycmF0b3IgaGUmIzAzOTtzIHJlYWxseSBtb3JlIHRoaXMgdHJvcGVdXQ=='>he's really more this trope</a>. Karrin Murphy in particular makes note of how things like his height can be either "awkward" or "imposing" and his pop-culture knowledge can come off as clever quips or like a fact-checking nerd. She figures that being the kid who grew too tall before he got coordination is what made him such a stalwart defender of the weak: he's a <a class='twikilink' href='/pmwiki/pmwiki.php/Main/BullyHunter' title='/pmwiki/pmwiki.php/Main/BullyHunter' data-format='QnVsbHlIdW50ZXI='>Bully Hunter</a> at heart. </li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/Literature/InCryptid' title='/pmwiki/pmwiki.php/Literature/InCryptid' data-format='TGl0ZXJhdHVyZS9JbkNyeXB0aWQ='>InCryptid</a></em>: Antimony is an <a class='twikilink' href='/pmwiki/pmwiki.php/Main/ActionGirl' title='/pmwiki/pmwiki.php/Main/ActionGirl' data-format='QWN0aW9uR2lybA=='>Action Girl</a>, skilled in combat, and pretty socially adept (plus she has <a class='twikilink' href='/pmwiki/pmwiki.php/Main/PlayingWithFire' title='/pmwiki/pmwiki.php/Main/PlayingWithFire' data-format='W1tQbGF5aW5nV2l0aEZpcmUgZmlyZSBwb3dlcnNdXQ=='>fire powers</a>), and also a <em>huge</em> geek. Her first mission as leader was to a <a class='twikilink' href='/pmwiki/pmwiki.php/Main/FanConvention' title='/pmwiki/pmwiki.php/Main/FanConvention' data-format='W1tGYW5Db252ZW50aW9uIGNvbWljIGNvbnZlbnRpb25dXQ=='>comic convention</a>. </li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Creator/NealStephenson' title='/pmwiki/pmwiki.php/Creator/NealStephenson' data-format='Q3JlYXRvci9OZWFsU3RlcGhlbnNvbg=='>Neal Stephenson</a> is fond of these: <ul ><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/Literature/Cryptonomicon' title='/pmwiki/pmwiki.php/Literature/Cryptonomicon' data-format='TGl0ZXJhdHVyZS97e0NyeXB0b25vbWljb259fQ=='>Cryptonomicon</a></em>: Randy Waterhouse spends most of the book as a pretty ordinary computer programmer, even though the fact that much of his company's business is in the Philippines brings some travel. At the end however, <span class="spoiler" title="you can set spoilers visible by default on your profile" >he gets thrown in prison for a while</span>, develops some badass, and comes out as a fully-capable action hero just in time for the <a class='twikilink' href='/pmwiki/pmwiki.php/Main/FinalBattle' title='/pmwiki/pmwiki.php/Main/FinalBattle' data-format='RmluYWxCYXR0bGU='>Final Battle</a>. </li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/Literature/SnowCrash' title='/pmwiki/pmwiki.php/Literature/SnowCrash' data-format='TGl0ZXJhdHVyZS9Tbm93Q3Jhc2g='>Snow Crash</a></em>: Hiro Protagonist is a programmer who in real life is pretty close to broke (after having failed his pizza delivery job) and lives in a self-storage facility, although he also own a pretty large chunk of prime real-estate in cyberspace (think IP address block) on account of having been one of the guys who created it. As it happens, he is <em>also</em> the greatest swordfighter in the world (though he mostly gets to demonstrate it in cyberspace) and turns out to be good at other acts of <a class='twikilink' href='/pmwiki/pmwiki.php/Main/ActionHero' title='/pmwiki/pmwiki.php/Main/ActionHero' data-format='e3tBY3Rpb24gSGVyb319aXNt'>Action Heroism</a> as well. </li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/Literature/Zodiac1988' title='/pmwiki/pmwiki.php/Literature/Zodiac1988' data-format='TGl0ZXJhdHVyZS97e1pvZGlhY3wxOTg4fX0='>Zodiac</a></em>: Sangamon Taylor is an analytical chemist who spends most of his time (most of the words in the book, anyway) looking for traces of compounds with covalent chlorine (and other toxins), and talking to people about these issues. He <em>also</em> engages in a lot of spy-like activities (covert intelligence gathering, sabotage, misdirection, etc.) <em>before</em> the action gets really hot. </li></ul></li><li> The main premise of <em><a class='twikilink' href='/pmwiki/pmwiki.php/Literature/NERDS' title='/pmwiki/pmwiki.php/Literature/NERDS' data-format='TGl0ZXJhdHVyZS97e05FUkRTfX0='>N.E.R.D.S.</a></em> is that a bunch of nerds with braces, glasses and horrible fashion senses are secretly <a class='twikilink' href='/pmwiki/pmwiki.php/Main/KidHero' title='/pmwiki/pmwiki.php/Main/KidHero' data-format='W1tLaWRIZXJvIGNoaWxkIHN1cGVyc3BpZXNdXQ=='>child superspies</a> tasked with saving the world. </li><li> <em><a class='twikilink' href='/pmwiki/pmwiki.php/Literature/Sourcery' title='/pmwiki/pmwiki.php/Literature/Sourcery' data-format='TGl0ZXJhdHVyZS97e1NvdXJjZXJ5fX0='>Sourcery</a></em> has Nijel, a weedy kid who's taking a <a class='twikilink' href='/pmwiki/pmwiki.php/Main/CorrespondenceCourse' title='/pmwiki/pmwiki.php/Main/CorrespondenceCourse' data-format='Q29ycmVzcG9uZGVuY2VDb3Vyc2U='>Correspondence Course</a> in heroism (of the <a class='twikilink' href='/pmwiki/pmwiki.php/Main/HeroicFantasy' title='/pmwiki/pmwiki.php/Main/HeroicFantasy' data-format='W1tIZXJvaWNGYW50YXN5IGJhcmJhcmlhbiB2YXJpZXR5XV0='>barbarian variety</a>) and <a class='twikilink' href='/pmwiki/pmwiki.php/Main/TookALevelInBadass' title='/pmwiki/pmwiki.php/Main/TookALevelInBadass' data-format='W1tUb29rQUxldmVsSW5CYWRhc3MgZW5kcyB1cCBiZWluZyBwcmV0dHkgZ29vZCBhdCBpdF1d'>ends up being pretty good at it</a>. Good enough to run off with Conina, daughter of the Disc's most famous hero. <!--* Professor William Race of ''Temple'' by Creator/MatthewReilly definitely qualifies.--> </li></ul></div> </p><p><div class="folderlabel" onclick="togglefolder('folder5');">&nbsp;&nbsp;&nbsp;&nbsp;Live-Action TV&nbsp;</div><div id="folder5" class="folder" isfolder="true" style="display:block;"> <ul ><li> Wesley's character development across <em><a class='twikilink' href='/pmwiki/pmwiki.php/Series/Angel' title='/pmwiki/pmwiki.php/Series/Angel' data-format='U2VyaWVzL3t7QW5nZWx9fQ=='>Angel</a></em> tracks his development from pure book nerd to wannabe badass to actual badass... who is still happiest when buried in books. <!--* Series/{{Chuck}} is a textbook example. Complete with ActionGirl girlfriend.--> </li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Creator/ScottWolter' title='/pmwiki/pmwiki.php/Creator/ScottWolter' data-format='Q3JlYXRvci9TY290dFdvbHRlcg=='>Scott Wolter</a> of <em><a class='twikilink' href='/pmwiki/pmwiki.php/Series/AmericaUnearthed' title='/pmwiki/pmwiki.php/Series/AmericaUnearthed' data-format='U2VyaWVzL0FtZXJpY2FVbmVhcnRoZWQ='>America Unearthed</a></em> fame is often described as a "real-life Indiana Jones", being a Forensic Geologist investigating archeological mysteries. </li><li> Harry Sullivan of <em><a class='twikilink' href='/pmwiki/pmwiki.php/Series/DoctorWho' title='/pmwiki/pmwiki.php/Series/DoctorWho' data-format='U2VyaWVzL0RvY3Rvcldobw=='>Doctor Who</a></em> is mostly an awkwardly old-fashioned <a class='twikilink' href='/pmwiki/pmwiki.php/Main/BoardingSchool' title='/pmwiki/pmwiki.php/Main/BoardingSchool' data-format='W1tCb2FyZGluZ1NjaG9vbCBleC1wdWJsaWMgc2Nob29sXV0='>ex-public school</a> medical doctor, although with a military past. He is, however, mostly useful in his stories when he and the Doctor sneak up on two aliens and punch them in the back of the neck, and other such feats. (He was originally supposed to be a <a class='twikilink' href='/pmwiki/pmwiki.php/Main/BadassBookworm' title='/pmwiki/pmwiki.php/Main/BadassBookworm' data-format='QmFkYXNzQm9va3dvcm0='>Badass Bookworm</a> to compliment a frail and elderly Doctor but <a class='twikilink' href='/pmwiki/pmwiki.php/Creator/TomBaker' title='/pmwiki/pmwiki.php/Creator/TomBaker' data-format='Q3JlYXRvci9Ub21CYWtlcg=='>Tom Baker</a> was unexpectedly cast instead, and <a class='twikilink' href='/pmwiki/pmwiki.php/Main/CastSpeciation' title='/pmwiki/pmwiki.php/Main/CastSpeciation' data-format='Q2FzdFNwZWNpYXRpb24='>Cast Speciation</a> forced Harry into focusing primarily on his old-fashioned doctor traits while still providing backup for the Doctor in action scenes.) </li><li> This trope is all over the place in <em><a class='twikilink' href='/pmwiki/pmwiki.php/Series/TheFlash2014' title='/pmwiki/pmwiki.php/Series/TheFlash2014' data-format='U2VyaWVzL1RoZUZsYXNoMjAxNA=='>The Flash (2014)</a></em>, especially in Team Flash. Cisco is a <a class='twikilink' href='/pmwiki/pmwiki.php/Main/GadgeteerGenius' title='/pmwiki/pmwiki.php/Main/GadgeteerGenius' data-format='R2FkZ2V0ZWVyR2VuaXVz'>Gadgeteer Genius</a> who has some combat training (and picks up metahuman powers as well), <span class="spoiler" title="you can set spoilers visible by default on your profile" > <em>both</em> versions of Harrison Wells are pretty badass</span>, and Patty Spivot is a dorky police detective who enjoys reading Barry's lab reports <span class="spoiler" title="you can set spoilers visible by default on your profile" > and leaves to become a CSI herself</span>. Barry Allen himself evenly splits the difference between being a nerd and an <a class='twikilink' href='/pmwiki/pmwiki.php/Main/ActionHero' title='/pmwiki/pmwiki.php/Main/ActionHero' data-format='QWN0aW9uSGVybw=='>Action Hero</a> &#8212; he catches bad guys both as a CSI tech and as the Flash. </li><li> Billy, the Blue Ranger of the <em><a class='twikilink' href='/pmwiki/pmwiki.php/Series/MightyMorphinPowerRangers' title='/pmwiki/pmwiki.php/Series/MightyMorphinPowerRangers' data-format='U2VyaWVzL01pZ2h0eU1vcnBoaW5Qb3dlclJhbmdlcnM='>Mighty Morphin' Power Rangers</a></em>. A walking stereotype of a nerd, complete with a <a class='twikilink' href='/pmwiki/pmwiki.php/Main/Technobabble' title='/pmwiki/pmwiki.php/Main/Technobabble' data-format='e3tUZWNobm9iYWJibGV9fQ=='>Technobabble</a> way of speaking, <a class='twikilink' href='/pmwiki/pmwiki.php/Main/NerdGlasses' title='/pmwiki/pmwiki.php/Main/NerdGlasses' data-format='TmVyZEdsYXNzZXM='>Nerd Glasses</a>, and overalls. Becoming a Ranger actually improves his nerd cred, since now he gets to tinker with the super-advanced technology of the Command Center and and thus is able to create a horde of impressive machines, as well help make minor upgrades to their Zords, that aid in their fight against the forces of evil. In subsequent seasons, he gets much less stereotypically nerdy, reducing his technobabble speech, and wearing less baggy clothes<span class="notelabel" onclick="togglenote('note0z4i2');"><sup>note&nbsp;</sup></span><span id="note0z4i2" class="inlinefolder" isnote="true" onclick="togglenote('note0z4i2');" style="cursor:pointer;font-size:smaller;display:none;">subsequently revealing the actor's impressive physique that the overalls only mostly hid</span>, as a result of <a class='twikilink' href='/pmwiki/pmwiki.php/Main/CharacterDevelopment' title='/pmwiki/pmwiki.php/Main/CharacterDevelopment' data-format='Q2hhcmFjdGVyRGV2ZWxvcG1lbnQ='>Character Development</a> and becoming a much more confident fighter. </li><li> Rodney <span class='esc-seq' title='non-wikiword'>McKay</span> of <em><a class='twikilink' href='/pmwiki/pmwiki.php/Series/StargateAtlantis' title='/pmwiki/pmwiki.php/Series/StargateAtlantis' data-format='U2VyaWVzL1N0YXJnYXRlQXRsYW50aXM='>Stargate Atlantis</a></em>, who started out ejecting the clip from his gun while attempting to fire it to carrying and effectively wielding a P-90 and acting just as physically competent as Sheppard, the Lt. Colonel team leader. </li><li> Daniel Jackson of <em><a class='twikilink' href='/pmwiki/pmwiki.php/Series/StargateSG1' title='/pmwiki/pmwiki.php/Series/StargateSG1' data-format='U2VyaWVzL1N0YXJnYXRlU0cx'>Stargate SG-1</a></em> eventually developed into this. He started out as the bookish archaeologist / linguist of the team, usually wielding only a sidearm and having to be defended by others while he translated the inscriptions on whatever ruins they investigated. He continued <a class='twikilink' href='/pmwiki/pmwiki.php/Main/TookALevelInBadass' title='/pmwiki/pmwiki.php/Main/TookALevelInBadass' data-format='W1tUb29rQUxldmVsSW5CYWRhc3MgbXVsdGljbGFzc2luZyBpbnRvIGJhZGFzc11d'>multiclassing into badass</a> thorough the series, becoming as competent with weapons and military tactics as the soldiers on the team. This becomes extremely obvious in the season 8 two-parter finale <a class='twikilink' href='/pmwiki/pmwiki.php/Recap/StargateSG1S8E19MoebiusPart1' title='/pmwiki/pmwiki.php/Recap/StargateSG1S8E19MoebiusPart1' data-format='W1tSZWNhcC9TdGFyZ2F0ZVNHMVM4RTE5TW9lYml1c1BhcnQxIE1vZWJpdXNdXQ=='>Moebius</a> in which we get a peek into an alternate timeline where he didn't gain said badass levels and remained a meek nerd. </li></ul></div> </p><p><div class="folderlabel" onclick="togglefolder('folder6');">&nbsp;&nbsp;&nbsp;&nbsp;Video Games&nbsp;</div><div id="folder6" class="folder" isfolder="true" style="display:block;"> <ul ><li> Gaige in <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/Borderlands2' title='/pmwiki/pmwiki.php/VideoGame/Borderlands2' data-format='VmlkZW9HYW1lL0JvcmRlcmxhbmRzMg=='>Borderlands 2</a></em> is a Nerd Action <a class='twikilink' href='/pmwiki/pmwiki.php/Main/AntiHero' title='/pmwiki/pmwiki.php/Main/AntiHero' data-format='QW50aUhlcm8='>Anti-Hero</a> who is just as capable of running around <a class='twikilink' href='/pmwiki/pmwiki.php/Main/DeathWorld' title='/pmwiki/pmwiki.php/Main/DeathWorld' data-format='W1tEZWF0aFdvcmxkIFBhbmRvcmFdXQ=='>Pandora</a> with a huge Torgue rocket launcher or shotgun as Krieg (who's nearly a foot taller than her, with washboard abs that are <a class='twikilink' href='/pmwiki/pmwiki.php/Main/WalkingShirtlessScene' title='/pmwiki/pmwiki.php/Main/WalkingShirtlessScene' data-format='W1tXYWxraW5nU2hpcnRsZXNzU2NlbmUgcGVybWFuZW50bHkgb24gZGlzcGxheV1d'>permanently on display</a>). Of her three skill trees, Ordered Chaos is the most Action Hero-y, with a focus on hurling inaccurate but devastatingly powerful bullets at people, and science is mostly applied for the purpose of making the traditional violence more effective (such as using digistruct technology to create claws with which to rip people's faces off). </li><li> Gordon Freeman from 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. He's a theoretical physicist who, in the course of an experiment, accidentally opens a portal through which aliens start pouring out, devastating the laboratory he's stuck in. He quickly becomes an <a class='twikilink' href='/pmwiki/pmwiki.php/Main/ActionSurvivor' title='/pmwiki/pmwiki.php/Main/ActionSurvivor' data-format='QWN0aW9uU3Vydml2b3I='>Action Survivor</a>, fighting his way through the aliens and the human military sent there as a cover-up operation. </li><li> In <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/MegaManStarForce' title='/pmwiki/pmwiki.php/VideoGame/MegaManStarForce' data-format='VmlkZW9HYW1lL01lZ2FNYW5TdGFyRm9yY2U='>Mega Man Star Force</a></em>, protagonist Geo Stelar is a 10-year-old astronomy nerd who dreams of being able to venture into outer space one day. Then he meets Omega-Xis and becomes the <a class='twikilink' href='/pmwiki/pmwiki.php/Main/HenshinHero' title='/pmwiki/pmwiki.php/Main/HenshinHero' data-format='SGVuc2hpbkhlcm8='>Henshin Hero</a> Mega Man, defending Earth from extraterrestrial invasion, <a class='twikilink' href='/pmwiki/pmwiki.php/Main/LostTechnology' title='/pmwiki/pmwiki.php/Main/LostTechnology' data-format='TG9zdFRlY2hub2xvZ3k='>Lost Technology</a> from an ancient civilization, and supernatural terrorist attacks. <!--* Both Lloyd and Jeff from the ''Videogame/{{MOTHER}}'' series are perfectly capable of taking out the bad guys despite not having any Psychic powers like their companions.--> </li><li> Judging by their quotes (such as Lightning Bolt! Lightning Bolt), Taser <a class='twikilink' href='/pmwiki/pmwiki.php/Main/EliteMooks' title='/pmwiki/pmwiki.php/Main/EliteMooks' data-format='W1tFbGl0ZU1vb2tzIFNwZWNpYWxzXV0='>Specials</a> from <em><a class='twikilink' href='/pmwiki/pmwiki.php/VideoGame/PAYDAY2' title='/pmwiki/pmwiki.php/VideoGame/PAYDAY2' data-format='VmlkZW9HYW1lL3t7UEFZREFZIDJ9fQ=='>PAYDAY 2</a></em> are a mix between this, <a class='twikilink' href='/pmwiki/pmwiki.php/Main/NominalHero' title='/pmwiki/pmwiki.php/Main/NominalHero' data-format='Tm9taW5hbEhlcm8='>Nominal Hero</a>, and <a class='twikilink' href='/pmwiki/pmwiki.php/Main/HeroAntagonist' title='/pmwiki/pmwiki.php/Main/HeroAntagonist' data-format='SGVyb0FudGFnb25pc3Q='>Hero Antagonist</a>. <!--* Filia from ''VideoGame/{{Skullgirls}}''.--> <!--* Ernie Eaglebeak of ''VideoGame/TheSpellcastingSeries''. He's got an atomic dragon and a sea monster on his tally, plus, you know, saving the world a few times.--> </li><li> The two playable characters from <em><a class='twikilink' href='/pmwiki/pmwiki.php/Videogame/WolfensteinYoungblood' title='/pmwiki/pmwiki.php/Videogame/WolfensteinYoungblood' data-format='VmlkZW9nYW1lL1dvbGZlbnN0ZWluWW91bmdibG9vZA=='>Wolfenstein: Youngblood</a></em> fit in this category. Despite being trained early on to fight if needed, they really just start out as nerds without actual combat experience, owing their combat prowesses entirely to a pair of powersuits. Their rooms are what you'd expect: posters, personal computers, toys, books, all with the <a class='twikilink' href='/pmwiki/pmwiki.php/Main/TheEighties' title='/pmwiki/pmwiki.php/Main/TheEighties' data-format='W1tNYWluL1RoZUVpZ2h0aWVzIDgwJiMwMzk7cyBhdG1vc3BoZXJlXV0='>80's atmosphere</a> the game is known for. Their banter and attitude, if a little questionnable, also reflects the tone as well. </li></ul></div> </p><p><div class="folderlabel" onclick="togglefolder('folder7');">&nbsp;&nbsp;&nbsp;&nbsp;Webcomics&nbsp;</div><div id="folder7" class="folder" isfolder="true" style="display:block;"> <ul ><li> In <em><a class='twikilink' href='/pmwiki/pmwiki.php/Webcomic/GrrlPower' title='/pmwiki/pmwiki.php/Webcomic/GrrlPower' data-format='V2ViY29taWMvR3JybFBvd2Vy'>Grrl Power</a></em>, there is Sydney, the comic-book store owner with a nerd's physique and outlook on life, who becomes one of Maxima's team of superheroines. </li><li> John from <em><a class='twikilink' href='/pmwiki/pmwiki.php/Webcomic/Homestuck' title='/pmwiki/pmwiki.php/Webcomic/Homestuck' data-format='V2ViY29taWMve3tIb21lc3R1Y2t9fQ=='>Homestuck</a></em> is quite the geek through and through (mostly about <a class='twikilink' href='/pmwiki/pmwiki.php/Main/TheMovieBuff' title='/pmwiki/pmwiki.php/Main/TheMovieBuff' data-format='W1tUaGVNb3ZpZUJ1ZmYgdGVycmlibGUgbW92aWVzXV0='>terrible movies</a>, but also generally) and is generally something of <a class='twikilink' href='/pmwiki/pmwiki.php/Main/TheFool' title='/pmwiki/pmwiki.php/Main/TheFool' data-format='VGhlRm9vbA=='>The Fool</a>, but as the comic evolves, he manages some pretty damn badass stuff. <ul ><li> Then there's his <span class="spoiler" title="you can set spoilers visible by default on your profile" >ectobiological father</span>, Jake English, who <em>thinks</em> he's a <a class='twikilink' href='/pmwiki/pmwiki.php/Main/HollywoodActionHero' title='/pmwiki/pmwiki.php/Main/HollywoodActionHero' data-format='SG9sbHl3b29kQWN0aW9uSGVybw=='>Hollywood Action Hero</a> but is let down by such traits as his massive enthusiasm for every movie that has ever been made and his bizarre fusion of <a class='twikilink' href='/pmwiki/pmwiki.php/Main/AntiquatedLinguistics' title='/pmwiki/pmwiki.php/Main/AntiquatedLinguistics' data-format='QW50aXF1YXRlZExpbmd1aXN0aWNz'>Antiquated Linguistics</a> and <a class='twikilink' href='/pmwiki/pmwiki.php/Main/SophisticatedAsHell' title='/pmwiki/pmwiki.php/Main/SophisticatedAsHell' data-format='W1tTb3BoaXN0aWNhdGVkQXNIZWxsIHJhbmRvbSBwcm9mYW5pdHldXQ=='>random profanity</a>. </li></ul></li><li> Space Dread from <em><a class='twikilink' href='/pmwiki/pmwiki.php/Webcomic/ValAndIsaac' title='/pmwiki/pmwiki.php/Webcomic/ValAndIsaac' data-format='V2ViY29taWMvVmFsQW5kSXNhYWM='>Val and Isaac</a></em> is the most famous mercenary in the galaxy, a shapeshifting <a class='twikilink' href='/pmwiki/pmwiki.php/Main/BlackMagic' title='/pmwiki/pmwiki.php/Main/BlackMagic' data-format='W1tCbGFja01hZ2ljIGJsYWNrIG1hZ2VdXQ=='>black mage</a>, expert knife thrower, and the one responsible for most of the comic's unironic action sequences (and she's a mercenary in the "only targets serious criminals" school, so she does count as a hero). She <em>also</em> wears a <a class='twikilink' href='/pmwiki/pmwiki.php/MediaNotes/Cosplay' title='/pmwiki/pmwiki.php/MediaNotes/Cosplay' data-format='e3tNZWRpYU5vdGVzL2Nvc3BsYXl9fQ=='>cosplay</a> costume as her work attire, has a non-work wardrobe made up entirely of <a class='twikilink' href='/pmwiki/pmwiki.php/Music/LemonDemon' title='/pmwiki/pmwiki.php/Music/LemonDemon' data-format='TXVzaWMvTGVtb25EZW1vbg=='>Lemon Demon</a> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/FunTShirt' title='/pmwiki/pmwiki.php/Main/FunTShirt' data-format='W1tGdW5UU2hpcnQgRnVuIFQtU2hpcnRzXV0='>Fun T-Shirts</a>, does jobs to get graphics cards for her <span class='esc-seq' title='non-wikiword'>MMOs</span> or <span class='esc-seq' title='non-wikiword'>DVDs</span> of obscure cartoons, and became a mercenary by complete accident due to misunderstanding <a class='twikilink' href='/pmwiki/pmwiki.php/Main/MurderInc' title='/pmwiki/pmwiki.php/Main/MurderInc' data-format='W1tNdXJkZXJJbmMgd2hhdCBzb3J0IG9mIGd1aWxkXV0='>what sort of guild</a> she was in; she originally wanted to be a <em>juggler</em>. </li></ul></div> </p><p><div class="folderlabel" onclick="togglefolder('folder8');">&nbsp;&nbsp;&nbsp;&nbsp;Web Original&nbsp;</div><div id="folder8" class="folder" isfolder="true" style="display:block;"> <ul ><li> <a class='twikilink' href='/pmwiki/pmwiki.php/WebVideo/TheAngryVideoGameNerd' title='/pmwiki/pmwiki.php/WebVideo/TheAngryVideoGameNerd' data-format='V2ViVmlkZW8vVGhlQW5ncnlWaWRlb0dhbWVOZXJk'>The Angry Video Game Nerd</a> may be a stereotypical geek, but when he has to deal with entities that threaten his life, he sure knows how to use a light gun. </li><li> Jericho of the <a class='twikilink' href='/pmwiki/pmwiki.php/Literature/WhateleyUniverse' title='/pmwiki/pmwiki.php/Literature/WhateleyUniverse' data-format='TGl0ZXJhdHVyZS9XaGF0ZWxleVVuaXZlcnNl'>Whateley Universe</a> is <a class='twikilink' href='/pmwiki/pmwiki.php/Main/BlackAndNerdy' title='/pmwiki/pmwiki.php/Main/BlackAndNerdy' data-format='QmxhY2tBbmROZXJkeQ=='>Black and Nerdy</a>. He's an inventor at <a class='twikilink' href='/pmwiki/pmwiki.php/Main/SuperheroSchool' title='/pmwiki/pmwiki.php/Main/SuperheroSchool' data-format='W1tTdXBlcmhlcm9TY2hvb2wgV2hhdGVsZXkgQWNhZGVteV1d'>Whateley Academy</a>. He's working on power armor designed to help firemen and emergency medical technicians in combat areas. But he's also on a training team with Eldritch, Diamondback and Razorback. This training team is widely felt to be the scariest team on campus. </li></ul></div> </p><p><div class="folderlabel" onclick="togglefolder('folder9');">&nbsp;&nbsp;&nbsp;&nbsp;Western Animation&nbsp;</div><div id="folder9" class="folder" isfolder="true" style="display:block;"> <!--* Pretty much the entire cast of ''WesternAnimation/BigHero6'', but ''especially'' Hiro Hamada.--> <ul ><li> Dexter in <em><a class='twikilink' href='/pmwiki/pmwiki.php/WesternAnimation/DextersLaboratory' title='/pmwiki/pmwiki.php/WesternAnimation/DextersLaboratory' data-format='V2VzdGVybkFuaW1hdGlvbi9EZXh0ZXJzTGFib3JhdG9yeQ=='>Dexter's Laboratory</a></em> has his moments in the show, being a super scientist with an assortment of cool <a class='twikilink' href='/pmwiki/pmwiki.php/Main/GiantMecha' title='/pmwiki/pmwiki.php/Main/GiantMecha' data-format='W1tHaWFudE1lY2hhIHJvYm90c11d'>robots</a> and <a class='twikilink' href='/pmwiki/pmwiki.php/Main/GadgeteerGenius' title='/pmwiki/pmwiki.php/Main/GadgeteerGenius' data-format='W1tHYWRnZXRlZXJHZW5pdXMgZ2FkZ2V0c11d'>gadgets</a>, but it really becomes true for his <a class='twikilink' href='/pmwiki/pmwiki.php/Main/FutureBadass' title='/pmwiki/pmwiki.php/Main/FutureBadass' data-format='RnV0dXJlQmFkYXNz'>Future Badass</a> version seen in <em><a class='twikilink' href='/pmwiki/pmwiki.php/Main/TheMovie' title='/pmwiki/pmwiki.php/Main/TheMovie' data-format='W1tUaGVNb3ZpZSBFZ28gVHJpcF1d'>Ego Trip</a></em>. </li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Characters/RickAndMortyRickSanchez' title='/pmwiki/pmwiki.php/Characters/RickAndMortyRickSanchez' data-format='W1tDaGFyYWN0ZXJzL1JpY2tBbmRNb3J0eVJpY2tTYW5jaGV6IFJpY2sgU2FuY2hlel1d'>Rick Sanchez</a> from <em><a class='twikilink' href='/pmwiki/pmwiki.php/WesternAnimation/RickAndMorty' title='/pmwiki/pmwiki.php/WesternAnimation/RickAndMorty' data-format='V2VzdGVybkFuaW1hdGlvbi9SaWNrQW5kTW9ydHk='>Rick and Morty</a></em> is the smartest being in existence and is capable of all kinds of action whenever needed. Although he acts too cool to care most of the time, at heart he's a <a class='twikilink' href='/pmwiki/pmwiki.php/Main/ManChild' title='/pmwiki/pmwiki.php/Main/ManChild' data-format='TWFuQ2hpbGQ='>Manchild</a> that mainly applies his super intellect to making awesome fictional things like Voltron mechs real. </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/MusclesAreMeaningless">Muscles Are Meaningless</a> </li> <li> <a href="/pmwiki/pmwiki.php/Main/HiddenBadass">Hidden Badass</a> </li> <li> <a href="/pmwiki/pmwiki.php/Main/NeverMessWithGranny">Never Mess with Granny</a> </li> </ul> <ul> <li> <a href="/pmwiki/pmwiki.php/Main/NatureHero">Nature Hero</a> </li> <li> <a href="/pmwiki/pmwiki.php/Main/TheHero">The Hero</a> </li> <li> <a href="/pmwiki/pmwiki.php/Main/NominalHero">Nominal Hero</a> </li> </ul> <ul> <li> <a href="/pmwiki/pmwiki.php/Main/Meganekko">Meganekko</a> </li> <li> <a href="/pmwiki/pmwiki.php/Main/IndexedAndNerdy">Indexed and Nerdy</a> </li> <li> <a href="/pmwiki/pmwiki.php/Main/Nerdgasm">Nerdgasm</a> </li> </ul> <ul> <li> <a href="/pmwiki/pmwiki.php/Main/NeighbourhoodFriendlyGangsters">Neighbourhood-Friendly Gangsters</a> </li> <li> <a href="/pmwiki/pmwiki.php/Main/HeroTropes">Hero Tropes</a> </li> <li> <a href="/pmwiki/pmwiki.php/Main/NeutralGood">Neutral Good</a> </li> </ul> <ul> <li> <a href="/pmwiki/pmwiki.php/Main/NamesToRunAwayFromReallyFast">Names to Run Away from Really Fast</a> </li> <li> <a href="/pmwiki/pmwiki.php/Main/BadassTropes">Badass Tropes</a> </li> <li> <a href="/pmwiki/pmwiki.php/Main/NervesOfSteel">Nerves of Steel</a> </li> </ul> <ul> <li> <a href="/pmwiki/pmwiki.php/Main/VengefulAbandonedToy">Vengeful Abandoned Toy</a> </li> <li> <a href="/pmwiki/pmwiki.php/ImageSource/Internet">ImageSource/Internet</a> </li> <li> <a href="/pmwiki/pmwiki.php/Platform/Newgrounds">Newgrounds</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