Esempio n. 1
0
 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);
 }
Esempio n. 2
0
 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);
 }
Esempio n. 3
0
        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;
        }