diff --git a/Bosses/Punji.cs b/Bosses/Punji.cs index 2e9528a..5ff0c27 100644 --- a/Bosses/Punji.cs +++ b/Bosses/Punji.cs @@ -28,6 +28,7 @@ internal class PunjiBoss : ModBoss public override string DisplayName => "Punji the Businessman"; public override string Icon => "Punji-Icon"; public override string Description => "\"He's an gigantic Moneymaster\""; + public override string ExtraCredits => "Sounds by Punji BTD6"; public override IEnumerable DamageStates => new string[] { }; public class PunjiDisplay : ModBloonDisplay { @@ -39,7 +40,7 @@ public override void ModifyDisplayNode(UnityDisplayNode node) Set2DTexture(node, "PunniBoss"); } } - public override string TimerDescription => "Removes for each Tower you have 5% of your Max Cash and if your Cash is under your TowerCount multiplied with 1000$ and also multiplied with the BossTier squared(^2) the Boss regains his hole Live"; + public override string TimerDescription => "Removes for each Tower you have 3% of your Max Cash and if your Cash is under your TowerCount multiplied with 750$ and also multiplied with the BossTier squared(^2) the Boss regains his hole Live"; public override void TimerTick(Bloon boss) { List towers = InGame.instance.GetTowers(); @@ -50,14 +51,15 @@ public override void TimerTick(Bloon boss) boss.bloonModel.maxHealth : boss.health + boss.bloonModel.maxHealth * 0.003f; //SpecialEnd - if (cash < towers.Count*1000*(tier*tier)) + + if (cash < towers.Count*750*(tier*tier)) { boss.health = boss.bloonModel.maxHealth; ModContent.GetAudioClip("I_healed_up").Play(); } else { - InGame.instance.bridge.SetCash(cash *(1-towers.Count * 0.05)); + InGame.instance.bridge.SetCash(cash *(1-towers.Count * 0.03)); } if (tier == 1) @@ -77,9 +79,10 @@ public override void TimerTick(Bloon boss) } } - public override string SkullDescription => "Sells 10% of your Tower Count multiplied with the actual BossTier on Random Towers for their half worth | Spawn for every Tower you have one T1:Moab T2:Bfb T3:Ddt T4:Zomg T5:Bad"; + public override string SkullDescription => "Sells 10% of your Tower Count multiplied with the actual BossTier on Random Towers for 75% of their worth | Spawn for every Tower you have one T1:Moab T2:Bfb T3:Ddt T4:Zomg T5:Bad"; public override void SkullEffect(Bloon boss) { + uint? tier = ModBoss.GetTier(boss); if (tier != null) { @@ -111,7 +114,7 @@ public override void SkullEffect(Bloon boss) Tower tower = InGame.instance.GetTowers()[BossPack.rng.Next(0, InGame.instance.GetTowers().Count)]; if (tower != null) { - tower.worth /= 2; + tower.worth /= 1.25f; InGame.instance.SellTower(tower); } } @@ -121,14 +124,35 @@ public override void SkullEffect(Bloon boss) //Sound - int x = BossPack.rng.Next(1, 7); + int x = BossPack.rng.Next(1, 60); + if (boss.health < boss.bloonModel.maxHealth / 7.5 || boss.isDestroyed) + { + x = 0; + int z = BossPack.rng.Next(1, 4); + if (z == 1) + { + ModContent.GetAudioClip("GameCrasht").Play(); + } + else if (z == 2) + { + ModContent.GetAudioClip("Ich_bin_schon_wieder_tod_nein").Play(); + } + else if (z == 3) + { + ModContent.GetAudioClip("ichsterbeschonwieder").Play(); + } + else if (z == 4) + { + ModContent.GetAudioClip("oh_my_god_i_am_dead").Play(); + } + } if (x == 1) { ModContent.GetAudioClip("HeuteSchlagIchBador").Play(); } else if (x == 2) { - ModContent.GetAudioClip("ichsterbeschonwieder").Play(); + ModContent.GetAudioClip("Nein").Play(); } else if (x == 3) { @@ -158,6 +182,38 @@ public override void SkullEffect(Bloon boss) { ModContent.GetAudioClip("GameCrasht").Play(); } + else if (x == 10) + { + ModContent.GetAudioClip("of_course_I_talk_to_myself").Play(); + } + else if (x == 11) + { + ModContent.GetAudioClip("idkw_but_isab_is_kinda_hot").Play(); + } + else if (x == 12) + { + ModContent.GetAudioClip("of_course_I_talk_to_myself").Play(); + } + else if (x == 13) + { + ModContent.GetAudioClip("Nein").Play(); + } + else if (x == 14) + { + ModContent.GetAudioClip("idkw_but_isab_is_kinda_hot").Play(); + } + else if (x == 15) + { + ModContent.GetAudioClip("I_bet_you_forgot_to_overclock").Play(); + } + else if (x == 16) + { + ModContent.GetAudioClip("ganz_im_ernst_ich_mag_bador").Play(); + } + else if (x == 17) + { + ModContent.GetAudioClip("deutschland_1_du_0").Play(); + } boss.AddMutator(new SpeedUpMutator("PunjiDash", -3f), 150); } @@ -168,35 +224,35 @@ public override void SkullEffect(Bloon boss) skullCount = 8, interval = 30, tier = 1, - timerDescription = "Removes for each Tower you have 5% of your Max Cash and if your Cash is under your TowerCount multiplied with 1000$ the Boss regains his hole Live", + timerDescription = "Removes for each Tower you have 3% of your Max Cash and if your Cash is under your TowerCount multiplied with 750$ the Boss regains his hole Live", }, [60] = new BossRoundInfo() { skullCount = 8, interval = 30, tier = 2, - timerDescription = "Removes for each Tower you have 5% of your Max Cash and if your Cash is under your TowerCount multiplied with 4000$ the Boss regains his hole Live", + timerDescription = "Removes for each Tower you have 3% of your Max Cash and if your Cash is under your TowerCount multiplied with 3000$ the Boss regains his hole Live", }, [80] = new BossRoundInfo() { skullCount = 8, interval = 30, tier = 3, - timerDescription = "Removes for each Tower you have 5% of your Max Cash and if your Cash is under your TowerCount multiplied with 9000$ the Boss regains his hole Live", + timerDescription = "Removes for each Tower you have 3% of your Max Cash and if your Cash is under your TowerCount multiplied with 67500$ the Boss regains his hole Live", }, [100] = new BossRoundInfo() { skullCount = 8, interval = 30, tier = 4, - timerDescription = "Removes for each Tower you have 5 % of your Max Cash and if your Cash is under your TowerCount multiplied with 16000$ the Boss regains his hole Live", + timerDescription = "Removes for each Tower you have 3% of your Max Cash and if your Cash is under your TowerCount multiplied with 12000$ the Boss regains his hole Live", }, [120] = new BossRoundInfo() { skullCount = 8, interval = 30, tier = 5, - timerDescription = "Removes for each Tower you have 5% of your Max Cash and if your Cash is under your TowerCount multiplied with 25000$ the Boss regains his hole Live", + timerDescription = "Removes for each Tower you have 3% of your Max Cash and if your Cash is under your TowerCount multiplied with 187500$ the Boss regains his hole Live", }, }; public override BloonModel ModifyForRound(BloonModel bloon, int round) @@ -207,29 +263,169 @@ public override BloonModel ModifyForRound(BloonModel bloon, int round) { case 1: - bloon.maxHealth = 100_000; + bloon.maxHealth = 75_000; bloon.speed = 3; - ModContent.GetAudioClip("Hello").Play(); + int y = BossPack.rng.Next(1, 7); + if (y == 1) + { + ModContent.GetAudioClip("Hello").Play(); + } + else if (y == 2) + { + ModContent.GetAudioClip("Hey_Guys").Play(); + } + else if (y == 3) + { + ModContent.GetAudioClip("Halloooooo").Play(); + } + else if (y == 4) + { + ModContent.GetAudioClip("Hello").Play(); + } + else if (y == 5) + { + ModContent.GetAudioClip("Hey_Guys").Play(); + } + else if (y == 6) + { + ModContent.GetAudioClip("Halloooooo").Play(); + } + else if (y == 7) + { + ModContent.GetAudioClip("Halloooooo").Play(); + } break; case 2: - bloon.maxHealth = 500_000; + bloon.maxHealth = 375_000; bloon.speed = 3.05f; - ModContent.GetAudioClip("Hello").Play(); + int y2 = BossPack.rng.Next(1, 7); + if (y2 == 1) + { + ModContent.GetAudioClip("Hello").Play(); + } + else if (y2 == 2) + { + ModContent.GetAudioClip("och_no_du_schon_wieder").Play(); + } + else if (y2 == 3) + { + ModContent.GetAudioClip("Halloooooo").Play(); + } + else if (y2 == 4) + { + ModContent.GetAudioClip("da_bin_ich_wieder").Play(); + } + else if (y2 == 5) + { + ModContent.GetAudioClip("Hey_Guys").Play(); + } + else if (y2 == 6) + { + ModContent.GetAudioClip("och_no_du_schon_wieder").Play(); + } + else if (y2 == 7) + { + ModContent.GetAudioClip("da_bin_ich_wieder").Play(); + } break; case 3: - bloon.maxHealth = 1_000_000; + bloon.maxHealth = 750_000; bloon.speed = 3.1f; - ModContent.GetAudioClip("Hello").Play(); + int y3 = BossPack.rng.Next(1, 7); + if (y3 == 1) + { + ModContent.GetAudioClip("Hello").Play(); + } + else if (y3 == 2) + { + ModContent.GetAudioClip("da_bin_ich_wieder").Play(); + } + else if (y3 == 3) + { + ModContent.GetAudioClip("Halloooooo").Play(); + } + else if (y3 == 4) + { + ModContent.GetAudioClip("Hello").Play(); + } + else if (y3 == 5) + { + ModContent.GetAudioClip("Hey_Guys").Play(); + } + else if (y3 == 6) + { + ModContent.GetAudioClip("och_no_du_schon_wieder").Play(); + } + else if (y3 == 7) + { + ModContent.GetAudioClip("da_bin_ich_wieder").Play(); + } break; case 4: - bloon.maxHealth = 5_000_000; + bloon.maxHealth = 3_750_000; bloon.speed = 3.15f; - ModContent.GetAudioClip("Hello").Play(); + int y4 = BossPack.rng.Next(1, 7); + if (y4 == 1) + { + ModContent.GetAudioClip("Hello").Play(); + } + else if (y4 == 2) + { + ModContent.GetAudioClip("och_no_du_schon_wiede").Play(); + } + else if (y4 == 3) + { + ModContent.GetAudioClip("Halloooooo").Play(); + } + else if (y4 == 4) + { + ModContent.GetAudioClip("da_bin_ich_wieder").Play(); + } + else if (y4 == 5) + { + ModContent.GetAudioClip("Hey_Guys").Play(); + } + else if (y4 == 6) + { + ModContent.GetAudioClip("och_no_du_schon_wieder").Play(); + } + else if (y4 == 7) + { + ModContent.GetAudioClip("da_bin_ich_wieder").Play(); + } break; case 5: - bloon.maxHealth = 25_000_000; + bloon.maxHealth = 20_000_000; bloon.speed = 3.2f; - ModContent.GetAudioClip("HeuteSchlagIchBador").Play(); + int y5 = BossPack.rng.Next(1, 7); + if (y5 == 1) + { + ModContent.GetAudioClip("Hello").Play(); + } + else if (y5 == 2) + { + ModContent.GetAudioClip("einletztesmal").Play(); + } + else if (y5 == 3) + { + ModContent.GetAudioClip("Halloooooo").Play(); + } + else if (y5 == 4) + { + ModContent.GetAudioClip("einletztesmal").Play(); + } + else if (y5 == 5) + { + ModContent.GetAudioClip("Hey_Guys").Play(); + } + else if (y5 == 6) + { + ModContent.GetAudioClip("och_no_du_schon_wieder").Play(); + } + else if (y5 == 7) + { + ModContent.GetAudioClip("da_bin_ich_wieder").Play(); + } break; default: break; diff --git a/Images/PunjiBoss/PunniBoss.png b/Images/PunjiBoss/PunniBoss.png index 7daa8c5..e1a2a49 100644 Binary files a/Images/PunjiBoss/PunniBoss.png and b/Images/PunjiBoss/PunniBoss.png differ diff --git a/Images/PunjiBoss/PunniBoss2.png b/Images/PunjiBoss/PunniBoss2.png new file mode 100644 index 0000000..7daa8c5 Binary files /dev/null and b/Images/PunjiBoss/PunniBoss2.png differ diff --git a/Sounds/Punji/BitteGehKaputt.wav b/Sounds/Punji/Skull/BitteGehKaputt.wav similarity index 100% rename from Sounds/Punji/BitteGehKaputt.wav rename to Sounds/Punji/Skull/BitteGehKaputt.wav diff --git a/Sounds/Punji/HeuteSchlagIchBador.wav b/Sounds/Punji/Skull/HeuteSchlagIchBador.wav similarity index 100% rename from Sounds/Punji/HeuteSchlagIchBador.wav rename to Sounds/Punji/Skull/HeuteSchlagIchBador.wav diff --git a/Sounds/Punji/Skull/I_bet_you_forgot_to_overclock.wav b/Sounds/Punji/Skull/I_bet_you_forgot_to_overclock.wav new file mode 100644 index 0000000..8a96124 Binary files /dev/null and b/Sounds/Punji/Skull/I_bet_you_forgot_to_overclock.wav differ diff --git a/Sounds/Punji/Skull/Nein.wav b/Sounds/Punji/Skull/Nein.wav new file mode 100644 index 0000000..d1dde35 Binary files /dev/null and b/Sounds/Punji/Skull/Nein.wav differ diff --git a/Sounds/Punji/Skull/deutschland_1_du_0.wav b/Sounds/Punji/Skull/deutschland_1_du_0.wav new file mode 100644 index 0000000..fda4b72 Binary files /dev/null and b/Sounds/Punji/Skull/deutschland_1_du_0.wav differ diff --git a/Sounds/Punji/Skull/ganz_im_ernst_ich_mag_bador.wav b/Sounds/Punji/Skull/ganz_im_ernst_ich_mag_bador.wav new file mode 100644 index 0000000..46e5914 Binary files /dev/null and b/Sounds/Punji/Skull/ganz_im_ernst_ich_mag_bador.wav differ diff --git a/Sounds/Punji/Skull/idkw_but_isab_is_kinda_hot.wav b/Sounds/Punji/Skull/idkw_but_isab_is_kinda_hot.wav new file mode 100644 index 0000000..fb4f7a0 Binary files /dev/null and b/Sounds/Punji/Skull/idkw_but_isab_is_kinda_hot.wav differ diff --git a/Sounds/Punji/indieFresse.wav b/Sounds/Punji/Skull/indieFresse.wav similarity index 100% rename from Sounds/Punji/indieFresse.wav rename to Sounds/Punji/Skull/indieFresse.wav diff --git a/Sounds/Punji/menschbador.wav b/Sounds/Punji/Skull/menschbador.wav similarity index 100% rename from Sounds/Punji/menschbador.wav rename to Sounds/Punji/Skull/menschbador.wav diff --git a/Sounds/Punji/neinweich.wav b/Sounds/Punji/Skull/neinweich.wav similarity index 100% rename from Sounds/Punji/neinweich.wav rename to Sounds/Punji/Skull/neinweich.wav diff --git "a/Sounds/Punji/n\303\266n\303\266.wav" "b/Sounds/Punji/Skull/n\303\266n\303\266.wav" similarity index 100% rename from "Sounds/Punji/n\303\266n\303\266.wav" rename to "Sounds/Punji/Skull/n\303\266n\303\266.wav" diff --git a/Sounds/Punji/Skull/of_course_I_talk_to_myself.wav b/Sounds/Punji/Skull/of_course_I_talk_to_myself.wav new file mode 100644 index 0000000..365c1af Binary files /dev/null and b/Sounds/Punji/Skull/of_course_I_talk_to_myself.wav differ diff --git a/Sounds/Punji/Spawn/Halloooooo.wav b/Sounds/Punji/Spawn/Halloooooo.wav new file mode 100644 index 0000000..25c51d9 Binary files /dev/null and b/Sounds/Punji/Spawn/Halloooooo.wav differ diff --git a/Sounds/Punji/Hello.wav b/Sounds/Punji/Spawn/Hello.wav similarity index 100% rename from Sounds/Punji/Hello.wav rename to Sounds/Punji/Spawn/Hello.wav diff --git a/Sounds/Punji/Spawn/Hey_Guys.wav b/Sounds/Punji/Spawn/Hey_Guys.wav new file mode 100644 index 0000000..94f3cf3 Binary files /dev/null and b/Sounds/Punji/Spawn/Hey_Guys.wav differ diff --git a/Sounds/Punji/Spawn/da_bin_ich_wieder.wav b/Sounds/Punji/Spawn/da_bin_ich_wieder.wav new file mode 100644 index 0000000..348982e Binary files /dev/null and b/Sounds/Punji/Spawn/da_bin_ich_wieder.wav differ diff --git a/Sounds/Punji/einletztesmal.wav b/Sounds/Punji/Spawn/einletztesmal.wav similarity index 100% rename from Sounds/Punji/einletztesmal.wav rename to Sounds/Punji/Spawn/einletztesmal.wav diff --git a/Sounds/Punji/Spawn/och_no_du_schon_wieder.wav b/Sounds/Punji/Spawn/och_no_du_schon_wieder.wav new file mode 100644 index 0000000..7caba16 Binary files /dev/null and b/Sounds/Punji/Spawn/och_no_du_schon_wieder.wav differ diff --git a/Sounds/Punji/I_healed_up.wav b/Sounds/Punji/Special/I_healed_up.wav similarity index 100% rename from Sounds/Punji/I_healed_up.wav rename to Sounds/Punji/Special/I_healed_up.wav diff --git a/Sounds/Punji/GameCrasht.wav b/Sounds/Punji/Todes/GameCrasht.wav similarity index 100% rename from Sounds/Punji/GameCrasht.wav rename to Sounds/Punji/Todes/GameCrasht.wav diff --git a/Sounds/Punji/Todes/Ich_bin_schon_wieder_tod_nein.wav b/Sounds/Punji/Todes/Ich_bin_schon_wieder_tod_nein.wav new file mode 100644 index 0000000..ec470ec Binary files /dev/null and b/Sounds/Punji/Todes/Ich_bin_schon_wieder_tod_nein.wav differ diff --git a/Sounds/Punji/ichsterbeschonwieder.wav b/Sounds/Punji/Todes/ichsterbeschonwieder.wav similarity index 100% rename from Sounds/Punji/ichsterbeschonwieder.wav rename to Sounds/Punji/Todes/ichsterbeschonwieder.wav diff --git a/Sounds/Punji/Todes/oh_my_god_i_am_dead.wav b/Sounds/Punji/Todes/oh_my_god_i_am_dead.wav new file mode 100644 index 0000000..612b973 Binary files /dev/null and b/Sounds/Punji/Todes/oh_my_god_i_am_dead.wav differ