protected void TrySpread() { IntVec3 position = base.Position; bool flag; if (Rand.Chance(0.8f)) { position = base.Position + GenRadial.ManualRadialPattern[Rand.RangeInclusive(1, 8)]; flag = true; } else { position = base.Position + GenRadial.ManualRadialPattern[Rand.RangeInclusive(10, 20)]; flag = false; } if (position.InBounds(base.Map) && Rand.Chance(FireUtility.ChanceToStartFireIn(position, base.Map))) { if (!flag) { CellRect startRect = CellRect.SingleCell(base.Position); CellRect endRect = CellRect.SingleCell(position); if (GenSight.LineOfSight(base.Position, position, base.Map, startRect, endRect)) { Spark spark = (Spark)GenSpawn.Spawn(ThingDefOf.Spark, base.Position, base.Map); spark.Launch(this, position, position, ProjectileHitFlags.All); } } else { FireUtility.TryStartFireIn(position, base.Map, 0.1f); } } }
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(FireUtility.ChanceToStartFireIn(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; } Spark spark = (Spark)GenSpawn.Spawn(ThingDefOf.Spark, base.Position, base.Map); spark.Launch(this, intVec, null); } else { FireUtility.TryStartFireIn(intVec, base.Map, 0.1f); } } }