//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(); }
//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(); }
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); } }
public PlayerSprite(Loc2D charLoc, Direction8 charDir, Gameplay.FormData data) : base(charLoc, charDir) { CharData = data; }
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); } }