public void Save(SerializableSkill serializable) { serializable.Name = Name; serializable.Description = Description; serializable.Icon = Icon; serializable.BaseRequirement = BaseRequirement.Value; serializable.RequirementPerLevel = RequirementPerLevel.Value; serializable.BasePrice = BasePrice.Value; serializable.PricePerLevel = PricePerLevel.Value; serializable.MaxLevel = MaxLevel.Value; }
public Skill(SerializableSkill skill, Database database) { ItemId = new ItemId <Skill>(skill.Id, skill.FileName); Name = skill.Name; Description = skill.Description; Icon = skill.Icon; BaseRequirement = new NumericValue <float>(skill.BaseRequirement, 0, 100); RequirementPerLevel = new NumericValue <float>(skill.RequirementPerLevel, 0, 100); BasePrice = new NumericValue <float>(skill.BasePrice, 0, 100); PricePerLevel = new NumericValue <float>(skill.PricePerLevel, 0, 100); MaxLevel = new NumericValue <int>(skill.MaxLevel, 1, 1000); }
/// <summary> /// Deserialization constructor from datafiles. /// </summary> /// <param name="group"></param> /// <param name="src"></param> /// <param name="arrayIndex"></param> internal StaticSkill(StaticSkillGroup group, SerializableSkill src, int arrayIndex) { m_id = src.ID; m_cost = src.Cost; m_rank = src.Rank; m_public = src.Public; m_name = src.Name; m_description = src.Description; m_descriptionNL = null; m_primaryAttribute = src.PrimaryAttribute; m_secondaryAttribute = src.SecondaryAttribute; m_trainableOnTrialAccount = src.CanTrainOnTrial; m_arrayIndex = arrayIndex; m_group = group; }
/// <summary> /// Deserialization constructor from datafiles. /// </summary> /// <param name="group"></param> /// <param name="src"></param> /// <param name="arrayIndex"></param> internal StaticSkill(StaticSkillGroup group, SerializableSkill src, int arrayIndex) { ID = src.ID; Cost = src.Cost; Rank = src.Rank; IsPublic = src.Public; Name = src.Name; Description = src.Description; PrimaryAttribute = src.PrimaryAttribute; SecondaryAttribute = src.SecondaryAttribute; ArrayIndex = arrayIndex; Group = group; Prerequisites = new Collection <StaticSkillLevel>(); FormattedCost = Cost.ToNumericString(0); AlphaLimit = src.AlphaLimit; }
/// <summary> /// Exports the skills in the skill group. /// </summary> /// <param name="group">The group.</param> /// <returns></returns> private static IEnumerable <SerializableSkill> ExportSkillsInGroup(IHasID group) { List <SerializableSkill> listOfSkillsInGroup = new List <SerializableSkill>(); foreach (InvTypes skill in Database.InvTypesTable.Where(x => x.GroupID == group.ID)) { Util.UpdatePercentDone(Database.SkillsTotalCount); SerializableSkill singleSkill = new SerializableSkill { ID = skill.ID, Name = skill.Name, Description = skill.Description, Public = skill.Published, Cost = (long)skill.BasePrice, }; // Export skill atributes Dictionary <int, Int64> skillAttributes = Database.DgmTypeAttributesTable.Where( x => x.ItemID == skill.ID).ToDictionary( attribute => attribute.AttributeID, attribute => attribute.GetInt64Value); singleSkill.Rank = skillAttributes.ContainsKey(DBConstants.SkillTimeConstantPropertyID) && skillAttributes[DBConstants.SkillTimeConstantPropertyID] > 0 ? skillAttributes[DBConstants.SkillTimeConstantPropertyID] : 1; singleSkill.PrimaryAttribute = skillAttributes.ContainsKey(DBConstants.PrimaryAttributePropertyID) ? IntToEveAttribute(skillAttributes[DBConstants.PrimaryAttributePropertyID]) : EveAttribute.None; singleSkill.SecondaryAttribute = skillAttributes.ContainsKey(DBConstants.SecondaryAttributePropertyID) ? IntToEveAttribute( skillAttributes[DBConstants.SecondaryAttributePropertyID]) : EveAttribute.None; singleSkill.CanTrainOnTrial = !skillAttributes.ContainsKey(DBConstants.CanNotBeTrainedOnTrialPropertyID) || skillAttributes[DBConstants.CanNotBeTrainedOnTrialPropertyID] == 0; // Export prerequesities List <SerializableSkillPrerequisite> listOfPrerequisites = new List <SerializableSkillPrerequisite>(); for (int i = 0; i < DBConstants.RequiredSkillPropertyIDs.Count; i++) { if (!skillAttributes.ContainsKey(DBConstants.RequiredSkillPropertyIDs[i]) || !skillAttributes.ContainsKey(DBConstants.RequiredSkillLevelPropertyIDs[i])) { continue; } InvTypes prereqSkill = Database.InvTypesTable[skillAttributes[DBConstants.RequiredSkillPropertyIDs[i]]]; SerializableSkillPrerequisite preReq = new SerializableSkillPrerequisite { ID = prereqSkill.ID, Level = skillAttributes[DBConstants.RequiredSkillLevelPropertyIDs[i]], Name = prereqSkill.Name }; // Add prerequisites listOfPrerequisites.Add(preReq); } // Add prerequesites to skill singleSkill.SkillPrerequisites.AddRange(listOfPrerequisites); // Add skill listOfSkillsInGroup.Add(singleSkill); } return(listOfSkillsInGroup); }
public void OnCastedSkill(SerializableSkill serializableSkill, int target) { Debug.Log("CAST on " + target + "dmg " + serializableSkill.HitRatio); fightController.DoActionOnId(target, (int)serializableSkill.HitRatio); fightController.TickFight(); }
/// <summary> /// Exports the skills in the skill group. /// </summary> /// <param name="group">The group.</param> /// <returns></returns> private static IEnumerable <SerializableSkill> ExportSkillsInGroup(IHasID group) { List <SerializableSkill> listOfSkillsInGroup = new List <SerializableSkill>(); var alphaLimit = HoboleaksAlphaSkills.GetAlphaSkillLimits(); var l5 = new SerializableSkillPrerequisite() { ID = 3348, // Leadership Level = 5, Name = Database.InvTypesTable[3348].Name }; foreach (InvTypes skill in Database.InvTypesTable.Where(x => x.GroupID == group.ID)) { Util.UpdatePercentDone(Database.SkillsTotalCount); int skillID = skill.ID; SerializableSkill singleSkill = new SerializableSkill { ID = skillID, Name = skill.Name, Description = skill.Description, Public = skill.Published, Cost = (long)skill.BasePrice, AlphaLimit = (alphaLimit.ContainsKey(skill.ID)) ? alphaLimit[skill.ID] : 0, }; // Export skill atributes Dictionary <int, long> skillAttributes = Database.DgmTypeAttributesTable.Where( x => x.ItemID == skill.ID).ToDictionary( attribute => attribute.AttributeID, attribute => attribute.GetInt64Value); singleSkill.Rank = skillAttributes.ContainsKey(DBConstants.SkillTimeConstantPropertyID) && skillAttributes[DBConstants.SkillTimeConstantPropertyID] > 0 ? skillAttributes[DBConstants.SkillTimeConstantPropertyID] : 1; singleSkill.PrimaryAttribute = skillAttributes.ContainsKey(DBConstants.PrimaryAttributePropertyID) ? IntToEveAttribute(skillAttributes[DBConstants.PrimaryAttributePropertyID]) : EveAttribute.None; singleSkill.SecondaryAttribute = skillAttributes.ContainsKey(DBConstants.SecondaryAttributePropertyID) ? IntToEveAttribute( skillAttributes[DBConstants.SecondaryAttributePropertyID]) : EveAttribute.None; // Export prerequisites List <SerializableSkillPrerequisite> listOfPrerequisites = new List <SerializableSkillPrerequisite>(); for (int i = 0; i < DBConstants.RequiredSkillPropertyIDs.Count; i++) { if (!skillAttributes.ContainsKey(DBConstants.RequiredSkillPropertyIDs[i]) || !skillAttributes.ContainsKey(DBConstants.RequiredSkillLevelPropertyIDs[i])) { continue; } InvTypes prereqSkill = Database.InvTypesTable[skillAttributes[DBConstants.RequiredSkillPropertyIDs[i]]]; SerializableSkillPrerequisite preReq = new SerializableSkillPrerequisite { ID = prereqSkill.ID, Level = skillAttributes[DBConstants.RequiredSkillLevelPropertyIDs[i]], Name = prereqSkill.Name }; // Add prerequisites listOfPrerequisites.Add(preReq); } // Add prerequesites to skill singleSkill.SkillPrerequisites.AddRange(listOfPrerequisites); // Hack: Fleet formation skills have all NULL attributes. CCPlease. if (skillID == DBConstants.FleetCoordinationSkillID) { singleSkill.Description = "Advanced fleet support skill allowing commanders to increase the size and spread of their fleet formations. Unlocks additional formation scaling options at each level of training."; singleSkill.Rank = 8; singleSkill.Cost = 40000000L; singleSkill.PrimaryAttribute = EveAttribute.Charisma; singleSkill.SecondaryAttribute = EveAttribute.Willpower; singleSkill.AlphaLimit = 0; singleSkill.SkillPrerequisites.Add(l5); singleSkill.SkillPrerequisites.Add(new SerializableSkillPrerequisite() { ID = DBConstants.FleetFormationsSkillID, Level = 1, Name = Database.InvTypesTable[DBConstants.FleetFormationsSkillID].Name }); } else if (skillID == DBConstants.FleetFormationsSkillID) { singleSkill.Description = "Fleet support skill allowing commanders to organize and warp fleets in formation. Unlocks additional formation types at each level of training."; singleSkill.Rank = 5; singleSkill.Cost = 40000000L; singleSkill.PrimaryAttribute = EveAttribute.Charisma; singleSkill.SecondaryAttribute = EveAttribute.Willpower; singleSkill.AlphaLimit = 0; singleSkill.SkillPrerequisites.Add(l5); } // Add skill listOfSkillsInGroup.Add(singleSkill); } return(listOfSkillsInGroup); }
public void ReceiveSkill(SerializableSkill skill, int characterId) { CastedSkill?.Invoke(skill, characterId); }
public void SendSkillData(SerializableSkill skill, int characterId) { ReceiveSkill(skill, characterId); }
/// <summary> /// Deserialization constructor from datafiles. /// </summary> /// <param name="group"></param> /// <param name="src"></param> /// <param name="arrayIndex"></param> internal StaticSkill(StaticSkillGroup group, SerializableSkill src, int arrayIndex) { m_id = src.ID; m_cost = src.Cost; m_rank = src.Rank; m_public = src.Public; m_name = src.Name; m_description = src.Description; m_descriptionNL = null; m_primaryAttribute = src.PrimaryAttribute; m_secondaryAttribute = src.SecondaryAttribute; m_trainableOnTrialAccount = src.CanTrainOnTrial; m_arrayIndex = arrayIndex; m_group = group; switch (m_name) { case "Analytical Mind": m_bonusAttribute = EveAttribute.Intelligence; m_learningClass = LearningClass.LowerTierAttribute; break; case "Logic": m_bonusAttribute = EveAttribute.Intelligence; m_learningClass = LearningClass.UpperTierAttribute; break; case "Empathy": m_bonusAttribute = EveAttribute.Charisma; m_learningClass = LearningClass.LowerTierAttribute; break; case "Presence": m_bonusAttribute = EveAttribute.Charisma; m_learningClass = LearningClass.UpperTierAttribute; break; case "Instant Recall": m_bonusAttribute = EveAttribute.Memory; m_learningClass = LearningClass.LowerTierAttribute; break; case "Eidetic Memory": m_bonusAttribute = EveAttribute.Memory; m_learningClass = LearningClass.UpperTierAttribute; break; case "Iron Will": m_bonusAttribute = EveAttribute.Willpower; m_learningClass = LearningClass.LowerTierAttribute; break; case "Focus": m_bonusAttribute = EveAttribute.Willpower; m_learningClass = LearningClass.UpperTierAttribute; break; case "Spatial Awareness": m_bonusAttribute = EveAttribute.Perception; m_learningClass = LearningClass.LowerTierAttribute; break; case "Clarity": m_bonusAttribute = EveAttribute.Perception; m_learningClass = LearningClass.UpperTierAttribute; break; case "Learning": m_bonusAttribute = EveAttribute.None; m_learningClass = LearningClass.Learning; break; default: m_bonusAttribute = EveAttribute.None; m_learningClass = LearningClass.None; break; } }