public static Thing FungusHarvest(ThingDef harvested, ThingDef stuff, Pawn pawn, Plant plant) { ThingDef harvestedThingDef = harvested; OrkoidFungus fungus = plant as OrkoidFungus; if (fungus != null && (pawn != null && pawn.isOrkoid())) { // Log.Message(pawn.Name+" 'ez arvestin " + plant.LabelCap + " boss"); Rand.PushState(plant.thingIDNumber); if (FungalMeds != null && Rand.ChanceSeeded(0.01f, plant.thingIDNumber)) { harvestedThingDef = FungalMeds; // Log.Message("we'ez found some meds boss!"); } Rand.PopState(); } return(ThingMaker.MakeThing(harvestedThingDef)); }
public static bool FungusHarvested(Thing thing, IntVec3 center, Map map, ThingPlaceMode mode, Action <Thing, int> placedAction, Predicate <IntVec3> nearPlaceValidator, Rot4 rot, Pawn pawn, Plant plant) { OrkoidFungus fungus = plant as OrkoidFungus; if (fungus != null && (pawn != null && pawn.isOrkoid())) { ThingDef harvestedThingDef = plant.def.plant.harvestedThingDef; if (FungalMeds != null && thing.def == FungalMeds) { Rand.PushState(); thing.stackCount = Rand.RangeInclusive(1, Math.Max(thing.stackCount / 4, 1)); Rand.PopState(); } if (thing.def == plant.def.plant.harvestedThingDef) { if (fungus.TrySpawnPawns(pawn)) { return(true); } } // Log.Message(pawn.Name + " 'ez arvested " + thing.stackCount + " " + thing.LabelCap + " from " + plant.LabelCap + " boss!"); } return(GenPlace.TryPlaceThing(thing, center, map, ThingPlaceMode.Near, null, null, default(Rot4))); }