AProjectile::AProjectile(const FObjectInitializer& objectInitializer)
: Super(objectInitializer)
{
	collisionComp = objectInitializer.CreateDefaultSubobject<USphereComponent>(this, TEXT("SphereComp"));
	collisionComp->InitSphereRadius(15.0f);
	collisionComp->OnComponentBeginOverlap.AddDynamic(this, &AProjectile::OnHit);
	collisionComp->SetWalkableSlopeOverride(FWalkableSlopeOverride(WalkableSlope_Unwalkable, 0.f));
	collisionComp->SetCollisionResponseToAllChannels(ECR_Ignore);
	collisionComp->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
	collisionComp->CanCharacterStepUpOn = ECB_No;
	collisionComp->SetCanEverAffectNavigation(false);

	RootComponent = collisionComp;

	movementComponent = objectInitializer.CreateDefaultSubobject<UProjectileMovementComponent>(this, TEXT("ProjectileComp"));
	movementComponent->UpdatedComponent = collisionComp;
	movementComponent->InitialSpeed = 1000.f;
	movementComponent->MaxSpeed = 1000.f;
	movementComponent->bRotationFollowsVelocity = true;
	movementComponent->bShouldBounce = false;
	movementComponent->HomingAccelerationMagnitude = 50000.f;

	bReplicates = true;
	bReplicateMovement = true;
	bAlwaysRelevant = true;
	PrimaryActorTick.bCanEverTick = true;

	NetUpdateFrequency = 30.f;
}
AVRProjectProjectile::AVRProjectProjectile() 
{
	// Use a sphere as a simple collision representation
	CollisionComp = CreateDefaultSubobject<USphereComponent>(TEXT("SphereComp"));
	CollisionComp->InitSphereRadius(5.0f);
	CollisionComp->BodyInstance.SetCollisionProfileName("Projectile");
	CollisionComp->OnComponentHit.AddDynamic(this, &AVRProjectProjectile::OnHit);		// set up a notification for when this component hits something blocking

	// Players can't walk on it
	CollisionComp->SetWalkableSlopeOverride(FWalkableSlopeOverride(WalkableSlope_Unwalkable, 0.f));
	CollisionComp->CanCharacterStepUpOn = ECB_No;

	// Set as root component
	RootComponent = CollisionComp;

	// Use a ProjectileMovementComponent to govern this projectile's movement
	ProjectileMovement = CreateDefaultSubobject<UProjectileMovementComponent>(TEXT("ProjectileComp"));
	ProjectileMovement->UpdatedComponent = CollisionComp;
	ProjectileMovement->InitialSpeed = 3000.f;
	ProjectileMovement->MaxSpeed = 3000.f;
	ProjectileMovement->bRotationFollowsVelocity = true;
	ProjectileMovement->bShouldBounce = true;

	// Die after 3 seconds by default
	InitialLifeSpan = 3.0f;
}
// Sets default values
AOutsiderProjectile::AOutsiderProjectile()
{
	// Use a sphere as a simple collision representation
	CollisionComp = CreateDefaultSubobject<USphereComponent>(TEXT("SphereComp"));
	CollisionComp->InitSphereRadius(10.0f);
	CollisionComp->BodyInstance.SetCollisionProfileName("Projectile");
	CollisionComp->OnComponentHit.AddDynamic(this, &AOutsiderProjectile::OnHit);		// set up a notification for when this component hits something blocking																					// Players can't walk on it
	CollisionComp->SetWalkableSlopeOverride(FWalkableSlopeOverride(WalkableSlope_Unwalkable, 0.f));
	CollisionComp->CanCharacterStepUpOn = ECB_No;

	// Set as root component
	RootComponent = CollisionComp;

	// Use a ProjectileMovementComponent to govern this projectile's movement
	ProjectileMovement = CreateDefaultSubobject<UProjectileMovementComponent>(TEXT("ProjectileComp"));
	ProjectileMovement->UpdatedComponent = CollisionComp;
	ProjectileMovement->InitialSpeed = 400.f;
	ProjectileMovement->MaxSpeed = 600.f;
	ProjectileMovement->bRotationFollowsVelocity = true;
	ProjectileMovement->bShouldBounce = true;
	ProjectileMovement->ProjectileGravityScale = 0;

	ProjectileMesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("Mesh"));
	const ConstructorHelpers::FObjectFinder<UStaticMesh> MeshObj(TEXT("/Engine/BasicShapes/Sphere"));
	ProjectileMesh->SetStaticMesh(MeshObj.Object);
	ProjectileMesh->SetWorldScale3D(FVector(0.1f,0.1f,0.1f));
	ProjectileMesh->AttachParent = CollisionComp;
	// Die after 3 seconds
	InitialLifeSpan = 3.0f;
}
Exemple #4
0
// Sets default values
AFireDart::AFireDart()
{
 	// Set this actor to call Tick() every frame.  You can turn this off to improve performance if you don't need it.
	PrimaryActorTick.bCanEverTick = false;

	// Use a sphere as a simple collision representation
	CollisionComp = CreateDefaultSubobject<USphereComponent>(TEXT("SphereComp"));
	CollisionComp->InitSphereRadius(5.0f);
	CollisionComp->BodyInstance.SetCollisionProfileName("Projectile");
	//CollisionComp->OnComponentHit.AddDynamic(this, &AFireDart::OnHit);		// set up a notification for when this component hits something blocking
	OnActorBeginOverlap.AddDynamic(this, &AFireDart::OnHit);
	// Players can't walk on it
	CollisionComp->SetWalkableSlopeOverride(FWalkableSlopeOverride(WalkableSlope_Unwalkable, 0.f));
	CollisionComp->CanCharacterStepUpOn = ECB_No;

	// Set as root component
	RootComponent = CollisionComp;

	// Use a ProjectileMovementComponent to govern this projectile's movement
	ProjectileMovement = CreateDefaultSubobject<UProjectileMovementComponent>(TEXT("ProjectileComp"));
	ProjectileMovement->UpdatedComponent = CollisionComp;
	ProjectileMovement->InitialSpeed = 3000.f;
	ProjectileMovement->MaxSpeed = 3000.f;
	ProjectileMovement->bRotationFollowsVelocity = true;
	ProjectileMovement->bShouldBounce = true;

	// Die after 3 seconds by default
	InitialLifeSpan = 3.0f;
	SetActorEnableCollision(true);
}
// Sets default values
APacmanGhostCharacter::APacmanGhostCharacter()
{
 	// Set this character to call Tick() every frame.  You can turn this off to improve performance if you don't need it.
	PrimaryActorTick.bCanEverTick = true;
	UCapsuleComponent* Capsule = GetCapsuleComponent();
	Capsule->OnComponentHit.AddDynamic(this, &APacmanGhostCharacter::OnHit);
	Capsule->SetWalkableSlopeOverride(FWalkableSlopeOverride(WalkableSlope_Unwalkable, 0.f));
	Capsule->CanCharacterStepUpOn = ECB_No;
}
// Sets default values
AZanshinBasicArrow::AZanshinBasicArrow() : Super()
{
	Root = CreateDefaultSubobject<USceneComponent>(TEXT("RootComponent"));

	// Use a ProjectileMovementComponent to govern this projectile's movement
	ProjectileMovement = CreateDefaultSubobject<UProjectileMovementComponent>(TEXT("ProjectileComponent"));
	ProjectileMovement->UpdatedComponent = Root;
	ProjectileMovement->InitialSpeed = 0.0f;
	ProjectileMovement->MaxSpeed = 6000.f;
	ProjectileMovement->bRotationFollowsVelocity = true;
	ProjectileMovement->bAutoActivate = false;
	ProjectileMovement->bShouldBounce = false;
	ProjectileMovement->bEditableWhenInherited = true;
	ProjectileMovement->SetNetAddressable();
	ProjectileMovement->SetIsReplicated(true);

	// Use a sphere as a simple collision representation
	TipSphereComponent = CreateDefaultSubobject<USphereComponent>(TEXT("SphereComp"));
	TipSphereComponent->InitSphereRadius(2.5f);
	TipSphereComponent->BodyInstance.SetCollisionProfileName("Projectile");
	TipSphereComponent->OnComponentHit.AddDynamic(this, &AZanshinBasicArrow::OnHit);		// set up a notification for when this component hits something blocking
	TipSphereComponent->SetNetAddressable();
	TipSphereComponent->SetIsReplicated(true);

	// Players can't walk on it
	TipSphereComponent->SetWalkableSlopeOverride(FWalkableSlopeOverride(WalkableSlope_Unwalkable, 0.f));
	TipSphereComponent->CanCharacterStepUpOn = ECB_No;

	AnimationArrow = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("AnimationArrow"));
	AnimationArrow->AttachTo(TipSphereComponent);

	FlyingArrow = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("FlyingArrow"));
	FlyingArrow->AttachTo(TipSphereComponent);

	ArrowAudioComponent = CreateDefaultSubobject<UAudioComponent>(TEXT("SoundComp"));
	ArrowAudioComponent->Sound = ArrowSound;
	ArrowAudioComponent->AttachTo(TipSphereComponent);

	// Set as root component
	RootComponent = TipSphereComponent;
	RootComponent->SetNetAddressable();
	RootComponent->SetIsReplicated(true);

	DisableComponentsSimulatePhysics();

	bSpecialArrow = false;

	KillTypeArrow = ArrowKillType::STANDARD;

	PrimaryActorTick.bCanEverTick = true;
}
AFireWall::AFireWall(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer), Damage(50.0f)
{
	// Use a sphere as a simple collision representation
	CollisionComp = ObjectInitializer.CreateDefaultSubobject<UBoxComponent>(this, TEXT("BoxComp"));

	// Players can't walk on it
	CollisionComp->SetWalkableSlopeOverride(FWalkableSlopeOverride(WalkableSlope_Unwalkable, 0.f));
	CollisionComp->CanCharacterStepUpOn = ECB_No;

	// Set as root component
	RootComponent = CollisionComp;

	// Setting up base variables
	InitialLifeSpan = 15.0f;
	PrimaryActorTick.bCanEverTick = true;
}
// Sets default values
AFournoidBullet::AFournoidBullet()
{
	// Set this actor to call Tick() every frame.  You can turn this off to improve performance if you don't need it.
	PrimaryActorTick.bCanEverTick = true;
	
	// Initialize bullet capsule component.
	BulletSphereComp = CreateDefaultSubobject<USphereComponent>(TEXT("SphereComp"));
	BulletSphereComp->BodyInstance.SetCollisionProfileName("Projectile");
	// Setup bullet hit
	BulletSphereComp->SetNotifyRigidBodyCollision(true);
	BulletSphereComp->OnComponentHit.AddDynamic(this, &AFournoidBullet::OnHit);
	// Player can't walk on it
	BulletSphereComp->SetWalkableSlopeOverride(FWalkableSlopeOverride(WalkableSlope_Unwalkable, 0.f));
	BulletSphereComp->CanCharacterStepUpOn = ECB_No;
	RootComponent = BulletSphereComp;
	
	// Create the bullet's static mesh component.
	BulletMeshComp = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("BulletMesh"));
	BulletMeshComp->AttachParent = BulletSphereComp;
	BulletMeshComp->bCastDynamicShadow = false;
	BulletMeshComp->CastShadow = false;
	BulletMeshComp->SetCollisionEnabled(ECollisionEnabled::NoCollision);
	BulletMeshComp->SetCollisionResponseToAllChannels(ECollisionResponse::ECR_Ignore);
	
	// Use a ProjectileMovementComponent to govern this projectile's movement
	BulletMovementComp = CreateDefaultSubobject<UProjectileMovementComponent>(TEXT("BulletMovementComp"));
	BulletMovementComp->UpdatedComponent = BulletSphereComp;
	BulletMovementComp->InitialSpeed = 3000.f;
	BulletMovementComp->MaxSpeed = 3000.f;
	BulletMovementComp->bRotationFollowsVelocity = true;
	BulletMovementComp->bShouldBounce = false;
	
	// Setup a particle system component associated with the bullet.
	BulletParticleComp = CreateDefaultSubobject<UParticleSystemComponent>(TEXT("BulletParticleSystem"));
	BulletParticleComp->AttachParent = BulletSphereComp;
	
	
	bReplicates = true;
	bReplicateMovement = true;
	
	// Die after 3 seconds by default
	InitialLifeSpan = 3.f;
	BulletImpulseStrength = 10.f;
	BulletDamage = 25.f;
}
// Sets default values
AdeezProjectile::AdeezProjectile()
{
	// Set this actor to call Tick() every frame.  You can turn this off to improve performance if you don't need it.
	PrimaryActorTick.bCanEverTick = true;
	// Use a sphere as a simple collision representation
	CollisionComp = CreateDefaultSubobject<USphereComponent>(TEXT("SphereComp"));
	CollisionComp->InitSphereRadius(5.0f);

	CollisionComp->BodyInstance.SetCollisionProfileName("Projectile");

	CollisionComp->OnComponentHit.AddDynamic(this,&AdeezProjectile::OnHit);		// set up a notification for when this component hits something blocking

	// Players can't walk on it
	CollisionComp->SetWalkableSlopeOverride(FWalkableSlopeOverride(WalkableSlope_Unwalkable, 0.f));
	CollisionComp->CanCharacterStepUpOn = ECB_No;

	// Set as root component
	RootComponent = CollisionComp;

	Mesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("ProjectileMesh"));
	Mesh->AttachToComponent(RootComponent,FAttachmentTransformRules::KeepRelativeTransform);

	EmissiveParamName = TEXT("Emissiveness");
	MaxEmissiveness = 60.f;

	LifetimeParamName = TEXT("Lifetime");
	MaxLifetime = 0.9;
	CurrentLifetime = 0;
	Damage = 0.f;

	// Use a ProjectileMovementComponent to govern this projectile's movement
	ProjectileMovement = CreateDefaultSubobject<UProjectileMovementComponent>(TEXT("ProjectileComp"));
	ProjectileMovement->UpdatedComponent = CollisionComp;
	ProjectileMovement->InitialSpeed = 1.f;
	ProjectileMovement->MaxSpeed = 500000.f;
	ProjectileMovement->bRotationFollowsVelocity = true;
	ProjectileMovement->bShouldBounce = false;
	ProjectileMovement->ProjectileGravityScale = 0.f;

	// Die after 4 seconds by default
	InitialLifeSpan = 4.0f;

	MassMultiplier = 1.f;
};
AParticleList::AParticleList(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
{
	// Use a sphere as a simple collision representation
	CollisionComp = ObjectInitializer.CreateDefaultSubobject<UBoxComponent>(this, TEXT("BoxComp"));

	// Players can't walk on it
	CollisionComp->SetWalkableSlopeOverride(FWalkableSlopeOverride(WalkableSlope_Unwalkable, 0.f));
	CollisionComp->CanCharacterStepUpOn = ECB_No;

	// Set as root component
	RootComponent = CollisionComp;

	//Allow the actor to tick anywhere
	PrimaryActorTick.bCanEverTick = true;
	PrimaryActorTick.bStartWithTickEnabled = true;
	PrimaryActorTick.bAllowTickOnDedicatedServer = true;
	SetActorTickEnabled(true);
}
Exemple #11
0
ANimModProjectile::ANimModProjectile(const FObjectInitializer& ObjectInitializer) 
	: Super(ObjectInitializer)
{
	// Use a sphere as a simple collision representation
	CollisionComp = CreateDefaultSubobject<USphereComponent>(TEXT("SphereComp"));
	CollisionComp->InitSphereRadius(5.0f);
	CollisionComp->AlwaysLoadOnClient = true;
	CollisionComp->AlwaysLoadOnServer = true;
	CollisionComp->bTraceComplexOnMove = true;
	CollisionComp->SetSimulatePhysics(false);
	CollisionComp->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
	CollisionComp->SetCollisionObjectType(COLLISION_PROJECTILE);
	CollisionComp->SetCollisionResponseToAllChannels(ECR_Ignore);
	CollisionComp->SetCollisionResponseToChannel(ECC_WorldStatic, ECR_Block);
	CollisionComp->SetCollisionResponseToChannel(ECC_WorldDynamic, ECR_Block);
	CollisionComp->SetCollisionResponseToChannel(ECC_Pawn, ECR_Block);
	/*CollisionComp->BodyInstance.SetCollisionProfileName("Projectile");*/
	//CollisionComp->OnComponentHit.AddDynamic(this, &ANimModProjectile::OnHit);		// set up a notification for when this component hits something blocking

	// Players can't walk on it
	CollisionComp->SetWalkableSlopeOverride(FWalkableSlopeOverride(WalkableSlope_Unwalkable, 0.f));
	CollisionComp->CanCharacterStepUpOn = ECB_No;

	// Set as root component
	RootComponent = CollisionComp;

	ParticleComp = ObjectInitializer.CreateDefaultSubobject<UParticleSystemComponent>(this, TEXT("ParticleComp"));
	ParticleComp->bAutoActivate = false;
	ParticleComp->bAutoDestroy = false;
	ParticleComp->AttachParent = RootComponent;

	// Use a ProjectileMovementComponent to govern this projectile's movement
	MovementComp = CreateDefaultSubobject<UProjectileMovementComponent>(TEXT("ProjectileComp"));
	MovementComp->UpdatedComponent = CollisionComp;
	MovementComp->bRotationFollowsVelocity = true;
	MovementComp->ProjectileGravityScale = 0.0f;

	RadialForceComp = CreateDefaultSubobject<URadialForceComponent>(TEXT("RadialForceComp"));
	RadialForceComp->AttachParent = RootComponent;
	// Die after 3 seconds by default
	//InitialLifeSpan = 3.0f;
}