public Unit StartLevel(UnitsManager unitsManager, ProjectilesManager projectilesManager) { var positions = RandomHelper.ShuffleList(_spawnPositions); var nextPosIdx = 0; Unit player = null; foreach (var ally in _allias) { var unit = CreateUnit(ally, positions[nextPosIdx++], unitsManager, projectilesManager); unit.Fraction = 0; unitsManager.Add(unit); if (ally.OnlyOne) { player = unit; } } foreach (var enemy in _enemies) { var unit = CreateUnit(enemy, positions[nextPosIdx++], unitsManager, projectilesManager); unit.Fraction = 1; unitsManager.Add(unit); } unitsManager.UnitKilled += OnUnitKilled; return(player); }
private void Start() { projectilesManager = FindObjectOfType <ProjectilesManager>(); projectileThrower = FindObjectOfType <ProjectileThrower>(); rig = GetComponent <Rigidbody>(); meshRenderer = GetComponent <MeshRenderer>(); }
public AutoShooting(UnitsManager unitsManager, ProjectilesManager projectilesManager, Launcher launcher) { _unitsManager = unitsManager; _projectilesManager = projectilesManager; _launcher = launcher; _projectilesManager.RegisterLauncher(launcher.Config); }
private void Awake() { _userInfo = new UserInfo(); _unitsManager = new UnitsManager(); _damageSystem = new DamageSystem(); _pickupsManager = new PickupsManager(_unitsManager, _userInfo, _pickupPrefab); _projectilesManager = new ProjectilesManager(_damageSystem); _goldLabel.Init(_userInfo); _damageSystem.DamageTaken += (u) => _camera.Shake(0.5f); }
private void Awake() { if (PM == null) { PM = this; } else { Destroy(this); return; } MudAmmo = 0; OilAmmo = 0; ExplosiveAmmo = 0; }
void Awake() { g_instance = this; }
private Unit CreateUnit(UnitConfig unitConfig, Vector3 position, UnitsManager unitsManager, ProjectilesManager projectilesManager) { Rigidbody instance; if (unitConfig.OnlyOne) { instance = Instantiate(unitConfig.Prefab, _unitsRoot); } else { if (!_unitPools.TryGetValue(unitConfig, out var pool)) { pool = new GameObjectPool <Rigidbody>(_unitsRoot, unitConfig.Prefab, 5); _unitPools.Add(unitConfig, pool); } instance = pool.GetObject(); } instance.transform.position = position; instance.gameObject.SetActive(true); var unit = unitConfig.CreateUnit(instance, unitsManager, projectilesManager); unit.Config = unitConfig; return(unit); }
public override Unit CreateUnit(Rigidbody instance, UnitsManager unitsManager, ProjectilesManager projectilesManager) { var unit = base.CreateUnit(instance, unitsManager, projectilesManager); unit.AddBehaviour(new RandomPatrol(_linearMoveTime, _idleTime)); unit.AddBehaviour(new MovementController(instance)); unit.AddBehaviour(new AutoShooting(unitsManager, projectilesManager, new Launcher(_launcherConfig, instance.GetComponentInChildren <LaunchPoint>().transform))); return(unit); }
public override Unit CreateUnit(Rigidbody instance, UnitsManager unitsManager, ProjectilesManager projectilesManager) { var unit = base.CreateUnit(instance, unitsManager, projectilesManager); unit.AddBehaviour(new InputController(_forwardDirection)); unit.AddBehaviour(new MovementController(instance)); unit.AddBehaviour(new CollectPickups()); unit.AddBehaviour(new AutoShooting(unitsManager, projectilesManager, new Launcher(_launcherConfig, instance.GetComponentInChildren <LaunchPoint>().transform))); unit.AddBehaviour(new AnimatorController(instance.GetComponentInChildren <Animator>())); return(unit); }
public override Unit CreateUnit(Rigidbody instance, UnitsManager unitsManager, ProjectilesManager projectilesManager) { var unit = base.CreateUnit(instance, unitsManager, projectilesManager); unit.AddBehaviour(new RandomPatrol(_linearMoveTime, _idleTime)); unit.AddBehaviour(new MovementController(instance)); return(unit); }
// Use this for initialization void Start() { instance = this; }
public virtual Unit CreateUnit(Rigidbody instance, UnitsManager unitsManager, ProjectilesManager projectilesManager) { return(new Unit( instance, new Stats { CurrentHealth = new Observable <float>(_maxHealth), MaxHealth = new Observable <float>(_maxHealth), MoveSpeed = new Observable <float>(_moveSpeed), BaseDamage = new Observable <float>(_baseDamage), } )); }