void AShooterWeapon::OnUnEquip()
{
	DetachMeshFromPawn();
	bIsEquipped = false;
	StopFire();

	if (bPendingReload)
	{
		StopWeaponAnimation(ReloadAnim);
		bPendingReload = false;

		GetWorldTimerManager().ClearTimer(TimerHandle_StopReload);
		GetWorldTimerManager().ClearTimer(TimerHandle_ReloadWeapon);
	}

	if (bPendingEquip)
	{
		StopWeaponAnimation(EquipAnim);
		bPendingEquip = false;

		GetWorldTimerManager().ClearTimer(TimerHandle_OnEquipFinished);
	}

	DetermineWeaponState();
}
void AShooterWeapon::AttachMeshToPawn()
{
	if (MyPawn)
	{
		// Remove and hide both first and third person meshes
		DetachMeshFromPawn();

		// For locally controller players we attach both weapons and let the bOnlyOwnerSee, bOwnerNoSee flags deal with visibility.
		FName AttachPoint = MyPawn->GetWeaponAttachPoint();
		if( MyPawn->IsLocallyControlled() == true )
		{
			USkeletalMeshComponent* PawnMesh1p = MyPawn->GetSpecifcPawnMesh(true);
			USkeletalMeshComponent* PawnMesh3p = MyPawn->GetSpecifcPawnMesh(false);
			Mesh1P->SetHiddenInGame( false );
			Mesh3P->SetHiddenInGame( false );
			Mesh1P->AttachTo(PawnMesh1p, AttachPoint);
			Mesh3P->AttachTo(PawnMesh3p, AttachPoint);
		}
		else
		{
			USkeletalMeshComponent* UseWeaponMesh = GetWeaponMesh();
			USkeletalMeshComponent* UsePawnMesh = MyPawn->GetPawnMesh();
			UseWeaponMesh->AttachTo(UsePawnMesh, AttachPoint);	
			UseWeaponMesh->SetHiddenInGame( false );
		}
	}
}
Exemplo n.º 3
0
void ASWeapon::Destroyed()
{
	Super::Destroyed();

	DetachMeshFromPawn();
	StopSimulatingWeaponFire();
}
Exemplo n.º 4
0
void ASWeapon::EndPlay(const EEndPlayReason::Type EndPlayReason)
{
	Super::EndPlay(EndPlayReason);

	DetachMeshFromPawn();
	StopSimulatingWeaponFire();
}
Exemplo n.º 5
0
/** unequip weapon from pawn */
void AWeapon::OnUnEquip()
{

	if (HasAuthority())
	{
		// UE_LOG(LogHeliWeapon, Log, TEXT("AWeapon::OnUnEquip() ---> Set owning pawn to NULL"));
		SetOwningPawn(NULL);
	}

	if (IsAttachedToPawn())
	{
		StopFire();
		DetachMeshFromPawn();
		bIsEquipped = false;


		if (bPendingReload)
		{
			bPendingReload = false;

			GetWorldTimerManager().ClearTimer(TimerHandle_ReloadWeapon);
		}

		DetermineWeaponState();
	}
}
void AMagicBattleSoccerWeapon::OnUnEquip()
{
	DetachMeshFromPawn();
	bIsEquipped = false;
	StopFire();

	DetermineWeaponState();
}
Exemplo n.º 7
0
void AWeapon::AttachMeshToPawn(){
	if (GetItemOwner())
	{
		DetachMeshFromPawn();

		FName AttachPoint; //= GetWeaponAttachPoint()
		USkeletalMeshComponent* pawnmesh = GetItemOwner()->GetMesh();
		weaponMesh->AttachTo(pawnmesh, AttachPoint);
	}
}
Exemplo n.º 8
0
void AAWeapon::OnLeaveInventory()
{
	// NET

	if (IsAttachedToPawn())
	{
		OnUnEquip();
	}

	DetachMeshFromPawn();
}
void AShooterWeapon::PostInitializeComponents()
{
	Super::PostInitializeComponents();

	if (WeaponConfig.InitialClips > 0)
	{
		CurrentAmmoInClip = WeaponConfig.AmmoPerClip;
		CurrentAmmo = WeaponConfig.AmmoPerClip * WeaponConfig.InitialClips;
	}

	DetachMeshFromPawn();
}
Exemplo n.º 10
0
void AAWeapon::AttachMeshToPawn(EInventorySlot Slot /*= EInventorySlot::Hands*/)
{
	if (MyPawn)
	{
		DetachMeshFromPawn();

		USkeletalMeshComponent* PawnMesh = MyPawn->GetMesh();
		FName AttachPoint = MyPawn->GetInventoryAttachPoint(Slot);
		Mesh->SetHiddenInGame(false);
		Mesh->AttachTo(PawnMesh, AttachPoint, EAttachLocation::SnapToTarget);
	}
}
Exemplo n.º 11
0
void ASWeapon::AttachMeshToPawn(EInventorySlot inSlot)
{
	if (MyPawn)
	{
		DetachMeshFromPawn();

		USkeletalMeshComponent* pawnMesh = MyPawn->GetMesh();
		//FName attachPoint = MyPawn->GetInventoryAttachPoint(inSlot);
		//Mesh->SetHiddenInGame(false);
		//Mesh->AttachTo(pawnMesh, attachPoint, EAttachLocation::SnapToTarget);
	}
}
Exemplo n.º 12
0
void ALMParticularWeapon::AttachMeshToPawn()
{
	if (MyPawn)
	{
		DetachMeshFromPawn();

		FName AttachPoint = MyPawn->GetParticularWeaponAttachPoint();

		USkeletalMeshComponent* PawnMesh = MyPawn->GetMesh();
		Mesh->SetHiddenInGame(false);
		Mesh->AttachTo(PawnMesh, AttachPoint);
	}
}
Exemplo n.º 13
0
void ASWeapon::OnLeaveInventory()
{
	if (Role == ROLE_Authority)
	{
		SetOwningPawn(nullptr);
	}

	if (IsAttachedToPawn())
	{
		OnUnEquip();
	}

	DetachMeshFromPawn();
}
void AMagicBattleSoccerWeapon::AttachMeshToPawn(FName InSocketName)
{
	if (nullptr != MyPawn)
	{
		// Remove and hide both first and third person meshes
		DetachMeshFromPawn();

		// Attach the weapon to the player's right hand
		USkeletalMeshComponent* PlayerMesh = Cast<USkeletalMeshComponent>(MyPawn->GetComponentByClass(USkeletalMeshComponent::StaticClass()));
		AttachRootComponentTo(PlayerMesh, InSocketName, EAttachLocation::SnapToTarget);

		// Show our mesh
		SetActorHiddenInGame(false);
	}
}
Exemplo n.º 15
0
void AWeapon::UnEquip(AMutagenCharacter* entity) {
	DetachMeshFromPawn();
	SetEquiped(true);
	StopAttack();

	if (bPendingEquip)
	{
		StopWeaponAnimation(equipAnimation);
		bPendingEquip = false;

		//GetWorldTimerManager().ClearTimer(this, &AWeapon::OnEquipFinished);
		GetWorldTimerManager().ClearTimer(equipTimerHandle);
	}

	DetermineWeaponState();
}
Exemplo n.º 16
0
void AWeapon::PostInitializeComponents(){
	Super::PostInitializeComponents();
	DetachMeshFromPawn();
}