AddScorch(int x,int y,int r,int strength,int duration)1 global func AddScorch(int x, int y, int r, int strength, int duration)
2 {
3 var scorch = CreateObjectAbove(Wood, x,y, NO_OWNER);
4 if (!scorch) return nil;
5 scorch->SetObjectLayer(scorch);
6 scorch->SetR(r);
7 scorch->SetClrModulation(0x80804000);
8 scorch->SetCategory(C4D_StaticBack);
9 scorch.Collectible = false; // SetObjectLayer is not enough...
10 scorch.Plane = this.Plane+1;
11 var fx = AddEffect("FireScorching", scorch, 1, 2, scorch);
12 fx.strength = strength;
13 fx.duration = duration;
14 return scorch;
15 }
16
FxFireScorchingTimer(object target,proplist effect,int time)17 global func FxFireScorchingTimer(object target, proplist effect, int time)
18 {
19 if (time >= effect.duration) { RemoveObject(); return FX_Execute_Kill; }
20 // particles
21 var wind = BoundBy(GetWind(), -5, 5);
22 CreateParticle("SmokeDirty", PV_Random(-5, 5), PV_Random(-5, 5), wind, -effect.strength/8, PV_Random(20, 40), Particles_SmokeTrail(), 2);
23 return FX_OK;
24 }
25