コード例 #1
0
        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);
                }
            }
        }
コード例 #2
0
 public SkillController(
     IPlayerHelper playerHelper,
     ISkillHelper skillHelper,
     ApplicationDbContext dbContext)
 {
     this.playerHelper = playerHelper;
     this.skillHelper  = skillHelper;
     this.dbContext    = dbContext;
 }
コード例 #3
0
        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")
            });
        }
コード例 #4
0
 public void Add(SkillType type, ISkillHelper helper)
 {
     items[(int)type] = helper;
 }