public override void OnArrival() { base.OnArrival(); //Ceil stacks to int and send if owner is in radius if (this.isOwnerInside && this.stacks > 0) { RestoreOrb orb = new RestoreOrb(); orb.stacks = (UInt32)Mathf.CeilToInt((this.stacks) / this.blazeExpireStacksMult); orb.length = this.blazeBuffDuration; orb.origin = this.origin; orb.skin = this.skin; orb.target = this.attackerBox; OrbManager.instance.AddOrb(orb); } if (this.attackerBody.HasBuff(BuffIndex.EnrageAncientWisp)) { this.attackerBody.RemoveBuff(BuffIndex.EnrageAncientWisp); } this.isActive = false; this.hitDetection.Cleanup(); UnityEngine.Object.Destroy(this.obj); }
private void SendStackBundle() { this.bundleSendTimer -= this.bundleSendInt; this.stacks -= this.blazeOrbStackBundleSize; Int32 bonus = Mathf.FloorToInt(this.stacks * this.blazeBonusBundlePercent); this.stacks -= bonus; if (this.bundleSendTimer > 0f) { this.bundleSendTimer *= 0.25f; } RestoreOrb orb = new RestoreOrb(); orb.stacks = (UInt32)Mathf.CeilToInt(this.blazeOrbStackBundleSize + bonus); orb.length = this.blazeBuffDuration; orb.origin = this.origin; orb.skin = this.skin; orb.target = this.attackerBox; OrbManager.instance.AddOrb(orb); }