/// <summary>Throws the magic puff down.</summary> /// <param name="loc">The loc.</param> /// <param name="map">The map.</param> public static void ThrowMagicPuffDown(Vector3 loc, Map map) { if (map == null) { return; //make sure we don't try an put smoke down if there's no map } if (!loc.ToIntVec3().ShouldSpawnMotesAt(map) || map.moteCounter.SaturatedLowPriority) { return; } MoteThrown moteThrown = IntermittentMagicSprayer.NewBaseMagicPuff(); moteThrown.exactPosition = loc + new Vector3(Rand.Range(-0.02f, 0.02f), 0f, Rand.Range(-0.02f, 0.02f)); moteThrown.SetVelocity((float)Rand.Range(0, 359), Rand.Range(0.2f, 0.5f)); GenSpawn.Spawn(moteThrown, loc.ToIntVec3(), map, WipeMode.Vanish); }
/// <summary>Throws the magic puff up.</summary> /// <param name="loc">The loc.</param> /// <param name="map">The map.</param> public static void ThrowMagicPuffUp(Vector3 loc, Map map) { if (map == null) { return; } if (!loc.ToIntVec3().ShouldSpawnMotesAt(map) || map.moteCounter.SaturatedLowPriority) { return; } MoteThrown moteThrown = IntermittentMagicSprayer.NewBaseMagicPuff(); moteThrown.exactPosition = loc; moteThrown.exactPosition += new Vector3(Rand.Range(-0.02f, 0.02f), 0f, Rand.Range(-0.02f, 0.02f)); moteThrown.SetVelocity((float)Rand.Range(-10, 10), Rand.Range(1.2f, 1.5f)); GenSpawn.Spawn(moteThrown, loc.ToIntVec3(), map, WipeMode.Vanish); }