Exemple #1
0
    // Use this for initialization
    public void Init(Vector3 arrowObjPos, Vector3 arrowObjRot, float attackRange, Transform parentOrigin, ProjectileTrajectory trajectory = ProjectileTrajectory.Line)
    {
        _arrowObjPos  = arrowObjPos;
        _arrowObjRot  = arrowObjRot;
        _attackRange  = attackRange;
        _parentOrigin = parentOrigin;

        _projectileTrajectory = trajectory;

        _meshRenderer = gameObject.GetComponent <MeshRenderer>();
        Available     = true;
        PrepareArrow(true);
    }
Exemple #2
0
    public void SetRandomTrajectoryAndMultishoot()
    {
        int variation;

        switch (weapon_shootSecuence)
        {
        case ShootSecuence.barrage_1way:
        {
            variation = Random.Range(1, 4);
            if (variation == 1)
            {
                weapon_projectile_trajectory = ProjectileTrajectory.normal;
            }
            else if (variation == 2)
            {
                weapon_projectile_trajectory = ProjectileTrajectory.tracking;
            }
            else
            {
                weapon_projectile_trajectory = ProjectileTrajectory.binarytrack;
            }
            weapon_multishoot = Random.Range(4, 8);
            break;
        }

        case ShootSecuence.barrage_2way:
        {
            variation = Random.Range(1, 4);
            if (variation == 1)
            {
                weapon_projectile_trajectory = ProjectileTrajectory.normal;
            }
            else if (variation == 2)
            {
                weapon_projectile_trajectory = ProjectileTrajectory.tracking;
            }
            else
            {
                weapon_projectile_trajectory = ProjectileTrajectory.binarytrack;
            }
            weapon_multishoot = Random.Range(4, 8);
            break;
        }

        case ShootSecuence.barrage_crossful:
        {
            variation = Random.Range(1, 4);
            if (variation == 1)
            {
                weapon_projectile_trajectory = ProjectileTrajectory.normal;
            }
            else if (variation == 2)
            {
                weapon_projectile_trajectory = ProjectileTrajectory.tracking;
            }
            else
            {
                weapon_projectile_trajectory = ProjectileTrajectory.binarytrack;
            }
            weapon_multishoot = Random.Range(5, 9);
            break;
        }

        case ShootSecuence.barrage_crosshalf:
        {
            variation = Random.Range(1, 4);
            if (variation == 1)
            {
                weapon_projectile_trajectory = ProjectileTrajectory.normal;
            }
            else if (variation == 2)
            {
                weapon_projectile_trajectory = ProjectileTrajectory.tracking;
            }
            else
            {
                weapon_projectile_trajectory = ProjectileTrajectory.binarytrack;
            }
            weapon_multishoot = Random.Range(5, 9);
            break;
        }

        case ShootSecuence.barrage_standard:
        {
            variation = Random.Range(1, 4);
            if (variation == 1)
            {
                weapon_projectile_trajectory = ProjectileTrajectory.normal;
            }
            else if (variation == 2)
            {
                weapon_projectile_trajectory = ProjectileTrajectory.tracking;
            }
            else
            {
                weapon_projectile_trajectory = ProjectileTrajectory.binarytrack;
            }
            weapon_multishoot = Random.Range(1, 3) == 1 ? 1 : 2;
            break;
        }

        default:
        {
            variation = Random.Range(1, 9);
            if (variation <= 5)
            {
                weapon_projectile_trajectory = ProjectileTrajectory.normal;
            }
            else if (variation == 6)
            {
                weapon_projectile_trajectory = ProjectileTrajectory.helix;
            }
            else if (variation == 7)
            {
                weapon_projectile_trajectory = ProjectileTrajectory.tracking;
            }
            else
            {
                weapon_projectile_trajectory = ProjectileTrajectory.binarytrack;
            }
            if (Random.Range(1, 6) < 3)
            {
                weapon_multishoot = 1;
            }
            else
            {
                weapon_multishoot = Random.Range(3, 6);
            }
            break;
        }
        }
        switch (weapon_projectile_trajectory)
        {
        case ProjectileTrajectory.binarytrack:
        {
            weapon_multishootAperture = Random.Range(1f, 2.5f) * 10 * weapon_multishoot;
            break;
        }

        case ProjectileTrajectory.helix:
        {
            weapon_multishootAperture = Random.Range(1f, 1.5f) * 15f * weapon_multishoot;
            break;
        }

        case ProjectileTrajectory.tracking:
        {
            weapon_multishootAperture = Random.Range(1f, 2.5f) * 8f * weapon_multishoot;
            break;
        }

        default:
        {
            weapon_multishootAperture = Random.Range(1f, 2.5f) * 3.5f * weapon_multishoot;
            break;
        }
        }
    }