From 481163798d8cd38868389ffb502372a2994ae273 Mon Sep 17 00:00:00 2001 From: Alexei Gladkikh Date: Sun, 10 Mar 2024 17:18:42 +0300 Subject: [PATCH] #235 Added shoot effect on armored character (#245) --- Config/DefaultGame.ini | 3 +++ Content/Maps/warmup.umap | Bin 9274686 -> 9274562 bytes Content/Physicals/PM_Character.uasset | Bin 4469 -> 4685 bytes Source/Cloud9/Character/Cloud9Character.cpp | 9 ++++----- .../Components/Cloud9HealthComponent.cpp | 2 -- .../Components/Cloud9HealthComponent.h | 1 + .../Physicals/Cloud9PhysicalMaterial.cpp | 5 ++++- .../Cloud9/Physicals/Cloud9PhysicalMaterial.h | 4 +++- .../Weapon/Classes/Cloud9WeaponFirearm.cpp | 18 +++++++++++++++++- 9 files changed, 32 insertions(+), 10 deletions(-) diff --git a/Config/DefaultGame.ini b/Config/DefaultGame.ini index 79af9bd76..1bb4e9b8e 100644 --- a/Config/DefaultGame.ini +++ b/Config/DefaultGame.ini @@ -23,6 +23,9 @@ bIsPrintHitScanInfo=0 CameraVerticalSpeedLag=0.000000 NetGraph=1 bIsAutoSelectWeapon=0 +bIsInfiniteAmmo=0 +bIsCheatsEnabled=0 +bIsSelfAimEnabled=0 Volume=0.200000 UnUsedEnum=Everything UnUsedStruct=(IntField0=3,FloatField1=0.000000) diff --git a/Content/Maps/warmup.umap b/Content/Maps/warmup.umap index 6ab1ea3845f7cedff22da1c1ab153ae7a296b0c7..df4c5a4a444cf253194b97e6ef7175764b77fa49 100644 GIT binary patch delta 26992 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 diff --git a/Content/Physicals/PM_Character.uasset b/Content/Physicals/PM_Character.uasset index 26cc5654a96b5132bf096e9b3a1cab1f186bd857..16a3106104436bc5f868f628aa000ac1110bf23c 100644 GIT binary patch literal 4685 zcmb`L4Qv!e6o6lCQD~vULG2+03n*wyd)NEvwUQur*B@(asZ=TwW7%G}W%YVncDG_H zNJ;&v5^Pi;nrIWyKny4*7=NOM))q|BL`?{Zq9C>?AO(soqEPC4`_rFeZ?ES1l6P-* z=9@P&J2P))udOkq<)6X9!PU_Ku{VJ%QTW@l=ELqYo~?axKV|H6f1a0qH|A}c3NQg} z5g%Y>a54T`k)Dgz?(%r8*4#XYJ2%^t>9$*KS?(OW+m@N-$gnz{nR12BNdVNykMRI^ zqNV5eZk3Cm7cFTNwo;wBVM@y>d+wIv7T3c&2IkdP9c}I6zj)x|m*&^KaX!9@dPsh# z12HfQ)8>~Gqo(6iYU+wyN9uCc&oUyL=18}>WB_1&$AnM-R+GhJdT1ggoY;c`lai;j38pxVW;z!4v#~ zadG8<*5;#g#>JHr*1fjBZd_bt!}LjUhiG9b)2uUtk1&3m^&2LTvelW(c=K{|L@sP_ z`hYn(A{TZj+qoe>A{P!=b*W=xL@u1rb76-$A{Uw9=v?+mL@r#=cqHZfh+JgB5^jC# zLfv&yvbL5h7cIDn<&?Y#V0%mP!ZG26ti<@?Kz~CDMM6u7PvB}Ki`UQBR%C;t?X&AM zMrQK@yJA`S6Bt$CNfRSp*QxV5hVRVAV{8g)O#(b}z5k-*J zJ^gB;{6y_&!K{$M7{+0Dwr%*bi9%o=C$NlA?eHBbJ*O}ITIag z??>DGUS1C462vSvy^n_(5T3(G40Jbq^txOlRCHfAaJAV0u)zn%5|Rx7JIp*(lWzbx zAZdH&MgzbJdp7Si8vxnx-P9SoX&IF+7Z2yOfb9KpV2FE!M?|KCFzx9f$8MM$uzs_o+zmkCAJzGmlr)gbg}7+ zJ~)Nekg~~!R*U=C{#D zCB;EoQ6zMyBk4hAzLE^doI{4Lb0nes{E5t6 z3KEhzi_C&B%o$`TtdfLk>ohWSVI>L0{DI6p3KEj}9hsCc%qe72!!X^*EDFPPA(Iw{ z`3;%$Fw9A0EMb^mk+B9bbjXloCm-^VJ%+CH zBt}fMf*3L}V_;~nlNhx{CnbpyLtBu^c2!Z37jkQn)iRS-iaZVU`X7!sqlC^V56 zF%(5fj2MbsBt{H{M-n53&Uz9f#-t!a3@*(Lt`()QhNk%~5|0?twR)QvEooYt{Egb#DL+oKgF9PS7~Cy+ap3k}SnQvTE(Bl?`pi zP=ilW!EDuP3;bU7S;r*10TiVZoJ4C~t30Z88YaDB8W~AgnC616RU{g$okycQQ*a13 zX}8O60RG4L8gP6K9#XSfd5&te=m?dSmG^1eiONQ%>6ymtqy)-b)Ubc=wBa8~{{i;I BIJ*D< literal 4469 zcmb`LeNa?Y6u^&y72qd|V4z`^76`lS2Mgnjxx0LXBS{ z;=Qa4X5rI_^lD7aHiy$_%+0gdbF&?pcC*oxWzR9&O_^Di45QVWDR0|2{w<^=<=n=FplryiipKAgd>B}$$4#8)&< z>tBf#hJ2=$H5Au0h@6Y@h=$_A3TF)?FfNG|Afi3#lyd?qW2;%0BpS-{wi|L-nRfU* z9#%3Gctwfvx>(UrSWtn@6>_t~!}C=Y@-qWY3=R&@iYXHa-$mPJ#grLNpXb-kiYW_p zw)L-?6;oEIKhV)IE2gqxX;e(_2E8x%G~>aqKJ5ciwff~U-nrElmI)JF`ZggsEE8s^ zINFpSmI(`#-|X2FmI*5iU3)(vEEAbv>D&5wSSD=Hawg@cuuNpZMs9cKx`2LBy35B^ ziU!=oa!z&vIDDjd9R>_Al)412PBJ(>yss)7EL~sTUFKiS3+%S7l{+y^!0m#xjs9J7 zy>1Re?dzLfD_HE;rHEtP7;c~?zkJ7iSnu>Oq6kv`i*LotB^pPIPK68xC64jHp{8$I zDdgsH0?P=s4#xGoTi|`(Dmm^H3w$M0$$2=b0TSQvzL^k|6rs=3{e5E4_EN5qh2EFr zM=-=|gDH^@YRkH#D6FbekZWapq43NXv~IN_w^|OGaA?y9Kgd=*JR{)@>sSG&H+uZs zm|Q#QZ4Zdsdsd(cZN1v=bn_>R|Kp`tJIgG@>VDqO3>i}k0(OZ|V16UyGaNiyszzQe!pG?pJvf;PPIvW z?@k%VOqD3)t9ChuKR&g|VOg`KHU&%qjYCr%!-hMkqp1I)(l6rMsMk>cM!kjl7wQP= zpQtxcZ=haB4KxtVMdvOy?PS@Eljv378TFk8=oq8%DQ?pms4od!8Az;30?BG>R8u*j zO%`n752~Q@vmHQlT${gv$@yeEfTDCcB+*9KI!_v%rb@4uRz{-1TBx1`(>@OM9q7tR x@;|2Bj8krQkSGetArmor(); - if (let Weapon = Cast(DamageCauser)) { let WeaponInfo = Weapon->GetWeaponInfo(); @@ -334,12 +332,12 @@ float ACloud9Character::InternalTakePointDamage( if (HeadBoneNames.Contains(BoneName)) { Damage *= WeaponInfo->HeadshotMultiplier; - HitInArmor = true; + HitInArmor = HealthComponent->HasHelmet(); } else if (UpperBodyBoneNames.Contains(BoneName)) { Damage *= WeaponInfo->UpperBodyMultiplier; - HitInArmor = true; + HitInArmor = HealthComponent->IsArmored(); } else if (LowerBodyBoneNames.Contains(BoneName)) { @@ -350,9 +348,10 @@ float ACloud9Character::InternalTakePointDamage( Damage *= WeaponInfo->LegMultiplier; } - if (Armor != 0.0f and HitInArmor) + if (HitInArmor) { Damage *= WeaponInfo->ArmorPenetration * ArmorCoefficient; + HealthComponent->TakeArmorDamage(Damage / 2); } let Distance = FVector::DistSquared(DamageCauser->GetActorLocation(), GetActorLocation()); diff --git a/Source/Cloud9/Character/Components/Cloud9HealthComponent.cpp b/Source/Cloud9/Character/Components/Cloud9HealthComponent.cpp index 241e6c9c4..bbfd3b445 100644 --- a/Source/Cloud9/Character/Components/Cloud9HealthComponent.cpp +++ b/Source/Cloud9/Character/Components/Cloud9HealthComponent.cpp @@ -167,7 +167,6 @@ void UCloud9HealthComponent::OnTakePointDamage( AActor* DamageCauser) { TakeHealthDamage(Damage); - TakeArmorDamage(0.0f); // TODO: Add armor damage calc AddAttackerScore(InstigatedBy); } @@ -181,6 +180,5 @@ void UCloud9HealthComponent::OnTakeRadialDamage( AActor* DamageCauser) { TakeHealthDamage(Damage); - TakeArmorDamage(0.0f); // TODO: Add armor damage calc AddAttackerScore(InstigatedBy); } diff --git a/Source/Cloud9/Character/Components/Cloud9HealthComponent.h b/Source/Cloud9/Character/Components/Cloud9HealthComponent.h index ebe501a07..2a9ec1ec6 100644 --- a/Source/Cloud9/Character/Components/Cloud9HealthComponent.h +++ b/Source/Cloud9/Character/Components/Cloud9HealthComponent.h @@ -83,6 +83,7 @@ class CLOUD9_API UCloud9HealthComponent : public UActorComponent float GetHealth() const { return Health; } float GetArmor() const { return Armor; } + bool IsArmored() const { return Armor > 0.0f; } bool HasHelmet() const { return bHasHelmet; } bool IsAlive() const { return bIsAlive; } diff --git a/Source/Cloud9/Physicals/Cloud9PhysicalMaterial.cpp b/Source/Cloud9/Physicals/Cloud9PhysicalMaterial.cpp index 6f629b4bc..a3abff35d 100644 --- a/Source/Cloud9/Physicals/Cloud9PhysicalMaterial.cpp +++ b/Source/Cloud9/Physicals/Cloud9PhysicalMaterial.cpp @@ -88,4 +88,7 @@ bool UCloud9PhysicalMaterial::TestBackgroundDecalProbability() const return FMath::RandRange(0.0f, 1.0f) < FirearmBackgroundDecalProbability; } -UNiagaraSystem* UCloud9PhysicalMaterial::GetRandomFirearmSquib() const { return GetRandomItem(FirearmEffects); } +UNiagaraSystem* UCloud9PhysicalMaterial::GetRandomFirearmSquib(bool IsAlternative) const +{ + return IsAlternative ? GetRandomItem(FirearmAltEffects) : GetRandomItem(FirearmEffects); +} diff --git a/Source/Cloud9/Physicals/Cloud9PhysicalMaterial.h b/Source/Cloud9/Physicals/Cloud9PhysicalMaterial.h index 6dd892f5b..860e31df5 100644 --- a/Source/Cloud9/Physicals/Cloud9PhysicalMaterial.h +++ b/Source/Cloud9/Physicals/Cloud9PhysicalMaterial.h @@ -18,7 +18,7 @@ class CLOUD9_API UCloud9PhysicalMaterial : public UPhysicalMaterial UCloud9PhysicalMaterial(); UMaterialInterface* GetRandomFirearmDecal() const; - UNiagaraSystem* GetRandomFirearmSquib() const; + UNiagaraSystem* GetRandomFirearmSquib(bool IsAlternative) const; UMaterialInterface* GetRandomBackgroundDecal() const; FVector GetBackgroundDecalSize() const; @@ -48,6 +48,8 @@ class CLOUD9_API UCloud9PhysicalMaterial : public UPhysicalMaterial UPROPERTY(EditDefaultsOnly, Category="Firearm Hit Effect") TSet FirearmEffects; + UPROPERTY(EditDefaultsOnly, Category="Firearm Hit Effect") + TSet FirearmAltEffects; UPROPERTY(EditDefaultsOnly, Category="Firearm Background Decal") TSet FirearmBackgroundDecals; diff --git a/Source/Cloud9/Weapon/Classes/Cloud9WeaponFirearm.cpp b/Source/Cloud9/Weapon/Classes/Cloud9WeaponFirearm.cpp index bf75dbdfa..7a8e12c4d 100644 --- a/Source/Cloud9/Weapon/Classes/Cloud9WeaponFirearm.cpp +++ b/Source/Cloud9/Weapon/Classes/Cloud9WeaponFirearm.cpp @@ -35,6 +35,7 @@ #include "Cloud9/Contollers/Cloud9PlayerController.h" #include "Cloud9/Character/Cloud9Character.h" #include "Cloud9/Character/Components/Cloud9AnimationComponent.h" +#include "Cloud9/Character/Components/Cloud9HealthComponent.h" #include "Cloud9/Character/Components/Cloud9InventoryComponent.h" #include "Cloud9/Character/Damages/FirearmDamageType.h" #include "Cloud9/Game/Cloud9DeveloperSettings.h" @@ -470,7 +471,22 @@ EFirearmFireStatus ACloud9WeaponFirearm::Fire( if (let PhysicalMaterial = Cast(LineHit.PhysMaterial); IsValid(PhysicalMaterial)) { - if (let FirearmSquib = PhysicalMaterial->GetRandomFirearmSquib(); IsValid(FirearmSquib)) + if (let HealthComponent = DamagedActor->FindComponentByClass(); + IsValid(HealthComponent) and HealthComponent->IsArmored()) + { + if (let FirearmSquib = PhysicalMaterial->GetRandomFirearmSquib(true); IsValid(FirearmSquib)) + { + UNiagaraFunctionLibrary::SpawnSystemAtLocation( + GetWorld(), + FirearmSquib, + LineHit.Location, + LineHit.Normal.Rotation(), + FVector::OneVector, + true); + } + } + + if (let FirearmSquib = PhysicalMaterial->GetRandomFirearmSquib(false); IsValid(FirearmSquib)) { UNiagaraFunctionLibrary::SpawnSystemAtLocation( GetWorld(),