Beispiel #1
0
    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);
    }
Beispiel #2
0
    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);
    }