示例#1
0
    private IEnumerator FindRefs()
    {
        float timeout = Time.time + 30;

        while (pb.CannonSettings == null)
        {
            shootInterval = pb.CannonSettings.shootInterval;
            if (Time.time > timeout)
            {
                Debug.LogError("To long to find player settings");
                yield break;
            }
            yield return(0);
        }

        while (!foundsbb)
        {
            sbb      = GetComponentInChildren <SubBaseBehaviour>();
            foundsbb = (sbb != null);
            if (Time.time > timeout)
            {
                Debug.LogError("Took to long to find SBB");
                yield break;
            }
            yield return(0);
        }

        while (!foundWeapon)
        {
            weaponAbstract = GetComponentInChildren <SubWeaponAbstract>();
            foundWeapon    = (weaponAbstract != null);
            if (Time.time > timeout)
            {
                Debug.LogError("Took to long to find Weapon abstract");
                yield break;
            }
            yield return(0);
        }
        weaponAbstract.GiveValues(pb, sbb);
        weaponAbstract.CreatePool();
    }
示例#2
0
    public GameObject CreateSub(SubBaseType _base, SubEngineType _engine, SubCannonType _cannon, SubSpecialType _special)
    {
        baseType    = _base;
        engineType  = _engine;
        cannonType  = _cannon;
        specialType = _special;

        GameObject _tempBase   = null;
        GameObject _tempEngine = null;
        GameObject _tempCannon = null;

        switch (_base)
        {
        case SubBaseType.None:
            Debug.LogError("No base selected");

            break;

        case SubBaseType.Medium:
            _tempBase = Instantiate(mediumBase, transform.position, Quaternion.identity);
            break;

        case SubBaseType.Heavy:
            _tempBase = Instantiate(heavyBase, transform.position, Quaternion.identity);
            break;

        case SubBaseType.Light:
            _tempBase = Instantiate(lightBase, transform.position, Quaternion.identity);
            break;

        default:
            break;
        }

        currentSubBehaviour = _tempBase.GetComponent <SubBaseBehaviour>();

        switch (_engine)
        {
        case SubEngineType.None:
            break;

        case SubEngineType.Light:
            _tempEngine = Instantiate(lightEngine, currentSubBehaviour.GetEnginePlace.transform.position, Quaternion.identity, _tempBase.transform);
            break;

        case SubEngineType.Medium:
            _tempEngine = Instantiate(mediumEngine, currentSubBehaviour.GetEnginePlace.transform.position, Quaternion.identity, _tempBase.transform);
            break;

        case SubEngineType.Heavy:
            _tempEngine = Instantiate(heavyEngine, currentSubBehaviour.GetEnginePlace.transform.position, Quaternion.identity, _tempBase.transform);
            break;

        default:
            break;
        }

        switch (_cannon)
        {
        case SubCannonType.None:
            break;

        case SubCannonType.Torpedo:
            _tempCannon = Instantiate(torpedoCannon, currentSubBehaviour.GetCannonPlace.transform.position, Quaternion.identity, _tempBase.transform);
            break;

        case SubCannonType.Minigun:
            _tempCannon = Instantiate(minigunCannon, currentSubBehaviour.GetCannonPlace.transform.position, Quaternion.identity, _tempBase.transform);
            break;

        case SubCannonType.Ram:
            _tempCannon = Instantiate(ramCannon, currentSubBehaviour.GetCannonPlace.transform.position, Quaternion.identity, _tempBase.transform);
            break;

        default:
            break;
        }
        currentSubBehaviour.CannonObject = _tempCannon;
        currentSubBehaviour.EngineObject = _tempEngine;

        //_tempBase.transform.position = new Vector3(-4.55f,0.25f,-0.4f);
        currentSubBehaviour.transform.Rotate(90, 0, 0);
        return(currentSubBehaviour.gameObject);
    }
示例#3
0
 public virtual void GiveValues(PlayerBehaviour _pb, SubBaseBehaviour _sbb)
 {
     pb  = _pb;
     sbb = _sbb;
 }