/// <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()); } } }
/// <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()); } } }
/// <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()); } } }