wip
This commit is contained in:
@ -1,54 +0,0 @@
|
||||
class CfgLifespan extends Object
|
||||
config(MSKGS)
|
||||
abstract;
|
||||
|
||||
var public config int Weap;
|
||||
var public config int Dosh;
|
||||
|
||||
public static function InitConfig(int Version, int LatestVersion, E_LogLevel LogLevel)
|
||||
{
|
||||
`Log_TraceStatic();
|
||||
|
||||
switch (Version)
|
||||
{
|
||||
case `NO_CONFIG:
|
||||
ApplyDefault(LogLevel);
|
||||
|
||||
default: break;
|
||||
}
|
||||
|
||||
if (LatestVersion != Version)
|
||||
{
|
||||
StaticSaveConfig();
|
||||
}
|
||||
}
|
||||
|
||||
public static function Load(E_LogLevel LogLevel)
|
||||
{
|
||||
`Log_TraceStatic();
|
||||
|
||||
if (default.Weap < 0)
|
||||
{
|
||||
`Log_Error("Weap" @ "(" $ default.Weap $ ")" @ "must be equal or greater than 0");
|
||||
default.Weap = 60 * 60;
|
||||
}
|
||||
|
||||
if (default.Dosh < 0)
|
||||
{
|
||||
`Log_Error("Dosh" @ "(" $ default.Dosh $ ")" @ "must be equal or greater than 0");
|
||||
default.Dosh = 60 * 5;
|
||||
}
|
||||
}
|
||||
|
||||
protected static function ApplyDefault(E_LogLevel LogLevel)
|
||||
{
|
||||
`Log_TraceStatic();
|
||||
|
||||
default.Weap = 60 * 60; // 1 hour
|
||||
default.Dosh = 60 * 5; // 5 min
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
|
||||
}
|
@ -1,57 +0,0 @@
|
||||
class CfgSpawnManager extends Object
|
||||
config(MSKGS)
|
||||
abstract;
|
||||
|
||||
var public config Array<int> MaxMonsters;
|
||||
|
||||
public static function InitConfig(int Version, int LatestVersion, E_LogLevel LogLevel)
|
||||
{
|
||||
`Log_TraceStatic();
|
||||
|
||||
switch (Version)
|
||||
{
|
||||
case `NO_CONFIG:
|
||||
ApplyDefault(LogLevel);
|
||||
|
||||
default: break;
|
||||
}
|
||||
|
||||
if (LatestVersion != Version)
|
||||
{
|
||||
StaticSaveConfig();
|
||||
}
|
||||
}
|
||||
|
||||
public static function Load(E_LogLevel LogLevel)
|
||||
{
|
||||
local int MM, PL;
|
||||
|
||||
`Log_TraceStatic();
|
||||
|
||||
foreach default.MaxMonsters(MM, PL)
|
||||
{
|
||||
if (MM <= 0)
|
||||
{
|
||||
`Log_Error("MaxMonsters[" $ PL $ "] =" @ MM @ "must be greater than 0");
|
||||
default.MaxMonsters[PL] = 32;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected static function ApplyDefault(E_LogLevel LogLevel)
|
||||
{
|
||||
`Log_TraceStatic();
|
||||
|
||||
default.MaxMonsters.Length = 0;
|
||||
default.MaxMonsters.AddItem(12);
|
||||
default.MaxMonsters.AddItem(18);
|
||||
default.MaxMonsters.AddItem(24);
|
||||
default.MaxMonsters.AddItem(30);
|
||||
default.MaxMonsters.AddItem(34);
|
||||
default.MaxMonsters.AddItem(36);
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
|
||||
}
|
@ -1,42 +0,0 @@
|
||||
class CfgSrvRank extends Object
|
||||
config(MSKGS)
|
||||
abstract;
|
||||
|
||||
var public config bool bCustom;
|
||||
var public config bool bUsesStats;
|
||||
|
||||
public static function InitConfig(int Version, int LatestVersion, E_LogLevel LogLevel)
|
||||
{
|
||||
`Log_TraceStatic();
|
||||
|
||||
switch (Version)
|
||||
{
|
||||
case `NO_CONFIG:
|
||||
ApplyDefault(LogLevel);
|
||||
|
||||
default: break;
|
||||
}
|
||||
|
||||
if (LatestVersion != Version)
|
||||
{
|
||||
StaticSaveConfig();
|
||||
}
|
||||
}
|
||||
|
||||
public static function Load(E_LogLevel LogLevel)
|
||||
{
|
||||
`Log_TraceStatic();
|
||||
}
|
||||
|
||||
protected static function ApplyDefault(E_LogLevel LogLevel)
|
||||
{
|
||||
`Log_TraceStatic();
|
||||
|
||||
default.bCustom = false;
|
||||
default.bUsesStats = true;
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
|
||||
}
|
@ -1,142 +0,0 @@
|
||||
class CfgXPBoost extends Object
|
||||
config(MSKGS)
|
||||
abstract;
|
||||
|
||||
var private config String OwnerId;
|
||||
var private config String GroupID;
|
||||
|
||||
var public config int MaxBoost;
|
||||
|
||||
var public config int BoostOwner;
|
||||
var public config int BoostAdmin;
|
||||
var public config int BoostGroup;
|
||||
var public config int BoostPlayer;
|
||||
|
||||
var public config int CheckGroupTimer;
|
||||
|
||||
public static function InitConfig(int Version, int LatestVersion, E_LogLevel LogLevel)
|
||||
{
|
||||
`Log_TraceStatic();
|
||||
|
||||
switch (Version)
|
||||
{
|
||||
case `NO_CONFIG:
|
||||
ApplyDefault(LogLevel);
|
||||
|
||||
default: break;
|
||||
}
|
||||
|
||||
if (LatestVersion != Version)
|
||||
{
|
||||
StaticSaveConfig();
|
||||
}
|
||||
}
|
||||
|
||||
public static function Load(E_LogLevel LogLevel)
|
||||
{
|
||||
`Log_TraceStatic();
|
||||
|
||||
if (default.MaxBoost < 0)
|
||||
{
|
||||
`Log_Error("MaxBoost" @ "(" $ default.MaxBoost $ ")" @ "must be equal or greater than 0");
|
||||
default.MaxBoost = 30;
|
||||
}
|
||||
|
||||
if (default.BoostOwner < 0)
|
||||
{
|
||||
`Log_Error("BoostOwner" @ "(" $ default.BoostOwner $ ")" @ "must be equal or greater than 0");
|
||||
default.BoostOwner = 30;
|
||||
}
|
||||
|
||||
if (default.BoostAdmin < 0)
|
||||
{
|
||||
`Log_Error("BoostAdmin" @ "(" $ default.BoostAdmin $ ")" @ "must be equal or greater than 0");
|
||||
default.BoostAdmin = 20;
|
||||
}
|
||||
|
||||
if (default.BoostGroup < 0)
|
||||
{
|
||||
`Log_Error("BoostGroup" @ "(" $ default.BoostGroup $ ")" @ "must be equal or greater than 0");
|
||||
default.BoostGroup = 10;
|
||||
}
|
||||
|
||||
if (default.BoostPlayer < 0)
|
||||
{
|
||||
`Log_Error("BoostPlayer" @ "(" $ default.BoostPlayer $ ")" @ "must be equal or greater than 0");
|
||||
default.BoostPlayer = 0;
|
||||
}
|
||||
|
||||
if (default.CheckGroupTimer < 0)
|
||||
{
|
||||
`Log_Error("CheckGroupTimer" @ "(" $ default.CheckGroupTimer $ ")" @ "must be equal or greater than 0");
|
||||
default.CheckGroupTimer = 10;
|
||||
}
|
||||
}
|
||||
|
||||
public static function UniqueNetId LoadOwnerId(OnlineSubsystem OS, E_LogLevel LogLevel)
|
||||
{
|
||||
local UniqueNetId UID;
|
||||
|
||||
if (AnyToUID(OS, default.OwnerId, UID, LogLevel))
|
||||
{
|
||||
`Log_Debug("Loaded OwnerId:" @ default.OwnerId);
|
||||
}
|
||||
else
|
||||
{
|
||||
`Log_Warn("Can't load OwnerId:" @ default.OwnerId);
|
||||
}
|
||||
|
||||
return UID;
|
||||
}
|
||||
|
||||
public static function UniqueNetId LoadGroupID(OnlineSubsystem OS, E_LogLevel LogLevel)
|
||||
{
|
||||
local UniqueNetId UID;
|
||||
|
||||
if (AnyToUID(OS, default.GroupID, UID, LogLevel))
|
||||
{
|
||||
`Log_Debug("Loaded GroupID:" @ default.GroupID);
|
||||
}
|
||||
else
|
||||
{
|
||||
`Log_Warn("Can't load GroupID:" @ default.GroupID);
|
||||
}
|
||||
|
||||
return UID;
|
||||
}
|
||||
|
||||
protected static function ApplyDefault(E_LogLevel LogLevel)
|
||||
{
|
||||
`Log_TraceStatic();
|
||||
|
||||
default.OwnerId = "76561198001617867";
|
||||
default.GroupID = "0x017000000223386E";
|
||||
|
||||
default.MaxBoost = 100;
|
||||
|
||||
default.BoostOwner = 30;
|
||||
default.BoostAdmin = 20;
|
||||
default.BoostGroup = 10;
|
||||
default.BoostPlayer = 0;
|
||||
|
||||
default.CheckGroupTimer = 10;
|
||||
}
|
||||
|
||||
private static function bool IsUID(String ID, E_LogLevel LogLevel)
|
||||
{
|
||||
`Log_TraceStatic();
|
||||
|
||||
return (Locs(Left(ID, 2)) == "0x");
|
||||
}
|
||||
|
||||
private static function bool AnyToUID(OnlineSubsystem OS, String ID, out UniqueNetId UID, E_LogLevel LogLevel)
|
||||
{
|
||||
`Log_TraceStatic();
|
||||
|
||||
return IsUID(ID, LogLevel) ? OS.StringToUniqueNetId(ID, UID) : OS.Int64ToUniqueNetId(ID, UID);
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
|
||||
}
|
7
MskGs/Classes/IMSKGS.uc
Normal file
7
MskGs/Classes/IMSKGS.uc
Normal file
@ -0,0 +1,7 @@
|
||||
interface IMSKGS;
|
||||
|
||||
public function IncreaseXPBoost(KFPlayerController Booster);
|
||||
public function int GetXPBoost();
|
||||
public function bool GetXPNotifications();
|
||||
public function E_LogLevel GetLogLevel();
|
||||
public function class<KFPawn_Monster> PickProxyZed(class<KFPawn_Monster> MonsterClass);
|
3
MskGs/Classes/IMSKGS_GameInfo.uc
Normal file
3
MskGs/Classes/IMSKGS_GameInfo.uc
Normal file
@ -0,0 +1,3 @@
|
||||
interface IMSKGS_GameInfo;
|
||||
|
||||
public static function UpdateGameSettings(KFGameInfo_Survival KFGI, string GameModeClass, IMSKGS MSKGS);
|
@ -1,417 +0,0 @@
|
||||
class MSKGS extends Info
|
||||
config(MSKGS);
|
||||
|
||||
const LatestVersion = 1;
|
||||
|
||||
const CfgLifespan = class'CfgLifespan';
|
||||
const CfgSpawnManager = class'CfgSpawnManager';
|
||||
const CfgXPBoost = class'CfgXPBoost';
|
||||
const CfgSrvRank = class'CfgSrvRank';
|
||||
|
||||
var public int XPBoost;
|
||||
var public bool XPNotifications;
|
||||
|
||||
var private config int Version;
|
||||
var private config E_LogLevel LogLevel;
|
||||
|
||||
var private OnlineSubsystem OS;
|
||||
var private KFGameInfo KFGI;
|
||||
var private KFGameReplicationInfo KFGRI;
|
||||
|
||||
var private Array<MSKGS_RepInfo> RepInfos;
|
||||
|
||||
var private UniqueNetId OwnerID;
|
||||
var private UniqueNetId GroupID;
|
||||
|
||||
public simulated function bool SafeDestroy()
|
||||
{
|
||||
`Log_Trace();
|
||||
|
||||
return (bPendingDelete || bDeleteMe || Destroy());
|
||||
}
|
||||
|
||||
public event PreBeginPlay()
|
||||
{
|
||||
`Log_Trace();
|
||||
|
||||
if (WorldInfo.NetMode == NM_Client)
|
||||
{
|
||||
`Log_Fatal("NetMode:" @ WorldInfo.NetMode);
|
||||
SafeDestroy();
|
||||
return;
|
||||
}
|
||||
|
||||
Super.PreBeginPlay();
|
||||
|
||||
PreInit();
|
||||
}
|
||||
|
||||
public event PostBeginPlay()
|
||||
{
|
||||
`Log_Trace();
|
||||
|
||||
if (bPendingDelete || bDeleteMe) return;
|
||||
|
||||
Super.PostBeginPlay();
|
||||
|
||||
PostInit();
|
||||
}
|
||||
|
||||
private function PreInit()
|
||||
{
|
||||
`Log_Trace();
|
||||
|
||||
if (Version == `NO_CONFIG)
|
||||
{
|
||||
LogLevel = LL_Info;
|
||||
SaveConfig();
|
||||
}
|
||||
|
||||
CfgLifespan.static.InitConfig(Version, LatestVersion, LogLevel);
|
||||
CfgSpawnManager.static.InitConfig(Version, LatestVersion, LogLevel);
|
||||
CfgXPBoost.static.InitConfig(Version, LatestVersion, LogLevel);
|
||||
CfgSrvRank.static.InitConfig(Version, LatestVersion, LogLevel);
|
||||
|
||||
switch (Version)
|
||||
{
|
||||
case `NO_CONFIG:
|
||||
`Log_Info("Config created");
|
||||
|
||||
case MaxInt:
|
||||
`Log_Info("Config updated to version" @ LatestVersion);
|
||||
break;
|
||||
|
||||
case LatestVersion:
|
||||
`Log_Info("Config is up-to-date");
|
||||
break;
|
||||
|
||||
default:
|
||||
`Log_Warn("The config version is higher than the current version (are you using an old mutator?)");
|
||||
`Log_Warn("Config version is" @ Version @ "but current version is" @ LatestVersion);
|
||||
`Log_Warn("The config version will be changed to" @ LatestVersion);
|
||||
break;
|
||||
}
|
||||
|
||||
if (LatestVersion != Version)
|
||||
{
|
||||
Version = LatestVersion;
|
||||
SaveConfig();
|
||||
}
|
||||
|
||||
if (LogLevel == LL_WrongLevel)
|
||||
{
|
||||
LogLevel = LL_Info;
|
||||
`Log_Warn("Wrong 'LogLevel', return to default value");
|
||||
SaveConfig();
|
||||
}
|
||||
`Log_Base("LogLevel:" @ LogLevel);
|
||||
|
||||
CfgLifespan.static.Load(LogLevel);
|
||||
CfgSpawnManager.static.Load(LogLevel);
|
||||
CfgXPBoost.static.Load(LogLevel);
|
||||
CfgSrvRank.static.Load(LogLevel);
|
||||
|
||||
OS = class'GameEngine'.static.GetOnlineSubsystem();
|
||||
if (OS == None)
|
||||
{
|
||||
`Log_Fatal("Can't get online subsystem!");
|
||||
SafeDestroy();
|
||||
return;
|
||||
}
|
||||
|
||||
OwnerID = CfgXPBoost.static.LoadOwnerID(OS, LogLevel);
|
||||
GroupID = CfgXPBoost.static.LoadGroupID(OS, LogLevel);
|
||||
}
|
||||
|
||||
private function PostInit()
|
||||
{
|
||||
`Log_Trace();
|
||||
|
||||
if (WorldInfo == None || WorldInfo.Game == None)
|
||||
{
|
||||
SetTimer(1.0f, false, nameof(PostInit));
|
||||
return;
|
||||
}
|
||||
|
||||
KFGI = KFGameInfo(WorldInfo.Game);
|
||||
if (KFGI == None)
|
||||
{
|
||||
`Log_Fatal("Incompatible gamemode:" @ WorldInfo.Game);
|
||||
SafeDestroy();
|
||||
return;
|
||||
}
|
||||
|
||||
if (KFGI.GameReplicationInfo == None)
|
||||
{
|
||||
SetTimer(1.0f, false, nameof(PostInit));
|
||||
return;
|
||||
}
|
||||
|
||||
KFGRI = KFGameReplicationInfo(KFGI.GameReplicationInfo);
|
||||
if (KFGRI == None)
|
||||
{
|
||||
`Log_Fatal("Incompatible Replication info:" @ KFGI.GameReplicationInfo);
|
||||
SafeDestroy();
|
||||
return;
|
||||
}
|
||||
|
||||
if (MSKGS_GM_Endless(KFGI) != None)
|
||||
{
|
||||
XPNotifications = true;
|
||||
MSKGS_GM_Endless(KFGI).MSKGS = Self;
|
||||
MSKGS_GM_Endless(KFGI).LogLevel = LogLevel;
|
||||
}
|
||||
else if (MSKGS_GM_Objective(KFGI) != None)
|
||||
{
|
||||
XPNotifications = (KFGI.GameDifficulty != 3);
|
||||
MSKGS_GM_Objective(KFGI).MSKGS = Self;
|
||||
MSKGS_GM_Objective(KFGI).LogLevel = LogLevel;
|
||||
}
|
||||
else if (MSKGS_GM_Survival(KFGI) != None)
|
||||
{
|
||||
XPNotifications = (KFGI.GameDifficulty != 3);
|
||||
MSKGS_GM_Survival(KFGI).MSKGS = Self;
|
||||
MSKGS_GM_Survival(KFGI).LogLevel = LogLevel;
|
||||
}
|
||||
else if (MSKGS_GM_VersusSurvival(KFGI) != None)
|
||||
{
|
||||
XPNotifications = false;
|
||||
MSKGS_GM_VersusSurvival(KFGI).MSKGS = Self;
|
||||
MSKGS_GM_VersusSurvival(KFGI).LogLevel = LogLevel;
|
||||
}
|
||||
else if (MSKGS_GM_WeeklySurvival(KFGI) != None)
|
||||
{
|
||||
XPNotifications = true;
|
||||
MSKGS_GM_WeeklySurvival(KFGI).MSKGS = Self;
|
||||
MSKGS_GM_WeeklySurvival(KFGI).LogLevel = LogLevel;
|
||||
}
|
||||
|
||||
ModifySpawnManager();
|
||||
}
|
||||
|
||||
private function ModifySpawnManager()
|
||||
{
|
||||
local byte Difficulty, Players;
|
||||
|
||||
if (KFGI.SpawnManager == None)
|
||||
{
|
||||
SetTimer(1.f, false, nameof(ModifySpawnManager));
|
||||
return;
|
||||
}
|
||||
|
||||
for (Difficulty = 0; Difficulty < KFGI.SpawnManager.PerDifficultyMaxMonsters.Length; Difficulty++)
|
||||
{
|
||||
for (Players = 0; Players < KFGI.SpawnManager.PerDifficultyMaxMonsters[Difficulty].MaxMonsters.Length; Players++)
|
||||
{
|
||||
KFGI.SpawnManager.PerDifficultyMaxMonsters[Difficulty].MaxMonsters[Players] = CfgSpawnManager.default.MaxMonsters[Players];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function ModifyLifespan(Actor A)
|
||||
{
|
||||
if (KFDroppedPickup_Cash(A) != None)
|
||||
{
|
||||
if (CfgLifespan.default.Dosh != 0)
|
||||
{
|
||||
A.Lifespan = float(CfgLifespan.default.Dosh);
|
||||
}
|
||||
}
|
||||
else if (KFDroppedPickup(A) != None)
|
||||
{
|
||||
if (CfgLifespan.default.Weap != 0)
|
||||
{
|
||||
A.Lifespan = float(CfgLifespan.default.Weap);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function SetMaxPlayers(int MaxPlayers)
|
||||
{
|
||||
if (MaxPlayers != INDEX_NONE)
|
||||
{
|
||||
KFGI.MaxPlayers = MaxPlayers;
|
||||
KFGI.MaxPlayersAllowed = MaxPlayers;
|
||||
}
|
||||
}
|
||||
|
||||
public function NotifyLogin(Controller C)
|
||||
{
|
||||
`Log_Trace();
|
||||
|
||||
if (!CreateRepInfo(C))
|
||||
{
|
||||
`Log_Error("Can't create RepInfo for:" @ C);
|
||||
}
|
||||
}
|
||||
|
||||
public function NotifyLogout(Controller C)
|
||||
{
|
||||
`Log_Trace();
|
||||
|
||||
if (!DestroyRepInfo(C))
|
||||
{
|
||||
`Log_Error("Can't destroy RepInfo of:" @ C);
|
||||
}
|
||||
}
|
||||
|
||||
public function bool CreateRepInfo(Controller C)
|
||||
{
|
||||
local MSKGS_RepInfo RepInfo;
|
||||
|
||||
`Log_Trace();
|
||||
|
||||
if (C == None) return false;
|
||||
|
||||
RepInfo = Spawn(class'MSKGS_RepInfo', C);
|
||||
|
||||
if (RepInfo == None) return false;
|
||||
|
||||
RepInfo.LogLevel = LogLevel;
|
||||
RepInfo.MSKGS = Self;
|
||||
RepInfo.GroupID = GroupID;
|
||||
RepInfo.ServerOwner = false;
|
||||
|
||||
RepInfos.AddItem(RepInfo);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public function bool DestroyRepInfo(Controller C)
|
||||
{
|
||||
local MSKGS_RepInfo RepInfo;
|
||||
|
||||
`Log_Trace();
|
||||
|
||||
if (C == None) return false;
|
||||
|
||||
foreach RepInfos(RepInfo)
|
||||
{
|
||||
if (RepInfo.Owner == C)
|
||||
{
|
||||
RepInfo.SafeDestroy();
|
||||
RepInfos.RemoveItem(RepInfo);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function IncreaseXPBoost(KFPlayerController Booster)
|
||||
{
|
||||
local MSKGS_RepInfo RepInfo;
|
||||
|
||||
UpdateXPBoost();
|
||||
foreach RepInfos(RepInfo)
|
||||
{
|
||||
if (RepInfo.Owner == Booster)
|
||||
{
|
||||
// TODO: Recive localized message
|
||||
// You give boost to this server
|
||||
}
|
||||
else
|
||||
{
|
||||
// TODO: Recive localized message
|
||||
// Booster give boost to this server
|
||||
}
|
||||
}
|
||||
|
||||
KFGI.UpdateGameSettings();
|
||||
}
|
||||
|
||||
public function DecreaseXPBoost(KFPlayerController Booster)
|
||||
{
|
||||
local MSKGS_RepInfo RepInfo;
|
||||
|
||||
UpdateXPBoost();
|
||||
foreach RepInfos(RepInfo)
|
||||
{
|
||||
if (RepInfo.Owner != Booster)
|
||||
{
|
||||
// TODO: Recive localized message
|
||||
// Booster left the game
|
||||
}
|
||||
}
|
||||
|
||||
KFGI.UpdateGameSettings();
|
||||
}
|
||||
|
||||
public function UpdateXPBoost()
|
||||
{
|
||||
local MSKGS_RepInfo RepInfo;
|
||||
local int NextBoost;
|
||||
|
||||
NextBoost = 0;
|
||||
foreach RepInfos(RepInfo)
|
||||
{
|
||||
NextBoost += RepInfo.XPBoost();
|
||||
}
|
||||
|
||||
XPBoost = NextBoost;
|
||||
}
|
||||
|
||||
/*
|
||||
function AddMskGsMember(Controller C)
|
||||
{
|
||||
MskGsMemberList.AddItem(C);
|
||||
if (XpNotifications)
|
||||
{
|
||||
if (MskGsMemberList.Length >= 10)
|
||||
{
|
||||
if (C.PlayerReplicationInfo != NONE)
|
||||
WorldInfo.Game.Broadcast(C, C.PlayerReplicationInfo.PlayerName$" gives a boost to this server! XP bonus: +100% (MAX!)");
|
||||
else
|
||||
WorldInfo.Game.Broadcast(C, "XP bonus: +100% (MAX!)");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (C.PlayerReplicationInfo != NONE)
|
||||
WorldInfo.Game.Broadcast(C, C.PlayerReplicationInfo.PlayerName$" gives a boost to this server! XP bonus: +"$string(MskGsMemberList.Length * 10)$"%");
|
||||
else
|
||||
WorldInfo.Game.Broadcast(C, "XP bonus: +"$string(MskGsMemberList.Length * 10)$"%");
|
||||
}
|
||||
}
|
||||
MyKFGI.UpdateGameSettings();
|
||||
}
|
||||
|
||||
function DelMskGsMember(Controller C)
|
||||
{
|
||||
Initialize();
|
||||
|
||||
if (MskGsMemberList.Find(C) != INDEX_NONE)
|
||||
{
|
||||
MskGsMemberList.RemoveItem(C);
|
||||
if (XpNotifications)
|
||||
{
|
||||
if (MskGsMemberList.Length >= 10)
|
||||
{
|
||||
if (C.PlayerReplicationInfo != NONE)
|
||||
WorldInfo.Game.Broadcast(C, C.PlayerReplicationInfo.PlayerName$" left the game. XP bonus: +100% (MAX!)");
|
||||
else
|
||||
WorldInfo.Game.Broadcast(C, "XP bonus: +100% (MAX!)");
|
||||
}
|
||||
else if (MskGsMemberList.Length > 0)
|
||||
{
|
||||
if (C.PlayerReplicationInfo != NONE)
|
||||
WorldInfo.Game.Broadcast(C, C.PlayerReplicationInfo.PlayerName$" left the game. XP bonus: +"$string(MskGsMemberList.Length * 10)$"%");
|
||||
else
|
||||
WorldInfo.Game.Broadcast(C, "XP bonus: +"$string(MskGsMemberList.Length * 10)$"%");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (C.PlayerReplicationInfo != NONE)
|
||||
WorldInfo.Game.Broadcast(C, C.PlayerReplicationInfo.PlayerName$" left the game. No XP bonus now.");
|
||||
else
|
||||
WorldInfo.Game.Broadcast(C, "No XP bonus now.");
|
||||
}
|
||||
}
|
||||
MyKFGI.UpdateGameSettings();
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
[Flags]
|
||||
AllowDownload=True
|
||||
ClientOptional=False
|
||||
ServerSideOnly=False
|
@ -1,24 +1,33 @@
|
||||
class MSKGS_GM_Endless extends KFGameInfo_Endless;
|
||||
|
||||
const GI = class'MSKGS_GameInfo';
|
||||
const GIC = "KFGameContent.KFGameInfo_Endless";
|
||||
|
||||
var public MSKGS MSKGS;
|
||||
var public E_LogLevel LogLevel;
|
||||
var public IMSKGS_GameInfo GI;
|
||||
var public IMSKGS MSKGS;
|
||||
var public E_LogLevel LogLevel;
|
||||
|
||||
public simulated function ExileServerUsingKickBan()
|
||||
{
|
||||
`Log_Trace();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
public function UpdateGameSettings()
|
||||
{
|
||||
GI.static.UpdateGameSettings(Self, GIC, MSKGS);
|
||||
`Log_Trace();
|
||||
|
||||
if (GI != None)
|
||||
{
|
||||
GI.UpdateGameSettings(Self, GIC, MSKGS);
|
||||
}
|
||||
}
|
||||
|
||||
protected function DistributeMoneyAndXP(class<KFPawn_Monster> MonsterClass, const out array<DamageInfo> DamageHistory, Controller Killer)
|
||||
{
|
||||
Super.DistributeMoneyAndXP(GI.static.PickProxyZed(MonsterClass, MSKGS), DamageHistory, Killer);
|
||||
`Log_Trace();
|
||||
|
||||
Super.DistributeMoneyAndXP(MSKGS == None ? MonsterClass : MSKGS.PickProxyZed(MonsterClass), DamageHistory, Killer);
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
|
@ -1,24 +1,33 @@
|
||||
class MSKGS_GM_Objective extends KFGameInfo_Objective;
|
||||
|
||||
const GI = class'MSKGS_GameInfo';
|
||||
const GIC = "KFGameContent.KFGameInfo_Objective";
|
||||
|
||||
var public MSKGS MSKGS;
|
||||
var public E_LogLevel LogLevel;
|
||||
var public IMSKGS_GameInfo GI;
|
||||
var public IMSKGS MSKGS;
|
||||
var public E_LogLevel LogLevel;
|
||||
|
||||
simulated function ExileServerUsingKickBan()
|
||||
public simulated function ExileServerUsingKickBan()
|
||||
{
|
||||
`Log_Trace();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
public function UpdateGameSettings()
|
||||
{
|
||||
GI.static.UpdateGameSettings(Self, GIC, MSKGS);
|
||||
`Log_Trace();
|
||||
|
||||
if (GI != None)
|
||||
{
|
||||
GI.UpdateGameSettings(Self, GIC, MSKGS);
|
||||
}
|
||||
}
|
||||
|
||||
protected function DistributeMoneyAndXP(class<KFPawn_Monster> MonsterClass, const out array<DamageInfo> DamageHistory, Controller Killer)
|
||||
{
|
||||
Super.DistributeMoneyAndXP(GI.static.PickProxyZed(MonsterClass, MSKGS), DamageHistory, Killer);
|
||||
`Log_Trace();
|
||||
|
||||
Super.DistributeMoneyAndXP(MSKGS == None ? MonsterClass : MSKGS.PickProxyZed(MonsterClass), DamageHistory, Killer);
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
|
@ -1,24 +1,33 @@
|
||||
class MSKGS_GM_Survival extends KFGameInfo_Survival;
|
||||
|
||||
const GI = class'MSKGS_GameInfo';
|
||||
const GIC = "KFGameContent.KFGameInfo_Survival";
|
||||
|
||||
var public MSKGS MSKGS;
|
||||
var public E_LogLevel LogLevel;
|
||||
var public IMSKGS_GameInfo GI;
|
||||
var public IMSKGS MSKGS;
|
||||
var public E_LogLevel LogLevel;
|
||||
|
||||
simulated function ExileServerUsingKickBan()
|
||||
public simulated function ExileServerUsingKickBan()
|
||||
{
|
||||
`Log_Trace();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
public function UpdateGameSettings()
|
||||
{
|
||||
GI.static.UpdateGameSettings(Self, GIC, MSKGS);
|
||||
`Log_Trace();
|
||||
|
||||
if (GI != None)
|
||||
{
|
||||
GI.UpdateGameSettings(Self, GIC, MSKGS);
|
||||
}
|
||||
}
|
||||
|
||||
protected function DistributeMoneyAndXP(class<KFPawn_Monster> MonsterClass, const out array<DamageInfo> DamageHistory, Controller Killer)
|
||||
{
|
||||
Super.DistributeMoneyAndXP(GI.static.PickProxyZed(MonsterClass, MSKGS), DamageHistory, Killer);
|
||||
`Log_Trace();
|
||||
|
||||
Super.DistributeMoneyAndXP(MSKGS == None ? MonsterClass : MSKGS.PickProxyZed(MonsterClass), DamageHistory, Killer);
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
|
@ -1,24 +1,33 @@
|
||||
class MSKGS_GM_VersusSurvival extends KFGameInfo_VersusSurvival;
|
||||
|
||||
const GI = class'MSKGS_GameInfo';
|
||||
const GIC = "KFGameContent.KFGameInfo_VersusSurvival";
|
||||
|
||||
var public MSKGS MSKGS;
|
||||
var public E_LogLevel LogLevel;
|
||||
var public IMSKGS_GameInfo GI;
|
||||
var public IMSKGS MSKGS;
|
||||
var public E_LogLevel LogLevel;
|
||||
|
||||
simulated function ExileServerUsingKickBan()
|
||||
public simulated function ExileServerUsingKickBan()
|
||||
{
|
||||
`Log_Trace();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
public function UpdateGameSettings()
|
||||
{
|
||||
GI.static.UpdateGameSettings(Self, GIC, MSKGS);
|
||||
`Log_Trace();
|
||||
|
||||
if (GI != None)
|
||||
{
|
||||
GI.UpdateGameSettings(Self, GIC, MSKGS);
|
||||
}
|
||||
}
|
||||
|
||||
protected function DistributeMoneyAndXP(class<KFPawn_Monster> MonsterClass, const out array<DamageInfo> DamageHistory, Controller Killer)
|
||||
{
|
||||
Super.DistributeMoneyAndXP(GI.static.PickProxyZed(MonsterClass, MSKGS), DamageHistory, Killer);
|
||||
`Log_Trace();
|
||||
|
||||
Super.DistributeMoneyAndXP(MSKGS == None ? MonsterClass : MSKGS.PickProxyZed(MonsterClass), DamageHistory, Killer);
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
|
@ -1,24 +1,33 @@
|
||||
class MSKGS_GM_WeeklySurvival extends KFGameInfo_WeeklySurvival;
|
||||
|
||||
const GI = class'MSKGS_GameInfo';
|
||||
const GIC = "KFGameContent.KFGameInfo_WeeklySurvival";
|
||||
|
||||
var public MSKGS MSKGS;
|
||||
var public E_LogLevel LogLevel;
|
||||
var public IMSKGS_GameInfo GI;
|
||||
var public IMSKGS MSKGS;
|
||||
var public E_LogLevel LogLevel;
|
||||
|
||||
simulated function ExileServerUsingKickBan()
|
||||
public simulated function ExileServerUsingKickBan()
|
||||
{
|
||||
`Log_Trace();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
public function UpdateGameSettings()
|
||||
{
|
||||
GI.static.UpdateGameSettings(Self, GIC, MSKGS);
|
||||
`Log_Trace();
|
||||
|
||||
if (GI != None)
|
||||
{
|
||||
GI.UpdateGameSettings(Self, GIC, MSKGS);
|
||||
}
|
||||
}
|
||||
|
||||
protected function DistributeMoneyAndXP(class<KFPawn_Monster> MonsterClass, const out array<DamageInfo> DamageHistory, Controller Killer)
|
||||
{
|
||||
Super.DistributeMoneyAndXP(GI.static.PickProxyZed(MonsterClass, MSKGS), DamageHistory, Killer);
|
||||
`Log_Trace();
|
||||
|
||||
Super.DistributeMoneyAndXP(MSKGS == None ? MonsterClass : MSKGS.PickProxyZed(MonsterClass), DamageHistory, Killer);
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
|
@ -1,636 +0,0 @@
|
||||
class MSKGS_GameInfo extends Object;
|
||||
|
||||
const CfgXPBoost = class'CfgXPBoost';
|
||||
const CfgSrvRank = class'CfgSrvRank';
|
||||
|
||||
public static function UpdateGameSettings(KFGameInfo_Survival KFGI, string GameModeClass, MSKGS MSKGS)
|
||||
{
|
||||
local name SessionName;
|
||||
local KFOnlineGameSettings KFGameSettings;
|
||||
local int NumHumanPlayers;
|
||||
local KFGameEngine KFEngine;
|
||||
local PlayerController PC;
|
||||
|
||||
if (KFGI.WorldInfo.NetMode == NM_DedicatedServer || KFGI.WorldInfo.NetMode == NM_ListenServer)
|
||||
{
|
||||
if (KFGI.GameInterface != None)
|
||||
{
|
||||
KFEngine = KFGameEngine(class'Engine'.static.GetEngine());
|
||||
|
||||
SessionName = KFGI.PlayerReplicationInfoClass.default.SessionName;
|
||||
|
||||
if (KFGI.PlayfabInter != None && KFGI.PlayfabInter.GetGameSettings() != None)
|
||||
{
|
||||
KFGameSettings = KFOnlineGameSettings(KFGI.PlayfabInter.GetGameSettings());
|
||||
KFGameSettings.bAvailableForTakeover = KFEngine.bAvailableForTakeover;
|
||||
}
|
||||
else
|
||||
{
|
||||
KFGameSettings = KFOnlineGameSettings(KFGI.GameInterface.GetGameSettings(SessionName));
|
||||
}
|
||||
|
||||
if (KFGameSettings != None)
|
||||
{
|
||||
KFGameSettings.Mode = KFGI.default.GameModes.Find('ClassNameAndPath', GameModeClass);
|
||||
KFGameSettings.Difficulty = KFGI.GameDifficulty;
|
||||
|
||||
if (KFGI.WaveNum == 0)
|
||||
{
|
||||
KFGameSettings.bInProgress = false;
|
||||
KFGameSettings.CurrentWave = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
KFGameSettings.bInProgress = true;
|
||||
KFGameSettings.CurrentWave = KFGI.WaveNum;
|
||||
}
|
||||
|
||||
if (KFGI.MyKFGRI != None)
|
||||
{
|
||||
KFGameSettings.NumWaves = KFGI.MyKFGRI.GetFinalWaveNum();
|
||||
KFGI.MyKFGRI.bCustom = CfgSrvRank.default.bCustom;
|
||||
}
|
||||
else
|
||||
{
|
||||
KFGameSettings.NumWaves = KFGI.WaveMax - 1;
|
||||
}
|
||||
|
||||
if (MSKGS == None || !MSKGS.XPNotifications || MSKGS.XPBoost <= 0)
|
||||
{
|
||||
KFGameSettings.OwningPlayerName = class'GameReplicationInfo'.default.ServerName;
|
||||
}
|
||||
else if (MSKGS.XPBoost >= CfgXPBoost.default.MaxBoost)
|
||||
{
|
||||
KFGameSettings.OwningPlayerName = class'GameReplicationInfo'.default.ServerName $ " | +" $ CfgXPBoost.default.MaxBoost $ "% XP";
|
||||
}
|
||||
else
|
||||
{
|
||||
KFGameSettings.OwningPlayerName = class'GameReplicationInfo'.default.ServerName $ " | +" $ MSKGS.XPBoost $ "% XP";
|
||||
}
|
||||
|
||||
KFGameSettings.NumPublicConnections = KFGI.MaxPlayersAllowed;
|
||||
KFGameSettings.bRequiresPassword = KFGI.RequiresPassword();
|
||||
KFGameSettings.bCustom = CfgSrvRank.default.bCustom;
|
||||
KFGameSettings.bUsesStats = CfgSrvRank.default.bUsesStats;
|
||||
KFGameSettings.NumSpectators = KFGI.NumSpectators;
|
||||
|
||||
if (KFGI.WorldInfo.IsConsoleDedicatedServer() || KFGI.WorldInfo.IsEOSDedicatedServer())
|
||||
{
|
||||
KFGameSettings.MapName = KFGI.WorldInfo.GetMapName(true);
|
||||
|
||||
foreach KFGI.WorldInfo.AllControllers(class'PlayerController', PC)
|
||||
if (PC.bIsPlayer
|
||||
&& PC.PlayerReplicationInfo != None
|
||||
&& !PC.PlayerReplicationInfo.bOnlySpectator
|
||||
&& !PC.PlayerReplicationInfo.bBot)
|
||||
NumHumanPlayers++;
|
||||
|
||||
KFGameSettings.NumOpenPublicConnections = KFGameSettings.NumPublicConnections - NumHumanPlayers;
|
||||
}
|
||||
|
||||
if (KFGI.PlayfabInter != None && KFGI.PlayfabInter.IsRegisteredWithPlayfab())
|
||||
{
|
||||
KFGI.PlayfabInter.ServerUpdateOnlineGame();
|
||||
if (KFGI.WorldInfo.IsEOSDedicatedServer())
|
||||
{
|
||||
KFGI.GameInterface.UpdateOnlineGame(SessionName, KFGameSettings, true);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
KFGI.GameInterface.UpdateOnlineGame(SessionName, KFGameSettings, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static function class<KFPawn_Monster> PickProxyZed(class<KFPawn_Monster> MonsterClass, MSKGS MSKGS)
|
||||
{
|
||||
local String SMC;
|
||||
local Name NMC;
|
||||
|
||||
SMC = String(MonsterClass);
|
||||
NMC = Name(SMC);
|
||||
|
||||
switch (MSKGS.XPBoost)
|
||||
{
|
||||
case 0: return MonsterClass;
|
||||
case 10: return PickProxyZed010(NMC, MonsterClass);
|
||||
case 20: return PickProxyZed020(NMC, MonsterClass);
|
||||
case 30: return PickProxyZed030(NMC, MonsterClass);
|
||||
case 40: return PickProxyZed040(NMC, MonsterClass);
|
||||
case 50: return PickProxyZed050(NMC, MonsterClass);
|
||||
case 60: return PickProxyZed060(NMC, MonsterClass);
|
||||
case 70: return PickProxyZed070(NMC, MonsterClass);
|
||||
case 80: return PickProxyZed080(NMC, MonsterClass);
|
||||
case 90: return PickProxyZed090(NMC, MonsterClass);
|
||||
case 100: return PickProxyZed100(NMC, MonsterClass);
|
||||
default: return PickProxyZed100(NMC, MonsterClass);
|
||||
}
|
||||
}
|
||||
|
||||
private static function class<KFPawn_Monster> PickProxyZed010(Name MonsterClass, class<KFPawn_Monster> DefMonsterClass)
|
||||
{
|
||||
switch (MonsterClass)
|
||||
{
|
||||
case 'KFPawn_ZedBloat': return class'Proxy_KFPawn_ZedBloat_010';
|
||||
case 'KFPawn_ZedBloatKing': return class'Proxy_KFPawn_ZedBloatKing_010';
|
||||
case 'KFPawn_ZedBloatKing_SantasWorkshop': return class'Proxy_KFPawn_ZedBloatKing_SantasWorkshop_010';
|
||||
case 'KFPawn_ZedBloatKingSubspawn': return class'Proxy_KFPawn_ZedBloatKingSubspawn_010';
|
||||
case 'KFPawn_ZedClot_Alpha': return class'Proxy_KFPawn_ZedClot_Alpha_010';
|
||||
case 'KFPawn_ZedClot_AlphaKing': return class'Proxy_KFPawn_ZedClot_AlphaKing_010';
|
||||
case 'KFPawn_ZedClot_Cyst': return class'Proxy_KFPawn_ZedClot_Cyst_010';
|
||||
case 'KFPawn_ZedClot_Slasher': return class'Proxy_KFPawn_ZedClot_Slasher_010';
|
||||
case 'KFPawn_ZedCrawler': return class'Proxy_KFPawn_ZedCrawler_010';
|
||||
case 'KFPawn_ZedCrawlerKing': return class'Proxy_KFPawn_ZedCrawlerKing_010';
|
||||
case 'KFPawn_ZedDAR': return class'Proxy_KFPawn_ZedDAR_010';
|
||||
case 'KFPawn_ZedDAR_EMP': return class'Proxy_KFPawn_ZedDAR_EMP_010';
|
||||
case 'KFPawn_ZedDAR_Laser': return class'Proxy_KFPawn_ZedDAR_Laser_010';
|
||||
case 'KFPawn_ZedDAR_Rocket': return class'Proxy_KFPawn_ZedDAR_Rocket_010';
|
||||
case 'KFPawn_ZedFleshpound': return class'Proxy_KFPawn_ZedFleshpound_010';
|
||||
case 'KFPawn_ZedFleshpoundKing': return class'Proxy_KFPawn_ZedFleshpoundKing_010';
|
||||
case 'KFPawn_ZedFleshpoundMini': return class'Proxy_KFPawn_ZedFleshpoundMini_010';
|
||||
case 'KFPawn_ZedGorefast': return class'Proxy_KFPawn_ZedGorefast_010';
|
||||
case 'KFPawn_ZedGorefastDualBlade': return class'Proxy_KFPawn_ZedGorefastDualBlade_010';
|
||||
case 'KFPawn_ZedHans': return class'Proxy_KFPawn_ZedHans_010';
|
||||
case 'KFPawn_ZedHusk': return class'Proxy_KFPawn_ZedHusk_010';
|
||||
case 'KFPawn_ZedMatriarch': return class'Proxy_KFPawn_ZedMatriarch_010';
|
||||
case 'KFPawn_ZedPatriarch': return class'Proxy_KFPawn_ZedPatriarch_010';
|
||||
case 'KFPawn_ZedScrake': return class'Proxy_KFPawn_ZedScrake_010';
|
||||
case 'KFPawn_ZedSiren': return class'Proxy_KFPawn_ZedSiren_010';
|
||||
case 'KFPawn_ZedStalker': return class'Proxy_KFPawn_ZedStalker_010';
|
||||
case 'WMPawn_ZedClot_Slasher_Omega': return class'Proxy_WMPawn_ZedClot_Slasher_Omega_010';
|
||||
case 'WMPawn_ZedCrawler_Mini': return class'Proxy_WMPawn_ZedCrawler_Mini_010';
|
||||
case 'WMPawn_ZedCrawler_Medium': return class'Proxy_WMPawn_ZedCrawler_Medium_010';
|
||||
case 'WMPawn_ZedCrawler_Big': return class'Proxy_WMPawn_ZedCrawler_Big_010';
|
||||
case 'WMPawn_ZedCrawler_Huge': return class'Proxy_WMPawn_ZedCrawler_Huge_010';
|
||||
case 'WMPawn_ZedCrawler_Ultra': return class'Proxy_WMPawn_ZedCrawler_Ultra_010';
|
||||
case 'WMPawn_ZedFleshpound_Predator': return class'Proxy_WMPawn_ZedFleshpound_Predator_010';
|
||||
case 'WMPawn_ZedFleshpound_Omega': return class'Proxy_WMPawn_ZedFleshpound_Omega_010';
|
||||
case 'WMPawn_ZedGorefast_Omega': return class'Proxy_WMPawn_ZedGorefast_Omega_010';
|
||||
case 'WMPawn_ZedHusk_Tiny': return class'Proxy_WMPawn_ZedHusk_Tiny_010';
|
||||
case 'WMPawn_ZedHusk_Omega': return class'Proxy_WMPawn_ZedHusk_Omega_010';
|
||||
case 'WMPawn_ZedScrake_Tiny': return class'Proxy_WMPawn_ZedScrake_Tiny_010';
|
||||
case 'WMPawn_ZedScrake_Omega': return class'Proxy_WMPawn_ZedScrake_Omega_010';
|
||||
case 'WMPawn_ZedScrake_Emperor': return class'Proxy_WMPawn_ZedScrake_Emperor_010';
|
||||
case 'WMPawn_ZedSiren_Omega': return class'Proxy_WMPawn_ZedSiren_Omega_010';
|
||||
case 'WMPawn_ZedStalker_Omega': return class'Proxy_WMPawn_ZedStalker_Omega_010';
|
||||
default: return DefMonsterClass;
|
||||
}
|
||||
}
|
||||
|
||||
private static function class<KFPawn_Monster> PickProxyZed020(Name MonsterClass, class<KFPawn_Monster> DefMonsterClass)
|
||||
{
|
||||
switch (MonsterClass)
|
||||
{
|
||||
case 'KFPawn_ZedBloat': return class'Proxy_KFPawn_ZedBloat_020';
|
||||
case 'KFPawn_ZedBloatKing': return class'Proxy_KFPawn_ZedBloatKing_020';
|
||||
case 'KFPawn_ZedBloatKing_SantasWorkshop': return class'Proxy_KFPawn_ZedBloatKing_SantasWorkshop_020';
|
||||
case 'KFPawn_ZedBloatKingSubspawn': return class'Proxy_KFPawn_ZedBloatKingSubspawn_020';
|
||||
case 'KFPawn_ZedClot_Alpha': return class'Proxy_KFPawn_ZedClot_Alpha_020';
|
||||
case 'KFPawn_ZedClot_AlphaKing': return class'Proxy_KFPawn_ZedClot_AlphaKing_020';
|
||||
case 'KFPawn_ZedClot_Cyst': return class'Proxy_KFPawn_ZedClot_Cyst_020';
|
||||
case 'KFPawn_ZedClot_Slasher': return class'Proxy_KFPawn_ZedClot_Slasher_020';
|
||||
case 'KFPawn_ZedCrawler': return class'Proxy_KFPawn_ZedCrawler_020';
|
||||
case 'KFPawn_ZedCrawlerKing': return class'Proxy_KFPawn_ZedCrawlerKing_020';
|
||||
case 'KFPawn_ZedDAR': return class'Proxy_KFPawn_ZedDAR_020';
|
||||
case 'KFPawn_ZedDAR_EMP': return class'Proxy_KFPawn_ZedDAR_EMP_020';
|
||||
case 'KFPawn_ZedDAR_Laser': return class'Proxy_KFPawn_ZedDAR_Laser_020';
|
||||
case 'KFPawn_ZedDAR_Rocket': return class'Proxy_KFPawn_ZedDAR_Rocket_020';
|
||||
case 'KFPawn_ZedFleshpound': return class'Proxy_KFPawn_ZedFleshpound_020';
|
||||
case 'KFPawn_ZedFleshpoundKing': return class'Proxy_KFPawn_ZedFleshpoundKing_020';
|
||||
case 'KFPawn_ZedFleshpoundMini': return class'Proxy_KFPawn_ZedFleshpoundMini_020';
|
||||
case 'KFPawn_ZedGorefast': return class'Proxy_KFPawn_ZedGorefast_020';
|
||||
case 'KFPawn_ZedGorefastDualBlade': return class'Proxy_KFPawn_ZedGorefastDualBlade_020';
|
||||
case 'KFPawn_ZedHans': return class'Proxy_KFPawn_ZedHans_020';
|
||||
case 'KFPawn_ZedHusk': return class'Proxy_KFPawn_ZedHusk_020';
|
||||
case 'KFPawn_ZedMatriarch': return class'Proxy_KFPawn_ZedMatriarch_020';
|
||||
case 'KFPawn_ZedPatriarch': return class'Proxy_KFPawn_ZedPatriarch_020';
|
||||
case 'KFPawn_ZedScrake': return class'Proxy_KFPawn_ZedScrake_020';
|
||||
case 'KFPawn_ZedSiren': return class'Proxy_KFPawn_ZedSiren_020';
|
||||
case 'KFPawn_ZedStalker': return class'Proxy_KFPawn_ZedStalker_020';
|
||||
case 'WMPawn_ZedClot_Slasher_Omega': return class'Proxy_WMPawn_ZedClot_Slasher_Omega_020';
|
||||
case 'WMPawn_ZedCrawler_Mini': return class'Proxy_WMPawn_ZedCrawler_Mini_020';
|
||||
case 'WMPawn_ZedCrawler_Medium': return class'Proxy_WMPawn_ZedCrawler_Medium_020';
|
||||
case 'WMPawn_ZedCrawler_Big': return class'Proxy_WMPawn_ZedCrawler_Big_020';
|
||||
case 'WMPawn_ZedCrawler_Huge': return class'Proxy_WMPawn_ZedCrawler_Huge_020';
|
||||
case 'WMPawn_ZedCrawler_Ultra': return class'Proxy_WMPawn_ZedCrawler_Ultra_020';
|
||||
case 'WMPawn_ZedFleshpound_Predator': return class'Proxy_WMPawn_ZedFleshpound_Predator_020';
|
||||
case 'WMPawn_ZedFleshpound_Omega': return class'Proxy_WMPawn_ZedFleshpound_Omega_020';
|
||||
case 'WMPawn_ZedGorefast_Omega': return class'Proxy_WMPawn_ZedGorefast_Omega_020';
|
||||
case 'WMPawn_ZedHusk_Tiny': return class'Proxy_WMPawn_ZedHusk_Tiny_020';
|
||||
case 'WMPawn_ZedHusk_Omega': return class'Proxy_WMPawn_ZedHusk_Omega_020';
|
||||
case 'WMPawn_ZedScrake_Tiny': return class'Proxy_WMPawn_ZedScrake_Tiny_020';
|
||||
case 'WMPawn_ZedScrake_Omega': return class'Proxy_WMPawn_ZedScrake_Omega_020';
|
||||
case 'WMPawn_ZedScrake_Emperor': return class'Proxy_WMPawn_ZedScrake_Emperor_020';
|
||||
case 'WMPawn_ZedSiren_Omega': return class'Proxy_WMPawn_ZedSiren_Omega_020';
|
||||
case 'WMPawn_ZedStalker_Omega': return class'Proxy_WMPawn_ZedStalker_Omega_020';
|
||||
default: return DefMonsterClass;
|
||||
}
|
||||
}
|
||||
|
||||
private static function class<KFPawn_Monster> PickProxyZed030(Name MonsterClass, class<KFPawn_Monster> DefMonsterClass)
|
||||
{
|
||||
switch (MonsterClass)
|
||||
{
|
||||
case 'KFPawn_ZedBloat': return class'Proxy_KFPawn_ZedBloat_030';
|
||||
case 'KFPawn_ZedBloatKing': return class'Proxy_KFPawn_ZedBloatKing_030';
|
||||
case 'KFPawn_ZedBloatKing_SantasWorkshop': return class'Proxy_KFPawn_ZedBloatKing_SantasWorkshop_030';
|
||||
case 'KFPawn_ZedBloatKingSubspawn': return class'Proxy_KFPawn_ZedBloatKingSubspawn_030';
|
||||
case 'KFPawn_ZedClot_Alpha': return class'Proxy_KFPawn_ZedClot_Alpha_030';
|
||||
case 'KFPawn_ZedClot_AlphaKing': return class'Proxy_KFPawn_ZedClot_AlphaKing_030';
|
||||
case 'KFPawn_ZedClot_Cyst': return class'Proxy_KFPawn_ZedClot_Cyst_030';
|
||||
case 'KFPawn_ZedClot_Slasher': return class'Proxy_KFPawn_ZedClot_Slasher_030';
|
||||
case 'KFPawn_ZedCrawler': return class'Proxy_KFPawn_ZedCrawler_030';
|
||||
case 'KFPawn_ZedCrawlerKing': return class'Proxy_KFPawn_ZedCrawlerKing_030';
|
||||
case 'KFPawn_ZedDAR': return class'Proxy_KFPawn_ZedDAR_030';
|
||||
case 'KFPawn_ZedDAR_EMP': return class'Proxy_KFPawn_ZedDAR_EMP_030';
|
||||
case 'KFPawn_ZedDAR_Laser': return class'Proxy_KFPawn_ZedDAR_Laser_030';
|
||||
case 'KFPawn_ZedDAR_Rocket': return class'Proxy_KFPawn_ZedDAR_Rocket_030';
|
||||
case 'KFPawn_ZedFleshpound': return class'Proxy_KFPawn_ZedFleshpound_030';
|
||||
case 'KFPawn_ZedFleshpoundKing': return class'Proxy_KFPawn_ZedFleshpoundKing_030';
|
||||
case 'KFPawn_ZedFleshpoundMini': return class'Proxy_KFPawn_ZedFleshpoundMini_030';
|
||||
case 'KFPawn_ZedGorefast': return class'Proxy_KFPawn_ZedGorefast_030';
|
||||
case 'KFPawn_ZedGorefastDualBlade': return class'Proxy_KFPawn_ZedGorefastDualBlade_030';
|
||||
case 'KFPawn_ZedHans': return class'Proxy_KFPawn_ZedHans_030';
|
||||
case 'KFPawn_ZedHusk': return class'Proxy_KFPawn_ZedHusk_030';
|
||||
case 'KFPawn_ZedMatriarch': return class'Proxy_KFPawn_ZedMatriarch_030';
|
||||
case 'KFPawn_ZedPatriarch': return class'Proxy_KFPawn_ZedPatriarch_030';
|
||||
case 'KFPawn_ZedScrake': return class'Proxy_KFPawn_ZedScrake_030';
|
||||
case 'KFPawn_ZedSiren': return class'Proxy_KFPawn_ZedSiren_030';
|
||||
case 'KFPawn_ZedStalker': return class'Proxy_KFPawn_ZedStalker_030';
|
||||
case 'WMPawn_ZedClot_Slasher_Omega': return class'Proxy_WMPawn_ZedClot_Slasher_Omega_030';
|
||||
case 'WMPawn_ZedCrawler_Mini': return class'Proxy_WMPawn_ZedCrawler_Mini_030';
|
||||
case 'WMPawn_ZedCrawler_Medium': return class'Proxy_WMPawn_ZedCrawler_Medium_030';
|
||||
case 'WMPawn_ZedCrawler_Big': return class'Proxy_WMPawn_ZedCrawler_Big_030';
|
||||
case 'WMPawn_ZedCrawler_Huge': return class'Proxy_WMPawn_ZedCrawler_Huge_030';
|
||||
case 'WMPawn_ZedCrawler_Ultra': return class'Proxy_WMPawn_ZedCrawler_Ultra_030';
|
||||
case 'WMPawn_ZedFleshpound_Predator': return class'Proxy_WMPawn_ZedFleshpound_Predator_030';
|
||||
case 'WMPawn_ZedFleshpound_Omega': return class'Proxy_WMPawn_ZedFleshpound_Omega_030';
|
||||
case 'WMPawn_ZedGorefast_Omega': return class'Proxy_WMPawn_ZedGorefast_Omega_030';
|
||||
case 'WMPawn_ZedHusk_Tiny': return class'Proxy_WMPawn_ZedHusk_Tiny_030';
|
||||
case 'WMPawn_ZedHusk_Omega': return class'Proxy_WMPawn_ZedHusk_Omega_030';
|
||||
case 'WMPawn_ZedScrake_Tiny': return class'Proxy_WMPawn_ZedScrake_Tiny_030';
|
||||
case 'WMPawn_ZedScrake_Omega': return class'Proxy_WMPawn_ZedScrake_Omega_030';
|
||||
case 'WMPawn_ZedScrake_Emperor': return class'Proxy_WMPawn_ZedScrake_Emperor_030';
|
||||
case 'WMPawn_ZedSiren_Omega': return class'Proxy_WMPawn_ZedSiren_Omega_030';
|
||||
case 'WMPawn_ZedStalker_Omega': return class'Proxy_WMPawn_ZedStalker_Omega_030';
|
||||
default: return DefMonsterClass;
|
||||
}
|
||||
}
|
||||
|
||||
private static function class<KFPawn_Monster> PickProxyZed040(Name MonsterClass, class<KFPawn_Monster> DefMonsterClass)
|
||||
{
|
||||
switch (MonsterClass)
|
||||
{
|
||||
case 'KFPawn_ZedBloat': return class'Proxy_KFPawn_ZedBloat_040';
|
||||
case 'KFPawn_ZedBloatKing': return class'Proxy_KFPawn_ZedBloatKing_040';
|
||||
case 'KFPawn_ZedBloatKing_SantasWorkshop': return class'Proxy_KFPawn_ZedBloatKing_SantasWorkshop_040';
|
||||
case 'KFPawn_ZedBloatKingSubspawn': return class'Proxy_KFPawn_ZedBloatKingSubspawn_040';
|
||||
case 'KFPawn_ZedClot_Alpha': return class'Proxy_KFPawn_ZedClot_Alpha_040';
|
||||
case 'KFPawn_ZedClot_AlphaKing': return class'Proxy_KFPawn_ZedClot_AlphaKing_040';
|
||||
case 'KFPawn_ZedClot_Cyst': return class'Proxy_KFPawn_ZedClot_Cyst_040';
|
||||
case 'KFPawn_ZedClot_Slasher': return class'Proxy_KFPawn_ZedClot_Slasher_040';
|
||||
case 'KFPawn_ZedCrawler': return class'Proxy_KFPawn_ZedCrawler_040';
|
||||
case 'KFPawn_ZedCrawlerKing': return class'Proxy_KFPawn_ZedCrawlerKing_040';
|
||||
case 'KFPawn_ZedDAR': return class'Proxy_KFPawn_ZedDAR_040';
|
||||
case 'KFPawn_ZedDAR_EMP': return class'Proxy_KFPawn_ZedDAR_EMP_040';
|
||||
case 'KFPawn_ZedDAR_Laser': return class'Proxy_KFPawn_ZedDAR_Laser_040';
|
||||
case 'KFPawn_ZedDAR_Rocket': return class'Proxy_KFPawn_ZedDAR_Rocket_040';
|
||||
case 'KFPawn_ZedFleshpound': return class'Proxy_KFPawn_ZedFleshpound_040';
|
||||
case 'KFPawn_ZedFleshpoundKing': return class'Proxy_KFPawn_ZedFleshpoundKing_040';
|
||||
case 'KFPawn_ZedFleshpoundMini': return class'Proxy_KFPawn_ZedFleshpoundMini_040';
|
||||
case 'KFPawn_ZedGorefast': return class'Proxy_KFPawn_ZedGorefast_040';
|
||||
case 'KFPawn_ZedGorefastDualBlade': return class'Proxy_KFPawn_ZedGorefastDualBlade_040';
|
||||
case 'KFPawn_ZedHans': return class'Proxy_KFPawn_ZedHans_040';
|
||||
case 'KFPawn_ZedHusk': return class'Proxy_KFPawn_ZedHusk_040';
|
||||
case 'KFPawn_ZedMatriarch': return class'Proxy_KFPawn_ZedMatriarch_040';
|
||||
case 'KFPawn_ZedPatriarch': return class'Proxy_KFPawn_ZedPatriarch_040';
|
||||
case 'KFPawn_ZedScrake': return class'Proxy_KFPawn_ZedScrake_040';
|
||||
case 'KFPawn_ZedSiren': return class'Proxy_KFPawn_ZedSiren_040';
|
||||
case 'KFPawn_ZedStalker': return class'Proxy_KFPawn_ZedStalker_040';
|
||||
case 'WMPawn_ZedClot_Slasher_Omega': return class'Proxy_WMPawn_ZedClot_Slasher_Omega_040';
|
||||
case 'WMPawn_ZedCrawler_Mini': return class'Proxy_WMPawn_ZedCrawler_Mini_040';
|
||||
case 'WMPawn_ZedCrawler_Medium': return class'Proxy_WMPawn_ZedCrawler_Medium_040';
|
||||
case 'WMPawn_ZedCrawler_Big': return class'Proxy_WMPawn_ZedCrawler_Big_040';
|
||||
case 'WMPawn_ZedCrawler_Huge': return class'Proxy_WMPawn_ZedCrawler_Huge_040';
|
||||
case 'WMPawn_ZedCrawler_Ultra': return class'Proxy_WMPawn_ZedCrawler_Ultra_040';
|
||||
case 'WMPawn_ZedFleshpound_Predator': return class'Proxy_WMPawn_ZedFleshpound_Predator_040';
|
||||
case 'WMPawn_ZedFleshpound_Omega': return class'Proxy_WMPawn_ZedFleshpound_Omega_040';
|
||||
case 'WMPawn_ZedGorefast_Omega': return class'Proxy_WMPawn_ZedGorefast_Omega_040';
|
||||
case 'WMPawn_ZedHusk_Tiny': return class'Proxy_WMPawn_ZedHusk_Tiny_040';
|
||||
case 'WMPawn_ZedHusk_Omega': return class'Proxy_WMPawn_ZedHusk_Omega_040';
|
||||
case 'WMPawn_ZedScrake_Tiny': return class'Proxy_WMPawn_ZedScrake_Tiny_040';
|
||||
case 'WMPawn_ZedScrake_Omega': return class'Proxy_WMPawn_ZedScrake_Omega_040';
|
||||
case 'WMPawn_ZedScrake_Emperor': return class'Proxy_WMPawn_ZedScrake_Emperor_040';
|
||||
case 'WMPawn_ZedSiren_Omega': return class'Proxy_WMPawn_ZedSiren_Omega_040';
|
||||
case 'WMPawn_ZedStalker_Omega': return class'Proxy_WMPawn_ZedStalker_Omega_040';
|
||||
default: return DefMonsterClass;
|
||||
}
|
||||
}
|
||||
|
||||
private static function class<KFPawn_Monster> PickProxyZed050(Name MonsterClass, class<KFPawn_Monster> DefMonsterClass)
|
||||
{
|
||||
switch (MonsterClass)
|
||||
{
|
||||
case 'KFPawn_ZedBloat': return class'Proxy_KFPawn_ZedBloat_050';
|
||||
case 'KFPawn_ZedBloatKing': return class'Proxy_KFPawn_ZedBloatKing_050';
|
||||
case 'KFPawn_ZedBloatKing_SantasWorkshop': return class'Proxy_KFPawn_ZedBloatKing_SantasWorkshop_050';
|
||||
case 'KFPawn_ZedBloatKingSubspawn': return class'Proxy_KFPawn_ZedBloatKingSubspawn_050';
|
||||
case 'KFPawn_ZedClot_Alpha': return class'Proxy_KFPawn_ZedClot_Alpha_050';
|
||||
case 'KFPawn_ZedClot_AlphaKing': return class'Proxy_KFPawn_ZedClot_AlphaKing_050';
|
||||
case 'KFPawn_ZedClot_Cyst': return class'Proxy_KFPawn_ZedClot_Cyst_050';
|
||||
case 'KFPawn_ZedClot_Slasher': return class'Proxy_KFPawn_ZedClot_Slasher_050';
|
||||
case 'KFPawn_ZedCrawler': return class'Proxy_KFPawn_ZedCrawler_050';
|
||||
case 'KFPawn_ZedCrawlerKing': return class'Proxy_KFPawn_ZedCrawlerKing_050';
|
||||
case 'KFPawn_ZedDAR': return class'Proxy_KFPawn_ZedDAR_050';
|
||||
case 'KFPawn_ZedDAR_EMP': return class'Proxy_KFPawn_ZedDAR_EMP_050';
|
||||
case 'KFPawn_ZedDAR_Laser': return class'Proxy_KFPawn_ZedDAR_Laser_050';
|
||||
case 'KFPawn_ZedDAR_Rocket': return class'Proxy_KFPawn_ZedDAR_Rocket_050';
|
||||
case 'KFPawn_ZedFleshpound': return class'Proxy_KFPawn_ZedFleshpound_050';
|
||||
case 'KFPawn_ZedFleshpoundKing': return class'Proxy_KFPawn_ZedFleshpoundKing_050';
|
||||
case 'KFPawn_ZedFleshpoundMini': return class'Proxy_KFPawn_ZedFleshpoundMini_050';
|
||||
case 'KFPawn_ZedGorefast': return class'Proxy_KFPawn_ZedGorefast_050';
|
||||
case 'KFPawn_ZedGorefastDualBlade': return class'Proxy_KFPawn_ZedGorefastDualBlade_050';
|
||||
case 'KFPawn_ZedHans': return class'Proxy_KFPawn_ZedHans_050';
|
||||
case 'KFPawn_ZedHusk': return class'Proxy_KFPawn_ZedHusk_050';
|
||||
case 'KFPawn_ZedMatriarch': return class'Proxy_KFPawn_ZedMatriarch_050';
|
||||
case 'KFPawn_ZedPatriarch': return class'Proxy_KFPawn_ZedPatriarch_050';
|
||||
case 'KFPawn_ZedScrake': return class'Proxy_KFPawn_ZedScrake_050';
|
||||
case 'KFPawn_ZedSiren': return class'Proxy_KFPawn_ZedSiren_050';
|
||||
case 'KFPawn_ZedStalker': return class'Proxy_KFPawn_ZedStalker_050';
|
||||
case 'WMPawn_ZedClot_Slasher_Omega': return class'Proxy_WMPawn_ZedClot_Slasher_Omega_050';
|
||||
case 'WMPawn_ZedCrawler_Mini': return class'Proxy_WMPawn_ZedCrawler_Mini_050';
|
||||
case 'WMPawn_ZedCrawler_Medium': return class'Proxy_WMPawn_ZedCrawler_Medium_050';
|
||||
case 'WMPawn_ZedCrawler_Big': return class'Proxy_WMPawn_ZedCrawler_Big_050';
|
||||
case 'WMPawn_ZedCrawler_Huge': return class'Proxy_WMPawn_ZedCrawler_Huge_050';
|
||||
case 'WMPawn_ZedCrawler_Ultra': return class'Proxy_WMPawn_ZedCrawler_Ultra_050';
|
||||
case 'WMPawn_ZedFleshpound_Predator': return class'Proxy_WMPawn_ZedFleshpound_Predator_050';
|
||||
case 'WMPawn_ZedFleshpound_Omega': return class'Proxy_WMPawn_ZedFleshpound_Omega_050';
|
||||
case 'WMPawn_ZedGorefast_Omega': return class'Proxy_WMPawn_ZedGorefast_Omega_050';
|
||||
case 'WMPawn_ZedHusk_Tiny': return class'Proxy_WMPawn_ZedHusk_Tiny_050';
|
||||
case 'WMPawn_ZedHusk_Omega': return class'Proxy_WMPawn_ZedHusk_Omega_050';
|
||||
case 'WMPawn_ZedScrake_Tiny': return class'Proxy_WMPawn_ZedScrake_Tiny_050';
|
||||
case 'WMPawn_ZedScrake_Omega': return class'Proxy_WMPawn_ZedScrake_Omega_050';
|
||||
case 'WMPawn_ZedScrake_Emperor': return class'Proxy_WMPawn_ZedScrake_Emperor_050';
|
||||
case 'WMPawn_ZedSiren_Omega': return class'Proxy_WMPawn_ZedSiren_Omega_050';
|
||||
case 'WMPawn_ZedStalker_Omega': return class'Proxy_WMPawn_ZedStalker_Omega_050';
|
||||
default: return DefMonsterClass;
|
||||
}
|
||||
}
|
||||
|
||||
private static function class<KFPawn_Monster> PickProxyZed060(Name MonsterClass, class<KFPawn_Monster> DefMonsterClass)
|
||||
{
|
||||
switch (MonsterClass)
|
||||
{
|
||||
case 'KFPawn_ZedBloat': return class'Proxy_KFPawn_ZedBloat_060';
|
||||
case 'KFPawn_ZedBloatKing': return class'Proxy_KFPawn_ZedBloatKing_060';
|
||||
case 'KFPawn_ZedBloatKing_SantasWorkshop': return class'Proxy_KFPawn_ZedBloatKing_SantasWorkshop_060';
|
||||
case 'KFPawn_ZedBloatKingSubspawn': return class'Proxy_KFPawn_ZedBloatKingSubspawn_060';
|
||||
case 'KFPawn_ZedClot_Alpha': return class'Proxy_KFPawn_ZedClot_Alpha_060';
|
||||
case 'KFPawn_ZedClot_AlphaKing': return class'Proxy_KFPawn_ZedClot_AlphaKing_060';
|
||||
case 'KFPawn_ZedClot_Cyst': return class'Proxy_KFPawn_ZedClot_Cyst_060';
|
||||
case 'KFPawn_ZedClot_Slasher': return class'Proxy_KFPawn_ZedClot_Slasher_060';
|
||||
case 'KFPawn_ZedCrawler': return class'Proxy_KFPawn_ZedCrawler_060';
|
||||
case 'KFPawn_ZedCrawlerKing': return class'Proxy_KFPawn_ZedCrawlerKing_060';
|
||||
case 'KFPawn_ZedDAR': return class'Proxy_KFPawn_ZedDAR_060';
|
||||
case 'KFPawn_ZedDAR_EMP': return class'Proxy_KFPawn_ZedDAR_EMP_060';
|
||||
case 'KFPawn_ZedDAR_Laser': return class'Proxy_KFPawn_ZedDAR_Laser_060';
|
||||
case 'KFPawn_ZedDAR_Rocket': return class'Proxy_KFPawn_ZedDAR_Rocket_060';
|
||||
case 'KFPawn_ZedFleshpound': return class'Proxy_KFPawn_ZedFleshpound_060';
|
||||
case 'KFPawn_ZedFleshpoundKing': return class'Proxy_KFPawn_ZedFleshpoundKing_060';
|
||||
case 'KFPawn_ZedFleshpoundMini': return class'Proxy_KFPawn_ZedFleshpoundMini_060';
|
||||
case 'KFPawn_ZedGorefast': return class'Proxy_KFPawn_ZedGorefast_060';
|
||||
case 'KFPawn_ZedGorefastDualBlade': return class'Proxy_KFPawn_ZedGorefastDualBlade_060';
|
||||
case 'KFPawn_ZedHans': return class'Proxy_KFPawn_ZedHans_060';
|
||||
case 'KFPawn_ZedHusk': return class'Proxy_KFPawn_ZedHusk_060';
|
||||
case 'KFPawn_ZedMatriarch': return class'Proxy_KFPawn_ZedMatriarch_060';
|
||||
case 'KFPawn_ZedPatriarch': return class'Proxy_KFPawn_ZedPatriarch_060';
|
||||
case 'KFPawn_ZedScrake': return class'Proxy_KFPawn_ZedScrake_060';
|
||||
case 'KFPawn_ZedSiren': return class'Proxy_KFPawn_ZedSiren_060';
|
||||
case 'KFPawn_ZedStalker': return class'Proxy_KFPawn_ZedStalker_060';
|
||||
case 'WMPawn_ZedClot_Slasher_Omega': return class'Proxy_WMPawn_ZedClot_Slasher_Omega_060';
|
||||
case 'WMPawn_ZedCrawler_Mini': return class'Proxy_WMPawn_ZedCrawler_Mini_060';
|
||||
case 'WMPawn_ZedCrawler_Medium': return class'Proxy_WMPawn_ZedCrawler_Medium_060';
|
||||
case 'WMPawn_ZedCrawler_Big': return class'Proxy_WMPawn_ZedCrawler_Big_060';
|
||||
case 'WMPawn_ZedCrawler_Huge': return class'Proxy_WMPawn_ZedCrawler_Huge_060';
|
||||
case 'WMPawn_ZedCrawler_Ultra': return class'Proxy_WMPawn_ZedCrawler_Ultra_060';
|
||||
case 'WMPawn_ZedFleshpound_Predator': return class'Proxy_WMPawn_ZedFleshpound_Predator_060';
|
||||
case 'WMPawn_ZedFleshpound_Omega': return class'Proxy_WMPawn_ZedFleshpound_Omega_060';
|
||||
case 'WMPawn_ZedGorefast_Omega': return class'Proxy_WMPawn_ZedGorefast_Omega_060';
|
||||
case 'WMPawn_ZedHusk_Tiny': return class'Proxy_WMPawn_ZedHusk_Tiny_060';
|
||||
case 'WMPawn_ZedHusk_Omega': return class'Proxy_WMPawn_ZedHusk_Omega_060';
|
||||
case 'WMPawn_ZedScrake_Tiny': return class'Proxy_WMPawn_ZedScrake_Tiny_060';
|
||||
case 'WMPawn_ZedScrake_Omega': return class'Proxy_WMPawn_ZedScrake_Omega_060';
|
||||
case 'WMPawn_ZedScrake_Emperor': return class'Proxy_WMPawn_ZedScrake_Emperor_060';
|
||||
case 'WMPawn_ZedSiren_Omega': return class'Proxy_WMPawn_ZedSiren_Omega_060';
|
||||
case 'WMPawn_ZedStalker_Omega': return class'Proxy_WMPawn_ZedStalker_Omega_060';
|
||||
default: return DefMonsterClass;
|
||||
}
|
||||
}
|
||||
|
||||
private static function class<KFPawn_Monster> PickProxyZed070(Name MonsterClass, class<KFPawn_Monster> DefMonsterClass)
|
||||
{
|
||||
switch (MonsterClass)
|
||||
{
|
||||
case 'KFPawn_ZedBloat': return class'Proxy_KFPawn_ZedBloat_070';
|
||||
case 'KFPawn_ZedBloatKing': return class'Proxy_KFPawn_ZedBloatKing_070';
|
||||
case 'KFPawn_ZedBloatKing_SantasWorkshop': return class'Proxy_KFPawn_ZedBloatKing_SantasWorkshop_070';
|
||||
case 'KFPawn_ZedBloatKingSubspawn': return class'Proxy_KFPawn_ZedBloatKingSubspawn_070';
|
||||
case 'KFPawn_ZedClot_Alpha': return class'Proxy_KFPawn_ZedClot_Alpha_070';
|
||||
case 'KFPawn_ZedClot_AlphaKing': return class'Proxy_KFPawn_ZedClot_AlphaKing_070';
|
||||
case 'KFPawn_ZedClot_Cyst': return class'Proxy_KFPawn_ZedClot_Cyst_070';
|
||||
case 'KFPawn_ZedClot_Slasher': return class'Proxy_KFPawn_ZedClot_Slasher_070';
|
||||
case 'KFPawn_ZedCrawler': return class'Proxy_KFPawn_ZedCrawler_070';
|
||||
case 'KFPawn_ZedCrawlerKing': return class'Proxy_KFPawn_ZedCrawlerKing_070';
|
||||
case 'KFPawn_ZedDAR': return class'Proxy_KFPawn_ZedDAR_070';
|
||||
case 'KFPawn_ZedDAR_EMP': return class'Proxy_KFPawn_ZedDAR_EMP_070';
|
||||
case 'KFPawn_ZedDAR_Laser': return class'Proxy_KFPawn_ZedDAR_Laser_070';
|
||||
case 'KFPawn_ZedDAR_Rocket': return class'Proxy_KFPawn_ZedDAR_Rocket_070';
|
||||
case 'KFPawn_ZedFleshpound': return class'Proxy_KFPawn_ZedFleshpound_070';
|
||||
case 'KFPawn_ZedFleshpoundKing': return class'Proxy_KFPawn_ZedFleshpoundKing_070';
|
||||
case 'KFPawn_ZedFleshpoundMini': return class'Proxy_KFPawn_ZedFleshpoundMini_070';
|
||||
case 'KFPawn_ZedGorefast': return class'Proxy_KFPawn_ZedGorefast_070';
|
||||
case 'KFPawn_ZedGorefastDualBlade': return class'Proxy_KFPawn_ZedGorefastDualBlade_070';
|
||||
case 'KFPawn_ZedHans': return class'Proxy_KFPawn_ZedHans_070';
|
||||
case 'KFPawn_ZedHusk': return class'Proxy_KFPawn_ZedHusk_070';
|
||||
case 'KFPawn_ZedMatriarch': return class'Proxy_KFPawn_ZedMatriarch_070';
|
||||
case 'KFPawn_ZedPatriarch': return class'Proxy_KFPawn_ZedPatriarch_070';
|
||||
case 'KFPawn_ZedScrake': return class'Proxy_KFPawn_ZedScrake_070';
|
||||
case 'KFPawn_ZedSiren': return class'Proxy_KFPawn_ZedSiren_070';
|
||||
case 'KFPawn_ZedStalker': return class'Proxy_KFPawn_ZedStalker_070';
|
||||
case 'WMPawn_ZedClot_Slasher_Omega': return class'Proxy_WMPawn_ZedClot_Slasher_Omega_070';
|
||||
case 'WMPawn_ZedCrawler_Mini': return class'Proxy_WMPawn_ZedCrawler_Mini_070';
|
||||
case 'WMPawn_ZedCrawler_Medium': return class'Proxy_WMPawn_ZedCrawler_Medium_070';
|
||||
case 'WMPawn_ZedCrawler_Big': return class'Proxy_WMPawn_ZedCrawler_Big_070';
|
||||
case 'WMPawn_ZedCrawler_Huge': return class'Proxy_WMPawn_ZedCrawler_Huge_070';
|
||||
case 'WMPawn_ZedCrawler_Ultra': return class'Proxy_WMPawn_ZedCrawler_Ultra_070';
|
||||
case 'WMPawn_ZedFleshpound_Predator': return class'Proxy_WMPawn_ZedFleshpound_Predator_070';
|
||||
case 'WMPawn_ZedFleshpound_Omega': return class'Proxy_WMPawn_ZedFleshpound_Omega_070';
|
||||
case 'WMPawn_ZedGorefast_Omega': return class'Proxy_WMPawn_ZedGorefast_Omega_070';
|
||||
case 'WMPawn_ZedHusk_Tiny': return class'Proxy_WMPawn_ZedHusk_Tiny_070';
|
||||
case 'WMPawn_ZedHusk_Omega': return class'Proxy_WMPawn_ZedHusk_Omega_070';
|
||||
case 'WMPawn_ZedScrake_Tiny': return class'Proxy_WMPawn_ZedScrake_Tiny_070';
|
||||
case 'WMPawn_ZedScrake_Omega': return class'Proxy_WMPawn_ZedScrake_Omega_070';
|
||||
case 'WMPawn_ZedScrake_Emperor': return class'Proxy_WMPawn_ZedScrake_Emperor_070';
|
||||
case 'WMPawn_ZedSiren_Omega': return class'Proxy_WMPawn_ZedSiren_Omega_070';
|
||||
case 'WMPawn_ZedStalker_Omega': return class'Proxy_WMPawn_ZedStalker_Omega_070';
|
||||
default: return DefMonsterClass;
|
||||
}
|
||||
}
|
||||
|
||||
private static function class<KFPawn_Monster> PickProxyZed080(Name MonsterClass, class<KFPawn_Monster> DefMonsterClass)
|
||||
{
|
||||
switch (MonsterClass)
|
||||
{
|
||||
case 'KFPawn_ZedBloat': return class'Proxy_KFPawn_ZedBloat_080';
|
||||
case 'KFPawn_ZedBloatKing': return class'Proxy_KFPawn_ZedBloatKing_080';
|
||||
case 'KFPawn_ZedBloatKing_SantasWorkshop': return class'Proxy_KFPawn_ZedBloatKing_SantasWorkshop_080';
|
||||
case 'KFPawn_ZedBloatKingSubspawn': return class'Proxy_KFPawn_ZedBloatKingSubspawn_080';
|
||||
case 'KFPawn_ZedClot_Alpha': return class'Proxy_KFPawn_ZedClot_Alpha_080';
|
||||
case 'KFPawn_ZedClot_AlphaKing': return class'Proxy_KFPawn_ZedClot_AlphaKing_080';
|
||||
case 'KFPawn_ZedClot_Cyst': return class'Proxy_KFPawn_ZedClot_Cyst_080';
|
||||
case 'KFPawn_ZedClot_Slasher': return class'Proxy_KFPawn_ZedClot_Slasher_080';
|
||||
case 'KFPawn_ZedCrawler': return class'Proxy_KFPawn_ZedCrawler_080';
|
||||
case 'KFPawn_ZedCrawlerKing': return class'Proxy_KFPawn_ZedCrawlerKing_080';
|
||||
case 'KFPawn_ZedDAR': return class'Proxy_KFPawn_ZedDAR_080';
|
||||
case 'KFPawn_ZedDAR_EMP': return class'Proxy_KFPawn_ZedDAR_EMP_080';
|
||||
case 'KFPawn_ZedDAR_Laser': return class'Proxy_KFPawn_ZedDAR_Laser_080';
|
||||
case 'KFPawn_ZedDAR_Rocket': return class'Proxy_KFPawn_ZedDAR_Rocket_080';
|
||||
case 'KFPawn_ZedFleshpound': return class'Proxy_KFPawn_ZedFleshpound_080';
|
||||
case 'KFPawn_ZedFleshpoundKing': return class'Proxy_KFPawn_ZedFleshpoundKing_080';
|
||||
case 'KFPawn_ZedFleshpoundMini': return class'Proxy_KFPawn_ZedFleshpoundMini_080';
|
||||
case 'KFPawn_ZedGorefast': return class'Proxy_KFPawn_ZedGorefast_080';
|
||||
case 'KFPawn_ZedGorefastDualBlade': return class'Proxy_KFPawn_ZedGorefastDualBlade_080';
|
||||
case 'KFPawn_ZedHans': return class'Proxy_KFPawn_ZedHans_080';
|
||||
case 'KFPawn_ZedHusk': return class'Proxy_KFPawn_ZedHusk_080';
|
||||
case 'KFPawn_ZedMatriarch': return class'Proxy_KFPawn_ZedMatriarch_080';
|
||||
case 'KFPawn_ZedPatriarch': return class'Proxy_KFPawn_ZedPatriarch_080';
|
||||
case 'KFPawn_ZedScrake': return class'Proxy_KFPawn_ZedScrake_080';
|
||||
case 'KFPawn_ZedSiren': return class'Proxy_KFPawn_ZedSiren_080';
|
||||
case 'KFPawn_ZedStalker': return class'Proxy_KFPawn_ZedStalker_080';
|
||||
case 'WMPawn_ZedClot_Slasher_Omega': return class'Proxy_WMPawn_ZedClot_Slasher_Omega_080';
|
||||
case 'WMPawn_ZedCrawler_Mini': return class'Proxy_WMPawn_ZedCrawler_Mini_080';
|
||||
case 'WMPawn_ZedCrawler_Medium': return class'Proxy_WMPawn_ZedCrawler_Medium_080';
|
||||
case 'WMPawn_ZedCrawler_Big': return class'Proxy_WMPawn_ZedCrawler_Big_080';
|
||||
case 'WMPawn_ZedCrawler_Huge': return class'Proxy_WMPawn_ZedCrawler_Huge_080';
|
||||
case 'WMPawn_ZedCrawler_Ultra': return class'Proxy_WMPawn_ZedCrawler_Ultra_080';
|
||||
case 'WMPawn_ZedFleshpound_Predator': return class'Proxy_WMPawn_ZedFleshpound_Predator_080';
|
||||
case 'WMPawn_ZedFleshpound_Omega': return class'Proxy_WMPawn_ZedFleshpound_Omega_080';
|
||||
case 'WMPawn_ZedGorefast_Omega': return class'Proxy_WMPawn_ZedGorefast_Omega_080';
|
||||
case 'WMPawn_ZedHusk_Tiny': return class'Proxy_WMPawn_ZedHusk_Tiny_080';
|
||||
case 'WMPawn_ZedHusk_Omega': return class'Proxy_WMPawn_ZedHusk_Omega_080';
|
||||
case 'WMPawn_ZedScrake_Tiny': return class'Proxy_WMPawn_ZedScrake_Tiny_080';
|
||||
case 'WMPawn_ZedScrake_Omega': return class'Proxy_WMPawn_ZedScrake_Omega_080';
|
||||
case 'WMPawn_ZedScrake_Emperor': return class'Proxy_WMPawn_ZedScrake_Emperor_080';
|
||||
case 'WMPawn_ZedSiren_Omega': return class'Proxy_WMPawn_ZedSiren_Omega_080';
|
||||
case 'WMPawn_ZedStalker_Omega': return class'Proxy_WMPawn_ZedStalker_Omega_080';
|
||||
default: return DefMonsterClass;
|
||||
}
|
||||
}
|
||||
|
||||
private static function class<KFPawn_Monster> PickProxyZed090(Name MonsterClass, class<KFPawn_Monster> DefMonsterClass)
|
||||
{
|
||||
switch (MonsterClass)
|
||||
{
|
||||
case 'KFPawn_ZedBloat': return class'Proxy_KFPawn_ZedBloat_090';
|
||||
case 'KFPawn_ZedBloatKing': return class'Proxy_KFPawn_ZedBloatKing_090';
|
||||
case 'KFPawn_ZedBloatKing_SantasWorkshop': return class'Proxy_KFPawn_ZedBloatKing_SantasWorkshop_090';
|
||||
case 'KFPawn_ZedBloatKingSubspawn': return class'Proxy_KFPawn_ZedBloatKingSubspawn_090';
|
||||
case 'KFPawn_ZedClot_Alpha': return class'Proxy_KFPawn_ZedClot_Alpha_090';
|
||||
case 'KFPawn_ZedClot_AlphaKing': return class'Proxy_KFPawn_ZedClot_AlphaKing_090';
|
||||
case 'KFPawn_ZedClot_Cyst': return class'Proxy_KFPawn_ZedClot_Cyst_090';
|
||||
case 'KFPawn_ZedClot_Slasher': return class'Proxy_KFPawn_ZedClot_Slasher_090';
|
||||
case 'KFPawn_ZedCrawler': return class'Proxy_KFPawn_ZedCrawler_090';
|
||||
case 'KFPawn_ZedCrawlerKing': return class'Proxy_KFPawn_ZedCrawlerKing_090';
|
||||
case 'KFPawn_ZedDAR': return class'Proxy_KFPawn_ZedDAR_090';
|
||||
case 'KFPawn_ZedDAR_EMP': return class'Proxy_KFPawn_ZedDAR_EMP_090';
|
||||
case 'KFPawn_ZedDAR_Laser': return class'Proxy_KFPawn_ZedDAR_Laser_090';
|
||||
case 'KFPawn_ZedDAR_Rocket': return class'Proxy_KFPawn_ZedDAR_Rocket_090';
|
||||
case 'KFPawn_ZedFleshpound': return class'Proxy_KFPawn_ZedFleshpound_090';
|
||||
case 'KFPawn_ZedFleshpoundKing': return class'Proxy_KFPawn_ZedFleshpoundKing_090';
|
||||
case 'KFPawn_ZedFleshpoundMini': return class'Proxy_KFPawn_ZedFleshpoundMini_090';
|
||||
case 'KFPawn_ZedGorefast': return class'Proxy_KFPawn_ZedGorefast_090';
|
||||
case 'KFPawn_ZedGorefastDualBlade': return class'Proxy_KFPawn_ZedGorefastDualBlade_090';
|
||||
case 'KFPawn_ZedHans': return class'Proxy_KFPawn_ZedHans_090';
|
||||
case 'KFPawn_ZedHusk': return class'Proxy_KFPawn_ZedHusk_090';
|
||||
case 'KFPawn_ZedMatriarch': return class'Proxy_KFPawn_ZedMatriarch_090';
|
||||
case 'KFPawn_ZedPatriarch': return class'Proxy_KFPawn_ZedPatriarch_090';
|
||||
case 'KFPawn_ZedScrake': return class'Proxy_KFPawn_ZedScrake_090';
|
||||
case 'KFPawn_ZedSiren': return class'Proxy_KFPawn_ZedSiren_090';
|
||||
case 'KFPawn_ZedStalker': return class'Proxy_KFPawn_ZedStalker_090';
|
||||
case 'WMPawn_ZedClot_Slasher_Omega': return class'Proxy_WMPawn_ZedClot_Slasher_Omega_090';
|
||||
case 'WMPawn_ZedCrawler_Mini': return class'Proxy_WMPawn_ZedCrawler_Mini_090';
|
||||
case 'WMPawn_ZedCrawler_Medium': return class'Proxy_WMPawn_ZedCrawler_Medium_090';
|
||||
case 'WMPawn_ZedCrawler_Big': return class'Proxy_WMPawn_ZedCrawler_Big_090';
|
||||
case 'WMPawn_ZedCrawler_Huge': return class'Proxy_WMPawn_ZedCrawler_Huge_090';
|
||||
case 'WMPawn_ZedCrawler_Ultra': return class'Proxy_WMPawn_ZedCrawler_Ultra_090';
|
||||
case 'WMPawn_ZedFleshpound_Predator': return class'Proxy_WMPawn_ZedFleshpound_Predator_090';
|
||||
case 'WMPawn_ZedFleshpound_Omega': return class'Proxy_WMPawn_ZedFleshpound_Omega_090';
|
||||
case 'WMPawn_ZedGorefast_Omega': return class'Proxy_WMPawn_ZedGorefast_Omega_090';
|
||||
case 'WMPawn_ZedHusk_Tiny': return class'Proxy_WMPawn_ZedHusk_Tiny_090';
|
||||
case 'WMPawn_ZedHusk_Omega': return class'Proxy_WMPawn_ZedHusk_Omega_090';
|
||||
case 'WMPawn_ZedScrake_Tiny': return class'Proxy_WMPawn_ZedScrake_Tiny_090';
|
||||
case 'WMPawn_ZedScrake_Omega': return class'Proxy_WMPawn_ZedScrake_Omega_090';
|
||||
case 'WMPawn_ZedScrake_Emperor': return class'Proxy_WMPawn_ZedScrake_Emperor_090';
|
||||
case 'WMPawn_ZedSiren_Omega': return class'Proxy_WMPawn_ZedSiren_Omega_090';
|
||||
case 'WMPawn_ZedStalker_Omega': return class'Proxy_WMPawn_ZedStalker_Omega_090';
|
||||
default: return DefMonsterClass;
|
||||
}
|
||||
}
|
||||
|
||||
private static function class<KFPawn_Monster> PickProxyZed100(Name MonsterClass, class<KFPawn_Monster> DefMonsterClass)
|
||||
{
|
||||
switch (MonsterClass)
|
||||
{
|
||||
case 'KFPawn_ZedBloat': return class'Proxy_KFPawn_ZedBloat_100';
|
||||
case 'KFPawn_ZedBloatKing': return class'Proxy_KFPawn_ZedBloatKing_100';
|
||||
case 'KFPawn_ZedBloatKing_SantasWorkshop': return class'Proxy_KFPawn_ZedBloatKing_SantasWorkshop_100';
|
||||
case 'KFPawn_ZedBloatKingSubspawn': return class'Proxy_KFPawn_ZedBloatKingSubspawn_100';
|
||||
case 'KFPawn_ZedClot_Alpha': return class'Proxy_KFPawn_ZedClot_Alpha_100';
|
||||
case 'KFPawn_ZedClot_AlphaKing': return class'Proxy_KFPawn_ZedClot_AlphaKing_100';
|
||||
case 'KFPawn_ZedClot_Cyst': return class'Proxy_KFPawn_ZedClot_Cyst_100';
|
||||
case 'KFPawn_ZedClot_Slasher': return class'Proxy_KFPawn_ZedClot_Slasher_100';
|
||||
case 'KFPawn_ZedCrawler': return class'Proxy_KFPawn_ZedCrawler_100';
|
||||
case 'KFPawn_ZedCrawlerKing': return class'Proxy_KFPawn_ZedCrawlerKing_100';
|
||||
case 'KFPawn_ZedDAR': return class'Proxy_KFPawn_ZedDAR_100';
|
||||
case 'KFPawn_ZedDAR_EMP': return class'Proxy_KFPawn_ZedDAR_EMP_100';
|
||||
case 'KFPawn_ZedDAR_Laser': return class'Proxy_KFPawn_ZedDAR_Laser_100';
|
||||
case 'KFPawn_ZedDAR_Rocket': return class'Proxy_KFPawn_ZedDAR_Rocket_100';
|
||||
case 'KFPawn_ZedFleshpound': return class'Proxy_KFPawn_ZedFleshpound_100';
|
||||
case 'KFPawn_ZedFleshpoundKing': return class'Proxy_KFPawn_ZedFleshpoundKing_100';
|
||||
case 'KFPawn_ZedFleshpoundMini': return class'Proxy_KFPawn_ZedFleshpoundMini_100';
|
||||
case 'KFPawn_ZedGorefast': return class'Proxy_KFPawn_ZedGorefast_100';
|
||||
case 'KFPawn_ZedGorefastDualBlade': return class'Proxy_KFPawn_ZedGorefastDualBlade_100';
|
||||
case 'KFPawn_ZedHans': return class'Proxy_KFPawn_ZedHans_100';
|
||||
case 'KFPawn_ZedHusk': return class'Proxy_KFPawn_ZedHusk_100';
|
||||
case 'KFPawn_ZedMatriarch': return class'Proxy_KFPawn_ZedMatriarch_100';
|
||||
case 'KFPawn_ZedPatriarch': return class'Proxy_KFPawn_ZedPatriarch_100';
|
||||
case 'KFPawn_ZedScrake': return class'Proxy_KFPawn_ZedScrake_100';
|
||||
case 'KFPawn_ZedSiren': return class'Proxy_KFPawn_ZedSiren_100';
|
||||
case 'KFPawn_ZedStalker': return class'Proxy_KFPawn_ZedStalker_100';
|
||||
case 'WMPawn_ZedClot_Slasher_Omega': return class'Proxy_WMPawn_ZedClot_Slasher_Omega_100';
|
||||
case 'WMPawn_ZedCrawler_Mini': return class'Proxy_WMPawn_ZedCrawler_Mini_100';
|
||||
case 'WMPawn_ZedCrawler_Medium': return class'Proxy_WMPawn_ZedCrawler_Medium_100';
|
||||
case 'WMPawn_ZedCrawler_Big': return class'Proxy_WMPawn_ZedCrawler_Big_100';
|
||||
case 'WMPawn_ZedCrawler_Huge': return class'Proxy_WMPawn_ZedCrawler_Huge_100';
|
||||
case 'WMPawn_ZedCrawler_Ultra': return class'Proxy_WMPawn_ZedCrawler_Ultra_100';
|
||||
case 'WMPawn_ZedFleshpound_Predator': return class'Proxy_WMPawn_ZedFleshpound_Predator_100';
|
||||
case 'WMPawn_ZedFleshpound_Omega': return class'Proxy_WMPawn_ZedFleshpound_Omega_100';
|
||||
case 'WMPawn_ZedGorefast_Omega': return class'Proxy_WMPawn_ZedGorefast_Omega_100';
|
||||
case 'WMPawn_ZedHusk_Tiny': return class'Proxy_WMPawn_ZedHusk_Tiny_100';
|
||||
case 'WMPawn_ZedHusk_Omega': return class'Proxy_WMPawn_ZedHusk_Omega_100';
|
||||
case 'WMPawn_ZedScrake_Tiny': return class'Proxy_WMPawn_ZedScrake_Tiny_100';
|
||||
case 'WMPawn_ZedScrake_Omega': return class'Proxy_WMPawn_ZedScrake_Omega_100';
|
||||
case 'WMPawn_ZedScrake_Emperor': return class'Proxy_WMPawn_ZedScrake_Emperor_100';
|
||||
case 'WMPawn_ZedSiren_Omega': return class'Proxy_WMPawn_ZedSiren_Omega_100';
|
||||
case 'WMPawn_ZedStalker_Omega': return class'Proxy_WMPawn_ZedStalker_Omega_100';
|
||||
default: return DefMonsterClass;
|
||||
}
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
|
||||
}
|
113
MskGs/Classes/MSKGS_LocalMessage.uc
Normal file
113
MskGs/Classes/MSKGS_LocalMessage.uc
Normal file
@ -0,0 +1,113 @@
|
||||
class MSKGS_LocalMessage extends Object;
|
||||
|
||||
enum E_MSKGS_LocalMessageType
|
||||
{
|
||||
MSKGS_PlayerGiveBoostToServer,
|
||||
MSKGS_PlayerGiveBoostToServerFirst,
|
||||
MSKGS_PlayerGiveBoostToServerMax,
|
||||
MSKGS_BoosterLeaveServer,
|
||||
MSKGS_BoosterLeaveServerMax,
|
||||
MSKGS_BoosterLeaveServerNoBoost
|
||||
};
|
||||
|
||||
var const String PlayerGivesBoostDefault;
|
||||
var private localized String PlayerGivesBoost;
|
||||
var const String PlayerGivesBoostFirstDefault;
|
||||
var private localized String PlayerGivesBoostFirst;
|
||||
var const String TotalBoostDefault;
|
||||
var private localized String TotalBoost;
|
||||
var const String MaxDefault;
|
||||
var private localized String Max;
|
||||
var const String PlayerLeftDefault;
|
||||
var private localized String PlayerLeft;
|
||||
var const String NoBoostDefault;
|
||||
var private localized String NoBoost;
|
||||
|
||||
private static function String ReplPlayer(String Str, String Player)
|
||||
{
|
||||
return Repl(Str, "<player>", Player, false);
|
||||
}
|
||||
|
||||
private static function String ReplPlayerBoost(String Str, String Boost)
|
||||
{
|
||||
return Repl(Str, "<playerboost>", Boost, false);
|
||||
}
|
||||
|
||||
private static function String ReplTotalBoost(String Str, String Boost)
|
||||
{
|
||||
return Repl(Str, "<totalboost>", Boost, false);
|
||||
}
|
||||
|
||||
public static function String GetLocalizedString(
|
||||
E_LogLevel LogLevel,
|
||||
E_MSKGS_LocalMessageType LMT,
|
||||
optional String String1,
|
||||
optional String String2,
|
||||
optional String String3)
|
||||
{
|
||||
local String RV;
|
||||
|
||||
`Log_TraceStatic();
|
||||
|
||||
RV = "";
|
||||
|
||||
switch (LMT)
|
||||
{
|
||||
case MSKGS_PlayerGiveBoostToServer:
|
||||
RV = (default.PlayerGivesBoost != "" ? default.PlayerGivesBoost : default.PlayerGivesBoostDefault)
|
||||
@ (default.TotalBoost != "" ? default.TotalBoost : default.TotalBoostDefault);
|
||||
RV = ReplPlayer(RV, String1);
|
||||
RV = ReplPlayerBoost(RV, String2);
|
||||
RV = ReplTotalBoost(RV, String3);
|
||||
break;
|
||||
|
||||
case MSKGS_PlayerGiveBoostToServerFirst:
|
||||
RV = (default.PlayerGivesBoostFirst != "" ? default.PlayerGivesBoostFirst : default.PlayerGivesBoostFirstDefault)
|
||||
@ (default.TotalBoost != "" ? default.TotalBoost : default.TotalBoostDefault);
|
||||
RV = ReplPlayer(RV, String1);
|
||||
RV = ReplTotalBoost(RV, String2);
|
||||
break;
|
||||
|
||||
case MSKGS_PlayerGiveBoostToServerMax:
|
||||
RV = (default.PlayerGivesBoost != "" ? default.PlayerGivesBoost : default.PlayerGivesBoostDefault)
|
||||
@ (default.TotalBoost != "" ? default.TotalBoost : default.TotalBoostDefault)
|
||||
@ (default.Max != "" ? default.Max : default.MaxDefault);
|
||||
RV = ReplPlayer(RV, String1);
|
||||
RV = ReplPlayerBoost(RV, String2);
|
||||
RV = ReplTotalBoost(RV, String3);
|
||||
break;
|
||||
|
||||
case MSKGS_BoosterLeaveServer:
|
||||
RV = (default.PlayerLeft != "" ? default.PlayerLeft : default.PlayerLeftDefault)
|
||||
@ (default.TotalBoost != "" ? default.TotalBoost : default.TotalBoostDefault);
|
||||
RV = ReplPlayer(RV, String1);
|
||||
RV = ReplTotalBoost(RV, String2);
|
||||
break;
|
||||
|
||||
case MSKGS_BoosterLeaveServerMax:
|
||||
RV = (default.PlayerLeft != "" ? default.PlayerLeft : default.PlayerLeftDefault)
|
||||
@ (default.TotalBoost != "" ? default.TotalBoost : default.TotalBoostDefault)
|
||||
@ (default.Max != "" ? default.Max : default.MaxDefault);
|
||||
RV = ReplPlayer(RV, String1);
|
||||
RV = ReplTotalBoost(RV, String2);
|
||||
break;
|
||||
|
||||
case MSKGS_BoosterLeaveServerNoBoost:
|
||||
RV = (default.PlayerLeft != "" ? default.PlayerLeft : default.PlayerLeftDefault)
|
||||
@ (default.NoBoost != "" ? default.NoBoost : default.NoBoostDefault);
|
||||
RV = ReplPlayer(RV, String1);
|
||||
break;
|
||||
}
|
||||
|
||||
return RV;
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
PlayerGivesBoostFirstDefault = "<player> gives boost to this server!"
|
||||
PlayerGivesBoostDefault = "<player> gives +<playerboost>% XP boost to this server!"
|
||||
TotalBoostDefault = "XP boost: +<totalboost>%"
|
||||
MaxDefault = "(MAX)"
|
||||
PlayerLeftDefault = "<player> left the server."
|
||||
NoBoostDefault = "Now there is no XP boost."
|
||||
}
|
@ -1,81 +0,0 @@
|
||||
class MSKGS_Mut extends KFMutator
|
||||
config(MSKGS);
|
||||
|
||||
var private MSKGS MSKGS;
|
||||
|
||||
public simulated function bool SafeDestroy()
|
||||
{
|
||||
return (bPendingDelete || bDeleteMe || Destroy());
|
||||
}
|
||||
|
||||
public event PreBeginPlay()
|
||||
{
|
||||
Super.PreBeginPlay();
|
||||
|
||||
if (WorldInfo.NetMode == NM_Client) return;
|
||||
|
||||
foreach WorldInfo.DynamicActors(class'MSKGS', MSKGS)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
if (MSKGS == None)
|
||||
{
|
||||
MSKGS = WorldInfo.Spawn(class'MSKGS');
|
||||
}
|
||||
|
||||
if (MSKGS == None)
|
||||
{
|
||||
`Log_Base("FATAL: Can't Spawn 'MSKGS'");
|
||||
SafeDestroy();
|
||||
}
|
||||
}
|
||||
|
||||
public function InitMutator(String Options, out String ErrorMessage)
|
||||
{
|
||||
Super.InitMutator(Options, ErrorMessage);
|
||||
|
||||
MSKGS.SetMaxPlayers(class'GameInfo'.static.GetIntOption(Options, "MaxPlayers", INDEX_NONE));
|
||||
}
|
||||
|
||||
public function AddMutator(Mutator Mut)
|
||||
{
|
||||
if (Mut == Self) return;
|
||||
|
||||
if (Mut.Class == Class)
|
||||
Mut.Destroy();
|
||||
else
|
||||
Super.AddMutator(Mut);
|
||||
}
|
||||
|
||||
public function bool CheckRelevance(Actor A)
|
||||
{
|
||||
local bool Relevance;
|
||||
|
||||
Relevance = Super.CheckRelevance(A);
|
||||
if (Relevance)
|
||||
{
|
||||
MSKGS.ModifyLifespan(A);
|
||||
}
|
||||
|
||||
return Relevance;
|
||||
}
|
||||
|
||||
public function NotifyLogin(Controller C)
|
||||
{
|
||||
MSKGS.NotifyLogin(C);
|
||||
|
||||
Super.NotifyLogin(C);
|
||||
}
|
||||
|
||||
public function NotifyLogout(Controller C)
|
||||
{
|
||||
MSKGS.NotifyLogout(C);
|
||||
|
||||
Super.NotifyLogout(C);
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
class MSKGS_OnlineSubsystem extends Object;
|
||||
|
||||
static simulated function bool IsUID()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
|
||||
}
|
@ -1,22 +1,78 @@
|
||||
class MSKGS_RepInfo extends ReplicationInfo;
|
||||
|
||||
const CfgXPBoost = class'CfgXPBoost';
|
||||
const MSKGS_LMT = class'MSKGS_LocalMessage';
|
||||
|
||||
var public E_LogLevel LogLevel;
|
||||
var public MSKGS MSKGS;
|
||||
var public UniqueNetId GroupID;
|
||||
var public float CheckGroupTimer;
|
||||
enum MSKGS_PlayerType
|
||||
{
|
||||
MSKGS_Unknown,
|
||||
MSKGS_Owner,
|
||||
MSKGS_Admin,
|
||||
MSKGS_Group,
|
||||
MSKGS_Player
|
||||
};
|
||||
|
||||
var private KFPlayerController KFPC;
|
||||
var private OnlineSubsystem OS;
|
||||
var private IMSKGS MSKGS;
|
||||
var private bool ServerOwner;
|
||||
var private bool GroupMember;
|
||||
|
||||
var public bool ServerOwner;
|
||||
var private bool GroupMember;
|
||||
var private repnotify E_LogLevel LogLevel;
|
||||
var private repnotify UniqueNetId GroupID;
|
||||
var private repnotify float CheckGroupTimer;
|
||||
|
||||
var private bool ObtainLogLevel;
|
||||
var private bool ObtainGroupID;
|
||||
var private bool ObtainCheckGroupTimer;
|
||||
|
||||
var private KFPlayerController KFPC;
|
||||
var private OnlineSubsystemSteamworks OSS;
|
||||
|
||||
replication
|
||||
{
|
||||
if (bNetInitial && Role == ROLE_Authority)
|
||||
LogLevel, GroupID, CheckGroupTimer;
|
||||
if (bNetInitial)
|
||||
LogLevel, GroupID, CheckGroupTimer, ServerOwner;
|
||||
}
|
||||
|
||||
public simulated event ReplicatedEvent(name VarName)
|
||||
{
|
||||
`Log_Trace();
|
||||
|
||||
switch (VarName)
|
||||
{
|
||||
case 'LogLevel':
|
||||
ObtainLogLevel = true;
|
||||
CheckGroupMembership();
|
||||
break;
|
||||
|
||||
case 'GroupID':
|
||||
ObtainGroupID = true;
|
||||
CheckGroupMembership();
|
||||
break;
|
||||
|
||||
case 'CheckGroupTimer':
|
||||
ObtainCheckGroupTimer = true;
|
||||
CheckGroupMembership();
|
||||
break;
|
||||
|
||||
default:
|
||||
super.ReplicatedEvent(VarName);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public function Init(
|
||||
E_LogLevel _LogLevel,
|
||||
IMSKGS _MSKGS,
|
||||
UniqueNetId _GroupID,
|
||||
float _CheckGroupTimer,
|
||||
bool _ServerOwner)
|
||||
{
|
||||
LogLevel = _LogLevel;
|
||||
MSKGS = _MSKGS;
|
||||
GroupID = _GroupID;
|
||||
CheckGroupTimer = _CheckGroupTimer;
|
||||
ServerOwner = _ServerOwner;
|
||||
|
||||
`Log_Trace();
|
||||
}
|
||||
|
||||
public simulated function bool SafeDestroy()
|
||||
@ -30,19 +86,6 @@ public simulated event PreBeginPlay()
|
||||
{
|
||||
`Log_Trace();
|
||||
|
||||
if (Role < ROLE_Authority || WorldInfo.NetMode == NM_StandAlone)
|
||||
{
|
||||
OS = class'GameEngine'.static.GetOnlineSubsystem();
|
||||
if (OS != None)
|
||||
{
|
||||
CheckGroupMembership();
|
||||
}
|
||||
else
|
||||
{
|
||||
`Log_Error("Can't get online subsystem!");
|
||||
}
|
||||
}
|
||||
|
||||
Super.PreBeginPlay();
|
||||
}
|
||||
|
||||
@ -57,46 +100,74 @@ public simulated event PostBeginPlay()
|
||||
|
||||
private simulated function CheckGroupMembership()
|
||||
{
|
||||
if (OS.CheckPlayerGroup(GroupID))
|
||||
`Log_Trace();
|
||||
|
||||
if (WorldInfo.NetMode == NM_StandAlone
|
||||
|| (ObtainLogLevel && ObtainGroupID && ObtainCheckGroupTimer && Role < ROLE_Authority))
|
||||
{
|
||||
ClearTimer(nameof(CheckGroupMembership));
|
||||
ServerApplyMembership();
|
||||
}
|
||||
else if (CheckGroupTimer > 0.0f && !IsTimerActive(nameof(CheckGroupMembership)))
|
||||
{
|
||||
SetTimer(CheckGroupTimer, true, nameof(CheckGroupMembership));
|
||||
if (OSS == None)
|
||||
{
|
||||
OSS = OnlineSubsystemSteamworks(class'GameEngine'.static.GetOnlineSubsystem());
|
||||
}
|
||||
|
||||
if (OSS != None)
|
||||
{
|
||||
if (OSS.CheckPlayerGroup(GroupID))
|
||||
{
|
||||
ClearTimer(nameof(CheckGroupMembership));
|
||||
GroupMember = true;
|
||||
ServerApplyMembership();
|
||||
}
|
||||
else if (!IsTimerActive(nameof(CheckGroupMembership)) && CheckGroupTimer > 0.0f)
|
||||
{
|
||||
SetTimer(CheckGroupTimer, true, nameof(CheckGroupMembership));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
`Log_Error("Can't get online subsystem steamworks!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private reliable server function ServerApplyMembership()
|
||||
{
|
||||
GroupMember = true;
|
||||
MSKGS.IncreaseXPBoost(GetKFPC());
|
||||
}
|
||||
|
||||
public function int XPBoost()
|
||||
public simulated function MSKGS_PlayerType PlayerType()
|
||||
{
|
||||
`Log_Trace();
|
||||
|
||||
if (ServerOwner)
|
||||
if (IsServerOwner())
|
||||
{
|
||||
return CfgXPBoost.default.BoostOwner;
|
||||
return MSKGS_Owner;
|
||||
}
|
||||
|
||||
if (GetKFPC() != None && GetKFPC().PlayerReplicationInfo != None && GetKFPC().PlayerReplicationInfo.bAdmin)
|
||||
|
||||
if (IsAdmin())
|
||||
{
|
||||
return CfgXPBoost.default.BoostAdmin;
|
||||
return MSKGS_Admin;
|
||||
}
|
||||
|
||||
if (GroupMember)
|
||||
|
||||
if (IsGroupMember())
|
||||
{
|
||||
return CfgXPBoost.default.BoostGroup;
|
||||
return MSKGS_Group;
|
||||
}
|
||||
|
||||
return CfgXPBoost.default.BoostPlayer;
|
||||
|
||||
return MSKGS_Player;
|
||||
}
|
||||
|
||||
private simulated function KFPlayerController GetKFPC()
|
||||
public simulated function bool IsServerOwner()
|
||||
{
|
||||
return ServerOwner;
|
||||
}
|
||||
|
||||
public simulated function bool IsAdmin()
|
||||
{
|
||||
return (GetKFPC() != None && KFPC.PlayerReplicationInfo != None && KFPC.PlayerReplicationInfo.bAdmin);
|
||||
}
|
||||
|
||||
public simulated function bool IsGroupMember()
|
||||
{
|
||||
return GroupMember;
|
||||
}
|
||||
|
||||
public simulated function KFPlayerController GetKFPC()
|
||||
{
|
||||
`Log_Trace();
|
||||
|
||||
@ -112,6 +183,92 @@ private simulated function KFPlayerController GetKFPC()
|
||||
return KFPC;
|
||||
}
|
||||
|
||||
private reliable server function ServerApplyMembership()
|
||||
{
|
||||
`Log_Trace();
|
||||
|
||||
GroupMember = true;
|
||||
MSKGS.IncreaseXPBoost(GetKFPC());
|
||||
}
|
||||
|
||||
public reliable client function WriteToChatLocalized(E_MSKGS_LocalMessageType LMT, String HexColor, optional String String1, optional String String2, optional String String3)
|
||||
{
|
||||
`Log_Trace();
|
||||
|
||||
WriteToChat(MSKGS_LMT.static.GetLocalizedString(LogLevel, LMT, String1, String2, String3), HexColor);
|
||||
}
|
||||
|
||||
public reliable client function WriteToChat(String Message, String HexColor)
|
||||
{
|
||||
local KFGFxHudWrapper HUD;
|
||||
|
||||
`Log_Trace();
|
||||
|
||||
if (GetKFPC() == None) return;
|
||||
|
||||
if (KFPC.MyGFxManager.PartyWidget != None && KFPC.MyGFxManager.PartyWidget.PartyChatWidget != None)
|
||||
{
|
||||
KFPC.MyGFxManager.PartyWidget.PartyChatWidget.AddChatMessage(Message, HexColor);
|
||||
}
|
||||
|
||||
HUD = KFGFxHudWrapper(KFPC.myHUD);
|
||||
if (HUD != None && HUD.HUDMovie != None && HUD.HUDMovie.HudChatBox != None)
|
||||
{
|
||||
HUD.HUDMovie.HudChatBox.AddChatMessage(Message, HexColor);
|
||||
}
|
||||
}
|
||||
|
||||
public reliable client function WriteToHUDLocalized(E_MSKGS_LocalMessageType LMT, optional String String1, optional String String2, optional String String3, optional float DisplayTime = 0.0f)
|
||||
{
|
||||
`Log_Trace();
|
||||
|
||||
WriteToHUD(MSKGS_LMT.static.GetLocalizedString(LogLevel, LMT, String1, String2, String3), DisplayTime);
|
||||
}
|
||||
|
||||
public reliable client function WriteToHUD(String Message, optional float DisplayTime = 0.0f)
|
||||
{
|
||||
`Log_Trace();
|
||||
|
||||
if (GetKFPC() == None) return;
|
||||
|
||||
if (DisplayTime <= 0.0f)
|
||||
{
|
||||
DisplayTime = CalcDisplayTime(Message);
|
||||
}
|
||||
|
||||
if (KFPC.MyGFxHUD != None)
|
||||
{
|
||||
KFPC.MyGFxHUD.DisplayMapText(Message, DisplayTime, false);
|
||||
}
|
||||
}
|
||||
|
||||
public reliable client function DefferedClearMessageHUD(optional float Time = 0.0f)
|
||||
{
|
||||
`Log_Trace();
|
||||
|
||||
SetTimer(Time, false, nameof(ClearMessageHUD));
|
||||
}
|
||||
|
||||
public reliable client function ClearMessageHUD()
|
||||
{
|
||||
`Log_Trace();
|
||||
|
||||
if (GetKFPC() == None) return;
|
||||
|
||||
if (KFPC.MyGFxHUD != None && KFPC.MyGFxHUD.MapTextWidget != None)
|
||||
{
|
||||
KFPC.MyGFxHUD.MapTextWidget.StoredMessageList.Length = 0;
|
||||
KFPC.MyGFxHUD.MapTextWidget.HideMessage();
|
||||
}
|
||||
}
|
||||
|
||||
private simulated function float CalcDisplayTime(String Message)
|
||||
{
|
||||
`Log_Trace();
|
||||
|
||||
return FClamp(Len(Message) / 20.0f, 3, 30);
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
bAlwaysRelevant = false
|
||||
@ -120,4 +277,8 @@ defaultproperties
|
||||
|
||||
GroupMember = false;
|
||||
ServerOwner = false;
|
||||
|
||||
ObtainLogLevel = false;
|
||||
ObtainGroupID = false;
|
||||
ObtainCheckGroupTimer = false;
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloatKingSubspawn_010 extends KFPawn_ZedBloatKingSubspawn;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=9 // 8
|
||||
XPValues(1)=11 // 10
|
||||
XPValues(2)=11 // 10
|
||||
XPValues(3)=11 // 10
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloatKingSubspawn_020 extends KFPawn_ZedBloatKingSubspawn;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=10 // 8
|
||||
XPValues(1)=12 // 10
|
||||
XPValues(2)=12 // 10
|
||||
XPValues(3)=12 // 10
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloatKingSubspawn_030 extends KFPawn_ZedBloatKingSubspawn;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=10 // 8
|
||||
XPValues(1)=13 // 10
|
||||
XPValues(2)=13 // 10
|
||||
XPValues(3)=13 // 10
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloatKingSubspawn_040 extends KFPawn_ZedBloatKingSubspawn;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=11 // 8
|
||||
XPValues(1)=14 // 10
|
||||
XPValues(2)=14 // 10
|
||||
XPValues(3)=14 // 10
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloatKingSubspawn_050 extends KFPawn_ZedBloatKingSubspawn;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=12 // 8
|
||||
XPValues(1)=15 // 10
|
||||
XPValues(2)=15 // 10
|
||||
XPValues(3)=15 // 10
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloatKingSubspawn_060 extends KFPawn_ZedBloatKingSubspawn;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=13 // 8
|
||||
XPValues(1)=16 // 10
|
||||
XPValues(2)=16 // 10
|
||||
XPValues(3)=16 // 10
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloatKingSubspawn_070 extends KFPawn_ZedBloatKingSubspawn;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=14 // 8
|
||||
XPValues(1)=17 // 10
|
||||
XPValues(2)=17 // 10
|
||||
XPValues(3)=17 // 10
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloatKingSubspawn_080 extends KFPawn_ZedBloatKingSubspawn;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=14 // 8
|
||||
XPValues(1)=18 // 10
|
||||
XPValues(2)=18 // 10
|
||||
XPValues(3)=18 // 10
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloatKingSubspawn_090 extends KFPawn_ZedBloatKingSubspawn;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=15 // 8
|
||||
XPValues(1)=19 // 10
|
||||
XPValues(2)=19 // 10
|
||||
XPValues(3)=19 // 10
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloatKingSubspawn_100 extends KFPawn_ZedBloatKingSubspawn;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=16 // 8
|
||||
XPValues(1)=20 // 10
|
||||
XPValues(2)=20 // 10
|
||||
XPValues(3)=20 // 10
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloatKing_010 extends KFPawn_ZedBloatKing;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=1420 // 1291
|
||||
XPValues(1)=1863 // 1694
|
||||
XPValues(2)=1969 // 1790
|
||||
XPValues(3)=2027 // 1843
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloatKing_020 extends KFPawn_ZedBloatKing;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=1549 // 1291
|
||||
XPValues(1)=2033 // 1694
|
||||
XPValues(2)=2148 // 1790
|
||||
XPValues(3)=2212 // 1843
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloatKing_030 extends KFPawn_ZedBloatKing;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=1678 // 1291
|
||||
XPValues(1)=2202 // 1694
|
||||
XPValues(2)=2327 // 1790
|
||||
XPValues(3)=2396 // 1843
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloatKing_040 extends KFPawn_ZedBloatKing;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=1807 // 1291
|
||||
XPValues(1)=2372 // 1694
|
||||
XPValues(2)=2506 // 1790
|
||||
XPValues(3)=2580 // 1843
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloatKing_050 extends KFPawn_ZedBloatKing;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=1936 // 1291
|
||||
XPValues(1)=2541 // 1694
|
||||
XPValues(2)=2685 // 1790
|
||||
XPValues(3)=2764 // 1843
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloatKing_060 extends KFPawn_ZedBloatKing;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=2066 // 1291
|
||||
XPValues(1)=2710 // 1694
|
||||
XPValues(2)=2864 // 1790
|
||||
XPValues(3)=2949 // 1843
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloatKing_070 extends KFPawn_ZedBloatKing;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=2195 // 1291
|
||||
XPValues(1)=2880 // 1694
|
||||
XPValues(2)=3043 // 1790
|
||||
XPValues(3)=3133 // 1843
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloatKing_080 extends KFPawn_ZedBloatKing;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=2324 // 1291
|
||||
XPValues(1)=3049 // 1694
|
||||
XPValues(2)=3222 // 1790
|
||||
XPValues(3)=3317 // 1843
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloatKing_090 extends KFPawn_ZedBloatKing;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=2453 // 1291
|
||||
XPValues(1)=3219 // 1694
|
||||
XPValues(2)=3401 // 1790
|
||||
XPValues(3)=3502 // 1843
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloatKing_100 extends KFPawn_ZedBloatKing;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=2582 // 1291
|
||||
XPValues(1)=3388 // 1694
|
||||
XPValues(2)=3580 // 1790
|
||||
XPValues(3)=3686 // 1843
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloatKing_SantasWorkshop_010 extends KFPawn_ZedBloatKing_SantasWorkshop;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=1420 // 1291
|
||||
XPValues(1)=1863 // 1694
|
||||
XPValues(2)=1969 // 1790
|
||||
XPValues(3)=2027 // 1843
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloatKing_SantasWorkshop_020 extends KFPawn_ZedBloatKing_SantasWorkshop;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=1549 // 1291
|
||||
XPValues(1)=2033 // 1694
|
||||
XPValues(2)=2148 // 1790
|
||||
XPValues(3)=2212 // 1843
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloatKing_SantasWorkshop_030 extends KFPawn_ZedBloatKing_SantasWorkshop;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=1678 // 1291
|
||||
XPValues(1)=2202 // 1694
|
||||
XPValues(2)=2327 // 1790
|
||||
XPValues(3)=2396 // 1843
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloatKing_SantasWorkshop_040 extends KFPawn_ZedBloatKing_SantasWorkshop;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=1807 // 1291
|
||||
XPValues(1)=2372 // 1694
|
||||
XPValues(2)=2506 // 1790
|
||||
XPValues(3)=2580 // 1843
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloatKing_SantasWorkshop_050 extends KFPawn_ZedBloatKing_SantasWorkshop;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=1936 // 1291
|
||||
XPValues(1)=2541 // 1694
|
||||
XPValues(2)=2685 // 1790
|
||||
XPValues(3)=2764 // 1843
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloatKing_SantasWorkshop_060 extends KFPawn_ZedBloatKing_SantasWorkshop;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=2066 // 1291
|
||||
XPValues(1)=2710 // 1694
|
||||
XPValues(2)=2864 // 1790
|
||||
XPValues(3)=2949 // 1843
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloatKing_SantasWorkshop_070 extends KFPawn_ZedBloatKing_SantasWorkshop;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=2195 // 1291
|
||||
XPValues(1)=2880 // 1694
|
||||
XPValues(2)=3043 // 1790
|
||||
XPValues(3)=3133 // 1843
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloatKing_SantasWorkshop_080 extends KFPawn_ZedBloatKing_SantasWorkshop;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=2324 // 1291
|
||||
XPValues(1)=3049 // 1694
|
||||
XPValues(2)=3222 // 1790
|
||||
XPValues(3)=3317 // 1843
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloatKing_SantasWorkshop_090 extends KFPawn_ZedBloatKing_SantasWorkshop;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=2453 // 1291
|
||||
XPValues(1)=3219 // 1694
|
||||
XPValues(2)=3401 // 1790
|
||||
XPValues(3)=3502 // 1843
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloatKing_SantasWorkshop_100 extends KFPawn_ZedBloatKing_SantasWorkshop;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=2582 // 1291
|
||||
XPValues(1)=3388 // 1694
|
||||
XPValues(2)=3580 // 1790
|
||||
XPValues(3)=3686 // 1843
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloat_010 extends KFPawn_ZedBloat;
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
XPValues(0)=19 // 17
|
||||
XPValues(1)=24 // 22
|
||||
XPValues(2)=33 // 30
|
||||
XPValues(3)=37 // 34
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloat_020 extends KFPawn_ZedBloat;
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
XPValues(0)=20 // 17
|
||||
XPValues(1)=26 // 22
|
||||
XPValues(2)=36 // 30
|
||||
XPValues(3)=41 // 34
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloat_030 extends KFPawn_ZedBloat;
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
XPValues(0)=22 // 17
|
||||
XPValues(1)=29 // 22
|
||||
XPValues(2)=39 // 30
|
||||
XPValues(3)=44 // 34
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloat_040 extends KFPawn_ZedBloat;
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
XPValues(0)=24 // 17
|
||||
XPValues(1)=31 // 22
|
||||
XPValues(2)=42 // 30
|
||||
XPValues(3)=48 // 34
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloat_050 extends KFPawn_ZedBloat;
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
XPValues(0)=26 // 17
|
||||
XPValues(1)=33 // 22
|
||||
XPValues(2)=45 // 30
|
||||
XPValues(3)=51 // 34
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloat_060 extends KFPawn_ZedBloat;
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
XPValues(0)=27 // 17
|
||||
XPValues(1)=35 // 22
|
||||
XPValues(2)=48 // 30
|
||||
XPValues(3)=54 // 34
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloat_070 extends KFPawn_ZedBloat;
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
XPValues(0)=29 // 17
|
||||
XPValues(1)=37 // 22
|
||||
XPValues(2)=51 // 30
|
||||
XPValues(3)=58 // 34
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloat_080 extends KFPawn_ZedBloat;
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
XPValues(0)=31 // 17
|
||||
XPValues(1)=40 // 22
|
||||
XPValues(2)=54 // 30
|
||||
XPValues(3)=61 // 34
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloat_090 extends KFPawn_ZedBloat;
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
XPValues(0)=32 // 17
|
||||
XPValues(1)=42 // 22
|
||||
XPValues(2)=57 // 30
|
||||
XPValues(3)=65 // 34
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedBloat_100 extends KFPawn_ZedBloat;
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
XPValues(0)=34 // 17
|
||||
XPValues(1)=44 // 22
|
||||
XPValues(2)=60 // 30
|
||||
XPValues(3)=68 // 34
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_AlphaKing_010 extends KFPawn_ZedClot_AlphaKing;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=9 // 8
|
||||
XPValues(1)=12 // 11
|
||||
XPValues(2)=12 // 11
|
||||
XPValues(3)=12 // 11
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_AlphaKing_020 extends KFPawn_ZedClot_AlphaKing;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=10 // 8
|
||||
XPValues(1)=13 // 11
|
||||
XPValues(2)=13 // 11
|
||||
XPValues(3)=13 // 11
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_AlphaKing_030 extends KFPawn_ZedClot_AlphaKing;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=10 // 8
|
||||
XPValues(1)=14 // 11
|
||||
XPValues(2)=14 // 11
|
||||
XPValues(3)=14 // 11
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_AlphaKing_040 extends KFPawn_ZedClot_AlphaKing;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=11 // 8
|
||||
XPValues(1)=15 // 11
|
||||
XPValues(2)=15 // 11
|
||||
XPValues(3)=15 // 11
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_AlphaKing_050 extends KFPawn_ZedClot_AlphaKing;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=12 // 8
|
||||
XPValues(1)=16 // 11
|
||||
XPValues(2)=16 // 11
|
||||
XPValues(3)=16 // 11
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_AlphaKing_060 extends KFPawn_ZedClot_AlphaKing;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=13 // 8
|
||||
XPValues(1)=18 // 11
|
||||
XPValues(2)=18 // 11
|
||||
XPValues(3)=18 // 11
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_AlphaKing_070 extends KFPawn_ZedClot_AlphaKing;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=14 // 8
|
||||
XPValues(1)=19 // 11
|
||||
XPValues(2)=19 // 11
|
||||
XPValues(3)=19 // 11
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_AlphaKing_080 extends KFPawn_ZedClot_AlphaKing;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=14 // 8
|
||||
XPValues(1)=20 // 11
|
||||
XPValues(2)=20 // 11
|
||||
XPValues(3)=20 // 11
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_AlphaKing_090 extends KFPawn_ZedClot_AlphaKing;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=15 // 8
|
||||
XPValues(1)=21 // 11
|
||||
XPValues(2)=21 // 11
|
||||
XPValues(3)=21 // 11
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_AlphaKing_100 extends KFPawn_ZedClot_AlphaKing;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=16 // 8
|
||||
XPValues(1)=22 // 11
|
||||
XPValues(2)=22 // 11
|
||||
XPValues(3)=22 // 11
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_Alpha_010 extends KFPawn_ZedClot;
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
XPValues(0)=9 // 8
|
||||
XPValues(1)=12 // 11
|
||||
XPValues(2)=12 // 11
|
||||
XPValues(3)=12 // 11
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_Alpha_020 extends KFPawn_ZedClot;
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
XPValues(0)=10 // 8
|
||||
XPValues(1)=13 // 11
|
||||
XPValues(2)=13 // 11
|
||||
XPValues(3)=13 // 11
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_Alpha_030 extends KFPawn_ZedClot;
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
XPValues(0)=10 // 8
|
||||
XPValues(1)=14 // 11
|
||||
XPValues(2)=14 // 11
|
||||
XPValues(3)=14 // 11
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_Alpha_040 extends KFPawn_ZedClot;
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
XPValues(0)=11 // 8
|
||||
XPValues(1)=15 // 11
|
||||
XPValues(2)=15 // 11
|
||||
XPValues(3)=15 // 11
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_Alpha_050 extends KFPawn_ZedClot;
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
XPValues(0)=12 // 8
|
||||
XPValues(1)=16 // 11
|
||||
XPValues(2)=16 // 11
|
||||
XPValues(3)=16 // 11
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_Alpha_060 extends KFPawn_ZedClot;
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
XPValues(0)=13 // 8
|
||||
XPValues(1)=18 // 11
|
||||
XPValues(2)=18 // 11
|
||||
XPValues(3)=18 // 11
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_Alpha_070 extends KFPawn_ZedClot;
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
XPValues(0)=14 // 8
|
||||
XPValues(1)=19 // 11
|
||||
XPValues(2)=19 // 11
|
||||
XPValues(3)=19 // 11
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_Alpha_080 extends KFPawn_ZedClot;
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
XPValues(0)=14 // 8
|
||||
XPValues(1)=20 // 11
|
||||
XPValues(2)=20 // 11
|
||||
XPValues(3)=20 // 11
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_Alpha_090 extends KFPawn_ZedClot;
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
XPValues(0)=15 // 8
|
||||
XPValues(1)=21 // 11
|
||||
XPValues(2)=21 // 11
|
||||
XPValues(3)=21 // 11
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_Alpha_100 extends KFPawn_ZedClot;
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
XPValues(0)=16 // 8
|
||||
XPValues(1)=22 // 11
|
||||
XPValues(2)=22 // 11
|
||||
XPValues(3)=22 // 11
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_Cyst_010 extends KFPawn_ZedClot_Cyst;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=9 // 8
|
||||
XPValues(1)=12 // 11
|
||||
XPValues(2)=12 // 11
|
||||
XPValues(3)=12 // 11
|
||||
}
|
||||
|
||||
|
@ -1,11 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_Cyst_020 extends KFPawn_ZedClot_Cyst;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=10 // 8
|
||||
XPValues(1)=13 // 11
|
||||
XPValues(2)=13 // 11
|
||||
XPValues(3)=13 // 11
|
||||
}
|
||||
|
||||
|
@ -1,11 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_Cyst_030 extends KFPawn_ZedClot_Cyst;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=10 // 8
|
||||
XPValues(1)=14 // 11
|
||||
XPValues(2)=14 // 11
|
||||
XPValues(3)=14 // 11
|
||||
}
|
||||
|
||||
|
@ -1,11 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_Cyst_040 extends KFPawn_ZedClot_Cyst;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=11 // 8
|
||||
XPValues(1)=15 // 11
|
||||
XPValues(2)=15 // 11
|
||||
XPValues(3)=15 // 11
|
||||
}
|
||||
|
||||
|
@ -1,11 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_Cyst_050 extends KFPawn_ZedClot_Cyst;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=12 // 8
|
||||
XPValues(1)=16 // 11
|
||||
XPValues(2)=16 // 11
|
||||
XPValues(3)=16 // 11
|
||||
}
|
||||
|
||||
|
@ -1,11 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_Cyst_060 extends KFPawn_ZedClot_Cyst;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=13 // 8
|
||||
XPValues(1)=18 // 11
|
||||
XPValues(2)=18 // 11
|
||||
XPValues(3)=18 // 11
|
||||
}
|
||||
|
||||
|
@ -1,11 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_Cyst_070 extends KFPawn_ZedClot_Cyst;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=14 // 8
|
||||
XPValues(1)=19 // 11
|
||||
XPValues(2)=19 // 11
|
||||
XPValues(3)=19 // 11
|
||||
}
|
||||
|
||||
|
@ -1,11 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_Cyst_080 extends KFPawn_ZedClot_Cyst;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=14 // 8
|
||||
XPValues(1)=20 // 11
|
||||
XPValues(2)=20 // 11
|
||||
XPValues(3)=20 // 11
|
||||
}
|
||||
|
||||
|
@ -1,11 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_Cyst_090 extends KFPawn_ZedClot_Cyst;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=15 // 8
|
||||
XPValues(1)=21 // 11
|
||||
XPValues(2)=21 // 11
|
||||
XPValues(3)=21 // 11
|
||||
}
|
||||
|
||||
|
@ -1,11 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_Cyst_100 extends KFPawn_ZedClot_Cyst;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=16 // 8
|
||||
XPValues(1)=22 // 11
|
||||
XPValues(2)=22 // 11
|
||||
XPValues(3)=22 // 11
|
||||
}
|
||||
|
||||
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_Slasher_010 extends KFPawn_ZedClot_Slasher;
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
XPValues(0)=9 // 8
|
||||
XPValues(1)=12 // 11
|
||||
XPValues(2)=12 // 11
|
||||
XPValues(3)=12 // 11
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_Slasher_020 extends KFPawn_ZedClot_Slasher;
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
XPValues(0)=10 // 8
|
||||
XPValues(1)=13 // 11
|
||||
XPValues(2)=13 // 11
|
||||
XPValues(3)=13 // 11
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_Slasher_030 extends KFPawn_ZedClot_Slasher;
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
XPValues(0)=10 // 8
|
||||
XPValues(1)=14 // 11
|
||||
XPValues(2)=14 // 11
|
||||
XPValues(3)=14 // 11
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_Slasher_040 extends KFPawn_ZedClot_Slasher;
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
XPValues(0)=11 // 8
|
||||
XPValues(1)=15 // 11
|
||||
XPValues(2)=15 // 11
|
||||
XPValues(3)=15 // 11
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_Slasher_050 extends KFPawn_ZedClot_Slasher;
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
XPValues(0)=12 // 8
|
||||
XPValues(1)=16 // 11
|
||||
XPValues(2)=16 // 11
|
||||
XPValues(3)=16 // 11
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_Slasher_060 extends KFPawn_ZedClot_Slasher;
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
XPValues(0)=13 // 8
|
||||
XPValues(1)=18 // 11
|
||||
XPValues(2)=18 // 11
|
||||
XPValues(3)=18 // 11
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_Slasher_070 extends KFPawn_ZedClot_Slasher;
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
XPValues(0)=14 // 8
|
||||
XPValues(1)=19 // 11
|
||||
XPValues(2)=19 // 11
|
||||
XPValues(3)=19 // 11
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_Slasher_080 extends KFPawn_ZedClot_Slasher;
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
XPValues(0)=14 // 8
|
||||
XPValues(1)=20 // 11
|
||||
XPValues(2)=20 // 11
|
||||
XPValues(3)=20 // 11
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_Slasher_090 extends KFPawn_ZedClot_Slasher;
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
XPValues(0)=15 // 8
|
||||
XPValues(1)=21 // 11
|
||||
XPValues(2)=21 // 11
|
||||
XPValues(3)=21 // 11
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedClot_Slasher_100 extends KFPawn_ZedClot_Slasher;
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
XPValues(0)=16 // 8
|
||||
XPValues(1)=22 // 11
|
||||
XPValues(2)=22 // 11
|
||||
XPValues(3)=22 // 11
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedCrawlerKing_010 extends KFPawn_ZedCrawlerKing;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=9 // 8
|
||||
XPValues(1)=11 // 10
|
||||
XPValues(2)=11 // 10
|
||||
XPValues(3)=11 // 10
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
class Proxy_KFPawn_ZedCrawlerKing_020 extends KFPawn_ZedCrawlerKing;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
XPValues(0)=10 // 8
|
||||
XPValues(1)=12 // 10
|
||||
XPValues(2)=12 // 10
|
||||
XPValues(3)=12 // 10
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user