コード例 #1
0
ファイル: SkillGainScenario.cs プロジェクト: yakoder/NRaas
        protected override bool PrivateUpdate(ScenarioFrame frame)
        {
            List <SkillNames> skills = new List <SkillNames>();

            GetPotentialSkills(skills);

            while (skills.Count > 0)
            {
                SkillNames skillName = RandomUtil.GetRandomObjectFromList(skills);
                skills.Remove(skillName);

                if (Perform(skillName))
                {
                    Skill skill = Sim.SkillManager.GetElement(skillName);
                    if (skill != null)
                    {
                        mSkillName = skill.Name;
                    }
                    return(true);
                }
            }

            IncStat("No Choices");
            return(false);
        }
コード例 #2
0
ファイル: Busker.cs プロジェクト: yakoder/NRaas
        public static float GetPay(Sim sim, SkillNames skillName)
        {
            BandSkill skill = sim.SkillManager.GetSkill <BandSkill>(skillName);

            if (skill == null)
            {
                return(0);
            }

            float cashPerHour = skill.SkillLevel + skill.KnownCompositions.Count;

            cashPerHour *= (skill.KnownMasterCompositions.Count + 1);

            int listeners = 0;

            foreach (Sim other in sim.LotCurrent.GetSims())
            {
                if (other.SimDescription.AssignedRole != null)
                {
                    continue;
                }

                if (other.RoomId == sim.RoomId)
                {
                    listeners++;
                }
            }

            cashPerHour *= listeners;

            return(cashPerHour);
        }
コード例 #3
0
ファイル: SkillLevelSimData.cs プロジェクト: yakoder/NRaas
        public bool Adjust(Common.IStatGenerator manager, SkillNames skillName)
        {
            if (mSkillLevels == null)
            {
                return(false);
            }

            Skill skill = Sim.SkillManager.GetElement(skillName);

            if (skill != null)
            {
                int   origLevel  = 0;
                float origPoints = 0;

                if (mSkillLevels.ContainsKey(skill.Guid))
                {
                    origLevel  = mSkillLevels[skill.Guid].First;
                    origPoints = mSkillLevels[skill.Guid].Second;
                }

                int change = skill.SkillLevel - origLevel;
                if (change > 0)
                {
                    manager.AddStat("Lowered: " + skill.Guid, change);

                    skill.SkillLevel  = origLevel;
                    skill.SkillPoints = origPoints;

                    skill.UpdateProgress();
                }
            }

            return(true);
        }
コード例 #4
0
ファイル: SkillDreamJob.cs プロジェクト: Robobeurre/NRaas
        public static SkillDreamJob Get(SkillNames skill)
        {
            SkillDreamJob dreamJob;
            if (!sDreamSkillJobs.TryGetValue(skill, out dreamJob)) return null;

            return dreamJob;
        }
コード例 #5
0
ファイル: ReadScenario.cs プロジェクト: Robobeurre/NRaas
        protected override bool Perform(SkillNames skill)
        {
            Book book;
            if (!mBooks.TryGetValue(skill, out book)) return false;

            return Perform(book);
        }
コード例 #6
0
    /*
     * Attaches skill script corresponding to int skillID onto the character equipping the skill.
     * skillID will be obtained from skill pickup objects (not implemented yet),
     * which will contain an ID in enum skillNames of the corresponding skill.
     *
     * eg. Fireball skill pickup object has int skillID = SkillAssigner.skillNames.TESTFIREBALL.
     * When the player equips the pickup, its skillID is passed as a parameter for this
     * function.
     * */
    public static Skills AssignSkill(GameObject character, SkillNames skill)
    {
        switch (skill)
        {
        case SkillNames.TESTFIREBALL:
            return(character.AddComponent <TestFireball>());

        case SkillNames.SKILLMIST:
            return(character.AddComponent <SkillMist>());

        case SkillNames.SKILLHASTE:
            return(character.AddComponent <SkillHaste>());

        case SkillNames.SKILLMINE:
            return(character.AddComponent <SkillMine>());

        case SkillNames.SHIELD:
            return(character.AddComponent <SkillOrbitShield>());

        case SkillNames.TIMESLOW:
            return(character.AddComponent <SkillTimeSlow>());

        default:
            return(null);
        }
    }
コード例 #7
0
 protected EducateScenario(EducateScenario scenario)
     : base(scenario)
 {
     mName    = scenario.mName;
     mSuccess = scenario.mSuccess;
     mSkill   = scenario.mSkill;
 }
コード例 #8
0
ファイル: SkillDreamJob.cs プロジェクト: Robobeurre/NRaas
        public static OccupationNames SkillToCareer(SkillNames skill)
        {
            OccupationNames career;
            if (!SkillCareers.TryGetValue(skill, out career)) return OccupationNames.Undefined;

            return career;
        }
コード例 #9
0
        public static bool SimCanLearnSkill(SkillNames skillName, SimDescription simDesc)
        {
            Skill skill = SkillManager.GetStaticSkill(skillName);

            if (skill == null)
            {
                return(false);
            }

            if ((CASUtils.CASAGSAvailabilityFlagsFromCASAgeGenderFlags(CASAgeGenderFlags.Adult | simDesc.Species) & skill.AvailableAgeSpecies) != CASAGSAvailabilityFlags.None)
            {
                return(true);
            }

            if ((CASUtils.CASAGSAvailabilityFlagsFromCASAgeGenderFlags(CASAgeGenderFlags.Teen | simDesc.Species) & skill.AvailableAgeSpecies) != CASAGSAvailabilityFlags.None)
            {
                return(true);
            }

            if ((CASUtils.CASAGSAvailabilityFlagsFromCASAgeGenderFlags(CASAgeGenderFlags.Child | simDesc.Species) & skill.AvailableAgeSpecies) != CASAGSAvailabilityFlags.None)
            {
                return(true);
            }

            if ((CASUtils.CASAGSAvailabilityFlagsFromCASAgeGenderFlags(CASAgeGenderFlags.Toddler | simDesc.Species) & skill.AvailableAgeSpecies) != CASAGSAvailabilityFlags.None)
            {
                return(true);
            }

            return(false);
        }
コード例 #10
0
        public override bool Parse(XmlDbRow row, ref string error)
        {
            if (!base.Parse(row, ref error))
            {
                return(false);
            }

            if (row.Exists("CustomSkill"))
            {
                mSkill = SkillManager.sSkillEnumValues.ParseEnumValue(row.GetString("CustomSkill"));
                if (mSkill == SkillNames.None)
                {
                    //error = "CustomSkill unknown: " + row.GetString("CustomSkill");
                    return(false);
                }
            }
            else
            {
                mSkill = SkillManager.sSkillEnumValues.ParseEnumValue(row.GetString("Skill"));
                if (mSkill == SkillNames.None)
                {
                    error = "Skill unknown: " + row.GetString("Skill");
                    return(false);
                }
            }

            return(true);
        }
コード例 #11
0
ファイル: EducateScenario.cs プロジェクト: Robobeurre/NRaas
 protected EducateScenario(EducateScenario scenario)
     : base (scenario)
 {
     mName = scenario.mName;
     mSuccess = scenario.mSuccess;
     mSkill = scenario.mSkill;
 }
コード例 #12
0
ファイル: SkillLevelSimData.cs プロジェクト: yakoder/NRaas
        public void UpdateSkill(SkillNames guid)
        {
            if (Sim == null)
            {
                return;
            }

            if (Sim.SkillManager == null)
            {
                return;
            }

            Reset();

            int   level  = 0;
            float points = 0;

            Skill skill = Sim.SkillManager.GetSkill <Skill>(guid);

            if (skill != null)
            {
                level  = skill.SkillLevel;
                points = skill.SkillPoints;
            }

            mSkillLevels[guid] = new Pair <int, float>(level, points);
        }
コード例 #13
0
        protected override bool Perform(SkillNames skill)
        {
            foreach (RabbitHole hole in Sims3.Gameplay.Queries.GetObjects <RabbitHole>())
            {
                foreach (InteractionObjectPair pair in hole.Interactions)
                {
                    RabbitHole.AttendClassInRabbitHole.Definition interaction = pair.InteractionDefinition as RabbitHole.AttendClassInRabbitHole.Definition;
                    if (interaction == null)
                    {
                        continue;
                    }

                    if (interaction.Skill != skill)
                    {
                        continue;
                    }

                    if (Situations.PushInteraction(this, Sim, hole, interaction))
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
コード例 #14
0
        public override bool Parse(XmlDbRow row, ref string error)
        {
            if (!row.Exists("Score"))
            {
                error = "Score missing";
                return(false);
            }

            mScore = row.GetInt("Score", 0);

            if (row.Exists("CustomSkill"))
            {
                mSkill = SkillManager.sSkillEnumValues.ParseEnumValue(row.GetString("CustomSkill"));
                if (mSkill == SkillNames.None)
                {
                    //error = "CustomSkill unknown: " + row.GetString("CustomSkill");
                    return(false);
                }
            }
            else
            {
                mSkill = SkillManager.sSkillEnumValues.ParseEnumValue(row.GetString("Skill"));
                if (mSkill == SkillNames.None)
                {
                    error = "Skill Unknown: " + row.GetString("Skill");
                    return(false);
                }
            }

            return(true);
        }
コード例 #15
0
ファイル: PersistedSettings.cs プロジェクト: yakoder/NRaas
        public float GetDynamicSkillFactor(SkillNames skill)
        {
            float multiple = 1f;

            bool value;

            if (!mRelativeSkills.TryGetValue(skill, out value))
            {
                if (!mRelativeSkills.TryGetValue(SkillNames.None, out value))
                {
                    value = true;
                }
            }

            if (value)
            {
                multiple *= sRelativeFactor;
            }

            if (mApplyLifeSpanSkillFactor)
            {
                multiple *= (90f / LifeSpan.GetHumanAgeSpanLength());
            }

            if (multiple < 0)
            {
                multiple = 0;
            }

            return(multiple);
        }
コード例 #16
0
    public static Skills AssignSkill(GameObject parent, SkillNames skill)
    {
        switch (skill)
        {
        case SkillNames.JUDGEMENT:
            return(parent.AddComponent <SkillJudgement>());

        case SkillNames.PURGE:
            return(parent.AddComponent <SkillPurge>());

        case SkillNames.HEAL:
            return(parent.AddComponent <SkillHeal>());

        case SkillNames.HRAESBEAT:
            return(parent.AddComponent <SkillHraesBeat>());

        case SkillNames.KNIFETHROW:
            return(parent.AddComponent <SkillKnifeThrow>());

        case SkillNames.REALLOCATE:
            return(parent.AddComponent <SkillReallocate>());

        case SkillNames.ACTIVEHEALING:
            return(parent.AddComponent <SkillActiveHealing>());

        case SkillNames.AGILITY:
            return(parent.AddComponent <SkillAgility>());

        case SkillNames.FREASTORM:
            return(parent.AddComponent <SkillFreaStorm>());

        default:
            return(null);
        }
    }
コード例 #17
0
        public static bool HasMetric(Career job, SkillNames skill)
        {
            if (job == null)
            {
                return(false);
            }

            if (job.CurLevel == null)
            {
                return(false);
            }

            foreach (PerfMetric metric in job.CurLevel.Metrics)
            {
                MetricSkillX skillMetric = metric as MetricSkillX;
                if (skillMetric == null)
                {
                    continue;
                }

                if (skillMetric.SkillGuid == skill)
                {
                    return(true);
                }
            }

            return(false);
        }
コード例 #18
0
        private void _UpdateHeroInfo()
        {
            SkillNames.Clear();
            heroNameChars.Clear();

            if (Hero != null)
            {
                string name = Application.Current.TryFindResource(string.Format("Hero.{0}.Name", Hero.Name)) as string;
                if (name != null)
                {
                    foreach (var heroChar in name)
                    {
                        if (heroNameChars.Count > 0 && (char.IsUpper(heroChar) || char.IsLower(heroChar)) &&
                            (char.IsUpper(heroNameChars.Last().Last()) || char.IsUpper(heroNameChars.Last().Last())))
                        {
                            heroNameChars[heroNameChars.Count - 1] += heroChar;
                        }
                        else
                        {
                            heroNameChars.Add(heroChar.ToString());
                        }
                    }
                }
                foreach (var skill in Hero.Skills)
                {
                    SkillNames.Add(skill.GetType().Name);
                }
            }
        }
コード例 #19
0
 internal void UpdateSkillNames()
 {
     SkillNames.Clear();
     foreach (var skill in SkillCommands)
     {
         SkillNames.Add(skill.Skill.GetType().Name);
     }
 }
コード例 #20
0
ファイル: PersistedSettings.cs プロジェクト: yakoder/NRaas
        public PersistedSettings()
        {
            foreach (CommodityKind kind in kRelativeMotives)
            {
                mRelativeMotives.Add(kind, true);
            }

            List <SkillNames> absoluteSkills = new List <SkillNames>(kAbsoluteSkills);

            foreach (Skill skill in SkillManager.SkillDictionary)
            {
                if (absoluteSkills.Contains(skill.Guid))
                {
                    continue;
                }

                if (mRelativeSkills.ContainsKey(skill.Guid))
                {
                    continue;
                }

                mRelativeSkills.Add(skill.Guid, true);
            }

            foreach (string entry in kSkillGainFactors)
            {
                string[] entries = entry.Split(':');

                SkillNames skill = SkillNames.None;
                if (entries.Length >= 1)
                {
                    if (entries[0] != "All")
                    {
                        skill = SkillManager.sSkillEnumValues.ParseEnumValue(entries[0]);
                        if (skill == SkillNames.None)
                        {
                            continue;
                        }
                    }
                }

                float value = 1f;
                if (entries.Length == 2)
                {
                    if (!float.TryParse(entries[1], out value))
                    {
                        continue;
                    }
                }

                mSkillGains.Remove(skill);
                mSkillGains.Add(skill, value);
            }

            ParseMotiveDeltas("kMotiveDeltaFactors", mMotiveDeltasV2, kMotiveDeltaFactors);
            ParseMotiveDeltas("kMotiveDecayDeltaFactors", mMotiveDecayDeltasV2, kMotiveDecayDeltaFactors);
        }
コード例 #21
0
ファイル: SkillDreamJob.cs プロジェクト: Robobeurre/NRaas
 protected SkillDreamJob(SkillNames skill, Type requiredObject)
     : this(skill)
 {
     if (requiredObject != null)
     {
         mRequiredObjects = new List<Type>();
         mRequiredObjects.Add(requiredObject);
     }
 }
コード例 #22
0
ファイル: SkillDreamJob.cs プロジェクト: yakoder/NRaas
 protected SkillDreamJob(SkillNames skill, Type requiredObject)
     : this(skill)
 {
     if (requiredObject != null)
     {
         mRequiredObjects = new List <Type>();
         mRequiredObjects.Add(requiredObject);
     }
 }
コード例 #23
0
        public static int GetId(string skill)
        {
            var str = SkillNames.FirstOrDefault(t => t.Contains(skill, StringComparison.InvariantCultureIgnoreCase));

            if (string.IsNullOrEmpty(str))
            {
                return(-1);
            }
            return(Array.IndexOf(SkillNames, str));
        }
コード例 #24
0
        protected override bool Perform(SkillNames skill)
        {
            Book book;

            if (!mBooks.TryGetValue(skill, out book))
            {
                return(false);
            }

            return(Perform(book));
        }
コード例 #25
0
ファイル: SkillDreamJob.cs プロジェクト: yakoder/NRaas
        public static SkillDreamJob Get(SkillNames skill)
        {
            SkillDreamJob dreamJob;

            if (!sDreamSkillJobs.TryGetValue(skill, out dreamJob))
            {
                return(null);
            }

            return(dreamJob);
        }
コード例 #26
0
ファイル: SkillDreamJob.cs プロジェクト: yakoder/NRaas
        public static OccupationNames SkillToCareer(SkillNames skill)
        {
            OccupationNames career;

            if (!SkillCareers.TryGetValue(skill, out career))
            {
                return(OccupationNames.Undefined);
            }

            return(career);
        }
コード例 #27
0
ファイル: CommonSkill.cs プロジェクト: yakoder/NRaas
        public CommonSkill(SkillNames guid)
            : base(guid)
        {
            if (sStaticGuid == SkillNames.None)
            {
                // All GUID must be uint in order to bypass an error in SkillManager:ImportContent()
                sStaticGuid = (SkillNames)(uint)guid;
            }

            mSkillGuid = sStaticGuid;
        }
コード例 #28
0
ファイル: Data.cs プロジェクト: silkroadlegend/SilkroadScript
        private static IEnumerable <Skill> LoadSkillsData()
        {
            foreach (var data in _reader.GetFileText("skilldata.txt").Split('\n').Select(line => line.Trim()).Where(line => !string.IsNullOrEmpty(line) && _reader.FileExists(line)).SelectMany(ft => _reader.GetFileText(ft).Split('\n').Where(line => !string.IsNullOrEmpty(line)).Select(line => line.Trim().Split('\t'))))
            {
                yield return(new Skill(data, SkillNames.ContainsKey(data[62]) ? SkillNames[data[62]] : ""));
            }

            foreach (var data in _reader.GetFileText("skilldataenc.txt").Split('\n').Select(line => line.Trim()).Where(line => !string.IsNullOrEmpty(line) && _reader.FileExists(line)).SelectMany(ft => Decrypter.Decrypt(_reader.GetFileStream(ft)).Split('\n').Where(line => !string.IsNullOrEmpty(line)).Select(line => line.Trim().TrimStart('?').Split('\t')).Where(data => data.Length > 10)))
            {
                yield return(new Skill(data, SkillNames.ContainsKey(data[62]) ? SkillNames[data[62]] : ""));
            }
        }
コード例 #29
0
ファイル: PersistedSettings.cs プロジェクト: yakoder/NRaas
        public float GetConstantSkillFactor(SkillNames skill)
        {
            float multiple;

            if (!mSkillGains.TryGetValue(skill, out multiple))
            {
                if (!mSkillGains.TryGetValue(SkillNames.None, out multiple))
                {
                    multiple = 1f;
                }
            }

            return(multiple);
        }
コード例 #30
0
    public static ActiveSkills AssignActiveSkill(GameObject parent, SkillNames skill)
    {
        switch (skill)
        {
        case SkillNames.FIREBALL:
            return(parent.AddComponent <SkillFireball>());

        case SkillNames.TELEPORT:
            return(parent.AddComponent <SkillTeleport>());

        default:
            return(null);
        }
    }
コード例 #31
0
        public static float GetLevelFactor(Sim sim, SkillNames skill)
        {
            float factor = 1f;

            if (sim.SkillManager != null)
            {
                int skillLevel = sim.SkillManager.GetSkillLevel(skill);
                for (int i = 1; i < skillLevel; i++)
                {
                    factor *= 1.10f;
                }
            }

            return(factor);
        }
コード例 #32
0
        public static void UpdateExperience(Sim sim, SkillNames skillName, int funds)
        {
            if (sim.SkillManager != null)
            {
                Skill skill = sim.SkillManager.GetElement(skillName);
                if (skill != null)
                {
                    skill.UpdateXpForEarningMoney(funds);

                    if (sim.CareerManager != null)
                    {
                        sim.CareerManager.UpdateCareerUI();
                    }
                }
            }
        }
コード例 #33
0
        public static int GetCareerPay(Sim sim, SkillNames skill)
        {
            SkillBasedCareer career = GetSkillBasedCareer(sim, skill);

            if (career == null)
            {
                return(0);
            }

            SkillBasedCareerStaticData skillData = career.GetOccupationStaticDataForSkillBasedCareer();

            if (skillData == null)
            {
                return(0);
            }

            OccupationLevelStaticData genericData;

            if (!skillData.LevelStaticDataMap.TryGetValue(career.CareerLevel, out genericData))
            {
                return(0);
            }

            XpBasedCareerLevelStaticData data = genericData as XpBasedCareerLevelStaticData;

            if (data == null)
            {
                return(0);
            }

            if (data.Rewards.Length == 0)
            {
                return(0);
            }

            int cash = 0;

            foreach (XpBasedCareerReward reward in data.Rewards)
            {
                if (reward.Token == XpBasedCareerRewardType.Cash)
                {
                    cash += int.Parse(reward.Value);
                }
            }

            return(cash);
        }
コード例 #34
0
ファイル: TabletEx.cs プロジェクト: yakoder/NRaas
        public static void PopulateAudioPrograms(Sim actor, ref InteractionInstanceParameters parameters, out List <ObjectPicker.TabInfo> listObjs, out List <ObjectPicker.HeaderInfo> headers, out int NumSelectableRows)
        {
            NumSelectableRows = 0x1;
            headers           = new List <ObjectPicker.HeaderInfo>();
            listObjs          = new List <ObjectPicker.TabInfo>();
            headers.Add(new ObjectPicker.HeaderInfo(Tablet.sLocalizationKeyAudio + ":Title", "Ui/Tooltip/ObjectPicker:Name", 0xfa));
            List <ObjectPicker.RowInfo> rowInfo = new List <ObjectPicker.RowInfo>();

            SkillNames[]      collection = new SkillNames[] { SkillNames.Charisma, SkillNames.Cooking, SkillNames.Gardening, SkillNames.Guitar, SkillNames.Handiness, SkillNames.Nectar };
            List <SkillNames> list2      = new List <SkillNames>(collection);

            foreach (Skill staticSkill in SkillManager.SkillDictionary)
            {
                if (staticSkill.IsHiddenSkill(actor.SimDescription.GetCASAGSAvailabilityFlags()))
                {
                    continue;
                }

                // Don't include my custom skills as they increase points differently
                if (staticSkill.GetType().Assembly.FullName.Contains("NRaas"))
                {
                    continue;
                }

                Skill element = actor.SkillManager.GetElement(staticSkill.Guid);
                if ((element == null) || !element.ReachedMaxLevel())
                {
                    string title = staticSkill.Name;
                    if (Localization.HasLocalizationString(Tablet.sLocalizationKeyAudio + ":" + staticSkill.Guid))
                    {
                        title = Localization.LocalizeString(Tablet.sLocalizationKeyAudio + ":" + staticSkill.Guid, new object[0]);
                    }

                    List <ObjectPicker.ColumnInfo> columnInfo = new List <ObjectPicker.ColumnInfo>();
                    ThumbnailKey thumbnail = new ThumbnailKey(staticSkill.IconKey, ThumbnailSize.Medium);
                    columnInfo.Add(new ObjectPicker.ThumbAndTextColumn(thumbnail, title));
                    ObjectPicker.RowInfo info = new ObjectPicker.RowInfo(staticSkill.Guid, columnInfo);
                    rowInfo.Add(info);
                }
            }

            ObjectPicker.TabInfo item = new ObjectPicker.TabInfo("Coupon", Tablet.LocalizeAudioProgram("TabName", new object[0x0]), rowInfo);
            listObjs.Add(item);
        }
コード例 #35
0
ファイル: SkillStamp.cs プロジェクト: yakoder/NRaas
        public static List <SkillStamp> Create(List <string> values)
        {
            List <SkillStamp> result = new List <SkillStamp>();

            SkillStamp stamp = null;

            foreach (string value in values)
            {
                string[] split = value.Split(':');

                if (split.Length == 1)
                {
                    stamp = new SkillStamp(split[0]);
                    result.Add(stamp);
                }
                else if (split.Length == 2)
                {
                    if (stamp == null)
                    {
                        stamp = new SkillStamp(Common.Localize("SkillStamp:MenuName"));
                        result.Add(stamp);
                    }

                    SkillNames skill = SkillManager.sSkillEnumValues.ParseEnumValue(split[0]);
                    if (skill == SkillNames.None)
                    {
                        continue;
                    }

                    int level;
                    if (!int.TryParse(split[1], out level))
                    {
                        continue;
                    }

                    if (!stamp.mSkills.ContainsKey(skill))
                    {
                        stamp.mSkills.Add(skill, level);
                    }
                }
            }

            return(result);
        }
コード例 #36
0
ファイル: TabletEx.cs プロジェクト: Robobeurre/NRaas
        public static void PopulateAudioPrograms(Sim actor, ref InteractionInstanceParameters parameters, out List<ObjectPicker.TabInfo> listObjs, out List<ObjectPicker.HeaderInfo> headers, out int NumSelectableRows)
        {
            NumSelectableRows = 0x1;
            headers = new List<ObjectPicker.HeaderInfo>();
            listObjs = new List<ObjectPicker.TabInfo>();
            headers.Add(new ObjectPicker.HeaderInfo(Tablet.sLocalizationKeyAudio + ":Title", "Ui/Tooltip/ObjectPicker:Name", 0xfa));
            List<ObjectPicker.RowInfo> rowInfo = new List<ObjectPicker.RowInfo>();

            SkillNames[] collection = new SkillNames[] { SkillNames.Charisma, SkillNames.Cooking, SkillNames.Gardening, SkillNames.Guitar, SkillNames.Handiness, SkillNames.Nectar };
            List<SkillNames> list2 = new List<SkillNames>(collection);
            foreach (Skill staticSkill in SkillManager.SkillDictionary)
            {
                if (staticSkill.IsHiddenSkill(actor.SimDescription.GetCASAGSAvailabilityFlags())) continue;

                // Don't include my custom skills as they increase points differently
                if (staticSkill.GetType().Assembly.FullName.Contains("NRaas")) continue;

                Skill element = actor.SkillManager.GetElement(staticSkill.Guid);
                if ((element == null) || !element.ReachedMaxLevel())
                {
                    string title = staticSkill.Name;
                    if (Localization.HasLocalizationString(Tablet.sLocalizationKeyAudio + ":" + staticSkill.Guid))
                    {
                        title = Localization.LocalizeString(Tablet.sLocalizationKeyAudio + ":" + staticSkill.Guid, new object[0]);
                    }

                    List<ObjectPicker.ColumnInfo> columnInfo = new List<ObjectPicker.ColumnInfo>();
                    ThumbnailKey thumbnail = new ThumbnailKey(staticSkill.IconKey, ThumbnailSize.Medium);
                    columnInfo.Add(new ObjectPicker.ThumbAndTextColumn(thumbnail, title));
                    ObjectPicker.RowInfo info = new ObjectPicker.RowInfo(staticSkill.Guid, columnInfo);
                    rowInfo.Add(info);
                }
            }

            ObjectPicker.TabInfo item = new ObjectPicker.TabInfo("Coupon", Tablet.LocalizeAudioProgram("TabName", new object[0x0]), rowInfo);
            listObjs.Add(item);
        }
コード例 #37
0
ファイル: SkillStamp.cs プロジェクト: Robobeurre/NRaas
 public void Import(Persistence.Lookup settings)
 {
     mSkill = settings.GetEnum<SkillNames>("Skill", SkillNames.None);
     mLevel = settings.GetInt("Level", 0);
 }
コード例 #38
0
ファイル: EducateScenario.cs プロジェクト: Robobeurre/NRaas
        public override bool Parse(XmlDbRow row, ref string error)
        {
            mName = new WeightOption.NameOption(row);

            if (row.Exists("Skill"))
            {
                mSkill = SkillManager.sSkillEnumValues.ParseEnumValue(row.GetString("Skill"));
                if (mSkill == SkillNames.None)
                {
                    error = "Skill unknown";
                    return false;
                }
            }

            mSuccess = new WeightScenarioHelper(Origin.FromCharity);
            if (!mSuccess.Parse(row, Manager, this, "Success", ref error))
            {
                return false;
            }

            return base.Parse(row, ref error);
        }
コード例 #39
0
ファイル: SkillStamp.cs プロジェクト: Robobeurre/NRaas
 public PersistItem(SkillNames skill, int level)
 {
     mSkill = skill;
     mLevel = level;
 }
コード例 #40
0
ファイル: SkillDreamJob.cs プロジェクト: Robobeurre/NRaas
 protected SkillDreamJob(SkillNames skill, Type[] requiredObjects)
     : this(skill)
 {
     mRequiredObjects = new List<Type>(requiredObjects);
 }
コード例 #41
0
        public static int GetCareerPay(Sim sim, SkillNames skill)
        {
            SkillBasedCareer career = GetSkillBasedCareer(sim, skill);
            if (career == null)
            {
                return 0;
            }

            SkillBasedCareerStaticData skillData = career.GetOccupationStaticDataForSkillBasedCareer();
            if (skillData == null)
            {
                return 0;
            }

            OccupationLevelStaticData genericData;
            if (!skillData.LevelStaticDataMap.TryGetValue(career.CareerLevel, out genericData))
            {
                return 0;
            }

            XpBasedCareerLevelStaticData data = genericData as XpBasedCareerLevelStaticData;
            if (data == null)
            {
                return 0;
            }

            if (data.Rewards.Length == 0)
            {
                return 0;
            }

            int cash = 0;
            foreach (XpBasedCareerReward reward in data.Rewards)
            {
                if (reward.Token == XpBasedCareerRewardType.Cash)
                {
                    cash += int.Parse(reward.Value);
                }
            }

            return cash;
        }
コード例 #42
0
 public static bool IsSkill(SkillNames skill)
 {
     return sData.ContainsKey(skill);
 }
コード例 #43
0
ファイル: PersistedSettings.cs プロジェクト: Robobeurre/NRaas
        public float GetDynamicSkillFactor(SkillNames skill)
        {
            float multiple = 1f;

            bool value;
            if (!mRelativeSkills.TryGetValue(skill, out value))
            {
                if (!mRelativeSkills.TryGetValue(SkillNames.None, out value))
                {
                    value = true;
                }
            }

            if (value)
            {
                multiple *= sRelativeFactor;
            }

            if (mApplyLifeSpanSkillFactor)
            {
                multiple *= (90f / LifeSpan.GetHumanAgeSpanLength());
            }

            if (multiple < 0)
            {
                multiple = 0;
            }

            return multiple;
        }
コード例 #44
0
ファイル: PersistedSettings.cs プロジェクト: Robobeurre/NRaas
 public float GetSkillFactor(SkillNames skill)
 {
     return (GetConstantSkillFactor(skill) * GetDynamicSkillFactor(skill));
 }
コード例 #45
0
        public static float GetLevelFactor(Sim sim, SkillNames skill)
        {
            float factor = 1f;

            if (sim.SkillManager != null)
            {
                int skillLevel = sim.SkillManager.GetSkillLevel(skill);
                for (int i = 1; i < skillLevel; i++)
                {
                    factor *= 1.10f;
                }
            }

            return factor;
        }
コード例 #46
0
        public static void UpdateExperience(Sim sim, SkillNames skillName, int funds)
        {
            if (sim.SkillManager != null)
            {
                Skill skill = sim.SkillManager.GetElement(skillName);
                if (skill != null)
                {
                    skill.UpdateXpForEarningMoney(funds);

                    if (sim.CareerManager != null)
                    {
                        sim.CareerManager.UpdateCareerUI();
                    }
                }
            }
        }
コード例 #47
0
ファイル: PersistedSettings.cs プロジェクト: Robobeurre/NRaas
        public float GetConstantSkillFactor(SkillNames skill)
        {
            float multiple;
            if (!mSkillGains.TryGetValue(skill, out multiple))
            {
                if (!mSkillGains.TryGetValue(SkillNames.None, out multiple))
                {
                    multiple = 1f;
                }
            }

            return multiple;
        }
コード例 #48
0
ファイル: SkillDreamJob.cs プロジェクト: Robobeurre/NRaas
 protected SkillDreamJob(SkillNames skill)
     : base (SkillToCareer(skill))
 { }
コード例 #49
0
ファイル: Busker.cs プロジェクト: Robobeurre/NRaas
        public static float GetPay(Sim sim, SkillNames skillName)
        {
            BandSkill skill = sim.SkillManager.GetSkill<BandSkill>(skillName);
            if (skill == null) return 0;

            float cashPerHour = skill.SkillLevel + skill.KnownCompositions.Count;

            cashPerHour *= (skill.KnownMasterCompositions.Count + 1);

            int listeners = 0;
            foreach(Sim other in sim.LotCurrent.GetSims())
            {
                if (other.SimDescription.AssignedRole != null) continue;

                if (other.RoomId == sim.RoomId)
                {
                    listeners++;
                }
            }

            cashPerHour *= listeners;

            return cashPerHour;
        }
コード例 #50
0
        public static SkillBasedCareer GetSkillBasedCareer(Sim sim, SkillNames skill)
        {
            SkillBasedCareer career = sim.OccupationAsSkillBasedCareer;
            if (career == null) return null;

            SkillBasedCareerStaticData skillData = career.GetOccupationStaticDataForSkillBasedCareer();
            if (skillData == null) return null;

            if (skillData.CorrespondingSkillName != skill)
            {
                return null;
            }

            return career;
        }