public void Invoke(Actor spawnedActor, Actor spawnedActorOwner, List <IMuzzleModifier> modifiers, CompositeDisposable disposable) { spawnedActor.Events.OnTriggerEnterActorSafe() .Subscribe(x => { var data = new IMuzzleModifier.OnGiveDamageData(); foreach (var i in modifiers) { i.OnGiveDamage(data); } x.target.Events.OnTakeDamageSubject.OnNext(new ActorEvents.OnTakeDamageData { giveDamageActor = spawnedActorOwner, power = Mathf.FloorToInt(m_Power * data.powerRate) }); }) .AddTo(disposable); }
public virtual void OnGiveDamage(IMuzzleModifier.OnGiveDamageData data) { }
public override void OnGiveDamage(IMuzzleModifier.OnGiveDamageData data) { data.powerRate += m_Rate; }