// Token: 0x0600272B RID: 10027 RVA: 0x0012A5A4 File Offset: 0x001289A4 protected override void Impact(Thing hitThing) { Map map = base.Map; base.Impact(hitThing); WarpfireUtility.TryStartWarpfireIn(base.Position, map, 0.1f); }
// Token: 0x06002656 RID: 9814 RVA: 0x00123A60 File Offset: 0x00121E60 public static bool TryStartWarpfireIn(IntVec3 c, Map map, float fireSize) { float num = WarpfireUtility.ChanceToStartWarpfireIn(c, map); if (num <= 0f) { return(false); } Warpfire fire = (Warpfire)ThingMaker.MakeThing(OGThingDefOf.OG_Warpfire, null); fire.fireSize = fireSize; GenSpawn.Spawn(fire, c, map, Rot4.North, WipeMode.Vanish, false); return(true); }
// Token: 0x06002652 RID: 9810 RVA: 0x00123790 File Offset: 0x00121B90 protected void TrySpread() { IntVec3 intVec = base.Position; bool flag; if (Rand.Chance(0.8f)) { intVec = base.Position + GenRadial.ManualRadialPattern[Rand.RangeInclusive(1, 8)]; flag = true; } else { intVec = base.Position + GenRadial.ManualRadialPattern[Rand.RangeInclusive(10, 20)]; flag = false; } if (!intVec.InBounds(base.Map)) { return; } if (Rand.Chance(WarpfireUtility.ChanceToStartWarpfireIn(intVec, base.Map))) { if (!flag) { CellRect startRect = CellRect.SingleCell(base.Position); CellRect endRect = CellRect.SingleCell(intVec); if (!GenSight.LineOfSight(base.Position, intVec, base.Map, startRect, endRect, null)) { return; } WarpSpark spark = (WarpSpark)GenSpawn.Spawn(OGThingDefOf.OG_WarpSpark, base.Position, base.Map, WipeMode.Vanish); spark.Launch(this, intVec, intVec, ProjectileHitFlags.All, null); } else { WarpfireUtility.TryStartWarpfireIn(intVec, base.Map, 0.1f); } } }