Exemplo n.º 1
0
 void Start()
 {
     anim       = GameObject.FindWithTag("Player").GetComponent <Animator>();
     currentHp  = PlayerStatusInfo.Instance().maxHp;
     currentMp  = PlayerStatusInfo.Instance().maxMp;
     currentExp = 0;
 }
Exemplo n.º 2
0
 /// <summary>
 /// 升级解锁技能监听
 /// </summary>
 public void ListenToUnlockSkill()
 {
     switch (PlayerStatusInfo.Instance().rank)
     {
     case 2: AddOneSkillById(4001); AddOneSkillById(4002); AddOneSkillById(4003); break;
     }
 }
Exemplo n.º 3
0
 /// <summary>
 /// 在zombie的attack动画中添加event片段,执行此函数,对player造成等同于zombie攻击力数值的伤害
 /// </summary>
 public void Attack()
 {
     if (PlayerStatusManager.Instance().currentHp > 0)
     {
         PlayerStatusManager.Instance().ReduceHp(attackPower - (int)(PlayerStatusInfo.Instance().def * 0.2f));
     }
 }
Exemplo n.º 4
0
 /// <summary>
 /// 减少玩家属性值(装备)
 /// </summary>
 /// <param name="info"></param>
 public void ReduceProperties(ObjectInfo info)
 {
     PlayerStatusInfo.Instance().attack -= info.attack;
     PlayerStatusInfo.Instance().def    -= info.def;
     PlayerStatusInfo.Instance().speed  -= info.speed;
     //更新一次玩家信息界面显示
     StatusBoard.Instance().UpdateStatusShow();
 }
Exemplo n.º 5
0
    /// <summary>
    /// 加Mp
    /// </summary>
    /// <param name="num">加Mp数量</param>
    public void AddMp(int num)
    {
        currentMp         = Mathf.Clamp(currentMp += num, 0, PlayerStatusInfo.Instance().maxMp);
        damageText2.text  = "MP+" + num.ToString();
        damageText2.color = Color.blue;
        GameObject obj = Instantiate(damageObj2, damageObj2.transform.position, damageObj2.transform.rotation);

        obj.transform.parent = colli.transform;
    }
Exemplo n.º 6
0
    /// <summary>
    /// 加Hp
    /// </summary>
    /// <param name="num">加Hp数量</param>
    public void AddHp(int num)
    {
        currentHp        = Mathf.Clamp(currentHp += num, 0, PlayerStatusInfo.Instance().maxHp);
        damageText.text  = "HP+" + num.ToString();
        damageText.color = Color.green;
        GameObject obj = Instantiate(damageObj, damageObj.transform.position, damageObj.transform.rotation);

        obj.transform.parent = colli.transform;
    }
Exemplo n.º 7
0
 /// <summary>
 /// 增加等级,属性,点数
 /// </summary>
 /// <param name="num">升级数目(默认1)</param>
 public void AddRankAndProp(int num = 1)
 {
     PlayerStatusInfo.Instance().rank += num;
     SkillBoard.Instance().ListenToUnlockSkill();
     PlayerStatusInfo.Instance().attack += 5;
     PlayerStatusInfo.Instance().def    += 3;
     PlayerStatusInfo.Instance().speed  += 1;
     AddPoint(5);
 }
Exemplo n.º 8
0
 /// <summary>
 /// 增加Exp
 /// </summary>
 /// <param name="num">增加Exp数目</param>
 public void AddExp(int num)
 {
     currentExp += num;
     //升级
     if (currentExp >= PlayerStatusInfo.Instance().maxExp)
     {
         AddRankAndProp(1);
         BoardManager.Instance().SwitchShowBoard(BoardManager.BoardShow.UPGRADEBOARD);
         currentExp -= PlayerStatusInfo.Instance().maxExp;
     }
 }
Exemplo n.º 9
0
    void Update()
    {
        //根据当前Hp/Mp/Exp和最大Hp/Mp/Exp百分比控制hp/Mp/Exp条百分比
        hpSlider.value  = ((float)currentHp / (float)PlayerStatusInfo.Instance().maxHp);
        hpNum.text      = currentHp.ToString();
        mpSlider.value  = ((float)currentMp / (float)PlayerStatusInfo.Instance().maxMp);
        mpNum.text      = currentMp.ToString();
        expSlider.value = ((float)currentExp / (float)PlayerStatusInfo.Instance().maxExp);
        expNum.text     = currentExp.ToString();

        rankNum.text = PlayerStatusInfo.Instance().rank.ToString();
    }
Exemplo n.º 10
0
    /// <summary>
    /// 减少玩家属性值(技能)
    /// </summary>
    /// <param name="type">技能加持buff类型</param>
    /// <param name="num">buff数值</param>
    public void ReduceProperties(SkillInfo.SkillEffectType type, int num)
    {
        switch (type)
        {
        case SkillInfo.SkillEffectType.ATTACK: PlayerStatusInfo.Instance().attack -= num; break;

        case SkillInfo.SkillEffectType.DEF:    PlayerStatusInfo.Instance().def -= num;    break;

        case SkillInfo.SkillEffectType.SPEED:  PlayerStatusInfo.Instance().speed -= num;  break;
        }
        //更新一次玩家信息界面显示
        StatusBoard.Instance().UpdateStatusShow();
    }
Exemplo n.º 11
0
    /// <summary>
    /// 增加玩家属性值(加点)
    /// </summary>
    /// <param name="selectName">点击的加点按钮明名称</param>
    /// <param name="num">默认一次加10点</param>
    public void AddProperties(string selectName, int num = 10)
    {
        switch (selectName)
        {
        case "AtkButton": PlayerStatusInfo.Instance().attack += num; break;

        case "DefButton": PlayerStatusInfo.Instance().def += num; break;

        case "SpButton": PlayerStatusInfo.Instance().speed += num; break;
        }
        //更新一次玩家信息界面显示
        StatusBoard.Instance().UpdateStatusShow();
    }
Exemplo n.º 12
0
    /// <summary>
    /// 增加玩家属性值(技能)
    /// </summary>
    /// <param name="type">技能加持buff类型</param>
    /// <param name="num">buff数值</param>
    public void AddProperties(SkillInfo.SkillEffectType type, int num)
    {
        Debug.Log(type.ToString());
        switch (type)
        {
        case SkillInfo.SkillEffectType.ATTACK: PlayerStatusInfo.Instance().attack += num; break;

        case SkillInfo.SkillEffectType.DEF:    PlayerStatusInfo.Instance().def += num;    break;

        case SkillInfo.SkillEffectType.SPEED:  PlayerStatusInfo.Instance().speed += num;  break;
        }
        //更新一次玩家信息界面显示
        StatusBoard.Instance().UpdateStatusShow();
    }
Exemplo n.º 13
0
    /// <summary>
    /// 扣Hp
    /// </summary>
    /// <param name="num">扣Hp数量</param>
    public void ReduceHp(int num)
    {
        currentHp        = Mathf.Clamp(currentHp -= num, 0, PlayerStatusInfo.Instance().maxHp);
        damageText.text  = "HP-" + num.ToString();
        damageText.color = Color.white;
        GameObject obj = Instantiate(damageObj, damageObj.transform.position, damageObj.transform.rotation);

        obj.transform.parent = colli.transform;
        //一般情况下只有扣血时才会死
        if (currentHp <= 0)
        {
            Global.playerState = Global.State.DieState;
            colli.enabled      = false;
            cc.enabled         = false;
            anim.SetBool("Die", true);
        }
    }
Exemplo n.º 14
0
    //被攻击逻辑
    void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.tag == "Weapon")
        {
            Debug.Log("被攻击");
            switch (AttackController.Instance().atkState)
            {
            case AttackController.AttackState.FIRST:  BeDamage(PlayerStatusInfo.Instance().attack *AttackController.firstAtkPowerPercent);  break;

            case AttackController.AttackState.SECOND: BeDamage(PlayerStatusInfo.Instance().attack *AttackController.secondAtkPowerPercent); break;

            case AttackController.AttackState.THIRD1: BeDamage(PlayerStatusInfo.Instance().attack *AttackController.thirdAtkPower1Percent); break;

            case AttackController.AttackState.THIRD2: BeDamage(PlayerStatusInfo.Instance().attack *AttackController.thirdAtkPower2Percent); break;

            case AttackController.AttackState.THIRD3: BeDamage(PlayerStatusInfo.Instance().attack *AttackController.thirdAtkPower3Percent); break;

            case AttackController.AttackState.THIRD4: BeDamage(PlayerStatusInfo.Instance().attack *AttackController.thirdAtkPower4Percent); break;
            }
        }
    }
Exemplo n.º 15
0
    /// <summary>
    /// 穿戴情况处理
    /// </summary>
    /// <param name="id">要穿戴装备id</param>
    /// <returns>成功穿戴return true</returns>
    public bool WearEquipmentById(int id)
    {
        ObjectInfo info = ObjectsInfo.Instance().GetObjectInfoById(id);

        if (info.suittype != PlayerStatusInfo.Instance().playertype)
        {
            return(false);
        }
        GridOfEquip tempGrid = null;

        switch (info.weartype)
        {
        case ObjectInfo.WearType.Headgear:  tempGrid = headgear;                                                                                                break;

        case ObjectInfo.WearType.Armor:         tempGrid = armor;                                                                                                       break;

        case ObjectInfo.WearType.Hand:          tempGrid = hand;    AppearChange.Instance().SwitchWeaponAppear(id); break;                  //目前只有武器可更换外观

        case ObjectInfo.WearType.Accessory: tempGrid = accessory;                                                                                               break;

        case ObjectInfo.WearType.Shoe:          tempGrid = shoe;                                                                                                break;
        }
        //对应装备栏已经有装备的情况,先卸下装备,使装备栏空且物品栏加入改装备
        if (tempGrid.id != 0)
        {
            tempGrid.UnloadThisGridEquip();
            Debug.Log("脱");
        }
        //向空的装备栏中添加装备
        Debug.Log("穿");
        GameObject equipNewItem = NGUITools.AddChild(tempGrid.gameObject, newEquip);

        equipNewItem.transform.localPosition         = Vector3.zero;
        equipNewItem.GetComponent <UISprite>().depth = 2;
        tempGrid.SetThisGridEquipById(id, info);
        return(true);
    }
Exemplo n.º 16
0
    /// <summary>
    /// 更新一次面板信息显示
    /// </summary>
    public void UpdateStatusShow()
    {
        hpNum.text    = PlayerStatusInfo.Instance().maxHp.ToString();
        mpNum.text    = PlayerStatusInfo.Instance().maxMp.ToString();
        atkNum.text   = PlayerStatusInfo.Instance().attack.ToString();
        defNum.text   = PlayerStatusInfo.Instance().def.ToString();
        spNum.text    = PlayerStatusInfo.Instance().speed.ToString();
        pointNum.text = PlayerStatusInfo.Instance().point.ToString();

        if (PlayerStatusInfo.Instance().point > 0)
        {
            foreach (GameObject eachButton in addPointButtons)
            {
                eachButton.SetActive(true);
            }
        }
        else
        {
            foreach (GameObject eachButton in addPointButtons)
            {
                eachButton.SetActive(false);
            }
        }
    }
Exemplo n.º 17
0
 public void ReducePoint(int num = 1)
 {
     PlayerStatusInfo.Instance().point -= num;
     //更新一次玩家信息界面显示
     StatusBoard.Instance().UpdateStatusShow();
 }
Exemplo n.º 18
0
 /// <summary>
 /// 增加升级点数
 /// </summary>
 /// <param name="num">增加数量(默认5)</param>
 public void AddPoint(int num = 5)
 {
     PlayerStatusInfo.Instance().point += num;
     //更新一次玩家信息界面显示
     StatusBoard.Instance().UpdateStatusShow();
 }
Exemplo n.º 19
0
 /// <summary>
 /// 使用物品加Hp和Mp
 /// </summary>
 /// <param name="info">使用的物品的ObjectInfo</param>
 public void AddHpAndMp(ObjectInfo info)
 {
     currentHp = Mathf.Clamp(currentHp += info.hp, 0, PlayerStatusInfo.Instance().maxHp);
     currentMp = Mathf.Clamp(currentMp += info.mp, 0, PlayerStatusInfo.Instance().maxMp);
 }