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
600true
- 500000
+ 1000000falsefalse
@@ -117,7 +118,7 @@ Firing the beam of energy creates a huge electromagnetic pulse in both the area
OrbitalBeam
@@ -105,7 +105,7 @@
Bullet
- 25
+ 201400.65
@@ -121,11 +121,11 @@
(2,2)
- 0.3
+ 0.350.75
- 0.85
+ 0.80.6
- 3.5
+ 402000
@@ -137,8 +137,8 @@
0655
- 16
- 4
+ 12
+ 6Shot_AutocannonGunTail_Heavy12
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.