protected override bool TryCastShot() { ArtilleryMarker marker = ThingMaker.MakeThing(ThingDef.Named(ArtilleryMarker.MarkerDef)) as ArtilleryMarker; ShiftVecReport report = ShiftVecReportFor(currentTarget); marker.sightsEfficiency = report.sightsEfficiency; marker.aimingAccuracy = report.aimingAccuracy; marker.lightingShift = report.lightingShift; marker.weatherShift = report.weatherShift; GenSpawn.Spawn(marker, this.currentTarget.Cell, caster.Map); // Check for something to attach marker to if (this.currentTarget.HasThing) { CompAttachBase comp = this.currentTarget.Thing.TryGetComp <CompAttachBase>(); if (comp != null) { marker.AttachTo(this.currentTarget.Thing); } } // Show we learned something PlayerKnowledgeDatabase.KnowledgeDemonstrated(CE_ConceptDefOf.CE_Spotting, KnowledgeAmount.SmallInteraction); return(true); }
protected override bool TryCastShot() { ArtilleryMarker marker = ThingMaker.MakeThing(ThingDef.Named(ArtilleryMarker.MarkerDef)) as ArtilleryMarker; ShiftVecReport report = ShiftVecReportFor(currentTarget); marker.aimEfficiency = report.aimEfficiency; marker.aimingAccuracy = report.aimingAccuracy; marker.lightingShift = report.lightingShift; marker.weatherShift = report.weatherShift; GenSpawn.Spawn(marker, this.currentTarget.Cell, caster.Map); // Check for something to attach marker to if (this.currentTarget.HasThing) { CompAttachBase comp = this.currentTarget.Thing.TryGetComp <CompAttachBase>(); if (comp != null) { marker.AttachTo(this.currentTarget.Thing); } } return(true); }