Log In  


Cart #a4343-0 | 2022-12-06 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
8

"Legend of the ChunChunTree" is a 2d turret-defense wave survival shooter featuring an rpg-style castbar system, tons of buttons per button, a kinetic-physics system, and the ability to simultaneously control two overloaded weapons(the bullet-hungry 'TriMG' and magical-casting 'Epica'). V1 #FreeToPlay inbrowser on #Pico8 bbs and download(click)/cart/splore.

Practice: <controls_overlay>redDots show fingerRest positions; redPoppies(blackDotWithRedDots) show keys with tap/tap2/hold states; practice waves with f,u,h,i,g,j,y (recommended).

Survival: Keep your hp>0 for 400s. Score 웃---(least dmg taken per run) is saved at end of each successful run (lower is better; post me your best[the score to beat is 웃345.5]).

Sandbox: the waves section of the code has been partitioned and commented to allow easy modification should anyone wish to create a hardmode or alternative experience [copy code into external editor to view with formatting].

Requires keyboard+mouse; Controls are referenced using QWERTY layout; any layout will work provided there is no overlap with pico8 reserved keys(pause/menu/etc); Download+Original GameJam Version: https://cerbyo.itch.io/againsthecurrent-the-legend-of-the-chunchuntree; the download/cart/splore versions of the game feature better audio and performance.

Quickstart Guide (compliment with the ingame ui + practice):

  • Firing buttons 's' and 'lb'(leftMouseBtn) each have 3 keystate(tap/tap2/hold) depending on duration of keypress(topLeftBars).
  • Casting occurs when the rectangular bar appears above and you flash yellow; lb/rb cannot be used during.
  • Shift(used with 'a' and 'd') and spacebar(dodge) each have two keystates(tap/hold).
  • The default setting of blue triMG crosshairs means holding shift decreases the turnrate of 'a' & 'd' (sniping).
  • Basic brown has 100hp. You can use its own bullets against it to the following effect(key):dmg(hitsToKill)
    FriendlyFire():6(17)/BeeShield(w):24(5)/RageShield(r+w):48(3)/Dodged(spacebar):36(3)/BlueSparkles:xxx(1)
  • Dodging(spacebar) while staminaArc[100,-100] is yellow[49,25] assigns stamina(sta)=-100.
  • Foe that get into melee range become lickers: extra melee-damage, gain hp and speed(reverts on condition).
  • Orange armour can be burnt off or bypassed(r/tap s); but if your screen is too full their firepower can be managed through conditions/grenade/machinegunSpam.
  • Simplify: flameShield(rb)+machineGun(hold s)+dodge(spacebar) is solid build to compliment skillbar(123456qert) [see BuildList:DODGER].
  • Health(hp) regen methods:heal(6)[+30hp]/gunflame(3) on '2 lined-up foe'/lvlUp[+30hp]/spacebar aoe[+5hp].

Quickstart Techniques (gif left->right below):

  • SelfNading:dodge(space)[violet] or teleport(t)[blue] grenade impacts.
  • ChainDodging:double/triple(netshot(2))/quad(tricky!)dodges with optimized timing are good for melee range.
  • FlameCero:hold lb + volley(1)/tap lb/netshot(2).
  • BurningZombie:tap s till foe dead then hold lb to burn; grenade to reposition.
  • BlueVolley:combination of teleport(t)+volley(1)+cancel(~). Teleport(t) short distance from yourself then volley(1) into blueSparkles then just as casting is about to end you cancel(~) and then teleport(t) back to your old location and volley(1) again into the blueSparkles. Strong vs darkBlue.
  • BlueTags:shoot tags(tap s) into blueSparkles(t).
  • OrangeDrop:vs orange armour use volley(1) at 'pointBlankRange'(i.e. teleport(t)+volley(1)) or netshot(2)+pointblank+cero(tap s)).
  • Catching: flameShield(rb) converts 'all' bullets to sta; grenade it; teleport(t) and 'catch' bullets; catching trail-effects(dCannon/cero/volley/netshot/gunflame) regens ALL sta, gunflame(3) doesnt need teleport to catch.
  • Panic-mode-skills:BiteTheLip(hold spacebar); godmode(q); smoke(5)+gunflame(3) to clear screen & regen hp.
  • Hellmouth(i) Tips:[barriers]teleport behind(not melee-close tho) & use hitbox for bullet-defense; [ovens]create/pos burningZombies on the opening.

Ready for Survival? Spawn two Hellmouth(i) at once, if you can manage you are ready to (b)egin
[121x12]

◘Story◘ It is the year 305, an era of war. Wizards and cute cuddly animals have been fighting for years, with territory becoming heavily contested. You are a mobile-fortress-tree-unit, created by the Great Wizard ChunChun. One of many tree units created to defend territory against the furry menace...

...
THE MENNAcING Weasel Super Soldiers were ordinary rodents genetically modified in their early twenties by a diet of pure icecream. It was hoped that goopy stomachs and inflated cheek bones would make the body more resistant to all things magical. CODENAME:OPERATION_ICECREAM_GUT proved effectively beyond all skeptical belief, and the program quickly branched into various divisions of flavour: The YOLO black liquorice corps, the "I'll do anything that makes that guy uncomfortable" wasabi brigade, and the choco hungry basics whose leetest of members would dip themselves orange with thick heavey hardened caramel armour. But among these divisions, science found that some weasels (~.1% of the population) were born with NO TASTE BUDS! These weasels refused to eat ALL flavours of icecream...so the furry scientists developed an artificial cream....one so synethic and abnormal and devoid of all things natural and wholesome that it created a dangerous new breed of weasel known simply as..BUBBLE GUM BLUE!
Where Operation Icecream Gut offered weasels some protection against the magical arts, it made them fat, heavy, slow, and more vulnerable to traditional weaponry that normally only the whitest of wizards would dare to use. But as the war dragged on even the most based of Wizards began to equip their familiars with all manner of weaponry...
...
When Great Wizard ChunChun enchanted you, he gave the gift of conscience. You seemed a little, 'odd' though.. a bit, 'different' from the typical magically embued tree. For one, you had a panting tongue and bulging eyes...almost like a dog. And two, you drooled a lot -_-.
You see, self-watering, although certainly useful, was not a common trait in magical trees. And ChunChun, upon inspection of his creation, became concerned for his 'reputation'..
ChunChun had postulated the theory that your physical appearance may have implanted in your mind, sympathy, to the animal cause, or more accurately, the cause of choosing to 'not do anything' as the enemy passed by. An 'aloofness of the mind' was a less than ideal a trait for one to showcase in their magical arts.. So, better sorry than safe, ChunChun implanted in you the order TO DESTROY ALL THINGS FURRY!

Now ChunChun was not considered a wise wizard by normal wizarding conventions. But he wasn't stupid either. He knew his soft fluffy beard hair could be mistaken for the quality of fur. So he spent his dying moments writing this fact down on your barked skin as the last of his lifeforce oozed out of him all over his humiliating creation:

..So became the legend of the ChunChunTree, a glorious creation embued with godlike powers by the
 magnanimous high-wizard whose name will forever be remembered in fondness over any and all other 
singular moments in ti-...

..At least, that was the end of the script ChunChun had scribbled frantically on you as he gurgled his final breath.

Prophetic, Legendary, Accomplished! The words were not lost on you as the ages rolled by. Unfortunately, at the moment, it seems you are stuck in the present. The 'ages rolling by' were a long ways off, even more so with the heavy attractive stench of wizard blood all over you. 'You', a makeshift weapons platform, who is presently stuck in the current of a war you were never meant to survive..

You are the ChunChunTree. The enemy is coming. Prepare yourself!

Full Manual:

GUNS

[26x11]
TriMG(wasd+shift):
(w)BeeShield: reflects 'all' bullets adding a small dmg multiplier
(a|d)Turning: adjusts angle of fire
(s tap)Tag: bypasses orange armour; if no foe along current trajectory bullet turns towards nearest foe(ea turn drains life exploding on 0); creates zombie(block foe/bullet; burningZombie -50% life); rnd chance to inflict confusion/immobilize.
(s tap2)dCannon: fires two high-kinetic 50dmg shots [see: kinetics]
(s hold)Machinegun: decreases foe accuracy 'on-hit'; grants sta on-kill; rnd chance bypasses orange armour
(shift tap): toggles between blue(slow hold-TurnRate) and yellow(fast hold-TurnRate) crosshairs
(shift hold): modifies turnrate when using a|d based on crosshair colour
Rage(red triMG/eyes/bullets): TriMG attacks become red,unblockable,2Xdmg(tags 3Xdmg),increased kinetic-values (max 15s).

Epica(Mouse:lb+rb[lAlt/lCMD]+middle[c]):
(rb/lAlt/lCMD)FlameShield: absorbs all bullets+grants sta
(middle/c)Pulse: low dmg aoe that destroys enemy bullets; pulsing purple indicator around the hp-orb when available: can be spammed or used 2-4x individually; cd[10s] activates after all charges used.
(lb tap)Cero:cd[0.6s]pushes foe backwards; bonus dmg against immobilized foe; flameCero
(lb tap2)Grenade: increased dmg based on number of foe hit
(lb hold)Flame: burns orange armour; lights foe/cero/zombie onFire; types:green,purple(catchFireFaster+lowerBurnDmg),yellow(grantHP),violet(~2xdmg),blue(~10xdmg)
Alacrity(purple Epica): Half's cooldowns(red-text); Epica's modifier: 0.3cd on cero(2XfireRate) ; adds +1 to number of foe hit by grenade; enables purpleFlame and yellowFlameCero.

SKILLBAR

EpicaSkills:
[45x9]
(~)Cancel:/cd[5s] aka ~ tilde key: cancels any casting(yellow flashing/rect box overhead)
(1)Volley:/casting[3s]/cd[15s] During casting fires 46 lesser-cero; flameCero
(2/lCtrl)Netshot:/5dmg/casting[.25s]/cd[18s]Dodge after cast; On-hit:6s immobilize;+alacrity; flameCero
(3)Gunflame:/100dmg/piercing/confusion/casting[0.5s]/cd[16s] If, On-hit, there is a second foe along the current bullet trajectory gunflame turns red and grants +5hp continuing to the second foe, otherwise refires at rnd foe onScreen. Process repeats until gunflame misses[Can kill you].
(4)Gunbash:/100dps/confusion/cd[9s]/duration[~1s] On-hit +alacrity(perFrame), flings foe in cursor's direction with +bodyDmg[pinball mechanic]
(5)Smoke:/casting[.75s]/cd[60s]/duration[15s] Blinds 'most' foe causing them to mistake the player position.

Orb Display:
[20x14]
Orange[100,50]/yellow[49,25]/grey staminaArc[100,-100]
PurplePulsingRing(indicates if pulse(mb/c) available)
RedOrb/text## indicate current hp[99,0]

Spacebar:
[42x18]
(tap)Dodge:-50sta(=-100sta if yellowArc[49,25]); DodgedBullet(violet+friendlyFireOn+~2Xdmg); meleeDmg & single +5hp steal from foe inRange
(hold)BiteTheLip: ~70% chance to Dodge attack; slowly drains hp if >10hp; enables alacrity; friendlyFireOn for all fired bullet.

Spells:
[39x9]
(6)Heal:/casting[5s]cd[25s] +30 hp; resets gunflame(3) cooldown
(q)God:/cd[30s]/duration[6s](turn lightgreen) immunity to all damage
(e)Harden:/cd[40s]/duration[15s](turn pink) halfs incoming damage; +1 energy +1s alacrity when hit.
(r)Rage:/casting[2s]/cd[20s] TriMG attacks become red,unblockable,2x dmg(tags do 3xdmg) for +10s
(t)Teleport:/cd[1s] teleport to cursor's location; Icon changes to "R". Press again to return to original location cd[20s]. During both teleports the player leaves behind blueSparkles. 'Any' bullets passing through blueSparkles will turn blue receiving a massive damage multiplier.

Misc: v(toggle the background(bg) on/off); n(add tree); m(remove tree); n+m(reposition trees); ArrowKeyLeft/right(toggle cursors for epica); ArrowKeyUp/Down(toggle bg if bg on); comma(music on/off)

Leveling:(Sfx+redSparkles+spriteChange) levelUp grants +30hp, & up to lvl5 grants small maxHp boost up to 99hp.

KINETICS

[52x18]
Each bullet-type inflicts a kinetic value on a foe; this includes both an initial on-hit jiggle and a total kinetic which contains the values of all bullets from the last ~8frames of foe-life. The higher the value the farther+longer the body will fly backwards on death. Bodies flying backwards inflict damage and force on all foes that make contact. Higher ranges of kinetic value grant +exp and are represented by unique body and corpse sprites (original colour(3type)->+red->+red+blue->+purple->+flying->yellow). i.e. firing machinegun directly at foe without missing from 100%->0% hp(high kinetic value) vs missing sporadically(low kinetic value). You can gain up to an extra +6exp per kill, making 1 brown worth the exp of 4. Allows for something to be said about chronic overkill should you wish to train both guns on a single target.

FOES

[64x14]
Brown:100hp;default
Orange:200hp;armoured;slow;heavy-burst-machinegun;attacks fleeing foe;orange/armour removed via flames(turning brown);cero:explode unless pointBlank; flameCero cause onFire visually but no effects until brown.
Green:50hp;fast;higher chance to stop and blend in with trees
Commando/navyblue:150hp;variable curved movement;slow-firerate;decreased accuracy
Black:50hp;fastest;don't fire
Blue/bubbleGumBlue:500hp;increased firerate;decreased accuracy;circular movement
Hellmouth:indestructible tunnel opening appearing at set locations for preset duration; spawns browns; last few seconds has chance to spawn blacks.

Foe States(turns friendlyFireOn [except stopped/melee]; see smoke(5) for blinded):
[64x15]
☻Confused(white halo):walks back and forth firing in random directions
☻Immobilized(purple circle):stuck inplace for short time, changes fire direction
☻KnockedDown:upside down, still moves when onFire/body, changes fire direction
☻onFire:(rnd fireResist## drained via flames) Jiggles towards a rnd foe onScreen(if any), accuracy decreased, any foes touching may also catch fire.
☻Flee:(rnd chance if hp<rnd#) foe will whimper & attempt to limp away from the player position until they get offScreen, if foe remains onscreen for ~2s you get a rage-bonus on-kill, the longer the foe remains the larger the bonus(i.e. netshot/teleport/grenade can help). Orange will shoot any fleeing foe (hitting anything in the way). In SurvivalMode Hornblows cause all foe to flee.
☻Stopped:(rnd chance foe stops moving a rnd radius from player) stopped foe remain stationary until they are drained below a certain hp or displaced with certain bullets like cero; certain foe have increased/decreased chances of stopping(green/black).
☻Licking:foe in melee range will lick you, dealing extra damage, gaining hp+speed
☻Zombie:tag kills; duration:40s(onFire halves); low fireResist; blocks foe/bullet; reposition via grenade/cero

~~~~~~~~~~~~~~~~~~~~~~~ BuildList ~~~~~~~~~~~~~~~~~~~~~~~

○SHIELD HERO○

  • No 's' or 'lb', just shields+skillbar+etc

○FLAMING TAGS AND GREAT BALLS OF FIRE○

  • Tags+flame in unison as primary dmg
  • Reposition zombies via grenade/cero/tele for defense
  • Counter large wave with flameVolley and blueTags

○TWO-EYED-SNiPER○

  • Use dCannon+rage as primary dmg
  • Compliment with grenade spam to knock foes down to patiently wait their turn

○DODGER○

  • FlameShield(rb) as block to +sta
  • Grenade/cero/flame/shoot the flameShield to +sta
  • MachineGun as primary dmg to +sta
  • Dodge frequently to: create dodgedBullets(violet), clear licking foe +hp, gunflame+dodge to clear+hp

○GARDEN HOSE○

  • Machinegun+flame 24/7 [Note:suffers performance issues, use optimizations]
  • Rage+alacrity to boost effectiveness against specialty waves

~~~~~~~~~~~~~~~~~~~~~~~ Optimizations ~~~~~~~~~~~~~~~~~~~~~~~~

Remove Trees(m); Remove Background(v); Limit usage of the MachineGun(hold s)+flame(hold lb) at the same time esp during camera-move segments; kill foes fast and intuitively i.e. use grenades vs clumps, dcannon to snipe, gunflame to clear the screen, etc; casting smoke(5) will significantly improve performance when many foe onscreen(esp during camera-move segments).


https://www.youtube.com/watch?v=CZ6k9J8ebhU [Run: 345.5]

https://www.youtube.com/watch?v=4kFJHOE9AMk [twitterPromo]

Desire a more arcadey and roguelite experience with secret unlockable character/buffs/stats/weapon? Consider Teatime!

(https://www.lexaloffle.com/bbs/?tid=49365)

8


1

Gave this a star. Haven't played it yet, but I have to respect the crazy amount of work that initial post represents.😉


1

This game is Nurgle-approved. Star'd and fav'd.



[Please log in to post a comment]