package RTDB
using Shooter

ShooterLevelList
{
	fk< ShooterLevel >[] data = 
	[
		"Shooter.Westbrook01_part1", "Shooter.Westbrook02_part1", "Shooter.Westbrook03_part1", "Shooter.Westbrook01_part2", "Shooter.Westbrook02_part2", "Shooter.Westbrook03_part2", "Shooter.Pacifica01_part1", "Shooter.Pacifica02_part1", "Shooter.Pacifica03_part1", "Shooter.Pacifica01_part2", "Shooter.Pacifica02_part2", "Shooter.Pacifica03_part2", "Shooter.CityCenter01", "Shooter.CityCenter02", "Shooter.CityCenter03", "Shooter.Badlands01", "Shooter.Badlands02", "Shooter.Badlands03"
	];
}

ShooterLevel
{
	string levelWidget = "base\gameplay\gui\world\arcade_games\shooter\level\shooter_test_level.inkwidget";
	string platformLibrary = "base\gameplay\gui\world\arcade_games\shooter\shooter_minigame_platform.inkwidget";
	ResRef[] preLoadedResourceList = [];
	string variantType = "Animal";
	int levelNumber = 0;
	fk< ShooterBackground > background = "";
}

ShooterGameplay : ArcadeGameplay
{
	CName playerTDBID = "Shooter.DefaultPlayerControllerData";
	CName meleeTDBID = "Shooter.DefaultMelee";
	CName rangeTDBID = "Shooter.DefaultRange";
	CName rangeGrenadeTDBID = "Shooter.DefaultRangeGrenade";
	CName flyingDroneTDBID = "Shooter.DefaultFlyingDrone";
	CName spiderDroneTDBID = "Shooter.DefaultSpiderDrone";
	CName transporterTDBID = "Shooter.DefaultTransporter";
	CName ninjaTDBID = "Shooter.DefaultNinja";
	CName meatheadTDBID = "Shooter.DefaultMeathead";
	CName basiliskTDBID = "Shooter.DefaultBasilisk";
	CName powerupDroneTDBID = "Shooter.DefaultPowerupDrone";
	CName shieldDroneTDBID = "Shooter.DefaultShieldDrone";
	CName attackDroneTDBID = "Shooter.DefaultAttackDrone";
	CName vipTDBID = "Shooter.DefaultVIP";
	CName vipPlatTDBID = "Shooter.DefaultVIPPlat";
	CName pickUpTransporterTDBID = "Shooter.DefaultPickUpTransporter";
	CName rescueTransporterTDBID = "Shooter.DefaultRescueTransporter";
	CName landMineTDBID = "Shooter.DefaultLandmine";
	CName barrelTDBID = "Shooter.DefaultBarrel";
	arcadeGameplaySilentBackgroundMusic = "mus_roach_race_silent";
	arcadeGameplayPausedSFX = "ui_arcade_game_run_and_gun_pause";
	CName arcadeShooterStartMusic = "mus_arcade_shooter_START";
	CName arcadeShooterStopMusic = "mus_arcade_shooter_STOP";
	CName arcadeShooterGameplayMusic = "mus_arcade_shooter_game";
	CName arcadeShooterMenuMusic = "mus_arcade_shooter_menu";
}

ShooterPlayerData
{
	int maxHealth = 0;
	float movementSpeed = 0.0f;
	float gravity = 0.0f;
	float jumpSpeed = 0.0f;
	float invincibleTime = 0.0f;
	float cutSceneDelay = 0.0f;
	float colliderAnchorPointOffset = 0.0f;
	Vector2 proneSize = ( 0.f, 0.f );
	Vector2 jumpSize = ( 0.f, 0.f );
	float baseMemberFollowDelay = 0.0f;
	float startMoveLerpTime = 0.0f;
	float endMoveLerpTime = 0.0f;
	float squadDistanceCap = 0.0f;
	float minOpacity = 0.0f;
	float fadeTime = 0.0f;
	float analogThreshold = 0.0f;
	ResRef arTextureAtlas = "";
	ResRef lmgTextureAtlas = "";
	ResRef sgTextureAtlas = "";
	ResRef lsTextureAtlas = "";
	ResRef mlTextureAtlas = "";
	CName defaultWeapon = "";
	CName sfxDamage = "";
	CName sfxDead = "";
	CName sfxJump = "";
}

ShooterWeaponData
{
	CName name = "";
	ResRef imageTextureAtlas = "";
	CName imageTexturePart = "";
	ResRef upgradedBulletTextureAtlas = "";
	CName upgradedBulletTexturePart = "";
	float interval = 0.0f;
	float cooldown = 0.0f;
	int rounds = 0;
	float value = 0.0f;
	float upgradedValue = 0.0f;
	float specialValue = 0.0f;
	CName sfxShoot = "";
}

ShooterBackground
{
	CName startSFX = "";
	CName stopSFX = "";
	fk< ShooterLayerInfo >[] layerList = [];
}

ShooterLayerInfo
{
	ResRef imageTextureAtlas = "";
	CName imageTexturePart = "";
	CName imageName = "";
}

ShooterObject : ArcadeObject
{
	float score = 0.0f;
	float gravity = 0.0f;
	float max_gravity = 0.0f;
}

ShooterAI : ShooterObject
{
	string libraryWidget = "base\gameplay\gui\world\arcade_games\shooter\shooter_minigame_ai.inkwidget";
	imageAnchorPoint = ( 0.5f, 1.0f );
	float health = 1.0f;
	float moveSpeed = 0.0f;
	float collisionDelay = 1.0f;
	gravity = 0.0f;
	max_gravity = 0.0f;
	CName sfxDead = "";
	CName sfxDamage = "";
}

ShooterProjectileAI : ShooterAI
{
	float fireDelay = 0.0f;
}

ShooterMelee : ShooterAI
{
	float detectionRange = 0.0f;
	ResRef tigerVariant = "base\gameplay\gui\world\arcade_games\shooter\art\characters\tyger_claws\tc_melee.inkatlas";
	ResRef animalVariant = "base\gameplay\gui\world\arcade_games\shooter\art\characters\animals\animals_melee.inkatlas";
	ResRef wraithVariant = "base\gameplay\gui\world\arcade_games\shooter\art\characters\wraiths\wraiths_melee.inkatlas";
	ResRef tigerVariant2 = "base\gameplay\gui\world\arcade_games\shooter\art\characters\tyger_claws\tc_melee_b.inkatlas";
	ResRef animalVariant2 = "base\gameplay\gui\world\arcade_games\shooter\art\characters\animals\animals_melee_b.inkatlas";
	ResRef wraithVariant2 = "base\gameplay\gui\world\arcade_games\shooter\art\characters\wraiths\wraiths_melee_b.inkatlas";
}

ShooterRange : ShooterProjectileAI
{
	float detectionRange = 0.0f;
	float heliDetectionRange = 0.0f;
	float fireRate = 0.0f;
	ResRef tigerVariant = "base\gameplay\gui\world\arcade_games\shooter\art\characters\tyger_claws\tc_range.inkatlas";
	ResRef animalVariant = "base\gameplay\gui\world\arcade_games\shooter\art\characters\animals\animals_range.inkatlas";
	ResRef wraithVariant = "base\gameplay\gui\world\arcade_games\shooter\art\characters\wraiths\wraiths_range.inkatlas";
	ResRef tigerVariant2 = "base\gameplay\gui\world\arcade_games\shooter\art\characters\tyger_claws\tc_range_b.inkatlas";
	ResRef animalVariant2 = "base\gameplay\gui\world\arcade_games\shooter\art\characters\animals\animals_range_b.inkatlas";
	ResRef wraithVariant2 = "base\gameplay\gui\world\arcade_games\shooter\art\characters\wraiths\wraiths_range_b.inkatlas";
}

ShooterRangeGrenade : ShooterProjectileAI
{
	float detectionRange = 0.0f;
	float heliDetectionRange = 0.0f;
	float fireRate = 0.0f;
	ResRef tigerVariant = "base\gameplay\gui\world\arcade_games\shooter\art\characters\tyger_claws\tc_range2.inkatlas";
	ResRef animalVariant = "base\gameplay\gui\world\arcade_games\shooter\art\characters\animals\animals_range2.inkatlas";
	ResRef wraithVariant = "base\gameplay\gui\world\arcade_games\shooter\art\characters\wraiths\wraiths_range2.inkatlas";
	ResRef tigerVariant2 = "base\gameplay\gui\world\arcade_games\shooter\art\characters\tyger_claws\tc_range2_b.inkatlas";
	ResRef animalVariant2 = "base\gameplay\gui\world\arcade_games\shooter\art\characters\animals\animals_range2_b.inkatlas";
	ResRef wraithVariant2 = "base\gameplay\gui\world\arcade_games\shooter\art\characters\wraiths\wraiths_range2_b.inkatlas";
}

ShooterFlyingDrone : ShooterProjectileAI
{
	float bobbing = 0.0f;
	float detectionRange = 0.0f;
	float fireRate = 0.0f;
}

ShooterSpiderDrone : ShooterAI
{
	float attackDistance = 0.0f;
	float attackSpeed = 0.0f;
}

ShooterNPCDrone : ShooterAI
{
	float bobbing = 0.0f;
	float duration = 0.0f;
	float fireRate = 0.0f;
	score = 100.0f;
}

ShooterVIP : ShooterAI
{
	float spawnDuration = 1.25f;
}

ShooterTransporter : ShooterAI
{
	float dropSpeed = 0.0f;
}

ShooterRescueTransporter : ShooterAI
{
}

ShooterPickUpTransporter : ShooterAI
{
	float pickUpTime = 0.0f;
}

ShooterProp : ShooterAI
{
	float explosionRange = 0.0f;
	float explosionDamage = 0.0f;
}

ShooterBossAI : ShooterAI
{
	float idleDuration = 0.0f;
	int healthThreshold = 0;
}

ShooterNinja : ShooterBossAI
{
	float fireRate = 0.0f;
	int waveCount = 0;
	int enragedWaveCount = 0;
	float waveCoolDown = 0;
	int dashCount = 0;
	int enragedDashCount = 0;
	float dashChargeRate = 0.0f;
	float chargeCoolDown = 0;
}

ShooterMeathead : ShooterBossAI
{
	float debrisSpawnRate = 0.0f;
	int debrisCount = 0;
	int enragedDebrisCount = 0;
	float debrisCoolDown = 0.0f;
	float debrisOffset = 0.0f;
	float barrelThrowRate = 0.0f;
	int barrelCount = 0;
	int enragedBarrelCount = 0;
	float barrelCoolDown = 0.0f;
	float barrelExplosionRange = 0.0f;
	float leapSpeed = 0;
	int leapCount = 0;
	int enragedLeapCount = 0;
	float leapInterval = 0.0f;
	float leapCoolDown = 0.0f;
}

ShooterBasilisk : ShooterBossAI
{
	float rammingSpeed = 0.0f;
	float rammingSpeedTime = 0.0f;
	float cannonFireRate = 0.0f;
	int cannonCount = 0;
	int enragedCannonCount = 0;
	float cannonCoolDown = 0.0f;
	float cannonHealthPercent = 0.0f;
	float cannonMoveDistance = 0.0f;
	float missleFireRate = 0.0f;
	int missileCount = 0;
	int enragedMissileCount = 0;
	float missileCoolDown = 0.0f;
	float missileHealthPercent = 0.0f;
	float missileOffset = 0.0f;
	float missileEnhancedSpeed = 0.0f;
	float missileExplosionRange = 0.0f;
	int turretBulletCount = 0;
	int enragedTurretBulletCount = 0;
	float turretInterval = 0.0f;
	float enragedTurretInterval = 0.0f;
	float turretHealthPercent = 0.0f;
	CName sfxDud = "";
	CName sfxExplosion = "";
}

ShooterBullet : ShooterObject
{
	string libraryWidget = "base\gameplay\gui\world\arcade_games\shooter\shooter_minigame_bullet.inkwidget";
	imageAnchorPoint = ( 0.0f, 0.0f );
	float speed = 1.0f;
	float damage = 1.0f;
	float scale = 1.0f;
	float value = 0.0f;
	float specialValue = 0.0f;
	float explosionRange = 0.0f;
}

ShooterPowerup : ShooterObject
{
	string libraryWidget = "base\gameplay\gui\world\arcade_games\shooter\shooter_minigame_powerup.inkwidget";
	imageAnchorPoint = ( 0.0f, 1.0f );
	CName sfxPick = "";
	float value = 0.0f;
	float scale = 1.0f;
	gravity = 500.0f;
	max_gravity = 500.0f;
}

ShooterVFX : ShooterObject
{
	string libraryWidget = "base\gameplay\gui\world\arcade_games\shooter\shooter_minigame_vfx.inkwidget";
	imageAnchorPoint = ( 0.0f, 0.0f );
	bool allowCollision = false;
	bool allowLoop = false;
	bool allowSelfReset = false;
}

ShooterWeaponList
{
	fk< ShooterWeaponData >[] data = 
	[
		"Shooter.LMGData", "Shooter.ShotgunData", "Shooter.RifleData", "Shooter.LaserData", "Shooter.MissileData"
	];
}

ShooterPowerUpList
{
	fk< ShooterPowerup >[] data = 
	[
		"Shooter.LMG", "Shooter.Shotgun", "Shooter.Rifle", "Shooter.Laser", "Shooter.Missile", "Shooter.Radio", "Shooter.ShieldDrone", "Shooter.AttackDrone", "Shooter.MegaGrenade"
	];
}

ShooterVFXList
{
	fk< ShooterVFX >[] data = 
	[
		"Shooter.BASICMUZZLE", "Shooter.LASERMUZZLE", "Shooter.EXPLOSIVEMUZZLE", "Shooter.EXPLOSION", "Shooter.INSTANTEXPLOSION", "Shooter.EXPLOSIONGRENADE", "Shooter.EXPLOSIONGROUND", "Shooter.EXPLOSIONENEMY", "Shooter.SHIELDDOUBLE", "Shooter.SHIELDSINGLE", "Shooter.SHIELDCONE", "Shooter.GRENADEFLASH", "Shooter.NINJAAFTERIMAGE", "Shooter.NINJAHIT", "Shooter.RETICLE", "Shooter.DEBRISCRASH", "Shooter.DEBRISSHATTER", "Shooter.DEBRISSHATTER1", "Shooter.SUPERLASER"
	];
}

ShooterBulletList
{
	fk< ShooterBullet >[] data = 
	[
		"Shooter.PLMG", "Shooter.PSHOTGUN", "Shooter.PRIFLE", "Shooter.PLASER", "Shooter.PSUPERLASER", "Shooter.PMISSILE", "Shooter.PDRONEBULLET", "Shooter.EBULLET", "Shooter.EMISSILE", "Shooter.EGRENADE", "Shooter.EENERGYWAVE", "Shooter.ECANNONSHELL", "Shooter.EMISSILEBARRAGE", "Shooter.EDEBRIS1", "Shooter.EDEBRIS2", "Shooter.EBARREL", "Shooter.ETURRET"
	];
}

