コード例 #1
0
ファイル: Unit.cs プロジェクト: Kinderril/Provinence2
 public virtual void Init()
 {
     Parameters = Parameters.Copy();
     if (Control == null)
         Control = GetComponent<BaseControl>();
     animationController = GetComponentInChildren<AnimationController>();
     if(animationController == null)
         Debug.LogError("NO ANImator Controller");
     curHp = Parameters.Parameters[ParamType.Hp];
     //List<Weapon> weapons = new List<Weapon>();
     foreach (var inventoryWeapon in InventoryWeapons)
     {
         inventoryWeapon.Init(this, null);
         inventoryWeapon.gameObject.SetActive(false);
     }
     Control.SetSpped(Parameters.Parameters[ParamType.Speed]);
     if (InventoryWeapons.Count == 0)
     {
         Debug.LogWarning("NO WEAPON!!! " + gameObject.name);
         return;
     }
     InitWEapons();
     curWeapon = InventoryWeapons[0];
     curWeapon.gameObject.SetActive(true);
     OnShieldOff = new IEndEffect();
 }
コード例 #2
0
        public void Trigger(IStrike strike)
        {
            var parameters = new UnitParameters().SetHealth(Health);

            Health -= strike.ToDamage(parameters);
            if (Health <= 0)
            {
                IsDead = true;
            }
        }
コード例 #3
0
 public BaseHero(UnitParameters parametres, Vector position, State state)
 {
     Health = parametres.Health;
     if (parametres.Characteristics.Where(c => c.Name == "Reload").Any())
     {
         Reload = parametres.Reload;
     }
     Position       = position;
     State          = state;
     IsDead         = false;
     tickСontroller = new TickСontroller(Reload);
 }
コード例 #4
0
ファイル: ThanosAttack.cs プロジェクト: Sanchezz17/OOPGame
        public override int ToDamage(UnitParameters parameters)
        {
            Health -= 1;
            if (Health <= 0)
            {
                IsDead = true;
            }
            var enemyHealth = parameters.Health;

            if (enemyHealth <= 100)
            {
                return(enemyHealth);
            }
            return(enemyHealth / 2);
        }
コード例 #5
0
ファイル: Enemy.cs プロジェクト: PexoGameDev/EVX
        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;
        }
コード例 #6
0
ファイル: Soldier.cs プロジェクト: PexoGameDev/EVX
        public Soldier(string name, EnemiesController ec, SoldiersController sc, UnitParameters up) : base(ec, sc, up)
        {
            Name = name;

            _up.ValueChanged();
        }
コード例 #7
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;
 }
コード例 #8
0
ファイル: UnitInfoDisplay.cs プロジェクト: Vaibyro/Triskel
 // Use this for initialization
 void Start()
 {
     Parameters = gameObject.transform.parent.GetComponent<UnitParameters>();
     NameLabel.text = Parameters.UnitName;
     gameObject.SetActive(false);
 }
コード例 #9
0
 public EquipmentItem(UnitParameters statsChange, bool multiplyStats = false) : base(statsChange, multiplyStats)
 {
 }
コード例 #10
0
 public Item(UnitParameters statsChange, bool multiplyStats = false)
 {
     StatsChange    = statsChange;
     _multiplyStats = multiplyStats;
 }
コード例 #11
0
 /// <summary>
 /// Multiplies the speeds of specified parameters by a specified multiplier.
 /// </summary>
 /// <param name="parameters">The unit parameters.</param>
 /// <param name="multiplier">The speed multiplier.</param>
 /// <returns>The result parameters.</returns>
 public static UnitParameters MultiplySpeed(this UnitParameters parameters, float multiplier)
 {
     return(UnitParameters.MultiplySpeed(parameters, multiplier));
 }
コード例 #12
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
            });
        }
コード例 #13
0
 public Vision(UnitParameters parametres, Vector position) : base(parametres, position, State.Produce)
 {
 }
コード例 #14
0
 /// <summary>
 /// Updates the current unit parameters - calculated by settings and level
 /// (at start and once every upgrade).
 /// </summary>
 private void UpdateCurrentUnitParameters()
 {
     currentUnitParameters = settings.GetUnitParameters(level);
 }
コード例 #15
0
 public IronMan(UnitParameters parametres, Vector position) : base(parametres, position, State.Idle)
 {
     Damage = parametres.Damage;
 }
コード例 #16
0
 public UnitParameters Apply(UnitParameters up)
 {
     return(_multiplyStats ? up * StatsChange : up + StatsChange);
 }
コード例 #17
0
 public Mutagen(UnitParameters statsChange, bool multiplyStats = false) : base(statsChange, multiplyStats)
 {
 }
コード例 #18
0
ファイル: CaptainAmerica.cs プロジェクト: Sanchezz17/OOPGame
 public CaptainAmerica(UnitParameters parametres, Vector position) : base(parametres, position, State.Idle)
 {
 }
コード例 #19
0
 public ConsumableItem(UnitParameters statsChange, bool multiplyStats = false) : base(statsChange, multiplyStats)
 {
 }
コード例 #20
0
 public void SetParameters()
 {
     UnitParameters.SetUnitParameters(float.Parse(enemyDamage.text), float.Parse(enemyHealth.text), float.Parse(enemyDelay.text), float.Parse(heroDamage.text), float.Parse(heroHealth.text));
 }
コード例 #21
0
ファイル: UnitController.cs プロジェクト: Vaibyro/Triskel
    /// <summary>
    /// Initialization.
    /// </summary>
    void Start()
    {
        // Add references
        Parameters = GetComponent<UnitParameters>();
        Pathfinding = GetComponent<NavMeshAgent>();
        MissionGUI = Parameters.ParametersOfMission.GetComponent<InterfaceManager>();

        // Moving gestion
        TargetPosition = transform.position;
        isMoving = false;

        // Create dot in minimap
        MissionGUI.CreateDot(this);

        // Fix to verify that DC is not under 0
        Parameters.ParametersOfMission.DC -= Parameters.ConsumedDC;
    }