0u']±DSļ}W’Ķu¶”e‰d%qy$6o;]ÉA¦ö,8ōōō”°Ā<@] , pš’’’’š’’’2Tv˜ŗÜžļĶ«‰gE#2Tv˜ŗÜž2Tv˜ŗÜž"3DUfv‡˜©ŗĖÜķžwwˆ™™™™™™™‰ˆˆˆ˜©¶u†jĆ}³99¶HY‚|SĘ!TUD3""Cu©Ü’’ʈ ī’’īīļ’’’ļļīļ’ļī’’’’ļī’’ļīļž’’’īļž’īļž’ļļžī’’’ī’’’’ļ’īīļ’īī’ž’’’īž’žīž’ž’’’’ļ’īž’’īž’’’’īž’’īžļ’ž’’ž’ī’’’žļžīļ’žļļžž’’’ž’īž’’ļž’ļž’’ļžīž’’īžš’’š÷žę’wļžīī÷ž’’oļžļ÷ī’ļž’’’÷’ļ’īļ’ļī’ļļ’’’’’ī`ffvwwg÷’ī~’’’÷’ī~’žīž’’ļžšļļž`ffvwwg÷ļīžļī’’’’ļšžąžšžfff`wwwwļīw’’÷’÷’’÷’’ļī’’ļī’’fffww’’w’’’wļī’÷ļī’÷’’’’’ļī’ī’’’īļīļ’ļīļ’’’’’’ļž’’’žļī’’ļī’’īž’’īžīž’’īž’’’’ļī’žļī’ž’’’’’ļī’@D@@@0@3DD0ppwī’’īīē’ńļ/įžē’÷’~’÷ļīw~’’÷īļž’īļžļēžī’’’ī’’÷ē’ēīēīī÷ž’’’ž’žīž’ž’’’’ńįž’’’ń’īńļ’ž’’ž’ī_ž_÷ēļ’õļ_uU’%UW’'^÷’āž’’ļī’’’ī’šf÷žo~žīņ÷īp’šļē’’ļ~’’ļīļ’ī’ļž’’ļž’’’’ļļīļ’ļžļī’’’’÷ļžļēļžąī’’š’÷nļžw÷’pīīļö’’ļ`ffvwwg÷ļww~ļ~’’’÷ļžžąžš÷š’’’ī’’’īļī’’ļī’’w’’’’÷’ļš’ļ’žļī’ž’’’’īž’’ī~’’’’ī’’’ī’š’šš’’’ī’’’īļī’’ļī’’’’’’ī’’ļ’ļīļ’ļī’žļī’ž’’’’īž’’īžī’’’īī’’’īļī’’ļī’€€€€wp€ˆˆˆˆˆˆˆˆˆˆ"ˆ(‚"ˆ(‚&ˆh‚ffffwwwwwww~’ē~ž’īž÷’’’’ļ’īž’’ļžffffwwww~ēīē’÷’’ļ~ļ’ļīļžž’’ž’īīļffffwwww’wž~ļž÷īī’÷’’’ī’ļļī’’’’ļffffwwwww÷wžī’ī’’’’žž’÷’žļž’ąīž’’ī’žš’ēžļ~’’’öžī÷žžo~’’’’ęīž’ž’’’’’ļī’’’ī’ī’’’ž’’ž’’ī’’īž’ž’’’’šļ~o’’ęšī’÷’ž’ž’’ī’’`ffvwwg÷wīžī’?÷’ļCóžē>’žšžžfff`wwwwī÷~÷īž’’’’’ļ~š’ąēī’ffffwwwwž÷÷ī’’w’’ļ~’’ēī’’÷’ą’wļffffwwww’w’’÷’’’’’’’’’’fffwww’’w’’’’’’’÷’’’w’’’ļž’’’ļī’’ļī’’’’’ļ’’’īļ’’’ī’š’’’īļļ’žļž’’ļ’’ļ’īž’’īž’š’’’žš’ļ’’ī’ļīī’ļž’’ļž’ļ’īī’’ļī~ļ’ž’’’ž’ž’’’’’’ī’÷’īž~’’ž’’’’’ī’ąīšļ’ļī’’’’’īž’šī’’’’ī’’’ļ’ą’’ļą’’ī’’ļžļīļžļī’’’’÷nļžw÷’īīļö’’ļļž’’’īīļ’ļī’ļž’’’ļļš’ą’’š`ffvwwgwēw~ęēvwoę~÷ö÷p@D@@@0DD0ppwp@3€€€€wp€ˆˆˆˆˆˆˆˆˆˆ"ˆ(‚"ˆ(‚&ˆh‚ˆˆˆˆ Ą Ģ\ĢTĢU\UP@ ĢĢĢ\Ģ\ÅUP@ĄLĢ\Ģ\0ĢU\UPĄ ĢĢĢ\Ģ\ÅUP@Ą<Ģ\Ģ\ĢU\U PĄ ĢĢ0Ģ\Ģ\ÅUP@Ć Ģ\Ģ\ĢU\UPĆ ĢĢÄ\Ģ\ÅUP0Ą Ą Ą @@TĄPPP@D@@@0@3DD0ppw€€€˜ˆ€ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ™™™™™‰˜ˆ˜ˆ˜™™˜ˆ™ˆ™ˆ™ ˆ™™™™ˆ™ˆ˜ ˆ˜™™™™™™™™™™É" """!""!""!""!""!"!""™™ ™ˆˆ™™™‰™™‰˜™™˜™™™ˆˆ™˜™™‰€ˆˆ`ffffgffvgffwgffvgfffgfgffvpww`fffvfffvgffvwffvgffvffgffvpww€€€€wp€ˆˆˆˆˆˆˆˆˆˆ"ˆ(‚"ˆ(‚&ˆh‚€ " "’ " " "‰˜‰™ˆ™‰˜Ø™™ˆŖ™™ŖŖ™™ŖŖ™™ŖŖš©š©š©š™™™™™™™™™™™™""™™""™™""™""9""9YĢ™ÅĢ™ÅĢ ™YUĢ™ĢĢĢ™lĢĢ3ĆĢ 3ĆĢ @@@@@DD04@DD @@@@@DD004@DD@@C@DD0044@DD@C@@DD @@@@@DD04@DD š0000  ™‰3333 š™™ 03D0CD0CDCD €™©3CCC ˜ @@@@ š0000  ™‰3333 š™™ 03D0CD0CD0C €™©3333 ˜ @@@@00@@@@@@3300@@@@CDCCCCC@@CC@@@@@@@@@@@@@@00000@@@33CCC@@@0CCCCCCC@3300@@@@@@@@@@@@ š™™03D03D03D  īŽ3333°»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»» »»» »»»»»»»»»»»»»»»»»»»» »» »» »»»°»°»»»»»»»»»°»°»°»»°»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»» »»»»»»»»»» »»°»»°»»»» » »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»» »»»»»»»»»»»»»»»»»»»»»»»»»»»°»»»°»»»»»» »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»» » »»»» °»»»»»»»»»»»»»»»» »»»»»»°»°»°»»»»»»°»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»» »»» »»»»»»»»»»»»»»»»»»»»»»° °»»»» »»» °»»»°»»»»»» »»»»»»»»»»»»»»»»»»»»»»»»»»»»°»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»» »»»»»»»»»»»»»»» »»»»» °»»»°»°» »»»»»»°»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»» »»»»»»»»»»»»»»»»»»»»»»»»»» »» »»»»»» »»»»»°»»»»»°»»»°»»»»»»»»»»»»»»»»»»»»»»»»»°»»»»»»»»»»»»»»»»»»»»»»»»»»»»»» »»»»»»»»»»»»»»»»»»» ° »»»»»»»»»»»»»» »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»» °»»»»»» °»»»°»»»»»» »»»»»»»»»»»»»»»»»»»»»» °»»»»»»»»»»»»»»»»»»»»»» »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»°»» °»» »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»°»»»»»» °»»»°»»»»»» »»» » »» °»»»» °»» »»»»» °»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»» »»»»»»°»»»°»»»°»»»° »»»»»°»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»ćp€ˆ)(‰ˆ™™™9£©9£©wˆ™ˆ™‰™™™™™9"0"p ˆ™™ˆ™™‰)’™ ’33wˆ™ˆ™™‰™™™™99wˆ™ˆ™‰™™™™™™3 3p ˆ™™ˆ™™‰9“™0“™"wˆ™ˆ™9ƒ™9“™))p ˆ™™ˆ™™ˆ™™3)3p€ˆ)(™‰ˆ 3©©)3©©)‰x)(™‰ˆ9£©9£©€x)(‰ˆ™™™9£©9£©pą‡ˆī'(ž’ˆ`ī~ąžļnpīē ™ ™™p™™ˆ™ˆ0“ˆ0“)p‡™ˆ™™ˆ3™™3™"‡pˆˆ™™™™™™3™ 3 ‡yˆ™™ˆ™™™3™ 3™ p p™™ˆ™™ˆ™™ˆ0“)0"ĢĢ<Ą Ģ ĄĢ 3ĢĢĄ3Ģ ĢĄ<ĢĄ ĢĢ Ą<Ć Ą<Ć"Ą ĄĢ3ĢĄ ĢĢĄĢĢ ĢĢ33ĢĄ<ĢĄ ĢĢĄĢĢ Ģ3,3ĢĄ<ĢĄ ĢĢĄĢDĢĢDĄĢ Ģ0ĄLÄĄLÄ Ą ĢĄ<Ģ ĢĢĄĢDĢĢDĄĢ3ģēīwž’`ī~ąžļnpī琐 𐐠 ™‰ š™™ "!"!"!" €™©!!! ˜  𐐠 ™‰ š™™ "!"!"! €™© ˜   !"!!!!!  !!    !!! !!!!!!!   š™™"""  īŽĢĄĢĄĢĢĢĢ Ģ ĢīīīŽĢĄĢ ĄĢ\EEĢĄĢ PĢ TÅTīīīŽĢĄĢ ĄĢ ĢĄĢ Ģ ĄīīīŽĄ ĢĢĢ ĄĄ ĢĢĄĢ īīīŽīīīīīīīīīīīī€ˆˆˆ (ˆˆ3ó?īīīīīīīˆˆ(ˆˆ‚ƒˆˆ(3’?ąīˆŠīˆŽˆŽˆˆPīīīīīīīīīīīī€ˆˆˆ€‚ˆ83ó?īīīīīīīˆˆ"ˆˆ‚ˆˆ8ˆ3’?ąīˆŠīˆŽˆŽˆˆīīīīīīīīīīīī€ˆˆˆ€‚ˆˆ 3ó?Pīīīīīīīˆˆ‚ˆ(ˆ8ˆˆƒ3’?ąīˆŠīˆŽˆŽˆˆīīīīīīīīīīīī€ˆˆˆ (ˆˆ3ó?īīīīīīīˆˆ(ˆˆ‚ƒˆˆ(3’?ąīˆŠīˆŽˆŽˆˆīīīŽīīīŽīīīŽ ĄĄĄĄĄīīīŽīīīīīīīīīīīī€ˆˆˆ (ˆˆ3ó?īīīīīīīˆˆ(ˆˆ‚ƒˆˆ(3’?ąīˆŠīˆŽˆŽˆˆīīīīīīīīīīīī€ˆˆˆ€‚ˆ83ó?īīīīīīīˆˆ"ˆˆ‚ˆˆ8ˆ3’?ąīˆŠīˆŽˆŽˆˆīīīīīīīīīīīī€ˆˆˆ€‚ˆˆ 3ó?īīīīīīīˆˆ‚ˆ(ˆ8ˆˆƒ3’?ąīˆŠīˆŽˆŽˆˆīīīīīīīīīīīī€ˆˆˆ€‚ˆ83ó?īīīīīīīˆˆ"ˆˆ‚ˆˆ8ˆ3’?ąīˆŠīˆŽˆŽˆˆž. O OO  O)"#$$" ""#, ~ ~~~~~ ##**+ O ~~"#$,) 6~  ~~~(~~~~~~~~~~~5'~5565 ~|}~ )*5  ~5~ ~}5 5&%% &%&}~|}~}|}~|}~|}~%~~5 O~&# 77%&) %&),),), *+**+~77%&55&55*+&~~~5&OO ! 5OO & |% 5&2 ~5&)$ ~ &~~~~5&5& )5~~~577  56 65|5 "#65$ $*#$#$#$#$#$#$#$~5~5 ~~55,) 5" 5355, "2~)534*$ ~556 '5&5&}}~}~ "#"# ~5*+,|}~~&%&(5& 5 '12341231234&(5&5 ' 6~|6O,O3}~O63~56'6 " %~67'~6~~6~%''~5"*+,%356~|} 56 ##,~775~ ~5~5~ 7~~~~556 7~~}%„¦§Ø©Ŗ«¬­®Æ 5©Ŗ«¬­®Æ%" Ø©Ŗ«¬­5~|}~~)%",&~%5|~%#$$ !"#  7}~(%(5 )* &~O~O5&“µø¹ŗ»¼½ø¹ŗ)""#$5,5|}5&&5&, %&O(5& #$ O &OO5&56~~ 6~6ŹĖ)*,%ŹĖ234333~|8~ (6}~65566234*12341234234, #$665  #~~~~~55&5O5 5 5&~~  ~~5~~~ $~~~~~5856%5),  5),ø Ø©©Ŗ«¬5  5 5 5 55 ~55& 5}~|}~|}~}~5 ¹|ø¹ŗ»¼5&~  "  5&5 5&| #$$&5&6 %6$#$"#!$#$#!!##!$"#$"!###$!6$#$"#!$#$#!!#"#!#$"#$"!###$!6$#$"#!$#$#!!#"# "!###$!$#$"##!!#""#"!##6$#$"#!34224"#$"!###$!6$#$"#!$#$#!!#"#!*++,886$#$"##"#~5°±²³“µ¶·ø¹ŗ»¼½¾æ°±²³“µ¶·ø¹ŗ»¼½ĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻĄĮĀĆÄÅĘĒČÉŹĖĢĶŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßŠŃŅÓŌÕÖ×ŲŁŚŪÜŻąįāćäåęēčéźėģķīļąįāćäåęēčéźėģķšńņóōõö÷ųłśūüżž’šńņóōõö÷ųłśūüż ™ SVXZZ[\]]-^/^/_?_O_____________________>šŚē9šķŪš,ņóŚ4õöć$łćū üüżżžž’’’’’’’<ą<ą<ą<ą=ą=ą>ą?ą;č;ų;;:;:;;::;;;<<;;;???nn n!n!m"m"l#l#k4j5i6h7g9g:fMeNo@o@oPoPoPoPoPoPo`oooooō4Óųä 5 į Öū% üÓ 0ü į $  į  żžž’’’’’’’’’’'''&/&'''/&9&9/8%9%I%I%I%I%H&I&I'I(H)G*H+I-H/@/@/PdVNgFW;g,YWg,W)YYZg.ZXY"j\\_^^^________nm!l!i!o"n"m#j#e4o5n6m7k9i:fMcNo@o@oPoPoPoPoPoPo`ooooos    ö ę Õ Å “ ” „ ƒ ƒ ƒ  €€€qo ` ` ` ```` ` @ @ @ @@@ @ @      @@ @ @ @@@`  `  `` ` `                 €€€€€€€€€€€€€€ € € €€€€`````@    @    `@@@@@    `@@@@@```` ``` ` ` ` ` `€€€€ H€ € € €@    €€€€ŽP€ŽP€2ʁ$ʁ$ʁ$ʁ$ʁ$ʁ$ʁ$ʁ$ʁ$ʁ$ĪĄ?""""""""""""!"""""""""!"""""""""""""""""""!""""!""!""""""""""""""""""""""""""""""""""""""""""!"""""""""!"""""""""""""""""""!""""!""!""""""""""""""""""""""""""""""""""""""""""!"""""""""!"""""""""""""""""""!""""!""!""""""""""""""""""""""""""""""""""""""""""!"""""""""!"""""""""""""""""""!""""!"" """"""""""""""""""""""""""""""""""""""""""!"""""""""!"""""""""""""""""""!""""!"" """""""""""""""""""""""""""""""""""""""""""""!""""!""""!""""""""""""""""""""""""""""""""!""""!""""!""""""""""""""""""""""""""""""""!""""!""""!""""""""""""""""""""""""""""""""!""""!""""!""""""""""""""""""""""""""""""""!""""!""""!""""""""""""""""""""""""""""""""!"""""""""!""""!""""!"""""""""""""""""""""""""""""""""""""""""""""""""""!"""""""""!""""!""""!"""""""""""""""""""""""""""""""""""""""""""""""""""!"""""""""!""""!""""!""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""" """"!""""!""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""" """"!""""!"""""""""""""""""""""""""""""""""""""""""""""""""""""""!""""!""""!""""""""""""""""""""""""""""""""""""!""""!""""!""""""""""""""""""""""""""""""""""""!""""!""""!""""""""""""""""""""""""""""""""""""!""""!""""!""""""""""""""""""""""""""""""""""""!""""!""""!"""""""""""""""""""""""""""""!"""""""""!"""""""""!""""!""""!""!""""""""""""""""""""""""""""""""""""""!"""""""""!"""""""""!""""!""""!""!""""""""""""""""""""""""""""""""""""""!"""""""""!"""""""""!""""!""""!""!"""""""""""""""""""""""""""""""""""""" """"""""" """"""""" """" """" "" DDD""""""""""""""""""""""""""""""""""" """"""""" """"""""" """" """" "" DDD"""""""""""""""""""""""DDD@D"D@D"D@D"DDDD@DDDD3DDD@DDDD3DDD@DDDD3@DD03@DD03 ""@DD03"!"UUPD@D033pwPUPUUUUUU"!"PUUUUUUPUPUUUUUPUD@D033pwPPPPPUPUPU"!"UPPPUPPPPUPUUUPD@D033pwPPPPUPUPU"!"UPPPUPPPPUPUUUDD3wwpwwPUPUPUPU"!"PUUUUUPPPUPUPUPUDD3wwpwwP!""DD3wwpww@D333wwwwpw@D333wwwwpw@D333wwwwpwwwwwwwwwwpwwpwwpww€ˆˆˆˆˆˆˆˆ€ˆˆˆˆˆˆˆˆ€ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ˆ"""ˆˆˆˆ(""‚ˆˆˆˆ€ˆ"""ˆˆˆˆ(""‚ˆˆˆˆ€ˆ"""ˆˆˆˆ(""‚ˆˆˆˆ€ˆ"""ˆˆˆˆ(""‚ˆˆˆˆ€ˆ"""ˆˆˆˆ(""‚ˆˆˆˆ€ˆ"""ˆˆˆˆ(""‚ˆˆˆˆ€ˆf&"ˆˆˆˆhf"‚ˆˆˆˆ€ˆf&"ˆˆˆˆhf"‚ˆˆˆˆ€ˆf&"ˆˆˆˆhf"‚ˆˆˆˆ€ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ™™™€ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ™™™€ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ™™™€ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ™™™™ €ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ™™™™ €ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ™™™™ €ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ™™™™™™€ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ™™™™™™°»»»°»»»€ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ™™™™™™»»»»» »»»»» ™ˆˆˆˆˆˆˆˆˆˆˆˆ™™™™™™ˆˆˆ»»»»»»» »»»»»»» ™ˆˆˆˆˆˆˆˆˆˆˆˆ™™™™™™ˆˆˆ»»»»»»»» °»»»»»»»»»» ™ˆˆˆˆˆˆˆˆˆˆˆˆ™™™™™™ˆˆˆ»»»»»»»»»°»»»»»»»»»»»»ˆ˜™™™™™™™™™™™™™™™™ˆˆˆˆ˜™™ »»»»»»»»» °»»»»»»»»»»»»» ˆ˜™™™™™™™™™™™™™™™™ˆˆˆˆ˜™™ »»»»»»»»»» °»»»»»»»»»»»»»»»»»»» ˆ˜™™™™™™™™™™™™™™™™ˆˆˆˆ˜™™ »»»»»»»»»»»°»»»»»»°»»»»»»»»»»»»»»»»ˆˆˆ™™™™‰ˆˆ˜™ˆˆˆˆˆˆˆ˜™™™™™™™»»»»»»»»»»»»»»»»»» »»»»»»»»»»»»»»»»»»ˆˆˆ™™™™‰ˆˆ˜™ˆˆˆˆˆˆˆ˜™™™™™™™»»»»»»»»»»» »»»»»»»»»»»»» »»»»»»»»»»»»»»»»»»»»» »ˆˆˆ™™™™‰ˆˆ˜™ˆˆˆˆˆˆˆ˜™™™™™™™»»»»»»»»»»»»»»» »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»» »»»‹ˆˆ˜™ˆˆˆˆ˜™™™™™™™™™™™™™™™™»»»»»»»»»»»»»»» »»»»»»»»»»»»»»»»»» °»»°»»»»»»»»»»»»»»»»»»»»»»» »»»»‹ˆˆ˜™ˆˆˆˆ˜™™™™™™™™™™™™™™™™°»»»»»»»»»»»»» »»»»»»»»»» °»»»»»»»»»»»»» »»»»»»»»»»»»»»»»»»»»»» »»»»»‹ˆˆ˜™ˆˆˆˆ˜™™™™™™™™™™™™™™™™»»»»»»»»»»»»»»»»»»»»»»»»»»°»»»»»»»»»»»»»°»»»»»»»»»»»»»»»»»»»»»»»»»»»»›™™™™ˆ˜™ˆˆˆ™™™™™™™™™™™™™™™™Ḛ́»»»»»»»»»»»»°»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»°»»»»»»»»›™™™™ˆ˜™ˆˆˆ™™™™™™™™™™™™™™™™ÉĢ»»»»»»»»»»»»°»»»»»»»»»»»»»»»» »»»» °»°»»»»»»»»»»»»»»»»»»»»°»»»»»»»»»›™™™™ˆ˜™ˆˆˆ™™™™™™™™™™™™™™™™Ḛ́»»»»»»»»»°»»»»»»»»»»»»»»»»»» °»»»»»»°»»»»»»»»»»»»»»»»»°»»»»»»»»»»›™™‰ˆˆ˜™™‰ˆ™™™™™™™™™™™™™™™™YUĢĢ̰»»»»»» °»»»»»»»»»»»»»»»»»»»»»°»»»»»»»» »»»»»»»»»»»»» » °»»»»»»»»»»»›™™‰ˆˆ˜™™‰ˆ™™™™™™™™™™™™™™™™YUĢĢĢ»»»»»»»»» »»»»»»»»»»»»»»»»»»»»»»» »»»»»»»»»»»»»»»»»»»»»»»»» »»»»» »»»»»»»»»»»»»›™™‰ˆˆ˜™™‰ˆ™™™™™™™™™™™™™™™™YUĢĢĢ»»»»»»»»»» »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»» °»»»»»»»»»»»»»»»»»»» »»»»»»»»»»»»›™ˆˆˆ™™™™‰ˆˆ˜™™™™™™™™™™™™™™™™UÅĢĢĢĢ»»»»»»»» °»»»»»»»»»»»»»»»»»»»» °»»»»»»»»»»»»» »»»»»»»»»»» °»»»»»»»»» °»»»»»»»»»»»›™ˆˆˆ™™™™‰ˆˆ˜™™™™™™™™™™™™™™™™UÅĢĢĢĢ»»»»»»»»»°»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»» »»»»»»»»»»»»°»»»»»»»»»»›™ˆˆˆ™™™™‰ˆˆ˜™™™™™™™™™™™™™™™™UÅĢĢĢĢ»»»»»»»»»»»»»»»»»»»»»»»»»»»» °»»»»»»»»»»»»»»» °»»»»»»»»» »»»»»»»»»»»»»»»»»»»»»»»»‹ˆˆØŖ™™™™™™ˆˆˆ™™™™™™™™™™™™™™™UÅĢĢĢĢ̼ »»»»»»» °»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»°»»»»»»»»»»»»»»»»»»»»» °»»»»»»»»»‹ˆˆØŖ™™™™™™ˆˆˆ™™™™™™™™™™™™™™™UÅĢĢĢĢ̼»»»»»»»»»»»»»»»»»»»»»»»»»°»»»»»»»»»»»»»»»»»»»»»°»»»» °»»»»»»»»»»»»»»»»»»»»»»»»»‹ˆˆØŖ™™™™™™ˆˆˆ™™™™™™™™™™™™™™™UÅĢĢĢĢĢ °»»»»»»»» °»»»»»»»»»»»»»»» °»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»» °»»+"""""²»ŖŖŖ™™™™™™ŖŖŖ""""""™™™™™™™™™™YUUUUĢĢĢ»»»»»»»»»»»»»»»»»»»»»»»» »»»»»»»»»»»»»»»»»»»»»»» °»» °»»»»»»»»»»»»»»»»»»»»+"""""²»ŖŖŖ™™™™™™ŖŖŖ""""""™™™™™™™™™™YUUUUĢĢĢ»»»»»»»»» °»»»»»»» »»»»»»»»»»»»»»»»»»»»»»»»°» »»»»»»»»»»»»»»»»»»» °»+"""""ŖŖŖ™™™™™™ŖŖŖ""""""™™™™™™™™™™YUUUUĢĢĢ»»»»»»»»»»°»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»°»+"""""’™ŖŖŖ™™™™™™ŖŖŖ""""""™™™™™™™™™ĢĢĢĢĢĢĢĢĢ»»»»»»»»»»» °»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»» °»»»»»»»»»»»»»»»»»»»»»+"""""’™ŖŖŖ™™™™™™ŖŖŖ""""""™™™™™™™™™ĢĢĢĢĢĢĢĢĢ»»»»»»»»»» »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»» »»»»»»»»»»»»»»»»»»»»» """""’™ŖŖŖ™™™™™™ŖŖŖ""""""™™™™™™™™™ĢĢĢĢĢĢĢĢĢ»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»» »»»»»»»»»»»»»»»»»»»»»»»»+"""""ŖŖŖ™™™™™™ŖŖŖ""""""™™™™™™ĢlfĢĢĢĢĢĢ»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»» »»»»»»»»»»»»»»»»»»»»»»»»»»+"""""ŖŖŖ™™™™™™ŖŖŖ""""""™™™™™™ĢlfĢĢĢĢĢĢ»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»+"""""ŖŖŖ™™™™™™ŖŖŖ""""""™™™™™™ĢlfĢĢĢĢĢĢ»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»» °»»»»»»»»»»»»»»»»»»»»»»»»»»»+"""""ŖŖŖŖš™™©ŖŖš™""""""™933333ĆĢĢĢĢ̼»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»+"""""ŖŖŖŖš™™©ŖŖš™""""""™933333ĆĢĢĢĢ̼»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»°»»»»»»»»»»»»»»»»»»»»»»»»»»»»+"""""ŖŖŖŖš™™©ŖŖš™""""""™933333ĆĢĢĢĢ̼»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»°»»»»»»»»»»»»»»»»»»»»»»»»»»»»+"""""™©ŖŖš™™©ŖŖš™""""""™933333ĆĢĢĢĢ»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»°»»»»»»»»»»»»»»»»»»»»»»»»»»»»+"""""™©ŖŖš™™©ŖŖš™""""""™933333ĆĢĢĢĢ»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»°»»»»»»»»»»»»»»»»»»»»»»»»»»»»+"""""™©ŖŖš™™©ŖŖš™""""""™933333ĆĢĢĢĢ»»»^X-- title: EGG THIEF -- author: Milo Davis, milodaviss@gmail.com, milo-davis.com. -- desc: You need that good good protein from the rare swan egg to keep you going. Only time will tell if your brazen theft will bear any consequences. -- site: milo-davis.com -- license: MIT License (change this to your license of choice) -- version: 0.1 -- script: lua --Function defining :) -- swap c0 and c1 colors, call pal() to reset function pal(c0,c1) if(c0==nil and c1==nil)then for i=0,15 do poke4(0x3FF0*2+i,i)end else poke4(0x3FF0*2+c0,c1)end end --finds solid on map function solid(x,y) return solids[mget((x)//8, (y)//8)] end --makes all my global variables :) function init() solids ={[1]=true,[2]=true,[3]=true,[4]=true,[5]=true,[6]=true,[7]=true,[8]=true,[9]=true,[10]=true,[11]=true,[12]=true,[13]=true,[14]=true,[15]=true,[16]=true,[17]=true,[18]=true,[19]=true,[20]=true,[21]=true,[22]=true,[23]=true,[24]=true,[25]=true,[26]=true,[27]=true,[28]=true,[29]=true,[30]=true,[31]=true,[32]=true,[33]=true,[34]=true,[35]=true,[36]=true,[37]=true,[38]=true,[39]=true,[40]=true,[41]=true,[42]=true,[43]=true,[44]=true,[45]=true,[46]=true,[47]=true,[48]=true,[49]=true,[50]=true,[51]=true,[52]=true,[53]=true,[54]=true,[55]=true, [56]=true} t=0 frames = {257,258,259,260,261,262} frame_idx = 256 grav=.2 eggs=0 swnkilled=0 scrnx=240 scrny=136 level=0 lvldelay=0 gamestate=0 danger=false timer=420 pan={ sp=448, idling=true, egged ={416,420,424,428,460,456}, idle = {448,452,456}, x=10, y=112 } egg={ frames = {80,81,82,83,84,85,86,87}, x=216, y=112, alive=true, sp=80 } crn={ sp=112, x=-10, y=-10, anim=0, frms=54, frm=6 } swn={ alive=true, rest=0, move=120, x=120, y=120, xspd=.5, vx=0, vy=0, sp=320, dir=0, anim=0, frms=32, frm=8 } swrd={ dir=0, atk=false, anim=0, frms=36, frm=3, x=-10, y=-10, vy=0, sp=0 } swrd1={ x=-10, y=-10, } swrd2={ x=-10, y=-10 } swrd3={ x=-10, y=-10 } plr={ alive=true, sp=256, iframes=0, maxhp=3, hp=3, x=40, y=112, vx=0, vy=0, dir=1, xacc=.3, xmax=1.2, sit=0, size=1, sitspd=24, jmp=2, jmpheight=-2.8, jmptimer=-1, jmpdelay=5 } end --level setups function lvl1setup() egg.x=216 egg.y=112 plr.x=40 plr.y=112 swn.x=120 swn.y=0 end function lvl2setup() egg.x=216 egg.y=112 plr.x=40 plr.y=112 swn.x=64 swn.y=0 end function lvl3setup() egg.x=216 egg.y=0 plr.x=40 plr.y=112 swn.y=40 swn.x=112 end function lvl4setup() egg.x=56 egg.y=96 plr.x=16 plr.y=64 swn.x=224 swn.y=40 end function lvl5setup() egg.x=16 egg.y=64 plr.x=24 plr.y=112 swn.x=152 swn.y=16 end function lvl6setup() egg.x=224 egg.y=112 plr.x=16 plr.y=96 swn.x=24 swn.y=8 end function lvl7setup() egg.x=112 egg.y=16 plr.x=24 plr.y=64 swn.x=208 swn.y=0 end function levelsetup() egg.alive=true swn.alive=true pan.idling=true eggs=0 if plr.hp<3 then plr.hp=plr.hp+1 end if level==1 then lvl1setup() elseif level==2 then lvl2setup() elseif level==3 then lvl3setup() elseif level==4 then lvl4setup() elseif level==5 then lvl5setup() elseif level==6 then lvl6setup() elseif level==7 then lvl7setup() end end function lvldelaycountdown() if lvldelay>0 then lvldelay=lvldelay-1 if level==7 and danger==true then print("You Win!",10,40,5,false,2) end elseif lvldelay==0 and pan.idling==false then if level<7 then level=level+1 else level=1 end levelsetup() end end function panstuff() if entitycollider(pan.x+1,pan.x+16,pan.y+7,pan.y+15, plr.x,plr.x+7,plr.y+1,plr.y+7) ==true and eggs==1 then --print("wahoo") pan.idling=false sfx(38) eggs=0 lvldelay=200 plr.iframes=260 --everything below this should have a delay end if pan.idling==true then pan.sp = pan.idle[math.floor(t/12 % #pan.idle)+1] elseif pan.idling == false then pan.sp = pan.egged[math.floor(t/12 % #pan.egged)+1] end spr(pan.sp,pan.x,pan.y,0,1,0,0,4,2) end function eggstuff() --egg should add to variable: eggs when collected --egg should change alive variable to false when collected --egg should animate --value should be 88 when collected for 1 frame --egg should render sprite egg.sp = egg.frames[math.floor(t/10 % #egg.frames)+1] if entitycollider(egg.x+2,egg.x+5,egg.y+1,egg.y+6, plr.x,plr.x+7,plr.y+1,plr.y+7) ==true then egg.alive=false egg.sp=88 eggs=eggs+1 sfx(34) end spr(egg.sp,egg.x,egg.y,0,plr.size,0,0,1,1) end --renders the player and all its fucked up animation and shit function RndrPlr() if plr.alive==false then frame_idx=276; spr(frame_idx,plr.x,plr.y,0,plr.size,plr.dir,0,1,1) elseif btn(1) and solid(plr.x+2,plr.y+8) or btn(1) and solid(plr.x+5,plr.y+8) then frame_idx=273; spr(frame_idx,plr.x,plr.y,0,plr.size,plr.dir,0,1,1) elseif plr.jmptimer>=plr.jmpdelay-2 then frame_idx=288; sp=frame_idx spr(frame_idx,plr.x,plr.y,0,plr.size,plr.dir,0,1,1) elseif plr.jmptimer>=2 and plr.jmptimer<=plr.jmpdelay-3 then frame_idx=289; spr(frame_idx,plr.x,plr.y,0,plr.size,plr.dir,0,1,1) elseif plr.jmptimer==1 or plr.jmptimer==0 then frame_idx=290; spr(frame_idx,plr.x,plr.y,0,plr.size,plr.dir,0,1,1) elseif plr.vy~=0 then if plr.vy<0 then frame_idx=291; spr(frame_idx,plr.x,plr.y,0,plr.size,plr.dir,0,1,1) elseif plr.vy>0 then frame_idx=292; spr(frame_idx,plr.x,plr.y,0,plr.size,plr.dir,0,1,1) plr.sit=plr.sitspd/2 end elseif btn(3) or btn(2) then spr(frames[frame_idx],plr.x,plr.y,0,plr.size,plr.dir,0,1,1) elseif plr.sit>=18 then frame_idx=272; spr(frame_idx,plr.x,plr.y,0,plr.size,plr.dir,0,1,1) plr.sit=plr.sit-1 elseif plr.sit>=12 then frame_idx=273 spr(frame_idx,plr.x,plr.y,0,plr.size,plr.dir,0,1,1) plr.sit=plr.sit-1 elseif plr.sit>=6 then frame_idx=274 spr(frame_idx,plr.x,plr.y,0,plr.size,plr.dir,0,1,1) plr.sit=plr.sit-1 elseif plr.sit>=1 then frame_idx=275 spr(frame_idx,plr.x,plr.y,0,plr.size,plr.dir,0,1,1) plr.sit=plr.sit-1 elseif plr.sit==0 then frame_idx=256; spr(frame_idx,plr.x,plr.y,0,plr.size,plr.dir,0,1,1) end end --hehe makes 2 things collide --a1-left,a2-right,a3-top,a4-bottom same for b1-4 function entitycollider(a1,a2,a3,a4,b1,b2,b3,b4) if a1>b1 and a1b3 and a3b1 and a2b3 and a3b1 and a1b3 and a4b1 and a2b3 and a4239 then swn.dir=0 end end --makes healthbar and jump tracker function plrHUD() if plr.hp==3 then spr(96,plr.x-1,plr.y+10,0,1,0,0) spr(96,plr.x+3,plr.y+10,0,1,0,0) spr(96,plr.x+7,plr.y+10,0,1,0,0) elseif plr.hp==2 then spr(96,plr.x-1,plr.y+10,0,1,0,0) spr(96,plr.x+3,plr.y+10,0,1,0,0) elseif plr.hp==1 then spr(96,plr.x-1,plr.y+10,0,1,0,0) end if plr.jmp==2 then rect(plr.x-2,plr.y+6,1,1,4) rect(plr.x-2,plr.y+4,1,1,4) elseif plr.jmp==1 then rect(plr.x-2,plr.y+6,1,1,4) end end --everything abt the swan:) function swanstuff() if entitycollider(swn.x+1,swn.x+6,swn.y,swn.y+7, swrd.x+1,swrd.x+6,swrd.y+10,swrd.y+17)==true and swrd.sp~=139 then swn.alive=false sfx(33) swnkilled=swnkilled+1 end if entitycollider(swn.x+1,swn.x+6,swn.y,swn.y+7, swrd1.x+1,swrd1.x+6,swrd1.y+10,swrd1.y+17)==true and swrd1.sp~=347 then swn.alive=false sfx(33) swnkilled=swnkilled+1 end if entitycollider(swn.x+1,swn.x+6,swn.y,swn.y+7, swrd2.x+1,swrd2.x+6,swrd2.y+10,swrd2.y+17)==true and swrd2.sp~=347 then swn.alive=false sfx(33) swnkilled=swnkilled+1 end if entitycollider(swn.x+1,swn.x+6,swn.y,swn.y+7, swrd3.x+1,swrd3.x+6,swrd3.y+10,swrd3.y+17)==true and swrd3.sp~=347 then swn.alive=false sfx(33) swnkilled=swnkilled+1 end --swan gravity if gravity(swn.x+1,swn.x+6,swn.y+7)==true then swn.vy=0 else swn.vy=swn.vy+grav end --swan walking if swn.rest>0 then swn.rest=swn.rest-1 end if math.random(1,180) == 27 then swn.rest=60 end if math.random(1,320) == 27 and swn.x>4 then if swn.dir==0 then swn.dir=1 elseif swn.dir==1 and swn.x<236then swn.dir=0 end end if swn.rest==0 and swn.dir==0 then swn.vx=swn.xspd elseif swn.rest~=0 and swn.dir==1 and swn.move~=0 then swn.vx=-swn.xspd else swn.vx=0 end --swan animation if swn.rest>=74 and swn.vy==0 then swn.sp=322 elseif swn.rest~=0 and swn.move==0then swn.sp=320 elseif swn.vy>0 then swn.sp=321 swn.rest=80 elseif swn.vx~=0 then if swn.anim==0 then swn.anim=swn.frms elseif swn.anim>swn.frms-1*swn.frm then swn.anim=swn.anim-1 swn.sp=304 elseif swn.anim>swn.frms-2*swn.frm then swn.anim=swn.anim-1 swn.sp=305 elseif swn.anim>swn.frms-3*swn.frm then swn.anim=swn.anim-1 swn.sp=306 elseif swn.anim>swn.frms-4*swn.frm then swn.anim=swn.anim-1 swn.sp=307 end else swn.sp=320 end --swan collisions swanbottomcollision(swn.x+1,swn.x+6,swn.y+7,swn.y) swansidecollision(swn.x-2,swn.x+9,swn.y+7,swn.y) end --crown stuff --wearerx=a,y=b,dir=c function crownbearer(a,b,c) spr(crn.sp,a+1-3*c,b-9,0,plr.size,c,0,1,1) end --draw swrd function RndrSwrd() if solid(swrd.x+240*level+2,swrd.y+16) and swrd.anim==0 or solid(swrd.x+240*level+5,swrd.y+16) and swrd.anim==0 then if swrd.sp==138 then swrd.sp=139 elseif swrd.sp~=139 then swrd.sp=138 end spr(swrd.sp,swrd.x,swrd.y,0,plr.size,swrd.dir,0,1,2) swrd.atk=false-- swrd.vy=0 else spr(swrd.sp,swrd.x,swrd.y,0,plr.size,swrd.dir,0,1,2) end end --iframe stuff and making the character blink function iframes() if plr.iframes>50 then pal(09,14) pal(08,14) pal(10,14) elseif plr.iframes>40 then pal(09,15) pal(08,15) pal(10,15) elseif plr.iframes>30 then pal(09,14) pal(08,14) pal(10,14) elseif plr.iframes>20 then pal(09,15) pal(08,15) pal(10,15) elseif plr.iframes>10 then pal(09,14) pal(08,14) pal(10,14) elseif plr.iframes>0 then pal(09,15) pal(08,15) pal(10,15) else pal() end if plr.iframes>0 then plr.iframes=plr.iframes-1 end if plr.iframes>0 then plr.xacc=.1 plr.xmax=.6 elseif plr.iframes==0 then plr.xacc=.3 plr.xmax=1.2 end end -- btn press causes sprite to run and plr to move function movementinputs() if btn(0) then if eggs<=0 then print("Egg Pls",plr.x-14,plr.y-6,4,1) elseif eggs>0 then egg.x=plr.x egg.y=plr.y-10 eggstuff() end end if btn(3) or btn(2) then frame_idx = math.floor(t/6 % #frames)+1 end if btn(3) then --right if plr.vx(-plr.xmax) then plr.vx=plr.vx-plr.xacc end plr.dir=1 plr.sit=plr.sitspd else plr.vx=0 end end function jumpstuff() --character jumps if btnp(5) and plr.jmp>=1 then plr.jmp=plr.jmp-1 plr.jmptimer=plr.jmpdelay sfx(32,-1,-1,1,15,0) end if plr.jmptimer>0 then plr.jmptimer=plr.jmptimer-1 plr.vy=0 elseif plr.jmptimer==0 then plr.vy=plr.jmpheight plr.jmptimer=plr.jmptimer-1 end --reset jump if plr.vy==0 and solid(plr.x+240*level+2,plr.y+8) or plr.vy==0 and solid(plr.x+240*level+5,plr.y+8) then plr.jmp=2 end --character can't double jump after falling off ledge if plr.vy>2*grav and plr.jmp>=2 or plr.vy<-2*grav and plr.jmp>=2 then plr.jmp=plr.jmp-1 end end function swordanimation() local swordspin={336,337,338,339,340,341,342,343,344,345} return swordspin[math.floor(t/5 % #swordspin)] end function dangerswords() local delay ={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100} local delaysp=delay[math.floor(t/2 % #delay)+1] if delaysp==1 then cls(1) sfx(41) swrd1.x=plr.x swrd1.y=plr.y-48 elseif delaysp==2 then cls(1) swrd2.x=plr.x+16 swrd2.y=plr.y-50 elseif delaysp==3 then swrd3.x=plr.x-16 swrd3.y=plr.y-50 end if delaysp<=24 and delaysp>3 then swrd1.sp=swordanimation() swrd2.sp=swordanimation() swrd3.sp=swordanimation() elseif delaysp==25 then sfx(40) swrd1.y=swrd1.y+2 swrd1.sp=337 elseif delaysp==26 then sfx(40) swrd1.y=swrd1.y+4 swrd2.y=swrd2.y+2 elseif delaysp==27 then sfx(40) swrd1.y=swrd1.y+6 swrd2.y=swrd2.y+4 swrd3.y=swrd3.y+2 elseif delaysp==28 then swrd1.y=swrd1.y+8 swrd2.y=swrd2.y+6 swrd3.y=swrd3.y+4 elseif delaysp==29 then swrd1.y=swrd1.y+10 swrd2.y=swrd2.y+8 swrd3.y=swrd3.y+6 elseif delaysp==30 then swrd1.y=swrd1.y+10 swrd2.y=swrd2.y+10 swrd3.y=swrd3.y+8 elseif delaysp==31 then swrd1.sp=346 swrd2.y=swrd2.y+10 swrd3.y=swrd3.y+10 elseif delaysp==32 then swrd1.sp=347 swrd2.sp=346 swrd3.y=swrd3.y+10 elseif delaysp==33 then swrd2.sp=347 swrd3.sp=346 sfx(40) elseif delaysp==34 then swrd3.sp=347 end end function swordstuff() --start sword affect if btnp(7) and swrd.atk ==false and plr.alive==true or btnp(4) and swrd.atk ==false and plr.alive==true then swrd.anim=swrd.frms swrd.dir=plr.dir swrd.atk=true swrd.x=plr.x swrd.y=plr.y-24 swrd.sp=128 sfx(36) end --draw sword spinning animation if swrd.anim>=swrd.frms-(1*swrd.frm) then swrd.anim=swrd.anim-1 swrd.sp=128 elseif swrd.anim>swrd.frms-(2*swrd.frm) then swrd.anim=swrd.anim-1 swrd.sp=129 elseif swrd.anim>swrd.frms-(3*swrd.frm) then swrd.anim=swrd.anim-1 swrd.sp=130 elseif swrd.anim>swrd.frms-(4*swrd.frm) then swrd.anim=swrd.anim-1 swrd.sp=131 elseif swrd.anim>swrd.frms-(5*swrd.frm) then swrd.anim=swrd.anim-1 swrd.sp=132 elseif swrd.anim>swrd.frms-(6*swrd.frm) then swrd.anim=swrd.anim-1 swrd.sp=133 elseif swrd.anim>swrd.frms-(7*swrd.frm) then swrd.anim=swrd.anim-1 swrd.sp=134 elseif swrd.anim>swrd.frms-(8*swrd.frm) then swrd.anim=swrd.anim-1 swrd.sp=135 elseif swrd.anim>swrd.frms-(9*swrd.frm) then swrd.anim=swrd.anim-1 swrd.sp=136 elseif swrd.anim>swrd.frms-(10*swrd.frm) then swrd.anim=swrd.anim-1 swrd.sp=137 elseif swrd.anim>=swrd.frms-(11*swrd.frm) then swrd.anim=swrd.anim-1 swrd.sp=128 elseif swrd.anim>swrd.frms-(12*swrd.frm) then swrd.anim=swrd.anim-1 swrd.sp=129 end --have sword shoot down if swrd.atk==true and swrd.anim==0 then if swrd.vy<7 then swrd.vy=swrd.vy+1 end if solid(swrd.x+240*level+2,swrd.y+15+swrd.vy) and swrd.vy~=0 or solid(swrd.x+240*level+5,swrd.y+15+swrd.vy) and swrd.vy~=0 then while solid(swrd.x+240*level+2,swrd.y+15+swrd.vy) or solid(swrd.x+240*level+5,swrd.y+15+swrd.vy) do swrd.vy=swrd.vy-.1 sfx(37) end elseif swrd.vy==0 then spr(swrd.sp,swrd.x,swrd.y,0,plr.size,swrd.dir,0,1,2) end end end --make the crown animate, and make the crown attack to player function crnstuff() if crn.anim==0 then crn.anim=crn.frms else crn.anim=crn.anim-1 end if crn.anim>crn.frms-1*crn.frm then crn.sp=112 elseif crn.anim>crn.frms-2*crn.frm then crn.sp=113 elseif crn.anim>crn.frms-3*crn.frm then crn.sp=114 elseif crn.anim>crn.frms-4*crn.frm then crn.sp=115 elseif crn.anim>crn.frms-5*crn.frm then crn.sp=116 elseif crn.anim>crn.frms-6*crn.frm then crn.sp=117 elseif crn.anim>crn.frms-7*crn.frm then crn.sp=118 elseif crn.anim>crn.frms-8*crn.frm then crn.sp=119 elseif crn.anim>crn.frms-9*crn.frm then crn.sp=120 end if swn.alive==true then crownbearer(swn.x,swn.y,swn.dir) else crownbearer(plr.x,plr.y,plr.dir) end end function test(a,b) print(math.floor(t/a % b)+((math.floor(t/6 % 10))/10)) end function game() --clears the screen cls(0) -- map(x=0,y=0,w=30,h=17,sx=0,sy=0,colorkey=-1,scale=1,remap=nil) spr(176,0,88,0,1,0,0,16,5) spr(176,128,88,0,1,0,0,16,5) --map(0,0,30,17,0,0,0) --level 1 map(level*30,0,30,17,0,0,0) if swnkilled>=8 and level==7 and danger == false then timer=timer-1 if timer>300 then print("What have you done?",69,39,math.random(1,2),false,1) print("What have you done?",70,40,math.random(2,3),false,1) print("What have you done?",71,41,math.random(3,4),false,1) elseif timer>180 then print("They didnt deserve to die",54,49,math.random(1,2),false,1) print("They didnt deserve to die",55,50,math.random(2,3),false,1) print("They didnt deserve to die",56,51,math.random(3,4),false,1) elseif timer>60 then print("You will fall by your own hand",44,59,math.random(1,2),false,1) print("You will fall by your own hand",45,60,math.random(2,3),false,1) print("You will fall by your own hand",46,61,math.random(3,4),false,1) elseif timer==0 then music(00,-1,-1,true,false,-1,2) elseif timer<0 then danger=true end end if danger==true then dangerswords() swrd.x=-10 swrd.y=-10 end if egg.alive==true and swn.alive==false then eggstuff() end if level==0 then print("press < & > to move",20,20,5) spr(99,52,19,0) spr(100,69,19,0) print("press x to jump",20,30,5) spr(97,52,29,0) print("press z to attack",20,40,5) spr(98,52,39,0) if swn.alive==true then print("kill the swan",150,60,5) elseif egg.alive==true then print("steal the egg",150,70,3) else print("cook the egg",150,80,2) end end -- makes level transition and has black screen for a sec lvldelaycountdown() --player pressing things causes stuff to happen if plr.alive==true then movementinputs() else plr.vx=0 end --player collision with map playermapcollision(plr.x+2,plr.x+5,plr.y+7,plr.y+1) -- check if player hits sword if entitycollider(plr.x+2,plr.x+5,plr.y+1,plr.y+7, swrd.x+1,swrd.x+6,swrd.y+10,swrd.y+17)==true and swrd.sp~=139 and plr.iframes==0 then plr.vx=0 plr.vy=swrd.vy plr.iframes=60 plr.hp=plr.hp-1 sfx(33) end if entitycollider(plr.x+2,plr.x+5,plr.y+1,plr.y+7, swrd1.x+1,swrd1.x+6,swrd1.y+10,swrd1.y+17)==true and swrd1.sp~=347 and plr.iframes==0 then plr.vx=0 plr.vy=0 plr.iframes=60 plr.hp=plr.hp-1 sfx(33) end if entitycollider(plr.x+2,plr.x+5,plr.y+1,plr.y+7, swrd2.x+1,swrd2.x+6,swrd2.y+10,swrd2.y+17)==true and swrd2.sp~=347 and plr.iframes==0 then plr.vx=0 plr.vy=0 plr.iframes=60 plr.hp=plr.hp-1 sfx(33) end if entitycollider(plr.x+2,plr.x+5,plr.y+1,plr.y+7, swrd3.x+1,swrd3.x+6,swrd3.y+10,swrd3.y+17)==true and swrd3.sp~=347 and plr.iframes==0 then plr.vx=0 plr.vy=0 plr.iframes=60 plr.hp=plr.hp-1 sfx(33) end iframes() -- check if player is dead if plr.hp==0 then plr.hp=plr.hp-1 sfx(44,-1,-1,1,25,0) plr.alive=false end if plr.alive==true then jumpstuff() end if danger==false then swordstuff() end --make player die if they fall off map if plr.y>=300 and plr.y<=320 then plr.alive=false swrd.atk=false swrd.vy=0 sfx(44) end --check if swan is alive and if so do swan stuff if swn.alive==true then swanstuff() else swn.vx=0 swn.vy=0 swn.sp=323 end --move sword swrd.y=swrd.y+swrd.vy --move character plr.y=plr.y+plr.vy plr.x=plr.x+plr.vx --draw double jump platform if plr.jmptimer>=0 and plr.jmp==0 then line(plr.x+3-4+plr.jmptimer,plr.y+9,plr.x-plr.jmptimer,plr.y+9,12) line(plr.x+4+4-plr.jmptimer,plr.y+9,plr.x+7+plr.jmptimer,plr.y+9,12) end swn.x=swn.x+swn.vx swn.y=swn.y+swn.vy spr(swn.sp,swn.x,swn.y,0,plr.size,swn.dir,0,1,1) --render player and player HUD RndrSwrd() RndrPlr() plrHUD() crnstuff() panstuff() spr(swrd1.sp,swrd1.x,swrd1.y,0,1,0,0,1,2) spr(swrd2.sp,swrd2.x,swrd2.y,0,1,0,0,1,2) spr(swrd3.sp,swrd3.x,swrd3.y,0,1,0,0,1,2) --if players dead display a dead message if plr.alive==false then print("You're dead as a doornail!",56,62,4) print("Press x to continue",72,72,4) spr(97,104,71,0) if btnp(5) then plr.hp=3 plr.alive=true levelsetup() end end --blank screen inbetween levels if lvldelay>0 and lvldelay<110 then rect(0,0,240,136,11) if danger==false then print("lvl", 70,60,5,false,3) print(level+1,130,60,5,false,3) else print("Endless", 10,60,5,false,3) end end end --display the title function title() cls(0) spr(176,0,96,0,1,0,0,16,5) --bushes spr(176,128,96,0,1,0,0,16,5) --bushes spr(60,144,40,0,3,0,0,4,4) --body of guy local crown={14,58,14,90} print("EGG THIEF",0,18,1,false,5) print("EGG THIEF",2,20,2,false,5) spr(crown[1+math.floor(t/40 % #crown)],144,40,0,3,0,0,2,2) --crown animation print("press x to continue",37,55,05) spr(97,70,54,0) --x from "press x" if btnp(5) then gamestate = 1 end end --the game init() music(00,-1,-1,true,false,-1,-1) function TIC() if gamestate==0 then title() elseif gamestate==1 then game() end t=t+1 end --[[ideas: -sword attack(b button) that drops behind the character after a certain amount of frames -at the end of game swords are no longer a choice, they just spawn whenever (you are final boss) -player two option -title screen -make collision more interchangable -swan king at end of game -crown ]] --make swans killed tracker --[[local swans=1 if swnkilled>0 then for swans=1,swnkilled,1 do spr(323,240-12*swans-4,0,0) end end]]