From 7816cf735fd09f7550bd7f84ed078528baf3476e Mon Sep 17 00:00:00 2001 From: m4xxx1m Date: Sat, 22 Apr 2023 01:03:03 +0300 Subject: [PATCH] almost made manage squad menu (except back button and saving data) --- Content/BattleField/BattleFieldMap.umap | Bin 633315 -> 633315 bytes Content/MainMenu/MainMenu.uasset | Bin 54451 -> 50833 bytes Content/MainMenu/MainMenuLevel.umap | Bin 34679 -> 34210 bytes .../BP_ManageSquadTrooper.uasset | Bin 0 -> 23800 bytes Content/ManageSquadMenu/ManageSquadLevel.umap | Bin 0 -> 42335 bytes .../TurnBasedTutorial/ManageSquadGameMode.cpp | 11 +++ .../TurnBasedTutorial/ManageSquadGameMode.h | 13 ++++ .../ManageSquadGameState.cpp | 11 +++ .../TurnBasedTutorial/ManageSquadGameState.h | 25 +++++++ Source/TurnBasedTutorial/ManageSquadPawn.cpp | 19 ++++++ Source/TurnBasedTutorial/ManageSquadPawn.h | 24 +++++++ .../ManageSquadPlayerController.cpp | 63 ++++++++++++++++++ .../ManageSquadPlayerController.h | 29 ++++++++ .../TurnBasedTutorial/ManageSquadTrooper.cpp | 30 +++++++++ Source/TurnBasedTutorial/ManageSquadTrooper.h | 43 ++++++++++++ .../TurnBasedTutorial/MyPlayerController.cpp | 6 +- 16 files changed, 271 insertions(+), 3 deletions(-) create mode 100644 Content/ManageSquadMenu/BP_ManageSquadTrooper.uasset create mode 100644 Content/ManageSquadMenu/ManageSquadLevel.umap create mode 100644 Source/TurnBasedTutorial/ManageSquadGameMode.cpp create mode 100644 Source/TurnBasedTutorial/ManageSquadGameMode.h create mode 100644 Source/TurnBasedTutorial/ManageSquadGameState.cpp create mode 100644 Source/TurnBasedTutorial/ManageSquadGameState.h create mode 100644 Source/TurnBasedTutorial/ManageSquadPawn.cpp create mode 100644 Source/TurnBasedTutorial/ManageSquadPawn.h create mode 100644 Source/TurnBasedTutorial/ManageSquadPlayerController.cpp create mode 100644 Source/TurnBasedTutorial/ManageSquadPlayerController.h create mode 100644 Source/TurnBasedTutorial/ManageSquadTrooper.cpp create mode 100644 Source/TurnBasedTutorial/ManageSquadTrooper.h diff --git a/Content/BattleField/BattleFieldMap.umap b/Content/BattleField/BattleFieldMap.umap index fae5c30419bf47959817414c41688321de3be698..edac1f094d2d17c168e14065b035cdaeafd2f371 100644 GIT binary patch delta 279 zcmaESS?%#?rwt1WJ8dgh`<&{r_PVEE4^p7`b<_V(wm&u ztTCCVSz_|KW*z~?rS;YKIzKwL-92^jriA?0&8M1wGfjR_#xmJHg=6x85|+(J+f-N> o>n0yelV}#|ZWroi1Y#y2W(HywAZ7((HXvpPVvg-X-JBQY07bl4@&Et; delta 276 zcmaESS?%#0rk-~RL3FEJXhN83+U zEYh2t*Q_y_r&(h1x@I1M*V>@F&LPxw)@(NcNZp3SG4e=}{q+NQ!Xc}Ix=W8LI~ lX%fvs-R(l%j6lo;#LPg<0>rF9%m&2lK+LgSsGIYm900oOQKtX^ diff --git a/Content/MainMenu/MainMenu.uasset b/Content/MainMenu/MainMenu.uasset index 695af62347fa72bfde27a4989a6109485ae590bf..8420306477844113fba6d051ffdcfbff3e277986 100644 GIT binary patch literal 50833 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 br=t@c1$1C{CXWuxPA45ks#`A@e(V1OsQPQE literal 54451 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 delta 1117 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 literal 0 HcmV?d00001 diff --git a/Content/ManageSquadMenu/ManageSquadLevel.umap b/Content/ManageSquadMenu/ManageSquadLevel.umap new file mode 100644 index 0000000000000000000000000000000000000000..fca80b011af6c71caa9189a5ee9b082958b85f4c GIT binary patch literal 42335 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 RG#_0=v$QJPe9c++{tr((EtdcQ literal 0 HcmV?d00001 diff --git a/Source/TurnBasedTutorial/ManageSquadGameMode.cpp b/Source/TurnBasedTutorial/ManageSquadGameMode.cpp new file mode 100644 index 0000000..529481b --- /dev/null +++ b/Source/TurnBasedTutorial/ManageSquadGameMode.cpp @@ -0,0 +1,11 @@ +#include "ManageSquadGameMode.h" + +#include "ManageSquadGameState.h" +#include "ManageSquadPawn.h" +#include "ManageSquadPlayerController.h" + +AManageSquadGameMode::AManageSquadGameMode() { + PlayerControllerClass = AManageSquadPlayerController::StaticClass(); + DefaultPawnClass = AManageSquadPawn::StaticClass(); + GameStateClass = AManageSquadGameState::StaticClass(); +} diff --git a/Source/TurnBasedTutorial/ManageSquadGameMode.h b/Source/TurnBasedTutorial/ManageSquadGameMode.h new file mode 100644 index 0000000..7abdf6f --- /dev/null +++ b/Source/TurnBasedTutorial/ManageSquadGameMode.h @@ -0,0 +1,13 @@ +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/GameMode.h" +#include "ManageSquadGameMode.generated.h" + +UCLASS() +class TURNBASEDTUTORIAL_API AManageSquadGameMode : public AGameMode { + GENERATED_BODY() + +public: + AManageSquadGameMode(); +}; diff --git a/Source/TurnBasedTutorial/ManageSquadGameState.cpp b/Source/TurnBasedTutorial/ManageSquadGameState.cpp new file mode 100644 index 0000000..da48053 --- /dev/null +++ b/Source/TurnBasedTutorial/ManageSquadGameState.cpp @@ -0,0 +1,11 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#include "ManageSquadGameState.h" + +AManageSquadGameState::AManageSquadGameState() { + TroopersKinds = {0, 0, 0, 0, 0}; +} + +void AManageSquadGameState::ChangeSquad(int TrooperIndex, int TrooperKind) { + TroopersKinds[TrooperIndex] = TrooperKind; +} diff --git a/Source/TurnBasedTutorial/ManageSquadGameState.h b/Source/TurnBasedTutorial/ManageSquadGameState.h new file mode 100644 index 0000000..1198780 --- /dev/null +++ b/Source/TurnBasedTutorial/ManageSquadGameState.h @@ -0,0 +1,25 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/GameState.h" +#include "ManageSquadGameState.generated.h" + +/** + * + */ +UCLASS() +class TURNBASEDTUTORIAL_API AManageSquadGameState : public AGameState { + GENERATED_BODY() + +public: + AManageSquadGameState(); + + UFUNCTION() + void ChangeSquad(int TrooperIndex, int TrooperKind); + +private: + UPROPERTY() + TArray TroopersKinds; +}; diff --git a/Source/TurnBasedTutorial/ManageSquadPawn.cpp b/Source/TurnBasedTutorial/ManageSquadPawn.cpp new file mode 100644 index 0000000..1fafe54 --- /dev/null +++ b/Source/TurnBasedTutorial/ManageSquadPawn.cpp @@ -0,0 +1,19 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#include "ManageSquadPawn.h" + +// Called when the game starts or when spawned +void AManageSquadPawn::BeginPlay() { + Super::BeginPlay(); +} + +// Called every frame +void AManageSquadPawn::Tick(float DeltaTime) { + Super::Tick(DeltaTime); +} + +// Called to bind functionality to input +void AManageSquadPawn::SetupPlayerInputComponent( + UInputComponent *PlayerInputComponent) { + // Super::SetupPlayerInputComponent(PlayerInputComponent); +} diff --git a/Source/TurnBasedTutorial/ManageSquadPawn.h b/Source/TurnBasedTutorial/ManageSquadPawn.h new file mode 100644 index 0000000..dace062 --- /dev/null +++ b/Source/TurnBasedTutorial/ManageSquadPawn.h @@ -0,0 +1,24 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/DefaultPawn.h" +#include "ManageSquadPawn.generated.h" + +UCLASS() +class TURNBASEDTUTORIAL_API AManageSquadPawn : public ADefaultPawn { + GENERATED_BODY() + +protected: + // Called when the game starts or when spawned + virtual void BeginPlay() override; + +public: + // Called every frame + virtual void Tick(float DeltaTime) override; + + // Called to bind functionality to input + virtual void SetupPlayerInputComponent( + class UInputComponent *PlayerInputComponent) override; +}; diff --git a/Source/TurnBasedTutorial/ManageSquadPlayerController.cpp b/Source/TurnBasedTutorial/ManageSquadPlayerController.cpp new file mode 100644 index 0000000..5c324df --- /dev/null +++ b/Source/TurnBasedTutorial/ManageSquadPlayerController.cpp @@ -0,0 +1,63 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#include "ManageSquadPlayerController.h" + +#include "ManageSquadGameState.h" + +AManageSquadPlayerController::AManageSquadPlayerController() { + SetShowMouseCursor(true); +} + +void AManageSquadPlayerController::SetupInputComponent() { + Super::SetupInputComponent(); + InputComponent->BindAction("MyAction", IE_Pressed, this, + &AManageSquadPlayerController::OnLeftMouseClick); +} + +void AManageSquadPlayerController::OnLeftMouseClick() { + UE_LOG(LogTemp, Warning, TEXT("Mouse clicked")); + FHitResult HitResult; + bool const IsHitResult = GetHitResultUnderCursorForObjects( + TArray>{ObjectTypeQuery1}, false, + HitResult); + if (!IsHitResult) + return; + + UE_LOG(LogTemp, Warning, TEXT("Got hit result")); + // auto const NewlySelectedLocation = HitResult.Location; + AManageSquadTrooper *NewlySelectedTrooper = dynamic_cast + ( + HitResult.GetActor()); + + if (NewlySelectedTrooper == nullptr || !NewlySelectedTrooper-> + IsValidLowLevel()) { + // we selected something that is not a trooper (or trooper in shitty state...) + UE_LOG(LogTemp, Warning, TEXT("Not a trooper")); + return; + } + // skip re-selection + if (SelectedTrooper == NewlySelectedTrooper) { + UE_LOG(LogTemp, Warning, TEXT("Skip reselection")); + return; + } + UE_LOG(LogTemp, Warning, TEXT("Trooper")); + switch (NewlySelectedTrooper->GetType()) { + case ETrooperType::TROOPER_SAMPLE: + if (SelectedTrooper) { + UE_LOG(LogTemp, Warning, TEXT("Trooper replacement")); + SelectedTrooper->ChangeSkeletalMesh(NewlySelectedTrooper); + dynamic_cast( + GetWorld()->GetGameState())->ChangeSquad( + SelectedTrooper->GetIndex(), + NewlySelectedTrooper->GetIndex() + ); + } + break; + case ETrooperType::TROOPER_IN_SQUAD: + SelectedTrooper = NewlySelectedTrooper; + UE_LOG(LogTemp, Warning, TEXT("Changed selection")); + break; + default: + break; + } +} diff --git a/Source/TurnBasedTutorial/ManageSquadPlayerController.h b/Source/TurnBasedTutorial/ManageSquadPlayerController.h new file mode 100644 index 0000000..5fe2a53 --- /dev/null +++ b/Source/TurnBasedTutorial/ManageSquadPlayerController.h @@ -0,0 +1,29 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/PlayerController.h" +#include "ManageSquadTrooper.h" +#include "ManageSquadPlayerController.generated.h" + +/** + * + */ +UCLASS() +class TURNBASEDTUTORIAL_API AManageSquadPlayerController + : public APlayerController { + GENERATED_BODY() + +public: + AManageSquadPlayerController(); + + virtual void SetupInputComponent() override; + +private: + UPROPERTY() + AManageSquadTrooper *SelectedTrooper; + + UFUNCTION() + void OnLeftMouseClick(); +}; diff --git a/Source/TurnBasedTutorial/ManageSquadTrooper.cpp b/Source/TurnBasedTutorial/ManageSquadTrooper.cpp new file mode 100644 index 0000000..3019c63 --- /dev/null +++ b/Source/TurnBasedTutorial/ManageSquadTrooper.cpp @@ -0,0 +1,30 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#include "ManageSquadTrooper.h" + +AManageSquadTrooper::AManageSquadTrooper() { + GetMesh()->SetCollisionResponseToAllChannels(ECollisionResponse::ECR_Overlap); +} + +// Called when the game starts or when spawned +void AManageSquadTrooper::BeginPlay() { + Super::BeginPlay(); +} + +// Called every frame +void AManageSquadTrooper::Tick(float DeltaTime) { + Super::Tick(DeltaTime); +} + +void AManageSquadTrooper:: +ChangeSkeletalMesh(const AManageSquadTrooper *OtherTrooper) { + GetMesh()->SetSkeletalMesh(OtherTrooper->GetMesh()->SkeletalMesh); +} + +ETrooperType AManageSquadTrooper::GetType() const { + return Type; +} + +int AManageSquadTrooper::GetIndex() const { + return Index; +} diff --git a/Source/TurnBasedTutorial/ManageSquadTrooper.h b/Source/TurnBasedTutorial/ManageSquadTrooper.h new file mode 100644 index 0000000..5e49790 --- /dev/null +++ b/Source/TurnBasedTutorial/ManageSquadTrooper.h @@ -0,0 +1,43 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/Character.h" +#include "ManageSquadTrooper.generated.h" + +UENUM() +enum ETrooperType { + TROOPER_SAMPLE, + TROOPER_IN_SQUAD +}; + +UCLASS() +class TURNBASEDTUTORIAL_API AManageSquadTrooper : public ACharacter { + GENERATED_BODY() + + AManageSquadTrooper(); + +protected: + // Called when the game starts or when spawned + virtual void BeginPlay() override; + + UPROPERTY(EditAnywhere) + int Index = -1; + + UPROPERTY(EditAnywhere) + TEnumAsByte Type; + +public: + // Called every frame + virtual void Tick(float DeltaTime) override; + + UFUNCTION() + void ChangeSkeletalMesh(const AManageSquadTrooper *OtherTrooper); + + UFUNCTION() + ETrooperType GetType() const; + + UFUNCTION() + int GetIndex() const; +}; diff --git a/Source/TurnBasedTutorial/MyPlayerController.cpp b/Source/TurnBasedTutorial/MyPlayerController.cpp index 4a722dd..5dab816 100644 --- a/Source/TurnBasedTutorial/MyPlayerController.cpp +++ b/Source/TurnBasedTutorial/MyPlayerController.cpp @@ -48,8 +48,7 @@ void AMyPlayerController::MoveTrooper_Implementation( if (Trooper->CheckMoveCorrectness(Location)) { Trooper->MoveTrooper(Location); GetMyGameMode()->CycleTurns(); - } - else { + } else { GEngine->AddOnScreenDebugMessage(-1, 3.0f, FColor::Red, FString::Printf( TEXT("Out of move radius!"))); @@ -92,7 +91,8 @@ void AMyPlayerController::OnLeftMouseClick() { UE_LOG(LogTemp, Warning, TEXT("Mouse clicked")); FHitResult HitResult; bool const IsHitResult = GetHitResultUnderCursorForObjects( - TArray>{ObjectTypeQuery1}, false, HitResult); + TArray>{ObjectTypeQuery1}, false, + HitResult); // GetHitResultUnderCursorForObjects(); // bool const IsHitResult = GetHitResultUnderCursorByChannel( // TraceTypeQuery1, false, HitResult);