diff --git a/Defs/Buildings/Special/M3G_UMIN.xml b/Defs/Buildings/Special/M3G_UMIN.xml index 0c147a1..e7aaeec 100644 --- a/Defs/Buildings/Special/M3G_UMIN.xml +++ b/Defs/Buildings/Special/M3G_UMIN.xml @@ -6,6 +6,7 @@ Fires a beam of energy up to an ancient geostationary satelite, where it is reflected towards a specific coordinate on the planet surface. The beam incinerates all living things and quickly destroys any structures in the blast radius. + Firing the beam of energy creates a huge electromagnetic pulse in both the area it is fired from and also the area it impacts on, temporarily shutting down all electronics. AntimatterAnnihilation/Buildings/M3G_UMIN @@ -50,7 +51,7 @@ Firing the beam of energy creates a huge electromagnetic pulse in both the area 600 true - 500000 + 1000000 false false @@ -117,7 +118,7 @@ Firing the beam of energy creates a huge electromagnetic pulse in both the area OrbitalBeam
  • - 0.06 + 0.08
  • diff --git a/Defs/Buildings/Turrets/MBD.xml b/Defs/Buildings/Turrets/MBD.xml index 2d97352..ec3382a 100644 --- a/Defs/Buildings/Turrets/MBD.xml +++ b/Defs/Buildings/Turrets/MBD.xml @@ -14,11 +14,11 @@ false (3,3) - 900 - 0.2 + 1000 + 0.1 9000 220 - -20 + -10 MinifiedThing @@ -53,7 +53,7 @@ It's multi-barrel destruction. AntimatterAnnihilation/UI/MBDIcon - 0.985 + 0.99 250 @@ -91,7 +91,7 @@ It's multi-barrel destruction. Gun_MBDTurret_AA - 5.5 + 5
  • R_MBD_AA
  • @@ -107,7 +107,7 @@ It's multi-barrel destruction.
    Annihilate_AA - 8 + 10 200 1.5 @@ -125,8 +125,8 @@ It's multi-barrel destruction. 0.45 0.65 - 0.8 - 0.75 + 0.85 + 0.80 0 200 0 diff --git a/Defs/Buildings/Turrets/ThunderGun.xml b/Defs/Buildings/Turrets/ThunderGun.xml index 6e7287a..2cab3ec 100644 --- a/Defs/Buildings/Turrets/ThunderGun.xml +++ b/Defs/Buildings/Turrets/ThunderGun.xml @@ -89,7 +89,7 @@ Gun_ThunderGunTurret_AA - 8 + 7
  • ThunderGun_AA
  • @@ -105,7 +105,7 @@ Bullet - 25 + 20 140 0.65 @@ -121,11 +121,11 @@ (2,2) - 0.3 + 0.35 0.75 - 0.85 + 0.8 0.6 - 3.5 + 4 0 200 0 @@ -137,8 +137,8 @@ 0 6 55 - 16 - 4 + 12 + 6 Shot_Autocannon GunTail_Heavy 12 diff --git a/Defs/Damage/Damage.xml b/Defs/Damage/Damage.xml index 37fbbf4..191f45c 100644 --- a/Defs/Damage/Damage.xml +++ b/Defs/Damage/Damage.xml @@ -61,6 +61,20 @@ The flesh is literally annihilated, leaving nothing behind but a gruesome wound. 90 + + SkyBeamBlast_AA + + AntimatterAnnihilation.Damage.DamageWorker_Annihilate + true + true + true + {0} was killed by an energy blast. + EnergyBlastInjury_AA + Sharp + 12 + 90 + + EnergyBurnInjury_AA @@ -93,6 +107,38 @@ Does not bleed as the flesh is forcefully cauterized. Causes intense pain. + + EnergyBlastInjury_AA + + an energy blast injury + An energy blast injury, caused by being hit with an intense blast of pure energy. +Does not bleed as the flesh is forcefully cauterized. Causes intense pain. + +
  • + bandaged + sutured + set + false +
  • +
  • + 0.40 +
  • +
  • + Energy Blast Scar +
  • +
    + true + true + + 0.025 + 0.0035 + false + Burned Off + Burned Out + 0 + +
    + AnnihilationExplosion_AA diff --git a/Source/AntimatterAnnihilation/Attacks/CustomOrbitalStrike.cs b/Source/AntimatterAnnihilation/Attacks/CustomOrbitalStrike.cs index 3dac3d7..08cd522 100644 --- a/Source/AntimatterAnnihilation/Attacks/CustomOrbitalStrike.cs +++ b/Source/AntimatterAnnihilation/Attacks/CustomOrbitalStrike.cs @@ -22,10 +22,10 @@ public class CustomOrbitalStrike : OrbitalStrike public event Action OnStrikeOver; public float Radius = 15f; public int UpdatesPerTick = 4; - public float ArmorPen = 0.35f; - public DamageDef DamageDef; - public IntRange DamageAmountRange = new IntRange(65, 100); - public IntRange CorpseDamageAmountRange = new IntRange(5, 10); + public float ArmorPen = 0.75f; + public DamageDef[] DamageDefs; + public IntRange DamageAmountRange = new IntRange(70, 85); + public IntRange CorpseDamageAmountRange = new IntRange(3, 6); public override void StartStrike() { @@ -91,7 +91,7 @@ where x.InBounds(base.Map) log = new BattleLogEntry_DamageTaken(pawn, RulePackDefOf.DamageEvent_PowerBeam, this.instigator as Pawn); Find.BattleLog.Add(log); } - tmpThings[i].TakeDamage(new DamageInfo(DamageDef, (float)damage, ArmorPen, -1f, this.instigator, null, this.weaponDef, DamageInfo.SourceCategory.ThingOrUnknown, null)).AssociateWithLog(log); + tmpThings[i].TakeDamage(new DamageInfo(DamageDefs.RandomElement(), (float)damage, ArmorPen, -1f, this.instigator, null, this.weaponDef, DamageInfo.SourceCategory.ThingOrUnknown, null)).AssociateWithLog(log); } tmpThings.Clear(); } diff --git a/Source/AntimatterAnnihilation/Buildings/Building_Megumin.cs b/Source/AntimatterAnnihilation/Buildings/Building_Megumin.cs index 3ac5e7a..ea30f61 100644 --- a/Source/AntimatterAnnihilation/Buildings/Building_Megumin.cs +++ b/Source/AntimatterAnnihilation/Buildings/Building_Megumin.cs @@ -19,17 +19,17 @@ public class Building_Megumin : Building, IConditionalGlower [TweakValue("AntimatterAnnihilation")] public static bool DoSolarFlare = true; [TweakValue("AntimatterAnnihilation", 0f, 1f)] - public static float EasterEggChance = 0.2f; + public static float EasterEggChance = 0.333f; public static int COOLDOWN_TICKS = 2500 * 24 * 4; // 4 in-game days. public static int POWER_UP_TICKS = 1276; // Made to correspond to audio queue. public static int TICKS_BEFORE_FIRING_LASER = 1200; // Made to correspond to audio queue. - public static float RADIUS = 15; + public static float RADIUS = 16; public static int DURATION_TICKS = 310; public static float EXPLOSION_RADIUS = 18; public static int EXPLOSION_DAMAGE = 50; public static float EXPLOSION_PEN = 0.7f; - public static float CHARGE_WATT_DAYS = 600 * 5; // Requires 5 fully-powered batteries to charge (semi-instantly). Otherwise it will take longer depending on power production. - public static int WORLD_MAP_RANGE = 130; + public static float CHARGE_WATT_DAYS = 600 * 1f; // Requires 1 fully-powered batteries to charge (semi-instantly). Otherwise it will take longer depending on power production. + public static int WORLD_MAP_RANGE = 150; public bool ShouldBeGlowingNow { diff --git a/Source/AntimatterAnnihilation/Utils/AADefOf.cs b/Source/AntimatterAnnihilation/Utils/AADefOf.cs index 98ffb2a..64b9941 100644 --- a/Source/AntimatterAnnihilation/Utils/AADefOf.cs +++ b/Source/AntimatterAnnihilation/Utils/AADefOf.cs @@ -13,6 +13,7 @@ static AADefOf() public static DamageDef Annihilate_AA; public static DamageDef EnergyBurn_AA; + public static DamageDef SkyBeamBlast_AA; // Same as EnergyBurn_AA except that it uses sharp armor. public static DamageDef AnnihilationExplosion_AA; public static DamageDef AnnihilationExplosionRailgun_AA; diff --git a/Source/AntimatterAnnihilation/Verbs/Verb_Megumin.cs b/Source/AntimatterAnnihilation/Verbs/Verb_Megumin.cs index 4bcdbb5..2b747c3 100644 --- a/Source/AntimatterAnnihilation/Verbs/Verb_Megumin.cs +++ b/Source/AntimatterAnnihilation/Verbs/Verb_Megumin.cs @@ -28,11 +28,11 @@ protected override bool TryCastShot() beam.duration = Building_Megumin.DURATION_TICKS; beam.instigator = this.caster; beam.weaponDef = ((base.EquipmentSource != null) ? base.EquipmentSource.def : null); - beam.DamageDef = AADefOf.EnergyBurn_AA; - beam.UpdatesPerTick = 18; - beam.ArmorPen = 0.95f; // To make it viable against mechanoids, who have 200% heat armour. - beam.DamageAmountRange = new IntRange(35, 39); // Applied up to 18 times per tick, that's a lot of damage. - beam.CorpseDamageAmountRange = new IntRange(10, 15); // Does less damage to corpses, so that there is something left over after the devastation, although this may be OP (killing entire army and keeping their gear). + beam.DamageDefs = new DamageDef[]{ AADefOf.SkyBeamBlast_AA, AADefOf.EnergyBurn_AA }; + beam.UpdatesPerTick = 20; + beam.ArmorPen = 1.3f; // To make it viable against mechanoids and heavy raiders. + beam.DamageAmountRange = new IntRange(35, 45); // Applied up to 18 times per tick, that's a lot of damage. + beam.CorpseDamageAmountRange = new IntRange(3, 6); // Does less damage to corpses, so that there is something left over after the devastation, although this may be OP (killing entire army and keeping their gear). beam.StartStrike(); // Spawn huge explosion once the beam fires.