Esempio n. 1
0
        protected Enemy(MapField[] path, SoldiersController sc, EnemiesController ec, PlayerBase targetBase, DamageType dt, HealthType ht, UnitParameters up, int defaultDamage) : base(sc, ec, up)
        {
            PathToTraverse = path;
            _targetBase    = targetBase;
            _up            = up;

            switch (ht)
            {
            case HealthType.Armor:
                _up.Armor = up.Health;
                break;

            case HealthType.EnergyShields:
                _up.EnergyShields = up.Health;
                break;

            case HealthType.EMF:
                _up.EMF = up.Health;
                break;
            }

            switch (dt)
            {
            case DamageType.Plasma:
                _up.PlasmaDamage = defaultDamage * 2;
                break;

            case DamageType.Ballistic:
                _up.BallisticDamage = Mathf.CeilToInt(defaultDamage / 2);
                break;

            case DamageType.Laser:
                _up.LaserDamage = defaultDamage;
                break;
            }

            CurrentMovementTarget = PathToTraverse[0].Position;
        }
Esempio n. 2
0
 public DummyEnemy(MapField[] path, SoldiersController sc, EnemiesController ec, PlayerBase pb, DamageType dt,
                   HealthType ht, UnitParameters up, int defaultDamage) : base(path, sc, ec, pb, dt, ht, up, defaultDamage)
 {
     Position = Vector2.down * 1000;
 }
Esempio n. 3
0
        public void Instantiate(Func <string, string, string, string, Action, Action, Action, Task> setButtonsBehaviour, EnemiesController ec, SoldiersController sc)
        {
            _recruitNewUnitButton.onClick.AddListener(async() =>
            {
                if (!_ecoController.TryBuy(UnitPrice))
                {
                    Debug.Log("Too little quants! Try earning more.");
                    return;
                }
                GameController.Mode = GameMode.Building;

                await setButtonsBehaviour("Choose a weapon type for this soldier.", "Laser Weapon", "Plasma Weapon", "Ballistic Weapon",
                                          () => { SelectedDamageType = DamageType.Laser; },
                                          () => { SelectedDamageType = DamageType.Plasma; },
                                          () => { SelectedDamageType = DamageType.Ballistic; }
                                          );

                await setButtonsBehaviour("Choose a type of protection for this soldier.", "EMF Defense", "Armor", "Energy Shields",
                                          () => { SelectedHealthType = HealthType.EMF; },
                                          () => { SelectedHealthType = HealthType.Armor; },
                                          () => { SelectedHealthType = HealthType.EnergyShields; }
                                          );
            });

            _sellUnitButton.onClick.AddListener(() =>
            {
                if (_upgradeManager.CurrentUnit == null)
                {
                    return;
                }
                _upgradeManager.CurrentUnit.RemoveUnit();
                _upgradeManager.CurrentUnit = null;
            });
        }
Esempio n. 4
0
        public EnemySpawner(MapField[] path, SoldiersController sc, EnemiesController ec, PlayerBase pb)
        {
            Enemy Light(float powerLevel)
            {
                var light0UP = new UnitParameters {
                    Health = 20, EvasionChance = 0.01f, MovementSpeed = 0.01f,
                } *powerLevel;

                return(new DummyEnemy(path, sc, ec, pb, DamageType.Default, HealthType.Default, light0UP, 0)
                {
                    Type = EnemyType.Light
                });
            }

            Enemy Mid(float powerLevel)
            {
                var mid0UP = new UnitParameters
                {
                    Health        = 50,
                    EvasionChance = 0.01f,
                    MovementSpeed = 0.005f,
                } *powerLevel;

                return(new DummyEnemy(path, sc, ec, pb, DamageType.Default, HealthType.Default, mid0UP, 0)
                {
                    Type = EnemyType.Medium, ScoreValue = 2
                });
            }

            Enemy Heavy(float powerLevel)
            {
                var heavy0UP = new UnitParameters
                {
                    Health        = 100,
                    EvasionChance = 0.01f,
                    MovementSpeed = 0.01f,
                } *powerLevel;

                return(new DummyEnemy(path, sc, ec, pb, DamageType.Default, HealthType.Default, heavy0UP, 0)
                {
                    Type = EnemyType.Heavy, ScoreValue = 2
                });
            }

            Enemy Assassin(float powerLevel)
            {
                var assassin0UP = new UnitParameters
                {
                    Health           = 40,
                    EvasionChance    = 0.01f,
                    MovementSpeed    = 0.005f,
                    AttackAccuracy   = 0.75f,
                    DefaultDamage    = 1,
                    AttackRange      = 3,
                    AttacksPerSecond = 1f
                } *powerLevel;

                return(new DummyEnemy(path, sc, ec, pb, DamageType.Ballistic, HealthType.Default, assassin0UP, Mathf.FloorToInt(1 * powerLevel))
                {
                    Type = EnemyType.Light, ScoreValue = 2
                });
            }

            AllEnemiesPrefabs.Add(EnemyType.Light, new List <Func <float, Enemy> > {
                Light, Assassin
            });
            AllEnemiesPrefabs.Add(EnemyType.Medium, new List <Func <float, Enemy> > {
                Mid
            });
            AllEnemiesPrefabs.Add(EnemyType.Heavy, new List <Func <float, Enemy> > {
                Heavy
            });
        }
Esempio n. 5
0
 public static void BioHeal(Soldier executor, SoldiersController controller)
 {
     foreach (var entity in controller.Entities.Where(entity => entity.IsInRange(executor.Position, BioHealRange)))
     {
     }
 }
Esempio n. 6
0
 public PlayerBase(SoldiersController controller) : base("Base", null, controller, DefaultBaseParams)
 {
 }