コード例 #1
0
 static void Postfix(ref AgingCampaignBehavior __instance, Hero current)
 {
     if (!current.IsTemplate && current.IsAlive)
     {
         if ((int)current.BirthDay.ElapsedDaysUntilNow == (int)CampaignTime.Years((float)Campaign.Current.Models.AgeModel.HeroComesOfAge).ToDays)
         {
             if (current.HeroState != Hero.CharacterStates.Active)
             {
                 CampaignEventDispatcher dispatcher = GameComponent.CampaignEventDispatcher();
                 if (null != dispatcher)
                 {
                     ReflectUtils.ReflectMethodAndInvoke("OnHeroComesOfAge", dispatcher, new Object[] { current });
                 }
             }
         }
         else if ((int)current.BirthDay.ElapsedDaysUntilNow == (int)CampaignTime.Years((float)Campaign.Current.Models.AgeModel.BecomeTeenagerAge).ToDays)
         {
             // CampaignEventDispatcher.Instance.OnHeroReachesTeenAge(current);
         }
         else if ((int)current.BirthDay.ElapsedDaysUntilNow == (int)CampaignTime.Years((float)Campaign.Current.Models.AgeModel.BecomeChildAge).ToDays)
         {
             // CampaignEventDispatcher.Instance.OnHeroGrowsOutOfInfancy(current);
         }
     }
 }
コード例 #2
0
ファイル: GameComponent.cs プロジェクト: suetree/MoreSpouses
        public static void SendEvent(String eventMethod, object[] objectParams)
        {
            CampaignEventDispatcher dispatcher = GameComponent.CampaignEventDispatcher();

            if (null != dispatcher)
            {
                ReflectUtils.ReflectMethodAndInvoke("OnHeroComesOfAge", dispatcher, objectParams);
            }
        }
コード例 #3
0
ファイル: GameComponent.cs プロジェクト: suetree/MoreSpouses
        public static CampaignEventDispatcher CampaignEventDispatcher()
        {
            CampaignEventDispatcher dispatcher   = null;;
            PropertyInfo            propertyInfo = Campaign.Current.GetType().GetProperty("CampaignEventDispatcher", BindingFlags.Instance | BindingFlags.NonPublic);

            if (null != propertyInfo)
            {
                dispatcher = (CampaignEventDispatcher)propertyInfo.GetValue(Campaign.Current);
            }

            return(dispatcher);
        }
コード例 #4
0
 internal static void OnArmyDispersed(this CampaignEventDispatcher __instance, Army army, Army.ArmyDispersionReason reason, bool isPlayersArmy)
 {
     throw new NotImplementedException("Need to patch first");
 }