)onLevelLoadedc1Cannon%this$p1Cannonmountp1CannonPlayer1ImagesetEnabledcreateProjectileCannonballt2dStaticSpritescenegraphclassplayershootProjectileenableUpdateCallbacksetImageMapcannonballImageMap1setSizegetRotation%facing_angle_degsetRotationsetLayersetCollisionActivesetCollisionPhysicssetCollisionCallbacksetCollisionPolyCustomsetPositionXgetPositionXsetPositionYgetPositionY%facing_angle_radsetLinearVelocityPolar$speedmultiplier1setDampinggetCurrentCameraAreasceneWindow2d%cameraViewBoundssetWorldLimitkillgetWordgetWidthgetHeightonUpdate$initialspeed$distancetravelledVectorDistgetPosition$currentDistancealxPlayExplosion1$CannonballImpactHandleCannonexplodesafeDelete$damagedone$currentWidthonCollision%dstObjPlayer2Image$correctdistdealDamage%srcObj$correctdist3$GrenadeImpactp2HandletreeFiret2dParticleEffect%cannonExplodeEffectloadEffectsetEffectLifeModesetPositionplayEffect%treeBurn1getBehavior%victim%takesDamageisObjecttakeDamage%amount10.50536-0.388 -0.4030.083 -0.5600.570 -0.1620.467 0.452-0.177 0.594-0.594 0.1622Player2trees~/data/particles/cannonExplosion.effKILL~/data/particles/campfire.effTakesDamageAdvBehavior f@" @V@4@@?(@r@?@D@>@?K>"(#+9PEOEOCOCOCOCOCOCOCOG9PEOCOG9 @PEOCOz"(,/3H-/M69EH-/M69"(H-/M69>H"(,/M69P"(,/3OG9 6P"(OG9P"(OEOG9P"(OC OC OG9P"(OG#+9P"(O"(OG9P"(OC OG9P"(OCOCOG9P"(OCOCOG9P"(OCOG9P"(OC OCOCOC*OC7OCCOCPOG9P"(OP"(,/3OGOG9P"(OP"(,/3OGOG9P"(OG#+9AA"' #*P"(OCOG#+9P"(OF8+ P"(O"(O"(OG9  1=F "#$ %'7(O)g*t+,.2357>9K;Y<a>g@ACDEFIJOPR:VJXWYr[\]^`cefhi lsuDvQw^xnyz *+=V9#-  1~jMtAp`SFb#YB 4!ouZ=I/H'G!FEDCK,B<m|kxnyf]wZVyd\LHQNC719.() 0 #"A~c^fKsFO3:& Zyqm6rZBhO_d=8{Z83_jP)kJN?C9'-6ct-3 i15 u/*j=VQ>9 }mVE @