private void InitObject( LevelObjectView obj, ObjectTypeInfo objectTypeInfo, ObjectProtoInfo objectProtoInfo, SpawnLocation spawnLocation, LevelSettings levelSettings) { obj.transform.rotation = Quaternion.Euler(0f, spawnLocation.IsXFlipped ? 180f : 0f, 0f); var alternating = obj.GetComponent <AlternatingView>(); if (alternating != null) { int materialIndex = UnityEngine.Random.Range( 0, objectProtoInfo.AvailableMaterials.Length); alternating.Material = objectProtoInfo.AvailableMaterials[materialIndex]; } if (objectTypeInfo.Type == playerObjectType) { List <int> skillIds = playerStateStorage.Get().SkillIds; for (int i = 0; i < skillIds.Count; ++i) { Skill skill = skillStorage.Get(skillIds[i]); BaseSkill baseSkill = skillStorage.GetBase(skill.BaseId); ISkillHelper skillHelper = skillHelperStorage.Get(baseSkill.Type); skillHelper.AddSkill(skill, obj.gameObject); } } }
public SkillController( IPlayerHelper playerHelper, ISkillHelper skillHelper, ApplicationDbContext dbContext) { this.playerHelper = playerHelper; this.skillHelper = skillHelper; this.dbContext = dbContext; }
private static SkillListItemView.Item GetItem( BaseSkill baseSkill, IDictionary <int, Skill> currentSkills, PlayerState playerState, SkillStorage skillStorage, SkillHelperStorage skillHelperStorage, Translator translator) { ISkillHelper skillHelper = skillHelperStorage.Get(baseSkill.Type); Skill currentSkill = null; var currentSkillLevel = -1; var currentSkillDescription = ""; Skill nextSkill = null; if (currentSkillsBuffer.TryGetValue( baseSkill.Id, out currentSkill)) { currentSkillLevel = currentSkill.Level; currentSkillDescription = translator.Translate( "Skill.CurrentLevelDescription", skillHelper.GetSkillDescription( currentSkill, translator.Translate(baseSkill.Description) ) ); nextSkill = skillStorage.GetNextLevel(currentSkill.Id); } else { nextSkill = skillStorage.GetFirstLevel(baseSkill.Id); } int nextSkillId = -1; string nextSkillDescription = ""; if (nextSkill != null) { nextSkillId = nextSkill.Id; nextSkillDescription = translator.Translate( "Skill.NextLevelDescription", skillHelper.GetSkillDescription( nextSkill, translator.Translate(baseSkill.Description) ) ); } int maxSkillLevel = skillStorage.GetMaxLevel(baseSkill.Id).Level + 1; string currentSkillLevelText = translator.Translate( "Skill.CurrentLevel", currentSkillLevel + 1, maxSkillLevel); bool isSkillDisabled = playerState.AvailableSkillPointsCount <= 0; return(new SkillListItemView.Item { Img = baseSkill.Img, Name = translator.Translate(baseSkill.Name), CurrentLevel = currentSkillLevelText, CurrentLevelDescription = currentSkillDescription, NextLevelId = nextSkillId, NextLevelDescription = nextSkillDescription, IsDisabled = isSkillDisabled, Learn = translator.Translate("Skill.Learn") }); }
public void Add(SkillType type, ISkillHelper helper) { items[(int)type] = helper; }