Skip to content

Commit

Permalink
Merge pull request #97 from yxue5/DevelopNew
Browse files Browse the repository at this point in the history
Ready for Official Release!
  • Loading branch information
yxue5 authored May 4, 2018
2 parents daf21d4 + b998f5a commit 98d498c
Show file tree
Hide file tree
Showing 41 changed files with 896 additions and 217 deletions.
44 changes: 44 additions & 0 deletions Meeting Minutes/Meeting Minutes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -108,3 +108,47 @@ Jin Lin
Summary:
Last Week, Xinyu was finxed the passable gearboard and create a new CaveMap, Jie finished the main menu and Yang finished add the death state the character skills.
This week, Jie is going to do the landing page and pause menu. Yang is going to add the character skill attack and the animation for the skills. Xinyu is going to add some animation on the CaveMap.




Date: 4/17/2018
Time: 4:00 - 5:00

Attend Member:
Xinyu Chen
Yang Xue
Jin Lin


Summary:
Last week, Xinyu created a gameover page map, Jie finished the landing page and Yang merged all parts of the code together and filmed beta video.
This week, Xinyu is going to create a new map, Jie is going to place the thumbnail for each of the map in main manu, Yang is going to fix the collision between two idol, so that the idol could not pass through each other.



Date: 4/24/2018
Time: 4:00 - 5:00

Attend Member:
Xinyu Chen
Yang Xue
Jin Lin

Summary:
Last week, Xinyu was assigned to make character selection screen and has problem with adjust the position of the widget on the screen. Jie finished add the abstract picture for each map on map selection menu. Yang maked the flash step and finished the rocket stap.
This week, Xinyu is going to fix the character selection page and add character animation to the page, Yang is going to finish the flash step, Jie is going to fix the pause menu.



Date: 5/1/2018
Time: 4:00 - 5:00

Attend Member:
Xinyu Chen
Yang Xue
Jin Lin

Summary:
Last week, Xinyu was continue to make character selection screen. Jie was assigned to fix the pause menu, still has problem with mouse showing problem. Yang finished the flash step.
This week, Xinyu is going to continue the character selection page, Jie is going to add the combo widget to the screen when player plays the combo attack. Yang is going to fix the AI.
5 changes: 3 additions & 2 deletions ProjectEroica/Config/DefaultEngine.ini
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ AppliedDefaultGraphicsPerformance=Maximum
+ActiveGameNameRedirects=(OldGameName="TP_SideScroller",NewGameName="/Script/ProjectEroica")

[/Script/EngineSettings.GameMapsSettings]
EditorStartupMap=/Game/Maps/Map_Assets/ShipMap.ShipMap
EditorStartupMap=/Game/Maps/Map2_Assets/CaveMap.CaveMap
GlobalDefaultGameMode=/Game/Blueprints/BP_EroicaGameMode.BP_EroicaGameMode_C
GameDefaultMap=/Game/Map_Assets/ShipMap.ShipMap
GameDefaultMap=/Game/UI/Maps/MainMenu.MainMenu
ServerDefaultMap=/Game/Maps/Map_Assets/ShipMap.ShipMap
GameInstanceClass=/Game/Blueprints/BP_GameInstance.BP_GameInstance_C

Expand Down Expand Up @@ -113,3 +113,4 @@ AsyncSceneSmoothingFactor=0.990000
InitialAverageFrameRate=0.016667
PhysXTreeRebuildRate=10


7 changes: 4 additions & 3 deletions ProjectEroica/Config/DefaultInput.ini
Original file line number Diff line number Diff line change
Expand Up @@ -38,14 +38,15 @@ bCaptureMouseOnLaunch=True
DefaultViewportMouseCaptureMode=CapturePermanently_IncludingInitialMouseDown
bDefaultViewportMouseLock=False
DefaultViewportMouseLockMode=LockOnCapture
+ActionMappings=(ActionName="Jump",Key=Gamepad_FaceButton_Bottom,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
+ActionMappings=(ActionName="Jump",Key=SpaceBar,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
+ActionMappings=(ActionName="Jump",Key=Up,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
+ActionMappings=(ActionName="Jump",Key=W,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
+ActionMappings=(ActionName="Attack",Key=Z,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
+ActionMappings=(ActionName="Skill1",Key=A,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
+ActionMappings=(ActionName="Pause",Key=Tab,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
+ActionMappings=(ActionName="Pause",Key=Global_Menu,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
+ActionMappings=(ActionName="AI",Key=I,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
+ActionMappings=(ActionName="AILevel1",Key=One,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
+ActionMappings=(ActionName="AILevel2",Key=Two,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
+ActionMappings=(ActionName="AILevel3",Key=Three,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
+AxisMappings=(AxisName="MoveRight",Key=Left,Scale=-1.000000)
+AxisMappings=(AxisName="MoveRight",Key=Right,Scale=1.000000)
+AxisMappings=(AxisName="MoveRight",Key=Gamepad_LeftX,Scale=1.000000)
Expand Down
Binary file modified ProjectEroica/Content/Blueprints/BP_Enemy.uasset
Binary file not shown.
1 change: 1 addition & 0 deletions ProjectEroica/Content/Blueprints/BP_MyCharacter.tmp0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Write Test
Binary file modified ProjectEroica/Content/Blueprints/BP_MyCharacter.uasset
Binary file not shown.
Binary file modified ProjectEroica/Content/Blueprints/BP_Weapon.uasset
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added ProjectEroica/Content/UI/BP_Combo.uasset
Binary file not shown.
Binary file modified ProjectEroica/Content/UI/BP_HUD.uasset
Binary file not shown.
Binary file modified ProjectEroica/Content/UI/Damage.uasset
Binary file not shown.
Binary file modified ProjectEroica/Content/UI/GameOver.uasset
Binary file not shown.
Binary file added ProjectEroica/Content/UI/Images/CaveMap.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified ProjectEroica/Content/UI/Images/CaveMap.uasset
Binary file not shown.
Binary file added ProjectEroica/Content/UI/Images/LeftArrow.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ProjectEroica/Content/UI/Images/LeftArrow.uasset
Binary file not shown.
Binary file not shown.
Binary file modified ProjectEroica/Content/UI/Images/Particle_Effects.uasset
Binary file not shown.
Binary file added ProjectEroica/Content/UI/Images/RightArrow.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ProjectEroica/Content/UI/Images/RightArrow.uasset
Binary file not shown.
Binary file modified ProjectEroica/Content/UI/MainMenu.uasset
Binary file not shown.
Binary file modified ProjectEroica/Content/UI/Maps/MainMenu.umap
Binary file not shown.
Binary file modified ProjectEroica/Content/UI/PauseMenu.uasset
Binary file not shown.
35 changes: 19 additions & 16 deletions ProjectEroica/Source/ProjectEroica/AI_Kisa.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,31 +43,26 @@ void AAI_Kisa::BeginPlay()

void AAI_Kisa::Scout()
{

//if we are in AI Mode
if (isAIMode == true) {
if (isAIMode == true && InputEnabled()) {
float currRotation = GetActorRotation().Yaw;
float currTime = GetWorld()->GetRealTimeSeconds();
//if we haven't seen the pawn last time
if (currTime - lastSeenPawn > .6) {
if (currTime - lastSeenPawn > reactionTime) {
justSawPawn = false;
SetActorRotation(FRotator(0, currRotation - 180, 0));
GetWorld()->GetTimerManager().ClearTimer(EndMovementHandle);
//GetWorld()->GetTimerManager().ClearTimer(EndMovementHandle);
}
//float currRotation = GetActorRotation().Yaw;
//move if you see pawn and aren't currently attacking
if (justSawPawn == true) {
//if we're within striking distance
if (FMath::Abs(SeenPawnLocation.Y - GetActorLocation().Y) < 100) {
currTime = GetWorld()->GetRealTimeSeconds();
if (currTime - prevAttack > AttackCoolDown) {
UE_LOG(LogTemp, Warning, TEXT("UPDATE!"));
State = Idle;
Attack();
prevAttack = currTime;
}
//if we need to increase elevation
if (FMath::Abs(SeenPawnLocation.Z - GetActorLocation().Z) >= 100) {
Jump();
}
// else we have to move closer
else {
//First moves towards the pawn
if (FMath::Abs(SeenPawnLocation.Y - GetActorLocation().Y) > 100) {
//slow down dash if we're close to Pawn
if (FMath::Abs(SeenPawnLocation.Y - GetActorLocation().Y) < 300) {
dashForce = 750;
Expand All @@ -87,8 +82,16 @@ void AAI_Kisa::Scout()
MoveRight(1);
}
}

//if we're within striking distance
if (FMath::Abs(SeenPawnLocation.Y - GetActorLocation().Y) < 100) {
currTime = GetWorld()->GetRealTimeSeconds();
//State = Idle;
Attack();
prevAttack = currTime;
}
}

PawnSensingComp->SensingInterval = reactionTime;
}
GetWorld()->GetTimerManager().SetTimer(ScoutHandle, this, &AAI_Kisa::Scout, 1.0f, false);
GetWorld()->GetTimerManager().SetTimer(ScoutHandle, this, &AAI_Kisa::Scout, reactionTime, false);
}
5 changes: 4 additions & 1 deletion ProjectEroica/Source/ProjectEroica/AI_Kisa.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,10 @@ class PROJECTEROICA_API AAI_Kisa : public ATP_SideScrollerCharacter
void BeginPlay() override;
UFUNCTION()
void Scout();
float AttackCoolDown = 3.0f;
UPROPERTY(VisibleAnywhere, BlueprintReadWrite)
float AttackCoolDown = 1.0f;
UPROPERTY(VisibleAnywhere, BlueprintReadWrite)
float reactionTime = 0.4f;
float AIprevDash = 0;
float prevAttack = 0;

Expand Down
35 changes: 27 additions & 8 deletions ProjectEroica/Source/ProjectEroica/AnimInstanceKisa.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
#include "Runtime/Engine/Classes/Particles/ParticleSystemComponent.h"
#include "TP_SideScrollerCharacter.h"
#include "TimerManager.h"
#include "Runtime/Core/Public/Containers/UnrealString.h"

UAnimInstanceKisa::UAnimInstanceKisa()
{
Expand All @@ -14,37 +15,55 @@ UAnimInstanceKisa::UAnimInstanceKisa()

void UAnimInstanceKisa::endParticleEffect()
{
UParticleSystemComponent* p = activeDustParticles.Pop();
UParticleSystemComponent* p = activeDustParticles[0];
p->DestroyComponent();
activeDustParticles.RemoveAt(0);
}


void UAnimInstanceKisa::HandleState(FString newState) {
if (newState != State) {
if (newState == "Dash") {
if (newState == "Dash" || newState == "Rocketing") {
UGameplayStatics::PlaySound2D(this, DashSound);

//creates a new dust particle and adds it to array of active particles
activeDustParticles.Add(UGameplayStatics::SpawnEmitterAtLocation(this, DustParticle, owningChar->GetMesh()->GetSocketLocation("DustSocket")));
FTimerHandle temp = FTimerHandle();
GetWorld()->GetTimerManager().SetTimer(temp, this, &UAnimInstanceKisa::endParticleEffect, dustDuration, false);
FTimerHandle* temp = new FTimerHandle();
GetWorld()->GetTimerManager().SetTimer(*temp, this, &UAnimInstanceKisa::endParticleEffect, dustDuration, false);
}
else if (newState == "Land" && State == "Jump") {
else if (newState == "Flashing") {
//creates a new dust particle and adds it to array of active particles
//activeDustParticles.Add(UGameplayStatics::SpawnEmitterAtLocation(this, DustParticle, owningChar->GetMesh()->GetSocketLocation("DustSocket")));
//FTimerHandle* temp = new FTimerHandle();
//GetWorld()->GetTimerManager().SetTimer(*temp, this, &UAnimInstanceKisa::endParticleEffect, dustDuration, false);
}
else if (newState == "Land") {
UGameplayStatics::PlaySound2D(this, LandSound);

//creates a new dust particle and adds it to array of active particles
activeDustParticles.Add(UGameplayStatics::SpawnEmitterAtLocation(this, DustParticle, owningChar->GetMesh()->GetSocketLocation("DustSocket")));
FTimerHandle temp = FTimerHandle();
GetWorld()->GetTimerManager().SetTimer(temp, this, &UAnimInstanceKisa::endParticleEffect, dustDuration, false);
FTimerHandle* temp = new FTimerHandle();
GetWorld()->GetTimerManager().SetTimer(*temp, this, &UAnimInstanceKisa::endParticleEffect, dustDuration, false);
}
else if (newState == "Combo1") {
else if (newState.StartsWith("Combo")) {
UGameplayStatics::PlaySound2D(this, Combo1);
}
else if (newState == "DashAttack") {
UGameplayStatics::PlaySound2D(this, DashAttackSound);
isLooping = false;

//creates a new dust particle and adds it to array of active particles
activeDustParticles.Add(UGameplayStatics::SpawnEmitterAtLocation(this, DustParticle, owningChar->GetMesh()->GetSocketLocation("DustSocket")));
FTimerHandle* temp = new FTimerHandle();
GetWorld()->GetTimerManager().SetTimer(*temp, this, &UAnimInstanceKisa::endParticleEffect, dustDuration, false);
}
else if (newState == "SkillOne") {
UGameplayStatics::PlaySound2D(this, DashAttackSound);
isLooping = false;
}
else if (newState == "JumpAttack") {
UGameplayStatics::PlaySound2D(this, JumpAttackSound);
isLooping = false;
}
else if (newState == "Death") {
UGameplayStatics::PlaySound2D(this, DeathSound);
Expand Down
2 changes: 2 additions & 0 deletions ProjectEroica/Source/ProjectEroica/AnimInstanceKisa.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ class PROJECTEROICA_API UAnimInstanceKisa : public UAnimInstance
float dustDuration = 0.3f;
void endParticleEffect();
UAnimInstanceKisa();
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Animation")
bool isLooping = true;
UPROPERTY()
//stores activ dust particles
TArray<UParticleSystemComponent*> activeDustParticles;
Expand Down
30 changes: 17 additions & 13 deletions ProjectEroica/Source/ProjectEroica/AttackHandler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,51 +28,55 @@ void UAttackHandler::initializeAttack(FString attackName)
hitType = "Stunned";
}
if (attackName == "Combo1") {
stunDuration = .7;
stunDuration = .5;
dmg = 15;
hitType = "Stunned";
}
else if (attackName == "Combo2") {
stunDuration = .7;
dmg = 15;
stunDuration = .5;
dmg = 11;
hitType = "Stunned";
}
else if (attackName == "Combo3") {
stunDuration = .7;
dmg = 15;
stunDuration = .5;
dmg = 19;
hitType = "Stunned";
}
else if (attackName == "Combo4") {
stunDuration = .7;
dmg = 15;
stunDuration = .5;
dmg = 13;
hitType = "Stunned";
}
else if (attackName == "Combo5") {
stunDuration = .7;
dmg = 15;
stunDuration = .5;
dmg = 22;
hitType = "Stunned";
}
else if (attackName == "DashAttack") {
dmg = 20;
hitType = "Knockup";
KnockupForce.Y= DashAttackY;
KnockupForce.Z = DashAttackZ;
attackDuration = .5;
}
else if (attackName == "JumpAttack") {
dmg = 5;
stunDuration = 1;
hitType = "Stunned";
attackDuration = .3;
attackDuration = .5;
}
else if (attackName == "JumpStab") {
dmg = 15;
stunDuration = .7;
hitType = "Stunned";
}
}

FString UAttackHandler::DetermineAttack(FString currState, float currTime)
{
if (currState == "Dash" || currState == "Running") {
if (currState == "Dash" || currState == "Rocketing" || currState == "Flashing" || currState == "Running") {
return "DashAttack";
}
else if (currState == "Idle" || currState == "Walking") {
else if ((currState == "Idle" || currState == "Walking") && currTime - prevAttack >= 1.5f){
prevAttack = currTime;
return "Combo1";
}
Expand Down
2 changes: 1 addition & 1 deletion ProjectEroica/Source/ProjectEroica/AttackHandler.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ class PROJECTEROICA_API UAttackHandler : public UActorComponent
UPROPERTY(EditDefaultsOnly)
float DashAttackY = 200;
UPROPERTY(EditDefaultsOnly)
float DashAttackZ = 600;
float DashAttackZ = 700;
UPROPERTY(VisibleAnywhere)
FString hitType = "Stunned";
};
4 changes: 2 additions & 2 deletions ProjectEroica/Source/ProjectEroica/CharacterStats.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ UCharacterStats::UCharacterStats()
{

// ...
maxHP = 100;
maxHP = 200;
maxMP = 100;
hp = 100;
hp = 200;
mp = 0;
hpRegen = .2;
mpRegen = .5;
Expand Down
4 changes: 2 additions & 2 deletions ProjectEroica/Source/ProjectEroica/CharacterStats.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,12 @@ class PROJECTEROICA_API UCharacterStats : public UActorComponent
void updateStats();

UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Stats")
float maxHP = 100;
float maxHP = 200;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Stats")
float maxMP = 100;

UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Stats")
float hp = 100;
float hp = 200;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Stats")
float hpRegen = 2;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Stats")
Expand Down
10 changes: 7 additions & 3 deletions ProjectEroica/Source/ProjectEroica/PassablePlatform.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ APassablePlatform::APassablePlatform()
MeshComp->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
MeshComp->SetCollisionResponseToAllChannels(ECR_Ignore);
MeshComp->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
MeshComp->SetCollisionObjectType(ECollisionChannel::ECC_Vehicle);
RootComponent = MeshComp;

BoxComp = CreateDefaultSubobject<UBoxComponent>(TEXT("BoxComp"));
Expand Down Expand Up @@ -46,7 +47,8 @@ void APassablePlatform::OnBoxEndOverlap(UPrimitiveComponent* OverlappedComponent
AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex){
ATP_SideScrollerCharacter* validChar = Cast<ATP_SideScrollerCharacter>(OtherActor);
if (validChar) {
MeshComp->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
validChar->setCapsuleCollision(ECR_Overlap);
//MeshComp->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
UE_LOG(LogTemp, Warning, TEXT("Case LeavePlat"));
validChar->currPlat = nullptr;
}
Expand All @@ -61,13 +63,15 @@ void APassablePlatform::OnBoxBeginOverlap(UPrimitiveComponent* OverlappedCompone
if (validChar) {
//if actor is just above plat then make plat solid
if (validChar->GetActorLocation().Z > MeshComp->GetComponentLocation().Z) {
MeshComp->SetCollisionResponseToChannel(ECC_Pawn, ECR_Block);
validChar->setCapsuleCollision(ECR_Block);
//MeshComp->SetCollisionResponseToChannel(ECC_Pawn, ECR_Block);
UE_LOG(LogTemp, Warning, TEXT("Case Land"));
validChar->currPlat = this;
}
if (validChar->GetActorLocation().Z < MeshComp->GetComponentLocation().Z //if actor is below plat and up was just pressed
&& GetWorld()->GetRealTimeSeconds() - validChar->prevUp <.5) {
MeshComp->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
validChar->setCapsuleCollision(ECR_Overlap);
//MeshComp->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap);
UE_LOG(LogTemp, Warning, TEXT("Case Ascend"));
}
}
Expand Down
Loading

0 comments on commit 98d498c

Please sign in to comment.