public IEnumerable <Renderable> Render() { if (anim != null) { var at = (float)t / TotalTime(); var altitude = float2.Lerp(Args.srcAltitude, Args.destAltitude, at); var pos = float2.Lerp(Args.src, Args.dest, at) - new float2(0, altitude); if (Args.firedBy.World.LocalShroud.IsVisible(OpenRA.Traits.Util.CellContaining(pos))) { if (Info.High || Info.Angle > 0) { if (Info.Shadow) { yield return(new Renderable(anim.Image, pos - .5f * anim.Image.size, "shadow", (int)pos.Y)); } var highPos = pos - new float2(0, GetAltitude()); yield return(new Renderable(anim.Image, highPos - .5f * anim.Image.size, "effect", (int)pos.Y)); } else { yield return(new Renderable(anim.Image, pos - .5f * anim.Image.size, Args.weapon.Underwater ? "shadow" : "effect", (int)pos.Y)); } } } if (Trail != null) { Trail.Render(Args.firedBy); } }
public IEnumerable <Renderable> Render() { if (Args.firedBy.World.LocalShroud.IsVisible(PxPosition.ToCPos())) { yield return(new Renderable(anim.Image, PxPosition.ToFloat2() - 0.5f * anim.Image.size - new float2(0, Altitude), Args.weapon.Underwater ? "shadow" : "effect", PxPosition.Y)); } if (Trail != null) { Trail.Render(Args.firedBy); } }
public IEnumerable <Renderable> Render(WorldRenderer wr) { if (!Args.firedBy.World.FogObscures(PxPosition.ToCPos())) { yield return(new Renderable(anim.Image, PxPosition.ToFloat2() - 0.5f * anim.Image.size - new float2(0, Altitude), wr.Palette(Args.weapon.Underwater ? "shadow" : "effect"), PxPosition.Y)); } if (Trail != null) { Trail.Render(wr, Args.firedBy); } }
public IEnumerable <Renderable> Render(WorldRenderer wr) { if (anim != null) { var at = (float)t / TotalTime(); var altitude = float2.Lerp(Args.srcAltitude, Args.destAltitude, at); var pos = float2.Lerp(Args.src.ToFloat2(), Args.dest.ToFloat2(), at) - new float2(0, altitude); var cell = ((PPos)pos.ToInt2()).ToCPos(); if (!Args.firedBy.World.FogObscures(cell)) { if (Info.High || Info.Angle > 0) { if (Info.Shadow) { yield return(new Renderable(anim.Image, pos - .5f * anim.Image.size, wr.Palette("shadow"), (int)pos.Y)); } var highPos = pos - new float2(0, GetAltitude()); yield return(new Renderable(anim.Image, highPos - .5f * anim.Image.size, wr.Palette("effect"), (int)pos.Y)); } else { yield return(new Renderable(anim.Image, pos - .5f * anim.Image.size, wr.Palette(Args.weapon.Underwater ? "shadow" : "effect"), (int)pos.Y)); } } } if (Trail != null) { Trail.Render(wr, Args.firedBy); } }