protected override void SetupCondition(GameCondition condition, Map map) { base.SetupCondition(condition, map); GameCondition_PsychicEmanation obj = (GameCondition_PsychicEmanation)condition; obj.gender = gender; obj.level = Level; }
protected override void DoConditionAndLetter(IncidentParms parms, Map map, int duration, Gender gender, float points) { GameCondition_PsychicEmanation gameCondition_PsychicEmanation = (GameCondition_PsychicEmanation)GameConditionMaker.MakeCondition(GameConditionDefOf.PsychicSoothe, duration); gameCondition_PsychicEmanation.gender = gender; map.gameConditionManager.RegisterCondition(gameCondition_PsychicEmanation); SendStandardLetter(gameCondition_PsychicEmanation.LabelCap, gameCondition_PsychicEmanation.LetterText, gameCondition_PsychicEmanation.def.letterDef, parms, LookTargets.Invalid); }
protected override void DoConditionAndLetter(Map map, int duration, Gender gender, float points) { GameCondition_PsychicEmanation gameCondition_PsychicEmanation = (GameCondition_PsychicEmanation)GameConditionMaker.MakeCondition(GameConditionDefOf.PsychicSoothe, duration); gameCondition_PsychicEmanation.gender = gender; map.gameConditionManager.RegisterCondition(gameCondition_PsychicEmanation); string text = "LetterIncidentPsychicSoothe".Translate(gender.ToString().Translate().ToLower()); Find.LetterStack.ReceiveLetter("LetterLabelPsychicSoothe".Translate(), text, LetterDefOf.PositiveEvent); }
protected override void DoConditionAndLetter(Map map, int duration, Gender gender) { GameCondition_PsychicEmanation gameCondition_PsychicEmanation = (GameCondition_PsychicEmanation)GameConditionMaker.MakeCondition(GameConditionDefOf.PsychicDrone, duration, 0); gameCondition_PsychicEmanation.gender = gender; map.gameConditionManager.RegisterCondition(gameCondition_PsychicEmanation); string text = "LetterIncidentPsychicDrone".Translate(new object[] { gender.ToString().Translate().ToLower() }); Find.LetterStack.ReceiveLetter("LetterLabelPsychicDrone".Translate(), text, LetterDefOf.NegativeEvent, null); }
public PsychicDroneLevel GetHighestPsychicDroneLevelFor(Gender gender) { PsychicDroneLevel psychicDroneLevel = PsychicDroneLevel.None; for (int i = 0; i < ActiveConditions.Count; i++) { GameCondition_PsychicEmanation gameCondition_PsychicEmanation = activeConditions[i] as GameCondition_PsychicEmanation; if (gameCondition_PsychicEmanation != null && gameCondition_PsychicEmanation.gender == gender && (int)gameCondition_PsychicEmanation.level > (int)psychicDroneLevel) { psychicDroneLevel = gameCondition_PsychicEmanation.level; } } return(psychicDroneLevel); }
protected override void DoConditionAndLetter(IncidentParms parms, Map map, int duration, Gender gender, float points) { if (points < 0f) { points = StorytellerUtility.DefaultThreatPointsNow(map); } PsychicDroneLevel level = (points < 800f) ? PsychicDroneLevel.BadLow : ((!(points < 2000f)) ? PsychicDroneLevel.BadHigh : PsychicDroneLevel.BadMedium); GameCondition_PsychicEmanation gameCondition_PsychicEmanation = (GameCondition_PsychicEmanation)GameConditionMaker.MakeCondition(GameConditionDefOf.PsychicDrone, duration); gameCondition_PsychicEmanation.gender = gender; gameCondition_PsychicEmanation.level = level; map.gameConditionManager.RegisterCondition(gameCondition_PsychicEmanation); SendStandardLetter(gameCondition_PsychicEmanation.LabelCap, gameCondition_PsychicEmanation.LetterText, gameCondition_PsychicEmanation.def.letterDef, parms, LookTargets.Invalid); }
protected override ThoughtState CurrentStateInternal(Pawn p) { PsychicDroneLevel psychicDroneLevel = PsychicDroneLevel.None; CompPsychicDrone compPsychicDrone = ThoughtWorker_PsychicDrone.PsychicDroneEmanator(p.Map); if (compPsychicDrone != null) { psychicDroneLevel = compPsychicDrone.DroneLevel; } GameCondition_PsychicEmanation activeCondition = p.Map.gameConditionManager.GetActiveCondition <GameCondition_PsychicEmanation>(); if (activeCondition != null && activeCondition.gender == p.gender && activeCondition.def.droneLevel > psychicDroneLevel) { psychicDroneLevel = activeCondition.def.droneLevel; } ThoughtState result; switch (psychicDroneLevel) { case PsychicDroneLevel.None: result = false; break; case PsychicDroneLevel.GoodMedium: result = ThoughtState.ActiveAtStage(0); break; case PsychicDroneLevel.BadLow: result = ThoughtState.ActiveAtStage(1); break; case PsychicDroneLevel.BadMedium: result = ThoughtState.ActiveAtStage(2); break; case PsychicDroneLevel.BadHigh: result = ThoughtState.ActiveAtStage(3); break; case PsychicDroneLevel.BadExtreme: result = ThoughtState.ActiveAtStage(4); break; default: throw new NotImplementedException(); } return(result); }
protected override void DoConditionAndLetter(Map map, int duration, Gender gender, float points) { if (points < 0f) { points = StorytellerUtility.DefaultThreatPointsNow(map); } PsychicDroneLevel level = (points < 800f) ? PsychicDroneLevel.BadLow : ((!(points < 2000f)) ? PsychicDroneLevel.BadHigh : PsychicDroneLevel.BadMedium); GameCondition_PsychicEmanation gameCondition_PsychicEmanation = (GameCondition_PsychicEmanation)GameConditionMaker.MakeCondition(GameConditionDefOf.PsychicDrone, duration); gameCondition_PsychicEmanation.gender = gender; gameCondition_PsychicEmanation.level = level; map.gameConditionManager.RegisterCondition(gameCondition_PsychicEmanation); string label = "LetterLabelPsychicDrone".Translate() + " (" + level.GetLabel() + ", " + gender.GetLabel() + ")"; string text = "LetterIncidentPsychicDrone".Translate(gender.ToString().Translate().ToLower(), level.GetLabel()); Find.LetterStack.ReceiveLetter(label, text, LetterDefOf.NegativeEvent); }
protected override void DoConditionAndLetter(Map map, int duration, Gender gender, float points) { if (points < 0f) { points = StorytellerUtility.DefaultThreatPointsNow(map); } PsychicDroneLevel level; if (points < 800f) { level = PsychicDroneLevel.BadLow; } else if (points < 2000f) { level = PsychicDroneLevel.BadMedium; } else { level = PsychicDroneLevel.BadHigh; } GameCondition_PsychicEmanation gameCondition_PsychicEmanation = (GameCondition_PsychicEmanation)GameConditionMaker.MakeCondition(GameConditionDefOf.PsychicDrone, duration, 0); gameCondition_PsychicEmanation.gender = gender; gameCondition_PsychicEmanation.level = level; map.gameConditionManager.RegisterCondition(gameCondition_PsychicEmanation); string label = string.Concat(new string[] { "LetterLabelPsychicDrone".Translate(), " (", level.GetLabel(), ", ", gender.GetLabel(false), ")" }); string text = "LetterIncidentPsychicDrone".Translate(new object[] { gender.ToString().Translate().ToLower(), level.GetLabel() }); Find.LetterStack.ReceiveLetter(label, text, LetterDefOf.NegativeEvent, null); }
protected override ThoughtState CurrentStateInternal(Pawn p) { PsychicDroneLevel psychicDroneLevel = PsychicDroneLevel.None; CompPsychicDrone compPsychicDrone = PsychicDroneEmanator(p.Map); if (compPsychicDrone != null) { psychicDroneLevel = compPsychicDrone.DroneLevel; } GameCondition_PsychicEmanation activeCondition = p.Map.gameConditionManager.GetActiveCondition <GameCondition_PsychicEmanation>(); if (activeCondition != null && activeCondition.gender == p.gender && (int)activeCondition.level > (int)psychicDroneLevel) { psychicDroneLevel = activeCondition.level; } switch (psychicDroneLevel) { case PsychicDroneLevel.None: return(false); case PsychicDroneLevel.GoodMedium: return(ThoughtState.ActiveAtStage(0)); case PsychicDroneLevel.BadLow: return(ThoughtState.ActiveAtStage(1)); case PsychicDroneLevel.BadMedium: return(ThoughtState.ActiveAtStage(2)); case PsychicDroneLevel.BadHigh: return(ThoughtState.ActiveAtStage(3)); case PsychicDroneLevel.BadExtreme: return(ThoughtState.ActiveAtStage(4)); default: throw new NotImplementedException(); } }