Files
7d2dXG/Mods/zzz_REBIRTH__Utils/Scripts/MinEvents/MinEventActionInitiateClassesRebirth.cs
Nathaniel Cosford 062dfab2cd Patched
2025-05-30 01:04:40 +09:30

161 lines
11 KiB
C#

public class MinEventActionInitiateClassesRebirth : MinEventActionRemoveBuff
{
private int numItems = 1;
private int numLocation = 0;
private int numQuality = 0;
private string itemName = "";
public override void Execute(MinEventParams _params)
{
if (GameManager.IsDedicatedServer)
{
//Log.Out("MinEventActionInitiateClassesRebirth-Execute IS SERVER");
return;
}
//Log.Out("MinEventActionInitiateClassesRebirth-Execute IS CLIENT");
EntityPlayerLocal player = _params.Self as EntityPlayerLocal;
if (player == null)
{
//Log.Out("MinEventActionInitiateClassesRebirth-Execute NO Player");
return;
}
//Log.Out("MinEventActionInitiateClassesRebirth-Execute SCENARIO: " + RebirthVariables.customScenario);
if (RebirthUtilities.ScenarioSkip())
{
return;
}
if (!(RebirthVariables.customBiomeSpawn == "random") && RebirthVariables.customScenario == "none")
{
//Log.Out("MinEventActionInitiateClassesRebirth-Execute NOT RANDOM AND NO SCENARIO");
/*Log.Out("MinEventActionInitiateClassesRebirth-Execute NOT RANDOM");
Quest starterQuest = QuestClass.CreateQuest("quest_BasicSurvival1");
if (starterQuest != null)
{
player.QuestJournal.AddQuest(starterQuest);
starterQuest.Tracked = true;
player.QuestJournal.TrackedQuest = starterQuest;
player.QuestJournal.RefreshTracked();
}*/
}
else
{
//player.Buffs.AddBuff("spawn_GameStart");
//player.Buffs.AddBuff("spawn_GameStart_companion");
int entityID = player.entityId;
int entityPlayerID = player.entityId;
string strEntity = "";
string strDistance = "";
string strHeight = "";
string strSpawner = "static";
string strDirection = "";
string strSound = "";
float numStartScale = 1;
int minion = -1;
int numEntities = 1;
bool attackPlayer = true;
int checkMaxEntities = 0;
int minMax = 40;
int maxEntities = 20;
int repeat = 1;
int allNames = 1;
bool atPlayerLevel = false;
bool randomRotation = true;
int numRotation = -1;
int isBoss = -1;
int handParticle = -1;
string lootListName = "";
string lootDropClass = "";
int lootDropChance = 1;
string navIcon = "";
string buffList = "";
strDistance = "1";
minion = 1;
attackPlayer = false;
string restrictiveHire = RebirthVariables.customRestrictHires;
string scenario = RebirthVariables.customScenario;
//Log.Out("MinEventActionInitiateClassesRebirth-Execute RANDOM OR SCENARIO: " + scenario);
if (scenario == "none" && !GameUtils.IsPlaytesting())
{
if (restrictiveHire != "nofollowers")
{
allNames = 0;
strEntity = "FuriousRamsayNPCShepherd001_FR,FuriousRamsayNPCPitbull001_FR,FuriousRamsayNPCLabrador001_FR,FuriousRamsayNPCHusky001_FR,FuriousRamsayNPCGoldenRetriever001_FR,FuriousRamsayNPCDoberman001_FR,FuriousRamsayNPCDalmatian001_FR,FuriousRamsayNPCBullTerrier001_FR";
//strSound = "FuriousRamsayDogSense";
strSound = "";
RebirthUtilities.SpawnEntity(entityID, strEntity, numEntities, "", "", strDistance, strSpawner, strHeight, strDirection, numStartScale, numRotation, randomRotation, atPlayerLevel, attackPlayer, entityPlayerID, minion, strSound, maxEntities, checkMaxEntities, minMax, repeat, allNames, isBoss, handParticle, lootListName, lootDropClass, lootDropChance, navIcon, buffList);
}
attackPlayer = true;
strSound = "";
strDistance = "1";
minion = 0;
allNames = 1;
strDistance = "30";
strEntity = "zombieBoe";
RebirthUtilities.SpawnEntity(entityID, strEntity, numEntities, "", "", strDistance, strSpawner, strHeight, strDirection, numStartScale, numRotation, randomRotation, atPlayerLevel, attackPlayer, entityPlayerID, minion, strSound, maxEntities, checkMaxEntities, minMax, repeat, allNames, isBoss, handParticle, lootListName, lootDropClass, lootDropChance, navIcon, buffList);
strEntity = "zombieBoe";
RebirthUtilities.SpawnEntity(entityID, strEntity, numEntities, "", "", strDistance, strSpawner, strHeight, strDirection, numStartScale, numRotation, randomRotation, atPlayerLevel, attackPlayer, entityPlayerID, minion, strSound, maxEntities, checkMaxEntities, minMax, repeat, allNames, isBoss, handParticle, lootListName, lootDropClass, lootDropChance, navIcon, buffList);
strEntity = "zombieJoe";
RebirthUtilities.SpawnEntity(entityID, strEntity, numEntities, "", "", strDistance, strSpawner, strHeight, strDirection, numStartScale, numRotation, randomRotation, atPlayerLevel, attackPlayer, entityPlayerID, minion, strSound, maxEntities, checkMaxEntities, minMax, repeat, allNames, isBoss, handParticle, lootListName, lootDropClass, lootDropChance, navIcon, buffList);
strEntity = "zombieArlene";
RebirthUtilities.SpawnEntity(entityID, strEntity, numEntities, "", "", strDistance, strSpawner, strHeight, strDirection, numStartScale, numRotation, randomRotation, atPlayerLevel, attackPlayer, entityPlayerID, minion, strSound, maxEntities, checkMaxEntities, minMax, repeat, allNames, isBoss, handParticle, lootListName, lootDropClass, lootDropChance, navIcon, buffList);
strEntity = "zombieDarlene";
RebirthUtilities.SpawnEntity(entityID, strEntity, numEntities, "", "", strDistance, strSpawner, strHeight, strDirection, numStartScale, numRotation, randomRotation, atPlayerLevel, attackPlayer, entityPlayerID, minion, strSound, maxEntities, checkMaxEntities, minMax, repeat, allNames, isBoss, handParticle, lootListName, lootDropClass, lootDropChance, navIcon, buffList);
strEntity = "zombieMarlene";
RebirthUtilities.SpawnEntity(entityID, strEntity, numEntities, "", "", strDistance, strSpawner, strHeight, strDirection, numStartScale, numRotation, randomRotation, atPlayerLevel, attackPlayer, entityPlayerID, minion, strSound, maxEntities, checkMaxEntities, minMax, repeat, allNames, isBoss, handParticle, lootListName, lootDropClass, lootDropChance, navIcon, buffList);
strEntity = "zombieYo";
RebirthUtilities.SpawnEntity(entityID, strEntity, numEntities, "", "", strDistance, strSpawner, strHeight, strDirection, numStartScale, numRotation, randomRotation, atPlayerLevel, attackPlayer, entityPlayerID, minion, strSound, maxEntities, checkMaxEntities, minMax, repeat, allNames, isBoss, handParticle, lootListName, lootDropClass, lootDropChance, navIcon, buffList);
strEntity = "zombieSteve";
RebirthUtilities.SpawnEntity(entityID, strEntity, numEntities, "", "", strDistance, strSpawner, strHeight, strDirection, numStartScale, numRotation, randomRotation, atPlayerLevel, attackPlayer, entityPlayerID, minion, strSound, maxEntities, checkMaxEntities, minMax, repeat, allNames, isBoss, handParticle, lootListName, lootDropClass, lootDropChance, navIcon, buffList);
strEntity = "zombieBusinessMan";
RebirthUtilities.SpawnEntity(entityID, strEntity, numEntities, "", "", strDistance, strSpawner, strHeight, strDirection, numStartScale, numRotation, randomRotation, atPlayerLevel, attackPlayer, entityPlayerID, minion, strSound, maxEntities, checkMaxEntities, minMax, repeat, allNames, isBoss, handParticle, lootListName, lootDropClass, lootDropChance, navIcon, buffList);
strDistance = "25";
strEntity = "FuriousRamsayWindTornado";
RebirthUtilities.SpawnEntity(entityID, strEntity, numEntities, "", "", strDistance, strSpawner, strHeight, strDirection, numStartScale, numRotation, randomRotation, atPlayerLevel, attackPlayer, entityPlayerID, minion, strSound, maxEntities, checkMaxEntities, minMax, repeat, allNames, isBoss, handParticle, lootListName, lootDropClass, lootDropChance, navIcon, buffList);
strDistance = "30";
RebirthUtilities.SpawnEntity(entityID, strEntity, numEntities, "", "", strDistance, strSpawner, strHeight, strDirection, numStartScale, numRotation, randomRotation, atPlayerLevel, attackPlayer, entityPlayerID, minion, strSound, maxEntities, checkMaxEntities, minMax, repeat, allNames, isBoss, handParticle, lootListName, lootDropClass, lootDropChance, navIcon, buffList);
strDistance = "35";
RebirthUtilities.SpawnEntity(entityID, strEntity, numEntities, "", "", strDistance, strSpawner, strHeight, strDirection, numStartScale, numRotation, randomRotation, atPlayerLevel, attackPlayer, entityPlayerID, minion, strSound, maxEntities, checkMaxEntities, minMax, repeat, allNames, isBoss, handParticle, lootListName, lootDropClass, lootDropChance, navIcon, buffList);
strDistance = "40";
RebirthUtilities.SpawnEntity(entityID, strEntity, numEntities, "", "", strDistance, strSpawner, strHeight, strDirection, numStartScale, numRotation, randomRotation, atPlayerLevel, attackPlayer, entityPlayerID, minion, strSound, maxEntities, checkMaxEntities, minMax, repeat, allNames, isBoss, handParticle, lootListName, lootDropClass, lootDropChance, navIcon, buffList);
}
}
ProgressionValue progressionValue;
foreach (var classKey in RebirthVariables.localClasses.Keys)
{
RebirthVariables.localVariables["$varFuriousRamsay" + classKey + "PercUnit"] = 1f;
player.Buffs.SetCustomVar("$varFuriousRamsay" + classKey + "PercUnit", 1f);
//Log.Out("MinEventActionInitiateClassesRebirth-Execute $varFuriousRamsay" + classKey + "PercUnit: " + RebirthVariables.localVariables["$varFuriousRamsay" + classKey + "PercUnit"]);
progressionValue = player.Progression.GetProgressionValue("furiousramsayatt" + classKey.ToLower());
progressionValue.Level = 1;
RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + classKey + "PercUnit", true);
}
progressionValue = player.Progression.GetProgressionValue("FuriousRamsayPerkChoiceIsMine");
progressionValue.Level = 1;
progressionValue = player.Progression.GetProgressionValue("furiousramsayattachievements");
progressionValue.Level = 1;
}
}