Skip to content

Commit

Permalink
Vesrion 1.4.0
Browse files Browse the repository at this point in the history
  • Loading branch information
mend-dev committed Jul 22, 2023
1 parent ca32d38 commit ff3c6ed
Show file tree
Hide file tree
Showing 38 changed files with 660 additions and 316 deletions.
171 changes: 123 additions & 48 deletions BTD6Rogue.cs

Large diffs are not rendered by default.

5 changes: 4 additions & 1 deletion BTD6Rogue.csproj
Expand Up @@ -10,7 +10,10 @@
<DebugType>embedded</DebugType>
</PropertyGroup>
<ItemGroup>
<Folder Include="Artifacts\" />
<Folder Include="Artifacts\Bloons\" />
<Folder Include="Bloons\" />
<Folder Include="Bosses\Blastapopoulos\" />
<Folder Include="Bosses\Phayze\" />
</ItemGroup>

<Import Project="..\btd6.targets" />
Expand Down
Expand Up @@ -5,19 +5,21 @@
using BTD_Mod_Helper.Api.Enums;
using UnityEngine;

namespace BTD6Rogue;
namespace BTD6Rogue.Bosses.Bloonarius;

public static class BloonariusConfig {
public static class BloonariusConfig
{

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

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>() {
public static readonly Dictionary<string, float> difficultyMultipliers = new Dictionary<string, float>()
{
["Poppable"] = 0.7f,
["Easy"] = 0.85f,
["Medium"] = 1f,
Expand Down Expand Up @@ -71,31 +73,38 @@ public static class BloonariusConfig {
BloonType.Ceramic
};

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

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

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

foreach (SpawnBloonsActionModel model in bloonModel.GetBehaviors<SpawnBloonsActionModel>()) {
if (model.actionId == "StrongSpawn") {
foreach (SpawnBloonsActionModel model in bloonModel.GetBehaviors<SpawnBloonsActionModel>())
{
if (model.actionId == "StrongSpawn")
{
model.bloonType = strongSpawnBloons[level];
model.spawnCount = Mathf.FloorToInt((baseStrongSpawnCount + (levelStrongSpawnCountAddition * level)) * multiplier);
model.spawnDistAhead = (baseStrongSpawnDistAhead + (levelStrongSpawnDistAheadAddition * level)) * multiplier;
} else if (model.actionId == "WeakSpawn") {
model.spawnCount = Mathf.FloorToInt((baseStrongSpawnCount + levelStrongSpawnCountAddition * level) * multiplier);
model.spawnDistAhead = (baseStrongSpawnDistAhead + levelStrongSpawnDistAheadAddition * level) * multiplier;
}
else if (model.actionId == "WeakSpawn")
{
model.bloonType = weakSpawnBloons[level];
model.spawnCount = Mathf.FloorToInt((baseWeakSpawnCount + (levelWeakSpawnCountAddition * level)) * multiplier);
model.spawnTrackMax = (baseWeakSpawnTrackMax + (levelWeakSpawnTrackMaxAddition * level)) * multiplier;
model.spawnTrackMin = (baseWeakSpawnTrackMin + (levelWeakSpawnTrackMinAddition * level)) * multiplier;
} else if (model.actionId == "WeakerSpawn") {
model.spawnCount = Mathf.FloorToInt((baseWeakSpawnCount + levelWeakSpawnCountAddition * level) * multiplier);
model.spawnTrackMax = (baseWeakSpawnTrackMax + levelWeakSpawnTrackMaxAddition * level) * multiplier;
model.spawnTrackMin = (baseWeakSpawnTrackMin + levelWeakSpawnTrackMinAddition * level) * multiplier;
}
else if (model.actionId == "WeakerSpawn")
{
model.bloonType = bleedSpawnBloons[level];
model.spawnCount = Mathf.FloorToInt((baseBleedSpawnCount + (levelBleedSpawnCountAddition * level)) * multiplier);
model.spawnTrackMax = (baseBleedSpawnTrackMax + (levelBleedSpawnTrackMaxAddition * level)) * multiplier;
model.spawnTrackMin = (baseBLeedSpawnTrackMin + (levelBleedSpawnTrackMinAddition * level)) * multiplier;
model.spawnCount = Mathf.FloorToInt((baseBleedSpawnCount + levelBleedSpawnCountAddition * level) * multiplier);
model.spawnTrackMax = (baseBleedSpawnTrackMax + levelBleedSpawnTrackMaxAddition * level) * multiplier;
model.spawnTrackMin = (baseBLeedSpawnTrackMin + levelBleedSpawnTrackMinAddition * level) * multiplier;
}
}

Expand Down
@@ -1,7 +1,7 @@
using BTD_Mod_Helper.Api.Bloons;
using Il2CppAssets.Scripts.Models.Bloons;

namespace BTD6Rogue;
namespace BTD6Rogue.Bosses.Bloonarius;

public class PoppableRogueBloonarius1 : ModBloon { public override string BaseBloon => "Bloonarius1"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { BloonariusConfig.ApplyBloonariusSettings(bloonModel, "Poppable", 0); } }
public class PoppableRogueBloonarius2 : ModBloon { public override string BaseBloon => "Bloonarius1"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { BloonariusConfig.ApplyBloonariusSettings(bloonModel, "Poppable", 1); } }
Expand Down
37 changes: 37 additions & 0 deletions Bosses/Dreadbloon/DreadRockConfig.cs
@@ -0,0 +1,37 @@
using Il2CppAssets.Scripts.Models.Bloons;
using System.Collections.Generic;

namespace BTD6Rogue;

public static class DreadRockConfig {

// General Stats
public static readonly float baseMaxHealth = 10f;
public static readonly float levelMaxHealthMultiplier = 1.5f;

public static readonly float baseSpeed = 0.5f;
public static readonly float levelSpeedAddition = 0.25f;

public static readonly float baseLeakDamage = 25;
public static readonly float levelLeakDamageAddition = 0;

// 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
};

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

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

bloonModel.leakDamage = (baseLeakDamage + levelLeakDamageAddition * level) * multiplier; ;
bloonModel.speed = (baseSpeed + levelSpeedAddition * level) * multiplier;
bloonModel.Speed = (baseSpeed + levelSpeedAddition * level) * multiplier;
}
}
71 changes: 71 additions & 0 deletions Bosses/Dreadbloon/DreadbloonConfig.cs
@@ -0,0 +1,71 @@
using BTD_Mod_Helper.Extensions;
using Il2CppAssets.Scripts.Models.Bloons;
using Il2CppAssets.Scripts.Models.Bloons.Behaviors.Actions;
using Il2CppAssets.Scripts.Models.Bloons.Behaviors;
using System.Collections.Generic;
using UnityEngine;

namespace BTD6Rogue;

public static class DreadbloonConfig {

// General Stats
public static readonly float baseMaxHealth = 250f;
public static readonly float levelMaxHealthMultiplier = 1.5f;

public static readonly float baseSpeed = 1;
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
};

//
public static readonly float baseDamageReduction = 0.5f;
public static readonly float levelDamageReductionAddition = 0;

//
public static readonly float baseArmorAmount = 250;
public static readonly float levelArmorAmountAddition = 0;
public static readonly float baseSpeedMultiplier = 1f;
public static readonly float levelSpeedMultiplierAddition = 0;

//
public static readonly float baseInitialSpawnSize = 5;
public static readonly float levelInitialSpawnSizeAddition = 0;
public static readonly float baseTimeBetweenSpawns = 10;
public static readonly float levelTimeBetweenSpawnsAddition = 0;

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

bloonModel.maxHealth = baseMaxHealth * (levelMaxHealthMultiplier * 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 (DamageReductionModel model in bloonModel.GetBehaviors<DamageReductionModel>()) {
model.amount = 0.5f;
}

foreach (GenerateArmourActionModel model in bloonModel.GetBehaviors<GenerateArmourActionModel>()) {
model.amount = (baseArmorAmount + levelArmorAmountAddition * level) * multiplier;
model.speedMultiplier = (levelArmorAmountAddition + levelSpeedMultiplierAddition * level) * multiplier;
}

foreach (SpawnBloonsUntilArmourBreaksActionModel model in bloonModel.GetBehaviors<SpawnBloonsUntilArmourBreaksActionModel>()) {
model.bloonType = "BTD6Rogue-" + difficulty + "RogueDreadRock" + (level + 1);
model.initialSpawnPackSize = Mathf.FloorToInt((baseInitialSpawnSize + levelInitialSpawnSizeAddition * level) * multiplier);
model.timeBetweenSpawns = (baseTimeBetweenSpawns + levelTimeBetweenSpawnsAddition * level) * multiplier;
}

bloonModel.RemoveTag("Rock");
}
}
35 changes: 35 additions & 0 deletions Bosses/Dreadbloon/RogueDreadRock.cs
@@ -0,0 +1,35 @@
using BTD_Mod_Helper.Api.Bloons;
using Il2CppAssets.Scripts.Models.Bloons;

namespace BTD6Rogue.Bosses.Dreadbloon;

public class PoppableRogueDreadRock1 : ModBloon { public override string BaseBloon => "DreadRockBloonStandard1"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { DreadRockConfig.ApplyDreadRockSettings(bloonModel, "Poppable", 0); } }
public class PoppableRogueDreadRock2 : ModBloon { public override string BaseBloon => "DreadRockBloonStandard1"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { DreadRockConfig.ApplyDreadRockSettings(bloonModel, "Poppable", 1); } }
public class PoppableRogueDreadRock3 : ModBloon { public override string BaseBloon => "DreadRockBloonStandard2"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { DreadRockConfig.ApplyDreadRockSettings(bloonModel, "Poppable", 2); } }
public class PoppableRogueDreadRock4 : ModBloon { public override string BaseBloon => "DreadRockBloonStandard3"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { DreadRockConfig.ApplyDreadRockSettings(bloonModel, "Poppable", 3); } }
public class PoppableRogueDreadRock5 : ModBloon { public override string BaseBloon => "DreadRockBloonStandard4"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { DreadRockConfig.ApplyDreadRockSettings(bloonModel, "Poppable", 4); } }
public class PoppableRogueDreadRock6 : ModBloon { public override string BaseBloon => "DreadRockBloonStandard5"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { DreadRockConfig.ApplyDreadRockSettings(bloonModel, "Poppable", 5); } }
public class EasyRogueDreadRock1 : ModBloon { public override string BaseBloon => "DreadRockBloonStandard1"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { DreadRockConfig.ApplyDreadRockSettings(bloonModel, "Easy", 0); } }
public class EasyRogueDreadRock2 : ModBloon { public override string BaseBloon => "DreadRockBloonStandard1"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { DreadRockConfig.ApplyDreadRockSettings(bloonModel, "Easy", 1); } }
public class EasyRogueDreadRock3 : ModBloon { public override string BaseBloon => "DreadRockBloonStandard2"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { DreadRockConfig.ApplyDreadRockSettings(bloonModel, "Easy", 2); } }
public class EasyRogueDreadRock4 : ModBloon { public override string BaseBloon => "DreadRockBloonStandard3"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { DreadRockConfig.ApplyDreadRockSettings(bloonModel, "Easy", 3); } }
public class EasyRogueDreadRock5 : ModBloon { public override string BaseBloon => "DreadRockBloonStandard4"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { DreadRockConfig.ApplyDreadRockSettings(bloonModel, "Easy", 4); } }
public class EasyRogueDreadRock6 : ModBloon { public override string BaseBloon => "DreadRockBloonStandard5"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { DreadRockConfig.ApplyDreadRockSettings(bloonModel, "Easy", 5); } }
public class MediumRogueDreadRock1 : ModBloon { public override string BaseBloon => "DreadRockBloonStandard1"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { DreadRockConfig.ApplyDreadRockSettings(bloonModel, "Medium", 0); } }
public class MediumRogueDreadRock2 : ModBloon { public override string BaseBloon => "DreadRockBloonStandard1"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { DreadRockConfig.ApplyDreadRockSettings(bloonModel, "Medium", 1); } }
public class MediumRogueDreadRock3 : ModBloon { public override string BaseBloon => "DreadRockBloonStandard2"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { DreadRockConfig.ApplyDreadRockSettings(bloonModel, "Medium", 2); } }
public class MediumRogueDreadRock4 : ModBloon { public override string BaseBloon => "DreadRockBloonStandard3"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { DreadRockConfig.ApplyDreadRockSettings(bloonModel, "Medium", 3); } }
public class MediumRogueDreadRock5 : ModBloon { public override string BaseBloon => "DreadRockBloonStandard4"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { DreadRockConfig.ApplyDreadRockSettings(bloonModel, "Medium", 4); } }
public class MediumRogueDreadRock6 : ModBloon { public override string BaseBloon => "DreadRockBloonStandard5"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { DreadRockConfig.ApplyDreadRockSettings(bloonModel, "Medium", 5); } }
public class HardRogueDreadRock1 : ModBloon { public override string BaseBloon => "DreadRockBloonStandard1"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { DreadRockConfig.ApplyDreadRockSettings(bloonModel, "Hard", 0); } }
public class HardRogueDreadRock2 : ModBloon { public override string BaseBloon => "DreadRockBloonStandard1"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { DreadRockConfig.ApplyDreadRockSettings(bloonModel, "Hard", 1); } }
public class HardRogueDreadRock3 : ModBloon { public override string BaseBloon => "DreadRockBloonStandard2"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { DreadRockConfig.ApplyDreadRockSettings(bloonModel, "Hard", 2); } }
public class HardRogueDreadRock4 : ModBloon { public override string BaseBloon => "DreadRockBloonStandard3"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { DreadRockConfig.ApplyDreadRockSettings(bloonModel, "Hard", 3); } }
public class HardRogueDreadRock5 : ModBloon { public override string BaseBloon => "DreadRockBloonStandard4"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { DreadRockConfig.ApplyDreadRockSettings(bloonModel, "Hard", 4); } }
public class HardRogueDreadRock6 : ModBloon { public override string BaseBloon => "DreadRockBloonStandard5"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { DreadRockConfig.ApplyDreadRockSettings(bloonModel, "Hard", 5); } }
public class ImpoppableRogueDreadRock1 : ModBloon { public override string BaseBloon => "DreadRockBloonStandard1"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { DreadRockConfig.ApplyDreadRockSettings(bloonModel, "Impoppable", 0); } }
public class ImpoppableRogueDreadRock2 : ModBloon { public override string BaseBloon => "DreadRockBloonStandard1"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { DreadRockConfig.ApplyDreadRockSettings(bloonModel, "Impoppable", 1); } }
public class ImpoppableRogueDreadRock3 : ModBloon { public override string BaseBloon => "DreadRockBloonStandard2"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { DreadRockConfig.ApplyDreadRockSettings(bloonModel, "Impoppable", 2); } }
public class ImpoppableRogueDreadRock4 : ModBloon { public override string BaseBloon => "DreadRockBloonStandard3"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { DreadRockConfig.ApplyDreadRockSettings(bloonModel, "Impoppable", 3); } }
public class ImpoppableRogueDreadRock5 : ModBloon { public override string BaseBloon => "DreadRockBloonStandard4"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { DreadRockConfig.ApplyDreadRockSettings(bloonModel, "Impoppable", 4); } }
public class ImpoppableRogueDreadRock6 : ModBloon { public override string BaseBloon => "DreadRockBloonStandard5"; public override void ModifyBaseBloonModel(BloonModel bloonModel) { DreadRockConfig.ApplyDreadRockSettings(bloonModel, "Impoppable", 5); } }

0 comments on commit ff3c6ed

Please sign in to comment.