コード例 #1
0
    /// <summary>
    /// 怪物收到伤害
    /// </summary>
    /// <param name="hurtNumber"></param>
    public void OnHurt(int hurtNumber)
    {
        _CurrentState = GlobalParametr.SimplyEnemyState.Hurt;
        if (hurtNumber <= intDefender)
        {
            IntCurrentHealth -= 1;
        }
        else
        {
            IntCurrentHealth -= (hurtNumber - 20);
            if (IntCurrentHealth <= 0)
            {
                //死亡取消碰撞器
                GetComponent <CharacterController>().enabled = false;
                _CurrentState = GlobalParametr.SimplyEnemyState.Death;
                //角色增加经验值
                Ctrl_HeroProperty.Instance.UpgradeConition(GetComponent <Ctrl_Enemy_DropProperty>().RewardExp);
                //角色增加金币
                Ctrl_HeroProperty.Instance.AddGold(GetComponent <Ctrl_Enemy_DropProperty>().RewardGold);
                //角色增加物品
                foreach (Ctrl_Enemy_DropProperty.EnemyDropItem enemyDropItem in GetComponent <Ctrl_Enemy_DropProperty>()
                         .RewardItems)
                {
                    for (int i = 0; i < enemyDropItem.number; i++)
                    {
                        Ctrl_InventoryManager.Instance.AddItem(enemyDropItem.item);
                    }
                }

                //增加杀敌数量
                Ctrl_HeroProperty.Instance.AddKillnumber();
                //当前接受的任务中,击杀怪物中包含本身,并且当前任务不是提交状态,增加击杀个数
                foreach (Model_Quest quest in Ctrl_PlayerQuest.Instance.PlayQuestList)
                {
                    if (!quest.questSubmit)
                    {
                        foreach (Model_Quest.QuestEnemy enemy in quest.questKillEnemy)
                        {
                            if (enemy.enemyId == enemyId)
                            {
                                if (enemy.currentEnemyNumber < enemy.enemyNumber)
                                {
                                    enemy.currentEnemyNumber++;
                                    if (Ctrl_QuestItemManager.Instance.GetSelectOverlay().Quest.id == quest.id)
                                    {
                                        Ctrl_QuestItemManager.Instance.ShowQuestInfo(quest);
                                    }
                                }
                            }
                        }
                    }
                }

                StartCoroutine(WaitTimeDestroy());
            }
        }
    }
コード例 #2
0
    /// <summary>
    /// 怪物收到伤害
    /// </summary>
    /// <param name="hurtNumber"></param>
    public void OnHurt(int hurtNumber, float moveDirection)
    {
        _CurrentState = GlobalParametr.SimplyEnemyState.Hurt;
        if (hurtNumber <= intDefender)
        {
            IntCurrentHealth -= 1;
            //位移更新,增加技能击退效果,会根据技能的属性,来位置距离
            iTween.MoveBy(gameObject,
                          transform.InverseTransformDirection(GameObject.FindGameObjectWithTag("Player").transform.forward +
                                                              GameObject.FindGameObjectWithTag("Player").transform.forward *
                                                              moveDirection), 1f);
            Hud(1);
        }
        else
        {
            IntCurrentHealth -= (hurtNumber - intDefender);
            iTween.MoveBy(gameObject,
                          transform.InverseTransformDirection(GameObject.FindGameObjectWithTag("Player").transform.forward +
                                                              GameObject.FindGameObjectWithTag("Player").transform.forward *
                                                              moveDirection), 1f);
            Hud(hurtNumber - intDefender);

            if (IntCurrentHealth <= 0)
            {
                //死亡取消碰撞器
                GetComponent <CharacterController>().enabled = false;
                _CurrentState = GlobalParametr.SimplyEnemyState.Death;
                //角色增加经验值
                Ctrl_HeroProperty.Instance.UpgradeConition(GetComponent <Ctrl_Enemy_DropProperty>().RewardExp);
                //角色增加金币
                Ctrl_HeroProperty.Instance.AddGold(GetComponent <Ctrl_Enemy_DropProperty>().RewardGold);
                //角色增加物品
                foreach (Ctrl_Enemy_DropProperty.EnemyDropItem enemyDropItem in GetComponent <Ctrl_Enemy_DropProperty>()
                         .RewardItems)
                {
                    for (int i = 0; i < enemyDropItem.number; i++)
                    {
                        Ctrl_InventoryManager.Instance.AddItem(enemyDropItem.item);
                    }
                }

                #region 任务处理

                //当前接受的任务中,击杀怪物中包含本身,并且当前任务不是提交状态,增加击杀个数
                foreach (Model_Quest quest in Ctrl_PlayerQuest.Instance.PlayQuestList)
                {
                    if (!quest.questSubmit)
                    {
                        foreach (Model_Quest.QuestEnemy enemy in quest.questKillEnemy)
                        {
                            if (enemy.enemyId == enemyId)
                            {
                                if (enemy.currentEnemyNumber < enemy.enemyNumber)
                                {
                                    enemy.currentEnemyNumber++;
                                    if (Ctrl_QuestItemManager.Instance.GetSelectOverlay().Quest.id == quest.id)
                                    {
                                        Ctrl_QuestItemManager.Instance.ShowQuestInfo(quest);
                                    }
                                }
                            }
                        }
                    }
                }

                #endregion

                //增加杀敌数量
                Ctrl_HeroProperty.Instance.AddKillnumber();
                StartCoroutine(WaitTimeDestroy());
            }
        }
    }
コード例 #3
0
    /// <summary>
    /// 怪物收到伤害
    /// </summary>
    /// <param name="hurtNumber"></param>
    public void OnHurt(int hurtNumber)
    {
        _CurrentState = GlobalParametr.SimplyEnemyState.Hurt;
        if (hurtNumber <= intDefender)
        {
            IntCurrentHealth -= 1;
            GameObject hub = ObjectPoolTool.Instance.Pop(ObjectPoolTool.Instance.GetObject(objPool.HubText));
            hub.transform.parent           = Ctrl_TootipManager.Instance.UICanvas;
            hub.transform.position         = Camera.main.WorldToScreenPoint(this.transform.position) + offset;
            hub.GetComponent <Text>().text = "-" + 1;
            hub.GetComponent <View_HubText>().ShowHud();
            iTween.MoveTo(gameObject, new Vector3(transform.position.x, transform.position.y, transform.position.z - 1),
                          1);
        }
        else
        {
            IntCurrentHealth -= (hurtNumber - intDefender);
            GameObject hub = ObjectPoolTool.Instance.Pop(ObjectPoolTool.Instance.GetObject(objPool.HubText));
            hub.transform.parent           = Ctrl_TootipManager.Instance.UICanvas;
            hub.transform.position         = Camera.main.WorldToScreenPoint(this.transform.position) + offset;
            hub.GetComponent <Text>().text = "-" + (hurtNumber - intDefender);
            hub.GetComponent <View_HubText>().ShowHud();
            iTween.MoveTo(gameObject, new Vector3(transform.position.x, transform.position.y, transform.position.z - 1),
                          1);

            if (IntCurrentHealth <= 0)
            {
                //死亡取消碰撞器
                GetComponent <CharacterController>().enabled = false;
                _CurrentState = GlobalParametr.SimplyEnemyState.Death;
                //角色增加经验值
                Ctrl_HeroProperty.Instance.UpgradeConition(GetComponent <Ctrl_Enemy_DropProperty>().RewardExp);
                //角色增加金币
                Ctrl_HeroProperty.Instance.AddGold(GetComponent <Ctrl_Enemy_DropProperty>().RewardGold);
                //角色增加物品
                foreach (Ctrl_Enemy_DropProperty.EnemyDropItem enemyDropItem in GetComponent <Ctrl_Enemy_DropProperty>()
                         .RewardItems)
                {
                    for (int i = 0; i < enemyDropItem.number; i++)
                    {
                        Ctrl_InventoryManager.Instance.AddItem(enemyDropItem.item);
                    }
                }

                #region 任务处理

                //当前接受的任务中,击杀怪物中包含本身,并且当前任务不是提交状态,增加击杀个数
                foreach (Model_Quest quest in Ctrl_PlayerQuest.Instance.PlayQuestList)
                {
                    if (!quest.questSubmit)
                    {
                        foreach (Model_Quest.QuestEnemy enemy in quest.questKillEnemy)
                        {
                            if (enemy.enemyId == enemyId)
                            {
                                if (enemy.currentEnemyNumber < enemy.enemyNumber)
                                {
                                    enemy.currentEnemyNumber++;
                                    if (Ctrl_QuestItemManager.Instance.GetSelectOverlay().Quest.id == quest.id)
                                    {
                                        Ctrl_QuestItemManager.Instance.ShowQuestInfo(quest);
                                    }
                                }
                            }
                        }
                    }
                }

                #endregion

                //增加杀敌数量
                Ctrl_HeroProperty.Instance.AddKillnumber();
                StartCoroutine(WaitTimeDestroy());
            }
        }
    }