protected override void Impact(Thing hitThing) { base.Impact(hitThing); MoteMaker.TryThrowSmoke(base.Position.ToVector3Shifted(), 1f); foreach (IntVec3 current in GenAdj.AdjacentCells8WayAndInside(Position)) { List <Thing> list = Find.ThingGrid.ThingsListAt(current); for (int i = 0; i < list.Count; i++) { if (list[i].def.eType == EntityType.Fire) { list[i].TakeDamage(new DamageInfo(DamageTypeDefOf.Extinguish, 2, this, null, null)); } } } }