Skip to content

Commit

Permalink
Update 1.3
Browse files Browse the repository at this point in the history
  • Loading branch information
mend-dev committed Jul 14, 2023
1 parent 5412c04 commit ca32d38
Show file tree
Hide file tree
Showing 11 changed files with 257 additions and 81 deletions.
14 changes: 7 additions & 7 deletions Bosses/BloonariusConfig.cs
Expand Up @@ -11,10 +11,10 @@ public static class BloonariusConfig {

// General Stats
public static readonly float baseMaxHealth = 7500f;
public static readonly float levelMaxHealthMultiplier = 2f;
public static readonly float levelMaxHealthMultiplier = 3f;

public static readonly float baseSpeed = 0.8f;
public static readonly float levelSpeedAddition = 0f;
public static readonly float baseSpeed = 1.2f;
public static readonly float levelSpeedAddition = 0.1f;

// Difficulty Multiplier
public static readonly Dictionary<string, float> difficultyMultipliers = new Dictionary<string, float>() {
Expand All @@ -27,7 +27,7 @@ public static class BloonariusConfig {

// Strong Spawn
public static readonly int baseStrongSpawnCount = 30;
public static readonly float levelStrongSpawnCountAddition = -5;
public static readonly float levelStrongSpawnCountAddition = -4;
public static readonly int baseStrongSpawnDistAhead = 40;
public static readonly float levelStrongSpawnDistAheadAddition = 0;
public static readonly List<string> strongSpawnBloons = new List<string>() {
Expand All @@ -41,7 +41,7 @@ public static class BloonariusConfig {

// Weak Spawn
public static readonly int baseWeakSpawnCount = 30;
public static readonly float levelWeakSpawnCountAddition = -10;
public static readonly float levelWeakSpawnCountAddition = -5;
public static readonly float baseWeakSpawnTrackMax = 0.4f;
public static readonly float levelWeakSpawnTrackMaxAddition = 0;
public static readonly float baseWeakSpawnTrackMin = 0.1f;
Expand All @@ -56,8 +56,8 @@ public static class BloonariusConfig {
};

// Bloon Bleed
public static readonly int baseBleedSpawnCount = 10;
public static readonly float levelBleedSpawnCountAddition = 0;
public static readonly int baseBleedSpawnCount = 15;
public static readonly float levelBleedSpawnCountAddition = 5;
public static readonly float baseBleedSpawnTrackMax = 0.4f;
public static readonly float levelBleedSpawnTrackMaxAddition = 0;
public static readonly float baseBLeedSpawnTrackMin = 0.1f;
Expand Down
104 changes: 104 additions & 0 deletions Bosses/LychConfig.cs
@@ -0,0 +1,104 @@
using BTD_Mod_Helper.Extensions;
using Il2CppAssets.Scripts.Models.Bloons;
using Il2CppAssets.Scripts.Models.Bloons.Behaviors;
using System.Collections.Generic;
using UnityEngine;

namespace BTD6Rogue;

public static class LychConfig {

// General Stats
public static readonly float baseMaxHealth = 5000f;
public static readonly float levelMaxHealthMultiplier = 2f;

public static readonly float baseSpeed = 1.2f;
public static readonly float levelSpeedAddition = 0.1f;

// Difficulty Multiplier
public static readonly Dictionary<string, float> difficultyMultipliers = new Dictionary<string, float>() {
["Poppable"] = 0.7f,
["Easy"] = 0.85f,
["Medium"] = 1f,
["Hard"] = 1.15f,
["Impoppable"] = 1.3f
};

// Time Trigger Model
public static readonly float baseTimeInterval = 12f;
public static readonly float levelTimeIntervalAddition = -0.5f;

// Absorb Tower Buffs Action Model
public static readonly float baseHealPerBuff = 0;
public static readonly float levelHealPerBuff = 0;
public static readonly float baseHealPercentPerBuff = 0.02f;
public static readonly float levelHealPercentPerBuff = 0;
public static readonly float baseAbsorbBuffRadius = 9999;
public static readonly float levelAbsorbBuffRadius = 0;
public static readonly float baseTowerFreezeDuration = 5;
public static readonly float levelTowerFreezeDuration = 0;

// Heal on Tower Sell Action Model
public static readonly float baseHealAmount = 0;
public static readonly float levelHealAmount = 0;
public static readonly float baseHealPercentTier = 0.01f;
public static readonly float levelHealPercentTier = 0;

// Reanimate Moabs Model
public static readonly float baseMaxRbe = 5000;
public static readonly float levelMaxRbe = 0;
public static readonly float basePauseMovementDuration = 1;
public static readonly float levelPauseMovementDuration = 0;
public static readonly float baseReanimatedSpeedMultiplier = 1.5f;
public static readonly float levelReanimatedSpeedMutliplier = 0;
public static readonly float baseReanimatedHealthMultiplier = 3;
public static readonly float levelReanimatedHealthMultiplier = 0;
public static readonly float baseTimeUntilBloonsMove = 1;
public static readonly float levelTimeUntilBloonsMove = 0;

// Speed Down Model
public static readonly float baseSpeedDownPercent = 0.5f;
public static readonly float levelSpeedDownPercentAddition = 0;

public static void ApplyLychSettings(BloonModel bloonModel, string difficulty, int level) {
float multiplier = difficultyMultipliers[difficulty];

bloonModel.maxHealth = baseMaxHealth * level * multiplier;
if (level == 0) { bloonModel.maxHealth = baseMaxHealth * multiplier; }

bloonModel.leakDamage = 99999f;
bloonModel.speed = (baseSpeed + (levelSpeedAddition * level)) * multiplier;
bloonModel.Speed = (baseSpeed + (levelSpeedAddition * level)) * multiplier;

foreach (TimeTriggerModel model in bloonModel.GetBehaviors<TimeTriggerModel>()) {
model.interval = (baseTimeInterval + (levelTimeIntervalAddition * level)) * multiplier;
}

foreach (AbsorbTowerBuffsActionModel model in bloonModel.GetBehaviors<AbsorbTowerBuffsActionModel>()) {
model.healPerBuff = Mathf.FloorToInt((baseHealPerBuff + (levelHealPerBuff * level)) * multiplier);
model.healPercentPerBuff = (baseHealPercentPerBuff + (levelHealPercentPerBuff * level)) * multiplier;
model.radius = (baseAbsorbBuffRadius + (levelAbsorbBuffRadius * level)) * multiplier;
model.towerFreezeDuration = (baseTowerFreezeDuration + (levelTowerFreezeDuration * level)) * multiplier;
}

foreach (HealOnTowerSellActionModel model in bloonModel.GetBehaviors<HealOnTowerSellActionModel>()) {
model.healAmount = Mathf.FloorToInt((baseHealAmount + (levelHealAmount * level)) * multiplier);
model.healPercentForHighestTier = (baseHealPercentTier + (levelHealPercentTier * level)) * multiplier;
}

foreach (ReanimateMoabsActionModel model in bloonModel.GetBehaviors<ReanimateMoabsActionModel>()) {
model.maxRbe = Mathf.FloorToInt((baseMaxRbe + (levelMaxRbe * level)) * multiplier);
model.pauseMovementDuration = (basePauseMovementDuration + (levelPauseMovementDuration * level)) * multiplier;
model.speedMultiplier = (baseReanimatedSpeedMultiplier + (levelReanimatedSpeedMutliplier * level)) * multiplier;
model.healthMultiplier = (baseReanimatedHealthMultiplier + (levelReanimatedHealthMultiplier * level)) * multiplier;
model.miniMeModelId = "BTD6Rogue-" + difficulty + "RogueMiniLych" + (level + 1);
model.timeUntilBloonsMove = (baseTimeUntilBloonsMove + (levelTimeUntilBloonsMove * level)) * multiplier;
}

foreach (SetSpeedPercentActionModel model in bloonModel.GetBehaviors<SetSpeedPercentActionModel>()) {
if (model.actionId == "SpeedDown") {
model.percent = (baseSpeedDownPercent + (levelSpeedDownPercentAddition * level)) * multiplier;
}
}
}
}
53 changes: 53 additions & 0 deletions Bosses/MiniLychConfig.cs
@@ -0,0 +1,53 @@
using Il2CppAssets.Scripts.Models.Bloons.Behaviors;
using Il2CppAssets.Scripts.Models.Bloons;
using System.Collections.Generic;
using BTD_Mod_Helper.Extensions;
using UnityEngine;

namespace BTD6Rogue;

public static class MiniLychConfig {

// General Stats
public static readonly float baseMaxHealth = 400;
public static readonly float levelMaxHealthMultiplier = 2f;

public static readonly float baseSpeed = 10;
public static readonly float levelSpeedAddition = 0f;

// Difficulty Multiplier
public static readonly Dictionary<string, float> difficultyMultipliers = new Dictionary<string, float>() {
["Poppable"] = 0.7f,
["Easy"] = 0.85f,
["Medium"] = 1f,
["Hard"] = 1.15f,
["Impoppable"] = 1.3f
};

// Time Trigger Model
public static readonly float baseTimeInterval = 10;
public static readonly float levelTimeIntervalAddition = 0;

// Drain Lives Model
public static readonly float baseDrainLives = 1;
public static readonly float levelDrainLives = 0;

public static void ApplyMiniLychSettings(BloonModel bloonModel, string difficulty, int level) {
float multiplier = difficultyMultipliers[difficulty];

bloonModel.maxHealth = baseMaxHealth * level * multiplier;
if (level == 0) { bloonModel.maxHealth = baseMaxHealth * multiplier; }

bloonModel.leakDamage = 99999f;
bloonModel.speed = (baseSpeed + (levelSpeedAddition * level)) * multiplier;
bloonModel.Speed = (baseSpeed + (levelSpeedAddition * level)) * multiplier;

foreach (TimeTriggerModel model in bloonModel.GetBehaviors<TimeTriggerModel>()) {
model.interval = (baseTimeInterval + (levelTimeIntervalAddition * level)) * multiplier;
}

foreach (DrainLivesActionModel model in bloonModel.GetBehaviors<DrainLivesActionModel>()) {
model.livesDrained = Mathf.FloorToInt((baseDrainLives + (levelDrainLives * level)) * multiplier);
}
}
}
85 changes: 31 additions & 54 deletions Bosses/RogueLych.cs
@@ -1,58 +1,35 @@
using BTD_Mod_Helper;
using BTD_Mod_Helper.Api.Bloons;
using BTD_Mod_Helper.Api.Enums;
using BTD_Mod_Helper.Extensions;
using Il2CppAssets.Scripts.Models;
using BTD_Mod_Helper.Api.Bloons;
using Il2CppAssets.Scripts.Models.Bloons;
using Il2CppAssets.Scripts.Models.Bloons.Behaviors;
using Il2CppNewtonsoft.Json;

namespace BTD6Rogue;

public class RogueLych1 : ModBloon {
public override string BaseBloon => "Lych1";

public override void ModifyBaseBloonModel(BloonModel bloonModel) {
bloonModel.maxHealth = 12500;
}
}

public class RogueLych2 : ModBloon {
public override string BaseBloon => "Lych1";

public override void ModifyBaseBloonModel(BloonModel bloonModel) {
bloonModel.maxHealth = 25000;
}
}

public class RogueLych3 : ModBloon {
public override string BaseBloon => "Lych2";

public override void ModifyBaseBloonModel(BloonModel bloonModel) {
bloonModel.maxHealth = 50000;
}
}

public class RogueLych4 : ModBloon {
public override string BaseBloon => "Lych3";

public override void ModifyBaseBloonModel(BloonModel bloonModel) {
bloonModel.maxHealth = 100000;
}
}

public class RogueLych5 : ModBloon {
public override string BaseBloon => "Lych4";

public override void ModifyBaseBloonModel(BloonModel bloonModel) {
bloonModel.maxHealth = 200000;
}
}

public class RogueLych6 : ModBloon {
public override string BaseBloon => "Lych5";

public override void ModifyBaseBloonModel(BloonModel bloonModel) {
bloonModel.maxHealth = 400000;
}
}
public class PoppableRogueLych1 : ModBloon { public override string BaseBloon => "Lych1"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { LychConfig.ApplyLychSettings(bloonModel, "Poppable", 0); } }
public class PoppableRogueLych2 : ModBloon { public override string BaseBloon => "Lych1"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { LychConfig.ApplyLychSettings(bloonModel, "Poppable", 1); } }
public class PoppableRogueLych3 : ModBloon { public override string BaseBloon => "Lych2"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { LychConfig.ApplyLychSettings(bloonModel, "Poppable", 2); } }
public class PoppableRogueLych4 : ModBloon { public override string BaseBloon => "Lych3"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { LychConfig.ApplyLychSettings(bloonModel, "Poppable", 3); } }
public class PoppableRogueLych5 : ModBloon { public override string BaseBloon => "Lych4"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { LychConfig.ApplyLychSettings(bloonModel, "Poppable", 4); } }
public class PoppableRogueLych6 : ModBloon { public override string BaseBloon => "Lych5"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { LychConfig.ApplyLychSettings(bloonModel, "Poppable", 5); } }
public class EasyRogueLych1 : ModBloon { public override string BaseBloon => "Lych1"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { LychConfig.ApplyLychSettings(bloonModel, "Easy", 0); } }
public class EasyRogueLych2 : ModBloon { public override string BaseBloon => "Lych1"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { LychConfig.ApplyLychSettings(bloonModel, "Easy", 1); } }
public class EasyRogueLych3 : ModBloon { public override string BaseBloon => "Lych2"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { LychConfig.ApplyLychSettings(bloonModel, "Easy", 2); } }
public class EasyRogueLych4 : ModBloon { public override string BaseBloon => "Lych3"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { LychConfig.ApplyLychSettings(bloonModel, "Easy", 3); } }
public class EasyRogueLych5 : ModBloon { public override string BaseBloon => "Lych4"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { LychConfig.ApplyLychSettings(bloonModel, "Easy", 4); } }
public class EasyRogueLych6 : ModBloon { public override string BaseBloon => "Lych5"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { LychConfig.ApplyLychSettings(bloonModel, "Easy", 5); } }
public class MediumRogueLych1 : ModBloon { public override string BaseBloon => "Lych1"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { LychConfig.ApplyLychSettings(bloonModel, "Medium", 0); } }
public class MediumRogueLych2 : ModBloon { public override string BaseBloon => "Lych1"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { LychConfig.ApplyLychSettings(bloonModel, "Medium", 1); } }
public class MediumRogueLych3 : ModBloon { public override string BaseBloon => "Lych2"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { LychConfig.ApplyLychSettings(bloonModel, "Medium", 2); } }
public class MediumRogueLych4 : ModBloon { public override string BaseBloon => "Lych3"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { LychConfig.ApplyLychSettings(bloonModel, "Medium", 3); } }
public class MediumRogueLych5 : ModBloon { public override string BaseBloon => "Lych4"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { LychConfig.ApplyLychSettings(bloonModel, "Medium", 4); } }
public class MediumRogueLych6 : ModBloon { public override string BaseBloon => "Lych5"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { LychConfig.ApplyLychSettings(bloonModel, "Medium", 5); } }
public class HardRogueLych1 : ModBloon { public override string BaseBloon => "Lych1"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { LychConfig.ApplyLychSettings(bloonModel, "Hard", 0); } }
public class HardRogueLych2 : ModBloon { public override string BaseBloon => "Lych1"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { LychConfig.ApplyLychSettings(bloonModel, "Hard", 1); } }
public class HardRogueLych3 : ModBloon { public override string BaseBloon => "Lych2"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { LychConfig.ApplyLychSettings(bloonModel, "Hard", 2); } }
public class HardRogueLych4 : ModBloon { public override string BaseBloon => "Lych3"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { LychConfig.ApplyLychSettings(bloonModel, "Hard", 3); } }
public class HardRogueLych5 : ModBloon { public override string BaseBloon => "Lych4"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { LychConfig.ApplyLychSettings(bloonModel, "Hard", 4); } }
public class HardRogueLych6 : ModBloon { public override string BaseBloon => "Lych5"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { LychConfig.ApplyLychSettings(bloonModel, "Hard", 5); } }
public class ImpoppableRogueLych1 : ModBloon { public override string BaseBloon => "Lych1"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { LychConfig.ApplyLychSettings(bloonModel, "Impoppable", 0); } }
public class ImpoppableRogueLych2 : ModBloon { public override string BaseBloon => "Lych1"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { LychConfig.ApplyLychSettings(bloonModel, "Impoppable", 1); } }
public class ImpoppableRogueLych3 : ModBloon { public override string BaseBloon => "Lych2"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { LychConfig.ApplyLychSettings(bloonModel, "Impoppable", 2); } }
public class ImpoppableRogueLych4 : ModBloon { public override string BaseBloon => "Lych3"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { LychConfig.ApplyLychSettings(bloonModel, "Impoppable", 3); } }
public class ImpoppableRogueLych5 : ModBloon { public override string BaseBloon => "Lych4"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { LychConfig.ApplyLychSettings(bloonModel, "Impoppable", 4); } }
public class ImpoppableRogueLych6 : ModBloon { public override string BaseBloon => "Lych5"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { LychConfig.ApplyLychSettings(bloonModel, "Impoppable", 5); } }

0 comments on commit ca32d38

Please sign in to comment.