public void UpdateSkills(CharacterSkills skills) { // Remove skill slots foreach (SkillSlot slot in slots) { Destroy(slot.gameObject); } slots.Clear(); // Add skill slots foreach (Skill skill in skills.Skills) { GameObject slot; if (skill is MagicSkill) { slot = Instantiate(skillSlotPrefab, magicSkillsPanel); } else { slot = Instantiate(skillSlotPrefab, weaponSkillsPanel); } SkillSlot skillSlot = slot.GetComponent <SkillSlot>(); skillSlot.Skill = skill; if (skills.GetActiveSkills().Contains(skill)) { skillSlot.IsActive = true; } slots.Add(skillSlot); } }
public bool SetSkill(CharacterSkills skill, bool value, out bool pointRelatedIssue) { bool result = (value) ? characterCreation.TryDecreasingStatPoints(SkillCost, out pointRelatedIssue) : characterCreation.IncreaseStatPoints(SkillCost, out pointRelatedIssue); if (result) { if (!Skills.ContainsKey(skill)) { Skills.Add(skill, value); } else { Skills[skill] = value; } } characterCreation.Skills = GetSkills(); //pointRelatedIssue = !pointRelatedIssue; return(result); }
/// <summary> /// Used for AI character deserialization. /// </summary> /// <param name="data"></param> /// <returns></returns> private static CharacterData DataToAICData(JArray data) { CharacterData cData = new CharacterData(); CharacterStats cStats = new CharacterStats(); CharacterSkills cSkills = new CharacterSkills(); if (data[0] == null) { return(cData); } string dataStr = data[0].ToString(); JsonConvert.PopulateObject(dataStr, cData); JsonConvert.PopulateObject(dataStr, cStats); // JSON from backend is in an array. It is size 1 for most fetch methods. // We get the 1st index and then skills_json object from the json. // The string of the object is taken and deserialized into an dictionary to use in // cSkills. cSkills.skillMap = StringToDictionary(data[0]["skills_json"]); cData.stats = cStats; cData.skills = cSkills; return(cData); }
static bool Prefix(CharacterObject __instance, CharacterSkills ____characterSkills, ref int __result, SkillObject skill) { int focus = __instance.HeroObject.HeroDeveloper.GetFocus(skill); int attr = __instance.HeroObject.GetAttributeValue(skill.CharacterAttributesEnum); __result = (int)(____characterSkills.GetPropertyValue(skill) + focus * Reworked_SkillsSubModule.__FOCUS_VALUE + attr * Reworked_SkillsSubModule.__ATTR_VALUE); return(false); }
void Start() { cs = FindObjectOfType <CharacterSkills>(); rb = GetComponent <Rigidbody>(); normalGravity = gravity; nightmareCollider.gameObject.SetActive(false); rb.MovePosition(GameManager.instance.gameStartPoint.position); }
public Character(int level, string characterClass, string ascendancy, Summary summary, CharacterSkills skills) { Level = level; Class = characterClass; Ascendancy = ascendancy; Summary = summary; Skills = skills; }
private List <Character> LoadFromFile() { if (!File.Exists(_filename)) { return(new List <Character>()); } List <Character> listCha = new List <Character>(); XmlDocument doc = new XmlDocument(); doc.Load(_filename); //get inventories XmlNode characters = doc.GetElementsByTagName("characters").Item(0); //Pour chaque inventaire foreach (XmlElement character in characters.ChildNodes) { if (!ulong.TryParse(character.GetAttribute("id"), out ulong id)) { //Pas d'id, on stop le chargement de ce personnage break; } int.TryParse(character.GetAttribute("level"), out int level); int.TryParse(character.GetAttribute("experience"), out int experience); int.TryParse(character.GetAttribute("energy"), out int energy); int.TryParse(character.GetAttribute("maxEnergy"), out int maxEnergy); int.TryParse(character.GetAttribute("locationX"), out int locationX); int.TryParse(character.GetAttribute("locationY"), out int locationY); Character cha = new Character { Id = id, Energy = energy, MaxEnergy = maxEnergy, Level = level, Experience = experience, Location = new Models.MMap.Location(locationX, locationY), Name = character.GetAttribute("name"), OriginRegionName = character.GetAttribute("originRegionName"), Profession = (Profession)Enum.Parse(typeof(Profession), character.GetAttribute("profession")), Sex = (Sex)Enum.Parse(typeof(Sex), character.GetAttribute("sex")), TrueName = character.GetAttribute("trueName"), VillageName = character.GetAttribute("villageName"), Stats = CharacterStats.Deserialize((XmlElement)character.ChildNodes[0]), Skills = CharacterSkills.Deserialize((XmlElement)character.ChildNodes[1]) }; listCha.Add(cha); } return(listCha); }
public void SetSkillPossessedCondition(CharacterSkills skill, bool doWeWantTheSkill) { conditionTypeSet = ConditionTypes.SkillPossessed; if (skillPossessedCondition == null) { skillPossessedCondition = new SkillPossessedCondition(); } skillPossessedCondition.IsNeeded = doWeWantTheSkill; skillPossessedCondition.SkillToCheck = skill; }
public void SetAttributeTestCondition(CharacterAttribute stat, int mod, CharacterSkills skill) { conditionTypeSet = ConditionTypes.AttributeTest; if (attributeTestCondition == null) { attributeTestCondition = new AttributeTestCondition(); } attributeTestCondition.AttributeMod = mod; attributeTestCondition.Attribute = stat; attributeTestCondition.Skill = skill; }
public SkillComponent(IEntity entity, IEnumerable <CharacterSkillDto> skills) : this(entity) { if (skills == null) { return; } foreach (CharacterSkillDto characterSkill in skills) { CharacterSkills.Add(characterSkill.Id, characterSkill); this.AddSkill(characterSkill.Skill); } }
public static void CSSetEquip(Hero hero, int tier) { SkillObject HBestSkill1; SkillObject HBestSkill2; SkillObject HBestSkill3; Dictionary <SkillObject, int> HeroSkills = new Dictionary <SkillObject, int>(); CharacterSkills skills = (CharacterSkills)AccessTools.Field(typeof(Hero), "_heroSkills").GetValue(hero); //hero.GetHeroSkills(); /* * foreach (SkillObject skill in (from s in SkillObject.All * where s.IsPersonalSkill * group s by s.CharacterAttribute.Id).SelectMany((IGrouping<MBGUID, SkillObject> s) => s).ToList<SkillObject>()) * { * HeroSkills.Add(skill, skills.GetPropertyValue(skill)); //Add All the heros personal skills * } * HeroSkills.OrderByDescending(x => x.Value);//Sorts dictionary by highest skills * foreach (SkillObject skill in HeroSkills.Keys) * { * * } * List<CharacterObject> CharOptions = (from y in CharacterObject.All //Gets all possible troop options * where y.Tier == tier && y.Culture.StringId == hero.Culture.StringId && !y.IsHero * select y).ToList(); * CharOptions.Shuffle<CharacterObject>(); //shuffling to make it so there is still some possiblity of random. So x Cultue + x skill combo doesn't always get same * CharacterObject IdealTroop = null; * float ratio1 = 0; float ratio2 = 0; float ratio3 = 0; float ratiocur; * * * foreach (CharacterObject character in CharOptions) //Loop them and figure out which is the best option * { * Dictionary<SkillObject, int> troopskills = new Dictionary<SkillObject, int>(); * foreach (SkillObject troopskill in (from t in SkillObject. * where t.IsPersonalSkill * group t by t.CharacterAttribute.Id).SelectMany((IGrouping<MBGUID, SkillObject> t) => t).ToList<SkillObject>()) * { * troopskills.Add(troopskill, character.GetSkillValue(troopskill)); * } * */ CharacterObject IdealTroop = null; if (IdealTroop == null) //Fall back if idea troop logic fails { IdealTroop = (from y in CharacterObject.All where y.Tier == tier && y.Culture.StringId == hero.Culture.StringId && !y.IsHero select y).GetRandomElementInefficiently <CharacterObject>(); } Equipment equipment = IdealTroop.Equipment; hero.BattleEquipment.FillFrom(equipment); }
bool DrawPlayerSkillField(CharacterSkills prevSkill, int labelWidth, out CharacterSkills skill) { bool result = false; GUILayout.BeginHorizontal(); { EditorGUILayout.PrefixLabel("Skill" /*, GUILayout.Width(labelWidth)*/); skill = (CharacterSkills)EditorGUILayout.EnumPopup(prevSkill); result |= prevSkill != skill; } GUILayout.EndHorizontal(); return(result); }
public override void Interact() { if (EquipmentManager.instance.getEquip()[(int)EquipmentType.Weapon] != null) { if (EquipmentManager.instance.getEquip()[(int)EquipmentType.Weapon].isAxe) { playerInteract = player.transform.gameObject; characterSkills = playerInteract.GetComponent <CharacterSkills>(); if (characterSkills != null) { characterSkills.Hit(this); } Debug.Log("Interacted " + characterSkills); } } }
public static string ToString(this CharacterSkills skill, bool value) { switch (skill) { case CharacterSkills.Lockpicks: return("Lockpicks"); case CharacterSkills.Pickpocketing: return("Pickpocketing"); case CharacterSkills.Melee: return("Melee"); } throw new System.ArgumentOutOfRangeException(); }
public override void Execute(Character caller, string[] args) { if (args.Length < 1) { ShowSyntax(caller); } else { int amount = 0; bool isAmountSpecified; if (args.Length > 1) { isAmountSpecified = int.TryParse(args[args.Length - 1], out amount); } else { isAmountSpecified = false; } if (amount < 1) { amount = 1; } int skillID = -1; try { skillID = int.Parse(args[0]); } catch (FormatException) { // TODO: Fetch from strings. } Skill skillToSummonFrom = CharacterSkills.GetNewSkillFromInt(skillID); Summon summon = Summon.GetNewSummonFromSkill(skillToSummonFrom); // TODO: disperse multiple spawn, they are called with identical position thus overlap for (int i = 0; i < amount; i++) { caller.Map.Summons.Add(summon); } } }
void cl_SetSkills(List <int> aCharacterSkills, List <int> aSkilldeckSkills) { var i = 0; while (i < aCharacterSkills.Count) { var skillResource = SBDBSync.GetResourceObject <FSkill_Type>(aCharacterSkills[i]); if (skillResource == null) { throw new Exception("Skill not found: " + aCharacterSkills[i]); } CharacterSkills.Add(skillResource); ++i; } cl_UpdateSkilldeckSkills(aSkilldeckSkills); //OnCharacterSkillsChanged(); }
private void AddCharacterSkills(CharacterSkills skills) { int counter = 0; foreach (SkillTab skillTab in skills.SkillTabs) { counter++; string name = "Perks (should not be displayed in Singleplayer)"; switch (counter) { case 1: name = "Skill Page 1"; break; case 2: name = "Skill Page 2"; break; case 3: name = "Skill Page 3"; break; } TreeNode node = new TreeNode(name); foreach (Skill skill in skillTab.Skills) { TreeNode subNode = new TreeNode(skill.Name); subNode.ForeColor = Color.Red; subNode.Nodes.Add("ID: " + skill.SkillID); subNode.Nodes.Add("Learned: " + skill.Learned); subNode.Nodes.Add("Level: " + skill.CurrentLevel + "/" + skill.MaxLevel); subNode.Nodes.Add("Description: " + skill.Description); subNode.Nodes.Add("Position: " + skill.Position.X + "," + skill.Position.Y); subNode.Nodes.Add("Icon name: " + skill.IconName); subNode.Nodes.Add("Required skill (ID): " + (skill.RequiredSkills.Length > 0 ? skill.RequiredSkills[0].ToString() : "none")); subNode.Nodes.Add("Required skill (level): " + (skill.LevelsOfRequiredSkills.Length > 0 ? skill.LevelsOfRequiredSkills[0].ToString() : "none")); node.Nodes.Add(subNode); } treeViewSkills.Nodes.Add(node); } }
// Use this for initialization protected virtual void Start() { agent = GetComponent <NavMeshAgent>(); animator = GetComponentInChildren <Animator>(); combat = GetComponent <CharacterCombat>(); skills = GetComponent <CharacterSkills>(); // Allows us to swap animator with other clips (depending on what weapon) if (overrideController == null) { overrideController = new AnimatorOverrideController(animator.runtimeAnimatorController); } animator.runtimeAnimatorController = overrideController; // Example : overrideController["Punch"] = "Sword" currentAttackAnimSet = defaultAttackAnimSet; combat.OnAttack += OnAttack; }
/// <summary> /// 检查角色技能是否满足需求 /// </summary> /// <param name="industryActivitySkills">需求技能列表</param> /// <returns></returns> public bool CheckSkills(IEnumerable <industryActivitySkills> industryActivitySkills) { bool result = true; // 遍历技能列表 foreach (var s in industryActivitySkills) { // 若角色拥有该技能, 且技能等级大于需求等级, 则返回非空 result = CharacterSkills.SingleOrDefault(p => p.SkillID == s.skillID && p.Level >= s.level) != null; // 如果有一个技能需求不能满足, 则跳出判断 if (!result) { break; } } return(result); }
void savegameOverviewControl1_EntrySelectedEvent(object sender, EventArgs e) { SavegameOverviewEntry entry = (SavegameOverviewEntry)sender; UnitWrapper2 unit = (UnitWrapper2)entry.Tag; this.Text = unit.Name; treeViewSkills.Nodes.Clear(); CharacterSkills skills = unit.CharacterWrapper.CharacterSkills; CharacterValues values = unit.CharacterWrapper.CharacterValues; CharacterInventory inventory = unit.CharacterWrapper.CharacterInventory; AddCharacterStats(values); AddGeneralSkills(skills); AddCharacterSkills(skills); AddCharacterItems(inventory); }
private void AddGeneralSkills(CharacterSkills skills) { TreeNode general = new TreeNode("General skills (bugged for Ressurection -> where do all those extra skills come from?)"); foreach (Skill skill in skills.GeneralSkills.Skills) { TreeNode subNode = new TreeNode(skill.Name); subNode.ForeColor = Color.Red; subNode.Nodes.Add("ID: " + skill.SkillID); subNode.Nodes.Add("Learned: " + skill.Learned); subNode.Nodes.Add("Level: " + skill.CurrentLevel + "/" + skill.MaxLevel); subNode.Nodes.Add("Description: " + skill.Description); subNode.Nodes.Add("Position: " + skill.Position.X + "," + skill.Position.Y); subNode.Nodes.Add("Icon name: " + skill.IconName); subNode.Nodes.Add("Required skill (ID): " + (skill.RequiredSkills.Length > 0 ? skill.RequiredSkills[0].ToString() : "none")); subNode.Nodes.Add("Required skill (level): " + (skill.LevelsOfRequiredSkills.Length > 0 ? skill.LevelsOfRequiredSkills[0].ToString() : "none")); general.Nodes.Add(subNode); } treeViewSkills.Nodes.Add(general); }
/// <summary> /// Constructs a save with some default parameters. /// </summary> public Save() { Details = new CharacterDetails(); Proficiencies = new CharacterProficiencies(); Skills = new CharacterSkills(); Ammo = new Dictionary <AmmoType, AmmoPool>(); foreach (var pair in AmmoPool.AmmoDefinitions) { Ammo.Add(pair.Value, new AmmoPool()); } Items = new List <Item>(); Weapons = new List <Weapon>(); StatTable = new StatsTable(); LocationsVisited = new HashSet <Location>(); CurrentLocation = Location.Fyrestone; Playthroughs = new List <Playthrough>(); UnknownVariable15 = new List <Int32>(); UnknownVariable16 = new List <Int32>(); EchoPlaythroughs = new List <EchoPlaythrough>(); UnknownVariable17 = new byte[0]; }
public override void Execute(Character caller, string[] args) { if (args.Length < 1) { ShowSyntax(caller); } else { int skillID = int.Parse(args[0]); int skillLVL = int.Parse(args[1]); if (DataProvider.Skills.ContainsKey(skillID)) { if (caller.Skills.Contains(skillID)) { Skill skillToModify = caller.Skills[skillID]; skillToModify.CurrentLevel = (byte)skillLVL; CharacterSkills.UpdateSkill(skillToModify); } // TODO: needs proper treatment else if (!caller.Skills.Contains(skillID)) { Skill skillToAdd = new Skill(skillID) { CurrentLevel = (byte)skillLVL, MapleID = skillID }; CharacterSkills.UpdateSkill(skillToAdd); } } else { Character.Notify(caller, "[Command] Invalid skill ID."); } } }
/// <summary> /// Json array of characters info. /// </summary> private static CharacterData DataToCData(JArray data) { CharacterData cData = new CharacterData(); CharacterStats cStats = new CharacterStats(); CharacterSkills cSkills = new CharacterSkills(); if (data[0] != null) { JsonConvert.PopulateObject(data[0].ToString(), cData); } if (data[1] != null) { JsonConvert.PopulateObject(data[1].ToString(), cStats); } if (data[2] != null) { cSkills.skillMap = StringToDictionary(data[2]["skills_json"]); } cData.stats = cStats; cData.skills = cSkills; return(cData); }
/// <summary> /// Returns deserialized CharaterData /// </summary> /// <param name="data0">CharaterData json</param> /// <param name="data1">CharaterStat json</param> /// <param name="data2">CharacterSkill json</param> private static CharacterData DataToCData(JToken data0, JToken data1, JToken data2) { CharacterData cData = new CharacterData(); CharacterStats cStats = new CharacterStats(); CharacterSkills cSkills = new CharacterSkills(); if (data0 != null) { JsonConvert.PopulateObject(data0.ToString(), cData); } if (data1 != null) { JsonConvert.PopulateObject(data1.ToString(), cStats); } if (data2 != null) { cSkills.skillMap = StringToDictionary(data2["skills_json"]); } cData.stats = cStats; cData.skills = cSkills; return(cData); }
public async Task <IActionResult> Skills() { AuthDTO auth = GetAuth(_ESIClient); _Log.LogDebug(String.Format("Logged in to retrieve Character Info for Character Id: {0}", auth.CharacterId)); List <SkillQueueDataModel> skillsQueue = await GetSkillQueue(auth, auth.CharacterId); var characterFinishedSkillsApi = await _ESIClient.Skills.GetCharacterSkillsV4Async(auth); CharacterSkills characterFinishedSkillsApiModel = characterFinishedSkillsApi.Model; List <SkillFinishedSkillDataModel> skills = new List <SkillFinishedSkillDataModel>(); foreach (Skill skillApi in characterFinishedSkillsApiModel.Skills) { Skill_V_Row skill = _DBService.GetSkillForIdAndSkillLevel(skillApi.SkillId, skillApi.TrainedSkillLevel); skills.Add(new SkillFinishedSkillDataModel() { Skill = skill, Skill_API = skillApi }); } SkillFinishedDataModel skillsDataModel = new SkillFinishedDataModel() { TotalSp = characterFinishedSkillsApiModel.TotalSp, UnallocatedSp = characterFinishedSkillsApiModel.UnallocatedSp, Skills = skills }; var model = new CharacterSkillsViewModel() { SkillQueue = skillsQueue, Skills = skillsDataModel }; return(View(model)); }
internal AuthCharacterMain(ESIEve EasyEve) : base(EasyEve) { EasyObject = (ESIEve.Authenticated)EasyEve; Assets = new CharacterAssets(EasyObject); Bookmarks = new CharacterBookmarks(EasyObject); Calendar = new CharacterCalendar(EasyObject); Clones = new CharacterClones(EasyObject); Contacts = new CharacterContacts(EasyObject); Contracts = new CharacterContracts(EasyObject); FactionWarfare = new CharacterFactionWarfare(EasyObject); Fittings = new CharacterFittings(EasyObject); Fleet = new CharacterFleet(EasyObject); Industry = new CharacterIndustry(EasyObject); Killmails = new CharacterKillMails(EasyObject); Location = new CharacterLocation(EasyObject); Loyalty = new CharacterLoyalty(EasyObject); Mail = new CharacterMail(EasyObject); Market = new CharacterMarket(EasyObject); Opportunities = new CharacterOpportunities(EasyObject); PlanetaryInteraction = new CharacterPlanetaryInteraction(EasyObject); Skills = new CharacterSkills(EasyObject); Wallet = new CharacterWallet(EasyObject); }
public ICollection <Skill> GetSkills(string characterName, SkillType type) { CharacterSkills characterSkills = Retrieve <CharacterSkills>($"characters/{characterName}/skills"); ICollection <Skill> skills = new List <Skill>(); SkillRepository repository = new SkillRepository(); switch (type) { case (SkillType.PvE): skills = repository.GetSkills(GetSkillIds(characterSkills.SkillsInformation.PvE)); break; case (SkillType.PvP): skills = repository.GetSkills(GetSkillIds(characterSkills.SkillsInformation.PvP)); break; case (SkillType.WvW): skills = repository.GetSkills(GetSkillIds(characterSkills.SkillsInformation.WvW)); break; } return(skills); }
void Start() { cs = FindObjectOfType <CharacterSkills>(); //AddEvent(0, 0.6f, "Attack", 0); }
public CharacterSkillsEditor(CharacterSkills Skills) : base(Skills) { _skills = Skills ?? throw new ArgumentNullException(nameof(Skills)); }