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); }
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); }
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); }
public static SkillDreamJob Get(SkillNames skill) { SkillDreamJob dreamJob; if (!sDreamSkillJobs.TryGetValue(skill, out dreamJob)) return null; return dreamJob; }
protected override bool Perform(SkillNames skill) { Book book; if (!mBooks.TryGetValue(skill, out book)) return false; return Perform(book); }
/* * 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); } }
protected EducateScenario(EducateScenario scenario) : base(scenario) { mName = scenario.mName; mSuccess = scenario.mSuccess; mSkill = scenario.mSkill; }
public static OccupationNames SkillToCareer(SkillNames skill) { OccupationNames career; if (!SkillCareers.TryGetValue(skill, out career)) return OccupationNames.Undefined; return career; }
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); }
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); }
protected EducateScenario(EducateScenario scenario) : base (scenario) { mName = scenario.mName; mSuccess = scenario.mSuccess; mSkill = scenario.mSkill; }
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); }
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); }
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); }
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); }
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); } }
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); }
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); } } }
internal void UpdateSkillNames() { SkillNames.Clear(); foreach (var skill in SkillCommands) { SkillNames.Add(skill.Skill.GetType().Name); } }
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); }
protected SkillDreamJob(SkillNames skill, Type requiredObject) : this(skill) { if (requiredObject != null) { mRequiredObjects = new List<Type>(); mRequiredObjects.Add(requiredObject); } }
protected SkillDreamJob(SkillNames skill, Type requiredObject) : this(skill) { if (requiredObject != null) { mRequiredObjects = new List <Type>(); mRequiredObjects.Add(requiredObject); } }
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)); }
protected override bool Perform(SkillNames skill) { Book book; if (!mBooks.TryGetValue(skill, out book)) { return(false); } return(Perform(book)); }
public static SkillDreamJob Get(SkillNames skill) { SkillDreamJob dreamJob; if (!sDreamSkillJobs.TryGetValue(skill, out dreamJob)) { return(null); } return(dreamJob); }
public static OccupationNames SkillToCareer(SkillNames skill) { OccupationNames career; if (!SkillCareers.TryGetValue(skill, out career)) { return(OccupationNames.Undefined); } return(career); }
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; }
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]] : "")); } }
public float GetConstantSkillFactor(SkillNames skill) { float multiple; if (!mSkillGains.TryGetValue(skill, out multiple)) { if (!mSkillGains.TryGetValue(SkillNames.None, out multiple)) { multiple = 1f; } } return(multiple); }
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); } }
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); }
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(); } } } }
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); }
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); }
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); }
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); }
public void Import(Persistence.Lookup settings) { mSkill = settings.GetEnum<SkillNames>("Skill", SkillNames.None); mLevel = settings.GetInt("Level", 0); }
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); }
public PersistItem(SkillNames skill, int level) { mSkill = skill; mLevel = level; }
protected SkillDreamJob(SkillNames skill, Type[] requiredObjects) : this(skill) { mRequiredObjects = new List<Type>(requiredObjects); }
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; }
public static bool IsSkill(SkillNames skill) { return sData.ContainsKey(skill); }
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; }
public float GetSkillFactor(SkillNames skill) { return (GetConstantSkillFactor(skill) * GetDynamicSkillFactor(skill)); }
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; }
public float GetConstantSkillFactor(SkillNames skill) { float multiple; if (!mSkillGains.TryGetValue(skill, out multiple)) { if (!mSkillGains.TryGetValue(SkillNames.None, out multiple)) { multiple = 1f; } } return multiple; }
protected SkillDreamJob(SkillNames skill) : base (SkillToCareer(skill)) { }
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; }
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; }