Play above or copy and paste code(below) into pico8!

Checkout newest freegame *PONG*

Pico1.72k *Contract Offender 2* (1761char/Hard/~5mins) 

Controls (p1 0/1/2/3): 

  • left and right arrow keys to change turret's angle of attack
  • up arrow key to fire the turret (tap or hold)
  • (?)down arrow key
  • p/enter to pause/restart. 

*Achieving win/lose freezes the gamestate. Clickout and page-refresh to replay.

 (see below: Author Note)

HUD (with max values): 

base_def(yellow)   time|kills(green)    ammo|accuracy(blue)

99                                350|600                 500|+100%

Prologue (Contract Offender1):

Your last contract was a stunning success. Success in that you got paid, stunning in that you left the outpost before it imploded. Turns out Caitsith bodies explode soon after their hearts are removed. Something about their blood vessels constricting and compressing their redstuff into high powered octane fluid...? The details were a bit embarrassing for our furry friends, so the details of the report were buried. But perhaps this information will prove helpful in completing your next assignment(?). 

Mission:

The natives have rallied in light of their recent success at the outpost, and are mounting an attack on the airstrip. Your assignment is to defend the strip until evacuations are complete. The primary defense of the airstrip is the giant double cannon gun-mounted turret in dire need of a better name. You will be in charge of manning the turret until the necessary evacuation time is reached, the estimates point to time:350. The enemy is relentless, and intel from the last mission suggests they are strongly attracted to the smell of rotting flesh. Their numbers are likely to grow as the body count climbs higher, but thankfully their numbers aren't infinite. Caitsith who assisted in operations will likely showup seeking asylum throughout the attack. Letting them through could prove vital in helping you to defend the strip. Hq has once again stressed the importance of including our furry friends in this operation. The details of this were rather vague, the mandate seems to allow 'you' to decide how to include the Cait in the operation. Your last contract proved that some Cait are better warriors than others, perhaps you can find another way for them to assist you during the attack(?).

Gameplay:

Every enemy who makes it onto the base will lower the base defenses. If base defenses reach 0 then the mission will fail. The turret can jam and overheat if ammo hits 0. Surviving until time:350 or getting 600 kills will complete the mission.

To foster a healthy dough of ethics, your score will be decided by how many Caitsith you saved/ttl. As always, you will not recieve a score if the mission is failed. 

Goodluck. The score to beat is 48/116 (41% of the Cait made it!). For the sake of that dough I hope you can do better. Post your best in the comments.

*The tips below can all be figured out by playing the game, and therefore may constitute as spoilers. Consider trying the game and seeing how far you can get on your own before reading them.

**There are many hidden mechanics and strategies towards both completing the contract and getting a good score. Consider the information below carefully, and how each tip relates to the others.

Tips:

  • Conserve ammo earlygame when it's less frantic, don't hold fire, tap. It may take some time, but when the turret (max 500 ammo storage) reaches 0 ammo it fires much slower, and can hurt you badly late game. Note: Turret ammo slowly regens.
  • The better your accuracy, the more Cait that will appear! The turret fires 2 shots at once, with careful alignment you can often land both shots on 2+ enemies. Every shot counts towards/against accuracy.
  • Multi-Kills with (?)attack can provide huge buffs to your accuracy (exceeding 100%). Strategize around this.
  • (?)attack's usage is determined by the number of saved Cait, and therefore affects your final score. Use with care.
  • When (?)attack collides with an object it can block one side of the map while ur turret focuses the other. When this attack hits the top of the screen it automatically explodes, but for much shorter a time than collisions would. With the right preparation you can unload and spam using this attack, cleaning the screen to save a low hp base lategame, at the expense of lowering your score.
  • Don't shoot the Cait/kitties! Or do shoot the Cait/kitties! They count towards the 600 kill-win. But they also have useful properties (when saved temporarily), and count towards score (when saved for good). But also remember more death = more enemies.
  • Cait safely in your base can still be shot and blown to pieces by friendly fire! Be very careful. You can lose all your furry friends instantly!
  • Base Hp keeps you alive, and that's it. You don't need more than 1 hp to win with a huge score. Consider all the tips above when determining whether or not to let an enemy through.
  • There are a couple grand-strategies, where considering the above tips, you do bad and nasty things early-on, for a stronger or faster/harder late game. It might be useful to consider upfront which of the two win conditions you want to aim for (timewin or kill-limit), then sort through the tips above, to plan how best to achieve it. Timewins are easier, but take longer and decrease ur chances of beating the highest possible scores. Kill-limit wins are suicidal at best (for the base or the Cait) many more times than not, but faster and higher potential of reward.
  • Losing some Cait on purpose to save an overall higher number...as much as we may love our furry friends...is usually not a bad idea.


Code:

function ์›ƒ(โ˜…)add(๐Ÿ˜,{x=i(125),y=-2,r=2,โ˜…=โ˜…,s=i(1)+.06,โ–ˆ=0,u=function(l)l.y+=l.s

if l.y>=โ–‘ then

if l.โ˜…==1then โ™ฅ-=1d(๐Ÿ˜,l)?"\aa3"

else l.y=123if(l.โ–ˆ==0)๐Ÿฑ+=1l.โ–ˆ=1?"\a-2d#2de#"

end end end,d=function(l)if l.โ˜…==1then?"โ˜…",l.x-3,l.y-2,8

else?"๐Ÿฑ",l.x-3,l.y-2,11

end end})

end

function m(x,y,โœฝ)local โœฝ=โœฝ for i=1,2do f+=1add(โžก,{x=x,y=y,โง—=0,โฌ†=0,r=2,โ—=200,s=4,โ–ˆ=0,a=0,u=function(l)if l.โ–ˆ==0then

if(โœฝ<2)l.x=i*5+l.x-8

l.โง—=cos(โˆง)*l.s l.โฌ†=sin(โˆง)*l.s l.โ–ˆ=1end

if(l.a>0)l.r=30l.โง—=0l.โฌ†=0

l.x+=l.โง— l.โ—-=1l.y+=l.โฌ†

if(l.y<5and โœฝ==2)l.โ—-=7l.a=1

if(l.โ—<=0or l.x>=127or l.x<=0or l.y<=0)d(โžก,l)

for o in a(๐Ÿ˜)do

if c(l.x,l.y,l.r,o.x,o.y,o.r)then?"\a300#1"

h+=1๐Ÿ…พ+=1if(o.y>=โ–‘)๐Ÿฑ-=1

if(โœฝ==1)d(๐Ÿ˜,o)d(โžก,l)else l.a=1d(๐Ÿ˜,o)end

end end,d=function(l)circfill(l.x,l.y,l.r-3+โœฝ,12) if(โœฝ==2)?"๐Ÿฑ",l.x-3,l.y-2,11

end})

if(โœฝ==2)break

end end

โžก={}๐Ÿ˜={}x=0y=0โˆง=.25๐Ÿ…พ=0h=0f=1r=0๐Ÿฑ=0โ–ค=0โŽ=0โ™ช=500โ–‘=120โ™ฅ=99b=btn i=rnd d=del a=all

function _update60()x=cos(โˆง)*8+63y=sin(โˆง)*8+โ–‘

if(โ™ช<500)โ™ช+=3/60

if(b(0)and โˆง<18/36)โˆง+=2/360

if(b(1)and โˆง>0)โˆง-=2/360

if(b(2)and โŽ<=0and โ™ช>1)m(x,y,1)โ™ช-=2โŽ=14?"\a-1"

if b(3)and ๐Ÿฑ>0and โŽ<=0 then for o in a(๐Ÿ˜)do if o.โ˜…==2and o.y>=โ–‘ then โŽ=14๐Ÿฑ-=1m(x,y,2)d(๐Ÿ˜,o)break end end?"\ag-e#"

end

if(โŽ>0)โŽ-=1

if(i(1)>0.99-0.00011*๐Ÿ…พ)์›ƒ(1)

if(i(1)>.99999-0.01*r)์›ƒ(2)โ–ค+=1

for o in a(โžก)do o:u()end

for o in a(๐Ÿ˜)do o:u()end r=h/f

if(๐Ÿฑ<0)โ™ฅ+=๐Ÿฑ ๐Ÿฑ=0end

function _draw()cls(1)rectfill(0,โ–‘,128,128,10)line(63,โ–‘,x,y,4)pset(63,โ–‘,8)pset(x,y,10)?โ™ฅ,3,4

?(t()\1).."|"..๐Ÿ…พ,18,4,11

?(โ™ช\1).."|"..(r*100\1).."%",50,4,12

?"์›ƒ",x-3,โ–‘-4,11

for o in a(โžก)do o:d()end

for o in a(๐Ÿ˜)do o:d()end

pset(cos(โˆง)*(8*10)+63,sin(โˆง)*(8*10)+โ–‘,15)

if(t()>350or ๐Ÿ…พ>599)cursor(40,60)stop("๐Ÿฑ"..๐Ÿฑ.."/"..โ–ค.." %"..(100*๐Ÿฑ/โ–ค)/1)

if(โ™ฅ<1)stop("โ˜…",60,60)end

function c(x1,y1,r1,x2,y2,r2)return(x2-x1)^2+(y2-y1)^2<(r1+r2)^2end


Author Note:

Similar to *Contract Offender 1*, the sequel was originally intended for the #pico1k gamejam. In that spirit the game was made to get the character count as low as possible. Feel free to suggest ways I can further decrease characters above. Those two stop() lines above were used to save characters otherwise spent stopping the gamelogic. They send you to the commandprompt. But the browser version, unlike in pico8, freezes the game, requiring you click out and refresh the page if you want to replay. Why? Cause the commandprompt is not included in the browser version of pico8. Similar to how you can't manually change the controls in the browser version...its kind of annoying. I'll omit it in the future.

The finale, pico1k *Contract Offender 3*, is to be released near the end of September.

StatusReleased
PlatformsHTML5
Rating
Rated 3.0 out of 5 stars
(1 total ratings)
AuthorCerbyo
GenreShooter
Made withPICO-8
TagsPICO-8

Leave a comment

Log in with itch.io to leave a comment.