Beispiel #1
0
 public override IEnumerable <Gizmo> CompGetGizmosExtra()
 {
     if (this.memResetMode == MemResetMode.childhood)
     {
         yield return((Gizmo) new Command_Action
         {
             action = delegate
             {
                 this.memResetMode = MemResetMode.adulthood;
             },
             defaultLabel = "PolarisMomeryResterChildhoodModeActiveLabel".Translate(),
             defaultDesc = "PolarisMomeryResterChildhoodModeActiveDesc".Translate(),
             icon = base.parent.def.uiIcon,
         });
     }
     if (this.memResetMode == MemResetMode.adulthood)
     {
         yield return((Gizmo) new Command_Action
         {
             action = delegate
             {
                 this.memResetMode = MemResetMode.childhood;
             },
             defaultLabel = "PolarisMomeryResterAdulthoodModeActiveLabel".Translate(),
             defaultDesc = "PolarisMomeryResterAdulthoodModeActiveDesc".Translate(),
             icon = base.parent.def.uiIcon,
         });
     }
 }
 public override IEnumerable <Gizmo> CompGetGizmosExtra()
 {
     if (this.memResetMode == MemResetMode.childhood)
     {
         yield return((Gizmo) new Command_Action
         {
             action = delegate
             {
                 this.memResetMode = MemResetMode.adulthood;
             },
             defaultLabel = "PolarisMomeryResterChildhoodModeActiveLabel".Translate(),
             defaultDesc = "PolarisMomeryResterChildhoodModeActiveDesc".Translate(),
             icon = base.parent.def.uiIcon,
         });
     }
     if (this.memResetMode == MemResetMode.adulthood)
     {
         yield return((Gizmo) new Command_Action
         {
             action = delegate
             {
                 this.memResetMode = MemResetMode.childhood;
             },
             defaultLabel = "PolarisMomeryResterAdulthoodModeActiveLabel".Translate(),
             defaultDesc = "PolarisMomeryResterAdulthoodModeActiveDesc".Translate(),
             icon = base.parent.def.uiIcon,
         });
     }
     if (Prefs.DevMode)
     {
         Command_Action choseTrait = new Command_Action
         {
             defaultLabel = "find a backstory...",
             action       = delegate
             {
                 List <DebugMenuOption> list = new List <DebugMenuOption>();
                 foreach (Backstory story in BackstoryDatabase.allBackstories.Values)
                 {
                     if (this.memResetMode == MemResetMode.childhood && story.slot == BackstorySlot.Childhood)
                     {
                         list.Add(new DebugMenuOption(story.title, DebugMenuOptionMode.Action, delegate()
                         {
                             this.childhoodStory = story;
                         }));
                     }
                     if (this.memResetMode == MemResetMode.adulthood && story.slot == BackstorySlot.Adulthood)
                     {
                         list.Add(new DebugMenuOption(story.title, DebugMenuOptionMode.Action, delegate()
                         {
                             this.adulthoodStory = story;
                         }));
                     }
                 }
                 Find.WindowStack.Add(new Dialog_DebugOptionListLister(list));
             }
         };
         yield return(choseTrait);
     }
 }
 public override void Initialize(CompProperties props)
 {
     base.Initialize(props);
     this.childhoodStory = BackstoryDatabase.RandomBackstory(BackstorySlot.Childhood);
     this.adulthoodStory = BackstoryDatabase.RandomBackstory(BackstorySlot.Adulthood);
     if (Rand.Chance(0.5f))
     {
         memResetMode = MemResetMode.childhood;
     }
     else
     {
         memResetMode = MemResetMode.adulthood;
     }
 }
        public override void DoEffect(Pawn usedBy)
        {
            base.DoEffect(usedBy);
            MemResetMode memResetMode   = this.parent.GetComp <CompMomeryRester>().memResetMode;
            Backstory    childhoodStory = this.parent.GetComp <CompMomeryRester>().childhoodStory;
            Backstory    adulthoodStory = this.parent.GetComp <CompMomeryRester>().adulthoodStory;

            if (memResetMode == MemResetMode.childhood)
            {
                if (usedBy.story.childhood != null)
                {
                    Messages.Message("PolarisMomeryResterStorySuccessfullyChanged".Translate(usedBy.LabelShort, usedBy.story.childhood.title, childhoodStory.title), usedBy, MessageTypeDefOf.PositiveEvent);
                    PolarisUtility.GainSkillsExtra(usedBy, usedBy.story.childhood.skillGainsResolved, false);
                    PolarisUtility.GainSkillsExtra(usedBy, childhoodStory.skillGainsResolved, true);
                    usedBy.story.childhood = childhoodStory;
                    PolarisUtility.RefreshPawnStat(usedBy);
                }
                else
                {
                    Messages.Message("PolarisMomeryResterHaveNoAvaliableStory".Translate(usedBy.LabelShort, childhoodStory.title), usedBy, MessageTypeDefOf.NegativeEvent);
                    PolarisUtility.GainSkillsExtra(usedBy, childhoodStory.skillGainsResolved, true);
                    usedBy.story.childhood = childhoodStory;
                    PolarisUtility.RefreshPawnStat(usedBy);
                }
            }
            else if (memResetMode == MemResetMode.adulthood)
            {
                if (usedBy.story.adulthood != null)
                {
                    Messages.Message("PolarisMomeryResterStorySuccessfullyChanged".Translate(usedBy.LabelShort, usedBy.story.adulthood.title, adulthoodStory.title), usedBy, MessageTypeDefOf.PositiveEvent);
                    PolarisUtility.GainSkillsExtra(usedBy, usedBy.story.adulthood.skillGainsResolved, false);
                    PolarisUtility.GainSkillsExtra(usedBy, adulthoodStory.skillGainsResolved, true);
                    usedBy.story.adulthood = adulthoodStory;
                    PolarisUtility.RefreshPawnStat(usedBy);
                }
                else
                {
                    Messages.Message("PolarisMomeryResterHaveNoAvaliableStory".Translate(usedBy.LabelShort, adulthoodStory.title), usedBy, MessageTypeDefOf.NegativeEvent);
                    PolarisUtility.GainSkillsExtra(usedBy, adulthoodStory.skillGainsResolved, true);
                    usedBy.story.adulthood = adulthoodStory;
                    PolarisUtility.RefreshPawnStat(usedBy);
                }
            }
            else
            {
                Messages.Message("PolarisMomeryResterUnknownError".Translate(), MessageTypeDefOf.NegativeEvent);
            }
        }