public Texture2D GetWeapon(bool isBow = false) { WeaponSpriteType type = WeaponSpriteType.Standing; switch (charRef.State) { case CharacterActionState.Walking: switch (_data.walkFrame) { case 1: type = WeaponSpriteType.WalkFrame1; break; case 2: type = WeaponSpriteType.WalkFrame2; break; case 3: type = WeaponSpriteType.WalkFrame3; break; case 4: type = WeaponSpriteType.WalkFrame4; break; } break; case CharacterActionState.Attacking: if (isBow) { switch (_data.attackFrame) { case 1: type = WeaponSpriteType.Shooting; break; case 2: type = WeaponSpriteType.Standing; break; } } else { switch (_data.attackFrame) { case 1: type = WeaponSpriteType.SwingFrame1; break; case 2: type = _data.facing == EODirection.Down || _data.facing == EODirection.Right ? WeaponSpriteType.SwingFrame2Spec : WeaponSpriteType.SwingFrame2; break; } } break; case CharacterActionState.SpellCast: type = WeaponSpriteType.SpellCast; break; case CharacterActionState.Sitting: return(null); //no weapon when sitting } short baseWeaponValue = (short)((_data.weapon - 1) * 100); GFXTypes gfxFile = _data.gender == 0 ? GFXTypes.FemaleWeapons : GFXTypes.MaleWeapons; int factor = (_data.facing == EODirection.Down || _data.facing == EODirection.Right) ? 0 : 1; factor *= getFactor(type); int gfxNumber = baseWeaponValue + (int)type + factor; return(GFXLoader.TextureFromResource(gfxFile, gfxNumber, true)); }
private int getFactor(WeaponSpriteType type) { switch (type) { case WeaponSpriteType.WalkFrame1: case WeaponSpriteType.WalkFrame2: case WeaponSpriteType.WalkFrame3: case WeaponSpriteType.WalkFrame4: return(4); case WeaponSpriteType.SwingFrame1: case WeaponSpriteType.SwingFrame2: return(2); } return(1); }
private int GetOffsetBasedOnState(WeaponSpriteType type) { switch (type) { case WeaponSpriteType.WalkFrame1: case WeaponSpriteType.WalkFrame2: case WeaponSpriteType.WalkFrame3: case WeaponSpriteType.WalkFrame4: return(4); case WeaponSpriteType.SwingFrame1: case WeaponSpriteType.SwingFrame2: return(2); } return(1); }
private int getFactor(WeaponSpriteType type) { switch (type) { case WeaponSpriteType.WalkFrame1: case WeaponSpriteType.WalkFrame2: case WeaponSpriteType.WalkFrame3: case WeaponSpriteType.WalkFrame4: return 4; case WeaponSpriteType.SwingFrame1: case WeaponSpriteType.SwingFrame2: return 2; } return 1; }