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(); }
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); }
public virtual void GiveValues(PlayerBehaviour _pb, SubBaseBehaviour _sbb) { pb = _pb; sbb = _sbb; }