コード例 #1
0
        public MoodletSymptom(XmlDbRow row)
            : base(row)
        {
            if (BooterLogger.Exists(row, "BuffName", Guid))
            {
                if (!row.TryGetEnum <BuffNames>("BuffName", out mBuff, BuffNames.Undefined))
                {
                    mBuff = (BuffNames)row.GetUlong("BuffName", 0);
                    if (mBuff == 0)
                    {
                        mBuff = (BuffNames)ResourceUtils.HashString64(row.GetString("BuffName"));
                    }

                    if (!BuffManager.BuffDictionary.ContainsKey((ulong)mBuff))
                    {
                        BooterLogger.AddError(Guid + " Unknown BuffName: " + row.GetString("BuffName"));
                    }
                }
            }

            mMoodValue = row.GetInt("MoodValue", 0);

            mDuration = row.GetInt("Duration", 30);
            if (mDuration <= 0)
            {
                mDuration = -1;
            }

            mOrigin = (Origin)row.GetUlong("Origin", 0);
            if (mOrigin == Origin.None)
            {
                mOrigin = (Origin)ResourceUtils.HashString64(row.GetString("Origin"));
            }
        }
コード例 #2
0
 public void OnPreLoad()
 {
     if (GameUtils.IsInstalled(ProductVersion.EP10))
     {
         BooterLogger.AddError(SocialRHSReplacer.Perform <CommonSocials>("Invite to VIP Room", "InviteToVIP"));
     }
 }
コード例 #3
0
ファイル: BookBooter.cs プロジェクト: yakoder/NRaas
        public void OnObjectGroupCreated(IScriptObjectGroup group)
        {
            try
            {
                if (sObjectGroupCreated)
                {
                    return;
                }
                sObjectGroupCreated = true;

                if (sDelayedSkillBooks.Count > 0)
                {
                    BooterLogger.AddTrace("OnWorldLoadStarted: " + sDelayedSkillBooks.Count);

                    foreach (XmlDbData bookData in sDelayedSkillBooks)
                    {
                        LoadSkillBookData(bookData, "BookSkill");
                    }

                    sDelayedSkillBooks.Clear();

                    Bookstore.mItemDictionary.Clear();
                    Bookstore.LoadData();
                }
            }
            catch (Exception exception)
            {
                Common.Exception("OnWorldLoadStarted", exception);
            }
        }
コード例 #4
0
ファイル: SocialSymptom.cs プロジェクト: yakoder/NRaas
        public SocialSymptom(XmlDbRow row)
            : base(row)
        {
            if (BooterLogger.Exists(row, "Social", Guid))
            {
                mSocial = row.GetString("Social");

                if (mSocial != "Braaaiiins")
                {
                    if (ActionData.Get(mSocial) == null)
                    {
                        BooterLogger.AddError(Guid + " Invalid Social: " + mSocial);
                    }
                }
            }

            if (BooterLogger.Exists(row, "RoomOnly", Guid))
            {
                mRoomOnly = row.GetBool("RoomOnly");
            }

            mScoring = row.GetString("Scoring");

            if (!string.IsNullOrEmpty(mScoring))
            {
                if (ScoringLookup.GetScoring(mScoring) == null)
                {
                    BooterLogger.AddError(Guid + " Invalid Scoring: " + mScoring);
                }

                mMinimum = row.GetInt("Minimum", 0);
            }
        }
コード例 #5
0
        public virtual void Shutdown()
        {
            BooterLogger.AddTrace("Shutdown " + UnlocalizedName);

            foreach (Common.AlarmTask alarm in mAlarms.Keys)
            {
                alarm.Dispose();
            }
            mAlarms.Clear();

            foreach (EventListener listener in mListeners.Keys)
            {
                EventTracker.RemoveListener(listener);
            }
            mListeners.Clear();

            foreach (OptionItem option in mOptions)
            {
                IStoryProgressionUpdater updater = option as IStoryProgressionUpdater;
                if (updater == null)
                {
                    continue;
                }

                updater.Shutdown();
            }

            mOptions.Clear();
        }
コード例 #6
0
ファイル: Tagger.cs プロジェクト: pepoluan/NRaas
        public void OnWorldLoadFinished()
        {
            kDebugging = Settings.Debugging;

            EventTracker.AddListener(EventTypeId.kEnterInWorldSubState, new ProcessEventDelegate(this.OnLiveMode));
            EventTracker.AddListener(EventTypeId.kSimInstantiated, new ProcessEventDelegate(this.OnSimInstantiated));

            if (Tagger.Settings.mAddresses != null)
            {
                List <ulong> invalidIds = new List <ulong>();
                foreach (ulong lotId in Tagger.Settings.mAddresses.Keys)
                {
                    Lot lot;
                    if (LotManager.sLots.TryGetValue(lotId, out lot))
                    {
                        lot.mAddressLocalizationKey = Tagger.Settings.mAddresses[lotId];
                    }
                    else
                    {
                        invalidIds.Add(lotId);
                    }
                }
                foreach (ulong id in invalidIds)
                {
                    Tagger.Settings.mAddresses.Remove(id);

                    BooterLogger.AddTrace("Removed: " + id);
                }
            }
        }
コード例 #7
0
ファイル: PersonalityLookup.cs プロジェクト: yakoder/NRaas
        protected override void Perform(BooterHelper.BootFile file, XmlDbRow row)
        {
            BooterHelper.DataBootFile dataFile = file as BooterHelper.DataBootFile;
            if (dataFile == null)
            {
                return;
            }

            mIndex++;

            string personalityName = row.GetString("Name");

            if (string.IsNullOrEmpty(personalityName))
            {
                BooterLogger.AddError(file + " : Method " + mIndex + " Unnamed");
                return;
            }

            BooterLogger.AddTrace("Found " + personalityName);

            if (GetPersonality(personalityName) != null)
            {
                BooterLogger.AddError(personalityName + " Name already in use");
                return;
            }

            Type classType = row.GetClassType("FullClassName");

            if (classType == null)
            {
                BooterLogger.AddError(personalityName + " No Class");
                return;
            }

            SimPersonality personality = null;

            try
            {
                personality = classType.GetConstructor(new Type[0]).Invoke(new object[0]) as SimPersonality;
            }
            catch
            { }

            if (personality == null)
            {
                BooterLogger.AddError(personalityName + ": Constructor Fail " + row.GetString("FullClassName"));
            }
            else
            {
                XmlDbTable optionTable = dataFile.GetTable(personalityName);
                if (personality.Parse(row, optionTable))
                {
                    sLookup.Add(personalityName.ToLower(), personality);
                }
                else
                {
                    BooterLogger.AddError(personalityName + ": Parsing Fail");
                }
            }
        }
コード例 #8
0
        protected override void Perform(BooterHelper.BootFile file, XmlDbRow row)
        {
            BooterHelper.DataBootFile careerFile = new BooterHelper.DataBootFile(file.ToString(), row.GetString("Careers"), false);
            if (!careerFile.IsValid)
            {
                BooterLogger.AddError(file.ToString() + ": Unknown Careers File " + row.GetString("Careers"));
                return;
            }

            BooterHelper.DataBootFile careerEventsFile = new BooterHelper.DataBootFile(careerFile.ToString(), row.GetString("CareerEvents"), false);

            if (careerEventsFile.IsValid)
            {
                foreach (Career career in CareerManager.CareerList)
                {
                    XmlDbTable table3 = careerEventsFile.GetTable(career.Guid.ToString());
                    if (table3 != null)
                    {
                        LoadCareerEvents(career, careerEventsFile, table3);
                    }
                }
            }

            BooterHelper.DataBootTable table = new BooterHelper.DataBootTable(careerFile, "CareerList");
            if (!table.IsValid)
            {
                BooterLogger.AddError(file.ToString() + ": No CareerList " + careerFile.ToString());
                return;
            }

            table.Load(new CareerLoader(careerEventsFile).LoadCareer);
        }
コード例 #9
0
        public Main()
            : base(null)
        {
            Main = this;

            BooterLogger.AddTrace("Main Constructed");
        }
コード例 #10
0
ファイル: CommonSocials.cs プロジェクト: yakoder/NRaas
 public void OnPreLoad()
 {
     if (GameUtils.IsInstalled(ProductVersion.EP7))
     {
         BooterLogger.AddError(ActionDataReplacer.Perform <CommonSocials>("TestMagicWandEquipped"));
     }
 }
コード例 #11
0
 public void OnPreLoad()
 {
     if (GameUtils.IsInstalled(ProductVersion.EP2))
     {
         BooterLogger.AddError(SocialRHSReplacer.Perform <FinishMakeoverFreestyle>("Makeover Freestyle", "OnFinishMakeoverFreestyle"));
     }
 }
コード例 #12
0
ファイル: VectorBooter.cs プロジェクト: yakoder/NRaas
            protected void LoadStage(BooterHelper.BootFile file, XmlDbRow row)
            {
                Type type = row.GetClassType("FullClassName");

                if (type == null)
                {
                    BooterLogger.AddError("Invalid FullClassName: " + row.GetString("FullClassName"));
                    return;
                }

                Stage stage = null;

                try
                {
                    stage = type.GetConstructor(new Type[] { typeof(XmlDbRow) }).Invoke(new object[] { row }) as Stage;
                }
                catch (Exception e)
                {
                    BooterLogger.AddError("Contructor Fail: " + row.GetString("FullClassName"));

                    Common.Exception(file + Common.NewLine + row.GetString("FullClassName") + " Fail", e);
                }

                if (stage != null)
                {
                    mStages.Add(stage);
                }
            }
コード例 #13
0
        public ScoringStage(XmlDbRow row)
            : base(row)
        {
            if (BooterLogger.Exists(row, "Scoring", Name))
            {
                mScoring = row.GetString("Scoring");
                if (string.IsNullOrEmpty(mScoring))
                {
                    BooterLogger.AddError(Name + " Empty Scoring");
                }
                else if (ScoringLookup.GetScoring(mScoring) == null)
                {
                    BooterLogger.AddError(Name + " Invalid Scoring: " + mScoring);
                }
            }

            if (row.GetString("Minimum") == "Strength")
            {
                mMinimum = int.MinValue;
            }
            else
            {
                mMinimum = row.GetInt("Minimum", int.MinValue);
            }

            mMinMutation = row.GetString("MinMutation");
        }
コード例 #14
0
        public OccultSymptom(XmlDbRow row)
            : base(row)
        {
            if (BooterLogger.Exists(row, "Occult", Guid))
            {
                if (!row.TryGetEnum <OccultTypes>("Occult", out mOccult, OccultTypes.None))
                {
                    BooterLogger.AddError(" Unknown Occult: " + row.GetString("Occult"));
                }
            }

            if (BooterLogger.Exists(row, "Remove", Guid))
            {
                mRemove = row.GetBool("Remove");
            }

            if (BooterLogger.Exists(row, "DropOthers", Guid))
            {
                mDropOthers = row.GetBool("DropOthers");
            }

            if (BooterLogger.Exists(row, "AllowIfOthers", Guid))
            {
                mAllowIfOthers = row.GetBool("AllowIfOthers");
            }
        }
コード例 #15
0
 public void OnPreLoad()
 {
     if (GameUtils.IsInstalled(ProductVersion.EP2))
     {
         BooterLogger.AddError(SocialRHSReplacer.Perform <Vaccinate>("Vaccinate", "BeforeVaccinate"));
         BooterLogger.AddError(SocialRHSReplacer.Perform <Vaccinate>("Diagnose", "BeforeDiagnose"));
     }
 }
コード例 #16
0
ファイル: TestSettingStage.cs プロジェクト: yakoder/NRaas
 public TestSettingStage(XmlDbRow row)
     : base(row)
 {
     if (BooterLogger.Exists(row, "Setting", Name))
     {
         mSetting = row.GetString("Setting");
     }
 }
コード例 #17
0
 public StoryStage(XmlDbRow row)
     : base(row)
 {
     if (BooterLogger.Exists(row, "NextStage", Name))
     {
         mNextStage.First = row.GetString("NextStage");
     }
 }
コード例 #18
0
ファイル: CounterStage.cs プロジェクト: yakoder/NRaas
 public CounterStage(XmlDbRow row)
     : base(row)
 {
     if (BooterLogger.Exists(row, "Counter", Name))
     {
         mCounter = row.GetString("Counter");
     }
 }
コード例 #19
0
ファイル: FirestarterSymptom.cs プロジェクト: yakoder/NRaas
 public FirestarterSymptom(XmlDbRow row)
     : base(row)
 {
     if (BooterLogger.Exists(row, "Maximum", Guid))
     {
         mMaximum = row.GetInt("Maximum");
     }
 }
コード例 #20
0
        public IncrementalStage(XmlDbRow row)
            : base(row)
        {
            if (BooterLogger.Exists(row, "Maximum", Name))
            {
                mMaximum = row.GetInt("Maximum", 0);
            }

            mMaxMutation = row.GetString("MaxMutation");
        }
コード例 #21
0
        public override bool Parse(XmlDbRow row)
        {
            mIndex = row.GetInt("Index", -1);
            if (mIndex < 0)
            {
                BooterLogger.AddError("Invalid Index for " + mParentType + "." + mFieldName);
                return(false);
            }

            return(base.Parse(row));
        }
コード例 #22
0
        protected WeatherSettings GetSeason(XmlDbRow row)
        {
            Season season = row.GetEnum <Season>("Season", Season.Spring | Season.Summer | Season.Fall | Season.Winter);

            if (season == (Season.Spring | Season.Summer | Season.Fall | Season.Winter))
            {
                BooterLogger.AddError("Unknown Season: " + row.GetString("Season"));
                return(null);
            }

            return(Tempest.Settings.GetWeather(season, false));
        }
コード例 #23
0
            public ActionDataSetting(string name, XmlDbRow row)
                : this(name)
            {
                mFlags = Flags.None;

                if (row.Exists("Autonomous"))
                {
                    mAutonomous = row.GetBool("Autonomous");
                    mFlags     |= Flags.Autonomous;
                }

                if (row.Exists("UserDirected"))
                {
                    mUserDirected = row.GetBool("UserDirected");
                    mFlags       |= Flags.UserDirected;
                }

                if (row.Exists("AllowPregnant"))
                {
                    mAllowPregnant = row.GetBool("AllowPregnant");
                    mFlags        |= Flags.AllowPregnant;
                }

                if (row.Exists("ActorAgeSpecies"))
                {
                    mActorAgeSpecies = row.GetEnum <CASAGSAvailabilityFlags>("ActorAgeSpecies", CASAGSAvailabilityFlags.All);
                    if (mActorAgeSpecies == CASAGSAvailabilityFlags.All)
                    {
                        BooterLogger.AddError("Unknown ActorAgeSpecies: " + row.GetString("ActorAgeSpecies"));
                    }
                    else
                    {
                        mFlags |= Flags.ActorAgeSpecies;

                        mActorAgeSpeciesList = null;
                    }
                }

                if (row.Exists("TargetAgeSpecies"))
                {
                    mTargetAgeSpecies = row.GetEnum <CASAGSAvailabilityFlags>("TargetAgeSpecies", CASAGSAvailabilityFlags.All);
                    if (mTargetAgeSpecies == CASAGSAvailabilityFlags.All)
                    {
                        BooterLogger.AddError("Unknown TargetAgeSpecies: " + row.GetString("TargetAgeSpecies"));
                    }
                    else
                    {
                        mFlags |= Flags.TargetAgeSpecies;

                        mTargetAgeSpeciesList = null;
                    }
                }
            }
コード例 #24
0
ファイル: Tempest.cs プロジェクト: yakoder/NRaas
        public void OnPreLoad()
        {
            BooterLogger.AddError(SocialRHSReplacer.Perform <CommonSocials>("Trick Or Treat", "OnTrickOrTreatAccept"));

            InteractionTuning tuning = Tunings.GetTuning <Sprinkler, Sprinkler.PlayWithSprinkler.Definition>();

            if (tuning != null)
            {
                CommodityChange change = new CommodityChange(CommodityKind.Temperature, 10, false, 20, OutputUpdateType.ContinuousFlow, false, false, UpdateAboveAndBelowZeroType.Either);
                tuning.mTradeoff.mOutputs.Add(change);
            }
        }
コード例 #25
0
        public virtual void Startup(PersistentOptionBase options)
        {
            BooterLogger.AddTrace("Startup " + UnlocalizedName);

            mAlarms.Manager = this;

            foreach (OptionItem option in mOptions)
            {
                options.Restore(option);
            }

            Startup();
        }
コード例 #26
0
            public Data(XmlDbRow row, VectorBooter.Test test)
            {
                mGuid = row.GetString("GUID");

                mDelta = row.GetInt("Delta", 0);

                if (mDelta == 0)
                {
                    BooterLogger.AddError(mGuid + " Missing Delta");
                }

                mTest = test;
            }
コード例 #27
0
        public override bool ValidateStages(Dictionary <string, int> stages)
        {
            int stage;

            if (!stages.TryGetValue(mNextStage.First, out stage))
            {
                BooterLogger.AddError(Name + " NextStage Missing: " + mNextStage.First);
                return(false);
            }

            mNextStage.Second = stage;
            return(true);
        }
コード例 #28
0
        public HitMissTimedStage(XmlDbRow row)
            : base(row)
        {
            if (BooterLogger.Exists(row, "SuccessStage", Name))
            {
                mSuccessStage.First = row.GetString("SuccessStage");
            }

            if (BooterLogger.Exists(row, "FailureStage", Name))
            {
                mFailureStage.First = row.GetString("FailureStage");
            }
        }
コード例 #29
0
        public WeightBaseSymptom(XmlDbRow row)
            : base(row)
        {
            if (BooterLogger.Exists(row, "Minimum", Guid))
            {
                mMinimum = row.GetFloat("Minimum");
            }

            if (BooterLogger.Exists(row, "Maximum", Guid))
            {
                mMaximum = row.GetFloat("Maximum");
            }
        }
コード例 #30
0
        public CancelInteractionSymptom(XmlDbRow row)
            : base(row)
        {
            if (BooterLogger.Exists(row, "All", Guid))
            {
                mAll = row.GetBool("All");
            }

            if (BooterLogger.Exists(row, "AffectSleep", Guid))
            {
                mAffectSleep = row.GetBool("AffectSleep");
            }
        }