<?xml version="1.0"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:t="types">
	<xs:import schemaLocation="../Types.xsd" namespace="types"/>
	<xs:include schemaLocation="../Types/WeaponSlotEnum.xsd"/>

	<xs:complexType name="WeaponStateEnum" mixed="true">
		<xs:complexContent>
			<xs:extension base="t:enum">
				<xs:choice>
					<xs:element name="Idle" type="t:int" fixed="0" minOccurs="0"/>
					<xs:element name="Firing" type="t:int" fixed="1" minOccurs="0"/>
					<xs:element name="Reloading" type="t:int" fixed="2" minOccurs="0"/>
				</xs:choice>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:element name="SidearmWeapon">
		<xs:complexType>
			<xs:all>
				<xs:element name="Slot" type="WeaponSlotEnum" minOccurs="0"/>
				<xs:element name="MagazineAmmo" type="t:int" minOccurs="0">
					<xs:annotation><xs:documentation>Ammo currently loaded into the magazine</xs:documentation></xs:annotation>
				</xs:element>
				<xs:element name="MagazineSize" type="t:int" minOccurs="0">
						<xs:annotation><xs:documentation>Max number of rounds in a magazine</xs:documentation></xs:annotation>
				</xs:element>
				<xs:element name="BaseDamage" type="t:double" minOccurs="0">
					<xs:annotation><xs:documentation>Damage dealt if all shotgun pellets hit</xs:documentation></xs:annotation>
				</xs:element>
				<xs:element name="RPM" type="t:double" minOccurs="0">
					<xs:annotation><xs:documentation>Rate of fire in rounds per minute</xs:documentation></xs:annotation>
				</xs:element>
				<xs:element name="Automatic" type="t:bool" minOccurs="0"/>
				<xs:element name="ViewPunch" type="t:float" minOccurs="0">
					<xs:annotation><xs:documentation>View punch in radians for each shell fired</xs:documentation></xs:annotation>
				</xs:element>
				<xs:element name="MaxTravelAngle" type="t:float" minOccurs="0">
					<xs:annotation><xs:documentation>Maximum vertical aim travel angle in radians</xs:documentation></xs:annotation>
				</xs:element>
				<xs:element name="ViewReturnSpeed" type="t:float" minOccurs="0">
					<xs:annotation><xs:documentation>The speed in radians per second the view returns to its original position after being punched</xs:documentation></xs:annotation>
				</xs:element>
				<xs:element name="ReloadTime" type="t:double" minOccurs="0">
					<xs:annotation><xs:documentation>Time it takes to load ONE SHELL into the weapon in seconds</xs:documentation></xs:annotation>
				</xs:element>
				<xs:element name="EquipTime" type="t:double" minOccurs="0">
					<xs:annotation><xs:documentation>Time it takes from selecting the weapon until it's ready to fire</xs:documentation></xs:annotation>
				</xs:element>
				<xs:element name="TriggerHeld" type="t:bool" minOccurs="0"/>
				<xs:element name="FireCooldown" type="t:double" minOccurs="0"/>
				<xs:element name="ReloadQueued" type="t:bool" minOccurs="0"/>
				<xs:element name="IsReloading" type="t:bool" minOccurs="0"/>
				<xs:element name="ReloadTimer" type="t:double" minOccurs="0"/>
				<xs:element name="CurrentTravel" type="t:float" minOccurs="0"/>
			</xs:all>
		</xs:complexType>
	</xs:element>
</xs:schema>
