protected override void Setup(OrbSetup orbSetup) { _swapTimer = orbSetup.SwapTimer; _decay = orbSetup.Decay; _player = orbSetup.Player; _globalData = orbSetup.GlobalData; _state = orbSetup.OrbState; _mainAttackTimers = orbSetup.MainAttackTimers; _secondaryAttackTimers = orbSetup.SecondaryAttackTimers; _orbType = orbSetup.OrbType; Startup(); }
public void Swap() { var orb = Instantiate(_globalData.OrbPrefabs[(int)_orbType]); orb.transform.position = transform.position; var orbSetup = new OrbSetup ( Time.time + 0.1f, _decay, _player, _globalData, _state, _mainAttackTimers, _secondaryAttackTimers, _orbType ); orb.GetComponent <OrbBehaviour>().Setup(orbSetup); Destroy(transform.gameObject); }
protected abstract void Setup(OrbSetup orbSetup);
//So that other objects can just call it public void SetupPublic(OrbSetup orbSetup) { Setup(orbSetup); }