1570 lines
145 KiB
HTML
1570 lines
145 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>Space Invaders</title>
|
|
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
|
<style type="text/css">
|
|
@font-face {
|
|
font-family: "arcadeFont";
|
|
src: url(data:font/woff;charset=utf-8;base64,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) format('woff'),
|
|
url(data:font/truetype;charset=utf-8;base64,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sDoysE4vsB4zsT4B6bAaMgGwaC+wANawODK0NgUABwQrsEgysDYQsQQLK7A8MrQyBQAHBCuwRDKwMhCxCAsrsEoytC4FAAcEK7BAMrAuELEMCyu0KgUABwQrsCoQsVELK7AQMrRgBQAHBCuwJDKwYBCxFAsrsFQytCIFAAcEK7BcMrAiELFiCyuwGDK0WgUABwQrsBwysWkBKwAwMRE9ATsBPQE7AT0BOwE9ATsBPQE7AT0BOwE9ATsBHQErAR0BKwEdASsBHQErAR0BKwEdASsBHQEjAxkBOwE9ASkBGQErAR0BIRE7AT0BKwEVARkBOwE9ASkBGQErAR0BIRE7AT0BKwEVgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAQABAICA/wCAgICAAwCAgAEAAQCAgP8AgICAgAEAgICAgICAgICAgICAgICAgICAgICAgICAgICAgAQAAQABAICA/wD/AICAAQCAgID6gAEAAQCAgP8A/wCAgAEAgICAAAADAAABAAcACAAAMwA/AEcApgCwMC+xNAHpsCoysCgvsDgzsSIB6bECGjIysD4vsUAB6bAIL7AWM7EKAumwEjKwRi+xDwHpAbBIL7AA1rAIMrE0BemwQDKwNBCxOgErsEIysR4F6bAUMrAeELEgASu0JgUABwQrsCwysUkBK7E0ABEStAQMDQ4wJBc5sR46ERKyEBg2OTk5sCARsigpKjk5OQCxNDARErAAObAoEbMeHyAyJBc5MDEZAjsBPQErARkBOwE9ASkBHQE7ARkBKwEdATsBHQE7AT0BOwEdASsBHQE7AR0BKQE9ASMpAj0BKwE9ASsBGQE7ARkBKwERgICAgICAAYABgICAgICAgICAgICAgICA/QD9AIABgAEAAQCAgICAgICAgAIAAQABAICAAQABAICAgID/AP8AgICAgICAgICAgICAgICAgICA/wACAAEAAQD/AAAAAAABAgAFAAQACAAABwAXAAGwCC+wANaxBgXpsQYF6bEJASsAMDEBGQEpARkBIQIAAQABAP8ABQABgAGA/oD+gAAAAQIAAQAGAAgAACcAVwCwHy+xGgHpsBAvsQsB6QGwKC+wANaxFgXpsCQg1hGwBDOxGgXpsBAysBYQsSALK7AIMrEeBemwDDKxKQErALEaHxESsiIjJDk5ObAQEbIGBwg5OTkw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KCQRErEeADk5sC4RsxofICYkFzmwFhKxGxw5ObAQEbMGBwgCJBc5MDEZAjsBPQE7AT0BKQEdASkBHQErAR0BKQEdATsBGQErAR0BKQE9ASMpAhkBKQERgICAgAIAAgD+gP6AgIACAAIAgICAgP2A/YCAAYABgAGA/oD+gAIAAgACAICAgICAgICAgICAgP8A/wCAgICAAQABAP8AAAEAAAEABwAIAAAnAEYAsCQvsQMB6bADELEAAumwBjIBsCgvsBTWsRIF6bISFAors0ASBQkrsSkBK7ESFBEStRwdHiQlJiQXOQCxJAARErAeOTAxGQIpARkBKwEdASsBHQErARkBKQEZATsBPQE7AT0BOwE9ASkBHQEhA4ADgICAgICAgP8A/wCAgICAgID+gP6A/wAGAAEAAQD/AP8AgICAgP6A/oABgAGAgICAgICAgIAAAAMAAAEABwAIAAAnADMAPwCWALAkL7EoAemwLi+xOALpsAAg1hGwHjOxAgLpsBoysAgvsBYzsQoC6bASMrA+L7EPAekBsEAvsADWsAgytCgFAAcEK7AoELE6ASuwKjK0FgUABwQrsCAyshY6CiuzQBYdCSuxQQErsSgAERK0BAwNDiQkFzmwOhFACwUGEBESGBkaJSY0JBc5ALECLhESsjAxMjk5OTAxGQI7AT0BKwEZATsBPQEpAR0BOwEZASsBHQEpARkBKwEdASkBPQEjMykBPQEpAT0BKQERATsBHQEpARkBKQEVgICAgICAAgACAICAgIABAAEAgID9gP2AgIACAAIA/wD/AP8A/wABAICAAQABAP6A/oACAAEAAQCAgAEAAQCAgICA/wD/AICA/wD/AICAgICAgICA/wADAICAAQABAIAAAAACAAABAAcACAAAJwAvAH8AsBgvsRoB6bAjL7EoAemwLi+xBgHpAbAwL7AA1rEoBemwKBCxIAErsCoysQ4F6bIgDgors0AgJAkrsQQYMjKxMQErsSAoERKzFRYUHCQXObAOEbAIOQCxGhgRErASObAjEbIOExQ5OTmwKBKwADmwLhG2AgMECgsMJiQXOTAxGQI7AT0BKQEdATsBGQErAR0BKwEdASkBPQEpAT0BOwE9ASkBPQEjKQIZASkBEYCAAoACgICAgICAgP4A/gABgAGAgID+AP4AgAGAAYABgP6A/oAFAAEAAQCAgICA/gD+AICAgICAgICAgICAgAEAAQD/AAAAAAICAAIABAAHAAAHAA8AKwCwAC+xAgLpsAgvsQoC6QGwEC+wANawCDKxBgXpsAwysQYF6bERASsAMDEBGQEpARkBIQEZASkBGQEhAgABAAEA/wD/AAEAAQD/AAIAAQABAP8A/wADAAEAAQD/AP8AAAACAQABAAQABwAADwAXAE4AsAAvsQIB6bICAAors0ACBgkrsBAvsRIC6QGwGC+wBNawEDKxCgXpsBQysRkBK7EKBBESsgwNDjk5OQCxAgARErAKObAQEbELDDk5MDEBPQE7ARkBKQEZASsBHQEhGQIpARkBIQEAgIABAAEAgID/AAEAAQD/AAEAgIABAAEA/wD/AICABAABAAEA/wD/AAAAAQEAAQAGAAgAADcAggCwKy+xJgHpsAAvsQIB6bAUL7EPAekBsDgvsDTWsAQysSIF6bAYMrAiELEsCyuwDDKxKgXpsBAysDAg1hGwCDOxJgXpsBQysTkBK7EwNBESshwdHjk5OQCxJisRErIuLzA5OTmwABGwHjmwAhKyGh8gOTk5sBQRtAoLDBscJBc5MDEBPQE7AT0BOwE9ATsBPQEpAR0BKwEdASsBHQErAR0BOwEdATsBHQE7AR0BKQE9ASsBPQErAT0BIwEAgICAgICAAQABAICAgICAgICAgICAgP8A/wCAgICAgAQAgICAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAgAAAwAHAAYAAAcADwAaALAAL7ECAemwCC+xCgHpAbAQL7ERASsAMDERPQEpAR0BIQE9ASkBHQEhA4ADgPyA/IADgAOA/IADAICAgIACAICAgIAAAQEAAQAGAAgAADcAigCwAC+xAgHpsCwvsSYB6bAYL7EaAekBsDgvsADWsBgysTYF6bAcMrA2ELEICyuwEDKxLgXpsCQysAQg1hGwFDOxMgXpsCAysTkBK7EyNhESsAw5sC4RsQ0OOTkAsQIAERKwMjmwLBG0CgsMMzQkFzmwJhKyDg8QOTk5sBgRsB45sBoSsR8gOTkwMQE9ATsBPQE7AT0BOwE9ASsBPQErAT0BKwE9ASkBHQE7AR0BOwEdATsBHQErAR0BKwEdASsBHQEhAQCAgICAgICAgICAgIABAAEAgICAgICAgICAgICA/wABAICAgICAgICAgICAgICA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AQADAAMA/wD/AP8A/wD/AAcAgICAgP0A/QADAAMAAAAAAQAAAQAHAAgAABcAUQCwFC+xBgHpsgYUCiuzQAYDCSuwCjIBsBgvsADWsQYF6bAGELEIASuxDgXpsRkBK7EGABESsBQ5sQ4IERKyEBESOTk5ALEGFBESsQAOOTkwMRkCKQEZASkBGQEpARkBKwEdASkBPQEjAQABAAGAAYABAAEAgID9gP2AgAIAAwADAP0A/QADAAMA/QD9AICAgIAAAAEAAAEABwAIAAAvAFgAAbAwL7AB1rEGBemwBhCxJAErtCIFAAcEK7AiELEQASuxFQXpsTEBK7EGARESsCg5sCQRtAgJCikqJBc5sCISsgwNDjk5ObAQEbAcObAVErEdHjk5ADAxGQIpARkBOwEdATsBPQE7ARkBKQEZASsBHQErAR0BKwEdASsBPQErAT0BKwE9ASMBAAEAgICAgICAAQABAICAgICAgICAgICAgIAEAAIAAgD+gP6AgICAgAGAAYD+AP4AgICAgICAgICAgICAAAAAAQAAAQAHAAgAACcATAABsCgvsADWsSYF6bAEMrAmELEIASu0DgUABwQrsA4QsRgBK7AQMrEWBemxKQErsQgmERKwIDmwDhGyHCEiOTk5sBgSsR0eOTkAMDEZAikBGQE7AT0BOwEdATsBGQEpARkBKQE9ASsBPQErAR0BKwEdASEBAAEAgICAgICAAQABAP8A/wCAgICAgID/AAEAA4ADgP6A/oCAgICAAYABgPyA/ICAgICAgICAgAAAAAABAAABAAcACAAARwBsALAAL7A2M7ECAumwMjKwEC+wJjOxEgLpsCIyAbBIL7AA1rAQMrFGBemwFDKwRhCxOAErsCAysTYF6bAkMrFJASuxRgARErAIObA4EbQJCiwtLiQXOQCxAgARErA+ObAQEbQaGxw/QCQXOTAxGQI7AT0BOwE9ASsBPQErARkBKQEdATsBHQE7AT0BOwE9ASkBGQErAR0BKwEdATsBHQE7ARkBKQE9ASsBPQErAR0BKwEdASGAgICAgICAgAEAAQCAgICAgIABAAEAgICAgICAgID/AP8AgICAgICA/wABAAEAAQCAgICAgIABAAEAgICAgICAgID/AP8AgICAgICA/wD/AICAgICAgICAAAAAAAEBAAEABwAIAAAfACkAAbAgL7AA1rEG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Ejk5OQCxFhQRErAOObAbEbEPEDk5sAYSsAA5MDEZAikBGQEpARkBKQEZASsBHQEpAT0BKQE9ASkBPQEjAQABAAGAAYABAAEAgID9gP2AAgACAP4A/gCAAwABgAGA/oD+gAGAAYD9gP2AgICAgICAgIAAAAAAAQAAAQAHAAYAACcAIACwAC+xAgHpsCIysBAvsBYzsRIB6QGwKC+xKQErADAxET0BOwE9ATsBPQE7AT0BKQE9ASkBHQErAR0BKwEdASsBHQEpAR0BIYCAgICAgP6A/oADgAOAgICAgICAAYABgPyAAQCAgICAgICAgICAgICAgICAgICAgAAAAAECAAEABgAIAAAnAHEAsB8vsRoB6bAAL7ECAemwEC+xCwHpAbAoL7Ak1rAEMrEaBemwEDKwICDWEbAIM7EeBemwDDKxKQErsSAkERKyFBUWOTk5ALEaHxESsiIjJDk5ObAAEbAWObACErISFxg5OTmwEBG0BgcIExQkFzkwMQE9ATsBGQE7AT0BKQEdASsBGQErAR0BOwEZATsBHQEpAT0BKwEZASMCAICAgIABAAEAgICAgICAgID/AP8AgICABACAgAEAAQCAgICA/wD/AICA/wD/AICAgIABAAEAAAAAAQMAAQAFAAgAAAcAFwABsAgvsADWsQYF6bEGBemxCQErADAxARkBKQEZASEDAAEAAQD/AAEAA4ADgPyA/IAAAAEBAAEABQAIAAAnAHkAsAAvsQIB6bAgL7EaAemwEC+xEgHpAbAoL7AE1rAMMrEiBemwGDKwACDWEbAQM7EmBemwFDKxKQErsSYEERKwCDmwIhGxCQo5OQCxAgARErAiObAgEbQGBwgjJCQXObAaErIKCww5OTmwEBGwFjmwEhKxFxg5OTAxAT0BOwEZATsBPQErARkBKwE9ASkBHQE7ARkBOwEdASsBGQErAR0BIQEAgICAgICAgIABAAEAgICAgICAgID/AAEAgIABAAEAgIABAAEAgICAgP8A/wCAgP8A/wCAgAAAAAABAAADAAcABgAAJwBdALAbL7EOAemwAC+xFh4zM7ECAemxChIyMrAkL7EGAekBsCgvsADWtCYFAAcEK7AmELEQASu0FgUABwQrsSkBK7EmABESsgQFBjk5ObAQEbAYObAWErEZGjk5ADAxET0BOwE9ASkBHQE7AR0BOwE9ATsBHQErAR0BKQE9ASsBPQErAR0BI4CAAYABgICAgICAgICA/oD+gICAgICABACAgICAgICAgICAgICAgICAgICAgAACAgABAAUACAAACwATADoAsAwvsQ4B6QGwFC+wANa0CgUACAQrsBAysAoQsQQF6bAEL7AMM7AKELQABQAIBCuwAC+xFQErADAxARkBOwEZASkBGQEhAz0BKQEdASECAICAAQABAP6AgAEAAQD/AAEAAYABgAEAAQD9gP2ABgCAgICAAAACAAABAAcACAAANwA/AJoAsDMvsCozsTgB6bAeMrIzOAors0AzMAkrsCgvsAAzsSMB6bAXL7ESAemwAjKwPi+wGjOxBwHpsA4ysgc+CiuzQAcKCSsBsEAvsADWsTgF6bA4ELEwASuxCDoyMrQuBQAHBCuxDBwyMrAuELEgASuwGDKxJgXpsBQysUEBK7E4ABESswQFBjQkFzmxJiARErMQKCkqJBc5ADAxGQI7AT0BKQE9ATsBHQEpAR0BOwEdASkBPQErARkBOwE9ASkBHQErAR0BKQEdASsBPQEpAT0BIyE7ARkBKwERgIABAAEAgIABAAEAgID/AP8AgICAgAEAAQCAgP8A/wCAgP8A/wCAAYCAgICAAwABgAGAgICAgICAgICAgICA/oD+gICAgICAgICAgICAgAGAAYD+gAAAAAEAAAEABwAIAAAvAHIAsAAvsQIB6bAqMrAIL7AmM7EKAemwIjKwGy+xFgHpsA4ysCAvsRMB6QGwMC+wBNawDDKxKgXpsCAysioECiuzQCouCSuwGDKzQComCSuwFDKyBCoKK7NABAAJK7AIMrExASuxKgQRErIQERI5OTkAMDERPQE7ARkBKwE9ATsBGQE7AT0BKQEdATsBHQEpAT0BKQEZASkBHQEpARkBKQEdASGAgICAgICAgAIAAgCAgP8A/wD/AP8AAYABgP6A/oACAAIA/IABAICAAQABAICAAQABAICAgICAgICA/wD/AICA/wD/AICAAAAAAgEAAgAHAAcAADcAPwCbALAAL7EmLjMzsQIB6bEiODIysAgvsR48MzOxCgHpsRIaMjIBsEAvsADWsAgytDYFAAcEK7AMMrA2ELEECyu0OAUABwQrsDgQsTALK7AQMrEuBemwFDKwLhCxOgsrtCIFAAcEK7AiELEoCyuwGDK0JgUABwQrsBwysUEBKwCxAgARErEqMjk5sAgRQAoODxAWFxgrLDM0JBc5MDEBPQE7ARkBKwE9ATsBHQE7AT0BKQEdATsBPQE7AR0BKwEZATsBHQErAT0BKwEdASkBPQErAR0BIwEpARkBKQERAQCAgICAgICAgAEAAQCAgICAgICAgICAgID/AP8AgICAAYABAAEA/wD/AAIAgIABgAGAgICAgICAgICAgICA/oD+gICAgICAgICAgIABAAGAAYD+gAABAQABAAcACAAANwCHALAAL7AuM7ECAemwKjKyAAIKK7NAADQJK7AIL7AmM7EKAemwIjKwEC+wHjOxEgLpsBoyAbA4L7AQ1rEACDIysRYF6bAWELE0CyuwBDKxMgXpsCgysDIQsRgLK7EeBemxJCwyMrE5ASuxFhARErAMObEeMhESsCA5ALEQChESshYXGDk5OTAxAT0BKQE9ASkBPQE7AT0BKwEZASkBGQEpARkBKQEZASsBHQE7AR0BKQEdASkBHQEpAR0BKQE9ASEBAAEAAQD/AP8AgICAgAEAAQABAAEAAQABAICAgID/AP8AAQABAP8A/wD/AP8A/wACAICAgICAgICAAQABAP8A/wABAAEA/wD/AICAgICAgICAgICAgAAAAgMAAQAFAAgAAAcADwAdAAGwEC+wANawCDKxBgXpsAwysQYF6bERASsAMDEBGQEpARkBIQEZASkBGQEhAwABAAEA/wD/AAEAAQD/AAEAAYABgP6A/oAEAAGAAYD+gP6AAAAAAAQBAAEABwAIAAAvADcAPwBHALAAsCsvsTAB6bAAL7AmM7ECAemwNi+xOAHpsCIysD4vsAozsUAB6bAbL7EWAemwDjKwRi+xEwHpAbBIL7AA1rAMMrEwBemxOEAyMrAwELQIBQAHBCuwCC+xECwzM7AwELEyASuxOkIyMrEmBemwGDK0IgUABwQrsRQoMjKxSQErsTAIERKwBDmwMhG0BQYcHR4kFzkAsTgCERKyBgcIOTk5sD4RsB45sEASsR8gOTkwMQE9ASkBPQErAT0BKwEZATsBPQEpAR0BOwEdASkBHQE7AR0BOwEZASsBHQEpAT0BIykCPQEpARURKQE9ASkBFREpAT0BKQEVAQABAAEAgICAgICAAgACAICA/wD/AICAgICAgP4A/gCAAYABAAEA/wD/AAEAAQD/AP8AAQABAP8A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AP4AAgACAP4A/gCAgICAgICAgAAAAwEAAQAHAAgAABsAKwAzAI8AsBcvsA4zsSAB6bAsMrIXIAors0AXFAkrsAoysCYvsDAzsQYB6QGwNC+wANaxIAXpsCYytBwFAAcEK7AgELEUASuwIjK0EgUABwQrsCwysBIQsQwBK7AuMrQKBQAHBCuxNQErsRwAERKzBAUGGCQXObAgEbEZGjk5ALEgFxESsAA5sCYRswIDBBokFzkwMQEZATsBPQEpARkBKwEZASsBGQErARkBKQE9ASMTOwEdATsBGQErAR0BKwEVATsBGQErAREBAICAAoACgICAgICAgP8A/wCAgICAgICAgICAAwCAgICABAABgAGAgID8gPyAAQABAP8A/wABAAEAgIABAICAAYABgICAgP6AAYABgP6AAAECAAMABAAFAAAHACIAsAAvsQIC6bECAukBsAgvsADWsQYF6bEGBemxCQErADAxARkBKQEZASECAAEAAQD/AAMAAQABAP8A/wAAAAABAgAAAAUAAgAADwAyALIAAAArsQIB6bAML7EGAekBsBAvsATWtAoFAAcEK7ERASuxCgQRErIMDQ45OTkAMDEhPQEpAT0BOwEdASsBHQEhAgABAAEAgICAgP8AgICAgICAgIAAAQIABAAGAAgAABcASwCwAC+xAgHpsBIysAgvsQoB6bIKCAors0AKDgkrAbAYL7AE1rAMMrESBemyEgQKK7NAEhYJK7IEEgors0AEAAkrsAgysRkBKwAwMQE9ATsBPQErAT0BOwE9ASkBGQE7AR0BIQIAgICAgICAAQABAICA/gAEAICAgICAgICA/oD+gICAAAAAAAIBAAQABgAIAAAXAB8AUwCwEy+xGAHpsAAvsA4zsQIC6bAKMrAeL7EHAekBsCAvsADWsRgF6bAYELEaASuxDgXpsSEBK7EYABESswQFBhQkFzmxDhoRErMIEBESJBc5ADAxARkBOwE9ASkBHQE7ARkBKwEdASkBPQEjITsBGQErAREBAICAAYABgICAgID+gP6AgAGAgICAgAUAAQABAICAgID/AP8AgICAgAEAAQD/AAAAAAIAAAIABwAHAAA3AE8A0gCwNy+wLjOxBgLpsDwysQIB6bA4MrBOL7AmM7FIAemwIjKwEC+wRDOxEgHpsBoysBIQsQwC6bBAMgGwUC+wBNawDDKx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IDk5MDEZAjsBPQE7AT0BKwE9ATsBPQEpAR0BOwEdASsBHQE7AR0BOwEZASkBPQEpAR0BIQEpAT0BKwE9ASsBHQErARUBOwE9ASsBFYCAgICAgICAAYABgICAgICAgICA/wD/AP6A/oD/AAEAAYABgICAgICAgAEAgICAgAEAAYABgICAgICAgICAgICAgICAgID+gP6AgICAgAIAgICAgICAgAKAgICAAAMAAAEABwAIAAAzAEMASwCbALAwL7E0AemyMDQKK7NAMAAJK7AqMrAML7EOAemwFjKwSi+wHjOxEgHpsBoyAbBML7AA1rEyBemxNEQyMrAyELQMBQAHBCuwDC+wBDOwMhCxLAErsRg2MjKxKgXptB4FAAcEK7AkMrFNASuxMgwRErMIEBESJBc5sCwRtQkKICEiRiQXOQCxDDQREkAJAiImJyg8REVGJBc5MDEZAjsBPQE7AT0BKwE9ATsBPQEpAR0BOwE9ATsBHQErARkBOwEdATsBGQEpAT0BKQEdASEBKQE9ASsBPQErAR0BKwEVETsBPQErARWAgICAgICAgAEAAQCAgICAgICAgICA/wD/AP6A/oD/AAEAAYABgICAgICAgICAgIABAAGAAYCAgICAgICAgICAgICAgP8A/wCAgP6A/oCAgICAAgCAgICAgICAAoCAgIAABAAAAQAHAAgAAB8AJwA3AD8ArwCwHC+xKAHpshwoCiuzQBwACSuwFjKwNi+wLDOxCgLpsAoQsTIB6bAgL7A4M7EiAemwOjIBsEAvsATWsCAysTQF6bAkMrAAINYRsR4F6bAoMrA0ELEYASuwKjKxFgXpsC4g1hGwODOxEgXpsDwysUEBK7EeBBESsggJCjk5ObEYLhESsg0ODDk5OQCxNigRErUDBBITFAIkFzmwMhGzBgcIDiQXObAKErEPEDk5MDEZAjsBPQE7AT0BKQEdATsBHQE7ARkBKQE9ASkBHQEhET0BKQEdASERKQE9ASsBPQErAR0BKwEVAT0BKQEdASGAgICAAYABgICAgID/AP8A/oD+gP8AAQABAP8AAYABgICAgICAgAIAAQABAP8AAQABgAGAgICAgICAgID+gP6AgICAgAYAgICAgPwAgICAgICAgAOAgICAgAAAAwAAAQAHAAgAACcANwA/AJ0AsCQvsSgB6bIkKAors0AkAAkrsB4y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gICAgIAAAAAAAgAAAQAHAAgAAB8ANwCeALAbL7EgAemwAC+wNDOxAgHpsDAysC4vsQcB6QGwOC+wHdawBDKxIAXpsC4ysiAdCiuzQCA0CSuyHSAKK7NAHQAJK7AgELEmASuxEgXpsCIg1hGwKjOxFgXpsAwysTkBK7EmIhEStQkKGBkaCCQXOQCxIBsRErAWObAAEbUSFxgkJSYkFzmxLgIRErQKDg8QKCQXObAHEbELDDk5MDERPQE7ARkBKQEdATsBHQE7ARkBKwEdASsBHQEpARkBIwE7AT0BOwEZASsBPQErARkBOwEdASsBEYCAAgACAICAgICAgICA/gD+AIACgICAgICAgICAgICAgAQAgIABgAGAgICAgP6A/oCAgICAAYABgP4AgIABgAGAgID/AP8AgID/AAAAAAACAAABAAcACAAAKwA/AIQAsDkvsQ4B6bAGMrI5Dgors0A5KwkrsB4ysD4vsBYzsQoB6bASMgGwQC+wANaxKgXpsCwysCoQtAQFAAcEK7AEL7AqELE2ASuwEDKxHQXptBYFAAcEK7FBASuxKgQRErIICQo5OTmwNhGzGBkaICQXOQCxDjkRErYCGhscLC0uJBc5MDEZAjsBPQE7AT0BKQEdATsBPQE7AR0BKwEdASkBGQEpAT0BKwE9ASsBGQEhATsBHQE7AR0BOwEZASkBPQErARWAgICAAQABAICAgICAgAEAAQD+gP6AgICAgP8AAQCAgICAgID/AP8AgIABAAKAAoCAgICAgICAgICAgID9gP2AgICAgP8A/wAFAICAgIABAAEAgICAAAIAAAEABwAIAAAnAC8AmgCwJC+xKAHpsC4vsQcB6bAWMrAML7EOAekBsDAvsADWsSgF6bAoELEMCyu0EgUABwQrsBIQsQgLK7QWBQAHBCuwFhCxKgErsR4F6bExASuxKAARErMEBQYkJBc5sR4qERKzGCAhIiQXOQCxKCQRErEeADk5sC4RtgIDBBofICYkFzmwBxKxGxw5ObAMEbASObAOErETFDk5MDEZAjsBPQEpAT0BKwE9ATsBHQE7AR0BKQEdATsBGQErAR0BKQE9ASMpAhkBKQERgIABAAEAgICAgICAAQABAICAgID9gP2AgAGAAYABgP6A/oACAAGAAYCAgICAgICAgICAgID+gP6AgICAgAGAAYD+gAAAAgAAAQAHAAgAACcALwCWALAkL7EoAemwLi+xBwHpsBYysBQvsQ4B6QGwMC+wANaxKAXpsCgQsQgBK7QWBQAHBCuwFhCxDAsrtBIFAAcEK7ASELEqCyuxHgXpsTEBK7EoABESswQFBiQkFzmxHhIRErMYICEiJBc5ALEoJBESsR4AOTmwLhG2AgMEGh8gJiQXObAHErEbHDk5sBQRsgoLDDk5OTAxGQI7AT0BKQE9ATsBPQE7AR0BKwEdASkBHQE7ARkBKwEdASkBPQEjKQIZASkBEYCAAQABAICAgICAgAEAAQCAgICA/YD9gIABgAGAAYD+gP6AAgABgAGAgICAgICAgICAgICA/oD+gICAgIABgAGA/oAAAAMAAAEABwAIAAAfACcALwCDALAcL7EgAemwJS+xKAHpsC4vsQsB6QGwMC+wANaxIAXpsCAQsSIBK7EWBemxMQErsSAAERKzCAkKHCQXObAiEbQMDQ4oKiQXObAWErIYGRo5OTkAsSAcERKxFgA5ObAlEbYCAwQSFxgeJBc5sCgSsRMUOTmwLhG1BwgODxAGJBc5MDEZAjsBGQE7AT0BKQEdATsBGQE7ARkBKwEdASkBPQEjKQIZASkBEQE7AT0BKwEVgICAgAGAAYCAgICAgID9gP2AgAGAAYABgP6A/oABAICAgIACAAGAAYABAAEAgICAgP8A/wD+gP6AgICAgAGAAYD+gAKAgICAAAADAAABAAcACAAAKwAzADsAogCwKC+xLAHpsDIvsTQB6bAaMrA6L7AWM7EKAemwEjIBsDwvsADWsSwF6bA0MrAsELQFBQAHBCuwBS+wKDOwLBCxLgErsBAysSIF6bQWBQAHBCuxHCQyMrE9ASuxLAURErIICQo5OTmwLhGzGBkaNiQXOQCxLCgRErEiADk5sDIRtgIDBB4jJCokFzmwNBKxHyA5ObA6EbUHCA4PEAYkFzkwMRkCOwEZATsBPQEpAR0BOwE9ATsBHQErAR0BOwEdATsBGQErAR0BKQE9ASMpAhkBKQEZATsBPQErARWAgICAAQABAICAgICAgICAgICAgP2A/YCAAYABgAGA/oD+gICAgIACAAGAAYABAAEAgICAgICAgICAgICA/oD+gICAgIABgAGA/oACgICAgAAAAAQAAAEABwAIAAAXAB8AJwAvAIQAsBQvsSAB6bAmL7EGAemwGC+wKDOxGgHpsCoyAbAwL7AA1rEgBemwIBCxIgErsQ4F6bExASuxIAARErYEBQYUGBkaJBc5sCIRtR0eHCgpKiQXObAOErYIEBESLC0uJBc5ALEgFBESsQ4AOTmwJhG2AgMECg8QFiQXObAGErELDDk5MDEZAjsBPQEpAR0BOwEZASsBHQEpAT0BIxM9ASkBHQEhESkBGQEpAREBPQEpAR0BIYCAAoACgICAgID9gP2AgIABAAEA/wABgAGA/oD+gAIAAQABAP8AAgABgAGAgICAgP6A/oCAgICABQCAgICA+wABgAGA/oADgICAgIAAAAEBAAIABgAHAABHAKEAsAAvsDYzsQIB6bAyMrBEL7A6M7EGAemwLjKwQC+xGgHpsAwvsCozsRYB6bAeMrAQL7AmM7ESAemwIjIBsEgvsADWsBAytEYFAAcEK7AUMrBGELEECyuwDDK0QgUABwQrsBgysEIQsQgLK7QuBQAHBCuwLhCxPAsrsBwytDIFAAcEK7AoMrAyELE4CyuwIDK0NgUABwQrsCQysUkBKwAwMQE9ATsBPQE7AT0BKwE9ASsBPQE7AR0BOwEdATsBPQE7AT0BOwEdASsBHQErAR0BOwEdATsBHQErAT0BKwE9ASsBHQErAR0BIwEAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIACAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAAMAAAEABwAIAAAXAC8ANwCoALAUL7EYAemwLi+xKAHpsDAvsTIB6bAeL7EgAemwJi+xBgHpAbA4L7AA1rEYBemwJjKyGAAKK7NAGCwJK7AYELEwASu0NgUABwQrsDYQsRoBK7AiMrEOBemyGg4KK7NAGh4JK7E5ASuxGAARErMEBQYUJBc5sQ4aERKzCBAREiQXOQCxGBQRErEOADk5sC4Rsg8QFjk5ObEmIBEStQMECgsMAiQXOTAxGQI7AT0BKQEdATsBGQErAR0BKQE9ASMpAhkBKwE9ATsBPQEpARkBOwEdASsBFQE9ATsBHQEjgIACgAKAgICAgP2A/YCAAYABgAGAgICAgP6A/oCAgICAAQCAgIACAAKAAoCAgICA/YD9gICAgIABgAGAgICAgP6A/oCAgIABgICAgIAAAAAAAgAAAQAHAAgAABcAJwCFALAUL7EGAemyBhQKK7NABgMJK7AKMrAkL7EeAemwGC+xGgHpAbAoL7AA1rEGBemwBhCxGAsrtB4FAAcEK7AeELEkCyu0IgUABwQrsCIQsQgBK7EOBemxKQErsQYAERKwFDmxDggRErIQERI5OTkAsQYUERKxAA45ObAkEbIPEBY5OTkwMRkCKQEZASkBGQEpARkBKwEdASkBPQEjAT0BOwEdATsBHQErAT0BIwEAAQABgAGAAQABAICA/YD9gIABgICAgICAgIACAAIAAgD+AP4AAgACAP4A/gCAgICABQCAgICAgICAgAACAAABAAcACAAAFwAnAIUAsBQvsQYB6bIGFAors0AGAwkrsAoysBgvsRoB6bAkL7EeAekBsCgvsADWsQYF6bAGELEYASu0JgUABwQrsCYQsRwLK7QiBQAHBCuwIhCxCAsrsQ4F6bEpASuxBgARErAUObEOIhESshAREjk5OQCxBhQRErEADjk5sBgRsg8QFjk5OTAxGQIpARkBKQEZASkBGQErAR0BKQE9ASMBPQE7AT0BOwEdASsBHQEjAQABAAGAAYABAAEAgID9gP2AgAKAgICAgICAgAIAAgACAP4A/gACAAIA/gD+AICAgIAEAICAgICAgICAAAIAAAEABwAIAAAXAC8AhACwFC+xBgHpsgYUCiuzQAYDCSuwCjKwGC+wJjOxGgHpsCIysCwvsR8B6QGwMC+wANaxBgXpsAYQsQgBK7EOBemxMQErsQYAERK0FBgcHR4kFzmwCBG2ICEiKCwtLiQXObAOErUQERIkJSYkFzkAsQYUERKxAA45ObAYEbIPEBY5OTkwMRkCKQEZASkBGQEpARkBKwEdASkBPQEjEz0BOwE9ASkBHQE7AR0BKQE9ASsBHQEhAQABAAGAAYABAAEAgID9gP2AgICAgAGAAYCAgP8A/wCAgP8AAgABgAGA/oD+gAGAAYD+gP6AgICAgAQAgICAgICAgICAgICAAAADAAABAAcACAAAFwAfACcAewCwFC+xBgHpsgYUCiuzQAYDCSuwCjKwGC+wIDOxGgHpsCIyAbAoL7AA1rEGBemwBhCxCAErsQ4F6bEpASuxBgARErMUGBkaJBc5sAgRtRwdHiAhIiQXObAOErUQERIkJSYkFzkAsQYUERKxAA45ObAYEbIPEBY5OTkwMRkCKQEZASkBGQEpARkBKwEdASkBPQEjEz0BKQEdASkBPQEpAR0BIQEAAQABgAGAAQABAICA/YD9gICAAQABAP8AAgABAAEA/wACAAIAAgD+AP4AAgACAP4A/gCAgICABQCAgICAgICAgAAAAAEBAAEABwAIAAAvAGMAsAAvsB4zsQIC6bAaMrAUL7EGAemwEC+xCgHpAbAwL7AA1rEWBemwFhCxBAsrsCgytBIFAAcEK7ASELEICyu0DgUABwQrsCQysA4QsRgLK7EeBemxMQErALECABESsBY5MDEBGQEpAT0BOwE9ATsBHQErAR0BKwEZASkBGQEpARkBKwEdASsBGQEpARkBKwE9ASMBAAEAAQCAgICAgICAgAEAAQABAAEAgICAgP8A/wCAgIAEAAEAAQCAgICAgICAgP8A/wABAAEA/wD/AICA/wD/AAEAAQCAgAACAAABAAcACAAAFwAfAG4AsBQvsRgB6bIUGAors0AUAAkrsB4vsQYB6bIGHgors0AGAgkrAbAgL7AA1rEWBemxBBgyMrAWELEaASuxDgXpsSEBK7EOGhESswgQERIkFzkAsRgUERKwDjmwHhGyCg8QOTk5sAYSsQsMOTkwMRkCKQEdASkBHQE7ARkBKwEdASkBHQEhASkBGQEpAREBAAEAAgACAICAgID+AP4A/wABAAGAAYD+gP6AAQADgAOAgICAgP6A/oCAgICAAgABgAGA/oAAAAIBAAEABwAIAAAjADcAlwCwHC+wADOxKAHpsCAvsBYzsSQB6bAuL7EwAemwNi+xBwHpAbA4L7AA1rEiBemwJDKwIhCxKgErsDIysRYF6bAMMrAcINYRsC4zsRoF6bEIEDIysTkBK7EiABESsgQFBjk5ObAcEbImJyg5OTkAsS4kERKyExQSOTk5sDARsA45sDYStQMECgIPECQXObAHEbELDDk5MDEBGQE7AT0BKQEdATsBGQErAR0BOwEZASsBHQEpAT0BKwEdASEBOwEdATsBGQErAT0BOwEZASkBEQEAgIACAAIAgICAgICAgID/AP8AgID/AAEAgICAgICAgID/AP8AAQADAAMAgICAgP8A/wCAgP8A/wCAgICAgIACAICAAQABAICAAQABAP4AAAACAAABAAcACAAAKwAzAJYAsCgvsSwB6bAAL7ECAemwMi+xBwHpsAwvsQ4B6bAeMrAUL7EWAekB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ARkBI4CAgAKAgICAAoCAgIABAAEAAQD/AP8AAQABAP8A/wABAAEA/wD/AAAAAQIAAgAGAAcAACcAcQCwHy+xGgHpsAAvsQIB6bAQL7ELAekBsCgvsCDWsAgysR4F6bAMMrAkINYRsAQzsRoF6bAQMrEpASuxICQRErIUFRY5OTkAsRofERKyIiMkOTk5sAARsBY5sAISshIXGDk5ObAQEbQGBwgTFCQXOTAxAT0BOwE9ATsBPQEpAR0BKwEdASsBHQE7AR0BOwEdASkBPQErAT0BIwIAgICAgAEAAQCAgICAgICAgP8A/wCAgIAEAICAgICAgICAgICAgICAgICAgICAAAAAAQEAAgAFAAcAACcAeQCwAC+xAgHpsCAvsRoB6bAQL7ESAekBsCgvsATWsAwysSIF6bAYMrAAINYRsBAzsSYF6bAUMrEpASuxJgQRErAIObAiEbEJCjk5ALECABESsCI5sCARtAYHCCMkJBc5sBoSsgoLDDk5ObAQEbAWObASErEXGDk5MDEBPQE7AT0BOwE9ASsBPQErAT0BKQEdATsBHQE7AR0BKwEdASsBHQEhAQCAgICAgICAgAEAAQCAgICAgICAgP8AAgCAgICAgICAgICAgICAgICAgICAgAAAAAADAAABAAcACAAANwA/AEcAnACwLy+xOAHpsCwvsDIzsScB6bAAL7A8M7ECAemwIjKwCC+wHjOxCgHpsEAysBsvsRYB6bAOMrBGL7ETAekBsEgvsDTWsAwysTgF6bBAMrI0OAors0A0AAkrsAgysDgQsToBK7BCMrEqBemwGDKxSQErsTg0ERK2EBESICEiMCQXObA6EbUdHiQlJhwkFzmwKhKzFCwtLiQXOQAwMRE9ATsBPQErAT0BKQE9ATsBPQEpAR0BOwEdASkBHQEpAR0BKQEdASkBHQErAR0BKQE9ASsBPQEhATsBPQErARUROwE9ASsBFYCAgIABAAEAgIABgAGAgID/AP8A/wD/AAEAAQABAAEAgID+gP6AgID/AAMAgICAgICAgIADAICAgICAgICAgICAgICAgICAgICAgICAgICAgID/AICAgAOAgICAAAAAAQEABAAHAAgAABsAZQCwGC+xBg4zM7QCAwAIBCu0AgMACAQrsAIQsQAB6bASMgGwHC+wGNa0FgUABwQrshgWCiuzQBgACSuwFhCxEAErtA4FAAcEK7AOELEIASu0BgUABwQrsR0BKwCxABgRErAKOTAxAT0BKQEZASsBGQErARkBKwEZASsBGQErARkBIwEAAwADAICAgICAgICAgICABwCAgP4A/gABAAEA/wD/AAGAAYD+gP6AAYABgAABAAAAAAX/Bf8AAwAAESERIQX/+gEF//oBAAAAAQAAAQAHAAgAACMAdwCwAC+wGjOxAgHpsBIysgACCiuzQAAgCSuwFjKwEC+xCwHpAbAkL7Ag1rAEMrEeBemwEDKyIB4KK7NAIAAJK7AeELEYASuxFgXpsSUBK7EeIBESsggJCjk5ObAYEbAMObAWErENDjk5ALEQAhESsgYHCDk5OTAxET0BOwE9ATsBPQEpAR0BKQEdASkBGQEpARkBKQEZASkBGQEjgICAgAGAAYD/AP8AAgACAP8A/wD/AP8A/wD/AIAFAICAgICAgICAgID9gP2AAgACAP4A/gACAAIAAAAAAgAAAQAHAAgAABsAIwBsALAAL7ASM7ECAemwHDKyAAIKK7NAABgJK7AOMrAiL7EKAekBsCQvsBjWsAQysRYF6bAcMrIYFgors0AYAAkrsBYQsRABK7AeMrEOBemxJQErsRYYERKyCAkKOTk5ALEiAhESsgYHCDk5OTAxET0BOwE9ATsBPQEpARkBKQEZASkBGQEpARkBIwEpAT0BKQEVgICAgAKAAoD/AP8A/wD/AP8A/wCAAoABAAEA/wD/AAUAgICAgICA/ID8gAIAAgD+AP4AAgACAAEAgICA//8BAAEAFwAIABAnAEwQAAAAECcASQgAAAAQBgBJAAD//wEAAQAXAAgAECcATxAAAAAQJwBJCAAAABAGAEkAAAABAAAAAgAAQUuud18PPPUAHwgAAAAAAMtMN9YAAAAAy0w31gAAAAAXAAgAAAAACAACAAAAAAAAAAEAAAgA/9gAABgAAAAAABcAAAEAAAAAAAAAAAAAAAAAAADpCAABAAgAAAACqgAACAAAAAgAAgAIAAEACAAAAAgAAAAIAAAACAAAAAgAAgAIAAIACAABAAgAAAAIAAEACAABAAgAAQAIAAIACAAAAAgAAAAIAAEACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAIACAABAAgAAQAIAAAACAABAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAEACAAAAAgAAAAIAAEACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAQAIAAAACAAAAAgAAAAIAAAACAABAAgAAAAIAAIACAAAAAgAAQAIAAEACAAAAAgAAwAIAAAACAAAAAgAAAAIAAAACAAAAAgAAQAIAAAACAAAAAgAAQAIAAEACAAAAAgAAQAIAAAACAAAAAgAAAAIAAAACAAAAAgAAQAIAAAACAABAAgAAAAIAAEACAAAAAgAAAAIAAAACAAAAAgAAgAIAAMACAABAAgAAAAIAAAACAACAAgAAAAIAAAACAABAAgAAQAIAAMACAABAAgAAQAIAAAACAABAAgAAAAIAAEACAABAAgAAAAIAAEACAACAAgAAQAIAAIACAACAAgAAwAIAAAACAABAAgAAgAIAAIACAACAAgAAQAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAQAIAAEACAABAAgAAQAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAABAAgAAAAIAAAACAAAAAgAAAAIAAAACAABAAgAAAAIAAEACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAABAAgAAQAIAAEACAABAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAEACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAQAIAAEACAABAAQAAAAIAAAABAAAAAgAAAACqgAAAgAAAAFUAAABVAAAAQAAAAGYAAAAcAAACAABAAgAAQAIAAEACAAAAAgAAAAIAAIACAACAAgAAgAIAAEACAABAAgAAAAIAAIACAAAAAGYAAAIAAIACAABAAIAAAAIAAAACAABAAX/AAAIAAAACAAAABgAAQABAAAAAAAAZABkAGQAZACiANwBdAIWAwYDtAPUBDQElgUsBYAFugXYBf4GjAcaB2gHyghECKoJGAmaCfQKmAsaC1ILogwmDFAM2A08DdIOWA7UD2QPzhAWEFoQ4BEuEXgRvBIoEloSthMAE2QTxBRYFNoVbBWqFfoWZBbCF1AXmBfoGB4YrBjiGRYZNhloGcgaMBp2GtIbOBueHA4cYhy4HRAdcB2yHg4eVB64HxQfbB+sH/ogTiCUIOohSiG4IiIiZiLWIvYjaiPKI8okDCSsJSglyCZaJownRidyKEwolClUKYYppCqOKqwrACtmK6or7iwgLH4tEC02LWgtsi4MLtQvpjCEMXQx2DJ6Mx4z0DR8NSo1zDZMNwQ3djfmOF44yDk8Oa46FjqIOyI7tjxEPNA9Vj32PoA/Ij/CQD5AukFAQbxCMEKaQzJDwkRMRMpFakXsRoRHBkeCSBRIqkkwSbRKHEqESvhLYkwKTJhNJk2yTjhO2E9iT6RQNlCmURZRklIGUppTAlOUVApUiFT+VTJVilWKVYpVilWKVYpVilWKVYpVilWKVYpVqFXGVeRWAlYgVlpWlFbOVypXhlfiWDBYfFh8WOhZWFlYWgJaYFpuWuBbTlteW24AAAABAAAA6gBsAAUAXAAEAAIAAQACABYAAAEAAOMAAwABAAAACABmAAMAAQQJAAAAnAAAAAMAAQQJAAEAHACcAAMAAQQJAAIADgC4AAMAAQQJAAMADgDGAAMAAQQJAAQALADUAAMAAQQJAAUAGgEAAAMAAQQJAAYAGAEaAAMAAQQJAMgAbgEyACgAYwApACAAMgAwADEAMQAgAEMAbwBkAHkAIAAiAEMAbwBkAGUATQBhAG4AMwA4ACIAIABCAG8AaQBzAGMAbABhAGkAcgAuACAAUgBlAGwAZQBhAHMAZQBkACAAdQBuAGQAZQByACAAdABoAGUAIABTAEkATAAgAE8AcABlAG4AIABGAG8AbgB0ACAATABpAGMAZQBuAHMAZQAuAFAAcgBlAHMAcwAgAFMAdABhAHIAdAAgADIAUABSAGUAZwB1AGwAYQByAHcAZQBiAGYAbwBuAHQAUAByAGUAcwBzACAAUwB0AGEAcgB0ACAAMgBQACAAUgBlAGcAdQBsAGEAcgBWAGUAcgBzAGkAbwBuACAAMgAuADEAMwAgAFAAcgBlAHMAcwBTAHQAYQByAHQAMgBQAFQAaABpAHMAIABmAG8AbgB0ACAAdwBhAHMAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHQAaABlACAARgBvAG4AdAAgAFMAcQB1AGkAcgByAGUAbAAgAEcAZQBuAGUAcgBhAHQAbwByAC4AAAACAAAAAAAA/9EAZgAAAAAAAAAAAAAAAAAAAAAAAAAAAOoAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAEEAQgBDAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAF8AYABhAQIAowCEAIUAvQCWAOgAhgCOAIsAnQCpAKQBAwCKANoAgwCTAQQBBQCNAQYAiADDAN4BBwCeAKoA9QD0APYAogCtAMkAxwCuAGIAYwCQAGQAywBlAMgAygDPAMwAzQDOAOkAZgDTANAA0QCvAGcA8ACRANYA1ADVAGgA6wDtAIkAagBpAGsAbQBsAG4AoABvAHEAcAByAHMAdQB0AHYAdwDqAHgAegB5AHsAfQB8ALgAoQB/AH4AgACBAOwA7gC6ALAAsQC7ANgA2QEIAQkBCgELAQwBDQEOAQ8BEAERARIBEwEUARUAsgCzALYAtwDEALQAtQDFAIcAqwEWAL4AvwEXARgAjAEZARoBGwEcAR0HdW5pMDBBMAd1bmkwMEFEB3VuaTAwQjIHdW5pMDBCMwd1bmkwMEI1B3VuaTAwQjkHdW5pMjAwMAd1bmkyMDAxB3VuaTIwMDIHdW5pMjAwMwd1bmkyMDA0B3VuaTIwMDUHdW5pMjAwNgd1bmkyMDA3B3VuaTIwMDgHdW5pMjAwOQd1bmkyMDBBB3VuaTIwMTAHdW5pMjAxMQpmaWd1cmVkYXNoB3VuaTIwMkYHdW5pMjA1RgRFdXJvB3VuaUUwMDAHdW5pRkIwMQd1bmlGQjAyB3VuaUZCMDMHdW5pRkIwNAAAuAH/hbABjQBLsAhQWLEBAY5ZsUYGK1ghsBBZS7AUUlghsIBZHbAGK1xYALABIEWwAytEsAIgRbIBCAIrsAMrRLADIEWyAgcCK7ADK0SwBCBFsgMHAiuwAytEAbAFIEWwAytEsAYgRboABX//AAIrsQNGditEWbAUKwAAAA==) format('truetype');
|
|
font-weight: normal;
|
|
font-style: normal;
|
|
}
|
|
* {margin: 0; padding: 0;}
|
|
html, body {width: 100%; height: 100%; text-align: center; overflow: hidden;}
|
|
|
|
canvas {display: block; width: 100%; height: 100%; background: #000; overflow: hidden;}
|
|
#game {width: 100%; height: 100%; overflow: hidden;}
|
|
ol li {list-style-position: inside; line-height: 1.5em;}
|
|
p {font-family: arcadeFont, monospace;}
|
|
p.text {display: block; color: #fff; font-family: arcadeFont, monospace; font-weight: normal; font-size: 1.3em; text-transform: uppercase; padding: 0; margin: 0;}
|
|
p.menuText {line-height: 2em;}
|
|
p.instructionsText {padding-bottom: 0.5em;}
|
|
p.scoreText {padding-bottom: 1em;}
|
|
p.scoreAdvanceText {line-height: 1.5em;}
|
|
p.creditText, p.livesText {padding: 0 1em 0.5em 0;}
|
|
p.menuHeaderText {font-weight: bold; font-size: 2em; line-height: 3em;}
|
|
p.smallText {font-size: 0.8em; line-height: 2em;}
|
|
p#insertCoins {line-height: 2em;margin-top: 2em;}
|
|
p#copyright {padding-bottom: 0.5em;}
|
|
p#copyright a {text-decoration: none; color: #fff;}
|
|
div.field {display: block; position: absolute; text-align: center;}
|
|
div.livesField {padding-left: 1em;}
|
|
div.scoreField {padding: 1em;}
|
|
div.menuFieldFrame {padding: 3em; border: 3px solid #0f0; background: #000;}
|
|
div.instructionsFieldFrame {padding: 3em; border: 3px solid #0f0; background: #000; text-align: left;}
|
|
.clickText {cursor: pointer;}
|
|
p#copyright a:hover, .clickText:hover {color: #0f0;}
|
|
|
|
/*===================================
|
|
"play" and alien intro animations
|
|
===================================*/
|
|
p#play {
|
|
display: block;
|
|
overflow: hidden;
|
|
}
|
|
#span_container {
|
|
display: inline-block;
|
|
position: relative;
|
|
line-height: 50px;
|
|
transition: left 4s linear 2s;
|
|
-webkit-transition: left 4s linear 2s;
|
|
-moz-transition: left 4s linear 2s;
|
|
}
|
|
#span_y {
|
|
display: inline-block;
|
|
position: relative;
|
|
top: -5px;
|
|
transform: rotate(180deg);
|
|
-webkit-transform: rotate(180deg);
|
|
-moz-transform: rotate(180deg);
|
|
}
|
|
#span_y.end {
|
|
top: 0px;
|
|
transform: rotate(0deg);
|
|
-webkit-transform: rotate(0deg);
|
|
-moz-transform: rotate(0deg);
|
|
}
|
|
#span_img {
|
|
display: inline-block;
|
|
width: 32px;
|
|
height: 32px;
|
|
position: absolute;
|
|
margin-left: 25px;
|
|
background-position: -4px 0px;
|
|
background-repeat: no-repeat;
|
|
}
|
|
#span_img.slide {
|
|
transition: left 4s linear 1s;
|
|
animation: animate 8s infinite;
|
|
-webkit-transition: left 4s linear 1s;
|
|
-webkit-animation: animate 8s infinite;
|
|
-moz-transition: left 4s linear 1s;
|
|
-moz-animation: animate 8s infinite;
|
|
}
|
|
#span_img.end {
|
|
transition: opacity 1s linear 1s;
|
|
-webkit-transition: opacity 1s linear 1s;
|
|
-moz-transition: opacity 1s linear 1s;
|
|
}
|
|
@-webkit-keyframes animate {
|
|
0% {background-position: -4px 0px;}
|
|
1.99% {background-position: -4px 0px;}
|
|
2% {background-position: -40px 0px;}
|
|
3.99% {background-position: -40px 0px;}
|
|
4% {background-position: -4px 0px;}
|
|
5.99% {background-position: -4px 0px;}
|
|
6% {background-position: -40px 0px;}
|
|
7.99% {background-position: -40px 0px;}
|
|
8% {background-position: -4px 0px;}
|
|
9.99% {background-position: -4px 0px;}
|
|
10% {background-position: -40px 0px;}
|
|
11.99% {background-position: -40px 0px;}
|
|
12% {background-position: -4px 0px;}
|
|
13.99% {background-position: -4px 0px;}
|
|
14% {background-position: -40px 0px;}
|
|
15.99% {background-position: -40px 0px;}
|
|
16% {background-position: -4px 0px;}
|
|
17.99% {background-position: -4px 0px;}
|
|
18% {background-position: -40px 0px;}
|
|
19.99% {background-position: -40px 0px;}
|
|
20% {background-position: -4px 0px;}
|
|
21.99% {background-position: -4px 0px;}
|
|
22% {background-position: -40px 0px;}
|
|
23.99% {background-position: -40px 0px;}
|
|
24% {background-position: -4px 0px;}
|
|
25.99% {background-position: -4px 0px;}
|
|
26% {background-position: -40px 0px;}
|
|
27.99% {background-position: -40px 0px;}
|
|
28% {background-position: -4px 0px;}
|
|
29.99% {background-position: -4px 0px;}
|
|
30% {background-position: -40px 0px;}
|
|
31.99% {background-position: -40px 0px;}
|
|
32% {background-position: -4px 0px;}
|
|
33.99% {background-position: -4px 0px;}
|
|
34% {background-position: -40px 0px;}
|
|
35.99% {background-position: -40px 0px;}
|
|
36% {background-position: -4px 0px;}
|
|
37.99% {background-position: -4px 0px;}
|
|
38% {background-position: -40px 0px;}
|
|
39.99% {background-position: -40px 0px;}
|
|
40% {background-position: -4px 0px;}
|
|
41.99% {background-position: -4px 0px;}
|
|
42% {background-position: -40px 0px;}
|
|
43.99% {background-position: -40px 0px;}
|
|
44% {background-position: -4px 0px;}
|
|
45.99% {background-position: -4px 0px;}
|
|
46% {background-position: -40px 0px;}
|
|
47.99% {background-position: -40px 0px;}
|
|
48% {background-position: -4px 0px;}
|
|
49.99% {background-position: -4px 0px;}
|
|
50% {background-position: -40px 0px;}
|
|
51.99% {background-position: -40px 0px;}
|
|
52% {background-position: -4px 0px;}
|
|
53.99% {background-position: -4px 0px;}
|
|
54% {background-position: -40px 0px;}
|
|
55.99% {background-position: -40px 0px;}
|
|
56% {background-position: -4px 0px;}
|
|
57.99% {background-position: -4px 0px;}
|
|
58% {background-position: -40px 0px;}
|
|
59.99% {background-position: -40px 0px;}
|
|
60% {background-position: -4px 0px;}
|
|
61.99% {background-position: -4px 0px;}
|
|
62% {background-position: -40px 0px;}
|
|
63.99% {background-position: -40px 0px;}
|
|
64% {background-position: -4px 0px;}
|
|
65.99% {background-position: -4px 0px;}
|
|
66% {background-position: -40px 0px;}
|
|
67.99% {background-position: -40px 0px;}
|
|
68% {background-position: -4px 0px;}
|
|
69.99% {background-position: -4px 0px;}
|
|
70% {background-position: -40px 0px;}
|
|
71.99% {background-position: -40px 0px;}
|
|
72% {background-position: -4px 0px;}
|
|
73.99% {background-position: -4px 0px;}
|
|
74% {background-position: -40px 0px;}
|
|
75.99% {background-position: -40px 0px;}
|
|
76% {background-position: -4px 0px;}
|
|
77.99% {background-position: -4px 0px;}
|
|
78% {background-position: -40px 0px;}
|
|
79.99% {background-position: -40px 0px;}
|
|
80% {background-position: -4px 0px;}
|
|
81.99% {background-position: -4px 0px;}
|
|
82% {background-position: -40px 0px;}
|
|
83.99% {background-position: -40px 0px;}
|
|
84% {background-position: -4px 0px;}
|
|
85.99% {background-position: -4px 0px;}
|
|
86% {background-position: -40px 0px;}
|
|
87.99% {background-position: -40px 0px;}
|
|
88% {background-position: -4px 0px;}
|
|
89.99% {background-position: -4px 0px;}
|
|
90% {background-position: -40px 0px;}
|
|
91.99% {background-position: -40px 0px;}
|
|
92% {background-position: -4px 0px;}
|
|
93.99% {background-position: -4px 0px;}
|
|
94% {background-position: -40px 0px;}
|
|
95.99% {background-position: -40px 0px;}
|
|
96% {background-position: -4px 0px;}
|
|
97.99% {background-position: -4px 0px;}
|
|
98% {background-position: -40px 0px;}
|
|
99.99% {background-position: -40px 0px;}
|
|
100% {background-position: -40px 0px;}
|
|
}
|
|
@-moz-keyframes animate {
|
|
0% {background-position: -4px 0px;}
|
|
1.99% {background-position: -4px 0px;}
|
|
2% {background-position: -40px 0px;}
|
|
3.99% {background-position: -40px 0px;}
|
|
4% {background-position: -4px 0px;}
|
|
5.99% {background-position: -4px 0px;}
|
|
6% {background-position: -40px 0px;}
|
|
7.99% {background-position: -40px 0px;}
|
|
8% {background-position: -4px 0px;}
|
|
9.99% {background-position: -4px 0px;}
|
|
10% {background-position: -40px 0px;}
|
|
11.99% {background-position: -40px 0px;}
|
|
12% {background-position: -4px 0px;}
|
|
13.99% {background-position: -4px 0px;}
|
|
14% {background-position: -40px 0px;}
|
|
15.99% {background-position: -40px 0px;}
|
|
16% {background-position: -4px 0px;}
|
|
17.99% {background-position: -4px 0px;}
|
|
18% {background-position: -40px 0px;}
|
|
19.99% {background-position: -40px 0px;}
|
|
20% {background-position: -4px 0px;}
|
|
21.99% {background-position: -4px 0px;}
|
|
22% {background-position: -40px 0px;}
|
|
23.99% {background-position: -40px 0px;}
|
|
24% {background-position: -4px 0px;}
|
|
25.99% {background-position: -4px 0px;}
|
|
26% {background-position: -40px 0px;}
|
|
27.99% {background-position: -40px 0px;}
|
|
28% {background-position: -4px 0px;}
|
|
29.99% {background-position: -4px 0px;}
|
|
30% {background-position: -40px 0px;}
|
|
31.99% {background-position: -40px 0px;}
|
|
32% {background-position: -4px 0px;}
|
|
33.99% {background-position: -4px 0px;}
|
|
34% {background-position: -40px 0px;}
|
|
35.99% {background-position: -40px 0px;}
|
|
36% {background-position: -4px 0px;}
|
|
37.99% {background-position: -4px 0px;}
|
|
38% {background-position: -40px 0px;}
|
|
39.99% {background-position: -40px 0px;}
|
|
40% {background-position: -4px 0px;}
|
|
41.99% {background-position: -4px 0px;}
|
|
42% {background-position: -40px 0px;}
|
|
43.99% {background-position: -40px 0px;}
|
|
44% {background-position: -4px 0px;}
|
|
45.99% {background-position: -4px 0px;}
|
|
46% {background-position: -40px 0px;}
|
|
47.99% {background-position: -40px 0px;}
|
|
48% {background-position: -4px 0px;}
|
|
49.99% {background-position: -4px 0px;}
|
|
50% {background-position: -40px 0px;}
|
|
51.99% {background-position: -40px 0px;}
|
|
52% {background-position: -4px 0px;}
|
|
53.99% {background-position: -4px 0px;}
|
|
54% {background-position: -40px 0px;}
|
|
55.99% {background-position: -40px 0px;}
|
|
56% {background-position: -4px 0px;}
|
|
57.99% {background-position: -4px 0px;}
|
|
58% {background-position: -40px 0px;}
|
|
59.99% {background-position: -40px 0px;}
|
|
60% {background-position: -4px 0px;}
|
|
61.99% {background-position: -4px 0px;}
|
|
62% {background-position: -40px 0px;}
|
|
63.99% {background-position: -40px 0px;}
|
|
64% {background-position: -4px 0px;}
|
|
65.99% {background-position: -4px 0px;}
|
|
66% {background-position: -40px 0px;}
|
|
67.99% {background-position: -40px 0px;}
|
|
68% {background-position: -4px 0px;}
|
|
69.99% {background-position: -4px 0px;}
|
|
70% {background-position: -40px 0px;}
|
|
71.99% {background-position: -40px 0px;}
|
|
72% {background-position: -4px 0px;}
|
|
73.99% {background-position: -4px 0px;}
|
|
74% {background-position: -40px 0px;}
|
|
75.99% {background-position: -40px 0px;}
|
|
76% {background-position: -4px 0px;}
|
|
77.99% {background-position: -4px 0px;}
|
|
78% {background-position: -40px 0px;}
|
|
79.99% {background-position: -40px 0px;}
|
|
80% {background-position: -4px 0px;}
|
|
81.99% {background-position: -4px 0px;}
|
|
82% {background-position: -40px 0px;}
|
|
83.99% {background-position: -40px 0px;}
|
|
84% {background-position: -4px 0px;}
|
|
85.99% {background-position: -4px 0px;}
|
|
86% {background-position: -40px 0px;}
|
|
87.99% {background-position: -40px 0px;}
|
|
88% {background-position: -4px 0px;}
|
|
89.99% {background-position: -4px 0px;}
|
|
90% {background-position: -40px 0px;}
|
|
91.99% {background-position: -40px 0px;}
|
|
92% {background-position: -4px 0px;}
|
|
93.99% {background-position: -4px 0px;}
|
|
94% {background-position: -40px 0px;}
|
|
95.99% {background-position: -40px 0px;}
|
|
96% {background-position: -4px 0px;}
|
|
97.99% {background-position: -4px 0px;}
|
|
98% {background-position: -40px 0px;}
|
|
99.99% {background-position: -40px 0px;}
|
|
100% {background-position: -40px 0px;}
|
|
}
|
|
|
|
/*=========================/
|
|
typewriting animations
|
|
/=========================*/
|
|
ul#scoreAdvanceTable {text-align: left;}
|
|
ul#scoreAdvanceTable li {margin-left: 19%; line-height: 2em;}
|
|
ul#scoreAdvanceTable li span {display: inline-block; height: 32px; width: 48px; text-align: center;}
|
|
p.typewrite {display: inline-block; white-space: nowrap; overflow: hidden; margin-left: 1em;}
|
|
.startTypewrite {width: 0;}
|
|
ul#scoreAdvanceTable li span#span_score_mystery {width: 88px; width: 48px;}
|
|
ul#scoreAdvanceTable li span#span_score_30 {width: 32px;}
|
|
ul#scoreAdvanceTable li span#span_score_20 {width: 44px;}
|
|
ul#scoreAdvanceTable li span#span_score_10 {width: 48px;}
|
|
</style>
|
|
<script type="text/javascript">
|
|
|
|
var microSpaceInvaders = function() {
|
|
|
|
// element selector
|
|
var $ = function(selector, el) {
|
|
if (!el) {el = document;}
|
|
return el.querySelector(selector);
|
|
};
|
|
|
|
|
|
(function() {
|
|
var lastTime = 0;
|
|
var vendors = ['ms', 'moz', 'webkit', 'o'];
|
|
for(var x = 0; x < vendors.length && !window.requestAnimationFrameFrame; ++x) {
|
|
window.requestAnimationFrameFrame = window[vendors[x]+'requestAnimationFrameFrame'];
|
|
window.cancelAnimationFrame =
|
|
window[vendors[x]+'CancelAnimationFrame'] || window[vendors[x]+'CancelrequestAnimationFrameFrame'];
|
|
}
|
|
|
|
if (!window.requestAnimationFrameFrame)
|
|
window.requestAnimationFrameFrame = function(callback, element) {
|
|
var currTime = new Date().getTime();
|
|
var timeToCall = Math.max(0, 16 - (currTime - lastTime));
|
|
var id = window.setTimeout(function() { callback(currTime + timeToCall); },
|
|
timeToCall);
|
|
lastTime = currTime + timeToCall;
|
|
return id;
|
|
};
|
|
|
|
if (!window.cancelAnimationFrame)
|
|
window.cancelAnimationFrame = function(id) {
|
|
clearTimeout(id);
|
|
};
|
|
}());
|
|
|
|
|
|
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
// game objects
|
|
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
var container = $("#game");
|
|
var img, canvas, context, frameCounter, isGameOver;
|
|
//var spriteSheet = "si_sprite_sheet_bw.png";
|
|
var spriteSheet = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANgAAAF0CAMAAAB2Vwf+AAAAB3RJTUUH3AMGEiIgSJ1CDgAAABd0RVh0U29mdHdhcmUAR0xEUE5HIHZlciAzLjRxhaThAAAACHRwTkdHTEQzAAAAAEqAKR8AAAAEZ0FNQQAAsY8L/GEFAAADAFBMVEUAAACAAAAAgACAgAAAAICAAIAAgIDAwMDA3MCmyvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/+/CgoKSAgID/AAAA/wD//wAAAP//AP8A//////84OryKAAAAAWJLR0QAiAUdSAAAAAF0Uk5TAEDm2GYAAAQ4SURBVHic7ZzBstowDEXz/x/MTFm1eW06RpFtOdiK7JyzQVhSes+C8DoDbBsAuPL6x7cz4UAMsQC8BFdnwoEYYgGQgbXglplwIIZYANKA39ThQAyxILwqWGfCgRhigZAC6Zk2l+uHAzHEAlAKqInU5MOAGGKBsN4oamfhQAwxAHgMuZuA9Q3cuuMOYl/uuLOs2I4MZAle2gkjiBhiAcReBbRZyw5iI0Fsm0hMhtGea/O1HcRGgZiYDy32auCbHcQQe7JYLWw6l+6FlToC1oKmc+keYnfwCLHWfm3nVhBDLIhYirxZlALWwoeSQ2xDDACewtU/ZK/uuYFYpz03lhKToXL02nMDsU57biwpZg0nQ17dQwyxJ4vJM8tM654biCEWUMzCt3uIIfY0MS1o6ay0m3t+K4gVdnPPb2VJsVqwUtC0l6tvA7HKLmKe5IK0nl+dGwZilfOrc8NYVgwAAAAAAAAAYGF+nbg7UScQm40Fxc5Ki+ghNhtripWtJnZDbDbWFPuf21LMBGJTiVleXVO+0hBDLBQi97meT+kviM3GsmLbj8CF1gQgBgAAC/H+g8eOO4h9uePOkmLvhB7X6pGpC4gZr9UjUxcQU/a0xzAgpuxpj2FYRuzdgLar1SFADLEAtEjl5LTrydodxBCbXEwG1mRysy4ghtjkYtb9dA4xxBBrE2uZl4+IIfYUMQAAgJmRb5jyByO1utZLP48qP5ta6nUFMcQCiuV+IFLWJakDTcBNagexDbEfwoiVfkA116v96GouvMv3LhBrOD9AbAS5m0fLDxensy3fXRr6PSfECiAmcBPbqb1JW84Pwtw8dhArnB8gNoLl/wjeQQyxzzrM/8dKAqVeScBNDjHEgogBwFgsHzqRc9o15PztIIZYEGpi2nm6m85pPVm7gRhinz1Zu1ESk8FqAtq1x6Q2gNiGmKk3nJrY1d7R12oXEEPs89pa7UJJLCeiBS1JuEsd/yhiiE0ipglpIrcI5EAMMQB4HPJGofW9M3UBsdlYUkx7M5a9o5Y97TwMiCEWACmlhbRIW85dQQyxAGKaVBoofW6p5bW9PE4gZqzltb08TjxeLNdrqV1BDLEJxFp76bmsEUPsqWIAMBb54tf63pm6gNhsPEJMSpTeaNOeX9oGEEMsCFIsDZoTln3ruSuIFXat5648SuwIlastPW+PE4ghNpGYPD96LbU7iCE2qVhNOlcjhthTxQBgLFduEGnvqO/KnwUxxIJQEjv66Zzc1Xq52hXEEAsilgbQxCy9Wn0riCEWRGwnF17OtPZul0SssYfYSEpiNenQIDYby4rtTB2+BGKzsawYAPTjnaHUl/vpnHf+LIghFgSr2FFru7meVruBmBIQsQhiLT2t1q7fP7UBxBA7X79/agO54EevtHel5wZinXpuLC/W2gsPYrOxtNjdGYaA2GwsKwYAw/gNBYvgy1h+S8cAAAAASUVORK5CYII%3D";
|
|
|
|
var sprites = {
|
|
alien_1: { id: "alien_1",
|
|
width: 32,
|
|
height: 32,
|
|
tiles: [{x: 4, y: 4}, {x: 40, y: 4}]
|
|
},
|
|
alien_2: { id: "alien_2",
|
|
width: 44,
|
|
height: 32,
|
|
tiles: [{x: 4, y: 40}, {x: 56, y: 40}]
|
|
},
|
|
alien_3: { id: "alien_3",
|
|
width: 48,
|
|
height: 32,
|
|
tiles: [{x: 4, y: 76}, {x: 60, y: 76}]
|
|
},
|
|
flyingSaucer: { id: "flyingSaucer",
|
|
width: 48,
|
|
height: 28,
|
|
tiles: [{x: 4, y: 128}]
|
|
},
|
|
cannon: { id: "cannon",
|
|
width: 52,
|
|
height: 32,
|
|
tiles: [{x: 4, y: 160}, {x: 60, y: 160}]
|
|
},
|
|
cannonBullet: { id: "cannonBullet",
|
|
width: 4,
|
|
height: 28,
|
|
tiles: [{x: 4, y: 200}]
|
|
},
|
|
alienBullet: { id: "alienBullet",
|
|
width: 12,
|
|
height: 28,
|
|
tiles: [{x: 12, y: 200}]
|
|
},
|
|
alienExplosion: { id: "alienExplosion",
|
|
width: 52,
|
|
height: 28,
|
|
tiles: [{x: 32, y: 200}]
|
|
},
|
|
saucerExplosion: { id: "saucerExplosion",
|
|
width: 52,
|
|
height: 28,
|
|
tiles: [{x: 88, y: 200}]
|
|
},
|
|
bunkerFull: { id: "bunkerFull",
|
|
width: 24,
|
|
height: 24,
|
|
tiles: [{x: 4, y: 232}, {x: 32, y: 232}, {x: 60, y: 232}, {x: 88, y: 232}]
|
|
},
|
|
bunkerTopLeft: { id: "bunkerTopLeft",
|
|
width: 24,
|
|
height: 24,
|
|
tiles: [{x: 4, y: 260}, {x: 32, y: 260}, {x: 60, y: 260}, {x: 88, y: 260}]
|
|
},
|
|
bunkerTopRight: { id: "bunkerTopRight",
|
|
width: 24,
|
|
height: 24,
|
|
tiles: [{x: 4, y: 288}, {x: 32, y: 288}, {x: 60, y: 288}, {x: 88, y: 288}]
|
|
},
|
|
bunkerBottomLeft: { id: "bunkerBottomLeft",
|
|
width: 24,
|
|
height: 24,
|
|
tiles: [{x: 4, y: 316}, {x: 32, y: 316}, {x: 60, y: 316}, {x: 88, y: 316}]
|
|
},
|
|
bunkerBottomRight: { id: "bunkerBottomRight",
|
|
width: 24,
|
|
height: 24,
|
|
tiles: [{x: 4, y: 344}, {x: 32, y: 344}, {x: 60, y: 344}, {x: 88, y: 344}]
|
|
}
|
|
};
|
|
|
|
var sprite = function(e) {
|
|
this.typeOf = "sprite";
|
|
this.sprite = e.sprite;
|
|
this.tileId = 0;
|
|
this.x = e.x;
|
|
this.y = e.y;
|
|
};
|
|
|
|
var ship = function(e) {
|
|
this.base = new sprite(e);
|
|
for (var i in this.base) {this[i] = this.base[i];}
|
|
|
|
this.typeOf = "ship";
|
|
this.points = e.points;
|
|
this.state = "alive";
|
|
|
|
this.collide = function(o) {
|
|
return (this.state == "alive" && o.y >= this.y && o.y <= this.y+this.sprite.height && o.x >= this.x && o.x <= this.x+this.sprite.width);
|
|
};
|
|
|
|
this.touchBorder = function() {
|
|
return ( this.x+aliens.alienSquareWidth+5 >= canvas.width || (this.x-(aliens.alienSquareWidth-this.sprite.width)/2 <= 0) );
|
|
};
|
|
|
|
this.setSprite = function(sprite) {
|
|
this.sprite = sprite;
|
|
};
|
|
|
|
this.setState = function(state) {
|
|
this.state = state;
|
|
};
|
|
};
|
|
|
|
var flyingSaucerShip = function(e) {
|
|
this.base = new ship(e);
|
|
for (var i in this.base)
|
|
{
|
|
if (i == "base") continue;
|
|
this[i] = this.base[i];
|
|
}
|
|
|
|
this.typeOf = "flyingSaucerShip";
|
|
};
|
|
|
|
var bullet = function(e) {
|
|
this.base = new sprite(e);
|
|
for (var i in this.base) {this[i] = this.base[i];}
|
|
|
|
this.typeOf = "bullet";
|
|
|
|
this.collide = function(o) {
|
|
return (
|
|
// aliens
|
|
(this.y+this.sprite.height >= o.y && this.y <= o.y && this.x+this.sprite.width >= o.x && this.x <= o.x+o.sprite.width)
|
|
||
|
|
// human
|
|
(o.state == "alive" && this.y <= o.y+o.sprite.height && this.y >= o.y && this.x+this.sprite.width >= o.x && this.x <= o.x+o.sprite.width)
|
|
);
|
|
};
|
|
};
|
|
|
|
var bunker = function(e) {
|
|
this.typeOf = "bunker";
|
|
this.x = e.x;
|
|
this.y = e.y;
|
|
this.blocks = [ new sprite({sprite: sprites.bunkerTopLeft, x: this.x, y: this.y}),
|
|
new sprite({sprite: sprites.bunkerFull, x: this.x + sprites.bunkerFull.width, y: this.y}),
|
|
new sprite({sprite: sprites.bunkerFull, x: this.x + 2*sprites.bunkerFull.width, y: this.y}),
|
|
new sprite({sprite: sprites.bunkerTopRight, x: this.x + 3*sprites.bunkerFull.width, y: this.y}),
|
|
new sprite({sprite: sprites.bunkerFull, x: this.x, y: this.y + sprites.bunkerFull.height}),
|
|
new sprite({sprite: sprites.bunkerBottomRight, x: this.x + sprites.bunkerFull.width, y: this.y + sprites.bunkerFull.height}),
|
|
new sprite({sprite: sprites.bunkerBottomLeft, x: this.x + 2*sprites.bunkerFull.width, y: this.y + sprites.bunkerFull.height}),
|
|
new sprite({sprite: sprites.bunkerFull, x: this.x + 3*sprites.bunkerFull.width, y: this.y + sprites.bunkerFull.height}),
|
|
new sprite({sprite: sprites.bunkerFull, x: this.x, y: this.y + 2*sprites.bunkerFull.height}),
|
|
new sprite({sprite: sprites.bunkerFull, x: this.x + 3*sprites.bunkerFull.width, y: this.y + 2*sprites.bunkerFull.height}) ];
|
|
};
|
|
|
|
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
// sky background
|
|
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
var sky = {
|
|
stars: null,
|
|
starsLayer: 3,
|
|
k_star_number: 30,
|
|
|
|
init: function() {
|
|
this.stars = [];
|
|
for (var n = 0; n < this.starsLayer; n++) {
|
|
this.stars.push([]);
|
|
|
|
// star params: [0]: x, [1]: y, [2]: random starRadius, [3]: random star transparency, [4]: max star radius, [5]: speed
|
|
for (var i = 0; i < this.k_star_number; i++) {
|
|
this.stars[n].push([Math.random() * canvas.width, Math.random() * canvas.height, Math.random() * (n*2+3), Math.random()/2, (n*2+3), (n*2+3)-2]);
|
|
}
|
|
}
|
|
},
|
|
|
|
drawStars: function() {
|
|
var star, x, y, radius, alpha, maxRadius, speed;
|
|
for (var n = 0, nl = this.stars.length; n < nl; n++) {
|
|
for (var i = 0, il = this.stars[n].length; i < il; i++) {
|
|
star = this.stars[n][i];
|
|
x = star[0];
|
|
y = star[1];
|
|
radius = star[2];
|
|
alpha = star[3];
|
|
maxRadius = star[4];
|
|
speed = star[5];
|
|
|
|
// draw
|
|
context.fillStyle = 'rgba(255, 255, 255, ' + alpha + ')';
|
|
context.beginPath();
|
|
context.arc(x, y, radius, 0, Math.PI * 2, true);
|
|
context.closePath();
|
|
context.fill();
|
|
|
|
// draw 8 bit
|
|
// square style stars
|
|
/*
|
|
context.fillStyle = 'rgba(255, 255, 255, ' + alpha + ')';
|
|
context.fillRect(x, y, radius, radius);
|
|
*/
|
|
/*
|
|
// plus style stars
|
|
context.fillStyle = 'rgba(255, 255, 255, ' + alpha + ')';
|
|
context.lineWidth = 1;
|
|
context.beginPath();
|
|
context.moveTo(x, y);
|
|
context.lineTo(x+radius, y);
|
|
context.lineTo(x+radius, y+radius);
|
|
context.lineTo(x+(2*radius), y+radius);
|
|
context.lineTo(x+(2*radius), y+(2*radius));
|
|
context.lineTo(x+radius, y+(2*radius));
|
|
context.lineTo(x+radius, y+(3*radius));
|
|
context.lineTo(x, y+(3*radius));
|
|
context.lineTo(x, y+(2*radius));
|
|
context.lineTo(x-radius, y+(2*radius));
|
|
context.lineTo(x-radius, y+radius);
|
|
context.lineTo(x, y+radius);
|
|
context.lineTo(x, y);
|
|
context.fill();
|
|
*/
|
|
|
|
// recreate if out of screen
|
|
if (x - radius < 0) {
|
|
star[0] = canvas.width - radius;
|
|
star[2] = Math.random() * maxRadius;
|
|
star[1] = Math.random() * canvas.height;
|
|
star[3] = Math.random() / 2;
|
|
}
|
|
// move
|
|
else {
|
|
star[0] -= speed;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
// aliens
|
|
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
var aliens = {
|
|
flyingSaucer: null,
|
|
alienBullet: null,
|
|
flyingSaucerTimer: null,
|
|
arrAliens: null,
|
|
alienBorderCollision: null,
|
|
alienBulletSpeed: 10,
|
|
nAlienRows: 5,
|
|
nAliensByRow: 11,
|
|
alienSquareWidth: 60,
|
|
alienSquareHeight: 40,
|
|
alienSpeedX: 10,
|
|
alienSpeedY: 40,
|
|
alienInitialY: 160,
|
|
flyingSaucerInitialY: 100,
|
|
flyingSaucerSpeed: 4,
|
|
|
|
init: function() {
|
|
this.alienBorderCollision = true;
|
|
this.flyingSaucer = null;
|
|
this.flyingSaucerTimer = new Date().getTime();
|
|
this.alienBullet = null;
|
|
this.arrAliens = [];
|
|
this.alienSpeedX = 10;
|
|
|
|
var sprite, points;
|
|
for (var r = 0; r < this.nAlienRows; r++)
|
|
{
|
|
if (r == 0)
|
|
{
|
|
sprite = sprites.alien_1;
|
|
points = 30;
|
|
}
|
|
if (r > 0 && r < 3)
|
|
{
|
|
sprite = sprites.alien_2;
|
|
points = 20;
|
|
}
|
|
if (r > 2 && r < 5)
|
|
{
|
|
sprite = sprites.alien_3;
|
|
points = 10;
|
|
}
|
|
|
|
for (var a = 0; a < this.nAliensByRow; a++)
|
|
{
|
|
this.arrAliens.push(new ship({ sprite: sprite,
|
|
x: (a*this.alienSquareWidth)+(this.alienSquareWidth-sprite.width)/2,
|
|
y: r*this.alienSquareHeight+this.alienInitialY,
|
|
points: points }));
|
|
}
|
|
}
|
|
},
|
|
|
|
updateAliens: function() {
|
|
var a;
|
|
var upd = {x: 0, y: 0, tile: 1};
|
|
|
|
var moveX = this.alienSpeedX;
|
|
var moveY = 0;
|
|
for (var i = 0; i < this.arrAliens.length; i++)
|
|
{
|
|
a = this.arrAliens[i];
|
|
|
|
if (a.state == "striked")
|
|
{
|
|
this.arrAliens.splice(i, 1);
|
|
i = 0;
|
|
continue;
|
|
}
|
|
|
|
// check alien collision with canvas borders
|
|
if (a.touchBorder() && !this.alienBorderCollision)
|
|
{
|
|
this.alienBorderCollision = !this.alienBorderCollision;
|
|
|
|
moveX = 0;
|
|
moveY = this.alienSpeedY;
|
|
this.alienSpeedX *= -1;
|
|
break;
|
|
}
|
|
|
|
// check alien collision with player
|
|
if (a.y+a.sprite.height >= human.cannon.y)
|
|
isGameOver = true;
|
|
}
|
|
|
|
if (moveX != 0)
|
|
this.alienBorderCollision = !this.alienBorderCollision;
|
|
|
|
upd.x = moveX;
|
|
upd.y = moveY;
|
|
|
|
return upd;
|
|
},
|
|
|
|
drawAlienShips: function(upd) {
|
|
var a;
|
|
for (var i = 0; i < this.arrAliens.length; i++)
|
|
{
|
|
a = this.arrAliens[i];
|
|
|
|
if (a.state == "striked")
|
|
a.setSprite(sprites.alienExplosion);
|
|
|
|
a.x += upd.x;
|
|
a.y += upd.y;
|
|
a.tileId += upd.tile;
|
|
if (a.tileId >= a.sprite.tiles.length)
|
|
a.tileId = 0;
|
|
|
|
context.drawImage(img, a.sprite.tiles[a.tileId].x, a.sprite.tiles[a.tileId].y, a.sprite.width, a.sprite.height, a.x, a.y, a.sprite.width, a.sprite.height);
|
|
}
|
|
},
|
|
|
|
updateFlyingSaucer: function() {
|
|
return (this.flyingSaucer && this.flyingSaucer.state == "striked");
|
|
},
|
|
|
|
drawFlyingSaucer: function(fs) {
|
|
var time = new Date().getTime();
|
|
if (!this.flyingSaucer)
|
|
{
|
|
if (time - this.flyingSaucerTimer >= 10000)
|
|
{
|
|
this.flyingSaucer = new flyingSaucerShip({ sprite: sprites.flyingSaucer,
|
|
x: canvas.width,
|
|
y: this.flyingSaucerInitialY,
|
|
points: 100 });
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.flyingSaucer.state == "striked")
|
|
this.flyingSaucer.sprite = sprites.saucerExplosion;
|
|
|
|
if (this.flyingSaucer.x <= -sprites.flyingSaucer.width || fs)
|
|
{
|
|
this.flyingSaucer = null;
|
|
this.flyingSaucerTimer = time;
|
|
}
|
|
else
|
|
{
|
|
this.flyingSaucer.x -= this.flyingSaucerSpeed;
|
|
context.drawImage(img, this.flyingSaucer.sprite.tiles[0].x, this.flyingSaucer.sprite.tiles[0].y, this.flyingSaucer.sprite.width, this.flyingSaucer.sprite.height, this.flyingSaucer.x, this.flyingSaucer.y, this.flyingSaucer.sprite.width, this.flyingSaucer.sprite.height);
|
|
}
|
|
}
|
|
},
|
|
|
|
drawAliens: function() {
|
|
var fs;
|
|
var al = {x: 0, y: 0, tile: 0};
|
|
|
|
if (frameCounter == 33)
|
|
{
|
|
al = this.updateAliens();
|
|
fs = this.updateFlyingSaucer();
|
|
frameCounter = 0;
|
|
}
|
|
else
|
|
{
|
|
frameCounter++;
|
|
}
|
|
|
|
this.drawAlienShips(al);
|
|
this.drawFlyingSaucer(fs);
|
|
},
|
|
|
|
drawAlienBullet: function() {
|
|
if (this.alienBullet) {
|
|
var bulletOnScreen = true;
|
|
this.alienBullet.y += this.alienBulletSpeed;
|
|
|
|
// alienBullet outside borders
|
|
if (this.alienBullet.y >= canvas.height)
|
|
bulletOnScreen = false;
|
|
|
|
// alienBullet hits cannon
|
|
if (bulletOnScreen) {
|
|
if (this.alienBullet.collide(human.cannon))
|
|
{
|
|
lives.nLives--;
|
|
if (lives.nLives == 0) human.cannon.tileId++;
|
|
bulletOnScreen = false;
|
|
}
|
|
}
|
|
|
|
// alienBullet hits bunker
|
|
if (bulletOnScreen) {
|
|
var bk, block;
|
|
for (var i = 0, j = bunkers.arrBunker.length; i < j; i++)
|
|
{
|
|
bk = bunkers.arrBunker[i];
|
|
for (var k = 0, x = bk.blocks.length; k < x; k++)
|
|
{
|
|
block = bk.blocks[k];
|
|
if (this.alienBullet.collide(block))
|
|
{
|
|
block.tileId++;
|
|
if (block.tileId >= block.sprite.tiles.length)
|
|
{
|
|
bk.blocks.splice(k, 1);
|
|
}
|
|
bulletOnScreen = false;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// alienBullet on bottom line
|
|
if (bulletOnScreen && this.alienBullet.y+this.alienBullet.sprite.height >= lives.lineY) {
|
|
var strInterrupts = lives.lineInterrupts.join();
|
|
|
|
if (strInterrupts.indexOf(this.alienBullet.x.toString()) < 0)
|
|
lives.lineInterrupts.push(this.alienBullet.x);
|
|
}
|
|
|
|
// draw or remove bullet
|
|
if (bulletOnScreen)
|
|
context.drawImage(img, this.alienBullet.sprite.tiles[0].x, this.alienBullet.sprite.tiles[0].y, this.alienBullet.sprite.width, this.alienBullet.sprite.height, this.alienBullet.x, this.alienBullet.y, this.alienBullet.sprite.width, this.alienBullet.sprite.height);
|
|
else
|
|
this.alienBullet = null;
|
|
}
|
|
else {
|
|
var alienIdx = Math.floor((this.arrAliens.length+1)*Math.random());
|
|
if (this.arrAliens[alienIdx]) {
|
|
this.alienBullet = new bullet({ sprite: sprites.alienBullet,
|
|
x: this.arrAliens[alienIdx].x+this.arrAliens[alienIdx].sprite.width/2,
|
|
y: this.arrAliens[alienIdx].y });
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
// cannon
|
|
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
var human = {
|
|
cannon: null,
|
|
cannonBullet: null,
|
|
moveCannon: null,
|
|
cannonFire: null,
|
|
cannonSpeed: 8,
|
|
cannonBulletSpeed: 10,
|
|
score: 0,
|
|
credit: 0,
|
|
|
|
init: function() {
|
|
this.moveCannon = "N";
|
|
this.cannonFire = false;
|
|
this.cannonBullet = null;
|
|
this.score = 0;
|
|
|
|
this.cannon = new ship({ sprite: sprites.cannon,
|
|
x: (canvas.width/2) - (sprites.cannon.width/2),
|
|
y: (canvas.height-55) - sprites.cannon.height });
|
|
},
|
|
|
|
drawCannon: function() {
|
|
if (!isGameOver) {
|
|
switch (this.moveCannon)
|
|
{
|
|
case "L":
|
|
if (this.cannon.x >= 0)
|
|
this.cannon.x += -this.cannonSpeed;
|
|
break;
|
|
case "R":
|
|
if (this.cannon.x <= canvas.width-this.cannon.sprite.width)
|
|
this.cannon.x += this.cannonSpeed;
|
|
break;
|
|
default:
|
|
this.cannon.x += 0;
|
|
break;
|
|
}
|
|
}
|
|
|
|
// update for window resizing
|
|
this.cannon.y = (canvas.height-55) - sprites.cannon.height;
|
|
context.drawImage(img, this.cannon.sprite.tiles[this.cannon.tileId].x, this.cannon.sprite.tiles[this.cannon.tileId].y, this.cannon.sprite.width, this.cannon.sprite.height, this.cannon.x, this.cannon.y, this.cannon.sprite.width, this.cannon.sprite.height);
|
|
},
|
|
|
|
drawCannonBullet: function() {
|
|
// cannonBullet exists
|
|
if (this.cannonBullet) {
|
|
var bulletOnScreen = true;
|
|
this.cannonBullet.y -= this.cannonBulletSpeed;
|
|
|
|
// collision with canvas upper border
|
|
if (this.cannonBullet.y <= 0)
|
|
bulletOnScreen = false;
|
|
|
|
// collision with alien bullet
|
|
if (bulletOnScreen) {
|
|
if (aliens.alienBullet && this.cannonBullet.collide(aliens.alienBullet)) {
|
|
aliens.alienBullet = null;
|
|
bulletOnScreen = false;
|
|
}
|
|
}
|
|
|
|
// collision with flyingSaucer
|
|
if (bulletOnScreen) {
|
|
if (aliens.flyingSaucer && this.cannonBullet.collide(aliens.flyingSaucer))
|
|
{
|
|
aliens.flyingSaucer.setState("striked");
|
|
this.score += aliens.flyingSaucer.points;
|
|
bulletOnScreen = false;
|
|
}
|
|
}
|
|
|
|
// collision with alien
|
|
if (bulletOnScreen) {
|
|
var a;
|
|
for (var i = 0; i < aliens.arrAliens.length; i++)
|
|
{
|
|
a = aliens.arrAliens[i];
|
|
if (this.cannonBullet.collide(a))
|
|
{
|
|
a.setState("striked");
|
|
this.score += a.points;
|
|
bulletOnScreen = false;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
// collision with bunker
|
|
if (bulletOnScreen) {
|
|
var bk, block;
|
|
for (var i = 0, j = bunkers.arrBunker.length; i < j; i++)
|
|
{
|
|
bk = bunkers.arrBunker[i];
|
|
for (var k = 0, x = bk.blocks.length; k < x; k++)
|
|
{
|
|
block = bk.blocks[k];
|
|
if (this.cannonBullet.collide(block))
|
|
{
|
|
block.tileId++;
|
|
if (block.tileId >= block.sprite.tiles.length)
|
|
{
|
|
bk.blocks.splice(k, 1);
|
|
}
|
|
bulletOnScreen = false;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// draw or remove bullet
|
|
if (bulletOnScreen)
|
|
context.drawImage(img, this.cannonBullet.sprite.tiles[0].x, this.cannonBullet.sprite.tiles[0].y, this.cannonBullet.sprite.width, this.cannonBullet.sprite.height, this.cannonBullet.x, this.cannonBullet.y, this.cannonBullet.sprite.width, this.cannonBullet.sprite.height);
|
|
else
|
|
this.cannonBullet = null;
|
|
}
|
|
// create bullet
|
|
else if (this.cannonFire)
|
|
{
|
|
if (!isGameOver) {
|
|
this.cannonBullet = new bullet({ sprite: sprites.cannonBullet,
|
|
x: this.cannon.x+(this.cannon.sprite.width/2)-sprites.cannonBullet.width/2,
|
|
y: this.cannon.y });
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
// bunkers
|
|
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
var bunkers = {
|
|
arrBunker: null,
|
|
nBunkers: 4,
|
|
|
|
init: function() {
|
|
this.arrBunker = [];
|
|
var x, y;
|
|
for (var i = 0; i < this.nBunkers; i++)
|
|
{
|
|
x = (canvas.width / (this.nBunkers*2)) - ((sprites.bunkerFull.width*4) / 2) + (i * (canvas.width / this.nBunkers));
|
|
y = (canvas.height-180);
|
|
this.arrBunker.push(new bunker({x: x, y: y}));
|
|
}
|
|
},
|
|
|
|
drawBunkers: function() {
|
|
var bk, block;
|
|
for (var i = 0, b = this.arrBunker.length; i < b; i++)
|
|
{
|
|
bk = this.arrBunker[i];
|
|
for (var j = 0, t = bk.blocks.length; j < t; j++)
|
|
{
|
|
block = bk.blocks[j];
|
|
context.drawImage(img, block.sprite.tiles[block.tileId].x, block.sprite.tiles[block.tileId].y, block.sprite.width, block.sprite.height, block.x, block.y, block.sprite.width, block.sprite.height);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
// lives
|
|
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
var lives = {
|
|
nLives: 3,
|
|
lineY: 0,
|
|
lineHeight: 5,
|
|
lineInterrupts: [],
|
|
lineImageData: null,
|
|
|
|
init: function() {
|
|
this.nLives = 3;
|
|
this.lineInterrupts = [];
|
|
this.lineImageData = null;
|
|
this.lineY = canvas.height-50;
|
|
|
|
var txtArea = new textHelper.textArea({ cls: "field livesField",
|
|
childs: [textHelper.writeText({cls: "text livesText", id: "livesPlayer1", text: this.nLives})],
|
|
appendTo: container,
|
|
left: "0px",
|
|
bottom: "0px" });
|
|
},
|
|
|
|
sortInterrupts: function(a, b) {
|
|
return a - b;
|
|
},
|
|
|
|
drawLine: function() {
|
|
// draw a line (with interrupts due to alienBullet fall)
|
|
context.fillStyle = "rgba(0,255,0,255)";
|
|
var rectX = 0,
|
|
rectWidth = canvas.width;
|
|
|
|
lives.lineInterrupts.sort(this.sortInterrupts);
|
|
|
|
for(var i = 0; i < this.lineInterrupts.length; i++) {
|
|
rectWidth = this.lineInterrupts[i] - rectX;
|
|
context.fillRect(rectX, this.lineY, rectWidth, this.lineHeight);
|
|
rectX = this.lineInterrupts[i]+sprites.alienBullet.width;
|
|
}
|
|
|
|
rectWidth = canvas.width - rectX;
|
|
context.fillRect(rectX, this.lineY, rectWidth, this.lineHeight);
|
|
},
|
|
|
|
drawLives: function() {
|
|
this.drawLine();
|
|
|
|
var x, y;
|
|
for (var i = 0; i < this.nLives; i++) {
|
|
y = (canvas.height-sprites.cannon.height-7);
|
|
x = (sprites.cannon.width+i*(sprites.cannon.width*1.5));
|
|
|
|
c = new ship({ sprite: sprites.cannon,
|
|
x: (canvas.width/2)-(sprites.cannon.width/2),
|
|
y: (canvas.height-sprites.cannon.height) });
|
|
|
|
context.drawImage(img, sprites.cannon.tiles[0].x, sprites.cannon.tiles[0].y, sprites.cannon.width, sprites.cannon.height, x, y, sprites.cannon.width, sprites.cannon.height);
|
|
}
|
|
|
|
if (!isGameOver)
|
|
textHelper.updateText("#livesPlayer1", this.nLives);
|
|
}
|
|
};
|
|
|
|
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
// text on screen
|
|
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
var textHelper = {
|
|
textArea: function(o) {
|
|
this.div = document.createElement("div");
|
|
if (o.id) this.div.id = o.id;
|
|
this.div.className = o.cls;
|
|
this.childs = o.childs;
|
|
this.appendTo = o.appendTo;
|
|
if (o.width) this.div.style.width = o.width + "px";
|
|
|
|
this.appendTo.appendChild(this.div);
|
|
|
|
if (this.childs) {
|
|
for (var i=0, j=this.childs.length; i < j; i++)
|
|
this.div.appendChild(this.childs[i]);
|
|
}
|
|
|
|
this.set = function(o) {
|
|
var left, top, right, bottom;
|
|
if (o.position)
|
|
{
|
|
switch(o.position)
|
|
{
|
|
case "centerBottom":
|
|
left = (canvas.width/2 - this.div.offsetWidth/2) + "px";
|
|
bottom = 0 + "px";
|
|
break;
|
|
case "centerHV":
|
|
left = (canvas.width/2 - this.div.offsetWidth/2) + "px";
|
|
top = (canvas.height/2 - this.div.offsetHeight/2) + "px";
|
|
break;
|
|
case "centerH":
|
|
left = (canvas.width/2 - this.div.offsetWidth/2) + "px";
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (o.left) left = o.left;
|
|
if (o.top) top = o.top;
|
|
if (o.bottom) bottom = o.bottom;
|
|
if (o.right) right = o.right;
|
|
|
|
this.div.style.left = left;
|
|
this.div.style.top = top;
|
|
this.div.style.bottom = bottom;
|
|
this.div.style.right = right;
|
|
};
|
|
|
|
this.set(o);
|
|
|
|
return this;
|
|
},
|
|
|
|
removeTextArea: function(id) {
|
|
container.removeChild(document.querySelector("#" + id));
|
|
},
|
|
|
|
writeText: function(o) {
|
|
var p = document.createElement("p");
|
|
p.className = o.cls;
|
|
|
|
if (o.id) p.id = o.id;
|
|
if (o.text) p.appendChild(document.createTextNode(o.text));
|
|
if (o.innerhtml) p.innerHTML = o.innerhtml;
|
|
if (o.onclick) {p.onclick = o.onclick;}
|
|
|
|
return p;
|
|
},
|
|
|
|
// instruction sequence is important in Firefox
|
|
typewrite: function(str) {
|
|
var p, nChar, d = 2;
|
|
var arrP = document.querySelectorAll(str);
|
|
for (var i = 0; i < arrP.length; i++)
|
|
{
|
|
p = arrP[i];
|
|
|
|
p.className += " typewrite ";
|
|
|
|
nChar = p.textContent.length;
|
|
|
|
// set @keyframes using CSSOM: "from" and "to" are derived from <p> offsetWidth
|
|
var style = document.documentElement.appendChild(document.createElement("style"));
|
|
var rule = p.id + "_typing {from {width: 0} to {width: " + nChar + "em}}"; // setting width this way avoids problems due to @fontface loading delay
|
|
if (CSSRule.KEYFRAMES_RULE) { // W3C
|
|
style.sheet.insertRule("@keyframes " + rule, 0);
|
|
}
|
|
else if (CSSRule.WEBKIT_KEYFRAMES_RULE) { // WebKit
|
|
style.sheet.insertRule("@-webkit-keyframes " + rule, 0);
|
|
}
|
|
else if (CSSRule.MOZ_KEYFRAMES_RULE) { // WebKit
|
|
style.sheet.insertRule("@-moz-keyframes " + rule, 0);
|
|
}
|
|
///
|
|
|
|
// set .end class for animation end
|
|
//rule = "{width: " + nChar + "em;}";
|
|
rule = "{width: auto;}";
|
|
style.sheet.insertRule("#" + p.id + ".end" + rule, 0);
|
|
///
|
|
|
|
// set animation: steps # is derived from text length inside <p>
|
|
p.style["animation"] = p.id + "_typing " + d + "s steps(" + nChar + ", end) " + i * d + "s";
|
|
p.style["-webkit-animation"] = p.id + "_typing " + d + "s steps(" + nChar + ", end) " + i * d + "s";
|
|
p.style["MozAnimation"] = p.id + "_typing " + d + "s steps(" + nChar + ", end) " + i * d + "s";
|
|
p.style["-ms-animation"] = p.id + "_typing " + d + "s steps(" + nChar + ", end) " + i * d + "s";
|
|
///
|
|
|
|
p.className += " startTypewrite ";
|
|
|
|
p.addEventListener("animationend", this.typewrite_cb, false);
|
|
p.addEventListener("webkitAnimationEnd", this.typewrite_cb, false);
|
|
}
|
|
|
|
return d*arrP.length;
|
|
},
|
|
|
|
typewrite_cb: function(e) {
|
|
e.target.className += " end ";
|
|
},
|
|
|
|
changeTextColor: function(id, color) {
|
|
var p = $(id);
|
|
if (!color) {
|
|
var blocks = "0123456789ABCDEF";
|
|
color = "#";
|
|
for (var i = 0; i < 3; i++) {
|
|
color += blocks.substr(Math.random()*blocks.length, 1);
|
|
}
|
|
}
|
|
if (p) p.style.color = color;
|
|
},
|
|
|
|
updateText: function(id, val, pad) {
|
|
var txt = $(id);
|
|
txt.innerHTML = (pad == null) ? val : textHelper.pad(val, 4, '0', 'L');
|
|
},
|
|
|
|
removeText: function(id) {
|
|
var txt = $(id);
|
|
if (txt) txt.parentNode.removeChild(txt);
|
|
},
|
|
|
|
pad: function(str, len, chr, side) {
|
|
var add = '';
|
|
str = str.toString();
|
|
while (add.length < (len-str.length)) {
|
|
add += chr;
|
|
}
|
|
switch (side)
|
|
{
|
|
case "L":
|
|
str = add + str;
|
|
break;
|
|
case "R":
|
|
str = str + add;
|
|
break;
|
|
}
|
|
return str;
|
|
}
|
|
};
|
|
|
|
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
// game
|
|
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
var keyPressed = function(e) {
|
|
if(!e) e = window.event;
|
|
switch (e.keyCode)
|
|
{
|
|
case 37: // left arrow
|
|
human.moveCannon = (e.type == "keyup") ? "N" : "L";
|
|
break;
|
|
case 39: // right arrow
|
|
human.moveCannon = (e.type == "keyup") ? "N" : "R";
|
|
break;
|
|
case 32: // spacebar
|
|
human.cannonFire = (e.type == "keyup") ? false : true;
|
|
break;
|
|
case 67: // 'c'
|
|
if (e.type == "keydown")
|
|
insertCoin();
|
|
break;
|
|
}
|
|
};
|
|
|
|
var gameLoop = function() {
|
|
context.clearRect(0, 0, canvas.width, canvas.height);
|
|
sky.drawStars();
|
|
|
|
human.drawCannon();
|
|
aliens.drawAliens();
|
|
bunkers.drawBunkers();
|
|
human.drawCannonBullet();
|
|
aliens.drawAlienBullet();
|
|
|
|
textHelper.updateText("#scorePlayer1", human.score, true);
|
|
lives.drawLives();
|
|
|
|
if (isGameOver) {
|
|
screens.gameOver();
|
|
}
|
|
|
|
if (lives.nLives == 0)
|
|
isGameOver = true;
|
|
};
|
|
|
|
var setCanvas = function() {
|
|
canvas = document.createElement("canvas");
|
|
container.appendChild(canvas);
|
|
context = canvas.getContext('2d');
|
|
};
|
|
|
|
var resizeCanvas = function() {
|
|
canvas.width = container.offsetWidth;
|
|
canvas.height = container.offsetHeight;
|
|
context.fillRect(0, 0, canvas.width, canvas.height);
|
|
};
|
|
|
|
var insertCoin = function() {
|
|
human.credit++;
|
|
textHelper.updateText("#credit", textHelper.pad(human.credit, 2, '0', 'L'));
|
|
textHelper.removeText("#insertCoins");
|
|
};
|
|
|
|
var checkcredit = function(e) {
|
|
// stop event propagation on "play" button
|
|
if (!e) var e = window.event;
|
|
e.cancelBubble = true;
|
|
if (e.stopPropagation) e.stopPropagation();
|
|
|
|
if (human.credit > 0) {
|
|
human.credit--;
|
|
screens.game();
|
|
}
|
|
};
|
|
|
|
var _game = function() {
|
|
clearScreen();
|
|
|
|
img = new Image();
|
|
img.onload = function() {
|
|
// init game objects
|
|
setCanvas();
|
|
resizeCanvas();
|
|
frameCounter = 0;
|
|
isGameOver = false;
|
|
sky.init();
|
|
lives.init();
|
|
human.init();
|
|
aliens.init();
|
|
bunkers.init();
|
|
|
|
// score
|
|
var txtArea = new textHelper.textArea({ cls: "field scoreField",
|
|
childs: [ textHelper.writeText({cls: "text scoreText", text: "score <1>"}),
|
|
textHelper.writeText({cls: "text scoreText", id: "scorePlayer1", text: textHelper.pad(human.score, 4, '0', 'L')}) ],
|
|
appendTo: container,
|
|
left: "0px",
|
|
top: "0px" });
|
|
|
|
// credit
|
|
txtArea = new textHelper.textArea({ cls: "field",
|
|
childs: [textHelper.writeText({cls: "text creditText", innerhtml: "credit <span id='credit'>" + textHelper.pad(human.credit, 2, '0', 'L') + "</span>"})],
|
|
appendTo: container,
|
|
right: "0px",
|
|
bottom: "0px" });
|
|
|
|
// animation loop
|
|
var gameWrapper = $("#game");
|
|
var startTime = window.performance.now() || window.mozAnimationStartTime || +new Date;
|
|
|
|
requestAnimationFrame(loop, gameWrapper);
|
|
function loop(timestamp) {
|
|
// time since last draw
|
|
var drawStart = (timestamp || +new Date);
|
|
var diff = drawStart - startTime;
|
|
|
|
// update frame rate
|
|
if (diff > 1000/66)
|
|
{
|
|
// animation
|
|
gameLoop();
|
|
|
|
// reset startTime
|
|
startTime = drawStart;
|
|
}
|
|
|
|
requestAnimationFrame(loop, gameWrapper);
|
|
}
|
|
}
|
|
|
|
img.src = spriteSheet;
|
|
}
|
|
|
|
var _intro = function() {
|
|
clearScreen();
|
|
setCanvas();
|
|
resizeCanvas();
|
|
sky.init();
|
|
|
|
// game menu
|
|
var txtArea = new textHelper.textArea({ cls: "field",
|
|
childs: [ textHelper.writeText({id: "play", cls: "text clickText menuText", innerhtml: "pla<span id='span_container'><span id='span_y'>y</span><span id='span_img'></span></span>", onclick: checkcredit}),
|
|
textHelper.writeText({id: "SpaceInvadersText", cls: "text", text: "space invaders"}),
|
|
textHelper.writeText({id: "insertCoins", cls: "text clickText insertCoins", text: "insert coin(s)", onclick: insertCoin}) ],
|
|
appendTo: container,
|
|
width: canvas.width,
|
|
position: "centerH",
|
|
top: "20%" });
|
|
|
|
// score advance
|
|
txtArea = new textHelper.textArea({ cls: "field scoreAdvanceTableField",
|
|
childs: [ textHelper.writeText({cls: "text scoreAdvanceText", text: "*score advance table*"}),
|
|
|
|
textHelper.writeText({innerhtml: "<ul id='scoreAdvanceTable'>" +
|
|
"<li><span><span id='span_score_mystery'></span></span><p id='score_mystery' class='text scoreAdvanceText'>= ? mystery</p></li>" +
|
|
"<li><span><span id='span_score_30'></span></span><p id='score_30' class='text scoreAdvanceText'>= 30 points</p></li>" +
|
|
"<li><span><span id='span_score_20'></span></span><p id='score_20' class='text scoreAdvanceText'>= 20 points</p></li>" +
|
|
"<li><span><span id='span_score_10'></span></span><p id='score_10' class='text scoreAdvanceText'>= 10 points</p></li>" +
|
|
"</ul>"}) ],
|
|
appendTo: container,
|
|
width: 450,
|
|
position: "centerH",
|
|
top: "50%" });
|
|
|
|
// credit
|
|
txtArea = new textHelper.textArea({ cls: "field",
|
|
childs: [textHelper.writeText({cls: "text creditText", innerhtml: "credit <span id='credit'>" + textHelper.pad(human.credit, 2, '0', 'L') + "</span>"})],
|
|
appendTo: container,
|
|
right: "0px",
|
|
bottom: "0px" });
|
|
|
|
// copyright
|
|
txtArea = new textHelper.textArea({ cls: "field",
|
|
childs: [ textHelper.writeText({id: "instructionsLink", cls: "text clickText smallText", text: "instructions", onclick: screens.instructions}),
|
|
textHelper.writeText({id: "copyright", cls: "text smallText", innerhtml: "[ <a href='http://www.matteopiazza.org/blog/post/2012/03/28/Space-Invaders-HTML5-porting.aspx'>JH5 binary arts</a> ]"}) ],
|
|
appendTo: container,
|
|
width: 400,
|
|
position: "centerBottom" });
|
|
|
|
// typewriting animation
|
|
// set score advance table background images
|
|
$("#span_score_mystery").style["background"] = "url('" + spriteSheet + "') -4px -122px no-repeat";
|
|
$("#span_score_30").style["background"] = "url('" + spriteSheet + "') -4px -4px no-repeat";
|
|
$("#span_score_20").style["background"] = "url('" + spriteSheet + "') -4px -40px no-repeat";
|
|
$("#span_score_10").style["background"] = "url('" + spriteSheet + "') -4px -76px no-repeat";
|
|
// start typewriting
|
|
var t = textHelper.typewrite("#score_mystery, #score_10, #score_20, #score_30");
|
|
|
|
/// "play" and alien intro animation
|
|
var setEventListener = function(id, ev, cb) {
|
|
var el = $(id);
|
|
switch (ev)
|
|
{
|
|
case "transitionend":
|
|
el.addEventListener("transitionend", cb, false); // firefox
|
|
el.addEventListener("webkitTransitionEnd", cb, false); // chrome/safari
|
|
el.addEventListener("oTransitionEnd", cb, false); // opera
|
|
el.addEventListener("MSTransitionEnd", cb, false); // IE
|
|
break;
|
|
}
|
|
};
|
|
|
|
var animatePlay = function() {
|
|
var span_container = $("#span_container");
|
|
var span_img = $("#span_img");
|
|
var span_y = $("#span_y");
|
|
var rightEdge = container.offsetWidth/2 + aliens.alienSquareWidth + "px";
|
|
|
|
span_img.style["background-image"] = "url('" + spriteSheet + "')";
|
|
|
|
// animation callback
|
|
var animate = function(e) {
|
|
switch (e.target.id) {
|
|
case "span_img":
|
|
if (e.propertyName == "left")
|
|
span_container.style["left"] = rightEdge;
|
|
break;
|
|
case "span_container":
|
|
if ($("#span_y.end") != null)
|
|
span_img.className = "end";
|
|
|
|
if ($("#span_img.end") != null)
|
|
span_img.style["opacity"] = "0";
|
|
|
|
span_container.style["left"] = "0";
|
|
span_y.className = "end";
|
|
break;
|
|
}
|
|
};
|
|
|
|
|
|
// eventhandlers
|
|
setEventListener("#span_img", "transitionend", animate);
|
|
setEventListener("#span_container", "transitionend", animate);
|
|
|
|
|
|
// start animation
|
|
span_img.style["left"] = rightEdge; // set image position on window right border
|
|
|
|
setTimeout(function(){
|
|
span_img.className = "slide"; // set transition/animation properties
|
|
span_img.style["left"] = "0"; // start transition
|
|
}, t);
|
|
}();
|
|
///
|
|
|
|
// animation loop
|
|
var gameWrapper = $("#game");
|
|
debugger;
|
|
var startTime = window.performance.now() || window.mozAnimationStartTime || +new Date;
|
|
requestAnimationFrame(loop, gameWrapper);
|
|
function loop(timestamp) {
|
|
|
|
// time since last draw
|
|
var drawStart = (timestamp || +new Date);
|
|
var diff = drawStart - startTime;
|
|
|
|
// update frame rate
|
|
if (diff > 1000/60)
|
|
{
|
|
// animation
|
|
context.clearRect(0, 0, canvas.width, canvas.height);
|
|
sky.drawStars();
|
|
textHelper.changeTextColor("#insertCoins");
|
|
if (human.credit > 0) textHelper.changeTextColor("#play");
|
|
|
|
// reset startTime
|
|
startTime = drawStart;
|
|
}
|
|
|
|
requestAnimationFrame(loop, gameWrapper);
|
|
}
|
|
};
|
|
|
|
var _instructions = function() {
|
|
// game over menu
|
|
var txtArea = new textHelper.textArea({ id: "divInstructions",
|
|
cls: "field instructionsFieldFrame",
|
|
childs: [ textHelper.writeText({cls: "text instructionsText", innerhtml: "<ol>" +
|
|
"<li>press 'c' or click 'insert coin(s)'</li>" +
|
|
"<li>press 'play' to start game</li>" +
|
|
"<li>left/right keys to move cannon</li>" +
|
|
"<li>'spacebar' to shot</li>" +
|
|
"</ol>"}),
|
|
|
|
textHelper.writeText({cls: "text clickText menuText", text: "close", onclick: function(){textHelper.removeTextArea("divInstructions");}}) ],
|
|
appendTo: container,
|
|
position: "centerHV" });
|
|
};
|
|
|
|
var _gameOver = function() {
|
|
// game over menu
|
|
if (!$("#divGameOver")) {
|
|
var txtArea = new textHelper.textArea({ id: "divGameOver",
|
|
cls: "field menuFieldFrame",
|
|
childs: [ textHelper.writeText({cls: "text menuHeaderText", text: "game over"}),
|
|
textHelper.writeText({cls: "text clickText menuText", text: "play again", onclick: checkcredit}) ],
|
|
appendTo: container,
|
|
position: "centerHV" });
|
|
}
|
|
};
|
|
|
|
var clearScreen = function() {
|
|
while (container.hasChildNodes())
|
|
container.removeChild(container.lastChild);
|
|
};
|
|
|
|
var screens = {
|
|
intro: function() {
|
|
_intro();
|
|
},
|
|
instructions: function() {
|
|
_instructions();
|
|
},
|
|
game: function() {
|
|
_game();
|
|
},
|
|
gameOver: function() {
|
|
_gameOver();
|
|
}
|
|
};
|
|
|
|
var initGame = function() {
|
|
human.credit = 0;
|
|
screens.intro();
|
|
};
|
|
|
|
|
|
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
// start game
|
|
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
// event handlers
|
|
window.addEventListener("keydown", keyPressed, true);
|
|
window.addEventListener("keyup", keyPressed, true);
|
|
window.addEventListener("resize", resizeCanvas, true);
|
|
|
|
initGame();
|
|
|
|
};
|
|
|
|
document.onreadystatechange = function() {
|
|
if (document.readyState === "complete") {
|
|
microSpaceInvaders();
|
|
}
|
|
};
|
|
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<div id="game"></div>
|
|
</body>
|
|
</html>
|