public void RebalanceBosses() { foreach (var enemy in EnemyCollection.MappedObjectReadOnly) { RebalanceBoss(enemy); } EnemyCollection.WriteObjects(Agent.GeneralConfiguration.TempFile); }
public void RandomizeEnemyCollection() { foreach (var enemy in EnemyCollection.MappedObjectReadOnly) { //MutateEnemyAttacks(enemy); RandomizeEnemyStats(enemy); //MutateEnemyElementalAttributes(enemy); MutateEnemyDrops(enemy); } EnemyCollection.WriteObjects(Agent.GeneralConfiguration.TempFile); }
public void ApplyThreeOrbMode() { AssignThreeOrbs(); BuffBoomerangs(); AssignItemDrops(); SetFakeEyeSortId(); RemoveMaldukeOrbs(); DebuffSoloFights(); AreaCollection.WriteObjects(Agent.GeneralConfiguration.TempFile); ItemCollection.WriteObjects(Agent.GeneralConfiguration.TempFile); EnemyCollection.WriteObjects(Agent.GeneralConfiguration.TempFile); CreateThreeOrbTextFile(); }
public void ShuffleBossOrder() { var toSwap = new List <Tuple <int, int> >(); var swapped = new HashSet <int>(); foreach (var bossId in EnemyTierList.BossIds) { //determine new tier rank var swapBossId = bossId; byte newTier = 0; byte originalTier = 0; while (swapBossId == bossId) { originalTier = EnemyTierList.GetBossTier(bossId); newTier = RandomFunctions.GenerateGaussianByte(Agent.Rng, originalTier, Agent.Probabilities.BossShuffleStandardDeviation, (byte)(EnemyTierList.TieredBossIds.Count - 1)); if (newTier < 0) { newTier = 0; } //determine what boss to swap with based on new rank var randNum = Agent.Rng.Next(0, EnemyTierList.TieredBossIds[newTier].Count); swapBossId = EnemyTierList.TieredBossIds[newTier][randNum]; } swapped.Add(bossId); swapped.Add(swapBossId); ScaleEnemies(originalTier, newTier, bossId, swapBossId); toSwap.Add(new Tuple <int, int>(bossId, swapBossId)); } EnemyCollection.WriteObjects(Agent.GeneralConfiguration.TempFile); foreach (var t in toSwap) { EnemyCollection.SwapMappedObjects(Agent.GeneralConfiguration.TempFile, EnemyCollection.GetMappedObject(t.Item1), EnemyCollection.GetMappedObject(t.Item2)); } /* * foreach (var t in toSwap) * { * var bossA = EnemyCollection.GetMappedObject(t.Item1); * var bossB = EnemyCollection.GetMappedObject(t.Item2); * bossA.WriteByte((byte)t.Item2, EnemyOffsets.Id); * bossB.WriteByte((byte)t.Item1, EnemyOffsets.Id); * }*/ }
public void ApplySparsityMode() { //Modify Shopping Lists to have no healing items RemoveHealingItemsFromShoppingLists(); //Repopulate Found Items with more healing items PopulateEventsWithNewItems(); //Increase rate of berry drops for enemies IncreaseEnemiesHealDropRate(); //sets ambrosia and nectar to fully heal MP as well as HP var nectar = ItemCollection.GetMappedObject(NectarId); nectar.Vitality = 999; var ambrosia = ItemCollection.GetMappedObject(AmbrosiaId); ambrosia.Vitality = 999; //commit all changes ItemCollection.WriteObjects(Agent.GeneralConfiguration.TempFile); AreaCollection.WriteObjects(Agent.GeneralConfiguration.TempFile); EnemyCollection.WriteObjects(Agent.GeneralConfiguration.TempFile); }