public MuzzleFlashEffect(World world, Character character, Vector3 weaponWorldPosition) { this.World = world; Billboard = World.CreateDecayableBillboard(BillboardSystemType.MuzzleFlash, character.ConvertWeaponToWorldPosition(weaponWorldPosition)); for (int i = 0; i < Lights.Length; ++i) { Lights[i] = World.CreateLight(character.ConvertWeaponToWorldPosition(weaponWorldPosition + GetScaledOffset(LightOffsets[i]))); Lights[i].Type = Light.LightTypes.LT_POINT; Lights[i].SetAttenuation(5, 0, 0, 0.5f); // Soften the flash to 30% (remember, there are four lights) Lights[i].SetDiffuseColour(0.1f, 0.1f, 0.1f); } Alive = true; }
public DecayableBillboard CreateBillboard(Vector3 position, Vector2 dimension, float timeToLive) { DecayableBillboard billboard = new DecayableBillboard(BillboardSet, position, dimension, timeToLive); DecayableBillboardSet.Add(billboard); return billboard; }