Blake Alexander - Designer - Scripter
  • Resume and Contact
 
     To make the boss fight in Jackson Square more compelling, I scripted a new attack based on the Bone Barrage attack (a basic, linear 4 projectile attack). The new attack, Tarot Barrage, creates 9 tarot cards in an arc above the caster. After a brief delay, the cards launch towards the player, homing in on him in rapid succession.

//==================================================================================
//Extends the original Bone Barrage attack to create the Tarot Barrage boss ability
//By: Blake Alexander, SMU Guildhall
//==================================================================================

simulated function CreateNeedle()
{
	local vector		RealStartLoc;
	local VChamp_TarotBarrageProjectile SpawnedProjectile;
	local Vector aim;
	local Vector offset;
	local Rotator tmpRot;
	// This is the location where the projectile is spawned, creating an arc over the caster's head
	RealStartLoc = GetPhysicalFireStartLoc();
	offset.Y = -(150 * sin(((currentNum) * 3.14 / (NeedleNum - 1)) - (1.57))); 
	offset.Z = 100 + (50 * sin(((currentNum) * 6.28 / (NeedleNum - 1)) - (1.57)));

    // This sets the projectile's spawn rotation
	tmpRot = Rotator(offset);   
	tmpRot.Yaw += (Instigator.Rotation).Yaw;//OffsetDegree * 65535/360;   
	offset = VSize(offset) * Vector(tmpRot);  
 
    // Call the projectile spawn function
	RealStartLoc += offset;
	SpawnedProjectile = VChamp_TarotBarrageProjectile(Spawn(GetProjectileClass(),,, RealStartLoc));
	if( SpawnedProjectile != None && !SpawnedProjectile.bDeleteMe )
	{
		if(GetALocalPlayerController().Pawn!=none)
			aim = VPawn(GetALocalPlayerController().Pawn).Location - RealStartLoc;
		else
			aim = Vector(Rotation);
		aim = Normal(aim);

		SpawnedProjectile.Create( aim, TimeBeforeFlying );
	}
}

DefaultProperties
{
	SelfDamage = 0
	CoolDown=0.1 //Used for Virgil
	WeaponRange = 10000  //Used for Virgil
	AbilityRange=50 //Used for enemies, but the boss AI overrides this
	Spread(0)= 0
	CastTime = 0

	WeaponFireSnd(0)=SoundCue'vd_sounds_needlebarrage.Sounds.MagicWeapon_AirEnergyShot_Cue'

	TimeBeforeFlying= 1 // This delays the cards overhead briefly before launching
	NeedleNum = 9 // Number of tarot card projectiles
	RandomRadius = 25 
	NeedleFlyingInterval = 0.05 // Rate at which tarot cards appear
	attackFrequency=0.1 // Since the attack is only called through kismet commands, we want an extremely short cooldown so that it fires when called

	WeaponProjectiles(0)=class'VChamp_TarotBarrageProjectile'
    // The new projectile class contains the scripting for launch speed, acceleration, homing, projectile size, and damage
}
 
Picture

Return to top of page

Picture
Resume and Contact
Picture
Picture
Picture
Picture
© 2017 Blake Alexander  |  All Rights Reserved
Powered by Create your own unique website with customizable templates.