예제 #1
0
 public void Init(DtoSkill data)
 {
     m_Data = data;
     m_Desc = data.Name + "\n" + data.Description;
     // 加载图片
     ResourcesManager.Instance.Load(Paths.RES_SKILL_UI + data.Id, typeof(Sprite), this);
 }
예제 #2
0
        public override void OnOperationRequest(OperationRequest request, SendParameters sendParameters, MobaPeer peer)
        {
            MobaServer.LogInfo("处理技能升级的请求");

            int        playerId = UserManager.GetPlayer(peer.Username).Identification;
            BattleRoom room     = Caches.Battle.GetRoomByPlayerId(playerId);

            // 获取英雄数据
            DtoHero hero = room.GetDtoHero(playerId);

            if (hero == null || hero.SP < 1)
            {
                return;
            }

            // 获取技能id
            int skillId = (int)request[(byte)ParameterCode.SkillId];

            // 技能升级
            DtoSkill skill = hero.UpgradeSkill(skillId);

            if (skill == null)
            {
                return;
            }

            // 发送升级的技能数据和英雄id
            Dictionary <byte, object> data = new Dictionary <byte, object>();

            data.Add((byte)ParameterCode.DtoSkill, JsonMapper.ToJson(skill));
            data.Add((byte)ParameterCode.PlayerId, playerId);
            SendResponse(peer, request.OperationCode, data);
        }
예제 #3
0
    /// <summary>
    /// 更新界面
    /// </summary>
    /// <param name="skill"></param>
    public void UpdateView(DtoSkill skill)
    {
        m_Data = skill;
        // 第一次学习技能
        if (m_Data.Level == 1)
        {
            m_IsReady          = true;
            ImgMask.fillAmount = 0;
        }

        UpdataBtnUp();
    }
예제 #4
0
    public override void OnOperationResponse(OperationResponse response)
    {
        int heroId = (int)response[(byte)ParameterCode.PlayerId];

        // 是自身才有更新的必要
        if (GameData.HeroData.Id == heroId)
        {
            // 更新数据
            DtoSkill skill = JsonMapper.ToObject <DtoSkill>(response[(byte)ParameterCode.DtoSkill] as string);
            GameData.HeroData.SP--;
            // 更新ui
            m_ItemSkill.UpdateView(skill);
        }
    }
예제 #5
0
    /// <summary>
    /// 刷新界面
    /// </summary>
    /// <param name="hero"></param>
    public void UpdateView()
    {
        DtoHero hero = GameData.HeroData;

        // 更新状态条
        BarExp.value = (float)hero.Exp / (hero.Level * 300);
        BarHp.value  = (float)hero.CurHp / hero.MaxHp;
        BarMp.value  = (float)hero.CurMp / hero.MaxMp;

        // 更新文本
        TextAttack.text  = hero.Attack.ToString();
        TextDefense.text = hero.Defense.ToString();
        TextLevel.text   = "Lv." + hero.Level;
        TextHp.text      = hero.CurHp + "/" + hero.MaxHp;
        TextMp.text      = hero.CurMp + "/" + hero.MaxMp;
        TextCoins.text   = hero.Money.ToString();
        TextKDA.text     = hero.Kill + "/" + hero.Death;

        // 更新装备栏
        for (int i = 0; i < hero.Equipments.Length; i++)
        {
            if (hero.Equipments[i] != -1)
            {
                Equipments[i].sprite = ResourcesManager.Instance.GetAsset(Paths.RES_EQUIPMENT_UI + hero.Equipments[i]) as Sprite;
                Equipments[i].color  = Color.white;
            }
        }

        // 更新技能栏的升级状态
        if (GameData.HeroData.SP > 0)
        {
            DtoSkill skill = null;
            for (int i = 0; i < hero.Skills.Length; i++)
            {
                skill = hero.Skills[i];
                if (skill != null)
                {
                    ItemSkill item = Skills[i].GetComponent <ItemSkill>();
                    item.UpdataBtnUp();
                }
            }
        }
    }
예제 #6
0
        public async Task <IActionResult> Post([FromBody] DtoSkill dto)
        {
            var result = Mapper.Map <Skill>(dto);

            _context.Skills.Add(result);
            await _context.SaveChangesAsync();

            dto.Id = result.Id;
            var @event = new SkillsChanged
            {
                Created = new List <DtoSkill> {
                    dto
                }
            };

            _eventBus.Publish(@event);

            return(Ok(result.Id));
        }
예제 #7
0
    public void InitView()
    {
        // 获取数据
        DtoHero hero = GameData.HeroData;

        // 加载头像
        ResourcesManager.Instance.Load(Paths.RES_HEAD_UI + hero.Name, typeof(Sprite), this);
        // 默认状态
        BarExp.value = 0;
        BarHp.value  = 1;
        BarMp.value  = 1;
        // 赋值
        TextAttack.text  = hero.Attack.ToString();
        TextDefense.text = hero.Defense.ToString();
        TextLevel.text   = "Lv." + hero.Level;
        TextHp.text      = hero.CurHp + "/" + hero.MaxHp;
        TextMp.text      = hero.CurMp + "/" + hero.MaxMp;
        TextCoins.text   = hero.Money.ToString();
        TextKDA.text     = hero.Kill + "/" + hero.Death;

        // 飘字设置
        HUDText.CanvasParent = GameObject.Find("Canvas").transform;

        // 复活倒计时
        TextRebirth.text = ServerConfig.HeroRebirthCD.ToString();
        TextRebirth.gameObject.SetActive(false);

        // 技能设置
        DtoSkill skill = null;

        for (int i = 0; i < hero.Skills.Length; i++)
        {
            skill = hero.Skills[i];
            if (skill != null)
            {
                Skills[i].gameObject.SetActive(true);
                Skills[i].GetComponent <ItemSkill>().Init(skill);
            }
        }
    }