public override void Apply(CharSheet sheet, int anim) { for (int ii = 0; ii < sheet.AnimData[anim].Sequences.Count; ii++) { DirH dirH; DirV dirV; DirExt.Separate((Dir8)ii, out dirH, out dirV); if (dirH == DirH.Left && !StartRight || dirH == DirH.Right && StartRight) { dirH = dirH.Reverse(); Dir8 flipDir = DirExt.Combine(dirH, dirV); List <CharAnimFrame> frames = new List <CharAnimFrame>(); for (int jj = 0; jj < sheet.AnimData[anim].Sequences[ii].Frames.Count; jj++) { CharAnimFrame origFrame = sheet.AnimData[anim].Sequences[ii].Frames[jj]; CharAnimFrame newFrame = new CharAnimFrame(origFrame); newFrame.Flip = !newFrame.Flip; newFrame.Offset = new Loc(-newFrame.Offset.X, newFrame.Offset.Y); newFrame.ShadowOffset = new Loc(-newFrame.ShadowOffset.X, newFrame.ShadowOffset.Y); frames.Add(newFrame); } sheet.AnimData[anim].Sequences[(int)flipDir].Frames = frames; } } sheet.Collapse(false, true); }
public override void Apply(CharSheet sheet, int anim) { for (int ii = 0; ii < sheet.AnimData[anim].Sequences.Count; ii++) { CharAnimFrame firstFrame = sheet.AnimData[anim].Sequences[ii].Frames[0]; Loc diff = StandardCenter - firstFrame.ShadowOffset; for (int jj = 0; jj < sheet.AnimData[anim].Sequences[ii].Frames.Count; jj++) { CharAnimFrame origFrame = sheet.AnimData[anim].Sequences[ii].Frames[jj]; CharAnimFrame newFrame = new CharAnimFrame(origFrame); newFrame.Offset = newFrame.Offset + diff; newFrame.ShadowOffset = newFrame.ShadowOffset + diff; sheet.AnimData[anim].Sequences[ii].Frames[jj] = newFrame; } } sheet.Collapse(false, true); }
public override void Apply(CharSheet sheet, int anim) { CharAnimGroup charAnim = new CharAnimGroup(); if (anim == 40) { charAnim.InternalIndex = 8; charAnim.HitFrame = 5; charAnim.ReturnFrame = 5; for (int ii = 0; ii < sheet.AnimData[GraphicsManager.IdleAction].Sequences.Count; ii++) { CharAnimSequence newSequence = new CharAnimSequence(); int curEndTime = 0; for (int jj = 0; jj < DirExt.DIR8_COUNT + 1; jj++) { curEndTime += swing_durations[jj]; CharAnimSequence sequence = sheet.AnimData[GraphicsManager.IdleAction].Sequences[(ii + jj) % DirExt.DIR8_COUNT]; CharAnimFrame frame = new CharAnimFrame(sequence.Frames[0]); frame.Offset = frame.Offset + swing_offsets[ii, jj]; frame.ShadowOffset = frame.ShadowOffset + swing_shadows[ii, jj]; frame.EndTime = curEndTime; newSequence.Frames.Add(frame); } charAnim.Sequences.Add(newSequence); } } else if (anim == 41) { charAnim.InternalIndex = 9; for (int ii = 0; ii < sheet.AnimData[GraphicsManager.IdleAction].Sequences.Count; ii++) { CharAnimSequence sequence = sheet.AnimData[GraphicsManager.IdleAction].Sequences[ii]; CharAnimSequence newSequence = new CharAnimSequence(); int curEndTime = 0; for (int jj = 0; jj < double_durations.Length; jj++) { curEndTime += double_durations[jj]; CharAnimFrame frame = new CharAnimFrame(sequence.Frames[0]); frame.Offset = frame.Offset + double_offsets[ii, jj]; frame.ShadowOffset = frame.ShadowOffset + double_shadows[ii, jj]; frame.EndTime = curEndTime; newSequence.Frames.Add(frame); } charAnim.Sequences.Add(newSequence); } } else if (anim == 42) { charAnim.InternalIndex = 12; charAnim.HitFrame = 8; for (int ii = 0; ii < sheet.AnimData[GraphicsManager.IdleAction].Sequences.Count; ii++) { CharAnimSequence newSequence = new CharAnimSequence(); int curEndTime = 0; for (int jj = 0; jj < DirExt.DIR8_COUNT + 1; jj++) { curEndTime += 2; CharAnimSequence sequence = sheet.AnimData[GraphicsManager.IdleAction].Sequences[(ii + jj) % DirExt.DIR8_COUNT]; CharAnimFrame frame = new CharAnimFrame(sequence.Frames[0]); frame.EndTime = curEndTime; newSequence.Frames.Add(frame); } charAnim.Sequences.Add(newSequence); } } sheet.AnimData[anim] = charAnim; }