Example #1
0
        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);
        }
Example #2
0
 private void Start()
 {
     projectilesManager = FindObjectOfType <ProjectilesManager>();
     projectileThrower  = FindObjectOfType <ProjectileThrower>();
     rig          = GetComponent <Rigidbody>();
     meshRenderer = GetComponent <MeshRenderer>();
 }
Example #3
0
        public AutoShooting(UnitsManager unitsManager, ProjectilesManager projectilesManager, Launcher launcher)
        {
            _unitsManager       = unitsManager;
            _projectilesManager = projectilesManager;
            _launcher           = launcher;

            _projectilesManager.RegisterLauncher(launcher.Config);
        }
Example #4
0
        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);
        }
Example #5
0
    private void Awake()
    {
        if (PM == null)
        {
            PM = this;
        }
        else
        {
            Destroy(this);
            return;
        }

        MudAmmo       = 0;
        OilAmmo       = 0;
        ExplosiveAmmo = 0;
    }
Example #6
0
 void Awake()
 {
     g_instance = this;
 }
Example #7
0
        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);
        }
Example #8
0
        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);
        }
Example #9
0
        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);
        }
Example #10
0
        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);
        }
Example #11
0
 // Use this for initialization
 void Start()
 {
     instance = this;
 }
Example #12
0
 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),
     }
                ));
 }