AddDamageType("FireM", '<bitmap:Add-Ons/Weapon_ElementalSpells/Icons/CI_Fire> %1', '%2 <bitmap:Add-Ons/Weapon_ElementalSpells/Icons/CI_Fire> %1', 0.25, 0);
datablock ProjectileData(FireMProjectile)
{
shapeFile = "base/data/shapes/empty.dts";
directDamage = 0.13;
radiusDamageType = $DamageType::FireM;
brickExplosionRadius = 0;
brickExplosionImpact = true;
brickExplosionForce = 0;
brickExplosionMaxVolume = 0;
brickExplosionMaxVolumeFloati ng = 0;
impactImpulse = 0;
verticalImpulse = 0;
explosion = FireMExplosion;
particleEmitter = FireAmbientEmitter;
sound = FireLoopSound;
muzzleVelocity = 75;
velInheritFactor = 1;
armingDelay = 0;
lifetime = 1000;
fadeDelay = 1000;
bounceElasticity = 0.5;
bounceFriction = 0.20;
isBallistic = true;
gravityMod = 0.0;
hasLight = true;
lightRadius = 5;
lightColor = "1 0.5 0";
uiName = "Fireball";
};
function FireMProjectile::onCollision(%this, %obj, %col, %fade, %pos, %normal)
{
if(%col.getClassName() $= "TSStatic")
{
if(%col.shapeName $= "Add-Ons/Weapon_ElementalSpells/OtherShapes/IceBlock.dts")
{
if(isObject(%col.player))
{
%col.player.thaw();
}
%col.delete();
}
}
parent::onCollision(%this, %obj, %col, %fade, %pos, %normal);
}
function FireMProjectile::damage(%this, %obj, %col, %fade, %pos, %normal)
{
if(%obj.getClassName() $= "AIplayer")
{
return;
}
return parent::damage(%this, %obj, %col, %fade, %pos, %normal);
}
function FireMProjectile::RadiusDamage(%this, %obj, %col, %distance, %pos, %amt)
{
if(!isObject(%col))
{
return;
}
%col.damage(%obj, %pos, 15 * getWord(%col.getScale(), 2), $DamageType::FireM);
if(%col.getType() & $Typemasks::PlayerObjectType && %col.getMountedImage(0) != WaterMImage.getID())
{
%col.burnCount = 0;
if(isObject(%source = %obj.sourceObject))
{
%col.lastBurner = %source;
}
else
{
%col.lastBurner = %obj;
}
for(%i = 2; %i < 7; %i++)
{
%img = %col.getMountedImage(%i);
if(%img == FireBurnPlayerImage.getID())
{
return;
}
if(%img < 1)
{
%col.mountImage(FireBurnPlayerImage, %i);
return;
}
}
}
}
You want the whole thing?