public void UpdateFrame() { charFrameType = AnimFrameType; determineFrame = FrameMethod; drawOffset = new Loc(); dirOffset = Dir8.Down; opacity = 255; LocHeight = 0; UpdateFrameInternal(); }
public void UpdateDrawEffects(HashSet <DrawEffect> drawEffects) { if (AllowFrameTypeDrawEffects()) { if (drawEffects.Contains(DrawEffect.Hurt)) { charFrameType = GraphicsManager.HurtAction; determineFrame = totalFrameTickFrame; } else if (drawEffects.Contains(DrawEffect.Sleeping)) { charFrameType = GraphicsManager.SleepAction; determineFrame = totalFrameTickFrame; } else if (drawEffects.Contains(DrawEffect.Charging)) { charFrameType = GraphicsManager.ChargeAction; determineFrame = totalFrameTickFrame; } } if (drawEffects.Contains(DrawEffect.Absent)) { opacity = 0; } if (drawEffects.Contains(DrawEffect.Shaking)) { int sway = (int)(GraphicsManager.TotalFrameTick / (ulong)FrameTick.FrameToTick(1) % 8); drawOffset.X += (sway > 4) ? (6 - sway) : (sway - 2); } if (drawEffects.Contains(DrawEffect.Spinning)) { dirOffset = (Dir8)(GraphicsManager.TotalFrameTick / (ulong)FrameTick.FrameToTick(2) % 8); } if (drawEffects.Contains(DrawEffect.Stopped)) { determineFrame = zeroFrame; } }