//static GameObject go = GameDatabase.Instance.GetModel("BDArmory/Models/bulletHit/bulletHit"); //===TODO: static object wont load after scene reload void Start() { startTime = Time.time; pEmitters = gameObject.GetComponentsInChildren <KSPParticleEmitter>(); foreach (KSPParticleEmitter pe in pEmitters) { EffectBehaviour.AddParticleEmitter(pe); } audioSource = gameObject.AddComponent <AudioSource>(); audioSource.minDistance = 1; audioSource.maxDistance = 50; audioSource.spatialBlend = 1; audioSource.volume = BDArmorySettings.BDARMORY_WEAPONS_VOLUME; int random = UnityEngine.Random.Range(1, 3); if (ricochet) { string path = "BDArmory/Sounds/ricochet" + random; hitSound = GameDatabase.Instance.GetAudioClip(path); } else { string path = "BDArmory/Sounds/bulletHit" + random; hitSound = GameDatabase.Instance.GetAudioClip(path); } audioSource.PlayOneShot(hitSound); }
public static void Add(PersistentKSPParticleEmitter pkpe) { persistentEmitters.Add(pkpe); EffectBehaviour.AddParticleEmitter(pkpe.pe); //print("[SmokeScreen PersistentEmitterManager]: Added 1 PersistentKSPParticleEmitter. Count = " + persistentEmitters.Count); }
public override void OnStart(StartState state) { // print("vaporvent: OnStart"); emitter = part.FindModelComponents <KSPParticleEmitter>(); if (emitter != null) { foreach (KSPParticleEmitter unit in emitter) { EffectBehaviour.AddParticleEmitter(unit); } } base.OnStart(state); if (HighLogic.LoadedSceneIsFlight) { GameEvents.onLaunch.Add(onLaunch); if (Vessel.Situations.PRELAUNCH == vessel.situation || Vessel.Situations.LANDED == vessel.situation) { vaporVisible = true; UpdateEvents(vaporVisible); SlowCheck(); } } }
void Start() { startTime = Time.time; pEmitters = gameObject.GetComponentsInChildren <KSPParticleEmitter>(); foreach (KSPParticleEmitter pe in pEmitters) { EffectBehaviour.AddParticleEmitter(pe); pe.emit = true; //if(pe.useWorldSpace) pe.force = (4.49f * FlightGlobals.getGeeForceAtPosition(transform.position)); if (pe.maxEnergy > maxTime) { maxTime = pe.maxEnergy; } } lightFX = gameObject.AddComponent <Light>(); lightFX.color = Misc.ParseColor255("255,238,184,255"); lightFX.intensity = 8; lightFX.range = range * 3f; lightFX.shadows = LightShadows.None; audioSource.volume = BDArmorySettings.BDARMORY_WEAPONS_VOLUME; audioSource.PlayOneShot(exSound); }
private void Start() { StartTime = Time.time; MaxTime = (Range / ExplosionVelocity) * 3f; CalculateBlastEvents(); PEmitters = gameObject.GetComponentsInChildren <KSPParticleEmitter>(); IEnumerator <KSPParticleEmitter> pe = PEmitters.AsEnumerable().GetEnumerator(); while (pe.MoveNext()) { if (pe.Current == null) { continue; } EffectBehaviour.AddParticleEmitter(pe.Current); pe.Current.emit = true; if (pe.Current.maxEnergy > particlesMaxEnergy) { particlesMaxEnergy = pe.Current.maxEnergy; } } pe.Dispose(); LightFx = gameObject.AddComponent <Light>(); LightFx.color = Misc.Misc.ParseColor255("255,238,184,255"); LightFx.intensity = 8; LightFx.range = Range * 3f; LightFx.shadows = LightShadows.None; if (BDArmorySettings.DRAW_DEBUG_LABELS) { Debug.Log( "[BDArmory]:Explosion started tntMass: {" + Power + "} BlastRadius: {" + Range + "} StartTime: {" + StartTime + "}, Duration: {" + MaxTime + "}"); } }
void Start() { startTime = Time.time; pEmitters = gameObject.GetComponentsInChildren <KSPParticleEmitter>(); IEnumerator <KSPParticleEmitter> pe = pEmitters.AsEnumerable().GetEnumerator(); while (pe.MoveNext()) { if (pe.Current == null) { continue; } EffectBehaviour.AddParticleEmitter(pe.Current); pe.Current.emit = true; if (pe.Current.maxEnergy > maxTime) { maxTime = pe.Current.maxEnergy; } } pe.Dispose(); lightFX = gameObject.AddComponent <Light>(); lightFX.color = Misc.Misc.ParseColor255("255,238,184,255"); lightFX.intensity = 8; lightFX.range = range * 3f; lightFX.shadows = LightShadows.None; audioSource.volume = BDArmorySettings.BDARMORY_WEAPONS_VOLUME; audioSource.PlayOneShot(exSound); }
/// <summary> /// 特效更随指定对象 /// </summary> /// <param name="name"></param> /// <param name="trans"></param> public void Spawn(string name, Transform trans) { GameObject effect = PoolManager.Instance.Spawn(name); EffectBehaviour eb = effect.GetOrAddComponent <EffectBehaviour>(); eb.ToFollow = trans; }
IEnumerator SmokeRoutine() { yield return(new WaitForSeconds(0.2f)); GameObject smokeCMObject = smokePool.GetPooledObject(); smokeCMObject.SetActive(true); smokeCMObject.transform.position = ejectTransform.position + (10 * ejectTransform.forward); float longestLife = 0; IEnumerator <KSPParticleEmitter> emitter = smokeCMObject.GetComponentsInChildren <KSPParticleEmitter>().Cast <KSPParticleEmitter>().GetEnumerator(); while (emitter.MoveNext()) { if (emitter.Current == null) { continue; } EffectBehaviour.AddParticleEmitter(emitter.Current); emitter.Current.Emit(); if (emitter.Current.maxEnergy > longestLife) { longestLife = emitter.Current.maxEnergy; } } emitter.Dispose(); audioSource.PlayOneShot(smokePoofSound); yield return(new WaitForSeconds(longestLife)); smokeCMObject.SetActive(false); }
public void Start() { foreach (var otherFlame in FlamingJoints.FlameObjects) { if ( !((gameObject.transform.position - otherFlame.transform.position).sqrMagnitude < _maxCombineDistance * _maxCombineDistance)) { continue; } Debug.Log("== Flame combined =="); Destroy(gameObject); return; } foreach (var pe in gameObject.GetComponentsInChildren <KSPParticleEmitter>()) { var color = pe.material.color; color.a = color.a / 2; pe.material.SetColor("_TintColor", color); pe.force = -FlightGlobals.getGeeForceAtPosition(transform.position) / 3; if (!(pe.maxEnergy > _highestEnergy)) { continue; } _destroyer = pe.gameObject; _highestEnergy = pe.maxEnergy; EffectBehaviour.AddParticleEmitter(pe); } FlamingJoints.FlameObjects.Add(gameObject); }
public void FireActivate() { float scale = float.Parse(GetComponent <EffectStatus>().stringData); this.transform.localScale = new Vector3(scale, 1 + (scale - 1) / 2, scale); EffectBehaviour.ParticleDamegeStartAutoMode(this.gameObject); }
void OnDestroy() { if (pEmitter) { EffectBehaviour.RemoveParticleEmitter(pEmitter); } }
void Start() { if (decalPool_large == null || decalPool_small == null) { SetupShellPool(); } startTime = Time.time; pEmitters = gameObject.GetComponentsInChildren <KSPParticleEmitter>(); IEnumerator <KSPParticleEmitter> pe = pEmitters.AsEnumerable().GetEnumerator(); while (pe.MoveNext()) { if (pe.Current == null) { continue; } EffectBehaviour.AddParticleEmitter(pe.Current); } pe.Dispose(); audioSource = gameObject.AddComponent <AudioSource>(); audioSource.minDistance = 1; audioSource.maxDistance = 50; audioSource.spatialBlend = 1; audioSource.volume = BDArmorySettings.BDARMORY_WEAPONS_VOLUME; int random = Random.Range(1, 3); if (ricochet) { if (caliber <= 30) { string path = "BDArmory/Sounds/ricochet" + random; hitSound = GameDatabase.Instance.GetAudioClip(path); } else { string path = "BDArmory/Sounds/Artillery_Shot"; hitSound = GameDatabase.Instance.GetAudioClip(path); } } else { if (caliber <= 30) { string path = "BDArmory/Sounds/bulletHit" + random; hitSound = GameDatabase.Instance.GetAudioClip(path); } else { string path = "BDArmory/Sounds/Artillery_Shot"; hitSound = GameDatabase.Instance.GetAudioClip(path); } } audioSource.PlayOneShot(hitSound); }
private void OnEnable() { StartTime = Time.time; disabled = false; MaxTime = Mathf.Sqrt((Range / ExplosionVelocity) * 3f) * 2f; // Scale MaxTime to get a reasonable visualisation of the explosion. if (!isFX) { CalculateBlastEvents(); } pEmitters = gameObject.GetComponentsInChildren <KSPParticleEmitter>(); foreach (var pe in pEmitters) { if (pe != null) { if (pe.maxEnergy > particlesMaxEnergy) { particlesMaxEnergy = pe.maxEnergy; } pe.emit = true; var emission = pe.ps.emission; emission.enabled = true; EffectBehaviour.AddParticleEmitter(pe); } } LightFx = gameObject.GetComponent <Light>(); LightFx.range = Range * 3f; if (BDArmorySettings.DRAW_DEBUG_LABELS) { Debug.Log("[BDArmory]:Explosion started tntMass: {" + Power + "} BlastRadius: {" + Range + "} StartTime: {" + StartTime + "}, Duration: {" + MaxTime + "}"); } }
public static void Remove(PersistentKSPParticleEmitter pkpe) { EffectBehaviour.RemoveParticleEmitter(pkpe.pe); persistentEmitters.Remove(pkpe); //print("[SmokeScreen PersistentEmitterManager]: Removed 1 PersistentKSPParticleEmitter. Count = " + persistentEmitters.Count); }
/// <summary> /// 在玩家身上的指定点播放特效 /// </summary> public void SpawnEffectInPlayer(string name) { GameObject effect = ioo.poolManager.Spawn(name); EffectBehaviour eb = effect.GetOrAddComponent <EffectBehaviour>(); eb.ToFollow = ioo.gameMode.Player.EffectPoint; }
private void OnEnable() { StartTime = Time.time; LifeTime = Mathf.Clamp(Atmosphere, 0.04f, 1) * 5; PEmitters = gameObject.GetComponentsInChildren <KSPParticleEmitter>(); using (var pe = PEmitters.AsEnumerable().GetEnumerator()) while (pe.MoveNext()) { if (pe.Current == null) { continue; } EffectBehaviour.AddParticleEmitter(pe.Current); pe.Current.emit = true; pe.Current.maxEnergy = Mathf.Clamp(Atmosphere, 0.01f, 1) * 7; pe.Current.minEnergy = Mathf.Clamp(Atmosphere, 0.01f, 1) * 5; pe.Current.maxSize = 400 * (((Yield / 2) + 1) * Mathf.Clamp(Atmosphere, 0.2f, 1)); pe.Current.minSize = 400 * (((Yield / 2) + 1) * Mathf.Clamp(Atmosphere, 0.2f, 1)); } LightFx = gameObject.GetComponent <Light>(); LightFx.color = XKCDColors.Ecru; LightFx.intensity = 3; LightFx.range = 100 * Yield; LightFx.shadows = LightShadows.None; emittersOff = false; transform.position = Position; }
IEnumerator SmokeRoutine() { yield return(new WaitForSeconds(0.2f)); GameObject smokeCMObject = smokePool.GetPooledObject(); CMSmoke smoke = smokeCMObject.GetComponent <CMSmoke>(); smoke.velocity = part.rb.velocity + (ejectVelocity * transform.up) + (UnityEngine.Random.Range(-3f, 3f) * transform.forward) + (UnityEngine.Random.Range(-3f, 3f) * transform.right); smokeCMObject.SetActive(true); smokeCMObject.transform.position = ejectTransform.position + (10 * ejectTransform.forward); float longestLife = 0; using (IEnumerator <KSPParticleEmitter> emitter = smokeCMObject.GetComponentsInChildren <KSPParticleEmitter>().Cast <KSPParticleEmitter>().GetEnumerator()) while (emitter.MoveNext()) { if (emitter.Current == null) { continue; } EffectBehaviour.AddParticleEmitter(emitter.Current); emitter.Current.Emit(); if (emitter.Current.maxEnergy > longestLife) { longestLife = emitter.Current.maxEnergy; } } audioSource.PlayOneShot(smokePoofSound); yield return(new WaitForSeconds(longestLife)); smokeCMObject.SetActive(false); }
private void OnDestroy() { foreach (var pe in gameObject.GetComponentsInChildren <KSPParticleEmitter>()) { EffectBehaviour.RemoveParticleEmitter(pe); } }
public override void OnStart(StartState state) { base.OnStart(state); emission = part.FindModelComponents <KSPParticleEmitter>(); foreach (KSPParticleEmitter emi in emission) { EffectBehaviour.AddParticleEmitter(emi); } }
public void OnDestroy() { foreach (KSPParticleEmitter emi in emission) { emi.emit = false; enablesmoke = false; EffectBehaviour.RemoveParticleEmitter(emi); } }
public void Start() { foreach (var pe in gameObject.GetComponentsInChildren <KSPParticleEmitter>()) { EffectBehaviour.AddParticleEmitter(pe); pe.emit = true; StartCoroutine(TimerRoutine()); } }
void OnDisable() { foreach (var pe in pEmitters) { if (pe != null) { pe.emit = false; EffectBehaviour.RemoveParticleEmitter(pe); } } }
void FireParticleEffects() { if (effectsTransform) { foreach (var pe in effectsTransform.gameObject.GetComponentsInChildren <KSPParticleEmitter>()) { EffectBehaviour.AddParticleEmitter(pe); pe.Emit(); } } }
public void OnDestroy() { GameEvents.onLaunch.Remove(onLaunch); emitter = part.FindModelComponents <KSPParticleEmitter>(); if (emitter != null) { foreach (KSPParticleEmitter unit in emitter) { EffectBehaviour.RemoveParticleEmitter(unit); } } }
void onDisable() { BDArmorySetup.numberOfParticleEmitters--; foreach (var pe in pEmitters) { if (pe != null) { pe.emit = false; EffectBehaviour.RemoveParticleEmitter(pe); } } }
void OnDisable() { foreach (var pe in pEmitters) { if (pe != null) { pe.emit = false; EffectBehaviour.RemoveParticleEmitter(pe); } } ExplosivePart = null; // Clear the Part reference. }
private void OnDestroy() { foreach (var pe in gameObject.GetComponentsInChildren <KSPParticleEmitter>()) { EffectBehaviour.RemoveParticleEmitter(pe); } if (FlamingJoints.FlameObjects.Contains(gameObject)) { FlamingJoints.FlameObjects.Remove(gameObject); } }
void onDisable() { BDArmorySetup.OnVolumeChange -= UpdateVolume; BDArmorySetup.numberOfParticleEmitters--; foreach (var pe in pEmitters) { if (pe != null) { pe.emit = false; EffectBehaviour.RemoveParticleEmitter(pe); } } sourceVesselName = null; }
IEnumerator SelfDestructRoutine() { pEmitter.emit = false; EffectBehaviour.RemoveParticleEmitter(pEmitter); if (gpe) { gpe.emit = false; EffectBehaviour.RemoveParticleEmitter(gpe.pEmitter); } yield return(new WaitForSeconds(pEmitter.maxEnergy)); Destroy(gameObject); yield break; }
void Start() { BDArmorySetup.numberOfParticleEmitters++; rb = gameObject.AddComponent <Rigidbody>(); pEmitters = gameObject.GetComponentsInChildren <KSPParticleEmitter>(); IEnumerator <KSPParticleEmitter> pe = pEmitters.AsEnumerable().GetEnumerator(); while (pe.MoveNext()) { if (pe.Current == null) { continue; } if (FlightGlobals.getStaticPressure(transform.position) == 0 && pe.Current.useWorldSpace) { pe.Current.emit = false; } else if (pe.Current.useWorldSpace) { BDAGaplessParticleEmitter gpe = pe.Current.gameObject.AddComponent <BDAGaplessParticleEmitter>(); gpe.rb = rb; gpe.emit = true; } else { EffectBehaviour.AddParticleEmitter(pe.Current); } } pe.Dispose(); prevPosition = transform.position; currPosition = transform.position; startTime = Time.time; rb.mass = mass; rb.isKinematic = true; //rigidbody.velocity = startVelocity; if (!FlightGlobals.RefFrameIsRotating) { rb.useGravity = false; } rb.useGravity = false; randThrustSeed = UnityEngine.Random.Range(0f, 100f); SetupAudio(); }