class RequestStatsBB extends PlayerScriptableSystemRequest
{

	public function Set( _owner : weak< GameObject > )
	{
		owner = _owner;
	}

}

class AddExperience extends PlayerScriptableSystemRequest
{
	var m_amount : Int32;
	var m_experienceType : gamedataProficiencyType;
	var m_debug : Bool;

	public function Set( _owner : weak< GameObject >, expAmount : Int32, type : gamedataProficiencyType, isDebug : Bool )
	{
		owner = _owner;
		m_amount = expAmount;
		m_experienceType = type;
		m_debug = isDebug;
	}

}

class QueueCombatExperience extends PlayerScriptableSystemRequest
{
	var m_amount : Float;
	var m_experienceType : gamedataProficiencyType;
	var m_entity : EntityID;
}

class ProcessQueuedCombatExperience extends PlayerScriptableSystemRequest
{
	var m_entity : EntityID;

	public function Set( _owner : weak< GameObject >, entity : EntityID )
	{
		owner = _owner;
		m_entity = entity;
	}

}

class SetProficiencyLevel extends PlayerScriptableSystemRequest
{
	var m_newLevel : Int32;
	var m_proficiencyType : gamedataProficiencyType;
	var m_telemetryLevelGainReason : telemetryLevelGainReason;

	public function Set( _owner : weak< GameObject >, level : Int32, type : gamedataProficiencyType, telemetryGainReason : telemetryLevelGainReason )
	{
		owner = _owner;
		m_newLevel = level;
		m_proficiencyType = type;
		m_telemetryLevelGainReason = telemetryGainReason;
	}

}

import class LevelUpProficiency extends PlayerScriptableSystemRequest
{
	import var proficiencyType : gamedataProficiencyType;

	public function Set( _owner : weak< GameObject >, type : gamedataProficiencyType )
	{
		owner = _owner;
		proficiencyType = type;
	}

}

class NewPerkActionRequest extends PlayerScriptableSystemRequest
{
	var m_perkType : gamedataNewPerkType;

	public function Set( _owner : weak< GameObject >, type : gamedataNewPerkType )
	{
		owner = _owner;
		m_perkType = type;
	}

}

class UnlockNewPerk extends NewPerkActionRequest
{
}

class LockNewPerk extends NewPerkActionRequest
{
}

class BuyNewPerk extends NewPerkActionRequest
{
}

class SellNewPerk extends NewPerkActionRequest
{
}

class NewPerkPoinsActionRequest extends PlayerScriptableSystemRequest
{
	var m_pointDiff : Int32;

	public function Set( _owner : weak< GameObject >, pointDiff : Int32 )
	{
		owner = _owner;
		m_pointDiff = pointDiff;
	}

}

class AddNewPerkPoints extends NewPerkPoinsActionRequest
{
}

class AddSpyTreePerkPoints extends NewPerkPoinsActionRequest
{
}

class AddSpyTreePowerUpPerkPoints extends NewPerkPoinsActionRequest
{
}

class BuyPerk extends PlayerScriptableSystemRequest
{
	var m_perkType : gamedataPerkType;

	public function Set( _owner : weak< GameObject >, type : gamedataPerkType )
	{
		owner = _owner;
		m_perkType = type;
	}

}

class RemovePerk extends PlayerScriptableSystemRequest
{
	var m_perkType : gamedataPerkType;

	public function Set( _owner : weak< GameObject >, type : gamedataPerkType )
	{
		owner = _owner;
		m_perkType = type;
	}

}

class RemoveAllPerks extends PlayerScriptableSystemRequest
{
	var m_unequipPerkItems : Bool;
	var m_removeCost : Bool;

	public function Set( _owner : weak< GameObject >, unequip : Bool, free : Bool )
	{
		owner = _owner;
		m_unequipPerkItems = unequip;
		m_removeCost = free;
	}

}

class ResetProgressionForNewPerks extends PlayerScriptableSystemRequest
{

	public function Set( _owner : GameObject )
	{
		owner = _owner;
	}

}

class UnlockPerkArea extends PlayerScriptableSystemRequest
{
	var m_perkArea : gamedataPerkArea;

	public function Set( _owner : weak< GameObject >, areaType : gamedataPerkArea )
	{
		owner = _owner;
		m_perkArea = areaType;
	}

}

class LockPerkArea extends PlayerScriptableSystemRequest
{
	var m_perkArea : gamedataPerkArea;

	public function Set( _owner : weak< GameObject >, areaType : gamedataPerkArea )
	{
		owner = _owner;
		m_perkArea = areaType;
	}

}

class IncreaseTraitLevel extends PlayerScriptableSystemRequest
{
	var m_trait : gamedataTraitType;

	public function Set( _owner : weak< GameObject >, traitType : gamedataTraitType )
	{
		owner = _owner;
		m_trait = traitType;
	}

}

class SetAttribute extends PlayerScriptableSystemRequest
{
	var m_statLevel : Float;
	var m_attributeType : gamedataStatType;

	public function Set( _owner : weak< GameObject >, level : Float, type : gamedataStatType )
	{
		owner = _owner;
		m_statLevel = level;
		m_attributeType = type;
	}

}

class BuyAttribute extends PlayerScriptableSystemRequest
{
	var m_attributeType : gamedataStatType;
	var m_grantAttributePoint : Bool;

	public function Set( _owner : weak< GameObject >, type : gamedataStatType, optional grantAttributePoint : Bool )
	{
		owner = _owner;
		m_attributeType = type;
		m_grantAttributePoint = grantAttributePoint;
	}

}

import class AddDevelopmentPoints extends PlayerScriptableSystemRequest
{
	import var amountOfPoints : Int32;
	import var developmentPointType : gamedataDevelopmentPointType;

	public function Set( _owner : weak< GameObject >, amount : Int32, type : gamedataDevelopmentPointType )
	{
		owner = _owner;
		amountOfPoints = amount;
		developmentPointType = type;
	}

}

class ModifyStatCheckPrereq extends PlayerScriptableSystemRequest
{
	var m_register : Bool;
	var m_statCheckState : StatCheckPrereqState;

	public function Set( _owner : weak< GameObject >, reg : Bool, statToCheck : StatCheckPrereqState )
	{
		owner = _owner;
		m_register = reg;
		m_statCheckState = statToCheck;
	}

}

class ModifySkillCheckPrereq extends PlayerScriptableSystemRequest
{
	var m_register : Bool;
	var m_skillCheckState : SkillCheckPrereqState;

	public function Set( _owner : weak< GameObject >, reg : Bool, checkState : SkillCheckPrereqState )
	{
		owner = _owner;
		m_register = reg;
		m_skillCheckState = checkState;
	}

}

class UpdatePlayerDevelopment extends PlayerScriptableSystemRequest
{
	var ForceRefresh : Bool;
	default ForceRefresh = false;

	public function Set( _owner : weak< GameObject > )
	{
		owner = _owner;
	}

}

class SetProgressionBuild extends PlayerScriptableSystemRequest
{
	var m_buildType : gamedataBuildType;
	var m_isDebug : Bool;

	public function Set( _owner : weak< GameObject >, build : gamedataBuildType )
	{
		m_buildType = build;
		owner = _owner;
	}

}

class BumpNetrunnerMinigameLevel extends PlayerScriptableSystemRequest
{
	var completedMinigameLevel : Int32;

	public function Set( _owner : weak< GameObject >, value : Int32 )
	{
		owner = _owner;
		completedMinigameLevel = value;
	}

}

class RefreshPerkAreas extends PlayerScriptableSystemRequest
{

	public function Set( _owner : weak< GameObject > )
	{
		owner = _owner;
	}

}

class ClearAllDevPointsRequest extends PlayerScriptableSystemRequest
{

	public function Set( _owner : weak< GameObject > )
	{
		owner = _owner;
	}

}

importonly class questSetProgressionBuildRequest extends PlayerScriptableSystemRequest
{
	import var buildID : TweakDBID;
}

importonly class gameSetProgressionBuildRequest extends PlayerScriptableSystemRequest
{
	import var buildID : TweakDBID;
}

importonly class questSetLifePathRequest extends PlayerScriptableSystemRequest
{
	import var lifePathID : TweakDBID;
}

class ReinitializeProficiencies extends PlayerScriptableSystemRequest
{
}

