public void AttackMonster() { //1-A Find Direction var direction = (_monster.transform.position - _player.position).normalized; //2-A calculate Att var attAmount = 1f; if (!_captureMood) { attAmount = RandomHelper.AbsZero(_characterManager.CharacterSetting.AbilityAttack - _monster.MonsterType.AbilityDefense) + RandomHelper.AbsZero(_characterManager.CharacterSetting.MagicAttack - _monster.MonsterType.MagicDefense) + RandomHelper.AbsZero(_characterManager.CharacterSetting.PoisonAttack - _monster.MonsterType.PoisonDefense); } //3-A calculate dealAtt var dealAtt = RandomHelper.CriticalRange(attAmount); print("Player " + _characterManager.CharacterSetting.GetInfo("Attack") + "-> Monster Lv" + _monster.MonsterType.Level + _monster.MonsterType.GetInfo("Defense") + " MonsterHealth (" + _monster.MonsterType.Health + ")" + " = " + dealAtt + "/" + attAmount + " Critical =" + (dealAtt > attAmount)); //4-A Use Energy if (!_inCombat) { if (!_characterManager.UseEnergy((int)attAmount)) { _inv.PrintMessage("Not enough energy to attack", Color.yellow); return; } } //5-A Cast Spell (Lunch spell-Drop dealAtt hit- AttackDealing) CastSpell(_player.position, _monster, dealAtt); //6- Show Ray cast Debug.DrawRay(_player.position, direction, Color.blue); }
private IEnumerator AttackPlayer(MonsterIns monsterType) { //todo: this is a hardcoded cast time for debugging yield return(new WaitForSeconds(1)); //1-A Find Direction //2-A calculate Att var attAmount = RandomHelper.AbsZero(monsterType.AbilityAttack - _characterManager.CharacterSetting.AbilityDefense) + RandomHelper.AbsZero(monsterType.MagicAttack - _characterManager.CharacterSetting.MagicDefense) + RandomHelper.AbsZero(monsterType.PoisonAttack - _characterManager.CharacterSetting.PoisonDefense); //3-A calculate dealAtt var dealAtt = RandomHelper.CriticalRange(attAmount); print("MonsterLv" + monsterType.Level + monsterType.GetInfo("Attack") + "-> Player" + _characterManager.CharacterSetting.GetInfo("Defense") + " PlayerHealth (" + _characterManager.CharacterSetting.Health + ")" + " = " + dealAtt + "/" + attAmount + " Critical =" + (dealAtt > attAmount)); //5-A Cast Spell (Lunch spell-Drop dealAtt hit- AttackDealing) CastSpell(dealAtt); }