示例#1
0
 //draw offset, height offset, and frame are determined on runtime based on
 //-CurrentAction
 //-ActionTime
 //-CharDir
 public CharSprite(Loc2D charLoc, Direction8 charDir)
 {
     this.charLoc = charLoc;
     this.CharDir = charDir;
     this.ActionDone = true;
     //everything else at default values
     //CharData.Species, CharData.Form, CharData.Shiny, CharData.Gender is 0 for now
     CharData = new Gameplay.FormData();
 }
示例#2
0
 //draw offset, height offset, and frame are determined on runtime based on
 //-CurrentAction
 //-ActionTime
 //-CharDir
 public CharSprite(Loc2D charLoc, Direction8 charDir)
 {
     CharLoc    = charLoc;
     CharDir    = charDir;
     ActionDone = true;
     //everything else at default values
     //CharData.Species, CharData.Form, CharData.Shiny, CharData.Gender is 0 for now
     CharData = new Gameplay.FormData();
 }
示例#3
0
        public static RenderTime GetPassTime(Gameplay.FormData charData, Direction8 dir, ActionType actionType)
        {
            switch (actionType)
            {
            case ActionType.None:
                return(RenderTime.FromMillisecs(1000));

            case ActionType.Idle:
                return(RenderTime.FromMillisecs(0));

            case ActionType.Walk:
                return(RenderTime.FromMillisecs(200));

            case ActionType.Attack:
            case ActionType.AltAttack:
                return(RenderTime.FromMillisecs(200));

            case ActionType.SpAttack:
            case ActionType.SpAttackShoot:
                return(RenderTime.FromMillisecs(200));

            case ActionType.SpAttackCharge:
                return(RenderTime.FromMillisecs(280));

            case ActionType.Sleeping:
            case ActionType.Hurt:
            case ActionType.Defeated:
            case ActionType.Throw:
            case ActionType.Item:
            case ActionType.Jump:
            case ActionType.JumpHit:
            case ActionType.Deflect:
            case ActionType.Knockback:
                return(GetActionTime(charData, dir, actionType));

            default:
                return(RenderTime.Zero);
            }
        }
示例#4
0
 public PlayerSprite(Loc2D charLoc, Direction8 charDir, Gameplay.FormData data)
     : base(charLoc, charDir)
 {
     CharData = data;
 }
示例#5
0
        public static RenderTime GetActionTime(Gameplay.FormData charData, Direction8 dir, ActionType actionType)
        {
            switch (actionType)
            {
            case ActionType.None:
                return(RenderTime.FromMillisecs(1000));

            case ActionType.Idle:
            {
                int frames = TextureManager.GetSpriteSheet(charData.Species, charData.Form, charData.Shiny, charData.Gender).FrameData.GetFrameCount(FrameType.Idle, dir);

                return(IDLE_FRAME_LENGTH * frames);
            }

            case ActionType.Walk:
            {
                RenderTime passTime = GetPassTime(charData, dir, actionType);
                int        frames   = TextureManager.GetSpriteSheet(charData.Species, charData.Form, charData.Shiny, charData.Gender).FrameData.GetFrameCount(FrameType.Walk, dir);

                if (frames == 0)
                {
                    return(GetPassTime(charData, dir, actionType));
                }

                int totalFrames = frames;
                while (WALK_FRAME_LENGTH * frames < passTime)
                {
                    totalFrames += frames;
                }
                return(WALK_FRAME_LENGTH * totalFrames);
            }

            case ActionType.Attack:
            case ActionType.AttackArm:
            case ActionType.AltAttack:
                return(RenderTime.FromMillisecs(400));

            case ActionType.SpAttack:
            case ActionType.SpAttackShoot:
                return(RenderTime.FromMillisecs(480));

            case ActionType.SpAttackCharge:
                return(RenderTime.FromMillisecs(320));

            case ActionType.Sleeping:
                return(RenderTime.FromMillisecs(1000));

            case ActionType.Hurt:
                return(RenderTime.FromMillisecs(360));

            case ActionType.Defeated:
                return(RenderTime.FromMillisecs(720));

            case ActionType.Throw:
                return(RenderTime.FromMillisecs(200));

            case ActionType.Item:
                return(RenderTime.FromMillisecs(200));

            case ActionType.Jump:
                return(RenderTime.FromMillisecs(300));

            case ActionType.JumpHit:
                return(RenderTime.FromMillisecs(600));

            case ActionType.Deflect:
                return(RenderTime.FromMillisecs(600));

            case ActionType.Knockback:
                return(RenderTime.FromMillisecs(80));

            default:
                return(RenderTime.Zero);
            }
        }