public override void PreInit()
        {
            Weapon = GetComponent <IWeapon>();
            AddTag("Weapon");

            Damage           = Stats.AddStat(DamageInfo, BaseDamage);
            ProjectileAmount = Stats.AddStat(ProjectileAmountInfo, BaseProjectileAmount);
            Spread           = Stats.AddStat(SpreadInfo, BaseSpread);
            Speed            = Stats.AddStat(SpeedInfo, BaseSpeed);
            Firerate         = Stats.AddStat(FirerateInfo, BaseFirerate);

            OnFire               = Events.AddEvent(OnFireInfo);
            OnProjectile         = Events.AddEvent(OnProjectileInfo);
            OnProjectileDepleted = Events.AddEvent(OnProjectileDepletedInfo);
            OnProjectileHit      = Events.AddEvent(OnProjectileHitInfo);
            OnProjectileKill     = Events.AddEvent(OnProjectileKillInfo);

            Weapon.OnFire               += Weapon_OnFire;
            Weapon.OnProjectile         += Weapon_OnProjectile;
            Weapon.OnProjectileDepleted += Weapon_OnProjectileDepleted;
            Weapon.OnProjectileHit      += Weapon_OnProjectileHit;
            Weapon.OnProjectileKill     += Weapon_OnProjectileKill;

            Damage.OnChanged           += UpdateStats;
            ProjectileAmount.OnChanged += UpdateStats;
            Spread.OnChanged           += UpdateStats;
            Speed.OnChanged            += UpdateStats;
            Firerate.OnChanged         += UpdateStats;
        }
Beispiel #2
0
        public override void ApplyBase(IStatContainer stats, IEventContainer events)
        {
            events.GetEvent(EventInfo.Identifier).Event.OnExecute += Explode;

            _damageMult = stats.AddStat(ExplosionDamageFactorInfo, DamageFactorBase * Coeffecient);
            _range      = stats.AddStat(ExplosionRangeInfo, RangeBase);
        }
 public override void Init()
 {
     base.Init();
     Range  = Stats.AddStat(RangeInfo, BaseRange);
     Parent = transform.parent.GetComponent <TurretWeaponBase>();
     if (Parent)
     {
         Parent.Events.GetEvent(EventInfo.Identifier).Event.OnExecute += OnParentKill;
     }
 }
        private void Start()
        {
            _conversionSpeed   = Stats.AddStat(ConversionSpeedInfo, BaseConversionSpeed);
            _conversionTarget  = Stats.AddStat(ConversionTargetInfo, BaseConversionTarget);
            _resourceContainer = GetComponent <IResourceContainer>();

            _roundController.IfExists(x =>
            {
                x.OnWaveStarted  += OnWaveStarted;
                x.OnWaveFinished += OnWaveFinished;
                SetPause(x.State != RoundController.RoundState.InProgress);
            });
        }
Beispiel #5
0
 public override void PreInit()
 {
     _weapon = GetComponentInChildren <IWeapon>();
     AddTag("Rotator");
     Turnrate = Stats.AddStat(TurnrateInfo, BaseTurnrate);
 }
 public override void PreInit()
 {
     AddTag("Base");
     _onTargetAcquired = Events.AddEvent(OnTargetAcquiredInfo);
     Range = Stats.AddStat(RangeInfo, BaseRange);
 }
Beispiel #7
0
 public StatLinkElement(object owner, IStatReference reference)
 {
     Owner                 = owner;
     _reference            = reference;
     _reference.OnChanged += OnStatChanged;
 }
Beispiel #8
0
 protected override void Awake()
 {
     base.Awake();
     _range = Stats.AddStat(RangeInfo, BaseRange);
 }