private static bool Prefix(Pawn p, GatheringDef gatheringDef) { if (p.HasTrait(VTEDefOf.VTE_Anxious)) { return(false); } return(true); }
public override void TryExecute() { GatheringDef gatheringDef = GatheringDefOf.Party; Verse.AI.Group.LordMaker.MakeNewLord(pawn.Faction, new LordJob_Joinable_Party(intVec, pawn, gatheringDef), Helper.AnyPlayerMap, null); string text = $"{pawn.LabelShort} is throwing a party! Everyone who goes will gain recreation and social energy, and a lasting positive mood boost."; Find.LetterStack.ReceiveLetter("Party", text, LetterDefOf.PositiveEvent, new TargetInfo(intVec, Helper.AnyPlayerMap, false), null, null); }
public override IEnumerable <Gizmo> GetGizmos() { //TODO Graphics foreach (Gizmo gizmo in base.GetGizmos()) { yield return(gizmo); } if (Faction != Faction.OfPlayer) { yield break; } if (Map == null) { yield break; } var cmd = new Command_Action { action = CreateSubMenu }; List <Pawn> skaven = GetAllLeaders().ToList(); GatheringDef gDef = PSGatheringDefOf.SkavenTFGathering; try { var worker = (Worker_TfRitual)gDef.Worker; if (!worker.CanExecute(Map, this, skaven.FirstOrDefault(), out string reason)) { cmd.Disable(reason); } } catch (InvalidCastException e) { Log.Error($"unable to cast worker on {gDef.defName} to {nameof(Worker_TfRitual)}!\n{e.ToString().Indented("|\t")}"); yield break; } yield return(cmd); }
static bool Prefix(Map map, GatheringDef gatheringDef, ref bool __result) { if (gatheringDef == DiscoDefOf.DSC_DiscoGathering) { if (!GatheringsUtility.AcceptableGameConditionsToContinueGathering(map) || GatheringsUtility.AnyLordJobPreventsNewGatherings(map) || map.dangerWatcher.DangerRating != StoryDanger.None) { __result = false; return(false); } int colonistsSpawnedCount = map.mapPawns.FreeColonistsSpawnedCount; if (colonistsSpawnedCount < 3) { return(false); } int num = 0; foreach (Pawn pawn in map.mapPawns.FreeColonistsSpawned) { if (pawn.health.hediffSet.BleedRateTotal > 0.05) { __result = false; return(false); } if (pawn.Drafted) { num++; } } __result = num / (double)colonistsSpawnedCount < 0.75 && GatheringsUtility.EnoughPotentialGuestsToStartGathering(map, gatheringDef); return(false); } return(true); }
public LordToil_Disco(IntVec3 spot, GatheringDef gatheringDef, float joyPerTick = 3.5E-05f) : base(spot, gatheringDef) { this.joyPerTick = joyPerTick; this.data = new LordToilData_Disco(); }
protected override LordToil CreateGatheringToil(IntVec3 spot, Pawn organizer, GatheringDef gatheringDef) { return(new LordToil_Party(spot, gatheringDef)); }
public LordJob_Joinable_Feast(IntVec3 spot, Pawn organizer, GatheringDef gatheringDef) : base(spot, organizer, gatheringDef) { durationTicks = Rand.RangeInclusive(55000, 65000); }
public LordToil_TfRitual(IntVec3 spot, GatheringDef gatheringDef, Pawn organizer) : base(spot, gatheringDef, organizer) { this.organizer = organizer; data = new LordToilData_TfRitual(); }
public LordJob_Joinable_Disco(IntVec3 spot, Pawn organizer, GatheringDef gatheringDef, Building_DJStand stand) : base(spot, organizer, gatheringDef) { this.durationTicks = Rand.RangeInclusive(10000, 15000); this.DJStand = stand; }
public LordJob_TfRitual(IntVec3 gatherSpot, Pawn organizer, Pawn target, GatheringDef gatheringDef) : base(gatherSpot, organizer, gatheringDef) { this.target = target; }