style: empty line between functions
This commit is contained in:
parent
8fa925e1e5
commit
e68d21f1d9
@ -4,6 +4,7 @@ final function class<KFPerk> GetBasePerk()
|
|||||||
{
|
{
|
||||||
return (ActivePerkManager!=None && ActivePerkManager.CurrentPerk!=None) ? ActivePerkManager.CurrentPerk.BasePerk : None;
|
return (ActivePerkManager!=None && ActivePerkManager.CurrentPerk!=None) ? ActivePerkManager.CurrentPerk.BasePerk : None;
|
||||||
}
|
}
|
||||||
|
|
||||||
final function Ext_PerkBase GetExtPerk()
|
final function Ext_PerkBase GetExtPerk()
|
||||||
{
|
{
|
||||||
return ActivePerkManager!=None ? ActivePerkManager.CurrentPerk : None;
|
return ActivePerkManager!=None ? ActivePerkManager.CurrentPerk : None;
|
||||||
|
@ -27,6 +27,7 @@ final function FMyCustomChar LoadData()
|
|||||||
R.AttachmentSkinIndices[2] = AttachmentSkin2;
|
R.AttachmentSkinIndices[2] = AttachmentSkin2;
|
||||||
return R;
|
return R;
|
||||||
}
|
}
|
||||||
|
|
||||||
final function SaveData(FMyCustomChar R)
|
final function SaveData(FMyCustomChar R)
|
||||||
{
|
{
|
||||||
HeadMeshIndex = R.HeadMeshIndex;
|
HeadMeshIndex = R.HeadMeshIndex;
|
||||||
|
@ -52,6 +52,7 @@ function UpdatePerk()
|
|||||||
LastEXPValue = CurrentPerkEXP;
|
LastEXPValue = CurrentPerkEXP;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function ShowXPBark(int DeltaXP, string IconPath, bool bIsCurrentPerk)
|
function ShowXPBark(int DeltaXP, string IconPath, bool bIsCurrentPerk)
|
||||||
{
|
{
|
||||||
ActionScriptVoid("showXPBark");
|
ActionScriptVoid("showXPBark");
|
||||||
|
@ -93,6 +93,7 @@ simulated function bool Died(Controller Killer, class<DamageType> damageType, ve
|
|||||||
}
|
}
|
||||||
return Super.Died(Killer, DamageType, HitLocation);
|
return Super.Died(Killer, DamageType, HitLocation);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function BroadcastDeathMessage(Controller Killer);
|
simulated function BroadcastDeathMessage(Controller Killer);
|
||||||
|
|
||||||
function SetBatteryRate(float Rate)
|
function SetBatteryRate(float Rate)
|
||||||
@ -101,6 +102,7 @@ function SetBatteryRate(float Rate)
|
|||||||
NVGBatteryDrainRate = Default.NVGBatteryDrainRate*Rate;
|
NVGBatteryDrainRate = Default.NVGBatteryDrainRate*Rate;
|
||||||
ClientSetBatteryRate(Rate);
|
ClientSetBatteryRate(Rate);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated reliable client function ClientSetBatteryRate(float Rate)
|
simulated reliable client function ClientSetBatteryRate(float Rate)
|
||||||
{
|
{
|
||||||
BatteryDrainRate = Default.BatteryDrainRate*Rate;
|
BatteryDrainRate = Default.BatteryDrainRate*Rate;
|
||||||
@ -257,6 +259,7 @@ function PlayHit(float Damage, Controller InstigatedBy, vector HitLocation, clas
|
|||||||
}
|
}
|
||||||
Super.PlayHit(Damage,InstigatedBy,HitLocation,damageType,Momentum,HitInfo);
|
Super.PlayHit(Damage,InstigatedBy,HitLocation,damageType,Momentum,HitInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
event Landed(vector HitNormal, actor FloorActor)
|
event Landed(vector HitNormal, actor FloorActor)
|
||||||
{
|
{
|
||||||
local float ExcessSpeed;
|
local float ExcessSpeed;
|
||||||
@ -313,6 +316,7 @@ function bool DoJump(bool bUpdating)
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function ResetBHopAccel(optional bool bSkipRep) // Set on Landed, or Tick if falling 2D speed is too low.
|
simulated function ResetBHopAccel(optional bool bSkipRep) // Set on Landed, or Tick if falling 2D speed is too low.
|
||||||
{
|
{
|
||||||
if (BHopAccelSpeed>0)
|
if (BHopAccelSpeed>0)
|
||||||
@ -325,6 +329,7 @@ simulated function ResetBHopAccel(optional bool bSkipRep) // Set on Landed, or T
|
|||||||
NotifyHasStopped();
|
NotifyHasStopped();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function UpdateGroundSpeed()
|
function UpdateGroundSpeed()
|
||||||
{
|
{
|
||||||
local KFInventoryManager InvM;
|
local KFInventoryManager InvM;
|
||||||
@ -384,10 +389,12 @@ function DelayedRagdoll()
|
|||||||
{
|
{
|
||||||
SetFeignDeath(2.f+FRand()*3.f);
|
SetFeignDeath(2.f+FRand()*3.f);
|
||||||
}
|
}
|
||||||
|
|
||||||
exec function FeignDeath(float Time)
|
exec function FeignDeath(float Time)
|
||||||
{
|
{
|
||||||
SetFeignDeath(Time);
|
SetFeignDeath(Time);
|
||||||
}
|
}
|
||||||
|
|
||||||
function SetFeignDeath(float Time)
|
function SetFeignDeath(float Time)
|
||||||
{
|
{
|
||||||
if (WorldInfo.NetMode!=NM_Client && !bFeigningDeath && Health>0 && bCanBecomeRagdoll && NoRagdollChance<1.f && (NoRagdollChance==0.f || FRand()>NoRagdollChance))
|
if (WorldInfo.NetMode!=NM_Client && !bFeigningDeath && Health>0 && bCanBecomeRagdoll && NoRagdollChance<1.f && (NoRagdollChance==0.f || FRand()>NoRagdollChance))
|
||||||
@ -397,6 +404,7 @@ function SetFeignDeath(float Time)
|
|||||||
SetTimer(Time,false,'UnsetFeignDeath');
|
SetTimer(Time,false,'UnsetFeignDeath');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function UnsetFeignDeath()
|
function UnsetFeignDeath()
|
||||||
{
|
{
|
||||||
if (bFeigningDeath)
|
if (bFeigningDeath)
|
||||||
@ -560,6 +568,7 @@ simulated function PlayFeignDeath(bool bEnable, optional bool bForce, optional b
|
|||||||
SetRotation(NewRotation);
|
SetRotation(NewRotation);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
final function vector PickNearestNode()
|
final function vector PickNearestNode()
|
||||||
{
|
{
|
||||||
local NavigationPoint N,Best;
|
local NavigationPoint N,Best;
|
||||||
@ -576,6 +585,7 @@ final function vector PickNearestNode()
|
|||||||
}
|
}
|
||||||
return (Best!=None ? Best.Location : Location);
|
return (Best!=None ? Best.Location : Location);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function bool SetFeignEndLocation(vector HitLocation, vector FeignLocation)
|
simulated function bool SetFeignEndLocation(vector HitLocation, vector FeignLocation)
|
||||||
{
|
{
|
||||||
local vector NewDest;
|
local vector NewDest;
|
||||||
@ -607,6 +617,7 @@ simulated function bool SetFeignEndLocation(vector HitLocation, vector FeignLoca
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function bool CheckValidLocation(vector FeignLocation)
|
simulated function bool CheckValidLocation(vector FeignLocation)
|
||||||
{
|
{
|
||||||
local vector HitLocation, HitNormal, DestFinalZ;
|
local vector HitLocation, HitNormal, DestFinalZ;
|
||||||
@ -627,6 +638,7 @@ simulated function bool CheckValidLocation(vector FeignLocation)
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function SetPawnRBChannels(bool bRagdollMode)
|
simulated function SetPawnRBChannels(bool bRagdollMode)
|
||||||
{
|
{
|
||||||
if (bRagdollMode)
|
if (bRagdollMode)
|
||||||
@ -649,6 +661,7 @@ simulated function SetPawnRBChannels(bool bRagdollMode)
|
|||||||
Mesh.SetRBCollidesWithChannel(RBCC_BlockingVolume,FALSE);
|
Mesh.SetRBCollidesWithChannel(RBCC_BlockingVolume,FALSE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function PlayRagdollDeath(class<DamageType> DamageType, vector HitLoc)
|
simulated function PlayRagdollDeath(class<DamageType> DamageType, vector HitLoc)
|
||||||
{
|
{
|
||||||
local TraceHitInfo HitInfo;
|
local TraceHitInfo HitInfo;
|
||||||
@ -693,6 +706,7 @@ simulated function PlayRagdollDeath(class<DamageType> DamageType, vector HitLoc)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function StartFeignDeathRecoveryAnim()
|
simulated function StartFeignDeathRecoveryAnim()
|
||||||
{
|
{
|
||||||
if (FPBodyMesh!=None && !bFPLegsAttached && bOnFirstPerson && Class'ExtPlayerController'.Default.bShowFPLegs)
|
if (FPBodyMesh!=None && !bFPLegsAttached && bOnFirstPerson && Class'ExtPlayerController'.Default.bShowFPLegs)
|
||||||
@ -740,6 +754,7 @@ simulated event FellOutOfWorld(class<DamageType> dmgType)
|
|||||||
if (Role==ROLE_Authority && NextRedeemTimer<WorldInfo.TimeSeconds) // Make sure to not to spam deathmessages while ghosting.
|
if (Role==ROLE_Authority && NextRedeemTimer<WorldInfo.TimeSeconds) // Make sure to not to spam deathmessages while ghosting.
|
||||||
Super.FellOutOfWorld(dmgType);
|
Super.FellOutOfWorld(dmgType);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated event OutsideWorldBounds()
|
simulated event OutsideWorldBounds()
|
||||||
{
|
{
|
||||||
if (Role==ROLE_Authority && NextRedeemTimer<WorldInfo.TimeSeconds)
|
if (Role==ROLE_Authority && NextRedeemTimer<WorldInfo.TimeSeconds)
|
||||||
|
@ -21,6 +21,7 @@ function InitializeMenu(KFGFxMoviePlayer_Manager InManager)
|
|||||||
InitCharacterMenu();
|
InitCharacterMenu();
|
||||||
// TraderItems = KFGameReplicationInfo(GetPC().WorldInfo.GRI).TraderItems;
|
// TraderItems = KFGameReplicationInfo(GetPC().WorldInfo.GRI).TraderItems;
|
||||||
}
|
}
|
||||||
|
|
||||||
function InitCharacterMenu()
|
function InitCharacterMenu()
|
||||||
{
|
{
|
||||||
ExtPRI = ExtPlayerReplicationInfo(GetPC().PlayerReplicationInfo);
|
ExtPRI = ExtPlayerReplicationInfo(GetPC().PlayerReplicationInfo);
|
||||||
@ -211,6 +212,7 @@ final function string GetMenuName(Object Obj)
|
|||||||
{
|
{
|
||||||
return Obj==None ? "Empty" : Repl(string(Obj.Name),"_"," ");
|
return Obj==None ? "Empty" : Repl(string(Obj.Name),"_"," ");
|
||||||
}
|
}
|
||||||
|
|
||||||
final function string GetMenuNameStr(string ObjName)
|
final function string GetMenuNameStr(string ObjName)
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
|
@ -22,6 +22,7 @@ function OnOpen()
|
|||||||
ExUpdateContainers(ExtPrevPerk);
|
ExUpdateContainers(ExtPrevPerk);
|
||||||
SetBool("locked", true);
|
SetBool("locked", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
final function ExUpdateContainers(Ext_PerkBase PerkClass)
|
final function ExUpdateContainers(Ext_PerkBase PerkClass)
|
||||||
{
|
{
|
||||||
LastPerkLevel = PerkClass.CurrentLevel;
|
LastPerkLevel = PerkClass.CurrentLevel;
|
||||||
@ -68,6 +69,7 @@ function Callback_PerkSelected(byte NewPerkIndex, bool bClickedIndex)
|
|||||||
ExtKFPC.PendingPerkClass = ExtPrevPerk.Class;
|
ExtKFPC.PendingPerkClass = ExtPrevPerk.Class;
|
||||||
ExtKFPC.SwitchToPerk(ExtPrevPerk.Class);
|
ExtKFPC.SwitchToPerk(ExtPrevPerk.Class);
|
||||||
}
|
}
|
||||||
|
|
||||||
function Callback_SkillSelectionOpened();
|
function Callback_SkillSelectionOpened();
|
||||||
|
|
||||||
defaultproperties
|
defaultproperties
|
||||||
|
@ -8,10 +8,12 @@ function InitializeMenu(KFGFxMoviePlayer_Manager InManager)
|
|||||||
Super.InitializeMenu(InManager);
|
Super.InitializeMenu(InManager);
|
||||||
ExtKFPC = ExtPlayerController (GetPC());
|
ExtKFPC = ExtPlayerController (GetPC());
|
||||||
}
|
}
|
||||||
|
|
||||||
function int GetPerkIndex()
|
function int GetPerkIndex()
|
||||||
{
|
{
|
||||||
return (ExtKFPC.ActivePerkManager!=None ? Max(ExtKFPC.ActivePerkManager.UserPerks.Find(ExtKFPC.ActivePerkManager.CurrentPerk),0) : 0);
|
return (ExtKFPC.ActivePerkManager!=None ? Max(ExtKFPC.ActivePerkManager.UserPerks.Find(ExtKFPC.ActivePerkManager.CurrentPerk),0) : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
function UpdatePlayerInfo()
|
function UpdatePlayerInfo()
|
||||||
{
|
{
|
||||||
if (ExtKFPC != none && PlayerInfoContainer != none)
|
if (ExtKFPC != none && PlayerInfoContainer != none)
|
||||||
|
@ -24,6 +24,7 @@ event bool WidgetInitialized(name WidgetName, name WidgetPath, GFxObject Widget)
|
|||||||
return Super.WidgetInitialized(WidgetName,WidgetPath,Widget);
|
return Super.WidgetInitialized(WidgetName,WidgetPath,Widget);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function LaunchMenus(optional bool bForceSkipLobby)
|
function LaunchMenus(optional bool bForceSkipLobby)
|
||||||
{
|
{
|
||||||
local GFxWidgetBinding WidgetBinding;
|
local GFxWidgetBinding WidgetBinding;
|
||||||
|
@ -46,6 +46,7 @@ final function SetGrenadeCap(byte AddedCap)
|
|||||||
if (RepState==REP_Done)
|
if (RepState==REP_Done)
|
||||||
ClientSetGrenadeCap(MaxGrenadeCount);
|
ClientSetGrenadeCap(MaxGrenadeCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated reliable client function ClientSetGrenadeCap(byte NewCap)
|
simulated reliable client function ClientSetGrenadeCap(byte NewCap)
|
||||||
{
|
{
|
||||||
MaxGrenadeCount = NewCap;
|
MaxGrenadeCount = NewCap;
|
||||||
@ -63,6 +64,7 @@ function bool ApplyPerkClass(class<Ext_PerkBase> P)
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function bool ApplyPerkName(string S)
|
function bool ApplyPerkName(string S)
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
@ -75,6 +77,7 @@ function bool ApplyPerkName(string S)
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function ApplyPerk(Ext_PerkBase P)
|
function ApplyPerk(Ext_PerkBase P)
|
||||||
{
|
{
|
||||||
local KFPawn_Human HP;
|
local KFPawn_Human HP;
|
||||||
@ -142,6 +145,7 @@ function ApplyPerk(Ext_PerkBase P)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated final function Ext_PerkBase FindPerk(class<Ext_PerkBase> P)
|
simulated final function Ext_PerkBase FindPerk(class<Ext_PerkBase> P)
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
@ -186,10 +190,12 @@ simulated function InitPerks()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function CheckPlayTime()
|
function CheckPlayTime()
|
||||||
{
|
{
|
||||||
++TotalPlayTime; // Stats.
|
++TotalPlayTime; // Stats.
|
||||||
}
|
}
|
||||||
|
|
||||||
function ServerInitPerks()
|
function ServerInitPerks()
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
@ -209,6 +215,7 @@ simulated function RegisterPerk(Ext_PerkBase P)
|
|||||||
UserPerks[UserPerks.Length] = P;
|
UserPerks[UserPerks.Length] = P;
|
||||||
P.PerkManager = Self;
|
P.PerkManager = Self;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function UnregisterPerk(Ext_PerkBase P)
|
simulated function UnregisterPerk(Ext_PerkBase P)
|
||||||
{
|
{
|
||||||
UserPerks.RemoveItem(P);
|
UserPerks.RemoveItem(P);
|
||||||
@ -415,6 +422,7 @@ function InitiateClientRep()
|
|||||||
RepIndex = 0;
|
RepIndex = 0;
|
||||||
SetTimer(0.01,true,'ReplicateTimer');
|
SetTimer(0.01,true,'ReplicateTimer');
|
||||||
}
|
}
|
||||||
|
|
||||||
function ReplicateTimer()
|
function ReplicateTimer()
|
||||||
{
|
{
|
||||||
switch (RepState)
|
switch (RepState)
|
||||||
@ -478,123 +486,150 @@ simulated function ModifySpeed(out float Speed)
|
|||||||
if (CurrentPerk!=None)
|
if (CurrentPerk!=None)
|
||||||
Speed *= CurrentPerk.Modifiers[0];
|
Speed *= CurrentPerk.Modifiers[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
function ModifyDamageGiven(out int InDamage, optional Actor DamageCauser, optional KFPawn_Monster MyKFPM, optional KFPlayerController DamageInstigator, optional class<KFDamageType> DamageType, optional int HitZoneIdx)
|
function ModifyDamageGiven(out int InDamage, optional Actor DamageCauser, optional KFPawn_Monster MyKFPM, optional KFPlayerController DamageInstigator, optional class<KFDamageType> DamageType, optional int HitZoneIdx)
|
||||||
{
|
{
|
||||||
if (CurrentPerk!=None)
|
if (CurrentPerk!=None)
|
||||||
CurrentPerk.ModifyDamageGiven(InDamage,DamageCauser,MyKFPM,DamageInstigator,DamageType,HitZoneIdx);
|
CurrentPerk.ModifyDamageGiven(InDamage,DamageCauser,MyKFPM,DamageInstigator,DamageType,HitZoneIdx);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function ModifyDamageTaken(out int InDamage, optional class<DamageType> DamageType, optional Controller InstigatedBy)
|
simulated function ModifyDamageTaken(out int InDamage, optional class<DamageType> DamageType, optional Controller InstigatedBy)
|
||||||
{
|
{
|
||||||
if (CurrentPerk!=None)
|
if (CurrentPerk!=None)
|
||||||
CurrentPerk.ModifyDamageTaken(InDamage,DamageType,InstigatedBy);
|
CurrentPerk.ModifyDamageTaken(InDamage,DamageType,InstigatedBy);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function ModifyRecoil(out float CurrentRecoilModifier, KFWeapon KFW)
|
simulated function ModifyRecoil(out float CurrentRecoilModifier, KFWeapon KFW)
|
||||||
{
|
{
|
||||||
if (CurrentPerk!=None)
|
if (CurrentPerk!=None)
|
||||||
CurrentPerk.ModifyRecoil(CurrentRecoilModifier,KFW);
|
CurrentPerk.ModifyRecoil(CurrentRecoilModifier,KFW);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function ModifySpread(out float InSpread)
|
simulated function ModifySpread(out float InSpread)
|
||||||
{
|
{
|
||||||
if (CurrentPerk!=None)
|
if (CurrentPerk!=None)
|
||||||
CurrentPerk.ModifySpread(InSpread);
|
CurrentPerk.ModifySpread(InSpread);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function ModifyRateOfFire(out float InRate, KFWeapon KFW)
|
simulated function ModifyRateOfFire(out float InRate, KFWeapon KFW)
|
||||||
{
|
{
|
||||||
if (CurrentPerk!=None)
|
if (CurrentPerk!=None)
|
||||||
CurrentPerk.ModifyRateOfFire(InRate,KFW);
|
CurrentPerk.ModifyRateOfFire(InRate,KFW);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function float GetReloadRateScale(KFWeapon KFW)
|
simulated function float GetReloadRateScale(KFWeapon KFW)
|
||||||
{
|
{
|
||||||
return (CurrentPerk!=None ? CurrentPerk.GetReloadRateScale(KFW) : 1.f);
|
return (CurrentPerk!=None ? CurrentPerk.GetReloadRateScale(KFW) : 1.f);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function bool GetUsingTactialReload(KFWeapon KFW)
|
simulated function bool GetUsingTactialReload(KFWeapon KFW)
|
||||||
{
|
{
|
||||||
return (CurrentPerk!=None ? CurrentPerk.GetUsingTactialReload(KFW) : false);
|
return (CurrentPerk!=None ? CurrentPerk.GetUsingTactialReload(KFW) : false);
|
||||||
}
|
}
|
||||||
|
|
||||||
function ModifyHealth(out int InHealth)
|
function ModifyHealth(out int InHealth)
|
||||||
{
|
{
|
||||||
if (CurrentPerk!=None)
|
if (CurrentPerk!=None)
|
||||||
CurrentPerk.ModifyHealth(InHealth);
|
CurrentPerk.ModifyHealth(InHealth);
|
||||||
}
|
}
|
||||||
|
|
||||||
function ModifyArmor(out byte MaxArmor)
|
function ModifyArmor(out byte MaxArmor)
|
||||||
{
|
{
|
||||||
if (CurrentPerk!=None)
|
if (CurrentPerk!=None)
|
||||||
CurrentPerk.ModifyArmor(MaxArmor);
|
CurrentPerk.ModifyArmor(MaxArmor);
|
||||||
}
|
}
|
||||||
|
|
||||||
function float GetKnockdownPowerModifier(optional class<DamageType> DamageType, optional byte BodyPart, optional bool bIsSprinting=false)
|
function float GetKnockdownPowerModifier(optional class<DamageType> DamageType, optional byte BodyPart, optional bool bIsSprinting=false)
|
||||||
{
|
{
|
||||||
return (CurrentPerk!=None ? CurrentPerk.GetKnockdownPowerModifier() : 1.f);
|
return (CurrentPerk!=None ? CurrentPerk.GetKnockdownPowerModifier() : 1.f);
|
||||||
}
|
}
|
||||||
|
|
||||||
function float GetStumblePowerModifier(optional KFPawn KFP, optional class<KFDamageType> DamageType, optional out float CooldownModifier, optional byte BodyPart)
|
function float GetStumblePowerModifier(optional KFPawn KFP, optional class<KFDamageType> DamageType, optional out float CooldownModifier, optional byte BodyPart)
|
||||||
{
|
{
|
||||||
return (CurrentPerk!=None ? CurrentPerk.GetKnockdownPowerModifier() : 1.f);
|
return (CurrentPerk!=None ? CurrentPerk.GetKnockdownPowerModifier() : 1.f);
|
||||||
}
|
}
|
||||||
|
|
||||||
function float GetStunPowerModifier(optional class<DamageType> DamageType, optional byte HitZoneIdx)
|
function float GetStunPowerModifier(optional class<DamageType> DamageType, optional byte HitZoneIdx)
|
||||||
{
|
{
|
||||||
return (CurrentPerk!=None ? CurrentPerk.GetStunPowerModifier(DamageType,HitZoneIdx) : 1.f);
|
return (CurrentPerk!=None ? CurrentPerk.GetStunPowerModifier(DamageType,HitZoneIdx) : 1.f);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function ModifyMeleeAttackSpeed(out float InDuration, KFWeapon KFW)
|
simulated function ModifyMeleeAttackSpeed(out float InDuration, KFWeapon KFW)
|
||||||
{
|
{
|
||||||
if (CurrentPerk!=None)
|
if (CurrentPerk!=None)
|
||||||
CurrentPerk.ModifyMeleeAttackSpeed(InDuration);
|
CurrentPerk.ModifyMeleeAttackSpeed(InDuration);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function class<KFProj_Grenade> GetGrenadeClass()
|
simulated function class<KFProj_Grenade> GetGrenadeClass()
|
||||||
{
|
{
|
||||||
return (CurrentPerk!=None ? CurrentPerk.GrenadeClass : GrenadeClass);
|
return (CurrentPerk!=None ? CurrentPerk.GrenadeClass : GrenadeClass);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function ModifyWeldingRate(out float FastenRate, out float UnfastenRate)
|
simulated function ModifyWeldingRate(out float FastenRate, out float UnfastenRate)
|
||||||
{
|
{
|
||||||
if (CurrentPerk!=None)
|
if (CurrentPerk!=None)
|
||||||
CurrentPerk.ModifyWeldingRate(FastenRate,UnfastenRate);
|
CurrentPerk.ModifyWeldingRate(FastenRate,UnfastenRate);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function bool HasNightVision()
|
simulated function bool HasNightVision()
|
||||||
{
|
{
|
||||||
return (CurrentPerk!=None ? CurrentPerk.bHasNightVision : false);
|
return (CurrentPerk!=None ? CurrentPerk.bHasNightVision : false);
|
||||||
}
|
}
|
||||||
|
|
||||||
function bool RepairArmor(Pawn HealTarget)
|
function bool RepairArmor(Pawn HealTarget)
|
||||||
{
|
{
|
||||||
return (CurrentPerk!=None ? CurrentPerk.RepairArmor(HealTarget) : false);
|
return (CurrentPerk!=None ? CurrentPerk.RepairArmor(HealTarget) : false);
|
||||||
}
|
}
|
||||||
|
|
||||||
function bool ModifyHealAmount(out float HealAmount)
|
function bool ModifyHealAmount(out float HealAmount)
|
||||||
{
|
{
|
||||||
return (CurrentPerk!=None ? CurrentPerk.ModifyHealAmount(HealAmount) : false);
|
return (CurrentPerk!=None ? CurrentPerk.ModifyHealAmount(HealAmount) : false);
|
||||||
}
|
}
|
||||||
|
|
||||||
function bool CanNotBeGrabbed()
|
function bool CanNotBeGrabbed()
|
||||||
{
|
{
|
||||||
return (CurrentPerk!=None ? !CurrentPerk.bCanBeGrabbed : false);
|
return (CurrentPerk!=None ? !CurrentPerk.bCanBeGrabbed : false);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function ModifyMagSizeAndNumber(KFWeapon KFW, out int MagazineCapacity, optional array< Class<KFPerk> > WeaponPerkClass, optional bool bSecondary=false, optional name WeaponClassname)
|
simulated function ModifyMagSizeAndNumber(KFWeapon KFW, out int MagazineCapacity, optional array< Class<KFPerk> > WeaponPerkClass, optional bool bSecondary=false, optional name WeaponClassname)
|
||||||
{
|
{
|
||||||
if (CurrentPerk!=None)
|
if (CurrentPerk!=None)
|
||||||
CurrentPerk.ModifyMagSizeAndNumber(KFW,MagazineCapacity,WeaponPerkClass,bSecondary,WeaponClassname);
|
CurrentPerk.ModifyMagSizeAndNumber(KFW,MagazineCapacity,WeaponPerkClass,bSecondary,WeaponClassname);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function ModifySpareAmmoAmount(KFWeapon KFW, out int PrimarySpareAmmo, optional const out STraderItem TraderItem, optional bool bSecondary=false)
|
simulated function ModifySpareAmmoAmount(KFWeapon KFW, out int PrimarySpareAmmo, optional const out STraderItem TraderItem, optional bool bSecondary=false)
|
||||||
{
|
{
|
||||||
if (CurrentPerk!=None)
|
if (CurrentPerk!=None)
|
||||||
CurrentPerk.ModifySpareAmmoAmount(KFW,PrimarySpareAmmo,TraderItem,bSecondary);
|
CurrentPerk.ModifySpareAmmoAmount(KFW,PrimarySpareAmmo,TraderItem,bSecondary);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function ModifyMaxSpareAmmoAmount(KFWeapon KFW, out int SpareAmmoCapacity, optional const out STraderItem TraderItem, optional bool bSecondary=false)
|
simulated function ModifyMaxSpareAmmoAmount(KFWeapon KFW, out int SpareAmmoCapacity, optional const out STraderItem TraderItem, optional bool bSecondary=false)
|
||||||
{
|
{
|
||||||
if (CurrentPerk!=None)
|
if (CurrentPerk!=None)
|
||||||
CurrentPerk.ModifySpareAmmoAmount(KFW,SpareAmmoCapacity,TraderItem,bSecondary);
|
CurrentPerk.ModifySpareAmmoAmount(KFW,SpareAmmoCapacity,TraderItem,bSecondary);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function bool ShouldMagSizeModifySpareAmmo(KFWeapon KFW, optional Class<KFPerk> WeaponPerkClass)
|
simulated function bool ShouldMagSizeModifySpareAmmo(KFWeapon KFW, optional Class<KFPerk> WeaponPerkClass)
|
||||||
{
|
{
|
||||||
return (CurrentPerk!=None ? CurrentPerk.ShouldMagSizeModifySpareAmmo(KFW,WeaponPerkClass) : false);
|
return (CurrentPerk!=None ? CurrentPerk.ShouldMagSizeModifySpareAmmo(KFW,WeaponPerkClass) : false);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function ModifyHealerRechargeTime(out float RechargeRate)
|
simulated function ModifyHealerRechargeTime(out float RechargeRate)
|
||||||
{
|
{
|
||||||
if (CurrentPerk!=None)
|
if (CurrentPerk!=None)
|
||||||
CurrentPerk.ModifyHealerRechargeTime(RechargeRate);
|
CurrentPerk.ModifyHealerRechargeTime(RechargeRate);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function bool CanExplosiveWeld()
|
simulated function bool CanExplosiveWeld()
|
||||||
{
|
{
|
||||||
return (CurrentPerk!=None ? CurrentPerk.bExplosiveWeld : false);
|
return (CurrentPerk!=None ? CurrentPerk.bExplosiveWeld : false);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function bool IsOnContactActive()
|
simulated function bool IsOnContactActive()
|
||||||
{
|
{
|
||||||
return (CurrentPerk!=None ? CurrentPerk.bExplodeOnContact : false);
|
return (CurrentPerk!=None ? CurrentPerk.bExplodeOnContact : false);
|
||||||
}
|
}
|
||||||
|
|
||||||
function bool CanSpreadNapalm()
|
function bool CanSpreadNapalm()
|
||||||
{
|
{
|
||||||
if (CurrentPerk!=None && CurrentPerk.bNapalmFire && LastNapalmTime!=WorldInfo.TimeSeconds)
|
if (CurrentPerk!=None && CurrentPerk.bNapalmFire && LastNapalmTime!=WorldInfo.TimeSeconds)
|
||||||
@ -604,34 +639,41 @@ function bool CanSpreadNapalm()
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function bool IsRangeActive()
|
simulated function bool IsRangeActive()
|
||||||
{
|
{
|
||||||
return MyPRI!=None ? MyPRI.bExtraFireRange : false;
|
return MyPRI!=None ? MyPRI.bExtraFireRange : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function DrawSpecialPerkHUD(Canvas C)
|
simulated function DrawSpecialPerkHUD(Canvas C)
|
||||||
{
|
{
|
||||||
if (CurrentPerk!=None)
|
if (CurrentPerk!=None)
|
||||||
CurrentPerk.DrawSpecialPerkHUD(C);
|
CurrentPerk.DrawSpecialPerkHUD(C);
|
||||||
}
|
}
|
||||||
|
|
||||||
function PlayerKilled(KFPawn_Monster Victim, class<DamageType> DamageType)
|
function PlayerKilled(KFPawn_Monster Victim, class<DamageType> DamageType)
|
||||||
{
|
{
|
||||||
if (CurrentPerk!=None)
|
if (CurrentPerk!=None)
|
||||||
CurrentPerk.PlayerKilled(Victim,DamageType);
|
CurrentPerk.PlayerKilled(Victim,DamageType);
|
||||||
}
|
}
|
||||||
|
|
||||||
function ModifyBloatBileDoT(out float DoTScaler)
|
function ModifyBloatBileDoT(out float DoTScaler)
|
||||||
{
|
{
|
||||||
if (CurrentPerk!=None)
|
if (CurrentPerk!=None)
|
||||||
CurrentPerk.ModifyBloatBileDoT(DoTScaler);
|
CurrentPerk.ModifyBloatBileDoT(DoTScaler);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function bool GetIsUberAmmoActive(KFWeapon KFW)
|
simulated function bool GetIsUberAmmoActive(KFWeapon KFW)
|
||||||
{
|
{
|
||||||
return (CurrentPerk!=None ? CurrentPerk.GetIsUberAmmoActive(KFW) : false);
|
return (CurrentPerk!=None ? CurrentPerk.GetIsUberAmmoActive(KFW) : false);
|
||||||
}
|
}
|
||||||
|
|
||||||
function UpdatePerkHeadShots(ImpactInfo Impact, class<DamageType> DamageType, int NumHit)
|
function UpdatePerkHeadShots(ImpactInfo Impact, class<DamageType> DamageType, int NumHit)
|
||||||
{
|
{
|
||||||
if (CurrentPerk!=None)
|
if (CurrentPerk!=None)
|
||||||
CurrentPerk.UpdatePerkHeadShots(Impact,DamageType,NumHit);
|
CurrentPerk.UpdatePerkHeadShots(Impact,DamageType,NumHit);
|
||||||
}
|
}
|
||||||
|
|
||||||
function CheckForAirborneAgent(KFPawn HealTarget, class<DamageType> DamType, int HealAmount)
|
function CheckForAirborneAgent(KFPawn HealTarget, class<DamageType> DamType, int HealAmount)
|
||||||
{
|
{
|
||||||
if (!bCurrentlyHealing && CurrentPerk!=None)
|
if (!bCurrentlyHealing && CurrentPerk!=None)
|
||||||
@ -642,6 +684,7 @@ function CheckForAirborneAgent(KFPawn HealTarget, class<DamageType> DamType, int
|
|||||||
bCurrentlyHealing = false;
|
bCurrentlyHealing = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function float GetZedTimeModifier(KFWeapon W)
|
simulated function float GetZedTimeModifier(KFWeapon W)
|
||||||
{
|
{
|
||||||
return (CurrentPerk!=None ? CurrentPerk.GetZedTimeModifier(W) : 0.f);
|
return (CurrentPerk!=None ? CurrentPerk.GetZedTimeModifier(W) : 0.f);
|
||||||
@ -652,6 +695,7 @@ function bool IsAcidicCompoundActive()
|
|||||||
{
|
{
|
||||||
return (CurrentPerk!=None ? CurrentPerk.bToxicDart : false);
|
return (CurrentPerk!=None ? CurrentPerk.bToxicDart : false);
|
||||||
}
|
}
|
||||||
|
|
||||||
function ModifyACDamage(out int InDamage)
|
function ModifyACDamage(out int InDamage)
|
||||||
{
|
{
|
||||||
if (CurrentPerk!=None && CurrentPerk.bToxicDart)
|
if (CurrentPerk!=None && CurrentPerk.bToxicDart)
|
||||||
@ -663,10 +707,12 @@ function bool CouldBeZedShrapnel(class<KFDamageType> KFDT)
|
|||||||
{
|
{
|
||||||
return (CurrentPerk!=None ? (CurrentPerk.bFireExplode && class<KFDT_Fire>(KFDT)!=None) : false);
|
return (CurrentPerk!=None ? (CurrentPerk.bFireExplode && class<KFDT_Fire>(KFDT)!=None) : false);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function bool ShouldShrapnel()
|
simulated function bool ShouldShrapnel()
|
||||||
{
|
{
|
||||||
return (CurrentPerk!=None ? (CurrentPerk.bFireExplode && Rand(3)==0) : false);
|
return (CurrentPerk!=None ? (CurrentPerk.bFireExplode && Rand(3)==0) : false);
|
||||||
}
|
}
|
||||||
|
|
||||||
function GameExplosion GetExplosionTemplate()
|
function GameExplosion GetExplosionTemplate()
|
||||||
{
|
{
|
||||||
return class'KFPerk_Firebug'.Default.ExplosionTemplate;
|
return class'KFPerk_Firebug'.Default.ExplosionTemplate;
|
||||||
@ -677,10 +723,12 @@ function OnWaveEnded()
|
|||||||
{
|
{
|
||||||
CurrentPerk.OnWaveEnded();
|
CurrentPerk.OnWaveEnded();
|
||||||
}
|
}
|
||||||
|
|
||||||
function NotifyZedTimeStarted()
|
function NotifyZedTimeStarted()
|
||||||
{
|
{
|
||||||
CurrentPerk.NotifyZedTimeStarted();
|
CurrentPerk.NotifyZedTimeStarted();
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function float GetZedTimeExtensions(byte Level)
|
simulated function float GetZedTimeExtensions(byte Level)
|
||||||
{
|
{
|
||||||
return CurrentPerk.GetZedTimeExtensions(Level);
|
return CurrentPerk.GetZedTimeExtensions(Level);
|
||||||
@ -691,14 +739,17 @@ simulated function bool HasHeavyArmor()
|
|||||||
{
|
{
|
||||||
return (CurrentPerk!=None && CurrentPerk.bHeavyArmor);
|
return (CurrentPerk!=None && CurrentPerk.bHeavyArmor);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function float GetIronSightSpeedModifier(KFWeapon KFW)
|
simulated function float GetIronSightSpeedModifier(KFWeapon KFW)
|
||||||
{
|
{
|
||||||
return (CurrentPerk!=None ? CurrentPerk.GetIronSightSpeedModifier(KFW) : 1.f);
|
return (CurrentPerk!=None ? CurrentPerk.GetIronSightSpeedModifier(KFW) : 1.f);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function float GetCrouchSpeedModifier(KFWeapon KFW)
|
simulated function float GetCrouchSpeedModifier(KFWeapon KFW)
|
||||||
{
|
{
|
||||||
return (CurrentPerk!=None ? CurrentPerk.GetIronSightSpeedModifier(KFW) : 1.f);
|
return (CurrentPerk!=None ? CurrentPerk.GetIronSightSpeedModifier(KFW) : 1.f);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function bool ShouldKnockDownOnBump()
|
simulated function bool ShouldKnockDownOnBump()
|
||||||
{
|
{
|
||||||
return (CurrentPerk!=None && CurrentPerk.bHasSWATEnforcer);
|
return (CurrentPerk!=None && CurrentPerk.bHasSWATEnforcer);
|
||||||
@ -709,22 +760,27 @@ simulated function bool ShouldRandSirenResist()
|
|||||||
{
|
{
|
||||||
return (Ext_PerkDemolition(CurrentPerk)!=None ? Ext_PerkDemolition(CurrentPerk).bSirenResistance : false);
|
return (Ext_PerkDemolition(CurrentPerk)!=None ? Ext_PerkDemolition(CurrentPerk).bSirenResistance : false);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function bool IsAoEActive()
|
simulated function bool IsAoEActive()
|
||||||
{
|
{
|
||||||
return (Ext_PerkDemolition(CurrentPerk)!=None ? Ext_PerkDemolition(CurrentPerk).AOEMult > 1.0f : false);
|
return (Ext_PerkDemolition(CurrentPerk)!=None ? Ext_PerkDemolition(CurrentPerk).AOEMult > 1.0f : false);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function bool ShouldSacrifice()
|
simulated function bool ShouldSacrifice()
|
||||||
{
|
{
|
||||||
return (Ext_PerkDemolition(CurrentPerk)!=None ? (Ext_PerkDemolition(CurrentPerk).bCanUseSacrifice && !Ext_PerkDemolition(CurrentPerk).bUsedSacrifice) : false);
|
return (Ext_PerkDemolition(CurrentPerk)!=None ? (Ext_PerkDemolition(CurrentPerk).bCanUseSacrifice && !Ext_PerkDemolition(CurrentPerk).bUsedSacrifice) : false);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function bool ShouldNeverDud()
|
simulated function bool ShouldNeverDud()
|
||||||
{
|
{
|
||||||
return (Ext_PerkDemolition(CurrentPerk)!=None ? Ext_PerkDemolition(CurrentPerk).bProfessionalActive : false);
|
return (Ext_PerkDemolition(CurrentPerk)!=None ? Ext_PerkDemolition(CurrentPerk).bProfessionalActive : false);
|
||||||
}
|
}
|
||||||
|
|
||||||
function NotifyPerkSacrificeExploded()
|
function NotifyPerkSacrificeExploded()
|
||||||
{
|
{
|
||||||
if (Ext_PerkDemolition(CurrentPerk) != none) Ext_PerkDemolition(CurrentPerk).bUsedSacrifice = true;
|
if (Ext_PerkDemolition(CurrentPerk) != none) Ext_PerkDemolition(CurrentPerk).bUsedSacrifice = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function float GetAoERadiusModifier()
|
simulated function float GetAoERadiusModifier()
|
||||||
{
|
{
|
||||||
return (Ext_PerkDemolition(CurrentPerk)!=None ? Ext_PerkDemolition(CurrentPerk).GetAoERadiusModifier() : 1.0);
|
return (Ext_PerkDemolition(CurrentPerk)!=None ? Ext_PerkDemolition(CurrentPerk).GetAoERadiusModifier() : 1.0);
|
||||||
@ -735,30 +791,37 @@ simulated function bool GetHealingSpeedBoostActive()
|
|||||||
{
|
{
|
||||||
return (Ext_PerkFieldMedic(CurrentPerk)!=None ? Ext_PerkFieldMedic(CurrentPerk).GetHealingSpeedBoostActive() : false);
|
return (Ext_PerkFieldMedic(CurrentPerk)!=None ? Ext_PerkFieldMedic(CurrentPerk).GetHealingSpeedBoostActive() : false);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function bool GetHealingDamageBoostActive()
|
simulated function bool GetHealingDamageBoostActive()
|
||||||
{
|
{
|
||||||
return (Ext_PerkFieldMedic(CurrentPerk)!=None ? Ext_PerkFieldMedic(CurrentPerk).GetHealingDamageBoostActive() : false);
|
return (Ext_PerkFieldMedic(CurrentPerk)!=None ? Ext_PerkFieldMedic(CurrentPerk).GetHealingDamageBoostActive() : false);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function bool GetHealingShieldActive()
|
simulated function bool GetHealingShieldActive()
|
||||||
{
|
{
|
||||||
return (Ext_PerkFieldMedic(CurrentPerk)!=None ? Ext_PerkFieldMedic(CurrentPerk).GetHealingShieldActive() : false);
|
return (Ext_PerkFieldMedic(CurrentPerk)!=None ? Ext_PerkFieldMedic(CurrentPerk).GetHealingShieldActive() : false);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function float GetSelfHealingSurgePct()
|
simulated function float GetSelfHealingSurgePct()
|
||||||
{
|
{
|
||||||
return (Ext_PerkFieldMedic(CurrentPerk)!=None ? Ext_PerkFieldMedic(CurrentPerk).GetSelfHealingSurgePct() : 0.f);
|
return (Ext_PerkFieldMedic(CurrentPerk)!=None ? Ext_PerkFieldMedic(CurrentPerk).GetSelfHealingSurgePct() : 0.f);
|
||||||
}
|
}
|
||||||
|
|
||||||
function bool IsToxicDmgActive()
|
function bool IsToxicDmgActive()
|
||||||
{
|
{
|
||||||
return (Ext_PerkFieldMedic(CurrentPerk)!=None ? Ext_PerkFieldMedic(CurrentPerk).bUseToxicDamage : false);
|
return (Ext_PerkFieldMedic(CurrentPerk)!=None ? Ext_PerkFieldMedic(CurrentPerk).bUseToxicDamage : false);
|
||||||
}
|
}
|
||||||
|
|
||||||
static function class<KFDamageType> GetToxicDmgTypeClass()
|
static function class<KFDamageType> GetToxicDmgTypeClass()
|
||||||
{
|
{
|
||||||
return class'Ext_PerkFieldMedic'.static.GetToxicDmgTypeClass();
|
return class'Ext_PerkFieldMedic'.static.GetToxicDmgTypeClass();
|
||||||
}
|
}
|
||||||
|
|
||||||
static function ModifyToxicDmg(out int ToxicDamage)
|
static function ModifyToxicDmg(out int ToxicDamage)
|
||||||
{
|
{
|
||||||
ToxicDamage = class'Ext_PerkFieldMedic'.static.ModifyToxicDmg(ToxicDamage);
|
ToxicDamage = class'Ext_PerkFieldMedic'.static.ModifyToxicDmg(ToxicDamage);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function float GetSnarePower(optional class<DamageType> DamageType, optional byte HitZoneIdx)
|
simulated function float GetSnarePower(optional class<DamageType> DamageType, optional byte HitZoneIdx)
|
||||||
{
|
{
|
||||||
return (Ext_PerkFieldMedic(CurrentPerk)!=None ? Ext_PerkFieldMedic(CurrentPerk).GetSnarePower(DamageType, HitZoneIdx) : 0.f);
|
return (Ext_PerkFieldMedic(CurrentPerk)!=None ? Ext_PerkFieldMedic(CurrentPerk).GetSnarePower(DamageType, HitZoneIdx) : 0.f);
|
||||||
@ -769,6 +832,7 @@ simulated function bool CanRepairDoors()
|
|||||||
{
|
{
|
||||||
return (Ext_PerkSupport(CurrentPerk)!=None ? Ext_PerkSupport(CurrentPerk).CanRepairDoors() : false);
|
return (Ext_PerkSupport(CurrentPerk)!=None ? Ext_PerkSupport(CurrentPerk).CanRepairDoors() : false);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function float GetPenetrationModifier(byte Level, class<KFDamageType> DamageType, optional bool bForce )
|
simulated function float GetPenetrationModifier(byte Level, class<KFDamageType> DamageType, optional bool bForce )
|
||||||
{
|
{
|
||||||
return (Ext_PerkSupport(CurrentPerk)!=None ? Ext_PerkSupport(CurrentPerk).GetPenetrationModifier(Level, DamageType, bForce) : 0.f);
|
return (Ext_PerkSupport(CurrentPerk)!=None ? Ext_PerkSupport(CurrentPerk).GetPenetrationModifier(Level, DamageType, bForce) : 0.f);
|
||||||
|
@ -66,6 +66,7 @@ simulated function PostBeginPlay()
|
|||||||
SetTimer(0.1,true,'CheckPerk');
|
SetTimer(0.1,true,'CheckPerk');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function Destroyed()
|
simulated function Destroyed()
|
||||||
{
|
{
|
||||||
if (ActivePerkManager!=None)
|
if (ActivePerkManager!=None)
|
||||||
@ -74,6 +75,7 @@ simulated function Destroyed()
|
|||||||
if (ActivePerkManager!=None)
|
if (ActivePerkManager!=None)
|
||||||
ActivePerkManager.Destroy();
|
ActivePerkManager.Destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
function CheckPerk()
|
function CheckPerk()
|
||||||
{
|
{
|
||||||
if (CurrentPerk!=ActivePerkManager)
|
if (CurrentPerk!=ActivePerkManager)
|
||||||
@ -105,21 +107,25 @@ reliable client function AddAdminCmd(string S)
|
|||||||
AdminCommands[i].Info = Mid(S,j+1);
|
AdminCommands[i].Info = Mid(S,j+1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
reliable client function ClientSetHUD(class<HUD> newHUDType)
|
reliable client function ClientSetHUD(class<HUD> newHUDType)
|
||||||
{
|
{
|
||||||
Super.ClientSetHUD(newHUDType);
|
Super.ClientSetHUD(newHUDType);
|
||||||
SendServerSettings();
|
SendServerSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
reliable client function ClientSetBonus(SoundCue C, Object FX)
|
reliable client function ClientSetBonus(SoundCue C, Object FX)
|
||||||
{
|
{
|
||||||
BonusMusic = C;
|
BonusMusic = C;
|
||||||
BonusFX = FX;
|
BonusFX = FX;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated final function SendServerSettings()
|
simulated final function SendServerSettings()
|
||||||
{
|
{
|
||||||
if (LocalPlayer(Player)!=None)
|
if (LocalPlayer(Player)!=None)
|
||||||
ServerSetSettings(bHideKillMsg,bHideDamageMsg,bHideNumberMsg,bNoMonsterPlayer);
|
ServerSetSettings(bHideKillMsg,bHideDamageMsg,bHideNumberMsg,bNoMonsterPlayer);
|
||||||
}
|
}
|
||||||
|
|
||||||
reliable server function ServerSetSettings(bool bHideKill, bool bHideDmg, bool bHideNum, bool bNoZ)
|
reliable server function ServerSetSettings(bool bHideKill, bool bHideDmg, bool bHideNum, bool bNoZ)
|
||||||
{
|
{
|
||||||
bClientHideKillMsg = bHideKill;
|
bClientHideKillMsg = bHideKill;
|
||||||
@ -128,6 +134,7 @@ reliable server function ServerSetSettings(bool bHideKill, bool bHideDmg, bool b
|
|||||||
bNoDamageTracking = (bHideDmg && bHideNum);
|
bNoDamageTracking = (bHideDmg && bHideNum);
|
||||||
bClientNoZed = bNoZ;
|
bClientNoZed = bNoZ;
|
||||||
}
|
}
|
||||||
|
|
||||||
unreliable server function NotifyFixed(byte Mode)
|
unreliable server function NotifyFixed(byte Mode)
|
||||||
{
|
{
|
||||||
if (Mode==1 && (Pawn==None || (WorldInfo.TimeSeconds-Pawn.SpawnTime)<5.f))
|
if (Mode==1 && (Pawn==None || (WorldInfo.TimeSeconds-Pawn.SpawnTime)<5.f))
|
||||||
@ -136,6 +143,7 @@ unreliable server function NotifyFixed(byte Mode)
|
|||||||
if (Default.bRenderModes && ExtPlayerReplicationInfo(PlayerReplicationInfo)!=None)
|
if (Default.bRenderModes && ExtPlayerReplicationInfo(PlayerReplicationInfo)!=None)
|
||||||
ExtPlayerReplicationInfo(PlayerReplicationInfo).SetFixedData(Mode);
|
ExtPlayerReplicationInfo(PlayerReplicationInfo).SetFixedData(Mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
delegate OnClientFixed(ExtPlayerController PC, byte Mode);
|
delegate OnClientFixed(ExtPlayerController PC, byte Mode);
|
||||||
|
|
||||||
reliable client event ReceiveLocalizedMessage(class<LocalMessage> Message, optional int Switch, optional PlayerReplicationInfo RelatedPRI_1, optional PlayerReplicationInfo RelatedPRI_2, optional Object OptionalObject)
|
reliable client event ReceiveLocalizedMessage(class<LocalMessage> Message, optional int Switch, optional PlayerReplicationInfo RelatedPRI_1, optional PlayerReplicationInfo RelatedPRI_2, optional Object OptionalObject)
|
||||||
@ -176,10 +184,12 @@ function AddSmallRadiusKill(byte Difficulty, class<KFPerk> PerkClass)
|
|||||||
{
|
{
|
||||||
AwardXP(class'KFPerk_Berserker'.static.GetSmallRadiusKillXP(Difficulty));
|
AwardXP(class'KFPerk_Berserker'.static.GetSmallRadiusKillXP(Difficulty));
|
||||||
}
|
}
|
||||||
|
|
||||||
function AddWeldPoints(int PointsWelded)
|
function AddWeldPoints(int PointsWelded)
|
||||||
{
|
{
|
||||||
AwardXP(PointsWelded,1);
|
AwardXP(PointsWelded,1);
|
||||||
}
|
}
|
||||||
|
|
||||||
function AddHealPoints(int PointsHealed)
|
function AddHealPoints(int PointsHealed)
|
||||||
{
|
{
|
||||||
AwardXP(PointsHealed,2);
|
AwardXP(PointsHealed,2);
|
||||||
@ -253,6 +263,7 @@ reliable client function ReceiveServerMOTD(string S, bool bFinal)
|
|||||||
ServerMOTD $= S;
|
ServerMOTD $= S;
|
||||||
bMOTDReceived = bFinal;
|
bMOTDReceived = bFinal;
|
||||||
}
|
}
|
||||||
|
|
||||||
reliable server function ServerSetMOTD(string S, bool bFinal)
|
reliable server function ServerSetMOTD(string S, bool bFinal)
|
||||||
{
|
{
|
||||||
PendingMOTD $= S;
|
PendingMOTD $= S;
|
||||||
@ -277,6 +288,7 @@ reliable client function ReceiveLevelUp(Ext_PerkBase Perk, int NewLevel)
|
|||||||
if (Perk!=None)
|
if (Perk!=None)
|
||||||
MyGFxHUD.LevelUpNotificationWidget.ShowAchievementNotification(class'KFGFxWidget_LevelUpNotification'.Default.LevelUpString, Perk.PerkName, class'KFGFxWidget_LevelUpNotification'.Default.TierUnlockedString, Perk.GetPerkIconPath(NewLevel), false, NewLevel);
|
MyGFxHUD.LevelUpNotificationWidget.ShowAchievementNotification(class'KFGFxWidget_LevelUpNotification'.Default.LevelUpString, Perk.PerkName, class'KFGFxWidget_LevelUpNotification'.Default.TierUnlockedString, Perk.GetPerkIconPath(NewLevel), false, NewLevel);
|
||||||
}
|
}
|
||||||
|
|
||||||
reliable client function ReceiveKillMessage(class<Pawn> Victim, optional bool bGlobal, optional PlayerReplicationInfo KillerPRI)
|
reliable client function ReceiveKillMessage(class<Pawn> Victim, optional bool bGlobal, optional PlayerReplicationInfo KillerPRI)
|
||||||
{
|
{
|
||||||
if (bHideKillMsg || (bGlobal && KillerPRI==None))
|
if (bHideKillMsg || (bGlobal && KillerPRI==None))
|
||||||
@ -291,11 +303,13 @@ reliable client function ReceiveKillMessage(class<Pawn> Victim, optional bool bG
|
|||||||
else if (KFExtendedHUD(myHUD)!=None && Victim!=None)
|
else if (KFExtendedHUD(myHUD)!=None && Victim!=None)
|
||||||
KFExtendedHUD(myHUD).AddKillMessage(Victim,1,KillerPRI,byte(bGlobal));
|
KFExtendedHUD(myHUD).AddKillMessage(Victim,1,KillerPRI,byte(bGlobal));
|
||||||
}
|
}
|
||||||
|
|
||||||
unreliable client function ReceiveDamageMessage(class<Pawn> Victim, int Damage)
|
unreliable client function ReceiveDamageMessage(class<Pawn> Victim, int Damage)
|
||||||
{
|
{
|
||||||
if (!bHideDamageMsg && KFExtendedHUD(myHUD)!=None && Victim!=None)
|
if (!bHideDamageMsg && KFExtendedHUD(myHUD)!=None && Victim!=None)
|
||||||
KFExtendedHUD(myHUD).AddKillMessage(Victim,Damage,None,2);
|
KFExtendedHUD(myHUD).AddKillMessage(Victim,Damage,None,2);
|
||||||
}
|
}
|
||||||
|
|
||||||
unreliable client function ClientNumberMsg(int Count, vector Pos, EDmgMsgType Type)
|
unreliable client function ClientNumberMsg(int Count, vector Pos, EDmgMsgType Type)
|
||||||
{
|
{
|
||||||
if (!bHideNumberMsg && KFExtendedHUD(myHUD)!=None)
|
if (!bHideNumberMsg && KFExtendedHUD(myHUD)!=None)
|
||||||
@ -356,6 +370,7 @@ reliable client event TeamMessage(PlayerReplicationInfo PRI, coerce string S, na
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
final function PopScreenMsg(string S)
|
final function PopScreenMsg(string S)
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
@ -381,6 +396,7 @@ final function PopScreenMsg(string S)
|
|||||||
}
|
}
|
||||||
MyGFxHUD.DisplayPriorityMessage(S,L,T);
|
MyGFxHUD.DisplayPriorityMessage(S,L,T);
|
||||||
}
|
}
|
||||||
|
|
||||||
reliable client function ClientKillMessage(class<DamageType> DamType, PlayerReplicationInfo Victim, PlayerReplicationInfo KillerPRI, optional class<Pawn> KillerPawn)
|
reliable client function ClientKillMessage(class<DamageType> DamType, PlayerReplicationInfo Victim, PlayerReplicationInfo KillerPRI, optional class<Pawn> KillerPawn)
|
||||||
{
|
{
|
||||||
local string Msg,S;
|
local string Msg,S;
|
||||||
@ -435,6 +451,7 @@ reliable client function ClientKillMessage(class<DamageType> DamType, PlayerRepl
|
|||||||
KFExtendedHUD(myHUD).AddDeathMessage(Msg,S);
|
KFExtendedHUD(myHUD).AddDeathMessage(Msg,S);
|
||||||
ClientMessage(S,'DeathMessage');
|
ClientMessage(S,'DeathMessage');
|
||||||
}
|
}
|
||||||
|
|
||||||
reliable client function ClientZedKillMessage(class<DamageType> DamType, string Victim, optional PlayerReplicationInfo KillerPRI, optional class<Pawn> KillerPawn, optional bool bFFKill)
|
reliable client function ClientZedKillMessage(class<DamageType> DamType, string Victim, optional PlayerReplicationInfo KillerPRI, optional class<Pawn> KillerPawn, optional bool bFFKill)
|
||||||
{
|
{
|
||||||
local string Msg,S;
|
local string Msg,S;
|
||||||
@ -471,6 +488,7 @@ reliable client function ClientZedKillMessage(class<DamageType> DamType, string
|
|||||||
KFExtendedHUD(myHUD).AddDeathMessage(Msg,S);
|
KFExtendedHUD(myHUD).AddDeathMessage(Msg,S);
|
||||||
ClientMessage(S,'DeathMessage');
|
ClientMessage(S,'DeathMessage');
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated final function string ParseSuicideMsg(string Victim, class<DamageType> DamType)
|
simulated final function string ParseSuicideMsg(string Victim, class<DamageType> DamType)
|
||||||
{
|
{
|
||||||
local string S;
|
local string S;
|
||||||
@ -487,6 +505,7 @@ simulated final function string ParseSuicideMsg(string Victim, class<DamageType>
|
|||||||
return Victim$Chr(6)$"M was blown into pieces";
|
return Victim$Chr(6)$"M was blown into pieces";
|
||||||
return Victim$Chr(6)$"M had a sudden heart attack";
|
return Victim$Chr(6)$"M had a sudden heart attack";
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated final function string ParseKillMsg(string Victim, string Killer, bool bFF, class<DamageType> DamType)
|
simulated final function string ParseKillMsg(string Victim, string Killer, bool bFF, class<DamageType> DamType)
|
||||||
{
|
{
|
||||||
local string T,S;
|
local string T,S;
|
||||||
@ -514,10 +533,12 @@ reliable server function ServerCamera(name NewMode)
|
|||||||
NewMode = 'ThirdPerson';
|
NewMode = 'ThirdPerson';
|
||||||
SetCameraMode(NewMode);
|
SetCameraMode(NewMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
exec function Camera(name NewMode)
|
exec function Camera(name NewMode)
|
||||||
{
|
{
|
||||||
ServerCamera(PlayerCamera.CameraStyle=='FirstPerson' ? 'ThirdPerson' : 'FirstPerson');
|
ServerCamera(PlayerCamera.CameraStyle=='FirstPerson' ? 'ThirdPerson' : 'FirstPerson');
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated final function ToggleFPBody(bool bEnable)
|
simulated final function ToggleFPBody(bool bEnable)
|
||||||
{
|
{
|
||||||
bShowFPLegs = bEnable;
|
bShowFPLegs = bEnable;
|
||||||
@ -537,6 +558,7 @@ exec function Kick(string S)
|
|||||||
if (WorldInfo.Game!=None)
|
if (WorldInfo.Game!=None)
|
||||||
WorldInfo.Game.Kick(S);
|
WorldInfo.Game.Kick(S);
|
||||||
}
|
}
|
||||||
|
|
||||||
reliable server function SkipLobby();
|
reliable server function SkipLobby();
|
||||||
|
|
||||||
Delegate OnChangePerk(ExtPlayerController PC, class<Ext_PerkBase> NewPerk);
|
Delegate OnChangePerk(ExtPlayerController PC, class<Ext_PerkBase> NewPerk);
|
||||||
@ -614,6 +636,7 @@ function ShowBossNameplate(KFInterface_MonsterBoss KFBoss, optional string Playe
|
|||||||
SetTimer(8,false,'HideBossNameplate'); // MAKE sure it goes hidden.
|
SetTimer(8,false,'HideBossNameplate'); // MAKE sure it goes hidden.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function HideBossNameplate()
|
function HideBossNameplate()
|
||||||
{
|
{
|
||||||
if (!bNamePlateHidden)
|
if (!bNamePlateHidden)
|
||||||
@ -638,12 +661,14 @@ reliable server function ServerGetUnloadInfo(byte CallID, class<Ext_PerkBase> Pe
|
|||||||
{
|
{
|
||||||
OnRequestUnload(Self,CallID,PerkClass,bUnload);
|
OnRequestUnload(Self,CallID,PerkClass,bUnload);
|
||||||
}
|
}
|
||||||
|
|
||||||
delegate OnRequestUnload(ExtPlayerController PC, byte CallID, class<Ext_PerkBase> PerkClass, bool bUnload);
|
delegate OnRequestUnload(ExtPlayerController PC, byte CallID, class<Ext_PerkBase> PerkClass, bool bUnload);
|
||||||
|
|
||||||
reliable client function ClientGotUnloadInfo(byte CallID, byte Code, optional int DataA, optional int DataB)
|
reliable client function ClientGotUnloadInfo(byte CallID, byte Code, optional int DataA, optional int DataB)
|
||||||
{
|
{
|
||||||
OnClientGetResponse(CallID,Code,DataA,DataB);
|
OnClientGetResponse(CallID,Code,DataA,DataB);
|
||||||
}
|
}
|
||||||
|
|
||||||
delegate OnClientGetResponse(byte CallID, byte Code, int DataA, int DataB);
|
delegate OnClientGetResponse(byte CallID, byte Code, int DataA, int DataB);
|
||||||
function DefClientResponse(byte CallID, byte Code, int DataA, int DataB);
|
function DefClientResponse(byte CallID, byte Code, int DataA, int DataB);
|
||||||
|
|
||||||
@ -702,6 +727,7 @@ exec function ViewPlayerID(int ID)
|
|||||||
{
|
{
|
||||||
ServerViewPlayerID(ID);
|
ServerViewPlayerID(ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
reliable server function ServerViewPlayerID(int ID)
|
reliable server function ServerViewPlayerID(int ID)
|
||||||
{
|
{
|
||||||
local PlayerReplicationInfo PRI;
|
local PlayerReplicationInfo PRI;
|
||||||
@ -738,6 +764,7 @@ reliable server function SpectateRoaming()
|
|||||||
ClientSetLocation(Location,Rotation);
|
ClientSetLocation(Location,Rotation);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
reliable client function ClientSetLocation(vector NewLocation, rotator NewRotation)
|
reliable client function ClientSetLocation(vector NewLocation, rotator NewRotation)
|
||||||
{
|
{
|
||||||
SetLocation(NewLocation);
|
SetLocation(NewLocation);
|
||||||
@ -752,6 +779,7 @@ unreliable server function ServerPlayLevelUpDialog()
|
|||||||
Super.ServerPlayLevelUpDialog();
|
Super.ServerPlayLevelUpDialog();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
unreliable server function ServerPlayVoiceCommsDialog(int CommsIndex)
|
unreliable server function ServerPlayVoiceCommsDialog(int CommsIndex)
|
||||||
{
|
{
|
||||||
if (NextCommTime<WorldInfo.TimeSeconds)
|
if (NextCommTime<WorldInfo.TimeSeconds)
|
||||||
@ -771,6 +799,7 @@ exec function StartFire(optional byte FireModeNum)
|
|||||||
bAltFire = 1;
|
bAltFire = 1;
|
||||||
Super.StartFire(FireModeNum);
|
Super.StartFire(FireModeNum);
|
||||||
}
|
}
|
||||||
|
|
||||||
exec function StopFire(optional byte FireModeNum)
|
exec function StopFire(optional byte FireModeNum)
|
||||||
{
|
{
|
||||||
if (FireModeNum==0)
|
if (FireModeNum==0)
|
||||||
@ -878,11 +907,13 @@ simulated function EndGameCamFocus(vector Pos)
|
|||||||
else if (KFPawn(ViewTarget)!=None)
|
else if (KFPawn(ViewTarget)!=None)
|
||||||
KFPawn(ViewTarget).SetMeshVisibility(true);
|
KFPawn(ViewTarget).SetMeshVisibility(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
reliable client function ClientFocusView(vector Pos)
|
reliable client function ClientFocusView(vector Pos)
|
||||||
{
|
{
|
||||||
if (WorldInfo.NetMode==NM_Client)
|
if (WorldInfo.NetMode==NM_Client)
|
||||||
EndGameCamFocus(Pos);
|
EndGameCamFocus(Pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
final function bool CalcEndGameCam()
|
final function bool CalcEndGameCam()
|
||||||
{
|
{
|
||||||
local float T,RT;
|
local float T,RT;
|
||||||
@ -923,6 +954,7 @@ final function bool CalcEndGameCam()
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated event GetPlayerViewPoint(out vector out_Location, out Rotator out_Rotation)
|
simulated event GetPlayerViewPoint(out vector out_Location, out Rotator out_Rotation)
|
||||||
{
|
{
|
||||||
if (bEndGameCamFocus && CalcEndGameCam())
|
if (bEndGameCamFocus && CalcEndGameCam())
|
||||||
@ -933,6 +965,7 @@ simulated event GetPlayerViewPoint(out vector out_Location, out Rotator out_Rota
|
|||||||
}
|
}
|
||||||
Super.GetPlayerViewPoint(out_Location,out_Rotation);
|
Super.GetPlayerViewPoint(out_Location,out_Rotation);
|
||||||
}
|
}
|
||||||
|
|
||||||
exec function DebugRenderMode()
|
exec function DebugRenderMode()
|
||||||
{
|
{
|
||||||
if (WorldInfo.NetMode!=NM_Client)
|
if (WorldInfo.NetMode!=NM_Client)
|
||||||
@ -953,6 +986,7 @@ reliable server function ServerRequestStats(byte ListNum)
|
|||||||
SetTimer(0.001,true,'SendNextList');
|
SetTimer(0.001,true,'SendNextList');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function SendNextList()
|
function SendNextList()
|
||||||
{
|
{
|
||||||
if (!OnClientGetStat(Self,TransitListNum,TransitIndex++))
|
if (!OnClientGetStat(Self,TransitListNum,TransitIndex++))
|
||||||
@ -961,6 +995,7 @@ function SendNextList()
|
|||||||
ClearTimer('SendNextList');
|
ClearTimer('SendNextList');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated reliable client function ClientGetStat(byte ListNum, bool bFinal, optional string N, optional UniqueNetId ID, optional int V)
|
simulated reliable client function ClientGetStat(byte ListNum, bool bFinal, optional string N, optional UniqueNetId ID, optional int V)
|
||||||
{
|
{
|
||||||
OnClientReceiveStat(ListNum,bFinal,N,ID,V);
|
OnClientReceiveStat(ListNum,bFinal,N,ID,V);
|
||||||
@ -973,10 +1008,12 @@ reliable server function ChangeSpectateMode(bool bSpectator)
|
|||||||
{
|
{
|
||||||
OnSpectateChange(Self,bSpectator);
|
OnSpectateChange(Self,bSpectator);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated reliable client function ClientSpectateMode(bool bSpectator)
|
simulated reliable client function ClientSpectateMode(bool bSpectator)
|
||||||
{
|
{
|
||||||
UpdateURL("SpectatorOnly",(bSpectator ? "1" : "0"),false);
|
UpdateURL("SpectatorOnly",(bSpectator ? "1" : "0"),false);
|
||||||
}
|
}
|
||||||
|
|
||||||
Delegate OnSpectateChange(ExtPlayerController PC, bool bSpectator);
|
Delegate OnSpectateChange(ExtPlayerController PC, bool bSpectator);
|
||||||
|
|
||||||
state RagdollMove extends PlayerWalking
|
state RagdollMove extends PlayerWalking
|
||||||
|
@ -7,6 +7,7 @@ exec function StartCrouch()
|
|||||||
{
|
{
|
||||||
bDuck = 1;
|
bDuck = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
exec function ToggleCrouch()
|
exec function ToggleCrouch()
|
||||||
{
|
{
|
||||||
bDuck = (bDuck == 0) ? 1 : 0;
|
bDuck = (bDuck == 0) ? 1 : 0;
|
||||||
@ -28,6 +29,7 @@ simulated exec function IronSights(optional bool bHoldButtonMode)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated exec function IronSightsRelease(optional bool bHoldButtonMode)
|
simulated exec function IronSightsRelease(optional bool bHoldButtonMode)
|
||||||
{
|
{
|
||||||
local KFWeapon KFW;
|
local KFWeapon KFW;
|
||||||
|
@ -96,6 +96,7 @@ simulated final function bool CanUseSupply(Pawn P)
|
|||||||
{
|
{
|
||||||
return (SupplierLimit.SuppliedPawn!=P || SupplierLimit.NextSupplyTimer<WorldInfo.TimeSeconds);
|
return (SupplierLimit.SuppliedPawn!=P || SupplierLimit.NextSupplyTimer<WorldInfo.TimeSeconds);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated final function UsedSupply(Pawn P, float NextTime)
|
simulated final function UsedSupply(Pawn P, float NextTime)
|
||||||
{
|
{
|
||||||
SupplierLimit.SuppliedPawn = P;
|
SupplierLimit.SuppliedPawn = P;
|
||||||
@ -143,16 +144,19 @@ simulated event ReplicatedEvent(name VarName)
|
|||||||
Super.ReplicatedEvent(VarName);
|
Super.ReplicatedEvent(VarName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function SetPlayerName(string S)
|
function SetPlayerName(string S)
|
||||||
{
|
{
|
||||||
Super.SetPlayerName(S);
|
Super.SetPlayerName(S);
|
||||||
UpdateNameTag();
|
UpdateNameTag();
|
||||||
}
|
}
|
||||||
|
|
||||||
function SetPlayerNameTag(string S)
|
function SetPlayerNameTag(string S)
|
||||||
{
|
{
|
||||||
NameTag = S;
|
NameTag = S;
|
||||||
UpdateNameTag();
|
UpdateNameTag();
|
||||||
}
|
}
|
||||||
|
|
||||||
function OverrideWith(PlayerReplicationInfo PRI)
|
function OverrideWith(PlayerReplicationInfo PRI)
|
||||||
{
|
{
|
||||||
Super.OverrideWith(PRI);
|
Super.OverrideWith(PRI);
|
||||||
@ -161,12 +165,14 @@ function OverrideWith(PlayerReplicationInfo PRI)
|
|||||||
AdminType = ExtPlayerReplicationInfo(PRI).AdminType;
|
AdminType = ExtPlayerReplicationInfo(PRI).AdminType;
|
||||||
UpdateNameTag();
|
UpdateNameTag();
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated final function UpdateNameTag()
|
simulated final function UpdateNameTag()
|
||||||
{
|
{
|
||||||
if (NameTag!="")
|
if (NameTag!="")
|
||||||
TaggedPlayerName = "["$NameTag$"] "$PlayerName;
|
TaggedPlayerName = "["$NameTag$"] "$PlayerName;
|
||||||
else TaggedPlayerName = PlayerName;
|
else TaggedPlayerName = PlayerName;
|
||||||
}
|
}
|
||||||
|
|
||||||
final function SetLevelProgress(int CurLevel, int CurPrest, int MinLevel, int MaxLevel)
|
final function SetLevelProgress(int CurLevel, int CurPrest, int MinLevel, int MaxLevel)
|
||||||
{
|
{
|
||||||
local float V;
|
local float V;
|
||||||
@ -180,10 +186,12 @@ final function SetLevelProgress(int CurLevel, int CurPrest, int MinLevel, int Ma
|
|||||||
if (WorldInfo.NetMode!=NM_DedicatedServer)
|
if (WorldInfo.NetMode!=NM_DedicatedServer)
|
||||||
HUDPerkColor = PickPerkColor();
|
HUDPerkColor = PickPerkColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated final function string GetPerkLevelStr()
|
simulated final function string GetPerkLevelStr()
|
||||||
{
|
{
|
||||||
return (ECurrentPerkPrestige>0 ? (string(ECurrentPerkPrestige)$"-"$string(ECurrentPerkLevel)) : string(ECurrentPerkLevel));
|
return (ECurrentPerkPrestige>0 ? (string(ECurrentPerkPrestige)$"-"$string(ECurrentPerkLevel)) : string(ECurrentPerkLevel));
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated final function color PickPerkColor()
|
simulated final function color PickPerkColor()
|
||||||
{
|
{
|
||||||
local float P;
|
local float P;
|
||||||
@ -219,6 +227,7 @@ function SetInitPlayTime(int T)
|
|||||||
RepPlayTime = T;
|
RepPlayTime = T;
|
||||||
SetTimer(5,false,'UnsetPT');
|
SetTimer(5,false,'UnsetPT');
|
||||||
}
|
}
|
||||||
|
|
||||||
function UnsetPT()
|
function UnsetPT()
|
||||||
{
|
{
|
||||||
bInitialPT = false;
|
bInitialPT = false;
|
||||||
@ -228,6 +237,7 @@ Delegate bool OnRepNextItem(ExtPlayerReplicationInfo PRI, int RepIndex)
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated reliable client function ClientAddTraderItem(int Index, FCustomTraderItem Item)
|
simulated reliable client function ClientAddTraderItem(int Index, FCustomTraderItem Item)
|
||||||
{
|
{
|
||||||
// Make sure to not execute on server.
|
// Make sure to not execute on server.
|
||||||
@ -254,6 +264,7 @@ simulated static final function KFGFxObject_TraderItems CreateNewList()
|
|||||||
|
|
||||||
return L;
|
return L;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated static final function SetWeaponInfo(bool bDedicated, int Index, FCustomTraderItem Item, KFGFxObject_TraderItems List)
|
simulated static final function SetWeaponInfo(bool bDedicated, int Index, FCustomTraderItem Item, KFGFxObject_TraderItems List)
|
||||||
{
|
{
|
||||||
local array<STraderItemWeaponStats> S;
|
local array<STraderItemWeaponStats> S;
|
||||||
@ -318,6 +329,7 @@ simulated final function bool ShowAdminName()
|
|||||||
{
|
{
|
||||||
return (bAdmin || AdminType<255);
|
return (bAdmin || AdminType<255);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function string GetAdminName()
|
simulated function string GetAdminName()
|
||||||
{
|
{
|
||||||
switch (AdminType)
|
switch (AdminType)
|
||||||
@ -335,6 +347,7 @@ simulated function string GetAdminName()
|
|||||||
return "VIP";
|
return "VIP";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function string GetAdminNameAbr()
|
simulated function string GetAdminNameAbr()
|
||||||
{
|
{
|
||||||
switch (AdminType)
|
switch (AdminType)
|
||||||
@ -352,6 +365,7 @@ simulated function string GetAdminNameAbr()
|
|||||||
return "V";
|
return "V";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function string GetAdminColor()
|
simulated function string GetAdminColor()
|
||||||
{
|
{
|
||||||
switch (AdminType)
|
switch (AdminType)
|
||||||
@ -369,6 +383,7 @@ simulated function string GetAdminColor()
|
|||||||
return "FFD700";
|
return "FFD700";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function color GetAdminColorC()
|
simulated function color GetAdminColorC()
|
||||||
{
|
{
|
||||||
switch (AdminType)
|
switch (AdminType)
|
||||||
@ -398,10 +413,12 @@ function SetFixedData(byte M)
|
|||||||
FixedData = FixedData | M;
|
FixedData = FixedData | M;
|
||||||
SetTimer(5,false,'ClearFixed');
|
SetTimer(5,false,'ClearFixed');
|
||||||
}
|
}
|
||||||
|
|
||||||
function ClearFixed()
|
function ClearFixed()
|
||||||
{
|
{
|
||||||
FixedData = 0;
|
FixedData = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated final function string GetDesc()
|
simulated final function string GetDesc()
|
||||||
{
|
{
|
||||||
local string S;
|
local string S;
|
||||||
@ -418,6 +435,7 @@ simulated final function string GetDesc()
|
|||||||
S $= "WA.";
|
S $= "WA.";
|
||||||
return S;
|
return S;
|
||||||
}
|
}
|
||||||
|
|
||||||
delegate OnModeSet(ExtPlayerReplicationInfo PRI, byte Num);
|
delegate OnModeSet(ExtPlayerReplicationInfo PRI, byte Num);
|
||||||
|
|
||||||
simulated final function bool LoadPlayerCharacter(byte CharIndex, out FMyCustomChar CharInfo)
|
simulated final function bool LoadPlayerCharacter(byte CharIndex, out FMyCustomChar CharInfo)
|
||||||
@ -437,6 +455,7 @@ simulated final function bool LoadPlayerCharacter(byte CharIndex, out FMyCustomC
|
|||||||
CharInfo = SaveDataObjects[CharIndex].LoadData();
|
CharInfo = SaveDataObjects[CharIndex].LoadData();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated final function bool SavePlayerCharacter()
|
simulated final function bool SavePlayerCharacter()
|
||||||
{
|
{
|
||||||
local KFCharacterInfo_Human C;
|
local KFCharacterInfo_Human C;
|
||||||
@ -454,6 +473,7 @@ simulated final function bool SavePlayerCharacter()
|
|||||||
SaveDataObjects[CustomCharacter.CharacterIndex].SaveData(CustomCharacter);
|
SaveDataObjects[CustomCharacter.CharacterIndex].SaveData(CustomCharacter);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function ChangeCharacter(byte CharIndex, optional bool bFirstSet)
|
simulated function ChangeCharacter(byte CharIndex, optional bool bFirstSet)
|
||||||
{
|
{
|
||||||
local FMyCustomChar NewChar;
|
local FMyCustomChar NewChar;
|
||||||
@ -484,6 +504,7 @@ simulated function ChangeCharacter(byte CharIndex, optional bool bFirstSet)
|
|||||||
CharacterCustomizationChanged();
|
CharacterCustomizationChanged();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function UpdateCustomization(byte Type, byte MeshIndex, byte SkinIndex, optional byte SlotIndex)
|
simulated function UpdateCustomization(byte Type, byte MeshIndex, byte SkinIndex, optional byte SlotIndex)
|
||||||
{
|
{
|
||||||
switch (Type)
|
switch (Type)
|
||||||
@ -506,6 +527,7 @@ simulated function UpdateCustomization(byte Type, byte MeshIndex, byte SkinIndex
|
|||||||
if (WorldInfo.NetMode==NM_Client)
|
if (WorldInfo.NetMode==NM_Client)
|
||||||
CharacterCustomizationChanged();
|
CharacterCustomizationChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated final function RemoveAttachments()
|
simulated final function RemoveAttachments()
|
||||||
{
|
{
|
||||||
local byte i;
|
local byte i;
|
||||||
@ -520,6 +542,7 @@ simulated final function RemoveAttachments()
|
|||||||
if (WorldInfo.NetMode==NM_Client)
|
if (WorldInfo.NetMode==NM_Client)
|
||||||
CharacterCustomizationChanged();
|
CharacterCustomizationChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function ClearCharacterAttachment(int AttachmentIndex)
|
simulated function ClearCharacterAttachment(int AttachmentIndex)
|
||||||
{
|
{
|
||||||
if (UsesCustomChar())
|
if (UsesCustomChar())
|
||||||
@ -542,6 +565,7 @@ reliable server final function ServerSetCharacterX(FMyCustomChar NewMeshInfo)
|
|||||||
CharacterCustomizationChanged();
|
CharacterCustomizationChanged();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated final function bool IsClientCharLocked(byte Index)
|
simulated final function bool IsClientCharLocked(byte Index)
|
||||||
{
|
{
|
||||||
if (Index<CharacterArchetypes.Length)
|
if (Index<CharacterArchetypes.Length)
|
||||||
@ -572,6 +596,7 @@ simulated reliable client function AllCharReceived()
|
|||||||
bClientInitChars = true;
|
bClientInitChars = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated final function NotifyCharListDone()
|
simulated final function NotifyCharListDone()
|
||||||
{
|
{
|
||||||
local KFPawn_Human KFP;
|
local KFPawn_Human KFP;
|
||||||
@ -616,6 +641,7 @@ simulated final function bool ReallyUsingCustomChar()
|
|||||||
return false;
|
return false;
|
||||||
return (CustomCharacter.CharacterIndex>=CharacterArchetypes.Length);
|
return (CustomCharacter.CharacterIndex>=CharacterArchetypes.Length);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated final function KFCharacterInfo_Human GetSelectedArch()
|
simulated final function KFCharacterInfo_Human GetSelectedArch()
|
||||||
{
|
{
|
||||||
if (UsesCustomChar())
|
if (UsesCustomChar())
|
||||||
@ -688,6 +714,7 @@ final function SaveCustomCharacter(ExtSaveDataBase Data)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
final function LoadCustomCharacter(ExtSaveDataBase Data)
|
final function LoadCustomCharacter(ExtSaveDataBase Data)
|
||||||
{
|
{
|
||||||
local string S;
|
local string S;
|
||||||
@ -755,6 +782,7 @@ static final function DummyLoadChar(ExtSaveDataBase Data)
|
|||||||
for (i=0; i<n; ++i)
|
for (i=0; i<n; ++i)
|
||||||
Data.SkipBytes(3);
|
Data.SkipBytes(3);
|
||||||
}
|
}
|
||||||
|
|
||||||
static final function DummySaveChar(ExtSaveDataBase Data)
|
static final function DummySaveChar(ExtSaveDataBase Data)
|
||||||
{
|
{
|
||||||
Data.SaveStr("");
|
Data.SaveStr("");
|
||||||
|
@ -9,6 +9,7 @@ simulated function PostBeginPlay()
|
|||||||
Super.PostBeginPlay();
|
Super.PostBeginPlay();
|
||||||
SetTimer(FuseTime+FRand()*0.25, true, 'ExplodeTimer');
|
SetTimer(FuseTime+FRand()*0.25, true, 'ExplodeTimer');
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function ExplodeTimer()
|
simulated function ExplodeTimer()
|
||||||
{
|
{
|
||||||
local Actor HitActor;
|
local Actor HitActor;
|
||||||
@ -24,6 +25,7 @@ simulated function ExplodeTimer()
|
|||||||
TriggerExplosion(HitLocation, HitNormal, HitActor);
|
TriggerExplosion(HitLocation, HitNormal, HitActor);
|
||||||
else SmallExplosion(HitLocation, HitNormal, HitActor);
|
else SmallExplosion(HitLocation, HitNormal, HitActor);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function SmallExplosion(Vector HitLocation, Vector HitNormal, Actor HitActor)
|
simulated function SmallExplosion(Vector HitLocation, Vector HitNormal, Actor HitActor)
|
||||||
{
|
{
|
||||||
local vector NudgedHitLocation, ExplosionDirection;
|
local vector NudgedHitLocation, ExplosionDirection;
|
||||||
@ -81,9 +83,11 @@ simulated function SmallExplosion(Vector HitLocation, Vector HitNormal, Actor Hi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function ProcessTouch(Actor Other, Vector HitLocation, Vector HitNormal)
|
simulated function ProcessTouch(Actor Other, Vector HitLocation, Vector HitNormal)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function Explode(vector HitLocation, vector HitNormal);
|
simulated function Explode(vector HitLocation, vector HitNormal);
|
||||||
|
|
||||||
defaultproperties
|
defaultproperties
|
||||||
|
@ -13,6 +13,7 @@ static final function ExtSpawnPointHelper FindHelper(WorldInfo Level)
|
|||||||
return H;
|
return H;
|
||||||
return Level.Spawn(class'ExtSpawnPointHelper');
|
return Level.Spawn(class'ExtSpawnPointHelper');
|
||||||
}
|
}
|
||||||
|
|
||||||
final function Actor PickBestSpawn()
|
final function Actor PickBestSpawn()
|
||||||
{
|
{
|
||||||
local Actor N,BestN;
|
local Actor N,BestN;
|
||||||
@ -76,6 +77,7 @@ function PreBeginPlay()
|
|||||||
{
|
{
|
||||||
SetTimer(0.2,false,'InitChecker');
|
SetTimer(0.2,false,'InitChecker');
|
||||||
}
|
}
|
||||||
|
|
||||||
function InitChecker()
|
function InitChecker()
|
||||||
{
|
{
|
||||||
local PlayerStart PS,Fallback;
|
local PlayerStart PS,Fallback;
|
||||||
@ -94,6 +96,7 @@ function InitChecker()
|
|||||||
CheckSpawn(Fallback);
|
CheckSpawn(Fallback);
|
||||||
SetTimer(0.001,true,'NextCheck');
|
SetTimer(0.001,true,'NextCheck');
|
||||||
}
|
}
|
||||||
|
|
||||||
function NextCheck()
|
function NextCheck()
|
||||||
{
|
{
|
||||||
local NavigationPoint N;
|
local NavigationPoint N;
|
||||||
@ -114,6 +117,7 @@ function NextCheck()
|
|||||||
CheckedList.Length = 0;
|
CheckedList.Length = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
final function CheckSpawn(NavigationPoint N)
|
final function CheckSpawn(NavigationPoint N)
|
||||||
{
|
{
|
||||||
local vector V;
|
local vector V;
|
||||||
|
@ -40,6 +40,7 @@ final function Cleanup()
|
|||||||
{
|
{
|
||||||
ConfigList.Length = 0;
|
ConfigList.Length = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
final function AddSettingsPage(string PageName, class<Object> Obj, const out array<FWebAdminConfigInfo> Configs, delegate<OnGetValue> GetFunc, delegate<OnSetValue> SetFunc)
|
final function AddSettingsPage(string PageName, class<Object> Obj, const out array<FWebAdminConfigInfo> Configs, delegate<OnGetValue> GetFunc, delegate<OnSetValue> SetFunc)
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
@ -56,6 +57,7 @@ final function AddSettingsPage(string PageName, class<Object> Obj, const out arr
|
|||||||
ConfigList[i].GetValue = GetFunc;
|
ConfigList[i].GetValue = GetFunc;
|
||||||
ConfigList[i].SetValue = SetFunc;
|
ConfigList[i].SetValue = SetFunc;
|
||||||
}
|
}
|
||||||
|
|
||||||
final function bool HasConfigfor (class<Object> Obj)
|
final function bool HasConfigfor (class<Object> Obj)
|
||||||
{
|
{
|
||||||
return (ConfigList.Find('ObjClass',Obj)>=0);
|
return (ConfigList.Find('ObjClass',Obj)>=0);
|
||||||
|
@ -31,6 +31,7 @@ final function vector PickPointNearOwner()
|
|||||||
OwnerPawn = None;
|
OwnerPawn = None;
|
||||||
return V;
|
return V;
|
||||||
}
|
}
|
||||||
|
|
||||||
final function bool CanSeeOwner()
|
final function bool CanSeeOwner()
|
||||||
{
|
{
|
||||||
local Pawn P;
|
local Pawn P;
|
||||||
|
@ -4,6 +4,7 @@ function SpecialMoveStarted(bool bForced, Name PrevMove)
|
|||||||
{
|
{
|
||||||
KFPOwner.EndSpecialMove();
|
KFPOwner.EndSpecialMove();
|
||||||
}
|
}
|
||||||
|
|
||||||
function SpecialMoveEnded(Name PrevMove, Name NextMove)
|
function SpecialMoveEnded(Name PrevMove, Name NextMove)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -214,6 +214,7 @@ simulated function PostBeginPlay()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function InitPerk()
|
simulated function InitPerk()
|
||||||
{
|
{
|
||||||
if (PlayerOwner==None)
|
if (PlayerOwner==None)
|
||||||
@ -227,6 +228,7 @@ simulated function InitPerk()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function Destroyed()
|
simulated function Destroyed()
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
@ -291,6 +293,7 @@ reliable client simulated function ClientReceiveStat(int Index, int MaxValue, in
|
|||||||
else PerkStats[Index].UIName = string(Type); // Fallback to stat name then...
|
else PerkStats[Index].UIName = string(Type); // Fallback to stat name then...
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
reliable client simulated function ClientSetStatValue(int Index, int NewValue)
|
reliable client simulated function ClientSetStatValue(int Index, int NewValue)
|
||||||
{
|
{
|
||||||
if (PerkStats.Length<=Index)
|
if (PerkStats.Length<=Index)
|
||||||
@ -299,6 +302,7 @@ reliable client simulated function ClientSetStatValue(int Index, int NewValue)
|
|||||||
if (bPerkNetReady)
|
if (bPerkNetReady)
|
||||||
ApplyEffects();
|
ApplyEffects();
|
||||||
}
|
}
|
||||||
|
|
||||||
reliable client simulated function ClientReceiveTrait(int Index, class<Ext_TraitBase> TC, byte Lvl)
|
reliable client simulated function ClientReceiveTrait(int Index, class<Ext_TraitBase> TC, byte Lvl)
|
||||||
{
|
{
|
||||||
if (PerkTraits.Length<=Index)
|
if (PerkTraits.Length<=Index)
|
||||||
@ -306,11 +310,13 @@ reliable client simulated function ClientReceiveTrait(int Index, class<Ext_Trait
|
|||||||
PerkTraits[Index].TraitType = TC;
|
PerkTraits[Index].TraitType = TC;
|
||||||
PerkTraits[Index].CurrentLevel = Lvl;
|
PerkTraits[Index].CurrentLevel = Lvl;
|
||||||
}
|
}
|
||||||
|
|
||||||
reliable client simulated function ClientReceiveTraitData(int Index, string Data)
|
reliable client simulated function ClientReceiveTraitData(int Index, string Data)
|
||||||
{
|
{
|
||||||
if (WorldInfo.NetMode==NM_Client)
|
if (WorldInfo.NetMode==NM_Client)
|
||||||
PerkTraits[Index].TraitType.Static.ClientSetRepData(Data);
|
PerkTraits[Index].TraitType.Static.ClientSetRepData(Data);
|
||||||
}
|
}
|
||||||
|
|
||||||
reliable client simulated function ClientReceiveTraitLvl(int Index, byte NewLevel)
|
reliable client simulated function ClientReceiveTraitLvl(int Index, byte NewLevel)
|
||||||
{
|
{
|
||||||
PerkTraits[Index].CurrentLevel = NewLevel;
|
PerkTraits[Index].CurrentLevel = NewLevel;
|
||||||
@ -324,6 +330,7 @@ final function SetPerkStat(name Type, int Value)
|
|||||||
if (i>=0)
|
if (i>=0)
|
||||||
PerkStats[i].CurrentValue = Value;
|
PerkStats[i].CurrentValue = Value;
|
||||||
}
|
}
|
||||||
|
|
||||||
final function int GetPerkStat(name Type)
|
final function int GetPerkStat(name Type)
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
@ -652,6 +659,7 @@ static function CheckConfig()
|
|||||||
T.Static.CheckConfig();
|
T.Static.CheckConfig();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static function UpdateConfigs(int OldVer)
|
static function UpdateConfigs(int OldVer)
|
||||||
{
|
{
|
||||||
local int i,j;
|
local int i,j;
|
||||||
@ -716,6 +724,7 @@ static function UpdateConfigs(int OldVer)
|
|||||||
Default.TraitClasses[i] = PathName(Default.DefTraitList[i]);
|
Default.TraitClasses[i] = PathName(Default.DefTraitList[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static final function AddStatsCfg(int StartRange)
|
static final function AddStatsCfg(int StartRange)
|
||||||
{
|
{
|
||||||
local int i,j;
|
local int i,j;
|
||||||
@ -750,6 +759,7 @@ static function InitWebAdmin(ExtWebAdmin_UI UI)
|
|||||||
T.Static.InitWebAdmin(UI);
|
T.Static.InitWebAdmin(UI);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static function string GetValue(name PropName, int ElementIndex)
|
static function string GetValue(name PropName, int ElementIndex)
|
||||||
{
|
{
|
||||||
switch (PropName)
|
switch (PropName)
|
||||||
@ -782,6 +792,7 @@ static function string GetValue(name PropName, int ElementIndex)
|
|||||||
return string(Default.PrestigeXPReduce);
|
return string(Default.PrestigeXPReduce);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static function ApplyValue(name PropName, int ElementIndex, string Value)
|
static function ApplyValue(name PropName, int ElementIndex, string Value)
|
||||||
{
|
{
|
||||||
switch (PropName)
|
switch (PropName)
|
||||||
@ -833,6 +844,7 @@ static function ApplyValue(name PropName, int ElementIndex, string Value)
|
|||||||
}
|
}
|
||||||
StaticSaveConfig();
|
StaticSaveConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
static final function FPerkStat ParsePerkStatStr(string S)
|
static final function FPerkStat ParsePerkStatStr(string S)
|
||||||
{
|
{
|
||||||
local FPerkStat Res;
|
local FPerkStat Res;
|
||||||
@ -959,6 +971,7 @@ simulated unreliable client function ClientAuth()
|
|||||||
SetOwner(PlayerOwner);
|
SetOwner(PlayerOwner);
|
||||||
ServerAck();
|
ServerAck();
|
||||||
}
|
}
|
||||||
|
|
||||||
unreliable server function ServerAck()
|
unreliable server function ServerAck()
|
||||||
{
|
{
|
||||||
if (!bClientAuthorized)
|
if (!bClientAuthorized)
|
||||||
@ -969,6 +982,7 @@ unreliable server function ServerAck()
|
|||||||
SetTimer(0.01+FRand()*0.025,true,'ReplicateTimer');
|
SetTimer(0.01+FRand()*0.025,true,'ReplicateTimer');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function ReplicateTimer()
|
function ReplicateTimer()
|
||||||
{
|
{
|
||||||
switch (RepState)
|
switch (RepState)
|
||||||
@ -1001,11 +1015,13 @@ function ReplicateTimer()
|
|||||||
ClientIsReady(); // Notify client were ready.
|
ClientIsReady(); // Notify client were ready.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated reliable client function ClientIsReady()
|
simulated reliable client function ClientIsReady()
|
||||||
{
|
{
|
||||||
bPerkNetReady = true;
|
bPerkNetReady = true;
|
||||||
ApplyEffects();
|
ApplyEffects();
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function string GetStatUIStr(int iStat)
|
simulated function string GetStatUIStr(int iStat)
|
||||||
{
|
{
|
||||||
local string S;
|
local string S;
|
||||||
@ -1081,6 +1097,7 @@ final function UnloadStats(optional byte Mode)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function FullReset(optional bool bNotPrestige)
|
function FullReset(optional bool bNotPrestige)
|
||||||
{
|
{
|
||||||
UnloadStats();
|
UnloadStats();
|
||||||
@ -1236,6 +1253,7 @@ simulated function ModifyDamageGiven(out int InDamage, optional Actor DamageCaus
|
|||||||
else if (DamageType==None || DamageType.Name!='KFDT_SuicideExplosive')
|
else if (DamageType==None || DamageType.Name!='KFDT_SuicideExplosive')
|
||||||
InDamage *= Modifiers[12];
|
InDamage *= Modifiers[12];
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function ModifyDamageTaken(out int InDamage, optional class<DamageType> DamageType, optional Controller InstigatedBy)
|
simulated function ModifyDamageTaken(out int InDamage, optional class<DamageType> DamageType, optional Controller InstigatedBy)
|
||||||
{
|
{
|
||||||
if (InDamage>0)
|
if (InDamage>0)
|
||||||
@ -1252,36 +1270,44 @@ simulated function ModifyDamageTaken(out int InDamage, optional class<DamageType
|
|||||||
InDamage = Max(InDamage*Modifiers[18],1);
|
InDamage = Max(InDamage*Modifiers[18],1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function ModifyRecoil(out float CurrentRecoilModifier, KFWeapon KFW)
|
simulated function ModifyRecoil(out float CurrentRecoilModifier, KFWeapon KFW)
|
||||||
{
|
{
|
||||||
if (IsWeaponOnPerk(KFW))
|
if (IsWeaponOnPerk(KFW))
|
||||||
CurrentRecoilModifier *= Modifiers[2];
|
CurrentRecoilModifier *= Modifiers[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function ModifySpread(out float InSpread)
|
simulated function ModifySpread(out float InSpread)
|
||||||
{
|
{
|
||||||
InSpread *= Modifiers[3];
|
InSpread *= Modifiers[3];
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function ModifyRateOfFire(out float InRate, KFWeapon KFW)
|
simulated function ModifyRateOfFire(out float InRate, KFWeapon KFW)
|
||||||
{
|
{
|
||||||
if (IsWeaponOnPerk(KFW))
|
if (IsWeaponOnPerk(KFW))
|
||||||
InRate *= Modifiers[4];
|
InRate *= Modifiers[4];
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function float GetReloadRateScale(KFWeapon KFW)
|
simulated function float GetReloadRateScale(KFWeapon KFW)
|
||||||
{
|
{
|
||||||
return (IsWeaponOnPerk(KFW) ? Modifiers[5] : 1.f);
|
return (IsWeaponOnPerk(KFW) ? Modifiers[5] : 1.f);
|
||||||
}
|
}
|
||||||
|
|
||||||
function ModifyHealth(out int InHealth)
|
function ModifyHealth(out int InHealth)
|
||||||
{
|
{
|
||||||
InHealth *= Modifiers[6];
|
InHealth *= Modifiers[6];
|
||||||
}
|
}
|
||||||
|
|
||||||
function ModifyArmor(out byte MaxArmor)
|
function ModifyArmor(out byte MaxArmor)
|
||||||
{
|
{
|
||||||
MaxArmor = Min(MaxArmor+Modifiers[14],255);
|
MaxArmor = Min(MaxArmor+Modifiers[14],255);
|
||||||
}
|
}
|
||||||
|
|
||||||
function float GetKnockdownPowerModifier()
|
function float GetKnockdownPowerModifier()
|
||||||
{
|
{
|
||||||
return Modifiers[7];
|
return Modifiers[7];
|
||||||
}
|
}
|
||||||
|
|
||||||
function float GetStunPowerModifier(optional class<DamageType> DamageType, optional byte HitZoneIdx)
|
function float GetStunPowerModifier(optional class<DamageType> DamageType, optional byte HitZoneIdx)
|
||||||
{
|
{
|
||||||
return Modifiers[7];
|
return Modifiers[7];
|
||||||
@ -1316,21 +1342,25 @@ function bool RepairArmor(Pawn HealTarget)
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function bool ModifyHealAmount(out float HealAmount)
|
function bool ModifyHealAmount(out float HealAmount)
|
||||||
{
|
{
|
||||||
HealAmount*=Modifiers[9];
|
HealAmount*=Modifiers[9];
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function ModifyMagSizeAndNumber(KFWeapon KFW, out int MagazineCapacity, optional array< Class<KFPerk> > WeaponPerkClass, optional bool bSecondary=false, optional name WeaponClassname)
|
simulated function ModifyMagSizeAndNumber(KFWeapon KFW, out int MagazineCapacity, optional array< Class<KFPerk> > WeaponPerkClass, optional bool bSecondary=false, optional name WeaponClassname)
|
||||||
{
|
{
|
||||||
if (MagazineCapacity>2 && (KFW==None ? WeaponPerkClass.Find(BasePerk)>=0 : IsWeaponOnPerk(KFW))) // Skip boomstick for this.
|
if (MagazineCapacity>2 && (KFW==None ? WeaponPerkClass.Find(BasePerk)>=0 : IsWeaponOnPerk(KFW))) // Skip boomstick for this.
|
||||||
MagazineCapacity = Min(MagazineCapacity*Modifiers[10],255);
|
MagazineCapacity = Min(MagazineCapacity*Modifiers[10],255);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function ModifySpareAmmoAmount(KFWeapon KFW, out int PrimarySpareAmmo, optional const out STraderItem TraderItem, optional bool bSecondary)
|
simulated function ModifySpareAmmoAmount(KFWeapon KFW, out int PrimarySpareAmmo, optional const out STraderItem TraderItem, optional bool bSecondary)
|
||||||
{
|
{
|
||||||
if (KFW==None ? TraderItem.AssociatedPerkClasses.Find(BasePerk)>=0 : IsWeaponOnPerk(KFW))
|
if (KFW==None ? TraderItem.AssociatedPerkClasses.Find(BasePerk)>=0 : IsWeaponOnPerk(KFW))
|
||||||
PrimarySpareAmmo*=Modifiers[11];
|
PrimarySpareAmmo*=Modifiers[11];
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function bool ShouldMagSizeModifySpareAmmo(KFWeapon KFW, optional Class<KFPerk> WeaponPerkClass)
|
simulated function bool ShouldMagSizeModifySpareAmmo(KFWeapon KFW, optional Class<KFPerk> WeaponPerkClass)
|
||||||
{
|
{
|
||||||
return (KFW==None ? WeaponPerkClass==BasePerk : IsWeaponOnPerk(KFW));
|
return (KFW==None ? WeaponPerkClass==BasePerk : IsWeaponOnPerk(KFW));
|
||||||
|
@ -15,6 +15,7 @@ simulated function ModifyMeleeAttackSpeed(out float InDuration)
|
|||||||
if (ZedTimeMeleeAtkRate<1.f && WorldInfo.TimeDilation<1.f)
|
if (ZedTimeMeleeAtkRate<1.f && WorldInfo.TimeDilation<1.f)
|
||||||
InDuration *= ZedTimeMeleeAtkRate;
|
InDuration *= ZedTimeMeleeAtkRate;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function ModifyRateOfFire(out float InRate, KFWeapon KFW)
|
simulated function ModifyRateOfFire(out float InRate, KFWeapon KFW)
|
||||||
{
|
{
|
||||||
if (IsWeaponOnPerk(KFW))
|
if (IsWeaponOnPerk(KFW))
|
||||||
|
@ -47,6 +47,7 @@ function bool RepairArmor(Pawn HealTarget)
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function bool ModifyHealAmount(out float HealAmount)
|
function bool ModifyHealAmount(out float HealAmount)
|
||||||
{
|
{
|
||||||
HealAmount*=Modifiers[9];
|
HealAmount*=Modifiers[9];
|
||||||
@ -128,50 +129,62 @@ simulated function bool GetHealingSpeedBoostActive()
|
|||||||
{
|
{
|
||||||
return bHealingBoost;
|
return bHealingBoost;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function byte GetHealingSpeedBoost()
|
simulated function byte GetHealingSpeedBoost()
|
||||||
{
|
{
|
||||||
return byte(HealingSpeedBoostPct);
|
return byte(HealingSpeedBoostPct);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function byte GetMaxHealingSpeedBoost()
|
simulated function byte GetMaxHealingSpeedBoost()
|
||||||
{
|
{
|
||||||
return MaxHealingSpeedBoost;
|
return MaxHealingSpeedBoost;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function float GetHealingSpeedBoostDuration()
|
simulated function float GetHealingSpeedBoostDuration()
|
||||||
{
|
{
|
||||||
return HealingSpeedBoostDuration;
|
return HealingSpeedBoostDuration;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function bool GetHealingDamageBoostActive()
|
simulated function bool GetHealingDamageBoostActive()
|
||||||
{
|
{
|
||||||
return bHealingDamageBoost;
|
return bHealingDamageBoost;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function byte GetHealingDamageBoost()
|
simulated function byte GetHealingDamageBoost()
|
||||||
{
|
{
|
||||||
return byte(HealingDamageBoostPct);
|
return byte(HealingDamageBoostPct);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function byte GetMaxHealingDamageBoost()
|
simulated function byte GetMaxHealingDamageBoost()
|
||||||
{
|
{
|
||||||
return MaxHealingDamageBoost;
|
return MaxHealingDamageBoost;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function float GetHealingDamageBoostDuration()
|
simulated function float GetHealingDamageBoostDuration()
|
||||||
{
|
{
|
||||||
return HealingDamageBoostDuration;
|
return HealingDamageBoostDuration;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function bool GetHealingShieldActive()
|
simulated function bool GetHealingShieldActive()
|
||||||
{
|
{
|
||||||
return bHealingShield;
|
return bHealingShield;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function byte GetHealingShield()
|
simulated function byte GetHealingShield()
|
||||||
{
|
{
|
||||||
return byte(HealingShieldPct);
|
return byte(HealingShieldPct);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function byte GetMaxHealingShield()
|
simulated function byte GetMaxHealingShield()
|
||||||
{
|
{
|
||||||
return MaxHealingShield;
|
return MaxHealingShield;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function float GetHealingShieldDuration()
|
simulated function float GetHealingShieldDuration()
|
||||||
{
|
{
|
||||||
return HealingShieldDuration;
|
return HealingShieldDuration;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function float GetSelfHealingSurgePct()
|
simulated function float GetSelfHealingSurgePct()
|
||||||
{
|
{
|
||||||
return SelfHealingSurgePct;
|
return SelfHealingSurgePct;
|
||||||
|
@ -15,6 +15,7 @@ final function SetMaxRhythm(byte MaxCombo)
|
|||||||
{
|
{
|
||||||
MaxRhythmCombo = MaxCombo;
|
MaxRhythmCombo = MaxCombo;
|
||||||
}
|
}
|
||||||
|
|
||||||
final function ResetRhythm()
|
final function ResetRhythm()
|
||||||
{
|
{
|
||||||
MaxRhythmCombo = 0;
|
MaxRhythmCombo = 0;
|
||||||
@ -66,6 +67,7 @@ function UpdatePerkHeadShots(ImpactInfo Impact, class<DamageType> DamageType, in
|
|||||||
UpdateDmgScale(true);
|
UpdateDmgScale(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
reliable client function HeadShotMessage(byte HeadShotNum, bool bMissed, byte MaxHits)
|
reliable client function HeadShotMessage(byte HeadShotNum, bool bMissed, byte MaxHits)
|
||||||
{
|
{
|
||||||
local AkEvent TempAkEvent;
|
local AkEvent TempAkEvent;
|
||||||
|
@ -16,6 +16,7 @@ simulated function float GetReloadRateScale(KFWeapon KFW)
|
|||||||
return Super.GetReloadRateScale(KFW)*DireReloadSpeed;
|
return Super.GetReloadRateScale(KFW)*DireReloadSpeed;
|
||||||
return Super.GetReloadRateScale(KFW);
|
return Super.GetReloadRateScale(KFW);
|
||||||
}
|
}
|
||||||
|
|
||||||
function float GetStunPowerModifier(optional class<DamageType> DamageType, optional byte HitZoneIdx)
|
function float GetStunPowerModifier(optional class<DamageType> DamageType, optional byte HitZoneIdx)
|
||||||
{
|
{
|
||||||
if (ZEDTimeStunPower>0 && HitZoneIdx==HZI_Head && WorldInfo.TimeDilation<1.f && (class<KFDamageType>(DamageType)!=None && class<KFDamageType>(DamageType).Default.ModifierPerkList.Find(BasePerk)>=0))
|
if (ZEDTimeStunPower>0 && HitZoneIdx==HZI_Head && WorldInfo.TimeDilation<1.f && (class<KFDamageType>(DamageType)!=None && class<KFDamageType>(DamageType).Default.ModifierPerkList.Find(BasePerk)>=0))
|
||||||
|
@ -9,6 +9,7 @@ static function string GetUIInfo(Ext_PerkBase Perk)
|
|||||||
{
|
{
|
||||||
return (Default.bLimitToOne ? Default.GroupInfo$" (MAX 1)" : Default.GroupInfo);
|
return (Default.bLimitToOne ? Default.GroupInfo$" (MAX 1)" : Default.GroupInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
static function string GetUIDesc()
|
static function string GetUIDesc()
|
||||||
{
|
{
|
||||||
return Default.GroupInfo$" trait group";
|
return Default.GroupInfo$" trait group";
|
||||||
|
@ -4,6 +4,7 @@ static function string GetUIInfo(Ext_PerkBase Perk)
|
|||||||
{
|
{
|
||||||
return Default.GroupInfo$" (MAX "$GetMaxLimit(Perk)$")";
|
return Default.GroupInfo$" (MAX "$GetMaxLimit(Perk)$")";
|
||||||
}
|
}
|
||||||
|
|
||||||
static function string GetUIDesc()
|
static function string GetUIDesc()
|
||||||
{
|
{
|
||||||
return Super.GetUIDesc()$"|To buy additional regen abilities:|-Prestige level 1 + Perk level 100 = MAX 2 traits|-Prestige level 5 + Perk level 150 = MAX 3 traits";
|
return Super.GetUIDesc()$"|To buy additional regen abilities:|-Prestige level 1 + Perk level 100 = MAX 2 traits|-Prestige level 5 + Perk level 150 = MAX 3 traits";
|
||||||
|
@ -11,6 +11,7 @@ function PostBeginPlay()
|
|||||||
Destroy();
|
Destroy();
|
||||||
else SetTimer(29+FRand(),true);
|
else SetTimer(29+FRand(),true);
|
||||||
}
|
}
|
||||||
|
|
||||||
function Timer()
|
function Timer()
|
||||||
{
|
{
|
||||||
local KFWeapon W;
|
local KFWeapon W;
|
||||||
|
@ -19,11 +19,13 @@ function PostBeginPlay()
|
|||||||
Destroy();
|
Destroy();
|
||||||
else SetTimer(0.5+FRand()*0.4,true);
|
else SetTimer(0.5+FRand()*0.4,true);
|
||||||
}
|
}
|
||||||
|
|
||||||
function Timer()
|
function Timer()
|
||||||
{
|
{
|
||||||
if (PawnOwner==None || PawnOwner.Health<=0 || PawnOwner.InvManager==None)
|
if (PawnOwner==None || PawnOwner.Health<=0 || PawnOwner.InvManager==None)
|
||||||
Destroy();
|
Destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function Tick(float Delta)
|
simulated function Tick(float Delta)
|
||||||
{
|
{
|
||||||
if (WorldInfo.NetMode==NM_DedicatedServer
|
if (WorldInfo.NetMode==NM_DedicatedServer
|
||||||
|
@ -11,6 +11,7 @@ function PostBeginPlay()
|
|||||||
Destroy();
|
Destroy();
|
||||||
else SetTimer(9+FRand(),true);
|
else SetTimer(9+FRand(),true);
|
||||||
}
|
}
|
||||||
|
|
||||||
function Timer()
|
function Timer()
|
||||||
{
|
{
|
||||||
if (PawnOwner==None || PawnOwner.Health<=0)
|
if (PawnOwner==None || PawnOwner.Health<=0)
|
||||||
|
@ -21,6 +21,7 @@ simulated event PostBeginPlay()
|
|||||||
if (WorldInfo.NetMode!=NM_Client)
|
if (WorldInfo.NetMode!=NM_Client)
|
||||||
SetTimer(1,true);
|
SetTimer(1,true);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated event Destroyed()
|
simulated event Destroyed()
|
||||||
{
|
{
|
||||||
if (OwnerHUD!=None)
|
if (OwnerHUD!=None)
|
||||||
@ -31,6 +32,7 @@ simulated event Destroyed()
|
|||||||
if (WorldInfo.GRI != None)
|
if (WorldInfo.GRI != None)
|
||||||
WorldInfo.GRI.RemovePRI(self);
|
WorldInfo.GRI.RemovePRI(self);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated event ReplicatedEvent(name VarName)
|
simulated event ReplicatedEvent(name VarName)
|
||||||
{
|
{
|
||||||
if (VarName=='OwnerPRI' && OwnerPRI!=None)
|
if (VarName=='OwnerPRI' && OwnerPRI!=None)
|
||||||
@ -38,6 +40,7 @@ simulated event ReplicatedEvent(name VarName)
|
|||||||
else if (VarName=='MonsterType' && MonsterType!=None)
|
else if (VarName=='MonsterType' && MonsterType!=None)
|
||||||
MonsterName = Class'KFExtendedHUD'.Static.GetNameOf(MonsterType);
|
MonsterName = Class'KFExtendedHUD'.Static.GetNameOf(MonsterType);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function Timer()
|
simulated function Timer()
|
||||||
{
|
{
|
||||||
if (PawnOwner==None || PawnOwner.Health<=0)
|
if (PawnOwner==None || PawnOwner.Health<=0)
|
||||||
@ -45,6 +48,7 @@ simulated function Timer()
|
|||||||
else if (HealthStatus!=PawnOwner.Health)
|
else if (HealthStatus!=PawnOwner.Health)
|
||||||
HealthStatus = PawnOwner.Health;
|
HealthStatus = PawnOwner.Health;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated final function NotifyOwner()
|
simulated final function NotifyOwner()
|
||||||
{
|
{
|
||||||
local PlayerController PC;
|
local PlayerController PC;
|
||||||
|
@ -119,6 +119,7 @@ simulated function bool GetCanInteract(Pawn User, optional bool bInteractIfTrue
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
function CleanupUsers()
|
function CleanupUsers()
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
@ -129,6 +130,7 @@ function CleanupUsers()
|
|||||||
if (ActiveUsers.Length==0)
|
if (ActiveUsers.Length==0)
|
||||||
ClearTimer('CleanupUsers');
|
ClearTimer('CleanupUsers');
|
||||||
}
|
}
|
||||||
|
|
||||||
final function GiveAmmunition(KFPawn_Human Other)
|
final function GiveAmmunition(KFPawn_Human Other)
|
||||||
{
|
{
|
||||||
local KFWeapon KFW;
|
local KFWeapon KFW;
|
||||||
@ -167,6 +169,7 @@ final function GiveAmmunition(KFPawn_Human Other)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated final function UsedOnClient(Pawn User)
|
simulated final function UsedOnClient(Pawn User)
|
||||||
{
|
{
|
||||||
local ExtPlayerReplicationInfo PRI;
|
local ExtPlayerReplicationInfo PRI;
|
||||||
|
@ -11,6 +11,7 @@ function PostBeginPlay()
|
|||||||
Destroy();
|
Destroy();
|
||||||
else SetTimer(0.5+FRand()*0.1,true);
|
else SetTimer(0.5+FRand()*0.1,true);
|
||||||
}
|
}
|
||||||
|
|
||||||
function Timer()
|
function Timer()
|
||||||
{
|
{
|
||||||
local KFPawn_Monster M;
|
local KFPawn_Monster M;
|
||||||
|
@ -28,6 +28,7 @@ function PostBeginPlay()
|
|||||||
SetTimer(1+(FRand()*0.1),true);
|
SetTimer(1+(FRand()*0.1),true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function Timer()
|
function Timer()
|
||||||
{
|
{
|
||||||
if (PawnOwner==None || PawnOwner.Health<=0 || PawnOwner.PlayerReplicationInfo==None)
|
if (PawnOwner==None || PawnOwner.Health<=0 || PawnOwner.PlayerReplicationInfo==None)
|
||||||
@ -64,11 +65,13 @@ function Timer()
|
|||||||
}
|
}
|
||||||
else NoLiveCounter = 5;
|
else NoLiveCounter = 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
function Destroyed()
|
function Destroyed()
|
||||||
{
|
{
|
||||||
if (LiveHelper!=None && LiveHelper.Health>0)
|
if (LiveHelper!=None && LiveHelper.Health>0)
|
||||||
LiveHelper.Died(None,class'DmgType_Suicided',vect(0,0,0));
|
LiveHelper.Died(None,class'DmgType_Suicided',vect(0,0,0));
|
||||||
}
|
}
|
||||||
|
|
||||||
final function bool HasLiveZeds()
|
final function bool HasLiveZeds()
|
||||||
{
|
{
|
||||||
local KFPawn_Monster M;
|
local KFPawn_Monster M;
|
||||||
@ -81,6 +84,7 @@ final function bool HasLiveZeds()
|
|||||||
return true;
|
return true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
final function SpawnHelper()
|
final function SpawnHelper()
|
||||||
{
|
{
|
||||||
local class<KFPawn_Monster> MC;
|
local class<KFPawn_Monster> MC;
|
||||||
@ -188,6 +192,7 @@ final function SetDamageScale(float Sc)
|
|||||||
if (LiveHelper!=None)
|
if (LiveHelper!=None)
|
||||||
LiveHelper.DamageScaling = DamageScale;
|
LiveHelper.DamageScaling = DamageScale;
|
||||||
}
|
}
|
||||||
|
|
||||||
final function SetHealthScale(float Sc)
|
final function SetHealthScale(float Sc)
|
||||||
{
|
{
|
||||||
HPScale = Default.HPScale*Sc;
|
HPScale = Default.HPScale*Sc;
|
||||||
@ -217,6 +222,7 @@ static final function LoadMonsterList()
|
|||||||
Default.ZedTypes[i].Zeds[Default.ZedTypes[i].Zeds.Length] = Class'KFPawn_ZedClot_Alpha';
|
Default.ZedTypes[i].Zeds[Default.ZedTypes[i].Zeds.Length] = Class'KFPawn_ZedClot_Alpha';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static final function class<KFPawn_Monster> PickRandomMonster(byte Level, bool bNotBoss)
|
static final function class<KFPawn_Monster> PickRandomMonster(byte Level, bool bNotBoss)
|
||||||
{
|
{
|
||||||
local byte i;
|
local byte i;
|
||||||
|
@ -4,6 +4,7 @@ static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitD
|
|||||||
{
|
{
|
||||||
Ext_PerkFieldMedic(Perk).bUseToxicDamage = true;
|
Ext_PerkFieldMedic(Perk).bUseToxicDamage = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Ext_PerkFieldMedic(Perk).bUseToxicDamage = false;
|
Ext_PerkFieldMedic(Perk).bUseToxicDamage = false;
|
||||||
|
@ -7,6 +7,7 @@ static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitD
|
|||||||
Ext_PerkFieldMedic(Perk).AirborneAgentHealRate = Default.HealRates[Level-1];
|
Ext_PerkFieldMedic(Perk).AirborneAgentHealRate = Default.HealRates[Level-1];
|
||||||
Ext_PerkFieldMedic(Perk).AirborneAgentLevel = (Level<4 ? 1 : 2);
|
Ext_PerkFieldMedic(Perk).AirborneAgentLevel = (Level<4 ? 1 : 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Ext_PerkFieldMedic(Perk).AirborneAgentLevel = 0;
|
Ext_PerkFieldMedic(Perk).AirborneAgentLevel = 0;
|
||||||
|
@ -33,6 +33,7 @@ static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitD
|
|||||||
{
|
{
|
||||||
Ext_PerkFieldMedic(Perk).bUseAirborneAgent = true;
|
Ext_PerkFieldMedic(Perk).bUseAirborneAgent = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Ext_PerkFieldMedic(Perk).bUseAirborneAgent = false;
|
Ext_PerkFieldMedic(Perk).bUseAirborneAgent = false;
|
||||||
|
@ -10,6 +10,7 @@ static function ApplyEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level
|
|||||||
if (H!=None)
|
if (H!=None)
|
||||||
H.RegCount = Default.RegenValues[Level-1];
|
H.RegCount = Default.RegenValues[Level-1];
|
||||||
}
|
}
|
||||||
|
|
||||||
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
local Ext_T_AmmoRegHelp H;
|
local Ext_T_AmmoRegHelp H;
|
||||||
|
@ -8,6 +8,7 @@ static function ApplyEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level
|
|||||||
if (H!=None)
|
if (H!=None)
|
||||||
H.RegCount = Default.RegenValues[Level-1];
|
H.RegCount = Default.RegenValues[Level-1];
|
||||||
}
|
}
|
||||||
|
|
||||||
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
local Ext_T_ArmorRegHelp H;
|
local Ext_T_ArmorRegHelp H;
|
||||||
|
@ -4,6 +4,7 @@ static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitD
|
|||||||
{
|
{
|
||||||
Ext_PerkFieldMedic(Perk).RepairArmorRate = float(Level)*0.05f;
|
Ext_PerkFieldMedic(Perk).RepairArmorRate = float(Level)*0.05f;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Ext_PerkFieldMedic(Perk).RepairArmorRate = 0;
|
Ext_PerkFieldMedic(Perk).RepairArmorRate = 0;
|
||||||
|
@ -7,6 +7,7 @@ static function ApplyEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level
|
|||||||
H = Player.Spawn(class'Ext_T_AutoFireHelper',Player);
|
H = Player.Spawn(class'Ext_T_AutoFireHelper',Player);
|
||||||
H.AssociatedPerkClass = Perk.BasePerk;
|
H.AssociatedPerkClass = Perk.BasePerk;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
local Ext_T_AutoFireHelper H;
|
local Ext_T_AutoFireHelper H;
|
||||||
|
@ -96,6 +96,7 @@ static function Ext_TraitDataStore Initializefor (Ext_PerkBase Perk, ExtPlayerCo
|
|||||||
}
|
}
|
||||||
return T;
|
return T;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function CleanupTrait(ExtPlayerController Player, Ext_PerkBase Perk, optional Ext_TraitDataStore Data)
|
static function CleanupTrait(ExtPlayerController Player, Ext_PerkBase Perk, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
if (Data!=None)
|
if (Data!=None)
|
||||||
@ -130,10 +131,12 @@ static final function string IntToStr(int Value, optional byte MaxVal) // Helper
|
|||||||
return Chr((Value & 32767)+1) $ Chr(((Value >> 15) & 32767)+1);
|
return Chr((Value & 32767)+1) $ Chr(((Value >> 15) & 32767)+1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static final function string InlineString(string Str) // Helper function to append a string line to a text using a length char in front.
|
static final function string InlineString(string Str) // Helper function to append a string line to a text using a length char in front.
|
||||||
{
|
{
|
||||||
return IntToStr(Len(Str))$Str;
|
return IntToStr(Len(Str))$Str;
|
||||||
}
|
}
|
||||||
|
|
||||||
static final function int StrToInt(out string Value, optional byte MaxVal) // Reverse.
|
static final function int StrToInt(out string Value, optional byte MaxVal) // Reverse.
|
||||||
{
|
{
|
||||||
local int Res;
|
local int Res;
|
||||||
@ -151,6 +154,7 @@ static final function int StrToInt(out string Value, optional byte MaxVal) // Re
|
|||||||
}
|
}
|
||||||
return Res;
|
return Res;
|
||||||
}
|
}
|
||||||
|
|
||||||
static final function string GetInlineStr(out string S) // Reverse.
|
static final function string GetInlineStr(out string S) // Reverse.
|
||||||
{
|
{
|
||||||
local int l;
|
local int l;
|
||||||
@ -172,6 +176,7 @@ static function string GetRepData()
|
|||||||
S $= IntToStr(Default.LevelCosts[i]);
|
S $= IntToStr(Default.LevelCosts[i]);
|
||||||
return S;
|
return S;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function string ClientSetRepData(string S)
|
static function string ClientSetRepData(string S)
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
@ -193,6 +198,7 @@ static function CheckConfig()
|
|||||||
StaticSaveConfig();
|
StaticSaveConfig();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static function UpdateConfigs(int OldVer)
|
static function UpdateConfigs(int OldVer)
|
||||||
{
|
{
|
||||||
if (OldVer==0)
|
if (OldVer==0)
|
||||||
@ -207,6 +213,7 @@ static function InitWebAdmin(ExtWebAdmin_UI UI)
|
|||||||
{
|
{
|
||||||
UI.AddSettingsPage("Trait "$Default.TraitName,Default.Class,Default.WebConfigs,GetValue,ApplyValue);
|
UI.AddSettingsPage("Trait "$Default.TraitName,Default.Class,Default.WebConfigs,GetValue,ApplyValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
static function string GetValue(name PropName, int ElementIndex)
|
static function string GetValue(name PropName, int ElementIndex)
|
||||||
{
|
{
|
||||||
switch (PropName)
|
switch (PropName)
|
||||||
@ -219,6 +226,7 @@ static function string GetValue(name PropName, int ElementIndex)
|
|||||||
return string(Default.bDisabled);
|
return string(Default.bDisabled);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static function ApplyValue(name PropName, int ElementIndex, string Value)
|
static function ApplyValue(name PropName, int ElementIndex, string Value)
|
||||||
{
|
{
|
||||||
switch (PropName)
|
switch (PropName)
|
||||||
|
@ -5,6 +5,7 @@ static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitD
|
|||||||
{
|
{
|
||||||
Perk.bExplosiveWeld = true;
|
Perk.bExplosiveWeld = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Perk.bExplosiveWeld = false;
|
Perk.bExplosiveWeld = false;
|
||||||
|
@ -5,6 +5,7 @@ static function ApplyEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level
|
|||||||
if (ExtHumanPawn(Player)!=None)
|
if (ExtHumanPawn(Player)!=None)
|
||||||
ExtHumanPawn(Player).bHasBunnyHop = true;
|
ExtHumanPawn(Player).bHasBunnyHop = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
if (ExtHumanPawn(Player)!=None)
|
if (ExtHumanPawn(Player)!=None)
|
||||||
|
@ -10,6 +10,7 @@ static function ApplyEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level
|
|||||||
if (M!=None)
|
if (M!=None)
|
||||||
M.MaxCarryBlocks = M.Default.MaxCarryBlocks+Default.CarryAdds[Level-1];
|
M.MaxCarryBlocks = M.Default.MaxCarryBlocks+Default.CarryAdds[Level-1];
|
||||||
}
|
}
|
||||||
|
|
||||||
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
local KFInventoryManager M;
|
local KFInventoryManager M;
|
||||||
|
@ -4,6 +4,7 @@ static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitD
|
|||||||
{
|
{
|
||||||
Perk.bExplodeOnContact = true;
|
Perk.bExplodeOnContact = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Perk.bExplodeOnContact = false;
|
Perk.bExplodeOnContact = false;
|
||||||
|
@ -4,6 +4,7 @@ static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitD
|
|||||||
{
|
{
|
||||||
Ext_PerkDemolition(Perk).bCriticalHit = true;
|
Ext_PerkDemolition(Perk).bCriticalHit = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Ext_PerkDemolition(Perk).bCriticalHit = false;
|
Ext_PerkDemolition(Perk).bCriticalHit = false;
|
||||||
|
@ -4,6 +4,7 @@ static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitD
|
|||||||
{
|
{
|
||||||
Ext_PerkDemolition(Perk).bDirectHit = true;
|
Ext_PerkDemolition(Perk).bDirectHit = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Ext_PerkDemolition(Perk).bDirectHit = false;
|
Ext_PerkDemolition(Perk).bDirectHit = false;
|
||||||
|
@ -4,6 +4,7 @@ static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitD
|
|||||||
{
|
{
|
||||||
Ext_PerkDemolition(Perk).bCanUseSacrifice = true;
|
Ext_PerkDemolition(Perk).bCanUseSacrifice = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Ext_PerkDemolition(Perk).bCanUseSacrifice = false;
|
Ext_PerkDemolition(Perk).bCanUseSacrifice = false;
|
||||||
|
@ -4,6 +4,7 @@ static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitD
|
|||||||
{
|
{
|
||||||
Ext_PerkSharpshooter(Perk).bHasDireReload = true;
|
Ext_PerkSharpshooter(Perk).bHasDireReload = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Ext_PerkSharpshooter(Perk).bHasDireReload = false;
|
Ext_PerkSharpshooter(Perk).bHasDireReload = false;
|
||||||
|
@ -7,6 +7,7 @@ static function ApplyEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level
|
|||||||
if (ExtHumanPawn(Player)!=None)
|
if (ExtHumanPawn(Player)!=None)
|
||||||
ExtHumanPawn(Player).SetBatteryRate(Default.BatteryCharges[Level-1]);
|
ExtHumanPawn(Player).SetBatteryRate(Default.BatteryCharges[Level-1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
if (ExtHumanPawn(Player)!=None)
|
if (ExtHumanPawn(Player)!=None)
|
||||||
|
@ -4,6 +4,7 @@ static function ApplyEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level
|
|||||||
{
|
{
|
||||||
Perk.bTacticalReload = true;
|
Perk.bTacticalReload = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Perk.bTacticalReload = false;
|
Perk.bTacticalReload = false;
|
||||||
|
@ -4,6 +4,7 @@ static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitD
|
|||||||
{
|
{
|
||||||
Perk.EnemyHealthRange = Level;
|
Perk.EnemyHealthRange = Level;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Perk.EnemyHealthRange = 0;
|
Perk.EnemyHealthRange = 0;
|
||||||
|
@ -4,6 +4,7 @@ static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitD
|
|||||||
{
|
{
|
||||||
Ext_PerkGunslinger(Perk).bHasFanfire = true;
|
Ext_PerkGunslinger(Perk).bHasFanfire = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Ext_PerkGunslinger(Perk).bHasFanfire = false;
|
Ext_PerkGunslinger(Perk).bHasFanfire = false;
|
||||||
|
@ -4,6 +4,7 @@ static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitD
|
|||||||
{
|
{
|
||||||
Perk.bFireExplode = true;
|
Perk.bFireExplode = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Perk.bFireExplode = false;
|
Perk.bFireExplode = false;
|
||||||
|
@ -4,6 +4,7 @@ static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitD
|
|||||||
{
|
{
|
||||||
KFPlayerReplicationInfo(Perk.PlayerOwner.PlayerReplicationInfo).bExtraFireRange = true;
|
KFPlayerReplicationInfo(Perk.PlayerOwner.PlayerReplicationInfo).bExtraFireRange = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
KFPlayerReplicationInfo(Perk.PlayerOwner.PlayerReplicationInfo).bExtraFireRange = false;
|
KFPlayerReplicationInfo(Perk.PlayerOwner.PlayerReplicationInfo).bExtraFireRange = false;
|
||||||
|
@ -7,6 +7,7 @@ static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitD
|
|||||||
{
|
{
|
||||||
Perk.PerkManager.SetGrenadeCap(Default.CarryAdds[Level-1]);
|
Perk.PerkManager.SetGrenadeCap(Default.CarryAdds[Level-1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Perk.PerkManager.SetGrenadeCap(0);
|
Perk.PerkManager.SetGrenadeCap(0);
|
||||||
|
@ -5,6 +5,7 @@ static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitD
|
|||||||
if (Level==1)
|
if (Level==1)
|
||||||
Perk.GrenadeClass = Perk.SuperGrenade;
|
Perk.GrenadeClass = Perk.SuperGrenade;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Perk.GrenadeClass = Perk.Default.GrenadeClass;
|
Perk.GrenadeClass = Perk.Default.GrenadeClass;
|
||||||
|
@ -6,6 +6,7 @@ static function bool MeetsRequirements(byte Lvl, Ext_PerkBase Perk)
|
|||||||
return false;
|
return false;
|
||||||
return Super.MeetsRequirements(Lvl,Perk);
|
return Super.MeetsRequirements(Lvl,Perk);
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
if (Level==1)
|
if (Level==1)
|
||||||
@ -13,6 +14,7 @@ static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitD
|
|||||||
else if (Level==2)
|
else if (Level==2)
|
||||||
Perk.GrenadeClass = Perk.SuperGrenade;
|
Perk.GrenadeClass = Perk.SuperGrenade;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Perk.GrenadeClass = Perk.Default.GrenadeClass;
|
Perk.GrenadeClass = Perk.Default.GrenadeClass;
|
||||||
|
@ -10,6 +10,7 @@ static function ApplyEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level
|
|||||||
if (H!=None)
|
if (H!=None)
|
||||||
H.RegCount = Default.RegenValues[Level-1];
|
H.RegCount = Default.RegenValues[Level-1];
|
||||||
}
|
}
|
||||||
|
|
||||||
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
local Ext_T_HealthRegHelp H;
|
local Ext_T_HealthRegHelp H;
|
||||||
|
@ -4,6 +4,7 @@ static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitD
|
|||||||
{
|
{
|
||||||
Perk.bHeavyArmor = true;
|
Perk.bHeavyArmor = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Perk.bHeavyArmor = false;
|
Perk.bHeavyArmor = false;
|
||||||
|
@ -5,6 +5,7 @@ static function ApplyEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level
|
|||||||
if (ExtHumanPawn(Player)!=None)
|
if (ExtHumanPawn(Player)!=None)
|
||||||
ExtHumanPawn(Player).KnockbackResist = Default.ChanceValues[Level-1];
|
ExtHumanPawn(Player).KnockbackResist = Default.ChanceValues[Level-1];
|
||||||
}
|
}
|
||||||
|
|
||||||
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
if (ExtHumanPawn(Player)!=None)
|
if (ExtHumanPawn(Player)!=None)
|
||||||
|
@ -4,6 +4,7 @@ static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitD
|
|||||||
{
|
{
|
||||||
Perk.bNapalmFire = true;
|
Perk.bNapalmFire = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Perk.bNapalmFire = false;
|
Perk.bNapalmFire = false;
|
||||||
|
@ -4,6 +4,7 @@ static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitD
|
|||||||
{
|
{
|
||||||
Perk.bHasNightVision = true;
|
Perk.bHasNightVision = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Perk.bHasNightVision = false;
|
Perk.bHasNightVision = false;
|
||||||
|
@ -6,6 +6,7 @@ static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitD
|
|||||||
{
|
{
|
||||||
Ext_PerkRhythmPerkBase(Perk).SetMaxRhythm(Default.ComboSize[Level-1]);
|
Ext_PerkRhythmPerkBase(Perk).SetMaxRhythm(Default.ComboSize[Level-1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Ext_PerkRhythmPerkBase(Perk).ResetRhythm();
|
Ext_PerkRhythmPerkBase(Perk).ResetRhythm();
|
||||||
|
@ -7,6 +7,7 @@ static function ApplyEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level
|
|||||||
if (ExtHumanPawn(Player)!=None)
|
if (ExtHumanPawn(Player)!=None)
|
||||||
ExtHumanPawn(Player).NoRagdollChance = Default.ChanceValues[Level-1];
|
ExtHumanPawn(Player).NoRagdollChance = Default.ChanceValues[Level-1];
|
||||||
}
|
}
|
||||||
|
|
||||||
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
if (ExtHumanPawn(Player)!=None)
|
if (ExtHumanPawn(Player)!=None)
|
||||||
|
@ -4,6 +4,7 @@ static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitD
|
|||||||
{
|
{
|
||||||
Ext_PerkSharpshooter(Perk).ZEDTimeStunPower = 4.f;
|
Ext_PerkSharpshooter(Perk).ZEDTimeStunPower = 4.f;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Ext_PerkSharpshooter(Perk).ZEDTimeStunPower = 0.f;
|
Ext_PerkSharpshooter(Perk).ZEDTimeStunPower = 0.f;
|
||||||
|
@ -4,6 +4,7 @@ static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitD
|
|||||||
{
|
{
|
||||||
Ext_PerkSWAT(Perk).bRapidAssault = true;
|
Ext_PerkSWAT(Perk).bRapidAssault = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Ext_PerkSWAT(Perk).bRapidAssault = false;
|
Ext_PerkSWAT(Perk).bRapidAssault = false;
|
||||||
|
@ -5,15 +5,18 @@ static function ApplyEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level
|
|||||||
if (ExtHumanPawn(Player)!=None)
|
if (ExtHumanPawn(Player)!=None)
|
||||||
ExtHumanPawn(Player).bMovesFastInZedTime = true;
|
ExtHumanPawn(Player).bMovesFastInZedTime = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
if (ExtHumanPawn(Player)!=None)
|
if (ExtHumanPawn(Player)!=None)
|
||||||
ExtHumanPawn(Player).bMovesFastInZedTime = false;
|
ExtHumanPawn(Player).bMovesFastInZedTime = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Perk.bHasSWATEnforcer = true;
|
Perk.bHasSWATEnforcer = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Perk.bHasSWATEnforcer = false;
|
Perk.bHasSWATEnforcer = false;
|
||||||
|
@ -4,6 +4,7 @@ static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitD
|
|||||||
{
|
{
|
||||||
Ext_PerkDemolition(Perk).bSirenResistance = true;
|
Ext_PerkDemolition(Perk).bSirenResistance = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Ext_PerkDemolition(Perk).bSirenResistance = false;
|
Ext_PerkDemolition(Perk).bSirenResistance = false;
|
||||||
|
@ -8,6 +8,7 @@ static function ApplyEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level
|
|||||||
ExtHumanPawn(Player).bMovesFastInZedTime = true;
|
ExtHumanPawn(Player).bMovesFastInZedTime = true;
|
||||||
Ext_PerkBerserker(Perk).ZedTimeMeleeAtkRate = 1.f/Default.AtkRates[Level-1];
|
Ext_PerkBerserker(Perk).ZedTimeMeleeAtkRate = 1.f/Default.AtkRates[Level-1];
|
||||||
}
|
}
|
||||||
|
|
||||||
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
if (ExtHumanPawn(Player)!=None)
|
if (ExtHumanPawn(Player)!=None)
|
||||||
|
@ -6,10 +6,12 @@ static function ApplyEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level
|
|||||||
{
|
{
|
||||||
Ext_TraitSupplyData(Data).SpawnSupplier(Player);
|
Ext_TraitSupplyData(Data).SpawnSupplier(Player);
|
||||||
}
|
}
|
||||||
|
|
||||||
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Ext_TraitSupplyData(Data).RemoveSupplier();
|
Ext_TraitSupplyData(Data).RemoveSupplier();
|
||||||
}
|
}
|
||||||
|
|
||||||
static function PlayerDied(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function PlayerDied(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Ext_TraitSupplyData(Data).RemoveSupplier();
|
Ext_TraitSupplyData(Data).RemoveSupplier();
|
||||||
|
@ -16,6 +16,7 @@ final function SpawnSupplier(KFPawn_Human H, optional bool bGrenades)
|
|||||||
if (PlayerOwner!=None && ExtPlayerReplicationInfo(PlayerOwner.PlayerReplicationInfo)!=None)
|
if (PlayerOwner!=None && ExtPlayerReplicationInfo(PlayerOwner.PlayerReplicationInfo)!=None)
|
||||||
ExtPlayerReplicationInfo(PlayerOwner.PlayerReplicationInfo).HasSupplier = class<Ext_TraitSupply>(TraitClass);
|
ExtPlayerReplicationInfo(PlayerOwner.PlayerReplicationInfo).HasSupplier = class<Ext_TraitSupply>(TraitClass);
|
||||||
}
|
}
|
||||||
|
|
||||||
final function RemoveSupplier()
|
final function RemoveSupplier()
|
||||||
{
|
{
|
||||||
if (SupplyInteraction!=None)
|
if (SupplyInteraction!=None)
|
||||||
@ -24,6 +25,7 @@ final function RemoveSupplier()
|
|||||||
if (PlayerOwner!=None && ExtPlayerReplicationInfo(PlayerOwner.PlayerReplicationInfo)!=None)
|
if (PlayerOwner!=None && ExtPlayerReplicationInfo(PlayerOwner.PlayerReplicationInfo)!=None)
|
||||||
ExtPlayerReplicationInfo(PlayerOwner.PlayerReplicationInfo).HasSupplier = None;
|
ExtPlayerReplicationInfo(PlayerOwner.PlayerReplicationInfo).HasSupplier = None;
|
||||||
}
|
}
|
||||||
|
|
||||||
function Destroyed()
|
function Destroyed()
|
||||||
{
|
{
|
||||||
RemoveSupplier();
|
RemoveSupplier();
|
||||||
|
@ -4,6 +4,7 @@ static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitD
|
|||||||
{
|
{
|
||||||
Ext_PerkSWAT(Perk).RepTacticalMove = Level;
|
Ext_PerkSWAT(Perk).RepTacticalMove = Level;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Ext_PerkSWAT(Perk).RepTacticalMove = 0;
|
Ext_PerkSWAT(Perk).RepTacticalMove = 0;
|
||||||
|
@ -7,6 +7,7 @@ static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitD
|
|||||||
Perk.ToxicDartDamage = Default.DartDamages[Level-1];
|
Perk.ToxicDartDamage = Default.DartDamages[Level-1];
|
||||||
Perk.bToxicDart = true;
|
Perk.bToxicDart = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Perk.bToxicDart = false;
|
Perk.bToxicDart = false;
|
||||||
|
@ -4,6 +4,7 @@ static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitD
|
|||||||
{
|
{
|
||||||
Ext_PerkGunslinger(Perk).bHasUberAmmo = true;
|
Ext_PerkGunslinger(Perk).bHasUberAmmo = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Ext_PerkGunslinger(Perk).bHasUberAmmo = false;
|
Ext_PerkGunslinger(Perk).bHasUberAmmo = false;
|
||||||
|
@ -10,6 +10,7 @@ static function ApplyEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level
|
|||||||
if (H!=None)
|
if (H!=None)
|
||||||
H.HandleRadius = Default.RadiusValues[Level-1];
|
H.HandleRadius = Default.RadiusValues[Level-1];
|
||||||
}
|
}
|
||||||
|
|
||||||
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
local Ext_T_UnCloakHelper H;
|
local Ext_T_UnCloakHelper H;
|
||||||
|
@ -4,6 +4,7 @@ static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitD
|
|||||||
{
|
{
|
||||||
Perk.bCanBeGrabbed = false;
|
Perk.bCanBeGrabbed = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Perk.bCanBeGrabbed = true;
|
Perk.bCanBeGrabbed = true;
|
||||||
|
@ -6,6 +6,7 @@ static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitD
|
|||||||
{
|
{
|
||||||
Ext_PerkBerserker(Perk).VampRegenRate = Default.RegenRate[Level-1];
|
Ext_PerkBerserker(Perk).VampRegenRate = Default.RegenRate[Level-1];
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Ext_PerkBerserker(Perk).VampRegenRate = 0;
|
Ext_PerkBerserker(Perk).VampRegenRate = 0;
|
||||||
|
@ -13,6 +13,7 @@ static function bool MeetsRequirements(byte Lvl, Ext_PerkBase Perk)
|
|||||||
return false;
|
return false;
|
||||||
return Super.MeetsRequirements(Lvl,Perk);
|
return Super.MeetsRequirements(Lvl,Perk);
|
||||||
}
|
}
|
||||||
|
|
||||||
static final function bool HasMaxCarry(Ext_PerkBase Perk)
|
static final function bool HasMaxCarry(Ext_PerkBase Perk)
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
@ -20,6 +21,7 @@ static final function bool HasMaxCarry(Ext_PerkBase Perk)
|
|||||||
i = Perk.PerkTraits.Find('TraitType',Class'Ext_TraitCarryCap');
|
i = Perk.PerkTraits.Find('TraitType',Class'Ext_TraitCarryCap');
|
||||||
return (i==-1 || Perk.PerkTraits[i].CurrentLevel>=3);
|
return (i==-1 || Perk.PerkTraits[i].CurrentLevel>=3);
|
||||||
}
|
}
|
||||||
|
|
||||||
static function string GetPerkDescription()
|
static function string GetPerkDescription()
|
||||||
{
|
{
|
||||||
return Super.GetPerkDescription()$"|- Level 4 requires perk level 50 and level 3 carry capacity trait!";
|
return Super.GetPerkDescription()$"|- Level 4 requires perk level 50 and level 3 carry capacity trait!";
|
||||||
@ -29,6 +31,7 @@ static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitD
|
|||||||
{
|
{
|
||||||
Perk.PrimaryWeapon = None; // Give a new primary weapon.
|
Perk.PrimaryWeapon = None; // Give a new primary weapon.
|
||||||
}
|
}
|
||||||
|
|
||||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
Perk.PrimaryWeapon = Perk.Default.PrimaryWeapon;
|
Perk.PrimaryWeapon = Perk.Default.PrimaryWeapon;
|
||||||
@ -56,6 +59,7 @@ static function ApplyEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level
|
|||||||
if (M!=None)
|
if (M!=None)
|
||||||
M.bInfiniteWeight = false;
|
M.bInfiniteWeight = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
local class<Inventory> IC;
|
local class<Inventory> IC;
|
||||||
|
@ -10,6 +10,7 @@ static function ApplyEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level
|
|||||||
foreach Player.ChildActors(class'Ext_T_ZEDHelper',H)
|
foreach Player.ChildActors(class'Ext_T_ZEDHelper',H)
|
||||||
H.SetDamageScale(Default.DamList[Level-1]);
|
H.SetDamageScale(Default.DamList[Level-1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
local Ext_T_ZEDHelper H;
|
local Ext_T_ZEDHelper H;
|
||||||
|
@ -10,6 +10,7 @@ static function ApplyEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level
|
|||||||
foreach Player.ChildActors(class'Ext_T_ZEDHelper',H)
|
foreach Player.ChildActors(class'Ext_T_ZEDHelper',H)
|
||||||
H.SetHealthScale(Default.HPList[Level-1]);
|
H.SetHealthScale(Default.HPList[Level-1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
local Ext_T_ZEDHelper H;
|
local Ext_T_ZEDHelper H;
|
||||||
|
@ -83,6 +83,7 @@ static function bool MeetsRequirements(byte Lvl, Ext_PerkBase Perk)
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function ApplyEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function ApplyEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
local Ext_T_ZEDHelper H;
|
local Ext_T_ZEDHelper H;
|
||||||
@ -97,6 +98,7 @@ static function ApplyEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level
|
|||||||
if (Perk.PerkTraits[i].CurrentLevel>0 && Class<Ext_TraitZEDBase>(Perk.PerkTraits[i].TraitType)!=None && !Class<Ext_TraitZEDBase>(Perk.PerkTraits[i].TraitType).Default.bIsSummoner)
|
if (Perk.PerkTraits[i].CurrentLevel>0 && Class<Ext_TraitZEDBase>(Perk.PerkTraits[i].TraitType)!=None && !Class<Ext_TraitZEDBase>(Perk.PerkTraits[i].TraitType).Default.bIsSummoner)
|
||||||
Perk.PerkTraits[i].TraitType.Static.ApplyEffectOn(Player,Perk,Level,Data);
|
Perk.PerkTraits[i].TraitType.Static.ApplyEffectOn(Player,Perk,Level,Data);
|
||||||
}
|
}
|
||||||
|
|
||||||
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
local Ext_T_ZEDHelper H;
|
local Ext_T_ZEDHelper H;
|
||||||
@ -115,6 +117,7 @@ static function string GetRepData()
|
|||||||
S $= IntToStr(Default.FinalLevelPrestige);
|
S $= IntToStr(Default.FinalLevelPrestige);
|
||||||
return S;
|
return S;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function string ClientSetRepData(string S)
|
static function string ClientSetRepData(string S)
|
||||||
{
|
{
|
||||||
S = Super.ClientSetRepData(S);
|
S = Super.ClientSetRepData(S);
|
||||||
@ -136,6 +139,7 @@ static function string GetValue(name PropName, int ElementIndex)
|
|||||||
return Super.GetValue(PropName,ElementIndex);
|
return Super.GetValue(PropName,ElementIndex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static function ApplyValue(name PropName, int ElementIndex, string Value)
|
static function ApplyValue(name PropName, int ElementIndex, string Value)
|
||||||
{
|
{
|
||||||
switch (PropName)
|
switch (PropName)
|
||||||
|
@ -33,6 +33,7 @@ static function ApplyEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level
|
|||||||
if (Perk.PerkTraits[i].CurrentLevel>0 && Class<Ext_TraitZEDBase>(Perk.PerkTraits[i].TraitType)!=None && !Class<Ext_TraitZEDBase>(Perk.PerkTraits[i].TraitType).Default.bIsSummoner)
|
if (Perk.PerkTraits[i].CurrentLevel>0 && Class<Ext_TraitZEDBase>(Perk.PerkTraits[i].TraitType)!=None && !Class<Ext_TraitZEDBase>(Perk.PerkTraits[i].TraitType).Default.bIsSummoner)
|
||||||
Perk.PerkTraits[i].TraitType.Static.ApplyEffectOn(Player,Perk,Level,Data);
|
Perk.PerkTraits[i].TraitType.Static.ApplyEffectOn(Player,Perk,Level,Data);
|
||||||
}
|
}
|
||||||
|
|
||||||
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||||
{
|
{
|
||||||
local Ext_T_ZEDHelper H;
|
local Ext_T_ZEDHelper H;
|
||||||
@ -41,6 +42,7 @@ static function CancelEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Leve
|
|||||||
if (H.bIsExtra)
|
if (H.bIsExtra)
|
||||||
H.Destroy();
|
H.Destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
static final function AddHelperType(byte Lv, KFPawn_Human Player)
|
static final function AddHelperType(byte Lv, KFPawn_Human Player)
|
||||||
{
|
{
|
||||||
local Ext_T_ZEDHelper H;
|
local Ext_T_ZEDHelper H;
|
||||||
|
@ -13,6 +13,7 @@ function InitStyle()
|
|||||||
if (ItemTex==None)
|
if (ItemTex==None)
|
||||||
ItemTex = Texture2D'EngineMaterials.DefaultWhiteGrid';
|
ItemTex = Texture2D'EngineMaterials.DefaultWhiteGrid';
|
||||||
}
|
}
|
||||||
|
|
||||||
function RenderFramedWindow(KFGUI_FloatingWindow P);
|
function RenderFramedWindow(KFGUI_FloatingWindow P);
|
||||||
function RenderWindow(KFGUI_Page P);
|
function RenderWindow(KFGUI_Page P);
|
||||||
function RenderToolTip(KFGUI_Tooltip TT);
|
function RenderToolTip(KFGUI_Tooltip TT);
|
||||||
@ -45,6 +46,7 @@ function PickDefaultFontSize(float YRes)
|
|||||||
PickFont(DefaultFontSize,YRes).GetStringHeightAndWidth(S,YL,XL);
|
PickFont(DefaultFontSize,YRes).GetStringHeightAndWidth(S,YL,XL);
|
||||||
DefaultHeight = float(YL)*YRes;
|
DefaultHeight = float(YL)*YRes;
|
||||||
}
|
}
|
||||||
|
|
||||||
final function DrawText(byte Res, string S)
|
final function DrawText(byte Res, string S)
|
||||||
{
|
{
|
||||||
local float Scale;
|
local float Scale;
|
||||||
@ -70,6 +72,7 @@ final function DrawCornerTexNU(int SizeX, int SizeY, byte Dir) // Draw non-unifo
|
|||||||
Canvas.DrawTile(ItemTex,SizeX,SizeY,11,73,66,-58);
|
Canvas.DrawTile(ItemTex,SizeX,SizeY,11,73,66,-58);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
final function DrawCornerTex(int Size, byte Dir)
|
final function DrawCornerTex(int Size, byte Dir)
|
||||||
{
|
{
|
||||||
switch (Dir)
|
switch (Dir)
|
||||||
@ -87,6 +90,7 @@ final function DrawCornerTex(int Size, byte Dir)
|
|||||||
Canvas.DrawTile(ItemTex,Size,Size,11,73,66,-58);
|
Canvas.DrawTile(ItemTex,Size,Size,11,73,66,-58);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
final function DrawWhiteBox(int XS, int YS)
|
final function DrawWhiteBox(int XS, int YS)
|
||||||
{
|
{
|
||||||
Canvas.DrawTile(ItemTex,XS,YS,19,45,1,1);
|
Canvas.DrawTile(ItemTex,XS,YS,19,45,1,1);
|
||||||
|
@ -68,6 +68,7 @@ simulated function HandleDrawMenu()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function RenderMenu(Canvas C)
|
simulated function RenderMenu(Canvas C)
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
@ -290,6 +291,7 @@ simulated final function int GetFreeIndex(bool bNewAlwaysTop) // Find first allo
|
|||||||
ActiveMenus.Length = i+1;
|
ActiveMenus.Length = i+1;
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function KFGUI_Page OpenMenu(class<KFGUI_Page> MenuClass)
|
simulated function KFGUI_Page OpenMenu(class<KFGUI_Page> MenuClass)
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
@ -351,6 +353,7 @@ simulated function KFGUI_Page OpenMenu(class<KFGUI_Page> MenuClass)
|
|||||||
M.ShowMenu();
|
M.ShowMenu();
|
||||||
return M;
|
return M;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function CloseMenu(class<KFGUI_Page> MenuClass, optional bool bCloseAll)
|
simulated function CloseMenu(class<KFGUI_Page> MenuClass, optional bool bCloseAll)
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
@ -380,6 +383,7 @@ simulated function CloseMenu(class<KFGUI_Page> MenuClass, optional bool bCloseAl
|
|||||||
if (ActiveMenus.Length==0)
|
if (ActiveMenus.Length==0)
|
||||||
SetMenuState(false);
|
SetMenuState(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function PopCloseMenu(KFGUI_Base Item)
|
simulated function PopCloseMenu(KFGUI_Base Item)
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
@ -410,6 +414,7 @@ simulated function PopCloseMenu(KFGUI_Base Item)
|
|||||||
if (ActiveMenus.Length==0)
|
if (ActiveMenus.Length==0)
|
||||||
SetMenuState(false);
|
SetMenuState(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function BringMenuToFront(KFGUI_Page Page)
|
simulated function BringMenuToFront(KFGUI_Page Page)
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
@ -431,6 +436,7 @@ simulated function BringMenuToFront(KFGUI_Page Page)
|
|||||||
ActiveMenus.Insert(0,1);
|
ActiveMenus.Insert(0,1);
|
||||||
ActiveMenus[0] = Page;
|
ActiveMenus[0] = Page;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated final function bool MenuIsOpen(optional class<KFGUI_Page> MenuClass)
|
simulated final function bool MenuIsOpen(optional class<KFGUI_Page> MenuClass)
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
@ -440,6 +446,7 @@ simulated final function bool MenuIsOpen(optional class<KFGUI_Page> MenuClass)
|
|||||||
return true;
|
return true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated final function GrabInputFocus(KFGUI_Base Comp, optional bool bForce)
|
simulated final function GrabInputFocus(KFGUI_Base Comp, optional bool bForce)
|
||||||
{
|
{
|
||||||
if (Comp==KeyboardFocus && !bForce)
|
if (Comp==KeyboardFocus && !bForce)
|
||||||
@ -515,6 +522,7 @@ simulated final function GUI_InputMouse(bool bPressed, bool bRight)
|
|||||||
MouseFocus.MouseRelease(bRight);
|
MouseFocus.MouseRelease(bRight);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated final function bool CheckMouse(name Key, EInputEvent Event)
|
simulated final function bool CheckMouse(name Key, EInputEvent Event)
|
||||||
{
|
{
|
||||||
if (Event == IE_Pressed)
|
if (Event == IE_Pressed)
|
||||||
@ -543,6 +551,7 @@ simulated final function bool CheckMouse(name Key, EInputEvent Event)
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function bool ReceivedInputKey(int ControllerId, name Key, EInputEvent Event, optional float AmountDepressed=1.f, optional bool bGamepad)
|
simulated function bool ReceivedInputKey(int ControllerId, name Key, EInputEvent Event, optional float AmountDepressed=1.f, optional bool bGamepad)
|
||||||
{
|
{
|
||||||
if (!bIsInMenuState)
|
if (!bIsInMenuState)
|
||||||
@ -565,6 +574,7 @@ simulated function bool ReceivedInputKey(int ControllerId, name Key, EInputEvent
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function bool ReceivedInputChar(int ControllerId, string Unicode)
|
simulated function bool ReceivedInputChar(int ControllerId, string Unicode)
|
||||||
{
|
{
|
||||||
if (!bIsInMenuState)
|
if (!bIsInMenuState)
|
||||||
@ -576,14 +586,17 @@ simulated Delegate bool OnInputKey(int ControllerId, name Key, EInputEvent Event
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated Delegate bool OnReceivedInputChar(int ControllerId, string Unicode)
|
simulated Delegate bool OnReceivedInputChar(int ControllerId, string Unicode)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated Delegate bool InternalInputKey(int ControllerId, name Key, EInputEvent Event, optional float AmountDepressed=1.f, optional bool bGamepad)
|
simulated Delegate bool InternalInputKey(int ControllerId, name Key, EInputEvent Event, optional float AmountDepressed=1.f, optional bool bGamepad)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated Delegate bool InternalReceivedInputChar(int ControllerId, string Unicode)
|
simulated Delegate bool InternalReceivedInputChar(int ControllerId, string Unicode)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
|
@ -8,6 +8,7 @@ function DrawHUD(HUD H)
|
|||||||
{
|
{
|
||||||
//ControllerOwner.RenderMenu(H.Canvas);
|
//ControllerOwner.RenderMenu(H.Canvas);
|
||||||
}
|
}
|
||||||
|
|
||||||
function PostRender(Canvas Canvas)
|
function PostRender(Canvas Canvas)
|
||||||
{
|
{
|
||||||
if (ControllerOwner.bIsInMenuState)
|
if (ControllerOwner.bIsInMenuState)
|
||||||
|
@ -16,6 +16,7 @@ static function OpenMenuForClient(PlayerController PC, class<KFGUI_Page> Page)
|
|||||||
G = PC.Spawn(class'KF2GUINetwork',PC);
|
G = PC.Spawn(class'KF2GUINetwork',PC);
|
||||||
G.ClientOpenMenu(Page);
|
G.ClientOpenMenu(Page);
|
||||||
}
|
}
|
||||||
|
|
||||||
static function CloseMenuForClient(PlayerController PC, class<KFGUI_Page> Page, optional bool bCloseAll)
|
static function CloseMenuForClient(PlayerController PC, class<KFGUI_Page> Page, optional bool bCloseAll)
|
||||||
{
|
{
|
||||||
local KF2GUINetwork G;
|
local KF2GUINetwork G;
|
||||||
@ -35,6 +36,7 @@ simulated reliable client function ClientOpenMenu(class<KFGUI_Page> Page)
|
|||||||
GUIController = Class'KF2GUIController'.Static.GetGUIController(PlayerOwner);
|
GUIController = Class'KF2GUIController'.Static.GetGUIController(PlayerOwner);
|
||||||
GUIController.OpenMenu(Page);
|
GUIController.OpenMenu(Page);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated reliable client function ClientCloseMenu(class<KFGUI_Page> Page, bool bCloseAll)
|
simulated reliable client function ClientCloseMenu(class<KFGUI_Page> Page, bool bCloseAll)
|
||||||
{
|
{
|
||||||
if (!bLocalClient)
|
if (!bLocalClient)
|
||||||
|
@ -26,6 +26,7 @@ function InitStyle()
|
|||||||
DrawFonts[i] = class'Engine'.Static.GetMediumFont();
|
DrawFonts[i] = class'Engine'.Static.GetMediumFont();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function RenderFramedWindow(KFGUI_FloatingWindow P)
|
function RenderFramedWindow(KFGUI_FloatingWindow P)
|
||||||
{
|
{
|
||||||
local int XS,YS,CornerSlope,TitleHeight;
|
local int XS,YS,CornerSlope,TitleHeight;
|
||||||
@ -83,6 +84,7 @@ function RenderFramedWindow(KFGUI_FloatingWindow P)
|
|||||||
DrawText(DefaultFontSize,P.WindowTitle);
|
DrawText(DefaultFontSize,P.WindowTitle);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function RenderWindow(KFGUI_Page P)
|
function RenderWindow(KFGUI_Page P)
|
||||||
{
|
{
|
||||||
local int XS,YS,CornerSlope;
|
local int XS,YS,CornerSlope;
|
||||||
@ -112,6 +114,7 @@ function RenderWindow(KFGUI_Page P)
|
|||||||
Canvas.SetPos(XS-CornerSlope,CornerSlope);
|
Canvas.SetPos(XS-CornerSlope,CornerSlope);
|
||||||
DrawWhiteBox(CornerSlope,YS-(CornerSlope*2));
|
DrawWhiteBox(CornerSlope,YS-(CornerSlope*2));
|
||||||
}
|
}
|
||||||
|
|
||||||
function RenderToolTip(KFGUI_Tooltip TT)
|
function RenderToolTip(KFGUI_Tooltip TT)
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
@ -168,6 +171,7 @@ function RenderToolTip(KFGUI_Tooltip TT)
|
|||||||
Y+=DefaultHeight;
|
Y+=DefaultHeight;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function RenderButton(KFGUI_Button B)
|
function RenderButton(KFGUI_Button B)
|
||||||
{
|
{
|
||||||
local float XL,YL,TS;
|
local float XL,YL,TS;
|
||||||
@ -217,6 +221,7 @@ function RenderButton(KFGUI_Button B)
|
|||||||
Canvas.DrawText(B.ButtonText,,TS,TS,B.TextFontInfo);
|
Canvas.DrawText(B.ButtonText,,TS,TS,B.TextFontInfo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function RenderEditBox(KFGUI_EditBox E)
|
function RenderEditBox(KFGUI_EditBox E)
|
||||||
{
|
{
|
||||||
local color C;
|
local color C;
|
||||||
@ -249,6 +254,7 @@ function RenderEditBox(KFGUI_EditBox E)
|
|||||||
Canvas.DrawColor = C;
|
Canvas.DrawColor = C;
|
||||||
DrawWhiteBox(E.CompPos[2]-6,E.CompPos[3]-6);
|
DrawWhiteBox(E.CompPos[2]-6,E.CompPos[3]-6);
|
||||||
}
|
}
|
||||||
|
|
||||||
function RenderScrollBar(KFGUI_ScrollBarBase S)
|
function RenderScrollBar(KFGUI_ScrollBarBase S)
|
||||||
{
|
{
|
||||||
local float A;
|
local float A;
|
||||||
@ -303,6 +309,7 @@ function RenderScrollBar(KFGUI_ScrollBarBase S)
|
|||||||
DrawWhiteBox(S.SliderScale,S.CompPos[3]);
|
DrawWhiteBox(S.SliderScale,S.CompPos[3]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function RenderColumnHeader(KFGUI_ColumnTop C, float XPos, float Width, int Index, bool bFocus, bool bSort)
|
function RenderColumnHeader(KFGUI_ColumnTop C, float XPos, float Width, int Index, bool bFocus, bool bSort)
|
||||||
{
|
{
|
||||||
local int XS;
|
local int XS;
|
||||||
@ -329,6 +336,7 @@ function RenderColumnHeader(KFGUI_ColumnTop C, float XPos, float Width, int Inde
|
|||||||
Canvas.SetPos(XPos+XS,(C.CompPos[3]-C.ListOwner.TextHeight)*0.5f);
|
Canvas.SetPos(XPos+XS,(C.CompPos[3]-C.ListOwner.TextHeight)*0.5f);
|
||||||
C.ListOwner.DrawStrClipped(C.ListOwner.Columns[Index].Text);
|
C.ListOwner.DrawStrClipped(C.ListOwner.Columns[Index].Text);
|
||||||
}
|
}
|
||||||
|
|
||||||
function RenderCheckbox(KFGUI_CheckBox C)
|
function RenderCheckbox(KFGUI_CheckBox C)
|
||||||
{
|
{
|
||||||
if (C.bDisabled)
|
if (C.bDisabled)
|
||||||
@ -351,6 +359,7 @@ function RenderCheckbox(KFGUI_CheckBox C)
|
|||||||
Canvas.DrawTile(LoadedTex[1],C.CompPos[2],C.CompPos[3],0,0,LoadedTex[1].GetSurfaceWidth(),LoadedTex[1].GetSurfaceHeight());
|
Canvas.DrawTile(LoadedTex[1],C.CompPos[2],C.CompPos[3],0,0,LoadedTex[1].GetSurfaceWidth(),LoadedTex[1].GetSurfaceHeight());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function RenderComboBox(KFGUI_ComboBox C)
|
function RenderComboBox(KFGUI_ComboBox C)
|
||||||
{
|
{
|
||||||
if (C.bDisabled)
|
if (C.bDisabled)
|
||||||
@ -375,6 +384,7 @@ function RenderComboBox(KFGUI_ComboBox C)
|
|||||||
Canvas.PopMaskRegion();
|
Canvas.PopMaskRegion();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function RenderComboList(KFGUI_ComboSelector C)
|
function RenderComboList(KFGUI_ComboSelector C)
|
||||||
{
|
{
|
||||||
local float X,Y,YL,YP,Edge;
|
local float X,Y,YL,YP,Edge;
|
||||||
@ -430,6 +440,7 @@ function RenderComboList(KFGUI_ComboSelector C)
|
|||||||
C.PlayMenuSound(MN_DropdownChange);
|
C.PlayMenuSound(MN_DropdownChange);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function RenderRightClickMenu(KFGUI_RightClickMenu C)
|
function RenderRightClickMenu(KFGUI_RightClickMenu C)
|
||||||
{
|
{
|
||||||
local float X,Y,YP,Edge,TextScale;
|
local float X,Y,YP,Edge,TextScale;
|
||||||
|
@ -79,11 +79,13 @@ simulated function PostBeginPlay()
|
|||||||
|
|
||||||
SetTimer(300 + FRand()*120.f,false,'CheckForItems');
|
SetTimer(300 + FRand()*120.f,false,'CheckForItems');
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function Destroyed()
|
simulated function Destroyed()
|
||||||
{
|
{
|
||||||
Super.Destroyed();
|
Super.Destroyed();
|
||||||
NotifyLevelChange();
|
NotifyLevelChange();
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated final function NotifyLevelChange(optional bool bMapswitch)
|
simulated final function NotifyLevelChange(optional bool bMapswitch)
|
||||||
{
|
{
|
||||||
if (OnlineSub!=None)
|
if (OnlineSub!=None)
|
||||||
@ -96,6 +98,7 @@ simulated final function NotifyLevelChange(optional bool bMapswitch)
|
|||||||
if (bMapswitch)
|
if (bMapswitch)
|
||||||
SetTimer(0.5,false,'PendingMapSwitch');
|
SetTimer(0.5,false,'PendingMapSwitch');
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function PendingMapswitch ()
|
simulated function PendingMapswitch ()
|
||||||
{
|
{
|
||||||
// Make sure we dont garbage collect the game:
|
// Make sure we dont garbage collect the game:
|
||||||
@ -132,6 +135,7 @@ final function AddKillMessage(class<Pawn> Victim, int Value, PlayerReplicationIn
|
|||||||
KillMessages[i].Name = GetNameOf(Victim);
|
KillMessages[i].Name = GetNameOf(Victim);
|
||||||
KillMessages[i].MsgColor = GetMsgColor(bDmg,Value);
|
KillMessages[i].MsgColor = GetMsgColor(bDmg,Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
final function AddDeathMessage(string S, string StrippedMsg)
|
final function AddDeathMessage(string S, string StrippedMsg)
|
||||||
{
|
{
|
||||||
DeathMessages.Insert(0,1);
|
DeathMessages.Insert(0,1);
|
||||||
@ -139,6 +143,7 @@ final function AddDeathMessage(string S, string StrippedMsg)
|
|||||||
DeathMessages[0].SMsg = StrippedMsg;
|
DeathMessages[0].SMsg = StrippedMsg;
|
||||||
DeathMessages[0].MsgTime = WorldInfo.TimeSeconds;
|
DeathMessages[0].MsgTime = WorldInfo.TimeSeconds;
|
||||||
}
|
}
|
||||||
|
|
||||||
final function ShowProgressMsg(string S, optional bool bDis)
|
final function ShowProgressMsg(string S, optional bool bDis)
|
||||||
{
|
{
|
||||||
if (S=="")
|
if (S=="")
|
||||||
@ -156,6 +161,7 @@ final function ShowProgressMsg(string S, optional bool bDis)
|
|||||||
LocalPlayer(KFPlayerOwner.Player).ViewportClient.ViewportConsole.OutputText(Repl(S,"|","\n"));
|
LocalPlayer(KFPlayerOwner.Player).ViewportClient.ViewportConsole.OutputText(Repl(S,"|","\n"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static final function string GetNameOf(class<Pawn> Other)
|
static final function string GetNameOf(class<Pawn> Other)
|
||||||
{
|
{
|
||||||
local string S;
|
local string S;
|
||||||
@ -178,6 +184,7 @@ static final function string GetNameOf(class<Pawn> Other)
|
|||||||
S = Repl(S,"_"," ");
|
S = Repl(S,"_"," ");
|
||||||
return S;
|
return S;
|
||||||
}
|
}
|
||||||
|
|
||||||
static final function string GetNameArticle(string S)
|
static final function string GetNameArticle(string S)
|
||||||
{
|
{
|
||||||
switch (Caps(Left(S,1))) // Check if a vowel, then an.
|
switch (Caps(Left(S,1))) // Check if a vowel, then an.
|
||||||
@ -191,6 +198,7 @@ static final function string GetNameArticle(string S)
|
|||||||
}
|
}
|
||||||
return "a";
|
return "a";
|
||||||
}
|
}
|
||||||
|
|
||||||
static final function string StripMsgColors(string S)
|
static final function string StripMsgColors(string S)
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
@ -204,6 +212,7 @@ static final function string StripMsgColors(string S)
|
|||||||
}
|
}
|
||||||
return S;
|
return S;
|
||||||
}
|
}
|
||||||
|
|
||||||
final function color GetMsgColor(bool bDamage, int Count)
|
final function color GetMsgColor(bool bDamage, int Count)
|
||||||
{
|
{
|
||||||
local float T;
|
local float T;
|
||||||
@ -298,6 +307,7 @@ event PostRender()
|
|||||||
if (PlayerOwner.Player==None && OnlineSub!=None)
|
if (PlayerOwner.Player==None && OnlineSub!=None)
|
||||||
NotifyLevelChange();
|
NotifyLevelChange();
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function CancelConnection()
|
simulated function CancelConnection()
|
||||||
{
|
{
|
||||||
if (!bConfirmDisconnect)
|
if (!bConfirmDisconnect)
|
||||||
@ -307,6 +317,7 @@ simulated function CancelConnection()
|
|||||||
}
|
}
|
||||||
else class'Engine'.Static.GetEngine().GameViewport.ConsoleCommand("Disconnect");
|
else class'Engine'.Static.GetEngine().GameViewport.ConsoleCommand("Disconnect");
|
||||||
}
|
}
|
||||||
|
|
||||||
final function DrawRespawnCounter()
|
final function DrawRespawnCounter()
|
||||||
{
|
{
|
||||||
local float Sc,XL,YL;
|
local float Sc,XL,YL;
|
||||||
@ -319,6 +330,7 @@ final function DrawRespawnCounter()
|
|||||||
Canvas.SetPos((Canvas.ClipX-XL)*0.5,Canvas.ClipY*0.075);
|
Canvas.SetPos((Canvas.ClipX-XL)*0.5,Canvas.ClipY*0.075);
|
||||||
Canvas.DrawText(S,,Sc,Sc);
|
Canvas.DrawText(S,,Sc,Sc);
|
||||||
}
|
}
|
||||||
|
|
||||||
exec function SetShowScores(bool bNewValue)
|
exec function SetShowScores(bool bNewValue)
|
||||||
{
|
{
|
||||||
bShowScores = bNewValue;
|
bShowScores = bNewValue;
|
||||||
@ -329,6 +341,7 @@ exec function SetShowScores(bool bNewValue)
|
|||||||
else GUIController.CloseMenu(class'UI_Scoreboard_CD');
|
else GUIController.CloseMenu(class'UI_Scoreboard_CD');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
final function RenderKillMsg()
|
final function RenderKillMsg()
|
||||||
{
|
{
|
||||||
local float Sc,YL,T,X,Y;
|
local float Sc,YL,T,X,Y;
|
||||||
@ -363,6 +376,7 @@ final function RenderKillMsg()
|
|||||||
Y+=YL;
|
Y+=YL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
final function RenderDMMessages()
|
final function RenderDMMessages()
|
||||||
{
|
{
|
||||||
local float Sc,YL,XL,T,Y,X;
|
local float Sc,YL,XL,T,Y,X;
|
||||||
@ -424,6 +438,7 @@ final function RenderDMMessages()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
final function RenderProgress()
|
final function RenderProgress()
|
||||||
{
|
{
|
||||||
local float Y,XL,YL,Sc;
|
local float Y,XL,YL,Sc;
|
||||||
@ -627,6 +642,7 @@ simulated static final function color GetHPColorScale(Pawn P)
|
|||||||
C.B = 25;
|
C.B = 25;
|
||||||
return C;
|
return C;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function DrawFriendlyHUDZ(KFPawn_Monster KFPH)
|
simulated function DrawFriendlyHUDZ(KFPawn_Monster KFPH)
|
||||||
{
|
{
|
||||||
local float Percentage;
|
local float Percentage;
|
||||||
@ -662,6 +678,7 @@ simulated function DrawFriendlyHUDZ(KFPawn_Monster KFPH)
|
|||||||
Canvas.SetPos(ScreenPos.X - (BarLength *0.5f), ScreenPos.Y - BarHeight * 2);
|
Canvas.SetPos(ScreenPos.X - (BarLength *0.5f), ScreenPos.Y - BarHeight * 2);
|
||||||
Canvas.DrawText(KFPH.PlayerReplicationInfo.PlayerName,,FontScale,FontScale, MyFontRenderInfo);
|
Canvas.DrawText(KFPH.PlayerReplicationInfo.PlayerName,,FontScale,FontScale, MyFontRenderInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function bool DrawFriendlyHumanPlayerInfo(KFPawn_Human KFPH)
|
simulated function bool DrawFriendlyHumanPlayerInfo(KFPawn_Human KFPH)
|
||||||
{
|
{
|
||||||
local float Percentage;
|
local float Percentage;
|
||||||
@ -781,6 +798,7 @@ simulated function bool DrawFriendlyHumanPlayerInfo(KFPawn_Human KFPH)
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated final function DrawPlayerInfoBar(KFPawn P, float BarPercentage, float BarLength, float BarHeight, float XPos, float YPos, Color BarColor, byte FadeAlpha, optional bool bDrawingHealth)
|
simulated final function DrawPlayerInfoBar(KFPawn P, float BarPercentage, float BarLength, float BarHeight, float XPos, float YPos, Color BarColor, byte FadeAlpha, optional bool bDrawingHealth)
|
||||||
{
|
{
|
||||||
//background for status bar
|
//background for status bar
|
||||||
@ -811,6 +829,7 @@ simulated final function DrawPlayerInfoBar(KFPawn P, float BarPercentage, float
|
|||||||
Canvas.DrawTileStretched(PlayerStatusBarBGTexture, BarLength * BarPercentage, BarHeight, 0, 0, 32, 32);
|
Canvas.DrawTileStretched(PlayerStatusBarBGTexture, BarLength * BarPercentage, BarHeight, 0, 0, 32, 32);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function DrawPerkIcons(KFPawn_Human KFPH, float PerkIconSize, float PerkIconPosX, float PerkIconPosY, float SupplyIconPosX, float SupplyIconPosY, bool bDropShadow)
|
simulated function DrawPerkIcons(KFPawn_Human KFPH, float PerkIconSize, float PerkIconPosX, float PerkIconPosY, float SupplyIconPosX, float SupplyIconPosY, bool bDropShadow)
|
||||||
{
|
{
|
||||||
local byte PrestigeLevel;
|
local byte PrestigeLevel;
|
||||||
@ -876,6 +895,7 @@ simulated function DrawPerkIcons(KFPawn_Human KFPH, float PerkIconSize, float Pe
|
|||||||
Canvas.DrawTile(KFPRI.ECurrentPerk.default.BasePerk.static.GetInteractIcon(), (PlayerStatusIconSize * 0.75) * ResModifier, (PlayerStatusIconSize * 0.75) * ResModifier, 0, 0, 256, 256);
|
Canvas.DrawTile(KFPRI.ECurrentPerk.default.BasePerk.static.GetInteractIcon(), (PlayerStatusIconSize * 0.75) * ResModifier, (PlayerStatusIconSize * 0.75) * ResModifier, 0, 0, 256, 256);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function DrawMonsterHUD(KFPawn KFPH)
|
simulated function DrawMonsterHUD(KFPawn KFPH)
|
||||||
{
|
{
|
||||||
local float Percentage;
|
local float Percentage;
|
||||||
@ -917,6 +937,7 @@ simulated function DrawMonsterHUD(KFPawn KFPH)
|
|||||||
Canvas.SetPos(ScreenPos.X - (BarLength * 0.75), ScreenPos.Y - BarHeight * 2);
|
Canvas.SetPos(ScreenPos.X - (BarLength * 0.75), ScreenPos.Y - BarHeight * 2);
|
||||||
Canvas.DrawRect(PlayerStatusIconSize * FriendlyHudScale,PlayerStatusIconSize * FriendlyHudScale,HealthIconTex);
|
Canvas.DrawRect(PlayerStatusIconSize * FriendlyHudScale,PlayerStatusIconSize * FriendlyHudScale,HealthIconTex);
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function DrawPetInfo()
|
simulated function DrawPetInfo()
|
||||||
{
|
{
|
||||||
local float X,Y,Sc,XL,YL,YS;
|
local float X,Y,Sc,XL,YL,YS;
|
||||||
@ -1110,6 +1131,7 @@ simulated function SearchInventoryForNewItem()
|
|||||||
}
|
}
|
||||||
bLoadedInitItems = true;
|
bLoadedInitItems = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated final function string RarityStr(byte R)
|
simulated final function string RarityStr(byte R)
|
||||||
{
|
{
|
||||||
switch (R)
|
switch (R)
|
||||||
|
@ -43,6 +43,7 @@ function PreDraw()
|
|||||||
Canvas.SetClip(CompPos[0]+CompPos[2],CompPos[1]+CompPos[3]);
|
Canvas.SetClip(CompPos[0]+CompPos[2],CompPos[1]+CompPos[3]);
|
||||||
DrawMenu();
|
DrawMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
function DrawMenu(); // Draw menu now.
|
function DrawMenu(); // Draw menu now.
|
||||||
function CloseMenu(); // Menu was closed.
|
function CloseMenu(); // Menu was closed.
|
||||||
|
|
||||||
@ -56,6 +57,7 @@ function MenuTick(float DeltaTime)
|
|||||||
Timer();
|
Timer();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
final function SetTimer(float Rate, optional bool bLoop)
|
final function SetTimer(float Rate, optional bool bLoop)
|
||||||
{
|
{
|
||||||
bTimerActive = (Rate>0.f);
|
bTimerActive = (Rate>0.f);
|
||||||
@ -66,6 +68,7 @@ final function SetTimer(float Rate, optional bool bLoop)
|
|||||||
TimerCounter = Rate;
|
TimerCounter = Rate;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function Timer();
|
function Timer();
|
||||||
|
|
||||||
function MouseEnter()
|
function MouseEnter()
|
||||||
@ -73,11 +76,13 @@ function MouseEnter()
|
|||||||
bFocused = true;
|
bFocused = true;
|
||||||
OnFocus(Self,True);
|
OnFocus(Self,True);
|
||||||
}
|
}
|
||||||
|
|
||||||
function MouseLeave()
|
function MouseLeave()
|
||||||
{
|
{
|
||||||
bFocused = false;
|
bFocused = false;
|
||||||
OnFocus(Self,False);
|
OnFocus(Self,False);
|
||||||
}
|
}
|
||||||
|
|
||||||
function MouseClick(bool bRight);
|
function MouseClick(bool bRight);
|
||||||
function MouseRelease(bool bRight);
|
function MouseRelease(bool bRight);
|
||||||
function DoubleMouseClick(bool bRight) // User rapidly double clicked this component.
|
function DoubleMouseClick(bool bRight) // User rapidly double clicked this component.
|
||||||
@ -139,16 +144,19 @@ function UserPressedEsc() // user pressed escape while this menu was active.
|
|||||||
ParentComponent.UserPressedEsc();
|
ParentComponent.UserPressedEsc();
|
||||||
else DoClose();
|
else DoClose();
|
||||||
}
|
}
|
||||||
|
|
||||||
function bool BringPageToFront()
|
function bool BringPageToFront()
|
||||||
{
|
{
|
||||||
if (ParentComponent!=None)
|
if (ParentComponent!=None)
|
||||||
return ParentComponent.BringPageToFront();
|
return ParentComponent.BringPageToFront();
|
||||||
return true; // Allow user to bring this page to front.
|
return true; // Allow user to bring this page to front.
|
||||||
}
|
}
|
||||||
|
|
||||||
final function bool IsTopMenu()
|
final function bool IsTopMenu()
|
||||||
{
|
{
|
||||||
return (Owner.ActiveMenus.Length>0 && GetPageTop()==Owner.ActiveMenus[0]);
|
return (Owner.ActiveMenus.Length>0 && GetPageTop()==Owner.ActiveMenus[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
final function KFGUI_Page GetPageTop()
|
final function KFGUI_Page GetPageTop()
|
||||||
{
|
{
|
||||||
local KFGUI_Base M;
|
local KFGUI_Base M;
|
||||||
@ -157,17 +165,20 @@ final function KFGUI_Page GetPageTop()
|
|||||||
{}
|
{}
|
||||||
return KFGUI_Page(M);
|
return KFGUI_Page(M);
|
||||||
}
|
}
|
||||||
|
|
||||||
function KFGUI_Base FindComponentID(name InID)
|
function KFGUI_Base FindComponentID(name InID)
|
||||||
{
|
{
|
||||||
if (ID==InID)
|
if (ID==InID)
|
||||||
return Self;
|
return Self;
|
||||||
return None;
|
return None;
|
||||||
}
|
}
|
||||||
|
|
||||||
function FindAllComponentID(name InID, out array<KFGUI_Base> Res)
|
function FindAllComponentID(name InID, out array<KFGUI_Base> Res)
|
||||||
{
|
{
|
||||||
if (ID==InID)
|
if (ID==InID)
|
||||||
Res[Res.Length] = Self;
|
Res[Res.Length] = Self;
|
||||||
}
|
}
|
||||||
|
|
||||||
function RemoveComponent(KFGUI_Base B);
|
function RemoveComponent(KFGUI_Base B);
|
||||||
|
|
||||||
function GetInputFocus()
|
function GetInputFocus()
|
||||||
@ -176,6 +187,7 @@ function GetInputFocus()
|
|||||||
Owner.InputFocus.LostInputFocus();
|
Owner.InputFocus.LostInputFocus();
|
||||||
Owner.InputFocus = Self;
|
Owner.InputFocus = Self;
|
||||||
}
|
}
|
||||||
|
|
||||||
function DropInputFocus()
|
function DropInputFocus()
|
||||||
{
|
{
|
||||||
if (Owner.InputFocus==Self)
|
if (Owner.InputFocus==Self)
|
||||||
@ -184,6 +196,7 @@ function DropInputFocus()
|
|||||||
Owner.InputFocus = None;
|
Owner.InputFocus = None;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function LostInputFocus();
|
function LostInputFocus();
|
||||||
|
|
||||||
// Obtain keyboard focus.
|
// Obtain keyboard focus.
|
||||||
@ -191,17 +204,20 @@ final function GrabKeyFocus()
|
|||||||
{
|
{
|
||||||
Owner.GrabInputFocus(Self);
|
Owner.GrabInputFocus(Self);
|
||||||
}
|
}
|
||||||
|
|
||||||
final function ReleaseKeyFocus()
|
final function ReleaseKeyFocus()
|
||||||
{
|
{
|
||||||
if (Owner.KeyboardFocus==Self)
|
if (Owner.KeyboardFocus==Self)
|
||||||
Owner.GrabInputFocus(None);
|
Owner.GrabInputFocus(None);
|
||||||
}
|
}
|
||||||
|
|
||||||
function LostKeyFocus();
|
function LostKeyFocus();
|
||||||
|
|
||||||
function bool NotifyInputKey(int ControllerId, name Key, EInputEvent Event, float AmountDepressed, bool bGamepad)
|
function bool NotifyInputKey(int ControllerId, name Key, EInputEvent Event, float AmountDepressed, bool bGamepad)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function bool NotifyInputChar(int ControllerId, string Unicode)
|
function bool NotifyInputChar(int ControllerId, string Unicode)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@ -218,6 +234,7 @@ final function GetActualPos(out float X, out float Y)
|
|||||||
X = ((XPosition+X)*InputPos[2]) + InputPos[0];
|
X = ((XPosition+X)*InputPos[2]) + InputPos[0];
|
||||||
Y = ((YPosition+Y)*InputPos[3]) + InputPos[1];
|
Y = ((YPosition+Y)*InputPos[3]) + InputPos[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
final function GetRealtivePos(out float X, out float Y)
|
final function GetRealtivePos(out float X, out float Y)
|
||||||
{
|
{
|
||||||
X = X / CompPos[2];
|
X = X / CompPos[2];
|
||||||
|
@ -14,6 +14,7 @@ function InitMenu()
|
|||||||
Super.InitMenu();
|
Super.InitMenu();
|
||||||
bClickable = !bDisabled;
|
bClickable = !bDisabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
function MouseClick(bool bRight)
|
function MouseClick(bool bRight)
|
||||||
{
|
{
|
||||||
if (!bDisabled)
|
if (!bDisabled)
|
||||||
@ -22,6 +23,7 @@ function MouseClick(bool bRight)
|
|||||||
bPressedDown = true;
|
bPressedDown = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function MouseRelease(bool bRight)
|
function MouseRelease(bool bRight)
|
||||||
{
|
{
|
||||||
if (!bDisabled && PressedDown[byte(bRight)]==1)
|
if (!bDisabled && PressedDown[byte(bRight)]==1)
|
||||||
@ -31,6 +33,7 @@ function MouseRelease(bool bRight)
|
|||||||
HandleMouseClick(bRight);
|
HandleMouseClick(bRight);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function MouseLeave()
|
function MouseLeave()
|
||||||
{
|
{
|
||||||
Super.MouseLeave();
|
Super.MouseLeave();
|
||||||
@ -40,6 +43,7 @@ function MouseLeave()
|
|||||||
PressedDown[1] = 0;
|
PressedDown[1] = 0;
|
||||||
bPressedDown = false;
|
bPressedDown = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function MouseEnter()
|
function MouseEnter()
|
||||||
{
|
{
|
||||||
Super.MouseEnter();
|
Super.MouseEnter();
|
||||||
@ -74,6 +78,7 @@ function NotifyMousePaused()
|
|||||||
ToolTipItem.GetInputFocus();
|
ToolTipItem.GetInputFocus();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
final function ChangeToolTip(string S)
|
final function ChangeToolTip(string S)
|
||||||
{
|
{
|
||||||
if (ToolTipItem!=None)
|
if (ToolTipItem!=None)
|
||||||
|
@ -120,6 +120,7 @@ function KFGUI_ListItem AddLine(string Value, optional int iValue, optional stri
|
|||||||
|
|
||||||
return N;
|
return N;
|
||||||
}
|
}
|
||||||
|
|
||||||
final function RemoveLine(KFGUI_ListItem I)
|
final function RemoveLine(KFGUI_ListItem I)
|
||||||
{
|
{
|
||||||
local KFGUI_ListItem N;
|
local KFGUI_ListItem N;
|
||||||
@ -153,6 +154,7 @@ final function RemoveLine(KFGUI_ListItem I)
|
|||||||
|
|
||||||
UpdateListSize();
|
UpdateListSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
final function EmptyList()
|
final function EmptyList()
|
||||||
{
|
{
|
||||||
local KFGUI_ListItem N,I;
|
local KFGUI_ListItem N,I;
|
||||||
@ -403,11 +405,13 @@ function PreDraw()
|
|||||||
CompPos[2] += SpaceX;
|
CompPos[2] += SpaceX;
|
||||||
CompPos[3] += ColumnComp.CompPos[3];
|
CompPos[3] += ColumnComp.CompPos[3];
|
||||||
}
|
}
|
||||||
|
|
||||||
function InternalClickedItem(int Index, bool bRight, int MouseX, int MouseY)
|
function InternalClickedItem(int Index, bool bRight, int MouseX, int MouseY)
|
||||||
{
|
{
|
||||||
SelectedRowIndex = Index;
|
SelectedRowIndex = Index;
|
||||||
OnSelectedRow(GetFromIndex(Index),Index,bRight,false);
|
OnSelectedRow(GetFromIndex(Index),Index,bRight,false);
|
||||||
}
|
}
|
||||||
|
|
||||||
function InternalDblClickedItem(int Index, bool bRight, int MouseX, int MouseY)
|
function InternalDblClickedItem(int Index, bool bRight, int MouseX, int MouseY)
|
||||||
{
|
{
|
||||||
SelectedRowIndex = Index;
|
SelectedRowIndex = Index;
|
||||||
|
@ -132,6 +132,7 @@ function MouseClick(bool bRight)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function MouseRelease(bool bRight)
|
function MouseRelease(bool bRight)
|
||||||
{
|
{
|
||||||
if (bScaleColumn && !bRight)
|
if (bScaleColumn && !bRight)
|
||||||
@ -155,12 +156,14 @@ function MouseRelease(bool bRight)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function byte GetCursorStyle()
|
function byte GetCursorStyle()
|
||||||
{
|
{
|
||||||
if (bClickable)
|
if (bClickable)
|
||||||
return (bMouseScaler ? 2 : 1);
|
return (bMouseScaler ? 2 : 1);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
function MouseLeave()
|
function MouseLeave()
|
||||||
{
|
{
|
||||||
Super.MouseLeave();
|
Super.MouseLeave();
|
||||||
@ -171,6 +174,7 @@ function MouseLeave()
|
|||||||
bPressedDown = false;
|
bPressedDown = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function MouseEnter()
|
function MouseEnter()
|
||||||
{
|
{
|
||||||
Super.MouseEnter();
|
Super.MouseEnter();
|
||||||
|
@ -38,12 +38,14 @@ function HandleMouseClick(bool bRight)
|
|||||||
Selection.YPosition-=((Selection.YPosition+Selection.YSize)-1.f);
|
Selection.YPosition-=((Selection.YPosition+Selection.YSize)-1.f);
|
||||||
Selection.GetInputFocus();
|
Selection.GetInputFocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
final function string GetCurrent()
|
final function string GetCurrent()
|
||||||
{
|
{
|
||||||
if (SelectedIndex<Values.Length)
|
if (SelectedIndex<Values.Length)
|
||||||
return Values[SelectedIndex];
|
return Values[SelectedIndex];
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
final function bool SetValue(string S)
|
final function bool SetValue(string S)
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
@ -54,6 +56,7 @@ final function bool SetValue(string S)
|
|||||||
SelectedIndex = i;
|
SelectedIndex = i;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Delegate OnComboChanged(KFGUI_ComboBox Sender);
|
Delegate OnComboChanged(KFGUI_ComboBox Sender);
|
||||||
|
|
||||||
defaultproperties
|
defaultproperties
|
||||||
|
@ -112,6 +112,7 @@ function MouseLeave()
|
|||||||
{
|
{
|
||||||
Super(KFGUI_Base).MouseLeave();
|
Super(KFGUI_Base).MouseLeave();
|
||||||
}
|
}
|
||||||
|
|
||||||
function MouseEnter()
|
function MouseEnter()
|
||||||
{
|
{
|
||||||
Super(KFGUI_Base).MouseEnter();
|
Super(KFGUI_Base).MouseEnter();
|
||||||
@ -129,6 +130,7 @@ function bool CaptureMouse()
|
|||||||
}
|
}
|
||||||
return Super.CaptureMouse();
|
return Super.CaptureMouse();
|
||||||
}
|
}
|
||||||
|
|
||||||
function CloseMenu()
|
function CloseMenu()
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
@ -137,6 +139,7 @@ function CloseMenu()
|
|||||||
ItemComponents[i].CloseMenu();
|
ItemComponents[i].CloseMenu();
|
||||||
Super.CloseMenu();
|
Super.CloseMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
function NotifyLevelChange()
|
function NotifyLevelChange()
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
@ -145,6 +148,7 @@ function NotifyLevelChange()
|
|||||||
ItemComponents[i].NotifyLevelChange();
|
ItemComponents[i].NotifyLevelChange();
|
||||||
Super.NotifyLevelChange();
|
Super.NotifyLevelChange();
|
||||||
}
|
}
|
||||||
|
|
||||||
function MenuTick(float DeltaTime)
|
function MenuTick(float DeltaTime)
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
|
@ -188,6 +188,7 @@ function bool NotifyInputKey(int ControllerId, name Key, EInputEvent Event, floa
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
final function PasteText()
|
final function PasteText()
|
||||||
{
|
{
|
||||||
local string S;
|
local string S;
|
||||||
@ -207,6 +208,7 @@ final function PasteText()
|
|||||||
else Value = Left(Value,TypePos) $ S $ Mid(Value,TypePos);
|
else Value = Left(Value,TypePos) $ S $ Mid(Value,TypePos);
|
||||||
TypePos+=Len(S);
|
TypePos+=Len(S);
|
||||||
}
|
}
|
||||||
|
|
||||||
function bool NotifyInputChar(int ControllerId, string Unicode)
|
function bool NotifyInputChar(int ControllerId, string Unicode)
|
||||||
{
|
{
|
||||||
if ((!bAllSelected && Len(Value)>=MaxTextLength) || (bHoldCtrl && (Unicode~="C" || Unicode~="X" || Unicode~="V")))
|
if ((!bAllSelected && Len(Value)>=MaxTextLength) || (bHoldCtrl && (Unicode~="C" || Unicode~="X" || Unicode~="V")))
|
||||||
|
@ -12,6 +12,7 @@ function InitMenu()
|
|||||||
HeaderComp = new (Self) class'KFGUI_FloatingWindowHeader';
|
HeaderComp = new (Self) class'KFGUI_FloatingWindowHeader';
|
||||||
AddComponent(HeaderComp);
|
AddComponent(HeaderComp);
|
||||||
}
|
}
|
||||||
|
|
||||||
function DrawMenu()
|
function DrawMenu()
|
||||||
{
|
{
|
||||||
Owner.CurrentStyle.RenderFramedWindow(Self);
|
Owner.CurrentStyle.RenderFramedWindow(Self);
|
||||||
@ -22,6 +23,7 @@ function DrawMenu()
|
|||||||
HeaderComp.YSize = HeaderComp.CompPos[3] / CompPos[3]; // Keep header height fit the window height.
|
HeaderComp.YSize = HeaderComp.CompPos[3] / CompPos[3]; // Keep header height fit the window height.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function SetWindowDrag(bool bDrag)
|
function SetWindowDrag(bool bDrag)
|
||||||
{
|
{
|
||||||
bDragWindow = bDrag;
|
bDragWindow = bDrag;
|
||||||
@ -31,6 +33,7 @@ function SetWindowDrag(bool bDrag)
|
|||||||
DragOffset[1] = Owner.MousePosition.Y-CompPos[1];
|
DragOffset[1] = Owner.MousePosition.Y-CompPos[1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function bool CaptureMouse()
|
function bool CaptureMouse()
|
||||||
{
|
{
|
||||||
if (bDragWindow && HeaderComp!=None) // Always keep focus on window frame now!
|
if (bDragWindow && HeaderComp!=None) // Always keep focus on window frame now!
|
||||||
@ -40,6 +43,7 @@ function bool CaptureMouse()
|
|||||||
}
|
}
|
||||||
return Super.CaptureMouse();
|
return Super.CaptureMouse();
|
||||||
}
|
}
|
||||||
|
|
||||||
function PreDraw()
|
function PreDraw()
|
||||||
{
|
{
|
||||||
if (bDragWindow)
|
if (bDragWindow)
|
||||||
|
@ -6,11 +6,13 @@ function PreDraw()
|
|||||||
{
|
{
|
||||||
ComputeCoords();
|
ComputeCoords();
|
||||||
}
|
}
|
||||||
|
|
||||||
function MouseClick(bool bRight)
|
function MouseClick(bool bRight)
|
||||||
{
|
{
|
||||||
if (!bRight)
|
if (!bRight)
|
||||||
KFGUI_FloatingWindow(ParentComponent).SetWindowDrag(true);
|
KFGUI_FloatingWindow(ParentComponent).SetWindowDrag(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
function MouseRelease(bool bRight)
|
function MouseRelease(bool bRight)
|
||||||
{
|
{
|
||||||
if (!bRight)
|
if (!bRight)
|
||||||
|
@ -107,6 +107,7 @@ function PreDraw()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function UpdateListVis()
|
function UpdateListVis()
|
||||||
{
|
{
|
||||||
if (ListCount<=ListItemsPerPage)
|
if (ListCount<=ListItemsPerPage)
|
||||||
@ -120,6 +121,7 @@ function UpdateListVis()
|
|||||||
ScrollBar.SetDisabled(false);
|
ScrollBar.SetDisabled(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function ChangeListSize(int NewSize)
|
function ChangeListSize(int NewSize)
|
||||||
{
|
{
|
||||||
if (ListCount==NewSize)
|
if (ListCount==NewSize)
|
||||||
@ -127,6 +129,7 @@ function ChangeListSize(int NewSize)
|
|||||||
ListCount = NewSize;
|
ListCount = NewSize;
|
||||||
UpdateListVis();
|
UpdateListVis();
|
||||||
}
|
}
|
||||||
|
|
||||||
final function int GetListSize()
|
final function int GetListSize()
|
||||||
{
|
{
|
||||||
return ListCount;
|
return ListCount;
|
||||||
@ -142,6 +145,7 @@ function DoubleMouseClick(bool bRight)
|
|||||||
OnDblClickedItem(FocusMouseItem,bRight,Owner.MousePosition.X-CompPos[0],MouseYHit);
|
OnDblClickedItem(FocusMouseItem,bRight,Owner.MousePosition.X-CompPos[0],MouseYHit);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function MouseClick(bool bRight)
|
function MouseClick(bool bRight)
|
||||||
{
|
{
|
||||||
if (!bDisabled && bClickable)
|
if (!bDisabled && bClickable)
|
||||||
@ -150,6 +154,7 @@ function MouseClick(bool bRight)
|
|||||||
bPressedDown = true;
|
bPressedDown = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function MouseRelease(bool bRight)
|
function MouseRelease(bool bRight)
|
||||||
{
|
{
|
||||||
if (!bDisabled && bClickable && PressedDown[byte(bRight)]==1)
|
if (!bDisabled && bClickable && PressedDown[byte(bRight)]==1)
|
||||||
@ -160,6 +165,7 @@ function MouseRelease(bool bRight)
|
|||||||
OnClickedItem(FocusMouseItem,bRight,Owner.MousePosition.X-CompPos[0],MouseYHit);
|
OnClickedItem(FocusMouseItem,bRight,Owner.MousePosition.X-CompPos[0],MouseYHit);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function MouseLeave()
|
function MouseLeave()
|
||||||
{
|
{
|
||||||
Super.MouseLeave();
|
Super.MouseLeave();
|
||||||
@ -169,6 +175,7 @@ function MouseLeave()
|
|||||||
PressedDown[1] = 0;
|
PressedDown[1] = 0;
|
||||||
bPressedDown = false;
|
bPressedDown = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function MouseEnter()
|
function MouseEnter()
|
||||||
{
|
{
|
||||||
Super.MouseEnter();
|
Super.MouseEnter();
|
||||||
|
@ -13,6 +13,7 @@ function InitMenu()
|
|||||||
Components[i].InitMenu();
|
Components[i].InitMenu();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function ShowMenu()
|
function ShowMenu()
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
@ -20,6 +21,7 @@ function ShowMenu()
|
|||||||
for (i=0; i<Components.Length; ++i)
|
for (i=0; i<Components.Length; ++i)
|
||||||
Components[i].ShowMenu();
|
Components[i].ShowMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
function PreDraw()
|
function PreDraw()
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
@ -38,6 +40,7 @@ function PreDraw()
|
|||||||
Components[i].PreDraw();
|
Components[i].PreDraw();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function MenuTick(float DeltaTime)
|
function MenuTick(float DeltaTime)
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
@ -62,6 +65,7 @@ function CloseMenu()
|
|||||||
for (i=0; i<Components.Length; ++i)
|
for (i=0; i<Components.Length; ++i)
|
||||||
Components[i].CloseMenu();
|
Components[i].CloseMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
function bool CaptureMouse()
|
function bool CaptureMouse()
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
@ -75,6 +79,7 @@ function bool CaptureMouse()
|
|||||||
MouseArea = None;
|
MouseArea = None;
|
||||||
return Super.CaptureMouse(); // check with frame itself.
|
return Super.CaptureMouse(); // check with frame itself.
|
||||||
}
|
}
|
||||||
|
|
||||||
function KFGUI_Base FindComponentID(name InID)
|
function KFGUI_Base FindComponentID(name InID)
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
@ -89,6 +94,7 @@ function KFGUI_Base FindComponentID(name InID)
|
|||||||
}
|
}
|
||||||
return Result;
|
return Result;
|
||||||
}
|
}
|
||||||
|
|
||||||
function FindAllComponentID(name InID, out array<KFGUI_Base> Res)
|
function FindAllComponentID(name InID, out array<KFGUI_Base> Res)
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
@ -98,6 +104,7 @@ function FindAllComponentID(name InID, out array<KFGUI_Base> Res)
|
|||||||
for (i=0; i<Components.Length; ++i)
|
for (i=0; i<Components.Length; ++i)
|
||||||
Components[i].FindAllComponentID(InID,Res);
|
Components[i].FindAllComponentID(InID,Res);
|
||||||
}
|
}
|
||||||
|
|
||||||
function RemoveComponent(KFGUI_Base B)
|
function RemoveComponent(KFGUI_Base B)
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
@ -112,6 +119,7 @@ function RemoveComponent(KFGUI_Base B)
|
|||||||
for (i=0; i<Components.Length; ++i)
|
for (i=0; i<Components.Length; ++i)
|
||||||
Components[i].RemoveComponent(B);
|
Components[i].RemoveComponent(B);
|
||||||
}
|
}
|
||||||
|
|
||||||
function NotifyLevelChange()
|
function NotifyLevelChange()
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
|
@ -8,10 +8,12 @@ function InitMenu()
|
|||||||
Super.InitMenu();
|
Super.InitMenu();
|
||||||
ValidateValue();
|
ValidateValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
final function int GetValueInt()
|
final function int GetValueInt()
|
||||||
{
|
{
|
||||||
return int(Value);
|
return int(Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
final function float GetValueFloat()
|
final function float GetValueFloat()
|
||||||
{
|
{
|
||||||
return float(Value);
|
return float(Value);
|
||||||
@ -22,6 +24,7 @@ function ChangeValue(string V)
|
|||||||
Super.ChangeValue(V);
|
Super.ChangeValue(V);
|
||||||
ValidateValue();
|
ValidateValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
final function ValidateValue()
|
final function ValidateValue()
|
||||||
{
|
{
|
||||||
if (bFloatValue)
|
if (bFloatValue)
|
||||||
|
@ -26,6 +26,7 @@ function OpenMenu(KFGUI_Base Menu)
|
|||||||
YPosition-=((YPosition+YSize)-1.f); // Move up until fit on screen.
|
YPosition-=((YPosition+YSize)-1.f); // Move up until fit on screen.
|
||||||
GetInputFocus();
|
GetInputFocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
final function ComputeSize()
|
final function ComputeSize()
|
||||||
{
|
{
|
||||||
local float XS,YS,Scalar;
|
local float XS,YS,Scalar;
|
||||||
@ -55,6 +56,7 @@ final function ComputeSize()
|
|||||||
XSize = (XS+(EdgeSize*2)) / Owner.ScreenSize.X;
|
XSize = (XS+(EdgeSize*2)) / Owner.ScreenSize.X;
|
||||||
YSize = (YS+(EdgeSize*2)) / Owner.ScreenSize.Y;
|
YSize = (YS+(EdgeSize*2)) / Owner.ScreenSize.Y;
|
||||||
}
|
}
|
||||||
|
|
||||||
final function AddRow(string Text, bool bDisable)
|
final function AddRow(string Text, bool bDisable)
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
@ -69,10 +71,12 @@ final function AddRow(string Text, bool bDisable)
|
|||||||
ItemRows[i].bDisabled = bDisable;
|
ItemRows[i].bDisabled = bDisable;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function DrawMenu()
|
function DrawMenu()
|
||||||
{
|
{
|
||||||
Owner.CurrentStyle.RenderRightClickMenu(Self);
|
Owner.CurrentStyle.RenderRightClickMenu(Self);
|
||||||
}
|
}
|
||||||
|
|
||||||
function HandleMouseClick(bool bRight)
|
function HandleMouseClick(bool bRight)
|
||||||
{
|
{
|
||||||
if (CurrentRow>=0 && (ItemRows[CurrentRow].bSplitter || ItemRows[CurrentRow].bDisabled))
|
if (CurrentRow>=0 && (ItemRows[CurrentRow].bSplitter || ItemRows[CurrentRow].bDisabled))
|
||||||
@ -82,6 +86,7 @@ function HandleMouseClick(bool bRight)
|
|||||||
if (CurrentRow>=0)
|
if (CurrentRow>=0)
|
||||||
OnSelectedItem(CurrentRow);
|
OnSelectedItem(CurrentRow);
|
||||||
}
|
}
|
||||||
|
|
||||||
function LostInputFocus()
|
function LostInputFocus()
|
||||||
{
|
{
|
||||||
OnBecameHidden(Self);
|
OnBecameHidden(Self);
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user