| Home Page | Recent Changes | Preferences

# NukeRifleFire

### NukeRifles

#### NukeRifleFire

    class NukeRifleFire extends ShockBeamFire;

    var() int Damage; // per wave
    var() float MomentumTransfer; // per wave
    var() float DamageRadius; // of final wave

    function DoTrace(Vector Start, Rotator Dir)
    {
        local Vector X;

        X = vector(Dir);
        TracePart(Start,Start+X*TraceRange,X,Dir,Instigator);
    }

    function TracePart(Vector Start, Vector End, Vector X, Rotator Dir, Pawn Ignored)
    {
        local Vector HitLocation, HitNormal;
        local Actor Other;
        local NukeRifleProjectile Mushroom_cloud;

        Other = Ignored.Trace(HitLocation, HitNormal, End, Start, true);

        if ( (Other != None) && (Other != Ignored) )
        {
            //if ( !Other.bWorldGeometry )
            //{
                HitNormal = Vect(0,0,0);
                //if ( (Pawn(Other) != None) && (HitLocation != Start) && Weapon.IsA('NukeRifle') )
                //  TracePart(HitLocation,End,X,Dir,Pawn(Other));
            //}
        }
        else
        {
            HitLocation = End;
            HitNormal = Vect(0,0,0);
        }
        SpawnBeamEffect(Start, Dir, HitLocation, HitNormal, 0);
        if( Instigator.bDeleteMe != true )
            Mushroom_cloud = Spawn(class'my_mod2.NukeRifleProjectile',Instigator,, HitLocation - (100*Normal(HitLocation - Start)) , Dir);
    }

    function SpawnBeamEffect(Vector Start, Rotator Dir, Vector HitLocation, Vector HitNormal, int ReflectNum)
    {
        local ShockBeamEffect Beam;

        if ( (Instigator.PlayerReplicationInfo.Team != None) && (Instigator.PlayerReplicationInfo.Team.TeamIndex == 1) )
            Beam = Spawn(class'BlueSuperShockBeam',,, Start, Dir);
        else
            Beam = Spawn(BeamEffectClass,,, Start, Dir);
        if (ReflectNum != 0) Beam.Instigator = None; // prevents client side repositioning of beam start
        Beam.AimAt(HitLocation, HitNormal);
    }

    defaultproperties
    {
        AmmoClass=class'SuperShockAmmo'
        AmmoPerFire=0
        DamageType=class'my_mod2.DamTypeNukeRifle'
        DamageMin=500
        DamageMax=500
        Momentum=70000
        FireSound=Sound'WeaponSounds.instagib_rifleshot'
        FireForce="ShockRifleFire"
        bReflective=true
        FireRate=1.5
        BeamEffectClass=class'SuperShockBeamEffect'
        bModeExclusive=true
        AimError=700
    }

The Unreal Engine Documentation Site

Wiki Community

Topic Categories

Image Uploads

Random Page

Recent Changes

Offline Wiki

Unreal Engine

Console Commands

Terminology

Mapping Topics

Mapping Lessons

UnrealEd Interface

Questions&Answers

Scripting Topics

Scripting Lessons

Making Mods

Class Tree

Questions&Answers

Modeling Topics

Questions&Answers

Log In