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(); }
public void Trigger(IStrike strike) { var parameters = new UnitParameters().SetHealth(Health); Health -= strike.ToDamage(parameters); if (Health <= 0) { IsDead = true; } }
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); }
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); }
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; }
public Soldier(string name, EnemiesController ec, SoldiersController sc, UnitParameters up) : base(ec, sc, up) { Name = name; _up.ValueChanged(); }
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; }
// Use this for initialization void Start() { Parameters = gameObject.transform.parent.GetComponent<UnitParameters>(); NameLabel.text = Parameters.UnitName; gameObject.SetActive(false); }
public EquipmentItem(UnitParameters statsChange, bool multiplyStats = false) : base(statsChange, multiplyStats) { }
public Item(UnitParameters statsChange, bool multiplyStats = false) { StatsChange = statsChange; _multiplyStats = multiplyStats; }
/// <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)); }
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 }); }
public Vision(UnitParameters parametres, Vector position) : base(parametres, position, State.Produce) { }
/// <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); }
public IronMan(UnitParameters parametres, Vector position) : base(parametres, position, State.Idle) { Damage = parametres.Damage; }
public UnitParameters Apply(UnitParameters up) { return(_multiplyStats ? up * StatsChange : up + StatsChange); }
public Mutagen(UnitParameters statsChange, bool multiplyStats = false) : base(statsChange, multiplyStats) { }
public CaptainAmerica(UnitParameters parametres, Vector position) : base(parametres, position, State.Idle) { }
public ConsumableItem(UnitParameters statsChange, bool multiplyStats = false) : base(statsChange, multiplyStats) { }
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)); }
/// <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; }