Example #1
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #8
0
        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);
        }
Example #9
0
        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);
        }
Example #10
0
        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();
            }
        }