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; }
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); }); }
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); }
public StatLinkElement(object owner, IStatReference reference) { Owner = owner; _reference = reference; _reference.OnChanged += OnStatChanged; }
protected override void Awake() { base.Awake(); _range = Stats.AddStat(RangeInfo, BaseRange); }