From 144421e9ce45672d3c0bbbba154494aaf39dcb66 Mon Sep 17 00:00:00 2001 From: "sigonasr2, Sig, Sigo" Date: Mon, 27 Jun 2022 18:29:24 +0000 Subject: [PATCH] Fix intent of hitstun stagger jittering display. Also add in prep support for screen water ripples Co-authored-by: r3cp3ct <45179536+r3cp3ct@users.noreply.github.com> Co-authored-by: sigonasr2 --- bin/RabiClone.jar | Bin 296690 -> 296748 bytes src/sig/objects/LevelRenderer.java | 46 ++++++++++++++++++++++++++--- 2 files changed, 42 insertions(+), 4 deletions(-) diff --git a/bin/RabiClone.jar b/bin/RabiClone.jar index 2c2cbc260bcdc18038af1e1df3aee0ecf538031f..fc7db0996d6686fc47dcc53cd2d35bdd60a1ecb4 100644 GIT binary patch delta 9267 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 Tli}YB*(jm9HCz||^-T4DJ*O6c delta 9480 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 diff --git a/src/sig/objects/LevelRenderer.java b/src/sig/objects/LevelRenderer.java index a6bedf1..0373b4d 100644 --- a/src/sig/objects/LevelRenderer.java +++ b/src/sig/objects/LevelRenderer.java @@ -21,15 +21,20 @@ import sig.map.Tile; import sig.objects.actor.PhysicsObject; import sig.objects.actor.RenderedObject; import sig.objects.actor.State; -import sig.utils.TimeUtils; public class LevelRenderer extends Object{ - final static long staggerJitterWaitTime=TimeUtils.millisToNanos(200); + final static double staggerJitterWaitTime=0.05; - long staggerTimer=0; + double staggerTimer=0; int staggerOffsetX=2; + public final static byte MAX_RIPPLE_SIZE = (byte)4; + public final static byte RIPPLE_CHANCE = (byte)3; + //Ripples will store bit 8 for the direction the ripple is moving. Bits 1-7 are used as the actual value for ripples up to 64 in size (Half used for movement in each direction). + byte[] ripples = new byte[RabiClone.BASE_HEIGHT/MAX_RIPPLE_SIZE]; + long nextRipple = 0; + public LevelRenderer(Panel panel) { super(panel); this.setSprite(Sprite.TILE_SHEET); @@ -52,8 +57,41 @@ public class LevelRenderer extends Object{ } } } - if (RabiClone.TIME-staggerTimer>staggerJitterWaitTime) { + if ((staggerTimer-=updateMult)<=0) { staggerOffsetX*=-1; + staggerTimer=staggerJitterWaitTime; + } + if ((nextRipple-=updateMult)<0) { + if (Math.random()*RIPPLE_CHANCE<1) { + int selectedIndex=((int)Math.random()*ripples.length); + if (ripples[selectedIndex]==0) { + if (Math.random()<0.5) { + ripples[selectedIndex]=(byte)(MAX_RIPPLE_SIZE|0b10000000); + } else { + ripples[selectedIndex]=(byte)(MAX_RIPPLE_SIZE|0b00000000); + } + } + } + for (int i=0;i>>7==1) { + //We are moving left. + ripples[i]=(byte)((ripples[i]&0b10000000)+((ripples[i]&0b1111111)-1)); + if ((ripples[i]&0b1111111)==0) //Flip the sign. + { + ripples[i]=(byte)(((ripples[i]&0b1111111)+1)); + } + } else { + //We are moving right. + ripples[i]=(byte)((ripples[i]&0b10000000)+((ripples[i]&0b1111111)+1)); + if ((ripples[i]&0b1111111)==MAX_RIPPLE_SIZE*2) //Flip the sign. + { + ripples[i]=(byte)((ripples[i]&0b10000000)+((ripples[i]&0b1111111)-1)); + } + } + } + } + nextRipple=1; } }